Loop de testes (fix, test, fix)
Imagine assim: O ciclo natural: tente, veja o resultado, corrija. E o que todo programador faz manualmente. A diferenca e que o Claude faz dezenas de ciclos em minutos.
O pattern mais classico: "rode pytest, corrija os erros reportados, rode de novo, repita ate tudo passar". O Claude le o output do teste, identifica a causa da falha, edita o codigo e roda de novo. Em projetos com boa cobertura de testes, isso e devastadoramente eficiente.
Dica: passe o comando de teste especifico no prompt. "Rode pytest tests/test_auth.py e corrija ate todos passarem" e muito melhor que "rode os testes". Quanto mais especifico o comando, menos tokens gastos buscando o que rodar.
Em 1 frase: loop de testes = rode, leia o erro, corrija, repita. O pattern mais util do loop mode.
Loop de lint/format
Imagine assim: Limpar uma casa bagunçada: voce passa pano, ve que ficou uma mancha, passa de novo. Com lint e igual: roda, corrige, roda, ate zero warnings.
Limpar um codebase de warnings de lint e tedioso para humanos e perfeito para loops. O prompt: "rode eslint . e corrija todos os erros automaticamente. Nao mude logica de negocio, so formatacao e style issues. Repita ate zero erros". O Claude vai iterando arquivo por arquivo.
Cuidado com auto-fix agressivo: configure o loop para nao mudar logica. Use flags como --fix para o que e seguro e deixe warnings de logica para revisao manual. Um filtro util: "corrija apenas erros de tipo 'formatting' e 'style', ignore 'logic' e 'security'".
Em 1 frase: lint loop = roda, corrige style issues, roda de novo. Nao mude logica, so formatacao.
Loop de migracao
Imagine assim: Mudar de casa: caixa por caixa, comodo por comodo. Nao joga tudo no caminhao de uma vez. Migracao de codigo e igual: arquivo por arquivo, com validacao entre cada um.
Migracoes de API, de versao de dependencia ou de framework sao tarefas perfeitas para loop: repetitivas, mecanicas e com criterio claro de sucesso (compila/nao compila, testes passam/nao passam). O prompt ideal: "migre cada arquivo de API v2 para v3, rodando type-check apos cada arquivo".
A chave e migrar um arquivo por vez e validar entre cada um. Se voce migra 50 arquivos de uma vez e algo quebra, nao sabe qual causou. Um por um, com commit entre cada, te da rollback granular e clareza de qual migração introduziu o problema.
Em 1 frase: migre um arquivo por vez com validacao entre cada. Commit granular = rollback facil.
Cada tipo de loop pode ser usado isoladamente ou combinado no loop composto.
Loop de dados
Imagine assim: Peneirar ouro: passe a peneira, veja o que ficou, ajuste o tamanho da malha, peneire de novo. Dados sujos precisam de multiplas passadas de limpeza.
Processar datasets e iterativo por natureza: parse, valide schema, corrija inconsistencias, re-valide. O Claude pode rodar scripts de validacao, ler os erros e ajustar os dados ou o script de transformacao. Especialmente util para CSVs malformados, JSONs inconsistentes ou migracoes de banco.
Defina assertions claras: "nenhum campo email pode ser null", "todos os timestamps devem estar em ISO 8601", "nenhuma linha duplicada por ID". O loop roda a validacao, identifica violacoes e corrige ate as assertions passarem.
Em 1 frase: loop de dados = parse, valide, corrija, re-valide. Assertions claras sao o criterio de parada.
Loop de docs
Imagine assim: Documentacao e como pintura: se voce pinta metade da parede, fica pior do que nao pintar nada. Loop de docs garante que tudo fica consistente.
Gerar e atualizar docs e uma tarefa que humanos adiam eternamente. O loop ideal: "atualize os docstrings de todas as funcoes publicas em src/, valide que os exemplos compilam e que os links internos nao estao quebrados. Repita ate tudo consistente".
Combine com ferramentas de validacao: links checkers, doc generators (pydoc, typedoc), e example runners. O Claude pode rodar esses validadores como criterio de parada: "pare quando o link checker retornar zero broken links".
Em 1 frase: loop de docs = gere, valide links e exemplos, corrija, repita. Documentacao viva.
Loop composto
Imagine assim: O grand finale: nao so os testes passam, mas tambem o lint esta limpo, os types estao certos E o build funciona. Quatro portoes de saida, todos verdes.
O loop composto combina multiplos criterios: "repita ate que (1) pytest passe, (2) eslint retorne zero erros, (3) tsc --noEmit passe e (4) npm run build complete com sucesso". E o mais parecido com um CI pipeline rodando localmente.
A ordem dos criterios importa: comece pelos mais rapidos (lint) e termine pelos mais lentos (build). Isso economiza tokens porque falhas rapidas sao corrigidas primeiro, sem gastar tempo rodando o build inteiro para descobrir um erro de formatacao.
Em 1 frase: loop composto = multiplos criterios combinados. Comece pelo mais rapido, termine pelo mais lento.
# Loop de testes claude "rode pytest tests/ e corrija ate tudo passar" --allowedTools Edit,Bash # Loop de lint claude "rode eslint . --fix e corrija ate zero erros" --allowedTools Edit,Bash # Loop composto claude "corrija ate: pytest passe, eslint zero erros, tsc --noEmit passe e npm run build ok" --allowedTools Edit,Bash # Loop de migracao claude "migre cada arquivo de lodash para es-toolkit. Rode tsc apos cada arquivo." --allowedTools Edit,Bash,Read
Resumo do Modulo
Proximo modulo:
2-5 — Combinando Plan + Loop: o pipeline completo para tarefas complexas.