Execução Longa|INEMA.CLUB-PRO

Aula 5 · 17 min

Handoff que confere se salvou

Um handoff escrito pelo próprio agente se autocertifica: ele pode dizer que testou o que não testou e o arquivo pode nem ter sido gravado. Desde 17/10/2026 a prova saiu do texto: um script grava carimbo, commit e impressão digital dos arquivos, e o hook confere na transcrição se o handoff foi mesmo salvo.

Começar a aula
Bastão de revezamento metálico sobre um caderno técnico aberto, numa mesa escura.

Nesta aula você vai

  1. 1O que vai no handoff e o que não vai
  2. 2Bloco de estado: commit e sha256 gravados pelo script
  3. 3--conferir: igual (0), divergente (2), sem bloco (3)
  4. 4Perguntas-teste e a nota N/5 na retomada

Objetivo: gravar um handoff pelo script, conferir o frescor dele com --conferir e saber quando o hook cobra, grava sozinho ou avisa que não salvou.

01Do pedido à retomada conferida

Skills session-handoff e prime do kit agente-claude-codex 1.8.3, com o hook-longrun 1.9.6.

Clique em cada bloco do diagrama para ver o que ele faz.

Regra de decisão: continua verdade depois da tarefa → memória persistente (CLAUDE.md, AGENTS.md). Estado desta tarefa → handoff. Registro do que aconteceu → histórico (git, progress, failures, decisions).

02Quatro regras de um handoff que serve

Da análise de 17/10/2026 do kit.

1. Ponteiro, não texto corrido

Mapa de retomada, fontes das perguntas-teste e evidências são caminhos e commits. Isso sobrevive à compactação, à sessão nova e à troca de modelo.

Histórico longo enterra o que o próximo agente precisa fazer.

03Instalar as skills e ensaiar o --conferir

As skills vêm do kit agente-claude-codex (1.8.3). O ensaio roda num repositório descartável em /tmp.

Terminal · instalar session-handoff e prime (Claude e Codex)
git clone https://github.com/inematds/agente-claude-codex ~/projetos/agente-claude-codex
cd ~/projetos/agente-claude-codex
cp -r skills/session-handoff/dist/claude/session-handoff skills/prime/dist/claude/prime ~/.claude/skills/
mkdir -p ~/.agents/skills
cp -r skills/session-handoff/dist/codex/session-handoff skills/prime/dist/codex/prime ~/.agents/skills/
mkdir -p ~/projetos/<seu-projeto>/handoffs/history   # o hook só pede handoff onde esta pasta existe
Terminal · ensaio do --conferir
rm -rf /tmp/ensaio-handoff && mkdir -p /tmp/ensaio-handoff/handoffs/history && cd /tmp/ensaio-handoff
git init -q && git config user.name ensaio && git config user.email ensaio@local
echo "def f(): return 1" > app.py && git add -A && git commit -qm base
H=~/.claude/skills/session-handoff/scripts/handoff-grava.py
cat > /tmp/corpo-handoff.md <<'EOF'
# Handoff — ensaio-conferir

## Estado aceito
- [confirmed] `app.py` devolve 1 (commit: base; teste: python3 -c "import app; print(app.f())" → 1)

## Não fazer
- Não mudar a assinatura de f().

## Próxima ação
Trocar o retorno de f() para 2 e rodar o mesmo teste, que deve imprimir 2.

## Perguntas-teste
1. Qual é a tarefa e o critério de pronto? (fonte: app.py)
2. Qual foi a última decisão e por quê? (fonte: git log)
3. O que não pode mudar? (fonte: app.py)
4. O que está pela metade? (fonte: app.py)
5. Qual é a próxima ação e por quê? (fonte: app.py)
EOF
python3 $H --assunto ensaio-conferir < /tmp/corpo-handoff.md
F=$(ls handoffs/history/*.md | head -1)
python3 $H --conferir $F; echo "saída: $?"
echo "def f(): return 2" > app.py
python3 $H --conferir $F; echo "saída: $?"
Exemplo do repositório
snapshot: handoffs/history/2026-10-19T070502Z-ensaio-conferir.md
latest.md: 1 assunto(s) aberto(s): ensaio-conferir
commit 8900d4e ensaio <ensaio@local> (sem push)
retomar ESTE handoff numa sessão nova (Codex: /new no lugar de /clear):
  /clear
  /prime handoffs/history/2026-10-19T070502Z-ensaio-conferir.md
frescor: igual (1 arquivo(s) conferido(s); commit b89d8ad3ba51)
saída: 0
frescor: divergente — o handoff é pista, não fato; confira antes de agir
  - app.py: mudou (citado no handoff)
saída: 2

O carimbo e os hashes mudam a cada execução. A linha snapshot: é a que o hook lê na transcrição para saber qual handoff ESTA sessão gravou.

04Prática

As duas primeiras não gastam cota. A terceira usa uma sessão sua.

E10 · Skills instaladas

10 min

Instale session-handoff e prime para o Claude e para o Codex e crie handoffs/history/ no projeto da sua execução.

Pronto quando: python3 ~/.claude/skills/session-handoff/scripts/handoff-grava.py --help | grep -c conferir → 1 ou mais, e ls ~/.agents/skills lista prime e session-handoff.

E11 · Frescor igual e divergente

10 min

Rode o ensaio do --conferir inteiro.

Pronto quando: frescor: igual com saída: 0, e depois de mudar app.py, frescor: divergente com - app.py: mudou e saída: 2.

E12 · Um handoff real, retomado

20 min

No projeto da sua execução, peça /session-handoff no fim de um bloco de trabalho. Abra uma sessão nova e rode /prime com o caminho que o script imprimiu.

Pronto quando: o resumo do /prime mostra a linha de frescor (igual) e Perguntas-teste: N/5; anote o N no progress.md da execução.

05Teste da aula

Pergunta 1 de 4

Quem escreve o bloco de estado (commit e sha256) do handoff?competência

06Em três frases

O script grava a provaCarimbo real, arquivo novo, commit e sha256 dos arquivos; [confirmed] só com commit, teste ou arquivo.
O hook confereProcura a gravação na transcrição, cobra até 2 vezes e avisa quando não salvou; aos 45 min parado grava numa cópia.
A retomada se mede/prime roda o --conferir, checa as provas e dá a nota das perguntas-teste.

Para ir além

Aula anteriorPróxima aula