TIPS 37 · LOOP

O loop

Os três loops que uso no Claude Code: o site depois de um deploy, os testes no ramo principal e a resposta que estás à espera. Com os textos para copiar e como os parar.

O que é e porque importa

/loop é um comando do Claude Code que repete uma tarefa sozinho, dentro da sessão que tens aberta. Dizes-lhe de quanto em quanto tempo e o que fazer, e ele volta a fazê-lo até o parares, durante sete dias no máximo.

O problema que resolve é verificar as coisas à mão. Fazes um deploy e de vez em quando abres o site para ver se funciona. Esperas pela revisão da App Store e estás sempre a abrir o email. Com um loop quem olha é o Claude, e tu trabalhas noutra coisa.

Mas o que o torna útil é outra coisa: peço-lhe que me escreva só se mudar alguma coisa. Um loop que a cada cinco minutos diz «está tudo bem» é ruído, e ao fim de uma hora deixas de o ler. Um que fica calado até acontecer alguma coisa, quando fala, ouves.

Não é uma rotina. O loop vive na sessão: arranca num instante, mas para quando fechas o terminal. As rotinas que correm mesmo com o computador desligado estão no guia sobre as rotinas.

1. Como se escreve

Numa sessão do Claude Code escreves /loop, depois o intervalo e depois a tarefa. Por exemplo /loop 5m seguido do que é para verificar.

  • O intervalo é um número com uma unidade: s para os segundos, m para os minutos, h para as horas, d para os dias. Ou seja, 5m, 1h, 1d.
  • O passo mais curto é um minuto: os segundos são arredondados para cima, ao minuto.
  • Se escolheres um intervalo estranho, como 7m ou 90m, o Claude arredonda-o para o mais próximo que consegue agendar e diz-te qual escolheu.

Quando o lanças, o Claude confirma-te de quanto em quanto tempo vai correr. A partir daí a tarefa volta a arrancar sozinha, na mesma conversa. Por isso, na volta seguinte sabe o que viu na anterior, e é por isso que te pode dizer se alguma coisa mudou.

Sem intervalo

Se escreveres /loop e logo a tarefa, sem intervalo, o ritmo é o Claude que decide. Depois de cada volta escolhe quanto esperar, de um minuto a uma hora, consoante o que viu: pouco se está para acontecer alguma coisa, mais se está tudo parado. No fim de cada volta escreve-te quanto vai esperar e porquê. E quando a tarefa acaba, pode fechar o loop sozinho.

2. Os três loops

Copiam-se tal como estão. Muda só as partes entre [ ].

O site e o deploy

Lanço-o logo a seguir a um deploy, ou quando mudei alguma coisa no servidor e não confio.

O prompt
/loop 5m abre [endereço do site] e verifica se responde. Se não responder ou der erro, lê os logs do último deploy e escreve-me o que correu mal e o que propões. Não mudes nada sem me perguntar. Se estiver tudo como antes, não escrevas nada.

As três últimas frases são as que contam. «Lê os logs do último deploy» diz-lhe onde olhar. «Não mudes nada sem me perguntar» evita que se ponha a arranjar o servidor sozinho. «Não escrevas nada» mantém-no calado quando está tudo bem.

Para ler os logs, o Claude tem de lá conseguir chegar a partir da sessão: com a ferramenta de terminal do teu alojamento ou com um conector. Se não chegar, o loop só verifica se o site responde. E a cada cinco minutos são muitas voltas: mantém-no curto, tem de fazer uma coisa só.

Os testes no ramo principal

Serve-me quando chegam ao main alterações que não fui eu a fazer naquele momento: outra sessão do Claude, um colaborador. De hora a hora descarrega as novidades e volta a correr os testes.

O prompt
/loop 1h descarrega as últimas alterações do ramo main e corre os testes. Escreve-me só se um teste que passava agora falhar: qual, que alteração o partiu e a correção que propões. Não toques no código.

«Só se um teste que passava agora falhar» é o filtro: de um teste que está partido há dias não precisas de ouvir falar de hora a hora, precisas de saber o que se partiu agora. «Não toques no código» deixa a decisão contigo: ele encontra e propõe, tu escolhes.

Uma coisa a saber: este loop descarrega as alterações para a pasta em que estás a trabalhar. Se tens ficheiros a meio, guarda o trabalho antes, ou põe-no a correr numa cópia à parte do projeto.

A resposta de que estás à espera

Por exemplo, a revisão da App Store. Aqui não ponho o intervalo: não sei quando chega a resposta, por isso deixo o Claude escolher o ritmo. Quando a resposta chega, diz-me o que fazer e fecha o loop.

O prompt
/loop verifica [onde chega a resposta: o email ligado, a página de estado] se já chegou a resposta sobre a revisão de [nome da app]. Quando mudar alguma coisa, diz-me o que diz e o que tenho de fazer, e depois fecha o loop.

O Claude tem de conseguir ver o sítio onde chega a resposta. Se for o email, a tua caixa tem de estar ligada à sessão com um conector. Se for uma página de estado, tem de a conseguir abrir. Antes de lançar o loop pergunto-lhe uma vez à mão:

O prompt
Consegues ver [onde chega a resposta]? Diz-me o que lá está agora, sem mudar nada.

3. Como se para

Um loop com intervalo fixo continua até o cancelares, ou até passarem sete dias. Para o cancelar basta pedir por palavras. Primeiro pede a lista:

O prompt
que tarefas agendadas tenho?

O Claude mostra-te as tarefas ativas, com a frequência e a tarefa. Depois dizes-lhe qual tirar:

O prompt
cancela a verificação do deploy

Um loop sem intervalo, enquanto espera pela volta seguinte, para-se com Esc: a volta pendente é cancelada e o loop não volta a arrancar. Os de intervalo fixo, pelo contrário, ficam, e cancelas-los pedindo como acima.

4. Antes de o deixares a correr

Só corre com a sessão aberta

O loop só corre enquanto o Claude Code estiver aberto e o computador ligado. Fechas o terminal e para. Se calhar uma volta enquanto o Claude está ocupado, espera; e as voltas perdidas não as recupera: assim que o Claude fica livre faz só uma.

Se fechares e depois retomares a sessão com claude --resume ou claude --continue, os loops de intervalo fixo voltam, se não tiverem expirado. Os que não têm intervalo não: voltas a lançá-los com /loop.

Dura no máximo sete dias

Qualquer loop dura no máximo sete dias desde que o crias, mesmo o que não tem intervalo: faz uma última volta e apaga-se sozinho. Serve para não deixar por aí um loop esquecido. Se precisares dele por mais tempo, volta a lançá-lo antes de expirar.

Usa as permissões da sessão

O loop tem as mesmas permissões da sessão em que o lanças. Se numa volta o Claude tiver de usar um comando que normalmente te pede para aprovar, fica ali parado à tua espera. Por isso a primeira volta vejo-a e aprovo o que for preciso, como o comando que corre os testes.

Com o computador desligado precisas de outra coisa

Para o que tem de correr com o computador desligado há o /schedule: cria uma rotina na cloud da Anthropic. Precisas de ter sessão iniciada com a tua conta claude.ai e o projeto no GitHub, e corre no máximo uma vez por hora. Como a configurar expliquei no guia sobre as rotinas.

Os erros mais comuns

  • Não lhe dizer quando ficar calado: a cada volta escreve-te «está tudo bem» e deixas de ler. Escreve sempre «escreve-me só se mudar alguma coisa».
  • Deixá-lo corrigir sozinho: enquanto não estás a ver pode mudar o servidor ou o código. Acrescenta «não mudes nada sem me perguntar».
  • Fechar o terminal e achar que continua: o loop vive na sessão. Para algo que corra com o computador desligado usa /schedule.
  • Mandá-lo olhar para um sítio que não vê: o loop anda às voltas em vão. Primeiro pergunta-lhe uma vez à mão se lá chega.
  • Ir embora na primeira volta: se o Claude tiver de te pedir uma permissão, o loop fica parado à tua espera. Vê a primeira volta e aprova o que for preciso.
  • Esquecer a validade: ao fim de sete dias o loop apaga-se sozinho. Se ainda precisares dele, volta a lançá-lo antes.

Checklist

  • Intervalo com a unidade: 5m, 1h, 1d
  • Partes entre [ ] mudadas
  • «Escreve-me só se mudar alguma coisa» no prompt
  • «Não mudes nada» no prompt
  • O Claude chega aos logs, ao email ou à página de estado
  • Primeira volta vista, permissões aprovadas
  • Apontado quando acabam os sete dias

Perguntas frequentes

Posso usar a sessão enquanto o loop está a correr?

Sim. O loop arranca entre uma mensagem e outra: se calhar uma volta enquanto o Claude está a trabalhar para ti, espera que acabe. Mas as voltas ficam na mesma conversa, por isso quanto mais curto for o prompt e mais calado ficar quando não há nada a dizer, melhor.

E se precisar de uma verificação só uma vez?

Não precisas de /loop. Escreve por palavras, tipo «daqui a 45 minutos verifica se os testes passaram»: o Claude agenda uma só verificação, que se apaga sozinha depois de correr.

← Todos os guias