MODULO 4.7

🎯 Outcome Delegation (Tecnica 2026)

A tecnica mais avancada de prompting para Claude Code em 2026. Em vez de dizer ao Claude COMO fazer, voce diz O QUE quer como resultado. Mude de prompts imperativos para declarativos e deixe o Claude escolher a melhor abordagem.

6
Topicos
35
Minutos
Avancado
Nivel
Teoria + Pratica
Tipo
1

🧠 O que e Outcome Delegation (vs Imperativo)

Outcome Delegation e uma mudanca fundamental na forma como voce escreve prompts. Em vez de dar instrucoes passo a passo (imperativo), voce descreve o resultado final desejado e os criterios de sucesso (declarativo). O Claude escolhe o caminho. E como a diferenca entre dizer a um taxi "vire a direita, depois a esquerda" versus "me leve ao aeroporto".

🎯 Conceito Principal

A diferenca fundamental entre os dois estilos:

// IMPERATIVO (como a maioria faz):
"Create a file called auth.ts. Add a function called
login that takes email and password. Use bcrypt to
hash. Return a JWT token."

// OUTCOME DELEGATION (tecnica 2026):
"I need user authentication in this project.
Outcome: users can register, login, and access
protected routes. Sessions persist across browser
restarts. Failed logins are rate-limited.
Success criteria: all auth tests pass, no OWASP
vulnerabilities, follows project conventions."
  • β€’ Por que funciona melhor: O Claude em 2026 conhece milhoes de implementacoes. Quando voce descreve o resultado, ele escolhe a melhor abordagem para SEU projeto especifico
  • β€’ Imperativo limita: Ao dizer "use bcrypt", voce impede o Claude de sugerir argon2 se for mais adequado. Ao dizer "crie auth.ts", voce impede uma estrutura de arquivos melhor
  • β€’ Outcome liberta: Voce define O QUE e as restricoes. O Claude decide COMO, usando seu conhecimento do projeto, das convencoes e das melhores praticas
  • β€’ Nao e "faca qualquer coisa": Outcome Delegation e preciso no resultado. O que muda e que voce nao microgerencia o caminho

πŸ’‘ Dica Pratica

Comece praticando com tarefas que voce ja sabe resolver. Escreva o prompt imperativo como faria normalmente, depois reescreva como outcome delegation. Compare os resultados. Na maioria dos casos, o outcome delegation gera codigo melhor porque o Claude tem liberdade para aplicar patterns que voce talvez nao conheca.

Regra pratica: se voce esta dizendo ao Claude QUAL funcao criar e QUAL biblioteca usar, voce esta sendo imperativo demais. Descreva o comportamento, nao a implementacao.

2

πŸ”„ De Imperativo para Declarativo (Rewriting)

A transicao de imperativo para declarativo nao acontece da noite para o dia. Existe uma tecnica de rewriting em 3 passos que facilita a conversao. Voce pega qualquer prompt imperativo e transforma sistematicamente em outcome delegation.

🎯 Conceito Principal

Os 3 passos para converter qualquer prompt imperativo em outcome delegation:

// Passo 1: Identifique o RESULTADO
Imperativo: "Add a debounce to the search input"
Resultado: "Search doesn't fire on every keystroke"

// Passo 2: Defina criterios de SUCESSO
"Search fires only after user stops typing for 300ms.
No duplicate requests. Loading state visible."

// Passo 3: Adicione RESTRICOES (nao implementacao)
"Must work with existing search component.
No new dependencies unless justified."
  • β€’ Passo 1 - Resultado: Pergunte "o que muda para o usuario final?" Em vez de "add debounce", o resultado e "search nao dispara em cada tecla"
  • β€’ Passo 2 - Criterios: Como voce sabe que funcionou? Definicoes mensurΓ‘veis e observaveis. "300ms de delay" e um criterio. "Funciona bem" nao e
  • β€’ Passo 3 - Restricoes: Nao diga COMO resolver (use lodash debounce). Diga o que NAO pode acontecer (no new dependencies). O Claude encontra o melhor caminho dentro das restricoes

πŸ’‘ Dica Pratica

Quando voce pegar um prompt imperativo para reescrever, faca o "teste do taxi": imagine que voce esta delegando para um developer senior que conhece o projeto. Voce diria "crie um arquivo auth.ts com funcao login usando bcrypt"? Ou diria "preciso de autenticacao segura, os usuarios devem poder fazer login e acessar rotas protegidas"?

O segundo e outcome delegation. Voce confia na competencia do Claude e foca no resultado, nao no passo-a-passo.

3

πŸ“‹ Definindo Resultados Esperados

A qualidade do outcome delegation depende diretamente da clareza com que voce descreve o resultado. Um resultado vago gera codigo vago. Um resultado preciso gera codigo preciso. Neste topico, voce aprende a estruturar resultados que nao deixam margem para interpretacao errada.

🎯 Conceito Principal

Use o framework OSCAR para definir resultados claros:

O - Outcome (o que muda no sistema)
S - Scope (quais partes do sistema sao afetadas)
C - Constraints (o que NAO deve mudar)
A - Acceptance (como verificar que esta correto)
R - Risks (o que pode dar errado)
  • β€’ Outcome preciso: "Users can reset their password via email" e claro. "Improve password functionality" e vago. Quanto mais especifico o outcome, melhor o resultado
  • β€’ Scope definido: "Affects auth module and email service. Does not touch user profile or settings." Isso evita que o Claude modifique areas que voce nao quer
  • β€’ Constraints explicitas: "Existing login flow must not change. Token expiration stays at 24h." Constraints previnem efeitos colaterais indesejados
  • β€’ Acceptance verificavel: "Test: request reset, receive email within 30s, click link, set new password, login with new password succeeds." O Claude pode auto-verificar

πŸ’‘ Dica Pratica

Voce nao precisa usar o framework OSCAR completo em toda tarefa. Para tarefas simples, Outcome + Acceptance ja e suficiente. Reserve o framework completo para features complexas que tocam multiplos modulos.

Dica: adicione OSCAR como template no seu CLAUDE.md. O Claude aprendera a pedir essas informacoes quando voce der prompts vagos, criando um loop de feedback positivo.

4

βœ… Criterios de Sucesso Embutidos

Criterios de sucesso embutidos sao a arma secreta do outcome delegation. Em vez de verificar manualmente se o Claude fez certo, voce inclui os criterios no proprio prompt e o Claude se auto-verifica. Isso reduz dramaticamente o ciclo de "faz, revisa, pede correcao, revisa de novo".

🎯 Conceito Principal

Criterios de sucesso podem ser funcionais, tecnicos e negativos (o que NAO deve acontecer):

Outcome: [describe what you want]

Success criteria:
Functional:
- User can [action] and sees [result]
- Edge case [X] is handled gracefully

Technical:
- All existing tests still pass
- New tests cover happy path + 2 edge cases
- No new linting errors

Must NOT:
- Break existing [feature]
- Add dependencies without justification
- Expose [sensitive data] in logs

Verify all criteria before marking complete.
  • β€’ Criterios funcionais: O que o usuario final observa. Sao os mais importantes e os mais faceis de verificar
  • β€’ Criterios tecnicos: Testes, linting, performance. O Claude pode verificar automaticamente rodando os comandos
  • β€’ Criterios negativos: "Must NOT" e tao importante quanto "must". Previne regressoes e efeitos colaterais

πŸ’‘ Dica Pratica

A frase magica e "Verify all criteria before marking complete". Isso faz o Claude rodar testes, checar linting e verificar cada criterio antes de dizer que terminou. Sem essa frase, ele pode pular a verificacao.

Comece com 3-5 criterios por tarefa. Muitos criterios sobrecarregam o contexto. Poucos criterios deixam margem para erros. O sweet spot e suficiente para cobrir o essencial sem ser excessivo.

5

πŸ”€ Exemplos Praticos de Conversao (Before/After)

Nada ensina melhor que exemplos reais. Aqui estao conversoes praticas de prompts imperativos para outcome delegation, cobrindo cenarios comuns do dia-a-dia com Claude Code.

🎯 Conceito Principal

5 conversoes do mundo real, do imperativo para outcome delegation:

// 1. CRUD Feature
ANTES: "Create a users CRUD with Express routes,
Prisma models, and Jest tests"
DEPOIS: "I need full user management. Users can be
created, listed, updated, deleted. All operations
validated. All endpoints tested. Follow project patterns."

// 2. Bug Fix
ANTES: "Add a null check on line 42 of UserService"
DEPOIS: "UserService crashes when user has no profile.
Outcome: service handles missing profiles gracefully.
No user-facing errors. Logged for debugging."

// 3. Performance
ANTES: "Add Redis caching to the products endpoint"
DEPOIS: "Products endpoint takes 2s. Needs to be under
200ms. Cache invalidation on product updates. Stale
data acceptable for 60s."
  • β€’ CRUD: Note que o "depois" nao menciona Express, Prisma ou Jest. O Claude usa o que ja esta no projeto. Se o projeto usa Fastify e Drizzle, ele usa Fastify e Drizzle
  • β€’ Bug Fix: Em vez de "add null check" (que pode nao ser a melhor solucao), o outcome descreve o comportamento desejado. O Claude pode resolver com null check, default value, ou reestruturacao
  • β€’ Performance: Em vez de "use Redis" (pode nao ser a melhor opcao), o outcome define o target de performance. O Claude pode usar Redis, in-memory cache, CDN, ou otimizar a query

πŸ’‘ Dica Pratica

Pratique o "rewrite mental" sempre que for escrever um prompt. Antes de enviar, pergunte: "Estou descrevendo o resultado ou o caminho?" Se voce esta dizendo ao Claude qual funcao criar, qual biblioteca usar ou qual arquivo editar, voce esta sendo imperativo.

Excecao: se voce tem uma razao especifica para uma tecnologia ("use Redis because we already have it in production"), inclua como constraint, nao como instrucao. "Constraint: we already run Redis in production, prefer it for caching."

6

βš–οΈ Quando Usar e Quando Nao Usar

Outcome Delegation nao e a resposta para tudo. Existem situacoes onde o estilo imperativo e mais eficiente e situacoes onde o declarativo brilha. Saber quando usar cada estilo e o que separa um usuario avancado de um intermediario.

🎯 Conceito Principal

Guia de decisao para escolher o estilo certo:

  • β€’ USE Outcome Delegation quando: A tarefa e complexa (multiplos arquivos), voce nao tem certeza da melhor implementacao, quer que o Claude use convencoes do projeto, ou quer resultados de nΓ­vel senior
  • β€’ USE Imperativo quando: Voce sabe EXATAMENTE o que quer (rename de variavel, fix pontual), a tarefa e trivial (menos de 5 linhas), ou voce precisa de uma implementacao especifica por razoes tecnicas
  • β€’ USE Hibrido quando: Voce quer outcome delegation mas com restricoes especificas. "Outcome: X. Constraint: must use Y approach because Z." Isso combina liberdade com direcao
  • β€’ EVITE Outcome para: Tarefas de infraestrutura muito especificas (configuracao de CI/CD), mudancas que exigem formato exato (migrations SQL), ou quando voce tem um padrao obrigatorio do time

Regra geral: Se a tarefa leva mais de 10 minutos para descrever imperativamente, use outcome delegation. Se leva menos de 1 minuto, use imperativo. No meio? Use hibrido.

πŸ’‘ Dica Pratica

Na pratica, a maioria dos seus prompts sera hibrida. Voce define o outcome (declarativo) mas inclui constraints importantes (diretivas). "I need a notification system. Users get notified of new messages in real-time. Constraint: use WebSocket because we already have the infrastructure. Must NOT use polling."

O objetivo nao e eliminar o imperativo. E ter mais uma ferramenta no seu arsenal. Com o tempo, voce vai sentir naturalmente qual estilo e mais adequado para cada situacao.

Exercicio Pratico

Reescrever 5 prompts imperativos como outcome delegation

Pegue 5 prompts que voce ja usou com Claude Code (ou invente cenarios reais) e converta:

  1. 1. Escreva 5 prompts no estilo imperativo (como voce normalmente faria). Tente cobrir: feature nova, bug fix, refactoring, performance e teste
  2. 2. Reescreva cada um usando os 3 passos de conversao (Resultado, Criterios, Restricoes)
  3. 3. Rode os 5 prompts imperativos e os 5 declarativos no Claude Code no mesmo projeto. Compare os resultados
  4. 4. Para cada par, anote: qual gerou codigo melhor? Qual foi mais facil de escrever? Qual exigiu menos correcoes depois?
  5. 5. Identifique quais dos 5 cenarios funcionaram melhor com outcome delegation e quais com imperativo

βœ… Criterios de Sucesso

☐ Escreveu 5 prompts imperativos originais
☐ Converteu todos para outcome delegation
☐ Rodou ambos e comparou resultados
☐ Identificou quando cada estilo funciona melhor
☐ Documentou aprendizados para uso futuro

πŸ“‹ Resumo do Modulo

βœ“
Outcome Delegation descreve resultado, nao caminho - Diga O QUE quer, nao COMO fazer. O Claude escolhe a melhor implementacao.
βœ“
3 passos para converter: Resultado, Criterios, Restricoes - Framework sistematico para transformar qualquer prompt imperativo em declarativo.
βœ“
Framework OSCAR estrutura resultados claros - Outcome, Scope, Constraints, Acceptance, Risks. Use completo para tarefas complexas.
βœ“
Criterios de sucesso embutidos eliminam retrabalho - Funcionais, tecnicos e negativos. "Verify all criteria before marking complete."
βœ“
Before/After mostra o poder da conversao - CRUD, bug fix, performance. O declarativo gera codigo melhor na maioria dos cenarios.
βœ“
Use o estilo certo para cada situacao - Outcome para complexo, imperativo para trivial, hibrido para o meio-termo.

Proximo Modulo:

4.8 - Verificacao e Prompts Auto-validantes