
Hook orquestra · Claude executa · Codex critica
🎯 Função do runner
O Runner Script é um arquivo shell que o hook escreve a cada rodada e o Claude executa. Ele é o vínculo concreto entre os dois modelos. O hook não fala diretamente com o Codex — ele prepara um script, e o Claude executa esse script.
.claude/claudex/runner.sh (gerado para rodada 2) #!/bin/bash codex exec --persona "security" << 'EOF' Faça uma revisão adversarial do PLAN.md. Foco: condições de corrida, perda de dados, autenticação fraca. Severidade: alto/médio/baixo. EOF
É um script auto-contido. Pode ser executado fora do Claude pra testar.
📤 O prompt enviado ao Codex
O hook compõe o prompt dinamicamente. Os campos do state.yaml ditam o conteúdo: rodada, persona, foco, severidades esperadas. Cada rodada gera um prompt diferente.
# Rodada 1 (Engenheiro Sênior) "Revise o plano. Procure falhas de design, premissas quebradas, decisões sem justificativa." # Rodada 2 (Segurança) "Revise o plano. Procure lacunas de auth, condições de corrida, vazamento de dados." # Rodada 3 (Ops/SRE) "Revise o plano. Procure falhas de rollback, falta de observabilidade, deploy arriscado."
📺 Streaming no terminal
Enquanto o Codex revisa, sua saída aparece em tempo real no terminal do Claude Code. Isso é importante: você vê o ciclo trabalhando, não fica olhando uma tela parada por 2 minutos sem feedback.
$ Executando runner.sh (rodada 2)... [codex] Lendo PLAN.md... ✓ [codex] Persona: security [codex] Procurando lacunas de auth... [codex] Encontrei 1 alto, 3 médio [codex] Salvando findings-round-2.md... ✓ $ Done.
📄 Geração dos findings.md
A saída do Codex é salva em arquivo — não fica só no buffer do terminal. Cada rodada gera findings-round-N.md separado. Isso permite revisar qualquer rodada depois, comparar achados entre rodadas, e auditar o ciclo após o fato.
findings-round-1.md
Achados do Engenheiro Sênior
findings-round-2.md
Achados de Segurança
findings-round-3.md
Achados de Ops/SRE
log.txt
Log do hook (cada decisão)
🔍 Auditabilidade
Por ser um script visível, você pode:
- • Ler o runner.sh da última rodada e ver o prompt exato que foi enviado
- • Re-executar manualmente pra reproduzir um achado
- • Comparar prompts entre rodadas (essa é a chave da rotação de personas)
- • Auditar custo contando tokens em cada arquivo gerado
💡 Para debug
Se uma rodada deu achado estranho, abra o runner.sh dela. O prompt está ali, em texto puro. Você consegue entender o que o Codex viu — e por quê.
🎼 O orquestrador invisível
O Runner é o tradutor entre dois mundos. Hook e Claude vivem em mundos diferentes (Hook é processo do Claude Code; Claude é modelo de IA). O Runner é o que cruza essa fronteira sem que nenhum dos dois precise saber detalhes do outro.
🌉 A ponte em uma frase
"Hook escreve o que precisa ser feito. Claude executa o script. Codex faz o trabalho. Resultado vai pra arquivo. Claude lê o arquivo."
📌 Resumo
Próximo Módulo:
2.4 — 🎭 As Três Personas