Pular para o conteúdo
MÓDULO 3.2

🧪 Loops para copiar e rodar

Chega de teoria. Este módulo é uma caixa de prompts prontos: você cola no Claude Code e o loop roda de verdade. Cada um vem com o objetivo, o bloco para colar e como conferir que funcionou — e no fim você aprende a adaptar o template para a SUA tarefa.

6
Tópicos
~50
Minutos
Prática
Nível
Copy-run
Tipo
Progresso: 0% 0 de 6
OBJETIVO checável agir (1 mudança) rodar o check pronto? ou parar no teto commit + para não? volta para agir (mais uma volta)

Leia o diagrama: todo prompt deste módulo tem a mesma forma — objetivo checável, uma mudança por volta, rodar o check, e parar quando passa (ou no teto). Aprenda a forma uma vez e troque só o miolo.

1

🧪 O primeiro loop: teste falhando

Aqui está o loop mais limpo que existe para começar: consertar testes que falham. O "pronto" é à prova de opinião — ou os testes passam, ou não. O prompt abaixo está completo: abra um projeto pequeno com algum teste quebrado e cole.

Objetivo: deixar o Claude Code rodar sozinho, em loop, até toda a suíte passar — fazendo uma correção por vez e parando no teto de tentativas.

# Cole no Claude Code dentro de um projeto com testes falhando

Objetivo: faça todo teste em /tests passar ao rodar `npm test`.

Loop:
  (1) rode `npm test` e leia as falhas;
  (2) abra o arquivo mais responsável pela 1ª falha e faça UMA correção;
  (3) rode `npm test` de novo pra verificar;
  (4) se ainda falhar, repita do passo 1.

Depois de cada correção que melhora, escreva 1 linha em PROGRESS.md e commite.
Pare quando todos passarem ou após 10 tentativas.
Não edite nada fora de /src e /tests, e não apague testes pra fazê-los passar.

Como verificar: assista o terminal — você deve ver o ciclo rodar testes → editar 1 arquivo → rodar de novo se repetindo, com o número de falhas caindo. No fim, rode npm test você mesmo e confira o verde; abra o PROGRESS.md e o git log para ver o rastro de cada volta.

🧩 Por que esse é o melhor primeiro loop

Ele tem tudo o que um loop sólido precisa, já embutido: objetivo checável por uma máquina (npm test), uma mudança por volta, verificação real a cada passo, estado salvo e um teto de tentativas. Domine essa forma e os outros cinco prompts deste módulo são variações dela.

2

✍️ Versão não-coder: reescrever texto

Loop não é coisa de programador. A mesma forma serve para texto. Trocamos só o trabalho e o jeito de checar: o objetivo vira "reescrever este parágrafo", e o "pronto" vira duas regras objetivas que dá para contar.

Objetivo: encurtar um parágrafo até passar em duas regras mensuráveis, iterando sozinho até bater (ou parar em 5 tentativas).

# Cole no Claude Code (ou em qualquer chat com ferramentas de contagem)

Objetivo: reescreva o parágrafo abaixo.

Pronto quando: o texto está abaixo de 50 palavras E menciona a palavra "preço".

Loop:
  (1) reescreva uma versão;
  (2) conte as palavras e procure "preço";
  (3) se quebrar alguma regra, reescreva de novo mirando o que faltou;
  (4) repita.

Pare quando as duas regras passarem, ou após 5 tentativas.

Parágrafo:
<parágrafo que você cola aqui>

Como verificar: peça a contagem final de palavras (deve ser < 50) e procure "preço" no resultado. Repare: o check confere as regras, não se o texto ficou agradável de ler — isso é exatamente um check Functional. Se quiser elegância também, você adicionaria um segundo avaliador (tópico 6).

3

🎚️ /goal e /loop no Claude Code

Em vez de escrever o loop à mão toda vez, você pode declarar o objetivo e deixar o Claude Code montar o ciclo. /goal diz onde chegar; /loop faz girar até lá. Juntos viram um loop que se auto-dirige e sabe a hora de parar.

Objetivo: gerar e refinar conceitos de thumbnail até um deles atingir a nota-alvo numa rubrica que você mesmo define.

# Cole no Claude Code

/goal Gerar 10 conceitos de thumbnail para um vídeo sobre <seu tema>.
      Pontue cada conceito de 0 a 10 em três critérios:
        - clareza (dá pra entender o tema em 1 segundo)
        - contraste (cores e formas saltam num feed)
        - curiosidade (dá vontade de clicar)
      A nota do conceito é a média dos três.
      Pronto quando o melhor conceito atingir nota média >= <8>.

/loop A cada volta: pegue o conceito de maior nota, descreva 2 variações
      dele mirando o critério mais fraco, pontue as variações pela mesma
      rubrica e mantenha a melhor. Pare quando bater a nota-alvo ou após
      8 voltas. Mostre a tabela de notas no fim.

Como verificar: no fim deve aparecer uma tabela com cada conceito e suas três notas, e o vencedor com média ≥ 8 (ou um aviso de que parou no teto sem bater). Confira você se a rubrica foi aplicada de forma consistente — se duas thumbnails parecidas tiraram notas muito diferentes, aperte a descrição dos critérios.

4

🔒 Gate humano pra tarefa arriscada

Quando o loop pode tocar em algo que dói desfazer — apagar arquivos, enviar e-mail, fazer um pagamento — você não quer que ele decida sozinho. Adicione um gate humano: uma linha que obriga o agente a parar e pedir sua confirmação antes de qualquer ação irreversível.

Objetivo: rodar um loop normalmente, mas com um freio que impede qualquer ação destrutiva ou externa sem sua aprovação explícita.

# Acrescente esta linha a QUALQUER prompt de loop deste módulo

Pause e me pergunte antes de deletar, enviar ou pagar qualquer coisa.

# (opcional, deixa o gate mais explícito)
Trate como irreversível: apagar/sobrescrever arquivos fora de /src,
fazer git push, enviar e-mail/mensagem, ou qualquer pagamento.
Nesses casos, descreva o que faria e espere meu "ok" antes de agir.

Como verificar: rode o loop sobre uma tarefa que naturalmente chega numa ação arriscada (ex.: limpar uma pasta). O agente deve parar e perguntar em vez de executar — se ele apagar algo sem te consultar, o gate não pegou: torne a lista de ações irreversíveis mais específica e teste de novo num diretório de brinquedo.

💡 Use isto no seu primeiro run, sempre

No começo, escope as permissões para o mínimo (editar /src e /tests, rodar testes) e ponha este gate por cima. O loop trabalha; o merge, o push e o envio ficam com você. É barato de adicionar e te salva de um estrago irreversível enquanto você ainda está aprendendo a confiar no loop.

5

💾 Loop com PROGRESS.md + commits

Tarefas grandes não cabem numa única passada. A solução é dar ao loop um lugar para guardar o estado: um arquivo de progresso que ele lê no começo e atualiza no fim de cada volta, mais um commit por mudança. Assim, se a sessão acabar, a próxima retoma de onde parou.

Objetivo: rodar um loop longo que progride uma feature por vez, salvando estado a cada volta para poder ser interrompido e retomado sem perder trabalho.

# Cole no Claude Code num repositório git

Objetivo: implementar <a feature/lista de tarefas> até estar completa e testada.

No início de cada volta:
  - leia PROGRESS.md para saber o que já foi feito e o que vem a seguir.

Durante a volta:
  - escolha a PRÓXIMA tarefa não-feita e trabalhe SÓ nela (uma de cada vez);
  - rode os testes para verificar a mudança (self-verify);
  - se passou: atualize PROGRESS.md (marque a tarefa, anote 1 linha do que fez)
    e faça um commit com uma mensagem curta e clara;
  - deixe a árvore de trabalho limpa (sem arquivos soltos) para a próxima volta.

Pare quando PROGRESS.md não tiver mais tarefas, ou após 15 voltas.

Como verificar: abra o PROGRESS.md e veja o histórico crescendo linha a linha; rode git log --oneline e confira um commit por mudança. O teste de fogo: interrompa o loop no meio, comece uma sessão nova com o mesmo prompt e veja se ele retoma da tarefa certa em vez de recomeçar do zero.

6

🧩 Adaptando o template pra sua tarefa

Todos os prompts deste módulo são o mesmo esqueleto com peças trocadas. Para a SUA tarefa, mantenha a forma do loop e troque só duas coisas: o domínio (que trabalho) e o checker (como medir "pronto").

Um terminal com um prompt de loop sendo colado e rodando, com botão de copiar destacado

O que ver: o fluxo é sempre copiar → colar → rodar → observar. O que muda de tarefa para tarefa não é a mecânica, são os campos <entre setas>: o objetivo, o que conta como pronto e o teto.

Os três tipos de checker que você vai trocar conforme a tarefa:

⚙️ Functional

Regras objetivas: testes passam, < 50 palavras, build compila. Resposta sim/não.

🖼️ Visual

Tira um screenshot e compara com o esperado: layout, cor, "o botão apareceu?".

🧑‍⚖️ Judgment

Um 2º agente dá nota numa rubrica (tom, clareza) até passar. Para qualidade subjetiva.

Objetivo: ter um template em branco para preencher com a sua tarefa — só troque os campos marcados <assim> e cole.

# Template em branco — preencha os campos <entre setas> e cole no Claude Code

Objetivo: <o que produzir, numa frase>.
Pronto quando: <o critério checável de "pronto">.

Loop:
  (1) faça UMA mudança em direção ao objetivo;
  (2) rode o check: <como medir — testes / contar / screenshot / 2º agente>;
  (3) se não passou, ajuste mirando o que faltou;
  (4) repita.

Salve o progresso: <ex.: 1 linha em PROGRESS.md + commit a cada melhora>.
Pare quando passar, ou após <N> tentativas.
Não toque em <o que está fora de escopo>; pause e me pergunte antes de
qualquer ação irreversível.

Como verificar: se você conseguiu preencher os quatro campos sem hesitar — objetivo, critério de pronto, qual checker, e o teto — sua tarefa está pronta para virar loop. Se travou no "Pronto quando", o problema não é o prompt: é que a tarefa ainda não tem um "pronto" checável (volte ao módulo 3.1, passo 2).

Ao adaptar o template para uma tarefa nova, o que você troca?

🧾 Resumo do Módulo

O primeiro loop — consertar testes que falham: objetivo checável por máquina, uma mudança por volta, teto de tentativas.
Versão não-coder — a mesma forma para texto, com um check Functional (regras que dá para contar).
/goal e /loop — declarar o destino e deixar o ciclo se auto-dirigir e se auto-terminar.
Gate humano — o check You-decide: pause antes de deletar, enviar ou pagar.
PROGRESS.md + commits — estado externo para loops longos que podem ser retomados.
Adaptar o template — mantenha a forma; troque só o domínio e o checker (Functional/Visual/Judgment).

Próximo:

3.3 — 8 ingredientes de um loop sólido