1. User types in the War Room (browser).
  2. POST /api/warroom to Supervisor (9000). Supervisor proxies to Node Core (3300).
  3. Node Core authenticates the session, sources the agency_id, applies the PHI Rail.
  4. Node Core spawns a Claude Agent SDK session for Ambrose (Chief of Staff). System prompt = Ambrose's CANONICAL.md + tool catalog (MCP bridges: ghl, vault, brain, admin-ops, plus any native-spoke bridges + skills).
  5. Ambrose decides which head(s) to dispatch. Each head runs in its own SDK session — same shape, different prompt + allowed_spokes.
  6. Heads call tools. Each tool call routes through the appropriate bridge:
    • ghl_* → ghl bridge → GHL v2 API (with PHI scrub if not BAA).
    • vault_* → vault bridge → local index, returns answer (not PHI).
    • brain MCPs → Brain (8150) → upstream federal API.
    • admin-ops stages → Python core internal endpoint → Postgres.
  7. Each head returns its contribution. Ambrose synthesizes.
  8. Response streams back to the browser via SSE.
  9. Every LLM call is recorded to llm_calls.db (provider, model, tokens, cost, latency — never bodies).