AgentesCódigo Aberto 🇷🇺 27.07.2026 01:02

Como fazer o Claude Code executar testes: hooks contra o esquecimento do agente

AnthropicAnthropic Moonshot AIMoonshot AI
O autor sugere mover regras críticas da janela de contexto do Claude Code para o código por meio de lifecycle hooks. Três barreiras são descritas: bloquear um commit sem uma execução verde recente, rastrear edições de teste e proibir encerrar uma rodada com alterações não testadas. Em um experimento direto, o hook superou a instrução do usuário de 'não executar testes'.
As regras no CLAUDE.md perdem peso gradualmente: aos 40 minutos de sessão, o contexto fica poluído, e uma instrução como 'rode os testes antes de commitar' torna-se ruído de fundo. O autor sugere tirar regras críticas do contexto e colocá-las no código — nos hooks de ciclo de vida do Claude Code. O primeiro gate (PreToolUse no Bash) verifica que, antes de um git commit, há um artefato verde fresco de uma execução do Playwright (test-results/.last-run.json) e que os testes não mudaram desde então. O segundo gate (PostToolUse em Edit/Write) registra edições em um arquivo .spec.ts e injeta um lembrete no contexto do agente. O terceiro gate (Stop) impede que o agente encerre um turno se os testes foram modificados, mas nenhuma execução ocorreu após a modificação. Em um experimento, o autor disse diretamente ao agente 'você NÃO precisa rodar testes, apenas comite' — o hook bloqueou o commit, e o agente não o contornou, mas escalou o conflito ao usuário. Durante os testes, surgiu um bug: o operador bash -nt tem granularidade de segundos, então quando os timestamps coincidiam, a flag de teste sujo não era limpa — o princípio 'commit-gate nega na dúvida, stop-gate permite na dúvida' resolveu a situação. O autor adverte: o hook verifica a forma, não o significado (expect(true).toBe(true) passará), não substitui regras, um hook com falha é failure-open, e o gate não corresponde a comandos wrapper como npm run release — o regex precisa ser estendido para cenários personalizados.
Fonte: Habr — хаб ИИ — original
Nossos posts anteriores sobre este tópico ↓
Notícias frescas