Skip to content
Back to skills

Retomar

ASecurity

Retoma o fio de uma sessão anterior DO PROJETO CERTO. Use sempre que o usuário disser "retomar", "voltar pro handover", "continuar de onde paramos", "/retomar <projeto>" — inclusive quando ele não nomear projeto nenhum. A skill resolve PRIMEIRO qual projeto retomar (nunca assume que é o do diretório onde a sessão abriu — a memória auto-carregada é indexada pelo diretório primário, não pela intenção do usuário), carrega EXPLICITAMENTE o MEMORY.md daquele projeto em ~/.claude/projects/<slug>/me...

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 17, 2026
ai-agentspythongobashgitapibackend

Works with

  • api

Security analysis

A100/100

Scanned October 17, 2026

npx -y skills add thiagobluhm/o1mem --skill retomar --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Retomar?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Retomar
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thiagobluhm-retomar/badge)](https://www.skillsdirectory.com/skills/thiagobluhm-retomar)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: retomar
description: Retoma o fio de uma sessão anterior DO PROJETO CERTO. Use sempre que o usuário disser "retomar", "voltar pro handover", "continuar de onde paramos", "/retomar <projeto>" — inclusive quando ele não nomear projeto nenhum. A skill resolve PRIMEIRO qual projeto retomar (nunca assume que é o do diretório onde a sessão abriu — a memória auto-carregada é indexada pelo diretório primário, não pela intenção do usuário), carrega EXPLICITAMENTE o MEMORY.md daquele projeto em ~/.claude/projects/<slug>/memory/ e só então entrega ao Passo 4 da skill `handover`, que executa o modo gravado (rapida/verificada). Existe porque retomar o projeto errado já aconteceu 3 vezes: o usuário trabalha em pelo menos 2 projetos ativos (MEUPROJ / OUTROPROJ) e sessões abrem com o primário de um e o adicional do outro.
---

Você vai devolver o fio de uma sessão anterior. Esta skill cobre **só a primeira metade** do problema — **qual projeto** — porque a segunda metade (como retomar, em que modo) já está resolvida no **Passo 4 da skill `handover`**. Não duplique aquele protocolo aqui; chegue nele com o projeto certo em mãos.

## O bug que esta skill existe para matar

A `MEMORY.md` que aparece sozinha no seu contexto é indexada pelo **diretório primário da sessão**. Diretório **adicional não traz memória junto**. Então, numa sessão aberta com primário na MEUPROJ e adicional no OUTROPROJ, a memória do OUTROPROJ **não existe no seu contexto** — e a da MEUPROJ traz uma linha `RETOMADA` chamativa no topo.

Se você resolver a palavra "retomar" contra a única memória que enxerga, você retoma o projeto errado **sempre**, e com toda a confiança do mundo. Já aconteceu 3 vezes.

> **REGRA DURA:** a memória auto-carregada é evidência de **onde a sessão abriu**, nunca de **o que o usuário quer retomar**. São coisas diferentes. Tratar uma como a outra é o bug.

Avisos em texto no topo do `MEMORY.md` **não resolvem** — o header da MEUPROJ já dizia "OUTROPROJ é projeto autônomo" e a retomada errada aconteceu mesmo assim, porque o conteúdo certo não estava lá para ser escolhido. O que resolve é **resolver o projeto antes de ler qualquer coisa**.

## Passo 1 — RESOLVA O PROJETO (antes de ler memória, handover ou código)

Enumere os projetos reais — não deduza slug por transformação de caminho (o slug nem sempre é o cwd: `c:\Projetos\meuprojeto\MEUPROJ\backend` indexa em `c--Projetos-meuprojeto-MEUPROJ`):

```bash
ls -d "$HOME/.claude/projects/"*/memory/ 2>/dev/null
```

Para cada um, colete o barato: `mtime` do `MEMORY.md` e a **linha `RETOMADA`** (é o breadcrumb que a skill `handover` grava — geralmente a 3ª linha, começando com `> **RETOMADA`).

```bash
for m in "$HOME/.claude/projects/"*/memory/MEMORY.md; do
  echo "=== $m"; stat -c '%y' "$m"; grep -m1 'RETOMADA' "$m" | cut -c1-400
done
```

Então:

| Situação | O que fazer |
|---|---|
| **Usuário nomeou o projeto** (`/retomar outroproj`, "retoma a MEUPROJ") | Case-insensitive contra os slugs. Casou 1 → segue. Casou >1 → **pergunte qual**. Casou 0 → mostre a lista e pergunte. |
| **Não nomeou, e há >1 projeto com `RETOMADA`** | **PERGUNTE.** Use `AskUserQuestion` com uma opção por projeto, cada uma mostrando **nome + data + o resumo da linha RETOMADA**, ordenadas pela mais recente. **Proibido chutar** — inclusive proibido chutar "o do diretório primário". |
| **Não nomeou, e só 1 projeto tem `RETOMADA`** | Pode seguir, mas **diga qual você escolheu e por quê** na primeira frase, para o usuário poder te corrigir de imediato. |
| **Nenhum tem `RETOMADA`** | Não invente. Diga que não há breadcrumb de retomada e ofereça o handover mais recente de cada projeto. |

Na dúvida, **pergunte**. Uma pergunta custa 5 segundos; retomar o projeto errado custa uma sessão inteira — e já custou 3.

## Passo 2 — Carregue a memória DAQUELE projeto, explicitamente

Leia `~/.claude/projects/<slug>/memory/MEMORY.md` **com a ferramenta Read**, mesmo que uma outra `MEMORY.md` já esteja no contexto. Nunca assuma que a memória auto-carregada serve: se o projeto resolvido ≠ o do diretório primário, ela é do projeto **errado** e deve ser explicitamente desconsiderada como fonte de próximo passo.

Leia também os `project_*.md` que a linha `RETOMADA` referenciar via `[[wikilink]]` — só esses, não a pasta inteira.

### Consulte o ACERVO FRIO — é para isso que o índice existe

A `MEMORY.md` e os `project_*.md` são o corpus **quente**: o resumo destilado, o que sobreviveu ao cap/decay. Os handovers antigos são o corpus **frio** — o *porquê* de cada decisão, as alternativas descartadas, os becos sem saída. Isso não cabe na memória por definição, e nenhum `grep` entrega, porque a pergunta raramente usa as palavras do texto.

Se o índice existir (`stats` retorna chunks > 0), rode uma `query` com o argumento do usuário:

```bash
npx @tbluhm82/o1mem query "<assunto>" --project <slug> -k 5
```

> **Use o `npx`, não o caminho do script.** Quem instalou via npm não tem
> `~/.claude/skills/rag/o1mem_rag.py` — o pacote vendoriza o script dentro dele mesmo, e
> apontar para o caminho fixo fazia a consulta ao acervo frio falhar **em silêncio**: a
> retomada seguia sem o frio e ninguém notava. O `npx` resolve o script nos dois tipos de
> instalação. Só se o `npx` não existir, caia para o script local:
> `python ~/.claude/skills/rag/o1mem_rag.py --project <slug> query "<assunto>" -k 5`.

Os hits vêm marcados com o tipo. Trate-os assim:

- **`(handover)` = acervo frio.** É a resposta, não um índice para outra coisa. Se um trecho responde a pergunta, **cite-o e abra o handover de origem** — não o descarte por não ser `project_*.md`.
- **`(memory)` = corpus quente.** Aí sim serve de desempate para decidir qual `project_*.md` abrir.

Não confunda os dois papéis: usar a busca só para escolher arquivo de memória é jogar fora a única parte do acervo que a memória não tem. A primeira `query` da sessão carrega o modelo de embeddings (~45s); dispare-a **cedo**, em paralelo com a leitura do `MEMORY.md`, não depois.

## Passo 3 — Avise se o diretório está torto

Se o projeto resolvido **não** for o diretório primário da sessão, diga isso em uma linha, porque tem consequência prática:

- caminhos relativos e `git` apontam para o **outro** repo — use caminhos absolutos;
- se o projeto resolvido não estiver nem como diretório adicional, ferramentas de arquivo podem pedir permissão ou falhar;
- **o fix de verdade é abrir a sessão com `cd` no projeto do assunto** — mencione isso uma vez, sem sermão, e siga trabalhando.

## Passo 4 — Entregue ao Passo 4 da skill `handover`

Com o projeto certo resolvido e a memória certa carregada, siga **`~/.claude/skills/handover/SKILL.md`, Passo 4** — ele é a fonte de verdade de como retomar:

- abre o `HANDOVER_*.md` que a linha `RETOMADA` indica, em `~/.claude/projects/<slug>/handovers/` (ponteiro antigo apontando para `documentacao/` é de antes da migração: procure o mesmo nome de arquivo no local novo);
- lê a linha `retomada:` (modo **`rapida`** vs **`verificada`**);
- aplica a **regra de promoção** (se o próximo passo toca runtime, verifica mesmo que o arquivo diga `rapida`; rebaixar nunca);
- no modo `verificada`, **executa o "Caveat de estado vivo"** e reporta ✅/⚠️/❌ pelo que ENCONTROU — divergências antes de propor agir;
- fecha com o **Bloco de fechamento padrão** (assinatura + os dois comandos).

Não reescreva esse protocolo aqui. Se ele mudar, muda lá.

## Passo 5 — Trave a memória no projeto certo pelo resto da sessão

A partir da resolução, **todo** registro de memória desta sessão vai para `~/.claude/projects/<slug-resolvido>/memory/` — o projeto do **assunto**, não o do diretório onde a sessão abriu. Vale para `MEMORY.md` e para os `project_*.md`. Handover idem: `~/.claude/projects/<slug-resolvido>/handovers/` — mesmo slug, pasta irmã da memória. Nunca dentro do repositório de nenhum projeto.

É a regra `feedback_memoria_por_projeto_nao_misturar`, e é justamente na retomada cruzada que ela costuma ser violada — você acabou de ler a memória de um projeto enquanto o cwd aponta para outro. Escrever no lugar errado aqui contamina os dois índices de uma vez.

## O que esta skill NÃO é

- Não decide **como** retomar (modo, caveat, promoção) — isso é o Passo 4 do `handover`.
- Não escreve handover — isso é a skill `handover`.
- Não "adivinha com confiança" quando há ambiguidade — ela **pergunta**. Chutar é o bug que ela existe para matar.
- Não muda o diretório da sessão nem reabre nada — no máximo recomenda abrir no lugar certo da próxima vez.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.