Corrective Action: Agent Leaders Failed to Spawn Teammates

Corrective Action: Agent Leaders Failed to Spawn Teammates

Date: 2026-03-09 Category: Agent Architecture — Passive Definition Impact: V executed all work solo despite having 25 agents. Zero team formation occurred. Resolution Time: ~45 minutes (root cause analysis + definition rewrite) Filed by: Q (Quality System Manager)


Incident

What Happened

Chris asked V to check the media pipeline — a request spanning three distinct agent domains (Prelude for upcoming shows, Encore for unprocessed recordings, Broadcast for distribution gaps). V did all the work itself: ran bash commands, searched files, and produced the briefing solo. No agents were spawned. The Claude Code terminal showed V making 15+ tool calls sequentially instead of spawning 3 specialists in parallel.

Additionally, V attempted to query agent-office.db via sqlite3 CLI (not installed on this system), producing bash errors. The test was a complete failure across both team formation and operational execution.

Timeline

Time Event
23:00 CT Chris asks for a test prompt to verify agent team formation
23:10 CT Test executed: "V, I need a full operational check on our media pipeline..."
23:15 CT V produces output — all solo work, zero agents spawned, bash errors
23:32 CT Chris shares screenshot confirming failure
23:35 CT Root cause identified: passive agent definitions
23:45 CT V's definition rewritten with active team formation behavior
23:52 CT Re-test: V spawns Prelude, Encore, Broadcast in parallel — success

Root Cause

The .claude/agents/v.md definition — the file Claude Code reads to understand V's capabilities and behavior — contained no instructions about when to form teams or who to call.

The original definition (generated by scripts/generate-agent-definitions.ts) said:

When working as part of a team, return RAW INTELLIGENCE to the lead.
When you ARE the lead, synthesize all teammate results into the final deliverable.

This is passive. It describes behavior when already on a team, but never tells V to create a team. V had no agent roster, no codenames, no spawn instructions, no decision rules for when to delegate. The definition assumed V would somehow know to form teams — but Claude Code agents only do what their definition tells them to do.

Category: Agent Architecture — Passive Definition

This is a design flaw, not a runtime error. The generator script produced definitions appropriate for teammate agents (read-only specialists returning intelligence to a lead) but applied the same passive template to leaders who should be actively spawning teams. Leaders need fundamentally different definitions than teammates.


Fix Applied

Immediate Resolution

Rewrote V's .claude/agents/v.md from a 45-line passive template to a 157-line active team formation definition including:

  • Full 42-agent roster with codenames and domains
  • Explicit Task(subagent_type: "{codename}") spawn instructions
  • Decision rule: "If work involves 2+ distinct agent domains -> form a team"
  • 5 concrete examples mapping natural language requests to agent spawns
  • Synthesis protocol (spawn in parallel, gather own intel, synthesize)

Applied the same treatment to Sage (11 agents, Customer Org) and Pax (3 agents, Finance Org).

Code/Configuration Changes

File Change
.claude/agents/v.md Rewritten with active team formation (25 Operations agents + cross-org)
.claude/agents/sage.md Rewritten with active team formation (11 Customer agents + cross-org)
.claude/agents/pax.md Rewritten with active team formation (3 Finance agents + cross-org)
scripts/generate-agent-definitions.ts Added HAND_CRAFTED_LEADERS skip set; generator no longer overwrites leader definitions
.claude/commands/daily-ops.md Team activation: sentinel + pulse + prelude + encore (was Sage + Pax)
.claude/commands/daily-recap.md Team activation: sentinel + pulse + beacon (was Sage + Pax)
.claude/commands/meeting-prep.md Team activation: herald + sentinel + scribe (was Sage)
.claude/commands/weekly-plan.md Team activation: sentinel + pulse + horizon + prelude + marshal (was Sage + Pax)
.claude/commands/weekly-review.md Team activation: sentinel + pulse + forge + echo + encore (was Sage + Pax)
.claude/commands/all-hands.md Team activation: sage + pax (unchanged — leaders assess own orgs)

Verification

Chris re-tested with the same prompt. V's response:

"On it. This spans three agent domains — spawning Prelude, Encore, and Broadcast in parallel."

Terminal showed three agents running simultaneously with independent tool usage. Test passed.


Prevention Measures

Rules Added

Layer File Rule
Critical Lessons memory/MEMORY.md V IS A TEAM LEADER, NOT A SOLO OPERATOR. When any task spans 2+ agent domains, spawn the named specialists in parallel via the Task tool.
Generator Script scripts/generate-agent-definitions.ts Leader definitions (v.md, sage.md, pax.md) are hand-crafted and skipped during regeneration.
Slash Commands 6 command files Each command now names specific agents with subagent_type codenames — no ambiguity about who to spawn.

Detection Triggers

If V, Sage, or Pax produce a briefing that covers 3+ domains without spawning any agents, the output contains a structural failure. The synthesis protocol requires attributing sections to specific agents — a briefing with no agent attribution means no team was formed.


Lessons

Leader agents need fundamentally different definitions than teammate agents. Teammates need to know how to return intelligence. Leaders need to know when to form teams, who to call, and how to synthesize. The same template cannot serve both roles. This is now enforced architecturally: the generator produces teammate definitions, leader definitions are hand-crafted.


Related Incidents

This is the first incident of this type. No prior agent team formation failures exist because Agent Teams infrastructure (Brick 14A, committed Mar 3) and custom agent definitions (committed Mar 9) are both new capabilities.