MÓDULO 2.6

🔁 O Ciclo Completo Passo a Passo

Os 6 passos que compõem cada rodada — do término do turno do Claude ao retorno ao passo 2 da próxima rodada. A "dança" do Claudex em câmera lenta.

Ciclo completo

Cada rodada = 6 passos. Cada passo na ordem certa.

1

📝 Passo 1 — Claude termina o turno

O Claude acabou de fazer alguma coisa. Pode ser o primeiro turno (escreveu PLAN.md inicial), ou um turno de revisão (atualizou PLAN.md depois de ler findings). Em qualquer caso, ele declara "terminei meu turno".

Estado do sistema neste ponto

.claude/claudex/state.yaml:
  phase: drafting (ou reviewing)
  round: 1 (ou rodada atual)

PLAN.md: existe (rascunho ou versão revisada)
findings-round-N.md: existe (se rodada >= 2)
2

🚦 Passo 2 — Stop Hook dispara

O Claude Code, vendo que o Claude declarou fim de turno, executa o hook registrado: .claude/claudex/hooks/stop.sh.

[stop.sh] Lendo .claude/claudex/state.yaml...
[stop.sh] phase=drafting, round=1
[stop.sh] PLAN.md existe? sim
[stop.sh] Decisão: BLOCK + agendar rodada 1
3

📋 Passo 3 — Hook atualiza o estado

Antes de devolver controle, o hook atualiza o YAML pra refletir o que vai acontecer e gera o runner.sh pra próxima rodada.

# state.yaml atualizado:
phase: drafting  reviewing
round: 1

# runner.sh gerado:
codex exec --persona "engineer" << 'EOF'
[prompt completo da rodada 1]
EOF
4

🛑 Passo 4 — Hook retorna BLOCK com instruções

O hook sai com exit 2 (BLOCK) e imprime a mensagem que o Claude vai ler. Essa mensagem é a instrução do próximo turno.

[hook → Claude]
"Execute .claude/claudex/runner.sh.
 Quando ele terminar, leia
 .claude/claudex/findings-round-1.md
 e revise o PLAN.md integrando os
 achados de severidade alta e média."

Note: a mensagem é específica e prescritiva. Não deixa espaço pra Claude interpretar errado.

5

🏃 Passo 5 — Claude executa o runner

Claude obedece a instrução. Executa runner.sh. Codex roda. findings-round-1.md é gerado.

$ bash .claude/claudex/runner.sh
[codex] Persona: engineer
[codex] Lendo PLAN.md...
[codex] Buscando falhas de design...
[codex] Encontrei 2 alto, 2 médio, 2 baixo
[codex] Salvando findings-round-1.md ✓
$ Done.
6

✏️ Passo 6 — Claude revisa e retorna ao passo 2

Claude lê findings-round-1.md, atualiza PLAN.md integrando os achados, e declara fim de turno. Aí... voltamos ao passo 2.

A "dança" se repete

Hook dispara de novo. Decide. Rodada 2 começa. Cada rodada usa persona diferente. Quando round > max_rounds, hook entra na fase de sumarização e retorna ALLOW. O ciclo termina.

Rodada 1: passos 1-6 com persona engineer
Rodada 2: passos 1-6 com persona security
Rodada 3: passos 1-6 com persona ops
Rodada 4: hook chega aqui → ALLOW + sumário

📌 Resumo

P1 — Claude termina o turno — declara fim, controle vai para o hook.
P2 — Stop Hook dispara — lê state.yaml, decide ação.
P3 — Hook atualiza estado — muda phase/round, gera runner.sh.
P4 — BLOCK com instruções — mensagem específica para o Claude.
P5 — Claude executa runner — Codex critica, findings.md é gerado.
P6 — Claude revisa e volta ao P2 — ciclo se repete por max_rounds.

Próximo Módulo:

2.7 — 🔒 As Seis Camadas de Segurança