Instalar

Referência

Arquitetura.

Três planos e uma invariante. O control plane decide, o worker executa onde o código está, o cockpit observa — e nenhum CLI de agente toca o checkout principal, nunca. Esta página é o resumo; a referência completa é docs/ARCHITECTURE.md.

Diagrama Archify: operador → cockpit/API → FactoryService → leases Postgres → worker remoto. Abrir interativo (views, tema, trace).

Os três planos

Control plane

Guarda ordens, runs, eventos, artefatos e leases em Postgres, e expõe REST e SSE. É quem conhece a máquina de estados e quem emite as leases que os workers reivindicam. Nada de agente executa aqui: este processo decide, não constrói.

Worker

Roda no host onde o seu código está. Reivindica uma lease, cria o worktree da ordem, invoca o CLI de agente e devolve o resultado. A credencial vive em FACTORY_WORKER_CREDENTIAL — variável de ambiente, nunca t25.yaml. Lease expirada é reclamada no ciclo seguinte, e uma completion que chega depois de a lease expirar é rejeitada em vez de aceita torta.

Mission Control

O cockpit em localhost:4173: board, log por run, aprovações, retries, custo, políticas por projeto e perfil de agentes, com os eventos de progresso chegando por SSE enquanto a ordem anda.

A máquina de estados

RECEIVED → SPEC → PLAN → AWAITING_APPROVAL → IMPLEMENTING
         → QA → REVIEW → PR_OPEN → DOCS → DONE

fuga: NEEDS_INPUT · FAILED · CANCELLED
volta: QA e REVIEW podem devolver para IMPLEMENTING

As transições legais são declaradas num lugar só e verificadas antes de qualquer mudança de estado — nenhum trecho do pipeline escreve o estado direto. Cada mudança emite um evento, que é o que o cockpit vê chegar.

EstadoNome de missãoO que acontece
SPECBriefingUm agente lê o repositório e escreve a spec. Para até você aprovar.
PLANFlight PlanO plano fixa critérios de aceite. Só restringe o escopo do research, nunca expande.
AWAITING_APPROVALGo/No-GoParada humana quando a política ou o risco exigem.
IMPLEMENTING—Agentes de backend e frontend trabalham no worktree da ordem.
QAChecklistVerificações; reprovou, devolve para implementação.
REVIEW—Revisão de código e de segurança, com veredito estruturado.
PR_OPENRelease RunwayO pull request é aberto de verdade e conferido antes de seguir.
DOCS—A documentação da mudança sai junto.

Os nomes de missão existem só onde há correspondência operacional real — o cockpit segue mostrando o estado técnico, não o apelido.

Isolamento por worktree

É a parte deliberadamente paranoica do sistema, e a que não se mexe sem ler os comentários de segurança do módulo:

Adapters de agente

Um adapter é a menor coisa possível: o nome do binário e como montar os argumentos. Toda a mecânica de processo — descobrir se o CLI existe, ler a versão, streamar saída, matar no timeout — é compartilhada. Acrescentar um CLI novo é declarar um adapter, não reimplementar processo.

Duas escolhas valem registro: a execução é por lista de argumentos, sem shell no meio; e prompt muito grande vai para arquivo temporário em vez de argumento, porque a linha de comando tem teto de tamanho no sistema operacional.

O roteamento por papel é uma cadeia de preferência, não um CLI fixo: a T25 usa o primeiro da lista que estiver disponível. Ver configuração.

Execução durável

A execução não é uma chamada de função que precisa sobreviver ao processo: é uma fila de leases. A ordem é enfileirada, um worker reivindica com prazo, e ao terminar confirma ou devolve. Se o worker morre no meio, a lease expira e o trabalho volta para a fila — é a recuperação de queda, e ela não depende de ninguém lembrar de limpar estado.

Onde está o código

O quêOnde
Contratos compartilhados (papéis, adapters, estados, API)src/core/types.ts
Transições legaissrc/core/state-machine.ts
O laço do pipelinesrc/factory/service.ts
Isolamento por worktreesrc/workspace/manager.ts
Fila, worker e runtimesrc/runtime/
Adapters de CLIsrc/adapters/
Prompts e papéis de agentesrc/agents/roles.ts
API HTTP e SSEsrc/server/
Cockpitweb/

Ler antes de mexer. ARCHITECTURE.md abre as camadas com tour guiado e pontos de complexidade; ARCHITECTURE-WORKERS.md detalha o plano de execução; e as ADRs registram por que o desenho é este.

Próximo Configuração: as seções do t25.yaml →