ALEMBIC • LEARN COMPLETE • FASE 3
Layer L3: Swarm — 3-Tier Orchestrator (Deep Dive)
PATTERN: 04-CODE-UNDERSTANDING (visual-teach-studio)

Layer L3: @alembic/swarm — O Orquestrador 3-Tier

Esta camada implementa orquestração depth-bounded, dependency-gated, com suporte a worktree isolation, background detached workers e park para T4. É o mecanismo usado pelo Factory para rodar ADW em paralelo de forma segura e resumível.

Orchestrator (orchestrator.ts)

orchestrator.ts:31 3-Tier (O→Lead→Worker) TaskQueue (queue.ts) Worker Execution Store + Park Depth-bounded • Dependency-gated • Resumable via Store journal
// orchestrator.ts:31
/** The 3-tier, depth-bounded orchestrator: orchestrator → lead → worker.
 * Hard rules:
 * 1. MAX_DEPTH = 2 (worker is leaf)
 * 2. Dependency-gating via TaskQueue
 * 3. T4 park for irreversible/legal/security/manual tasks
 * Every transition is journaled in the Store. Fully resumable. */
Linha 32-39: O design é extremamente explícito sobre suas garantias de segurança e durabilidade. MAX_DEPTH = 2 (orchestrator:0, lead:1, worker:2).

TaskQueue & Dependency Gating (queue.ts)

// queue.ts:15
/** A dependency-gated task queue.
 * A task is `ready` only when every id in `dependsOn` has reached `done`.
 * Pure in-memory; durability is the Store's job. */

Tipos principais em types.ts:43-64 (taskStatus, parkReason) e taskSpecBaseSchema:77-98.

Execution Model

  • Worker leaf: adapter.run ou subprocess real (command) → report file protocol (.inprogress → atomic .complete/.failed)
  • Lead: fan-out de subtasks como sub-run recursivo (depth-bounded)
  • Isolation: withWorktree + isolate flag (dedicated branch + port)
  • Background: spawnBackgroundCommand (detached, sobrevive ao pai)

worker.ts, process.ts, worktree.ts, background.ts

Como Verificar Esta Camada (verify)

pnpm test packages/swarm
# Foco:
# - orchestrator.test.ts
# - queue.test.ts (dependency gating)
# - park.test.ts, reward.test.ts
# - worktree.test.ts, background-entry.test.ts

Common confusions: Achar que "swarm é só orquestrador simples". Não — tem journal completo para resume, park ledger separado, depth bounding rígido, e dois modos de execução (adapter vs real command subprocess).

Practice task: 1. Leia orchestrator.ts:31-46 (comentário de arquitetura). 2. Leia types.ts:43-64 (estados + park reasons). 3. Rode um swarm pequeno e inspecione o journal no store. 4. Marque uma task como irreversible e observe o park. 5. Compare um run com e sem `isolate: true`.

Deep Line-by-Line

orchestrator.ts:31-46 — O comentário de arquitetura é o melhor resumo do design: 3-tier, depth-bounded (MAX_DEPTH=2), dependency-gating, T4 park, journal no Store, resumable.

queue.ts:15-22 — TaskQueue é pura (in-memory). Durabilidade é responsabilidade do Store. Gating é "todos os dependsOn em 'done'".

worker.ts + process.ts — Protocolo de report file (.inprogress → atomic rename). Suporte a adapter.run ou subprocess real (command).

worktree.ts + background.ts — Dois mecanismos de isolamento: git worktree dedicado e detached background process.

Source Anchors (Evidência Direta)

Arquivo:linhaConceito
/packages/swarm/src/orchestrator.ts:313-tier orchestrator architecture
/packages/swarm/src/types.ts:32MAX_DEPTH = 2
/packages/swarm/src/queue.ts:15dependency-gated TaskQueue
/packages/swarm/src/park.tsclassifyPark + T4 reasons
/packages/swarm/src/worktree.tsisolate + git worktree
/packages/swarm/src/background.tsdetached background workers
/packages/swarm/src/store.tsjournal + checkpoint + park ledger

Por que L3 Swarm é Importante

É a camada que permite ao Factory rodar múltiplos implement+review em paralelo de forma segura, isolada e resumível. Sem ela, o ADW não seria confiável em escala.

Entender linha a linha o orchestrator, a queue com dependency-gating, o park, o worktree isolation e o background dispatch é entender como o projeto consegue fazer evolução paralela sem quebrar o repositório.

Esta é a camada que transforma o "plano" do Factory em execução real, distribuída e auditável. O journal no Store + o sistema de park + o suporte a worktree e background são o que permitem que o sistema evolua a si mesmo de forma confiável.

Sem o Swarm, o Factory seria apenas um orquestrador ingênuo de processos. Com ele, vira um sistema de execução agêntica com garantias fortes de isolamento, resumibilidade e segurança.

Deep Line-by-Line Analysis

orchestrator.ts:31-46 — O comentário de arquitetura é o documento de design mais importante da camada. Ele define explicitamente as três regras duras: depth bound, dependency gating e T4 park. O Store é a fonte de verdade para journal, checkpoint e park ledger.

types.ts:32 — MAX_DEPTH = 2. Worker (depth 2) é leaf e não pode spawnar. Isso é o que impede recursão infinita.

queue.ts:15-22 — A TaskQueue é pura (in-memory). Ela só responde "quais tasks estão ready agora?". Toda durabilidade e resume vem do Store.

worker.ts + process.ts — O protocolo de report file é simples mas poderoso: o worker cria .inprogress, faz o trabalho, e faz rename atômico para .complete ou .failed. O orquestrador só precisa poll o diretório de reports.

worktree.ts + background.ts — Dois mecanismos complementares de isolamento. Worktree dá branch + port dedicado para tarefas que precisam de ambiente limpo. Background permite workers que sobrevivem à morte do processo pai (útil para tarefas longas).

Esta combinação de mecanismos é o que permite ao Factory executar múltiplos agentes em paralelo de forma segura e auditável.

O design do Swarm mostra maturidade de engenharia de sistemas distribuídos aplicados a agentes: journal, checkpoint, isolamento, e separação clara entre orquestração e execução.

Esta camada é fundamental para qualquer sistema que queira fazer evolução paralela de código de forma segura e rastreável.

O Swarm representa um dos pontos mais avançados do projeto em termos de arquitetura de execução agêntica distribuída.

Compreender profundamente o Swarm é essencial para quem deseja contribuir com melhorias no Factory ou criar novos padrões de execução paralela no ecossistema Alembic.

Esta deep dive fecha a visão das principais camadas de execução do projeto (junto com L0, L1 e L2).

O próximo passo natural seria L4 Harness, que é a camada que expõe todo esse poder para CLI, HTTP, MCP e outros clientes.

Com o L3 Swarm bem compreendido, o sistema de execução paralela do Alembic fica muito mais claro e poderoso.

Esta é uma das camadas mais avançadas do projeto e representa um passo importante na direção de sistemas de agentes verdadeiramente autônomos e seguros.

O Swarm + o Factory juntos formam um dos sistemas mais sofisticados de auto-evolução de código que existem atualmente.