The heads are agents in the strict sense — they live as agent files on disk (under voice-profiles/department-heads/ for personality + role) and as rows in the agents table. What makes them "executive" is that they are always available in the War Room, get auto-attached to every project skill, and may dispatch each other.

HeadRolePrimary spokes
AmbroseChief of StaffAll — orchestrator
Morgan ChaseCMOsearch-audit, demo-forge, channel-bridge, campaign-metrics, lead-hunter
Jordan KnoxCROghl, plan-quoter, marketplace-finder, reply-bot
Alex RiveraCOOghl, channel-bridge, campaign-metrics, llm-analytics
Taylor BrooksCCOclient-vault, agent-vault, reply-bot, ghl
Dr. Elena ReyesCompliancebrain (Federal Register, CMS), agent-vault, phi-gateway
Sam OkaforResearchbrain (all .gov MCPs), marketplace-finder, agent-vault
Casey ParkCFOllm-analytics, agent-vault, campaign-metrics, ghl
Riley HartCTOadmin-ops, llm-analytics, channel-bridge

How dispatch works

  1. Ambrose receives the question.
  2. Ambrose decides which heads to convene — usually one, sometimes two or three for cross-functional questions.
  3. Each head runs in parallel (Claude Agent SDK with its allowed spokes).
  4. Heads may dispatch their own depth-2 specialists via the Task tool — e.g. Sam → Federal-Register specialist for rule lookups.
  5. Ambrose synthesizes contributions into one answer in your brand voice.

Editing a head

Open Agents → click the head → edit IDENTITY / PERSONALITY / MEMORY / NOTES markdown. Save = live. The same files are read by both the Python core and the Node SDK runner, so the personality stays consistent across surfaces.

Dr. Reyes has veto authority. Compliance is a hard gate — no other head can ship outbound content (email / SMS / social post) that Elena flagged as non-compliant.