/goal ou ultracode no Claude Code: qual dos dois usar em cada tarefa?

Resposta rápida pra quem procura /goal ultracode Claude Code: são dois recursos diferentes e você não precisa escolher só um pra sempre. O /goal define uma condição de conclusão e o Claude Code segue trabalhando até que ela seja atendida, com um modelo separado julgando a cada turno se já chegou lá. O ultracode é ligado com /effort ultracode e não é um nível de esforço do modelo: ele manda esforço xhigh e faz o Claude orquestrar Dynamic Workflows em tarefas substanciais. Já o tal de ultrawork não é oficial da Anthropic, é skill de comunidade. Neste post fica a régua de quando usar cada um 🙂
Fala aí, beleza? Escrever prompt curto e torcer pra IA acertar era o padrão até bem pouco tempo atrás
Aí o Claude Code ganhou dois recursos que mudam justamente isso: o jeito de DESCREVER o que você quer
Um deles é o /goal, que troca escopo de tarefa por escopo de resultado
O outro é o ultracode, que não mexe no que você pede e sim em quanta força a ferramenta coloca no trabalho
E tem gente misturando os dois, ou procurando por um tal de "ultrawork" achando que é comando oficial da Anthropic (spoiler: não é)
Bora separar isso de uma vez? No fim do post você sai com uma régua de decisão pra próxima tarefa real
O que cada recurso faz de verdade (e por que ultrawork não entra na conta)
O /goal: você descreve o fim, não o passo
Um prompt comum do Claude Code tem escopo de TAREFA
A meta tem escopo de resultado: o Claude trabalha até que a condição de resultado seja atendida, sem você precisar mandar prompt a cada passo
O comando /goal seguido da condição define ou substitui a meta ativa e já inicia um turno na hora, usando a própria condição como diretiva
Não precisa mandar um prompt separado depois, se liga nisso
E quem julga se acabou não é o modelo que está fazendo o trabalho
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 114 aulas
- 4 projetos
- 9h 18min
A cada fim de turno, a condição e a conversa até ali vão pro small fast model configurado (padrão Haiku na API da Anthropic), que devolve sim ou não e um motivo curto
Se o julgamento for "ainda não", o Claude inicia outro turno em vez de devolver o controle pra você
O mesmo comando serve pra três coisas, dependendo do argumento:
- /goal sem argumento mostra o status: condição, tempo rodando, quantos turnos o avaliador revisou, gasto de tokens atual e o último motivo do avaliador
- /goal clear remove a meta ativa, e os apelidos stop, off, reset, none e cancel também funcionam
- /goal com a condição define a nova meta, lembrando que é uma meta ativa por sessão: definir uma nova SUBSTITUI a anterior
A meta também se limpa sozinha em três situações: quando a condição é atendida, quando o modelo julga a condição impossível de satisfazer, ou quando um turno falha com um erro que você precisa corrigir
Rodar /clear pra começar uma conversa nova também remove a meta
Agora a parte que eu achei mto massa: se a sessão terminou com a meta ainda ativa, o Claude Code restaura ela quando você volta
Vale em todas as rotas de retomada: –continue, –resume com ID ou nome da sessão, e o seletor de sessões
A documentação oficial do recurso está em code.claude.com/docs/en/goal, caso queira conferir cada detalhe na fonte
O ultracode: não é esforço do modelo, é configuração do Claude Code
Esse aqui confunde justamente porque mora dentro do menu de esforço
Você liga com /effort ultracode dentro da sessão, e a opção também aparece no menu do /effort
Mas ele NÃO é um nível de esforço do modelo
O que ele faz são duas coisas ao mesmo tempo: envia esforço xhigh ao modelo e faz o Claude orquestrar Dynamic Workflows automaticamente para tarefas substanciais
E o que são as Dynamic Workflows? Um recurso em research preview no qual o Claude planeja o trabalho e roda centenas de subagentes em paralelo dentro de uma única sessão
Agora as pegadinhas, porque tem várias:
- ele só aparece no menu do /effort em modelos capazes de xhigh, já que o que ele envia é xhigh
- ele não pode ser persistido: a configuração effortLevel e a variável CLAUDE_CODE_EFFORT_LEVEL não aceitam ultracode
- quando CLAUDE_CODE_EFFORT_LEVEL está em um nível diferente de xhigh, as requisições rodam nesse nível e a orquestração de workflows do ultracode fica inativa
- quando o ultracode não está disponível, por exemplo com os workflows desligados, –effort ultracode define apenas o esforço xhigh
Ou seja: sem os workflows, o "modo turbo" vira só um degrau da escada de esforço
Falando em escada: no Claude Opus 5 ela vai de low, medium, high, xhigh até max, com high como padrão
A recomendação é subir pra xhigh em trabalho de código e agentes exigente, e pra max quando a tarefa justifica gasto de tokens sem restrição
E o ultrawork, cadê?
Essa é a hora de tirar o elefante da sala
Não existe comando oficial /ultrawork da Anthropic no Claude Code
Ultrawork é uma skill de comunidade, distribuída em projetos como o oh-my-claudecode, e não um modo oficial da ferramenta
O recurso oficial equivalente é o ultracode mesmo
Parte da confusão vem de outra troca de nome: o gatilho dos dynamic workflows passou de "workflow" para "ultracode"
A palavra "workflow" não dispara mais uma execução, mas pedir um workflow com as suas próprias palavras continua funcionando
Comparativo: /goal x ultracode
| Critério | /goal | ultracode |
|---|---|---|
| O que resolve | Leva o trabalho adiante até uma condição de conclusão ser atendida | Faz o Claude trabalhar mais fundo: esforço xhigh mais orquestração automática de Dynamic Workflows em tarefas substanciais |
| Como se ativa | /goal com a condição na sessão, já iniciando um turno na hora | /effort ultracode, ou pela opção no menu do /effort |
| Onde vive | Comando de sessão, com uma meta ativa por sessão | Configuração de esforço do Claude Code, não é nível de esforço do modelo |
| Quem julga o trabalho | O small fast model configurado (padrão Haiku na API da Anthropic), com sim ou não e motivo curto a cada turno | Ninguém julga: não existe avaliador, é execução mais profunda |
| Persistência entre sessões | A meta é restaurada ao retomar: –continue, –resume com ID ou nome, e o seletor de sessões | Não persiste: effortLevel e CLAUDE_CODE_EFFORT_LEVEL não aceitam ultracode |
| Custo | Uma chamada ao small fast model por turno, cobrada no provedor da sessão e, segundo a doc, tipicamente irrelevante perto do gasto do turno principal | Esforço xhigh mais centenas de subagentes rodando em paralelo na mesma sessão |
| Requisito | Claude Code v2.1.139 ou superior | Modelo com xhigh na escada de esforço e workflows disponíveis |
| Como se limita | Cláusula de turnos ou de tempo dentro da própria condição (a doc cita "ou pare depois de 20 turnos") | Sem workflows disponíveis, degrada pra só xhigh |
Quando escalar o pedido: cinco situações e o recurso certo para cada uma
Se você só usa prompt curto, aqui é onde a coisa fica prática
1. Tarefa com critério de aceite claro: teste passando, build limpo, arquivo gerado
Isso é /goal na veia, porque existe um estado final que dá pra checar de fora
2. Refatoração ampla e meio ambígua: você sabe que precisa melhorar, mas não consegue escrever a linha de chegada
Sem condição julgável, o avaliador não tem como dizer "acabou"
Aqui o que ajuda é profundidade, então é caso de /effort ultracode
3. Tarefa longa que você não quer ficar de babá: /goal com cláusula de parada dentro da própria condição
Como a doc não tem um parâmetro separado pra isso, o limite entra no texto da condição mesmo, no estilo "ou pare depois de 20 turnos"
4. Tarefa curta e óbvia: renomear uma função, ajustar um texto, criar um arquivo pequeno
Nenhum dos dois
Prompt normal resolve, e você não paga avaliação por turno nem esforço xhigh à toa
5. Quer ligar os dois juntos? Eles resolvem problemas diferentes, e é assim que vale pensar
O /goal controla QUANDO parar: é ele que define a condição de encerramento e coloca o avaliador julgando turno a turno
O /effort ultracode controla QUANTA força entra no trabalho: esforço xhigh mais a orquestração de workflows
Um é linha de chegada, o outro é profundidade, beleza?
O limite que estraga meta mal escrita:
Tome cuidado com isso aqui, porque é onde a maioria vai se ferrar
O avaliador não chama tools
Ou seja: ele só consegue julgar o que o Claude já trouxe explicitamente para a conversa
Uma condição do tipo "os testes passam" só funciona se a saída do teste aparecer no chat
Se o resultado ficou só no terminal, no arquivo, na sua cabeça, o avaliador não tem como dizer sim
Como o /goal se comporta na prática
No vídeo abaixo eu testo o /goal de ponta a ponta, e algumas coisas só ficam claras vendo em movimento
A primeira é o ritmo da sessão: eu trato o comando como algo que roda em PARALELO ao trabalho do dia a dia
Você despacha a demanda e segue desenvolvendo outras funcionalidades enquanto a IA trabalha
A segunda é a receita do prompt
Um bom pedido de meta precisa de um estado final mensurável e de uma forma de comprovar que chegou lá, com restrições opcionais sobre o que não pode ser feito
No mínimo, estado final e comprovação, senão a coisa não funciona bem
O exemplo que eu rodo é uma verificação de segurança do projeto, com a condição de encerrar quando um arquivo de considerações for criado
Ao disparar, a interface passa a exibir um indicador de objetivo ativo ao lado da sessão, então dá pra bater o olho e saber que tem coisa rolando
Outra coisa que eu notei: os controles de gerenciamento não são instantâneos
Ao pedir pausa, o Claude Code termina o que está fazendo antes de parar, e o modelo ainda responde confirmando que recebeu a instrução e que vai interromper a análise em curso
Eu interpreto isso como medida de segurança, pra não deixar trabalho pela metade
O cancelamento segue a mesma lógica: o modelo conclui a interação atual antes de o objetivo ser eliminado
Retomar depois da pausa continua o objetivo do ponto onde parou, o que é mto massa quando você só queria checar uma coisa no meio
E tem o caso de encerrar na mão: quando o objetivo já foi atingido na prática e o modelo continuaria rodando ciclos desnecessários, eu pauso ou marco como completo
Esse cenário conversa direto com o comportamento documentado do avaliador dizendo "ainda não" e abrindo mais um turno
Se a condição não deixa claro o que é chegar lá, ele empurra a sessão pra frente
Daí o valor de checar o status com /goal sem argumento: condição, tempo rodando, turnos revisados, gasto de tokens e o último motivo do avaliador ficam ali na sua frente
No vídeo eu ainda deixo dois objetivos rodando ao mesmo tempo, uma análise de segurança e uma de performance, cada uma gerando o próprio arquivo de saída, enquanto eu só observo o progresso
E a conclusão honesta: exemplo simples termina numa única interação, o /goal mesmo brilha em tarefa repetitiva
Rodar e corrigir testes de várias funções até tudo passar é o tipo de coisa que ele foi feito pra aguentar
Ah, e antes de tudo: o Claude Code precisa estar atualizado, senão o recurso nem aparece pra você
Veredito: qual dos dois vale ligar primeiro
Se você é do time do prompt curto, comece pelo /goal
É a mudança mais barata e mais visível, porque ela te OBRIGA a descrever o resultado esperado em vez de descrever o próximo passo
O ganho já aparece na hora de escrever a condição, mesmo antes de o Claude rodar qualquer coisa
Quando não usar: tarefa curta, tarefa sem critério de encerramento, e qualquer condição que dependa de um resultado que não vai aparecer explicitamente na conversa (lembra que o avaliador não chama tools)
O ultracode é outro tipo de escolha
Ele é pra tarefa que justifica gasto de tokens, e a parte de Dynamic Workflows ainda está em research preview
Quando não usar: ajuste pequeno, e também quando o seu ambiente tem CLAUDE_CODE_EFFORT_LEVEL em um nível diferente de xhigh ou os workflows desligados, porque aí a orquestração fica inativa e você só levou xhigh
Ou seja, você pagaria o esforço alto sem receber a parte que faz o ultracode ser ultracode
E ultrawork? Segue como skill de comunidade, então trate como isso: coisa de terceiro, não recurso oficial que a Anthropic mantém
Conclusão
Recapitulando a régua deste post sobre /goal e ultracode no Claude Code:
/goal é escopo de resultado com juiz separado a cada turno, uma meta por sessão, restaurada quando você retoma
Ultracode é /effort ultracode: esforço xhigh mais orquestração de workflows, sem persistir em configuração nem em variável de ambiente
Ultrawork não é oficial
O próximo passo prático é bem simples
Primeiro, cheque a versão do seu Claude Code, já que o /goal pede a v2.1.139 ou superior
Depois, pegue a próxima tarefa real da sua fila e escreva uma condição de conclusão que o avaliador consiga julgar pelo que aparece na conversa, com cláusula de parada se a coisa for longa
E guarde o /effort ultracode pra aquele trabalho grande que você vinha empurrando com a barriga
Dá uma olhada no vídeo pra ver o /goal rodando de verdade, e passa nos outros conteúdos de Claude Code aqui do blog
até o próximo post! 😀
Perguntas frequentes
Qual a versão mínima do Claude Code que traz o comando /goal?
O /goal exige Claude Code v2.1.139 ou superior. Vale conferir sua versão instalada antes de tentar usar o comando.
Dá pra limitar quanto tempo ou quantos turnos o /goal roda sozinho?
Sim, mas o limite entra dentro da própria condição que você escreve, não em uma flag separada. A documentação cita como exemplo incluir algo como ‘ou pare depois de 20 turnos’ junto da condição.
O ultracode aparece no menu do /effort em qualquer modelo?
Não, ele só aparece nos modelos que têm xhigh na escada de esforço, já que o ultracode envia justamente esforço xhigh ao modelo. No Claude Opus 5, por exemplo, essa escada vai de low, medium, high, xhigh até max, com high como padrão.
Por que o ultrawork não funciona como comando dentro do Claude Code?
Porque não existe /ultrawork oficial da Anthropic no Claude Code. Ultrawork é uma skill de comunidade, distribuída em projetos como o oh-my-claudecode (GitHub yeachan-heo/oh-my-claudecode), e o recurso oficial equivalente é o ultracode.
Como apagar a meta ativa do /goal sem começar uma conversa nova?
Basta rodar /goal clear, que remove a meta ativa sem mexer na conversa. Os apelidos stop, off, reset, none e cancel fazem a mesma coisa.
Quanto custa cada avaliação de turno feita pelo /goal?
Cada turno gera uma chamada ao small fast model configurado, padrão Haiku na API da Anthropic, cobrada no provedor da sessão. Segundo a documentação, esse custo é tipicamente irrelevante perto do gasto do turno principal.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Como pagar o Claude Code no Brasil: cartão, dólar, IOF e quanto fica em reais
Claude Code preço Brasil na prática: câmbio, IOF de 3,5% e quanto fica na fatura. Planos Pro e Max convertidos em reais e como pagar com cartão.
Como instalar uma skill no Claude Code: passo a passo
Saiba como instalar skill no Claude Code: use a pasta pessoal para todas as sessões ou a pasta de projeto para versionar. Frontmatter YAML é obrigatório.
Bateu o limite de uso do Claude Code? Como retomar a tarefa sem refazer tudo
Bateu o limite de uso do Claude Code? Veja como retomar a tarefa de onde parou com /usage, CLAUDE.md e --continue, sem refazer nada.
