# Fluxo do 2-projeto-agents — mapa operacional **Princípio:** CLI-first. Todo o ciclo roda por linha de comando. O dashboard web (`npm run dashboard`, porta 7777) é **visão opcional read-only** — nunca é gate de spec, handoff, sprint ou entrega. As 3 capacidades externas (ADR-0016) entram em pontos específicos do ciclo, sem mudar o pipeline SDD+GSD existente: - **codegraph** (MCP/CLI) → entender o código e medir impacto. - **harness** (plugin) → desenhar o time de agentes de uma feature/domínio. - **ai-engineering** (referência) → fundamentar decisões técnicas de IA. --- ## Mapa do ciclo ```mermaid flowchart LR subgraph TRANSVERSAL["🧠 Memória & Contexto (transversal)"] M["sync:universal · query:universal · context:smart"] end IDEIA(["💡 Ideia / demanda"]) subgraph CICLO["Ciclo CLI-first (SDD + GSD)"] direction LR E1["1· ENTENDER
codegraph explore/query
ai-engineering (ref)"] E2["2· ESPECIFICAR
product · spec:new
specs/<slug>/spec.md"] E3["3· ARQUITETAR
sdd-architect · spec:plan
ADR + harness (time)"] E4["4· DECOMPOR
spec:tasks
tasks.md + ownership"] E5["5· IMPLEMENTAR
orchestrator + worker
handoffs · codegraph MCP"] E6["6· GOVERNAR
governance · spec:check
project:check · npm test"] E1 --> E2 --> E3 --> E4 --> E5 --> E6 end ENTREGA(["✅ Entrega"]) VISAO["👁 dashboard 7777 (opcional)"] IDEIA --> E1 E6 --> ENTREGA M -.alimenta.-> CICLO CICLO -.estado.-> VISAO ``` ### Fallback ASCII (sem render) ``` ┌──────────── 🧠 MEMÓRIA & CONTEXTO (transversal) ────────────┐ │ sync:universal · query:universal · context:smart │ └──────────────────────────────┬──────────────────────────────┘ ↓ alimenta 💡 ─► 1·ENTENDER ─► 2·ESPECIFICAR ─► 3·ARQUITETAR ─► 4·DECOMPOR ─► 5·IMPLEMENTAR ─► 6·GOVERNAR ─► ✅ codegraph product sdd-arch tasks worker governance ai-eng (ref) spec:new spec:plan+ADR spec:tasks codegraph MCP spec:check harness (time) handoffs project:check ──────────────► 👁 dashboard 7777 (opcional, read-only) ``` --- ## Etapa → papel → comando → capacidade | # | Etapa | Papel | Comando(s) CLI | Capacidade usada | |---|-------|-------|----------------|------------------| | 1 | Entender | context-engineer | `codegraph explore "<área>"` · `npm run code:query ""` · `npm run context:smart` | **codegraph** · **ai-engineering** | | 2 | Especificar | product | `npm run spec:new -- ` | — | | 3 | Arquitetar | sdd-architect | `npm run spec:plan -- ` · ADR em `memory/90-decisions/` | **harness** (desenhar time) | | 4 | Decompor | sdd-architect | `npm run spec:tasks -- ` | — | | 5 | Implementar | orchestrator + worker | `npm run gsd:handoff -- implement ` · MCP `codegraph_explore`/`codegraph_node` | **codegraph** | | 6 | Governar | governance | `npm run spec:check -- ` · `npm test` · `npm run project:check` · `codegraph affected` | **codegraph** (impacto) | Handoffs entre papéis: `npm run gsd:handoff -- ` (7 campos, ADR-0005), gravados na tabela `handoffs` do `~/forja-workspace/memory/sqlite/universal.db` (ADR-0008). --- ## Onde cada capacidade entra (estratégico) **codegraph — análise de código.** Use *antes* de mexer (etapa 1) para mapear símbolos e call paths sem ler arquivo por arquivo, e *durante* a implementação (etapa 5) via ferramentas MCP. Na governança (etapa 6), `codegraph affected ` mostra os testes impactados por uma mudança. Mantenha o índice fresco com `npm run code:sync`. **harness — orquestração.** Quando uma feature/domínio nova precisa de um time de agentes próprio, na etapa 3 peça _"build a harness for this project"_ numa sessão Claude Code: ele escolhe um dos 6 padrões e gera `.claude/agents/` + `.claude/skills/`. O framework então *opera* esses agentes pelos handoffs existentes — harness desenha, GSD executa. **ai-engineering — base de conhecimento.** Referência para decisões técnicas de IA (etapa 1 e ao escrever ADRs na etapa 3). Consulte `projects/ai-engineering-from-scratch-main/` (`ROADMAP.md`, `phases/`, `glossary/`). --- ## Front (opcional) O dashboard sobe com `npm run dashboard` em `http://127.0.0.1:7777` e oferece uma visão read-only de specs, handoffs e agentes (`/api/health`, `/api/specs`, `/api/handoffs`, `/api/agents`). É conveniência de leitura — se não subir, **o fluxo segue 100% pela CLI**. Ver também: `docs/cli-first-operacao.md` (comandos), `docs/capacidades-externas.md` (detalhe das 3 capacidades), `AGENTS.md` (papéis), ADR-0016.