From bopen-tools
Coordinates native Claude agents and Codex subagents in structured waves with context budget tracking and directive diversity. Prevents context exhaustion and duplication when dispatching many agents.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bopen-tools:wave-coordinatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manage large-scale subagent dispatch through structured waves. Prevent context
Manage large-scale subagent dispatch through structured waves. Prevent context
exhaustion, preserve output diversity, and avoid duplication across batches.
On Claude, this can compose with
Skill(superpowers:dispatching-parallel-agents); on Codex, use the native
subagent runtime. Wave Coordinator owns batching and diversity while the host
runtime owns thread creation.
Claude Code ships a native Workflow tool that solves this skill's core
problems structurally: pipeline() runs items through stages with no wave
barriers, concurrency clamps to min(16, cores-2) with automatic queueing,
results collect as structured returns, and /workflows shows live progress
with resume support. When the session has the Workflow tool AND the user
explicitly asked for the fan-out (which is normally why this skill fired),
write the dispatch as a workflow script instead of hand-managed waves —
diversity directives go into the per-item agent() prompts and dedup runs as
plain code between stages. This is framework-dependent: no other runtime has
an equivalent, so on Codex or any non-Claude host the wave protocols below
remain the way. Gating and API details:
../coordinator/references/native-workflows.md.
Dispatching 10+ agents at once causes three failures:
Wave coordination solves all three.
Use five concurrent subagents as a conservative planning default, then clamp
the wave to the host's advertised concurrency limit, currently free thread
slots, task shape, and remaining context/token budget. Codex defaults to
agents.max_threads = 6 when unset, but that is a cap on open threads, not a
promise that all six slots are free. If N exceeds the effective limit, divide
the work into sequential waves:
N=12 → Wave 1 (5) → Wave 2 (5) → Wave 3 (2)
N=7 → Wave 1 (5) → Wave 2 (2)
N=5 → Wave 1 (5) — single wave, no split needed
Each wave completes fully before the next launches. Do not launch wave 2 until all wave 1 agents have returned results.
Compute the effective wave size as the minimum of:
Never assume a configured maximum means those slots are all available.
Before launching each wave, estimate context budget:
Hard rule: Never launch a wave if you estimate it will hit the context limit before completion. Stop early and synthesize. Incomplete partial output is better than a context overflow crash.
Each agent in a wave must receive unique creative direction. Do not send the same prompt to all agents in a wave.
Before dispatching, generate N distinct emphasis angles for N agents. Vary along at least one axis:
| Axis | Example variations |
|---|---|
| Tone | formal / conversational / terse / expansive |
| Focus | conciseness / error handling / edge cases / performance / examples |
| Perspective | beginner / expert / skeptic / advocate |
| Structure | prose / bullet list / table / code-first |
| Constraint | max 200 words / no jargon / no code / examples only |
Example: Generating 5 skill variants
Agent 1: "Write the most concise version possible. No examples, pure principle."
Agent 2: "Lead with 3 concrete examples, then derive the rule."
Agent 3: "Focus entirely on error cases and what can go wrong."
Agent 4: "Write for someone encountering this concept for the first time."
Agent 5: "Assume expert audience. Skip fundamentals, go deep on edge cases."
Never assign the same emphasis to two agents in the same wave.
Before launching each wave after the first:
Maintain a mental (or written) wave ledger before each dispatch:
Wave 1: [5 agents] — launched, awaiting results
Wave 2: [5 agents] — pending (blocked on wave 1)
Wave 3: [2 agents] — pending (blocked on wave 2)
Output so far: [list of completed items]
Remaining: [list of items not yet produced]
Update the ledger after each wave completes. This prevents re-dispatching work already done and helps identify what the final synthesis pass needs.
Before assigning a wave slot to a generic worker, match it against the roster
in ../deploy-agent-team/references/agent-roster.md and pass the specific
subagent_type (e.g. bopen-tools:code-auditor). Each wave slot picks a
roster agent before defaulting to a generic explorer/worker — use the generic
adapter only when no roster agent fits, and say so explicitly in the wave
ledger.
Use Skill(superpowers:dispatching-parallel-agents) when installed. Otherwise
use Claude Code's native Agent tool and plugin-qualified agent IDs. Preserve one
self-contained assignment per agent.
Use Codex native subagents. Prefer installed bopen_* custom agents for named
specialists and built-in worker or explorer agents when no matching custom
adapter exists. Do not claim a bopen_* persona was used unless that adapter is
actually installed and its thread was spawned.
Codex defaults to agents.max_threads = 6 and agents.max_depth = 1 when the
user leaves them unset. Depth 1 lets the main thread spawn direct children but
prevents those children from recursively spawning their own agents. Keep wave
coordination in the main thread under that default. If a workflow genuinely
requires nested delegation, explain the token and runaway-fan-out risk before
the user raises agents.max_depth; never change global Codex configuration as
part of this skill.
Use /agent or the available agent activity view to inspect active and
completed threads. Account for already-open threads when calculating the next
wave.
Wave-coordinator handles what to dispatch and when. Skill(superpowers:dispatching-parallel-agents) handles how to spawn subagents. Use them together:
Skill(superpowers:dispatching-parallel-agents) for the actual subagent spawning call syntaxIf the superpowers plugin is not installed, use the current host's native subagent runtime instead. Do not silently degrade: state whether the wave uses Claude agents, Codex custom/built-in agents, or another explicitly authorized worker lane.
Task: Generate 8 variations of a landing page headline.
Wave plan:
Wave 1 (5 agents):
Collect wave 1 output. Review for quality and coverage.
Wave 2 (3 agents — note: reduced from 5 because only 3 remain):
Synthesize all 8 results. Rank by quality. Present top 3 with rationale.
max_depth remains at its safe default of 1npx claudepluginhub b-open-io/claude-plugins --plugin bopen-toolsOrchestrates bounded waves of parallel Codex subagents: decompose goals, fan out workers, collect evidence-backed handoffs, verify claims, and synthesize deliverables.
Coordinate multi-agent swarms for parallel and pipeline workflows. Use when coordinating multiple agents, running parallel reviews, building pipeline workflows, or implementing divide-and-conquer patterns with subagents.
Guides subagent dispatch decisions: when to delegate vs work inline, the delegation contract, model/effort selection, parallel fan-out sizing, and verifier agent patterns. Use before any Agent tool call.