/goal define uma condição de conclusão e Claude continua trabalhando em direção a ela sem que você solicite cada etapa. Após cada turno, um modelo pequeno e rápido verifica se a condição é atendida. Se o modelo julgar que ainda não foi atendida, Claude inicia outro turno em vez de devolver o controle a você. O objetivo é limpo automaticamente assim que a condição é atendida, se o modelo julgar a condição impossível de satisfazer, ou se um turno falhar em um erro que você tenha que corrigir.
Use um objetivo para trabalho substancial com um estado final verificável:
- Migrar um módulo para uma nova API até que cada site de chamada compile e os testes passem
- Implementar um documento de design até que todos os critérios de aceitação sejam atendidos
- Dividir um arquivo grande em módulos focados até que cada um esteja dentro de um orçamento de tamanho
- Trabalhar através de uma fila de problemas rotulados até que a fila esteja vazia
Comparar formas de manter uma sessão em execução
Três abordagens mantêm a sessão atual em execução entre prompts. Escolha com base no que deve iniciar o próximo turno:/goal e um Stop hook são acionados após cada turno. /goal é um atalho com escopo de sessão: você digita uma condição e ela fica ativa apenas para a sessão atual. Um Stop hook reside em seu arquivo de configurações, se aplica a cada sessão em seu escopo e pode executar um script para verificações determinísticas ou um prompt para avaliações baseadas em modelo.
Modo automático por si só aprova chamadas de ferramentas dentro de um único turno, mas não inicia um novo. Claude para quando julga o trabalho concluído. /goal adiciona um avaliador separado que verifica sua condição após cada turno, portanto a conclusão é decidida por um modelo novo em vez daquele que está fazendo o trabalho. Os dois são complementares: o modo automático remove prompts por ferramenta e /goal remove prompts por turno.
Usar /goal
Um objetivo pode estar ativo por sessão. O mesmo comando define, verifica e limpa dependendo do argumento.
Definir um objetivo
Execute/goal seguido pela condição que você deseja satisfazer. Se um objetivo já estiver ativo, o novo o substitui.
◎ /goal active mostra há quanto tempo o objetivo está em execução.
Um objetivo não altera seu modo de permissão. Para permitir que turnos de objetivo sejam executados sem supervisão, execute /goal em modo automático. Em modo Manual, Claude ainda solicita antes de chamadas de ferramentas que suas configurações ainda não permitem, como o comando de teste acima.
Enquanto o objetivo está ativo, a transcrição mostra cada veredicto que o avaliador retorna, e você pode pressionar Ctrl+O para ver o motivo por trás dele. A visualização de status também mostra o motivo mais recente, para que você possa ver para o que Claude está trabalhando a seguir.
Escrever uma condição eficaz
O avaliador julga sua condição em relação ao que Claude apresentou na conversa. Ele não executa comandos ou lê arquivos independentemente, portanto escreva a condição como algo que a própria saída de Claude possa demonstrar. “Todos os testes emtest/auth passam” funciona porque Claude executa os testes e o resultado aparece na transcrição para o avaliador ler.
Uma condição que se mantém em muitos turnos geralmente tem:
- Um estado final mensurável: um resultado de teste, um código de saída de compilação, uma contagem de arquivos, uma fila vazia
- Uma verificação declarada: como Claude deve provar isso, como “
npm testsai com 0” ou “git statusestá limpo” - Restrições que importam: qualquer coisa que não deve mudar no caminho, como “nenhum outro arquivo de teste é modificado”
or stop after 20 turns. Claude relata progresso em relação a essa cláusula a cada turno e o avaliador a julga a partir da conversa.
Verificar status
Execute/goal sem argumentos para ver o estado atual.
- A condição
- Há quanto tempo está em execução
- Quantos turnos foram avaliados
- O gasto de token atual
- A razão mais recente do avaliador
Limpar um objetivo
Execute/goal clear para remover um objetivo ativo antes que ele seja resolvido.
Goal cleared: seguido pela condição para confirmar, ou No goal set se nada estava ativo.
stop, off, reset, none e cancel são aceitos como aliases para clear. Executar /clear para iniciar uma nova conversa também remove qualquer objetivo ativo.
Retomar com um objetivo ativo
Quando você retoma uma sessão, Claude Code restaura um objetivo que ainda estava ativo quando a sessão terminou. Claude Code o restaura em cada rota de retomada:--continue, --resume com um ID de sessão, nome ou caminho do arquivo de transcrição, e o seletor de sessão. Antes da v2.1.239, Claude Code restaurava o objetivo em cada rota, exceto no seletor claude --resume.
Claude Code mantém a condição, mas redefine a contagem de turnos, cronômetro e linha de base de gasto de token. Ele não restaura um objetivo que já foi alcançado ou limpo.
Executar de forma não interativa
/goal funciona em modo não interativo, no aplicativo desktop e através de Remote Control. Definir um objetivo com -p executa o loop até a conclusão em uma única invocação:
--output-format stream-json --verbose para emitir cada mensagem conforme o loop é executado.
Interrompa o processo com Ctrl+C para parar um objetivo não interativo antes que ele seja resolvido.
Como a avaliação funciona
/goal é um wrapper em torno de um Stop hook baseado em prompt com escopo de sessão. Cada vez que Claude termina um turno, Claude Code envia a condição e a conversa até agora para seu modelo pequeno e rápido configurado, que é padronizado para Haiku na Claude API; em um provedor de terceiros, verifique sua página do provedor para o padrão da plataforma. O modelo retorna um de três vereditos, cada um com uma breve razão:
- Ainda não atendido: Claude continua trabalhando e toma a razão como orientação para o próximo turno.
- Atendido: Claude Code limpa o objetivo e registra uma entrada alcançada na transcrição.
- Impossível: o avaliador julgou que a condição nunca pode ser satisfeita. Claude Code limpa o objetivo e registra uma entrada falhada na transcrição junto com a razão. Você não precisa limpá-lo você mesmo.
Quando um turno falha
Quando um turno falha, Claude Code limpa o objetivo se o erro for um que você precisa corrigir. Após qualquer outro erro, o objetivo permanece definido.Erros que você precisa corrigir limpam o objetivo
Se um turno falhar em um erro que não será limpo até você corrigi-lo, Claude Code limpa o objetivo e imprime um aviso nomeando a causa. O aviso começa comGoal cleared after an unrecoverable error e termina com Run /goal again to continue. Corrija a causa, então defina o objetivo novamente com /goal <condition>. Quatro tipos de falha limpam o objetivo:
- Uma falha de autenticação, quando Claude Code gerencia suas próprias credenciais. Quando um host as gerencia para você, como o aplicativo desktop, a extensão VS Code ou uma sessão na nuvem, Claude Code deixa o objetivo ativo porque o host restaura o acesso por conta própria.
- Um saldo de crédito esgotado
- Um overflow de contexto que auto-compactação não conseguiu limpar
- Um modelo que não está disponível
Outros erros tentam novamente ou pausam o objetivo
Após qualquer outra falha, o objetivo permanece definido. Em uma sessão interativa no Claude Code v2.1.269 ou posterior, Claude Code também imprime uma linha nomeando a causa e tenta novamente por conta própria ou aguarda você:- Tentar novamente: após uma falha que tende a se resolver por conta própria, como um servidor sobrecarregado ou uma conexão perdida, um aviso começando com
Goal still activemostra a espera antes da próxima tentativa. Após três tentativas automáticas, o objetivo pausa em vez disso. - Pausar: após uma falha que uma tentativa apenas repetiria, como um limite de taxa de API, um limite de uso do claude.ai ou um hook que encerrou o turno, um aviso começando com
Goal pausednomeia a causa. Se a sessão está aguardando para continuar automaticamente quando um limite de uso é redefinido, Claude retoma o trabalho em direção ao objetivo então.
CLAUDE_CODE_GOAL_CHECKIN_MINUTES como 0, o que também desativa verificações.
Trabalho em segundo plano adia a avaliação
Se um subagente ou um comando shell em segundo plano ainda estiver em execução quando um turno termina, Claude Code pula a avaliação para esse turno. Ele avalia no final do próximo turno que termina sem nenhum trabalho em segundo plano em execução. Quando o trabalho em segundo plano termina, Claude Code entrega o resultado para Claude como um novo turno, então você não precisa fazer um prompt. Uma vez que o trabalho em segundo plano mantém o objetivo esperando por 30 minutos, uma verificação é devida. Na verificação, Claude Code lista as tarefas em execução e pede a Claude para ler sua saída, continuar esperando se estiverem progredindo e corrigir ou parar qualquer uma que esteja travada. Após a primeira verificação, Claude Code espera o dobro do tempo antes de cada verificação posterior, até quatro vezes o primeiro intervalo: com o padrão, 1 hora após a primeira verificação, depois a cada 2 horas. Claude Code entrega uma verificação devida, a primeira incluída, de uma de duas maneiras:- Quando um turno termina: Claude Code entrega a verificação no final do próximo turno que termina com o trabalho ainda em execução. Em uma sessão não interativa, como uma iniciada com
-p, esta é a única maneira que Claude Code entrega verificações. - Enquanto a sessão está ociosa: em uma sessão interativa, Claude Code também inicia um turno por conta própria para entregar a verificação em vez de esperar pelo seu próximo prompt. Se o trabalho em segundo plano parou sem relatar um resultado, Claude Code pede a Claude para continuar em direção ao objetivo. Claude Code inicia no máximo três verificações ociosas por objetivo entre seus prompts. Na terceira verificação ociosa, Claude Code diz que as verificações ociosas estão pausadas até você enviar outro prompt. Antes da v2.1.246, as verificações ociosas eram ilimitadas. As verificações ociosas requerem Claude Code v2.1.236 ou posterior.
CLAUDE_CODE_GOAL_CHECKIN_MINUTES. Claude Code usa seu valor no lugar do intervalo de 30 minutos e dimensiona os intervalos posteriores com ele. Defina como 0 para desativar as verificações e tentativas automáticas.
As verificações requerem Claude Code v2.1.234 ou posterior.
Modelo de avaliação e custo
Para avaliar em um modelo diferente, definaANTHROPIC_DEFAULT_HAIKU_MODEL.
O avaliador é executado no provedor para o qual sua sessão está configurada. Ele não chama ferramentas, portanto só pode julgar o que Claude já apresentou na conversa.
Os tokens de avaliação são cobrados no modelo pequeno e rápido configurado para seu provedor e são tipicamente negligenciáveis em comparação com o gasto do turno principal.
Requisitos
Claude Code disponibiliza/goal sob a mesma regra de confiança do espaço de trabalho que hooks em arquivos de configurações, porque o avaliador faz parte do sistema de hooks. /goal também não está disponível quando disableAllHooks é true após a precedência de configurações ser aplicada, ou quando allowManagedHooksOnly está definido nas configurações gerenciadas. Em cada caso, o comando informa por que em vez de fazer nada silenciosamente.
Veja também
- Executar um prompt repetidamente com
/loop: re-executar em um intervalo de tempo em vez de até que uma condição seja atendida - Hooks baseados em prompt: escreva seu próprio Stop hook quando precisar de lógica de avaliação personalizada
- Modo automático: aprove chamadas de ferramentas automaticamente para que cada turno de objetivo seja executado sem supervisão
- Comparação de agendamento: execute trabalho em um cronograma independente de qualquer sessão aberta