Gênese da Orquestra
Dossiê de Arquitetura

Gênese da Orquestra

Como um sistema de orquestração de agentes nasceu em camadas entre 21 e 26 de agosto de 2026, sobre as cinzas de uma tentativa anterior.

7
Sessões
~20
Msgs humanas
43
Subagentes
10
Commits
1
Deploy prod
9
Tickets criados
6
Dias

O sistema nasceu em camadas. O dia 25/08 construiu o mecanismo: board Linear como memória, batismo de chats, gates de aprovação. A noite de 25/08 instalou o enforcement via hooks, atravessando a meia-noite para 26/08. A manhã de 26/08 foi o primeiro dia do sistema em produção: cinco sessões orquestradoras rodando em paralelo em panes herdr. O resultado: ~20 mensagens humanas produziram 43 subagentes, 10 commits assinados, 1 deploy em produção, 1 spec completa e 9 tickets atômicos.

Pré-história

A era aposentada de julho/2026

O README do repo ~/agents-config registra:

A era de orquestração multi-agente (Herdr panes, factory orchestration, collab-room workroom runtime) foi aposentada para archive/ em julho 2026 porque nenhum dos mecanismos provou ser bom o suficiente. -- README, agents-config

No archive/ vivem três mecanismos aposentados: herdr-factory, collab-room e orca. O sistema atual é a segunda tentativa. A diferença fundamental: Linear como memória persistente em vez de runtime próprio.

Os três pilares

herdr

Terminal workspace manager para agentes de IA. Binário nativo arm64 (17 MB), versão 0.7.5. Gerencia sessões persistentes, panes, tabs, workspaces e worktrees git (estilo tmux). O palco físico: os 7 panes da pesquisa (w4P:p1 a w4P:pD) são panes herdr.

~/.local/bin/herdr · config.toml · tema tokyo-night

pstack

Framework de skills portado do fork pstack-claude. Não é binário. É um conjunto de skills. Duas skills principais: pstack-tdd (bug fix com teste falhante primeiro) e pstack-teach (explica código combinando how + why).

Commits 24/08: b82acf0, e28e1e3, f6d9dc5

Skills do Matt

Conjunto portado de mattpocock/skills. Ponto de entrada: poteto-mode (injetado via SessionStart), que roteia para architect, pstack-tdd, how, why, arena, interrogate. Mais 12 skills de animação/design do Emil Kowalski.

Commit d855e49 de 25/08

Componentes de apoio

Linear

Workspace Grok Bot Land, team FER. A memória persistente. Projetos, milestones, estados custom (Aprovação Pendente = gate pré-execução; Ciência Pendente = revisão do dono). Labels do grupo Orquestrador = identidade de cada chat.

Grill Board

App local + servidor MCP. Interrogação estruturada em rounds: agente posta perguntas, dono responde no board web, síntese final vira decisão vinculante. SQLite local. Em 26/08: 15 commits preparando distribuição via npx grill-board.

Hooks ativos

SessionStart: mandatos + contexto axi. PreToolUse(Agent): enforce-opus46-only.sh (lockdown) + agent-model-ledger.sh (log). UserPromptSubmit: lembrete de orquestração. Deny rules impedem bypass de modelo.

Ferramentas axi

npm global via mise/node: gh-axi 0.1.28, chrome-devtools-axi 0.1.27, quota-axi, tasks-axi. Injetam contexto via hooks SessionStart.

Canais

PushNotification para iOS (validado FER-220), arquivos de handoff em /tmp, SendMessage entre sessões, comentários/menções no Linear.

Ambiente

Modelo principal: claude-fable-5. Subagentes: claude-opus-4-6 (enforced). outputStyle: STE-100. teammateMode: tmux via herdr. Xirp: hooks de terceiro.

Cronologia de montagem

Cinco camadas em seis dias. Julho deixou as cinzas; agosto construiu sobre elas.

JUL 21/08 22/08 24/08 25/08 26/08 23:53 08:47 archive/ Skills orca pstack matt emil Contrato d398cb7 Mecanismo board + batismo Enforcement hooks Produção 5 paralelos

Cada camada sobre a anterior. De skills genéricas (21/08) a produção paralela (26/08).

Genealogia dos chats

Chats são sessões batizadas com labels no grupo Orquestrador do Linear. Três gerações se sucederam em dois dias.

Geração 1 25/08 Geração 2 25-26/08 Geração 3 26/08 · produção Alfred orquestrador Bento executor redesign Auditoria skill handoff Otto bloqueado Abbado maestro · 15 issues Norma governança · 6 issues Custodio redesign Hub · 27 issues Cabral Mineiro Nimbus Nimbo Cronista Vigia/Bel "ESCOLHE A PORRA DE OUTRO NOME" -- o dono, 00:00 · 30s depois: Abbado grill board túnel deploy agent-setup esta pesquisa saúde panes nomes migrados

Nodos cinza: aposentados. Bordas tracejadas: efêmeros ou auxiliares. Linhas pontilhadas: origem difusa (nascidas do sistema, não de um chat específico).

O dia 26/08

Dois blocos de atividade: a noite de 25/08 (23:53-00:03, cruzando a meia-noite) instalou enforcement e migrou labels; a manhã (08:47-12:00) foi o sistema em produção com cinco orquestradores simultâneos.

Noite de 25/08: 23:50 - 00:10

23:50 23:55 00:00 26/08 00:05 00:10 S1 Norma 3,5 min S2 Abbado 6 min

Manhã: 08:40 - 12:10

janela de paralelismo: 5 simultâneos 08:40 09:00 09:30 10:00 10:30 11:00 11:30 12:00 S3 Cabral 24 min S4 Mineiro 13 min S5 Nimbus ~1h32 · deploy S6 versão C 2h58 · 15 subagentes · 10 commits S7 Nimbo 14 min

Faixa laranja: janela onde 5 orquestradores rodaram em paralelo. S6 (versão C) dominou a manhã inteira.

As 7 sessões

S1 Norma 23:53-23:56 · 3,5 min
FER-222: hook UserPromptSubmit e fluxo handoff
1 msg humana 2 subagentes Construtora

Segmento pós-/clear do chat Norma. Recebeu handoff da sessão 56b3f21c. Aplicou o hook UserPromptSubmit no settings.json (FER-222 para Ciência Pendente). Confirmou duplicação da skill claude-handoff e criou proposta FER-223 (Aprovação Pendente). Atualizou FER-215 (fluxo de handoff: argumentos pertencem ao próximo agente). Deixou 4 propostas no gate: FER-213, 215, 219, 223.

S2 Abbado 23:57-00:03 · 6 min
Migração de labels Otto para Abbado e FER-217 push
2 msgs humanas 8 subagentes Mecanismo

Handoff recebido de Otto (handoff-labels-otto-push.md). Criou label Abbado (#f97316), migrou 15 issues em 3 lotes paralelos (9+6+1), comentários de takeover na FER-78 e FER-217. 2 PushNotifications iOS validadas. Custo US$ 3,98. Zero arquivos tocados. Pura operação sobre o board.

S3 Cabral 08:47-09:10 · 24 min
Grill board distribuição e release
3 msgs humanas 3 subagentes Pipeline grill-spec-tickets

Demonstração do pipeline completo. Topic do Grill Board (15/15 perguntas respondidas, síntese vinculante: licença FSL-1.1-MIT, npx grill-board, Effect v4 RC, DB global XDG, repo público, CI com npm Trusted Publishing). Criou projeto "Grill Board" + milestone "Distribuição v1" + epic FER-225. Subagente to-spec (3min19s, 66k tokens) publicou spec. Subagente to-tickets (6min19s, 75k tokens) criou 9 tickets FER-228-237 com blocking nativo. Handoff de report puro. Custo US$ 9,76. Nenhum commit. Só planejamento.

S4 Mineiro 08:52-09:05 · 13 min
Reativação do túnel Cloudflare
1 msg humana 1 subagente Consumidora

Diagnosticou quick tunnel expirado (DNS morto), matou cloudflared órfão, relançou túnel para localhost:5173, verificou /triagem HTTP 200. FER-226 para Ciência Pendente. Fricção: label "Mineiro" criada no grupo errado (Dono em vez de Orquestrador); MCP do Linear não move labels entre grupos.

S5 Nimbus 08:56-10:28 · ~24 min ativos
Projeto TanStack Start e deploy Cloudflare Workers
6 msgs humanas 11 subagentes Consumidora

Verificou que o projeto já era TanStack Start. Clonou repo de referência, reconfigurou vite.config.ts para SSR + wrangler.jsonc, resolveu bloqueio de conta Cloudflare via PushNotification (dono refez login), deploy via wrangler, monitor em background até a URL propagar. Resultado: dudata-hub-redesign-v1.dudata.workers.dev no ar (HTTP 200, "Dudata Hub -- Fila"). FER-227 para Ciência Pendente; FER-239 (achou decision-tool no Mac) para Done.

S6 -- (sem label) 09:02-12:00 · 2h58
Finalizar versão C do Hub
3-4 msgs humanas 15 subagentes Produção

Orquestrador puro em produção. Recebeu handoff-finalizar-versão-c.md. Fase 1: destravou 6 commits de polish (bloqueio de assinatura SSH 1Password do dia anterior), passo sequencial (motion tokens CC-1 + exit peek), ligou TriageView a sidebar, prova visual pegou crash real no exit do peek. Fix provado e commitado. Total 10 commits assinados. FER-151/142 para Done, FER-122/157 para Ciência Pendente. Fase 2: 6 candidatos de mascote gerados (FER-120), fotos via Slack comentadas (FER-137). Fase 3: dono rejeitou mascotes (referência certa: oneworks.cloud) e reportou regressão do checkbox, FER-241 (Urgent) + handoff-checkbox-e-mascote.md para a próxima sessão. Ciclo completo: handoff de entrada + handoff de saída.

S7 Nimbo 09:08-09:22 · 14 min
Cloudflare agent setup dialog
3 msgs humanas 3 subagentes Consumidora + refinadora de regras

Analisou o prompt de agent-setup da Cloudflare (developers.cloudflare.com/agent-setup/prompt.md) sem instalar nada; publicou artifact. Correção estruturante do dono às 09:19: "tudo deve ser feito primariamente por agentes; passos manuais devem virar agente-executáveis; coisas novas vao para Aprovação Pendente". Artifact reescrito agente-primeiro, FER-238 movida para Aprovação Pendente com plano de 7 passos. Fricção: label "Nimbo" no grupo errado.

O fluxo canônico

Nove camadas, do palco físico ao dono humano. Cada sessão percorre esta pilha.

1
Palco: herdr
Panes, workspaces, worktrees git. Hook agent-state reporta sessões ao servidor herdr via socket Unix.
2
Entrada da sessão
Hooks SessionStart injetam mandatos (poteto-mode + orchestrator-mandate) e contexto axi (gh-axi, chrome-devtools-axi).
3
Sessão orquestradora (fable-5)
Carrega orchestrate-with-linear. Batiza-se com label no grupo Orquestrador. Nunca trabalha inline. Despacha.
4
Enforcement
PreToolUse bloqueia subagente diferente de opus-4-6. Ledger registra cada spawn. UserPromptSubmit relembra a cada turno. Deny rules impedem bypass.
5
Trabalho: subagentes opus-4-6
Ondas paralelas. Skills do Matt roteiam tipo: architect, pstack-tdd, arena, how/why, to-spec, to-tickets.
6
Decisão
Grill Board para questões complexas (rounds de perguntas, síntese vinculante). Gates no Linear: Aprovação Pendente (pré-execução), Ciência Pendente (pós-execução).
7
Memória: board Linear
Issues parent-level visíveis, sub-issues atômicas, milestones, takeover comments como trilha de auditoria. ~25 issues FER tocadas em um dia.
8
Continuidade
Handoff (arquivo de report puro em /tmp + ponteiros para o board) entre segmentos/sessões. SendMessage entre sessões vivas. Menções no Linear.
9
Dono
Opera por push iOS, menções no Linear e respostas curtas no terminal. Pouquíssimas mensagens: 1 a 6 por sessão.

Alavancagem

Mensagens humanas versus subagentes despachados por sessão. A mesma escala para ambos mostra o multiplicador.

Mensagens humanas Subagentes Commits 5 10 15 S1 Norma 2x S2 Abbado 4x S3 Cabral 1x S4 Mineiro 1x S5 Nimbus 1,8x S6 versão C 4,3x 10 commits S7 Nimbo

Escala única para msgs e agentes. S2 e S6 mostram alavancagem máxima: 4x e 4,3x. S6 é o extremo: 3 mensagens humanas produziram 15 subagentes e 10 commits assinados.

Números agregados

Sessão Chat Janela Msgs Agentes Papel
S1 Norma 23:53-23:56 (3,5 min) 1 2 Construtora (hook FER-222)
S2 Abbado 23:57-00:03 (6 min) 2 8 Mecanismo (labels/push)
S3 Cabral 08:47-09:10 (24 min) 3 3 Pipeline grill-spec-tickets
S4 Mineiro 08:52-09:05 (13 min) 1 1 Consumidora (túnel)
S5 Nimbus 08:56-10:28 (24 min ativos) 6 11 Consumidora (deploy)
S6 -- 09:02-12:00 (2h58) 3-4 15 Produção (versão C, 10 commits)
S7 Nimbo 09:08-09:22 (14 min) 3 3 Consumidora + regras

Totais: ~19-20 mensagens humanas, 43 subagentes, 10 commits, 1 deploy, 1 artifact, 1 spec + 9 tickets, 2 handoffs de saída, ~25 issues FER tocadas. Custos conhecidos: S2 US$ 3,98; S3 US$ 9,76.

Fricções e sementes de evolução

Sete problemas observados. Cada um é candidato a virar skill ou mecanismo.

F1

Labels no grupo errado

Três ocorrências (Otto, Mineiro, Nimbo): create_issue_label cai no grupo "Dono" em vez de "Orquestrador". MCP do Linear não move nem deleta labels. Sobra ação manual.

Candidata a skill de batismo com verificação
F2

Gate parado

5 propostas em Aprovação Pendente sem decisão do dono (FER-213, 215, 219, 223, 238). Falta rotina de varredura e lembrete.

Candidata a skill de sweep periódico
F3

Quick tunnels efêmeros

URL muda a cada restart. Proposta de túnel nomeado ficou pendente.

Candidata a mecanismo de túnel persistente
F4

lavish-axi ausente

Referenciado no hook SessionStart mas ausente do PATH. Falha silenciosa a cada sessão.

Candidata a verificação de dependências no boot
F5

Handoffs em /tmp

Voláteis. Regra nova (handoff = report puro, sem objetivo) ainda recente e não codificada como skill.

Candidata a skill permanente de handoff
F6

Correções do dono viram regra por repetição

"Agente-primeiro", "handoff sem objetivo", "escolhe outro nome", hoje dependem de memória de sessão. Precisam virar skills permanentes.

Candidata a pipeline correção-para-skill
F7

Rate limit / spend limit

Interrompeu S6 às 10:27 (re-login necessário). Sem mecanismo de detecção antecipada ou fallback automático.

Candidata a mecanismo de quota awareness