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.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
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.