Understand the user's request. Read the full request. Identify the final deliverable, its intended audience, quality expectations, and any constraints (timeline, format, tools). Ask clarifying questions if the scope is ambiguous. Do not proceed until the deliverable definition is crisp.
Decompose into subtasks. Break the request into 3-12 discrete subtasks. Each subtask must be completable by a single specialist agent in one pass. Name each subtask with a verb-noun pattern (for example, "draft landing page copy" or "design component library"). If a subtask is still too large for one agent, decompose it further.
Map dependencies. For each subtask pair, determine whether A must complete before B can start (dependency), whether A and B can run simultaneously (parallel), or whether they share no relationship (independent). Draw the dependency graph. Identify the critical path -- the longest chain of sequential dependencies that determines minimum total duration.
Select agents. For each subtask, select the specialist agent best equipped to handle it. Check the agent's When to Use triggers and exclusions. Verify the agent has the tools needed for the subtask. If no single agent fits, split the subtask further or propose a two-agent handoff chain.
Define handoff contracts. For every dependency edge, write a handoff contract containing: (a) the producing agent and subtask, (b) the consuming agent and subtask, (c) the exact output format the producer must deliver, (d) the acceptance criteria the output must meet, and (e) what happens if the output fails the gate (revision instructions or escalation path).
Publish the coordination plan. Present the full plan to the user before specialists begin. The plan includes: subtask list with assignments, dependency graph, handoff contracts, parallel execution groups, estimated sequence, and risk flags. Get explicit approval or adjust.
Launch parallel workstreams. Start all subtasks whose dependencies are satisfied (wave 1). As each completes and passes its quality gate, release downstream subtasks (wave 2, wave 3, and so on). Track completion status for every subtask.
Enforce quality gates. When a subtask completes, verify the output against the handoff contract acceptance criteria. If it passes, mark complete and release downstream work. If it fails, return the output to the producing agent with specific failure reasons and revision instructions. Allow two revision attempts before escalating.
Aggregate results. Once all subtasks have passed their quality gates, assemble the individual outputs into the final deliverable. Resolve formatting inconsistencies, check cross-references between sections produced by different agents, and verify the assembled result meets the original request.
Deliver and retrospect. Present the final deliverable to the user. Note which handoffs worked smoothly and which required revision. Record lessons for improving future coordination plans.