Claude escreve código, um teste quebra, e ele devolve o erro para você lidar com ele.
Um agente auto-corretivo não faz isso: ele lê o próprio erro, corrige a causa e executa novamente até ficar verde.
Configure uma vez e você para de ser o debugger não remunerado do seu agente.
Aqui está a configuração completa que você precisa 👇
Antes de mergulharmos, compartilho notas diárias sobre IA e vibe coding no meu canal do Telegram: https://t.me/zodchixquant🧠

Por que uma única passada não é suficiente
Por padrão, o Claude executa uma tarefa uma vez. Um teste falha, ele reporta o erro e espera. Você lê, cola de volta, manda ele tentar de novo. Você está fazendo o debugging, ele só está digitando.
Um agente auto-corretivo inverte isso. Ele lê o próprio erro, descobre que tipo de bug é, corrige a causa e executa novamente, da mesma forma que um debugger pensa. Você intervém apenas quando ele passa ou fica genuinamente travado.
Arquivo 1: o comando de correção
Este é o loop que você realmente executa. Coloque em .claude/commands/fix.md:
1---2description: Executa uma tarefa e auto-corrige até que todos os testes passem3argument-hint: <tarefa>4allowed-tools: Read, Write, Edit, Glob, Grep, Bash5model: sonnet6---78Tarefa: $ARGUMENTS910Loop:111. Implemente a tarefa.122. Execute a suíte de testes: `npm test` (ou pytest, cargo test).133. Se todos os testes passarem: pare e mostre-me o resultado.144. Se um teste falhar: classifique o tipo de erro, nomeie a causa raiz,15 corrija essa causa e volte para o passo 2.165. Limite de 5 tentativas. Anuncie o número da tentativa a cada rodada.1718A ordem classificar-depois-corrigir é o ponto principal. Diagnóstico antes19da edição, em todas as rodadas. Nunca enfraqueça um teste para passar, corrija o código.
Você digita /fix adicionar paginação ao endpoint de usuários e o agente escreve, testa e se auto-corrige até que a suíte fique verde.
Arquivo 2: o hook de verificação automática
O comando funciona sob demanda. O hook torna a auto-verificação automática a cada edição.
Adicione em .claude/settings.json:
1{2 "hooks": {3 "PostToolUse": [4 {5 "matcher": "Write|Edit",6 "hooks": [7 { "type": "command", "command": "npm test --silent 2>&1 | tail -5 || echo 'TESTS FAILING, fix before continuing'" }8 ]9 }10 ]11 }12}
Agora, toda vez que o Claude edita um arquivo, os testes são executados e o resultado volta para a visão dele.
Uma falha aparece imediatamente, então o agente a corrige no mesmo fluxo, em vez de seguir em frente e acumular mais mudanças em cima de código quebrado.
Arquivo 3: ensine-o a ler o erro
Este é o arquivo que separa um verdadeiro debugger de um chutador. A maioria dos agentes vê "teste falhou" e começa a editar aleatoriamente.
Um bom agente lê o tipo de erro primeiro, porque cada tipo aponta para uma causa diferente. Coloque isso em CLAUDE.md:
1## Como ler uma falha antes de corrigi-la23Sempre nomeie o tipo de erro primeiro. Cada um significa algo diferente:45- Falha de asserção (esperava X, recebeu Y): a lógica está errada.6 Rastreie de volta da asserção até onde o valor foi construído.7 Corrija o cálculo, não a expectativa do teste.89- Erro de tipo / undefined is not a function: incompatibilidade de formato.10 Algo é nulo, ou o tipo errado chegou a esta linha.11 Encontre onde esse valor se origina, proteja ou corrija lá.1213- Timeout / travamento: falta um await, ou uma promise nunca resolve.14 Procure por chamadas assíncronas sem await, ou uma condição que nunca muda.1516- Import / módulo não encontrado: problema de caminho ou dependência, não de lógica.17 Corrija o caminho ou instale, não mexa no código que o usa.1819- Instável (passa às vezes): estado compartilhado ou temporização, nunca aleatório.20 Procure por testes dependentes de ordem ou tempo/rede não simulados.2122Regra: declare o tipo e a causa raiz em uma frase em voz alta23antes de editar. Se você não consegue nomear a causa, está chutando. Pare.
Um erro de tipo e uma falha de asserção exigem movimentos opostos: um é um problema de formato de dados a montante, o outro é lógica errada no local. Classifique primeiro e o agente corrige a coisa certa.
Pule isso e ele edita aleatoriamente até o vermelho desaparecer, que é como você consegue uma suíte verde que está silenciosamente quebrada.
O que você realmente vê
Você digita uma linha:
1/fix o formatador de data retorna fusos horários errados
Então ele trabalha sozinho:
1Tentativa 12 executou testes → FALHOU3 tipo: asserção (esperava 5, recebeu 11)4 causa: tamanho da página não aplicado à consulta5 corrigiu a cláusula LIMIT67Tentativa 28 executou testes → FALHOU9 tipo: erro de tipo (offset is undefined)10 causa: página 1 não envia offset, padrão errado11 adicionou offset = (página-1)*tamanho1213Tentativa 314 executou testes → TODOS VERDES (7/7)1516Corrigido em 3 tentativas. Revisar o diff?
Você nunca colou um erro de volta. Ele leu os próprios erros, nomeou cada causa e corrigiu até a suíte passar.
Erros comuns
Corrigir antes de diagnosticar. O maior de todos. Um agente que edita antes de nomear o tipo de erro está chutando, e chutar transforma vermelho em verde por sorte, não por correção. A regra de classificar primeiro é toda a defesa.
Tratar todo erro da mesma forma. Um timeout e uma falha de asserção não têm nada em comum, mas um agente sem o guia de tipos de erro trata ambos como "algo está errado" e edita a linha mais próxima. Metade das suas correções vão parar no arquivo errado.
Remendar o sintoma. Envolver uma chamada que lança erro em try/catch faz o teste passar e deixa o bug. O protocolo proíbe silenciar erros exatamente por esse motivo.
Deixar enfraquecer os testes. Um agente autorizado a editar testes vai eventualmente deletar o que falha para chegar ao verde. Uma suíte que passa mas não prova nada é o pior resultado, então esta regra é inegociável.
A configuração de 5 minutos
2 minutos: crie .claude/commands/fix.md.
1 minuto: adicione o hook PostToolUse em settings.json.
1 minuto: adicione o protocolo de auto-debug em CLAUDE.md.
1 minuto: execute /fix em um bug conhecido e veja-o trabalhar a causa, tentativa por tentativa.
Você deixa de ser o humano que retransmite erros. O agente lê o próprio vermelho e corrige até ficar verde. Ele não ficou mais inteligente, só parou de devolver o problema para você.
Obrigado por ler!
Compartilho notas diárias sobre IA, finanças e vibe coding no meu canal do Telegram: https://t.me/zodchixquant






