Groups plan phases/tasks into dependency-ordered waves for parallel subagent execution via git worktrees. Analyses task dependencies, builds a DAG, assigns tasks to waves, and emits a living wave document that tracks status as work lands. Also updates an existing wave plan when tasks complete.
94
94%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Groups tasks into dependency-ordered waves so multiple subagents can work concurrently in isolated git worktrees.
.context/plans/<plan-slug>.md| Signal | Mode |
|---|---|
| New requirements / PRD with no existing plan | Mode A |
| Existing flat plan, phase list, or task breakdown | Mode A (from existing plan) |
| Wave document exists; tasks have been completed | Mode B |
| "Which wave is unblocked?" / "Update status" | Mode B |
Input that triggers Mode A:
"Create a wave plan for this refactor. Tasks: extract lib (no deps),
scaffold CLI (needs lib), add commands A/B/C (needs CLI), cleanup (needs all commands)."Expected output skeleton:
Wave 1 (parallel): extract-lib
Wave 2 (sequential): scaffold-cli ← depends on Wave 1
Wave 3 (parallel): command-A, command-B, command-C ← depend on Wave 2
Wave 4 (sequential): cleanup ← depends on Wave 3See references/wave-format.md for output format and full examples.
parallel; a wave with 1 task (or tasks that must run in order) is sequential.<plan-slug>.md to .context/plans/ using the format in references/wave-format.md.See references/status-tracking.md for the full update protocol.
.context/plans/<slug>.md.Verification: checklist:
# example gate for a test-coverage wave
bun run test --coverage
bun run typecheck
git log --oneline main..HEADStatus column cells.— DONE to the wave heading when all verifications pass.Pending → In Progress → Done
↓
Blocked (add a > BLOCKED: note)NEVER put dependent tasks in the same wave. WHY: agents working in parallel worktrees assume no ordering — placing dependent tasks together causes undefined behaviour or overwrite conflicts.
NEVER label a wave parallel if it contains only one task. WHY: parallel signals subagent tooling to spin up worktrees; a single-task wave wastes setup overhead and misleads reviewers.
NEVER advance to Wave N+1 before Wave N verification passes. WHY: a broken merge point in production compounds into every parallel branch; early detection is always cheaper.
NEVER track status inside individual task files. WHY: distributed status creates stale reads and coordination failures when multiple agents update concurrently.
NEVER invent dependencies that are not stated in the requirements. WHY: fabricated ordering reduces parallelism, slows execution, and breaks the contract between the plan and the actual work.
ALWAYS run the verification checklist before declaring a wave done — "it looks right" is not a gate.