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

quando usar /goal ou ultracode no Claude Code
Resposta rápida

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
Formação Recomendada

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.




Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares