Stop Hook no Claude Code: verificar antes de “pronto”
Adicione uma checagem local que bloqueia o encerramento quando um teste falha ou um arquivo não existe.
A mensagem “pronto” não prova que o Claude Code executou os testes ou gerou o arquivo esperado. Um Stop Hook pode rodar uma checagem local curta antes do fim do turno. Ele não substitui CI nem uma estratégia completa de testes.
Hook mínimo
Em .claude/settings.json, ligue o evento Stop ao script ./scripts/check-before-stop.sh com timeout curto. O script pode executar um teste focado e verificar dist/app.js.
Retorne 0 quando tudo passar. Em caso de erro, escreva uma causa curta em stderr e retorne 2. No Claude Code, o código 2 bloqueia Stop e entrega a causa ao Claude; 1 normalmente é apenas um erro não bloqueante.
Stop Hook executa a checagem no fim do turno. CLAUDE.md descreve regras, mas não executa comandos. CI roda separadamente e continua sendo a barreira final.
Validação completa
- Use de propósito um caminho inexistente e confirme manualmente o código
2. - Execute uma tarefa pequena no Claude Code. O hook deve impedir o encerramento e mostrar a causa curta.
- Corrija o teste ou caminho e repita. O código
0deve liberar o fim do turno. - Se
stop_hook_activejá for true, não faça retry cego: corrija a checagem ou pare a sessão para reparar o hook.
Não imprima API Keys, .env ou logs completos. Para um fluxo API separado, consulte a documentação BetterToken para Claude Code.