Skip to content

Instantly share code, notes, and snippets.

@nicolasmelo1
Created June 11, 2026 18:51
Show Gist options
  • Select an option

  • Save nicolasmelo1/5c86bff7845c1131bb96ec7cedb61bfc to your computer and use it in GitHub Desktop.

Select an option

Save nicolasmelo1/5c86bff7845c1131bb96ec7cedb61bfc to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -euo pipefail
TASK="${*:-}"
if [ -z "$TASK" ]; then
echo "Uso: sh do-task.sh \"<minha_tarefa>\""
exit 1
fi
# Ajuste aqui caso sua instalação do Claude Code use nomes completos em vez de aliases.
ROUTER_MODEL="${CLAUDE_ROUTER_MODEL:-opus}"
PLANNER_MODEL="${CLAUDE_PLANNER_MODEL:-fable}"
EXECUTOR_MODEL="${CLAUDE_EXECUTOR_MODEL:-sonnet}"
echo "→ Roteando tarefa com Claude Opus 4.8..."
ROUTER_PROMPT=$(cat <<EOF
Você é o router Claude Opus 4.8.
Sua função é classificar a tarefa do usuário como EASY ou HARD.
Use EASY quando a tarefa for:
- implementação direta
- bugfix pequeno
- refactor localizado
- escrever ou ajustar testes
- criar script simples
- alteração objetiva em código
- tarefa que não exige muito contexto nem decisão arquitetural
Use HARD quando a tarefa envolver:
- múltiplos arquivos
- raciocínio arquitetural
- contexto longo
- migração ou mudança estrutural
- análise visual ou screenshots
- debugging complexo
- segurança, cyber, biologia ou domínio sensível
- necessidade clara de planejamento antes da execução
- alto risco de regressão
Responda APENAS com:
EASY
ou
HARD
Tarefa:
$TASK
EOF
)
ROUTE="$(
claude --model "$ROUTER_MODEL" -p "$ROUTER_PROMPT" \
| tail -n 1 \
| tr -d '[:space:]' \
| tr '[:lower:]' '[:upper:]'
)"
case "$ROUTE" in
EASY)
echo "→ Router escolheu: EASY"
echo "→ Executando com Codex..."
CODEX_PROMPT=$(cat <<EOF
Execute a tarefa abaixo de forma objetiva.
Regras:
- faça a menor alteração correta possível
- preserve o estilo do projeto
- não reescreva partes desnecessárias
- adicione ou ajuste testes quando fizer sentido
- ao final, explique arquivos alterados
- ao final, explique como validar
Tarefa:
$TASK
EOF
)
codex "$CODEX_PROMPT"
;;
HARD)
echo "→ Router escolheu: HARD"
echo "→ Planejando com Claude Fable 5..."
echo "→ Importante: Fable NÃO deve executar, apenas planejar."
FABLE_PLAN_PROMPT=$(cat <<EOF
Você é Claude Fable 5 atuando apenas como planejador.
NÃO execute a tarefa.
NÃO edite arquivos.
NÃO escreva implementação final.
NÃO rode comandos.
Sua função é produzir um plano técnico claro para que outro agente execute.
Inclua:
1. entendimento da tarefa
2. arquivos ou áreas prováveis que devem ser investigados
3. plano de execução passo a passo
4. riscos e pontos de atenção
5. testes ou validações necessárias
6. critérios objetivos de conclusão
Tarefa:
$TASK
EOF
)
PLAN="$(claude --model "$PLANNER_MODEL" -p "$FABLE_PLAN_PROMPT")"
echo
echo "========== PLANO DO FABLE =========="
echo "$PLAN"
echo "===================================="
echo
echo "→ Executando o plano com Claude Sonnet..."
SONNET_EXECUTION_PROMPT=$(cat <<EOF
Você é Claude Sonnet atuando como executor.
Execute a tarefa original seguindo o plano produzido pelo Claude Fable 5.
Tarefa original:
$TASK
Plano do Fable:
$PLAN
Regras de execução:
- siga o plano, mas corrija-o se encontrar evidência concreta no código
- faça mudanças mínimas e seguras
- preserve o comportamento existente quando possível
- não invente APIs, arquivos ou dependências
- leia o contexto necessário antes de alterar
- adicione ou ajuste testes quando fizer sentido
- ao final, explique o que foi alterado
- ao final, explique como validar
EOF
)
claude --model "$EXECUTOR_MODEL" -p "$SONNET_EXECUTION_PROMPT"
;;
*)
echo "Router retornou algo inesperado: '$ROUTE'"
echo "Fallback seguro: tratando como HARD."
echo "→ Planejando com Claude Fable 5..."
FABLE_PLAN_PROMPT=$(cat <<EOF
Você é Claude Fable 5 atuando apenas como planejador.
NÃO execute a tarefa.
Produza um plano técnico para outro agente executar.
Tarefa:
$TASK
EOF
)
PLAN="$(claude --model "$PLANNER_MODEL" -p "$FABLE_PLAN_PROMPT")"
echo
echo "========== PLANO DO FABLE =========="
echo "$PLAN"
echo "===================================="
echo
echo "→ Executando o plano com Claude Sonnet..."
claude --model "$EXECUTOR_MODEL" -p "$(cat <<EOF
Execute a tarefa original seguindo o plano abaixo.
Tarefa original:
$TASK
Plano:
$PLAN
EOF
)"
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment