Turns the current session into the operator's SDLC proxy for parallel PRP workstreams in isolated worktrees. It owns the combined outcome, steers autonomous deliveries, holds human and merge gates, verifies proof, and sequences merges. Use when the user wants to "spawn N agents in separate worktrees", "run prp-issue on these issues in parallel", "orchestrate these features", "act as my orchestrator", "coordinate agents through the PRP pipeline", "ship these issues in parallel", or invokes /prp-orchestrate.
79
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Coordinate multiple workstreams from one session. Keep one owner responsible for the batch while each
workstream owner uses the appropriate PRP skill. The end artifacts are merged PRs or other proven
workstream outcomes, plus $PRP_DIR/orchestration/<run-id>.md as the durable run record.
Input: $ARGUMENTS (if absent, infer the entrusted concern and workstreams from the conversation)
# --- PRP store resolver (canonical; keep byte-identical across skills) ---
# Adopt the store that already records this root; mint a key only when none does.
_gd="$(git rev-parse --path-format=absolute --git-common-dir 2>/dev/null)"
case "$_gd" in */.git) _root="${_gd%/.git}" ;; "") _root="$PWD" ;; *) _root="$_gd" ;; esac
_root="$(cd "$_root" && pwd -P)"
_name="$(basename "$_root" | tr '[:upper:]' '[:lower:]' | tr -cs 'a-z0-9' '-' | sed 's/^-*//;s/-*$//')"
_home="${PRP_HOME:-$HOME/.prp}"
_hit="$(grep -lsF "\"path\": \"$_root\"" "$_home"/*/project.json 2>/dev/null | head -1)"
PRP_DIR="${_hit%/project.json}"
[ -n "$PRP_DIR" ] || PRP_DIR="$_home/${_name:-project}-$(printf %s "$_root" | git hash-object --stdin | cut -c1-8)"
mkdir -p "$PRP_DIR"; [ -f "$PRP_DIR/project.json" ] || printf '{"path": "%s", "name": "%s"}\n' "$_root" "${_name:-project}" > "$PRP_DIR/project.json"READY TO MERGE verdict. Require its review and CI proof to cover the current PR head before acceptance and again before merge.prp-issue finish its own correction loop. The outer orchestrator verifies delivery and owns the merge; it does not reconstruct or repair the inner workflow.prp-issue.prp-loop, only when the user explicitly requests it.prp-plan.prp-plan, then continue the same owner with prp-implement after approval.prp-implement.prp-review. Research only: prp-codebase-question. Diagnosis: prp-debug.prp-spike before dependent work. A spike ends in a verdict, not a PR.origin/<base> for every checkout, and pass --base <base> to every PR-producing skill. Never infer the base again later in the run.max-parallel to the user's value or 10. Never rewrite that value because dependencies or harness capacity lower the effective launch limit. Calculate effective capacity from references/launching.md when launching.Before approving a design that adds a subsystem, policy layer, state store, staging area, or lifecycle, ask its owner:
When the answers can change the architecture, tell the owner to use prp-spike. Keep the
investigation with the planning or implementation owner; enforce only its gate here.
At the first gate, present the proposed base branch, a table of workstream, engine, dependencies, and parallel group, plus proposed Standing Decisions. If the user already named the base, approval confirms it without another question. Do not launch before approval. That approval covers the batch.
Read templates/orchestration-run.md, create $PRP_DIR/orchestration/<run-id>.md from it, and record
its expanded path. Use YYYY-MM-DD-<slug> for the run ID. Do not send a separate progress message.
Seed Standing Decisions with the confirmed base and any other user decision that will govern a later choice, following the template's routing rules. Maintain the run file for the run's lifetime. Keep current state in each workstream row. Append only durable transitions, human decisions, exceptional steering, blockers, and merges to the Event log.
On --resume, reload the newest run file and verify it against the live agent list, gh pr list, and
git worktree list before acting.
Before the first launch, read references/launching.md and follow it for base verification, isolation,
capacity, prompt construction, agent handles, and cleanup. Start every checkout from the confirmed
origin/<base>.
Launch eligible owners as background agents. Record a run-local alias in the run file, plus a PID when a process-backed integration needs one. Keep ephemeral agent handles in the live session. Queue other work and launch it as effective capacity frees.
Give each owner the complete source or relevant user context. Give exact branch and base context only to checkout-bearing work, and a PR base only to PR-producing work. Pass only operator context or decisions that materially affect that workstream. Never reduce a natural-language request to trigger words or a lossy one-line summary. Let the selected skill own its validation and terminal contract.
React to completion notifications instead of polling. Update the run file without sending routine progress messages.
On completion, use references/launching.md to verify the promised artifact and terminal signal. For a
delivery, require a live PR, a published READY TO MERGE review of its current head, and green required
CI or the recorded local gate. Update the row and Event log, then launch the next queued workstream.
Keep a delivery owner addressable until merge so its context can handle corrections or conflicts. Treat
an intermediate review as progress inside prp-issue, not completion.
Interpret new user messages by intent:
references/launching.md, and launch eligible work. If the harness rejects a spawn, keep the work pending without rejecting or rewriting the user's value.If an owner is silent well past its engine's expected runtime, inspect its status and output. Send a focused follow-up or stop it and gate retry, reassignment, or dropping. After two failed restarts, stop restarting and escalate.
Gate staged plans, genuine human-only blockers, destructive or ambiguous actions, and every merge.
Autonomous prp-issue owners publish their reviews for visibility but resolve findings internally until
the review is ready and CI is green.
Apply an in-scope Standing Decision when one exists and record the action. Otherwise send a standalone digest: what happened, the recommendation and its risk, then the exact decision needed at the end. Group simultaneous decisions into one message. Log every answer in the Event log and send it to the affected owner as a follow-up. Promote an answer to a Standing Decision only when it also settles a question that will be asked again. A one-time authorization stays an event, and a change to the workstream set or its scope updates the Workstreams table.
Never merge to a protected branch until the user has approved that merge path in the run. Never delete a branch or worktree with unmerged commits.
Build the merge queue from dependencies and pairwise overlap of gh pr diff <n> --name-only. Among
ready PRs, choose the lowest-risk one. After each merge, recalculate readiness and overlap for the
remaining queue.
Before each merge, repeat the current-head review and CI proof. Merge one PR at a time. Verify its
GitHub merge commit is reachable from origin/<base>, update the run file, then follow
references/launching.md to clean the checkout and exact PR-head refs. Preserve and report dirty state
or changed refs.
After a merge, ask each affected owner to rebase onto the base, resolve conflicts, validate, and push. Rebase directly only when the change is mechanical. Gate semantic conflicts. Recheck required CI, or the local gate when no required CI exists, before the next merge.
When every row is terminal (complete, merged, verdict:*, failed, dropped, or handed-back), set the run
status to complete. Reconcile cleanup deferred after a merge. Keep the run file as the record.
Fill the template's Final handoff from verified state. Put shipped outcomes and proof first. Put decisions, incomplete or handed-back work, risks, cleanup, and worthwhile follow-ups at the end. Use stable workstream and PR identifiers, write for a tired engineer, and omit empty ceremony.
Send the same standalone handoff to the user. Do not rely on progress messages or the Event log for anything the user needs to know.
references/launching.md contains provider mechanics, the workstream prompt, verification commands, capacity, steering, and cleanup. Read it before the first launch.templates/orchestration-run.md is the required durable run format. Read it before creating or closing a run.9724799
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.