Pular para conteúdo

Protocolo Maestro & Worker

É assim que os dois agentes do driver conversam. É uma troca de mensagens de verdade, não um "continue" cego: o worker reporta, o maestro lê e julga, o maestro responde.

A troca

sequenceDiagram
    autonumber
    participant C as Maestro (seu charter)
    participant W as Worker (Claude Code novo)
    C->>W: trabalha no item "construir formulário de configurações"
    activate W
    W->>W: implementa · roda os testes
    W-->>C: STATUS: needs-decision<br/>Zustand vs Context?
    deactivate W
    C->>C: classifica: reversível + coberto pelo charter
    C->>C: registra D1 no DECISIONS.md
    C-->>W: usa a Context API (charter: nada de infra nova)
    activate W
    W->>W: conecta tudo · verifica
    W-->>C: STATUS: done · 12 testes verdes
    deactivate W
    C->>C: marca o item [x] · próximo item (worker novo)

O contrato de status

O worker fecha todo turno com um bloco de status em fence, depois para e espera o maestro:

```leopold-status
STATUS: done | needs-decision | blocked
ITEM: <the item you are on>
SUMMARY: <what you did this turn, 1-3 lines>
DECISION-NEEDED: <if needs-decision: the question + options A/B + tradeoff; else empty>
NEXT: <what you think comes next>
EVIDENCE: <build/lint/test result if relevant>
```

O driver faz o parse disso de forma determinística (um bloco em fence, ou um fallback de STATUS: puro), e então o maestro raciocina sobre o resultado do parse.

O veredito do maestro

O maestro retorna uma de três ações:

flowchart TD
    Status["status do worker"] --> Class{classifica}
    Class -- "STATUS: done + boa evidência" --> Finish["finish · marca o item como feito"]
    Class -- "reversível OU coberto pelo charter" --> Answer["answer · envia instrução · loga"]
    Class -- "irreversível E ambíguo" --> Esc["escalate · notifica · pausa"]
    classDef stop fill:#e63946,stroke:#9d0208,color:#fff;
    class Esc stop;
Ação Quando Efeito
answer reversível, ou o charter cobre o caso envia uma instrução concreta de volta para a mesma sessão do worker, loga a decisão
finish item completo com evidência marca o item do plano como feito, inicia o próximo item com um worker novo
escalate irreversível e ambíguo, ou uma contradição com o charter notifica o humano, pausa a run

Por que funciona: o maestro é ele mesmo um modelo de raciocínio, lendo a mensagem completa com o seu charter como system prompt, não um regex. O bloco de status estruturado torna o sinal confiável; o charter torna o julgamento seu.