Pattern: Wave parallelism

Discover task dependencies, group independent tasks into waves, and run each wave’s tasks concurrently (one subagent per task) before advancing to the next wave. Maximizes parallelism while respecting dependency order. In GSD, gsd-execute-phase spawns a gsd-executor per task per wave; --wave N runs a single wave for staged rollout.

GSD:

Superpowers (the concurrent-dispatch half, without GSD’s dependency-ordered waves):

  • sp-dispatching-parallel-agents — one focused subagent per independent problem domain, all dispatched in a single response so they run concurrently; explicitly not for related/shared-state work.

Enabled by (infrastructure)

  • sandcastle (library) — the execution layer’s concurrent-dispatch substrate: parallel AFK run()s across isolated worktrees plus session forking for fan-out. Its parallel-planner template identifies parallelizable work and runs it concurrently, merging back. This is the concurrent-dispatch half (like sp-dispatching-parallel-agents), without GSD’s dependency-ordered waves.

See Also