MÓDULO 2.3

🏃 O Runner Script

A ponte entre Claude e Codex. Um shell script gerado pelo Stop Hook que escreve o prompt, chama o Codex e salva os achados. Auditável, debugável, reproduzível.

Runner Script

Hook orquestra · Claude executa · Codex critica

1

🎯 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.

2

📤 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."
3

📺 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.
4

📄 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)

5

🔍 Auditabilidade

Por ser um script visível, você pode:

💡 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ê.

6

🎼 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

Runner = ponte — entre hook (que orquestra) e Codex (que critica).
Gerado por rodada — prompt diferente por persona.
Streaming em tempo real — você vê o ciclo trabalhando.
Output em arquivo — findings-round-N.md, persistente, auditável.
Auditável e re-executável — script visível, prompt em texto puro.
Orquestrador invisível — você nunca o invoca diretamente.

Próximo Módulo:

2.4 — 🎭 As Três Personas