Created
June 11, 2026 18:51
-
-
Save nicolasmelo1/5c86bff7845c1131bb96ec7cedb61bfc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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