Parallel Plan
Overview
Use this skill as a lightweight implementation profile of manager-make-new-plan for current in-flight work.
Its purpose is simple: do not try to do complex tasks alone; split into independent workstreams and use help.
Keep the same core terminology (milestone/workstream/work package/patch), but reduce process weight so teams can start quickly.
The ultimate goal is to reduce implementation wall time, not to maximize process, parallelism theater, or document volume.
Terminology Contract
- Milestone: short planning window for the current task.
- Workstream: parallel lane with one clear owner.
- Work package: assignment-sized chunk a single coder can finish.
- Patch: reviewable change set used for progress reporting.
Core Nudge
- If a task has 2 or more separable tracks, split it.
- If one person is becoming the bottleneck, split it.
- If independence is unclear, do prerequisite work first, then split the rest.
- Prefer asking for help early rather than debugging integration late.
- Judge every split by one question: will this reduce elapsed time to a correct implementation?
Relationship to Manager Planning
manager-make-new-plan is the full manager-grade planning workflow.
parallel-plan is the lightweight operational version for active execution.
- Use the same language and dependency discipline, but with less document overhead and faster dispatch.
Choose Execution Mode
- Decide between
orchestration-only and real parallel execution.
- Choose the mode that minimizes elapsed time to a validated result.
- Use
orchestration-only when environment limits prevent true concurrency. Still split into independent streams and write complete stream briefs.
- Use
real parallel execution when streams can run at the same time in isolated sessions/worktrees or a single batched multi-task dispatch.
- If briefing, coordination, and merge overhead exceed likely time savings, do not parallelize.
Tooling and State
- Keep execution tooling non-prescriptive.
- Treat
tmux as an optional helper, not a requirement.
- Accept any equivalent mechanism that provides true concurrent execution and isolation.
- Default to lightweight text artifacts for task state (stream briefs, stream reports, unified plan).
- Make the orchestrator choose report paths per run; do not hardcode a global fixed path.
- Use collision-safe naming for report paths (for example: run id + stream id + timestamp/random suffix).
- Prefer repo-local temp directories or other orchestrator-selected temp locations when practical.
- Add a task database (
sqlite/Berkeley DB) only when cross-session resume or external query requirements are explicit.
Repo Agent Awareness
- Before assigning owners, inspect the repo-root
agents/ directory if it exists.
- Treat those
agents/*.md files as the available role catalog for this repo, not as decorative docs.
- Prefer assigning workstreams to actual available agent roles from that catalog.
- Read the agent files themselves before dispatch so role assignment reflects real capabilities and constraints, not just filenames.
- If the repo has no
agents/ directory, fall back to generic owner labels.
- If the repo has both specialized and generic agents, prefer the most specialized agent that fits the stream.
In this repo, the currently available root agents and their intended uses are:
orchestrator: split larger tasks into parallel subagents and synthesize outputs before code changes.
parallelizer: coordinate parallel teams with messaging; good for active multi-stream execution.
planner: write plans and docs only; never production code or tests.
architect: approve or reject cross-cutting design changes and resolve design disputes.
coder: implement production code from approved plans; no self-approval and no architectural redesign.
integrator: merge completed work, resolve conflicts, and maintain branch stability.
reviewer: read-only review and plan auditing; cannot modify production files.
tester: create and run tests; only modify files under tests/.
monitor: detect stalls, crashes, and deadlocks; read-only on code.
scheduler: trigger recurring workflows and retries; not for implementation or diagnosis.
maintainer: cleanup, lint maintenance, and index regeneration; not for feature work or architecture.
Workflow
- Resolve shared prerequisites first.
- Identify shared contracts (types, interfaces, schemas, migration order).
- Execute shared prerequisites in the orchestrator main context.
- Complete shared prerequisites before parallel dispatch.
- Define independent workstreams.
- Assign each stream a clear goal, scope boundary, and owned files/directories.
- Give each stream a named owner and, when available, an explicit agent role selected from the repo-root
agents/ directory.
- Merge or re-scope any streams that would modify the same files.
- Prefer
coder for production implementation streams.
- Prefer
tester only for test work under tests/.
- Prefer
reviewer for read-only code review, audit, and plan-conformance checks.
- Prefer
integrator for merge sequencing, conflict resolution, and stabilization after streams complete.
- Prefer
planner for documentation-only planning outputs.
- Prefer
architect for streams that exist solely to settle a cross-cutting design decision.
- Prefer
monitor for observing progress, stalls, and deadlocks rather than fixing code.
- Prefer
scheduler only for recurring or retry-oriented coordination tasks.
- Prefer
maintainer for cleanup, lint maintenance, and derived-index regeneration.
- Prefer the smallest number of streams that materially lowers wall time; more streams are not automatically better.
- Dispatch correctly.
- For real parallel execution, launch streams concurrently in one batch dispatch or separate isolated sessions.
- Do not send stream tasks sequentially if true parallelism is required.
- Enforce file-backed standardized stream outputs.
- Assign each stream an orchestrator-selected unique report path in the stream brief.
- Require each stream to write its full report only to the provided path.
- Require each stream to return only a compact handoff message with status, report path, validation status, and a short bullet summary.
- Require deep research streams to put full findings in report files and return only the compact handoff in chat.
- Reject stream responses that paste full reports or large logs inline.
- Synthesize one ordered plan.
- Synthesize only after all stream validations pass; if any validation fails, stop and fix before synthesis.
- Read stream report files from orchestrator-assigned paths and merge them into one milestone execution sequence with checkpoints.
- Add integration risks, dependency notes, and fallback handling.
- Gate before implementation.
- Confirm no unresolved cross-stream dependencies remain.
- Confirm each checkpoint has explicit verification commands.
- Confirm all expected stream report files exist and are readable before synthesis.
Lightweight Minimum Output
Use this minimum structure when speed matters:
- Milestone objective (one paragraph)
- Workstreams (owner, agent role if available, scope boundary, dependencies)
- Work packages per workstream (small, assignable)
- Patch plan (
Patch 1, Patch 2, ...)
- Checkpoints with verification commands
Do not skip dependency declarations. Milestone numbers are labels, not ordering.
Ordering must be explicit through dependencies and gates.
Independence Rules
- Parallelize only streams that do not depend on each other in-flight outputs.
- Do not parallelize streams that edit the same files or the same mutable state.
- If independence is uncertain, serialize that portion.
- Prefer finishing dependency-establishing work first, then parallelizing the rest.
- Do not split work purely to keep more agents busy; idle agents are cheaper than merge-heavy fake parallelism.
Orchestrator Memory Rules
- Do not request full stream reports inline in orchestrator chat.
- Use file-path handoff first; read files on demand during synthesis.
- Default final handoffs to short bullet lists (
3-6 bullets).
- Cap stream handoff size (for example,
<=1 KB plus report path).
- Keep verbose command output and diagnostics inside report files, not in handoff messages.
Required Output Contract
Require this structure from each stream handoff message:
- Status
- Report file path
- Summary (
3-6 bullets)
- Validation status (
pass/fail)
- Blocking issues (optional)
Require this structure inside each stream report file:
- Assumptions
- Decisions
- Concrete next steps
- Changed files
- Validation performed
Then synthesize:
- Ordered unified plan
- Checkpoints with pass/fail criteria
- Integration risks and mitigations
Templates
Use the reusable templates in references/parallel_plan_templates.md for:
- stream brief format
- compact stream handoff format
- stream report file format
- synthesis and checkpoint checklist
- anti-pattern checks for fake parallelism and memory overload
1---2name: parallel-plan3description: Parallel Plan4---5# Parallel Plan67## Overview89Use this skill as a lightweight implementation profile of `manager-make-new-plan` for current in-flight work.10Its purpose is simple: do not try to do complex tasks alone; split into independent workstreams and use help.11Keep the same core terminology (milestone/workstream/work package/patch), but reduce process weight so teams can start quickly.12The ultimate goal is to reduce implementation wall time, not to maximize process, parallelism theater, or document volume.1314## Terminology Contract1516- Milestone: short planning window for the current task.17- Workstream: parallel lane with one clear owner.18- Work package: assignment-sized chunk a single coder can finish.19- Patch: reviewable change set used for progress reporting.2021## Core Nudge2223- If a task has 2 or more separable tracks, split it.24- If one person is becoming the bottleneck, split it.25- If independence is unclear, do prerequisite work first, then split the rest.26- Prefer asking for help early rather than debugging integration late.27- Judge every split by one question: will this reduce elapsed time to a correct implementation?2829## Relationship to Manager Planning3031- `manager-make-new-plan` is the full manager-grade planning workflow.32- `parallel-plan` is the lightweight operational version for active execution.33- Use the same language and dependency discipline, but with less document overhead and faster dispatch.3435## Choose Execution Mode3637- Decide between `orchestration-only` and `real parallel execution`.38- Choose the mode that minimizes elapsed time to a validated result.39- Use `orchestration-only` when environment limits prevent true concurrency. Still split into independent streams and write complete stream briefs.40- Use `real parallel execution` when streams can run at the same time in isolated sessions/worktrees or a single batched multi-task dispatch.41- If briefing, coordination, and merge overhead exceed likely time savings, do not parallelize.4243## Tooling and State4445- Keep execution tooling non-prescriptive.46- Treat `tmux` as an optional helper, not a requirement.47- Accept any equivalent mechanism that provides true concurrent execution and isolation.48- Default to lightweight text artifacts for task state (stream briefs, stream reports, unified plan).49- Make the orchestrator choose report paths per run; do not hardcode a global fixed path.50- Use collision-safe naming for report paths (for example: run id + stream id + timestamp/random suffix).51- Prefer repo-local temp directories or other orchestrator-selected temp locations when practical.52- Add a task database (`sqlite`/Berkeley DB) only when cross-session resume or external query requirements are explicit.5354## Repo Agent Awareness5556- Before assigning owners, inspect the repo-root `agents/` directory if it exists.57- Treat those `agents/*.md` files as the available role catalog for this repo, not as decorative docs.58- Prefer assigning workstreams to actual available agent roles from that catalog.59- Read the agent files themselves before dispatch so role assignment reflects real capabilities and constraints, not just filenames.60- If the repo has no `agents/` directory, fall back to generic owner labels.61- If the repo has both specialized and generic agents, prefer the most specialized agent that fits the stream.6263In this repo, the currently available root agents and their intended uses are:64- `orchestrator`: split larger tasks into parallel subagents and synthesize outputs before code changes.65- `parallelizer`: coordinate parallel teams with messaging; good for active multi-stream execution.66- `planner`: write plans and docs only; never production code or tests.67- `architect`: approve or reject cross-cutting design changes and resolve design disputes.68- `coder`: implement production code from approved plans; no self-approval and no architectural redesign.69- `integrator`: merge completed work, resolve conflicts, and maintain branch stability.70- `reviewer`: read-only review and plan auditing; cannot modify production files.71- `tester`: create and run tests; only modify files under `tests/`.72- `monitor`: detect stalls, crashes, and deadlocks; read-only on code.73- `scheduler`: trigger recurring workflows and retries; not for implementation or diagnosis.74- `maintainer`: cleanup, lint maintenance, and index regeneration; not for feature work or architecture.7576## Workflow77781. Resolve shared prerequisites first.79- Identify shared contracts (types, interfaces, schemas, migration order).80- Execute shared prerequisites in the orchestrator main context.81- Complete shared prerequisites before parallel dispatch.82832. Define independent workstreams.84- Assign each stream a clear goal, scope boundary, and owned files/directories.85- Give each stream a named owner and, when available, an explicit agent role selected from the repo-root `agents/` directory.86- Merge or re-scope any streams that would modify the same files.87- Prefer `coder` for production implementation streams.88- Prefer `tester` only for test work under `tests/`.89- Prefer `reviewer` for read-only code review, audit, and plan-conformance checks.90- Prefer `integrator` for merge sequencing, conflict resolution, and stabilization after streams complete.91- Prefer `planner` for documentation-only planning outputs.92- Prefer `architect` for streams that exist solely to settle a cross-cutting design decision.93- Prefer `monitor` for observing progress, stalls, and deadlocks rather than fixing code.94- Prefer `scheduler` only for recurring or retry-oriented coordination tasks.95- Prefer `maintainer` for cleanup, lint maintenance, and derived-index regeneration.96- Prefer the smallest number of streams that materially lowers wall time; more streams are not automatically better.97983. Dispatch correctly.99- For real parallel execution, launch streams concurrently in one batch dispatch or separate isolated sessions.100- Do not send stream tasks sequentially if true parallelism is required.1011024. Enforce file-backed standardized stream outputs.103- Assign each stream an orchestrator-selected unique report path in the stream brief.104- Require each stream to write its full report only to the provided path.105- Require each stream to return only a compact handoff message with status, report path, validation status, and a short bullet summary.106- Require deep research streams to put full findings in report files and return only the compact handoff in chat.107- Reject stream responses that paste full reports or large logs inline.1081095. Synthesize one ordered plan.110- Synthesize only after all stream validations pass; if any validation fails, stop and fix before synthesis.111- Read stream report files from orchestrator-assigned paths and merge them into one milestone execution sequence with checkpoints.112- Add integration risks, dependency notes, and fallback handling.1131146. Gate before implementation.115- Confirm no unresolved cross-stream dependencies remain.116- Confirm each checkpoint has explicit verification commands.117- Confirm all expected stream report files exist and are readable before synthesis.118119## Lightweight Minimum Output120121Use this minimum structure when speed matters:1221. Milestone objective (one paragraph)1232. Workstreams (owner, agent role if available, scope boundary, dependencies)1243. Work packages per workstream (small, assignable)1254. Patch plan (`Patch 1`, `Patch 2`, ...)1265. Checkpoints with verification commands127128Do not skip dependency declarations. Milestone numbers are labels, not ordering.129Ordering must be explicit through dependencies and gates.130131## Independence Rules132133- Parallelize only streams that do not depend on each other in-flight outputs.134- Do not parallelize streams that edit the same files or the same mutable state.135- If independence is uncertain, serialize that portion.136- Prefer finishing dependency-establishing work first, then parallelizing the rest.137- Do not split work purely to keep more agents busy; idle agents are cheaper than merge-heavy fake parallelism.138139## Orchestrator Memory Rules140141- Do not request full stream reports inline in orchestrator chat.142- Use file-path handoff first; read files on demand during synthesis.143- Default final handoffs to short bullet lists (`3-6` bullets).144- Cap stream handoff size (for example, `<=1 KB` plus report path).145- Keep verbose command output and diagnostics inside report files, not in handoff messages.146147## Required Output Contract148149Require this structure from each stream handoff message:1501. Status1512. Report file path1523. Summary (`3-6` bullets)1534. Validation status (`pass`/`fail`)1545. Blocking issues (optional)155156Require this structure inside each stream report file:1571. Assumptions1582. Decisions1593. Concrete next steps1604. Changed files1615. Validation performed162163Then synthesize:1641. Ordered unified plan1652. Checkpoints with pass/fail criteria1663. Integration risks and mitigations167168## Templates169170Use the reusable templates in `references/parallel_plan_templates.md` for:171- stream brief format172- compact stream handoff format173- stream report file format174- synthesis and checkpoint checklist175- anti-pattern checks for fake parallelism and memory overload