Agent skill
orchestrate-subagents
Orchestrate parallel and/or sequential subagents working in separate git worktrees to deliver PR(s). Use when bundling multiple related GitHub issues into a single task, running best-of-3 identical attempts, monitoring runs, selecting the best PR, and closing/cleaning up the rest.
Install this agent skill to your Project
npx add-skill https://github.com/JoernStoehler/ai-forecasting-hackathon/tree/main/.claude/skills/orchestrate-subagents
SKILL.md
Orchestrate Subagents
Overview
Run coding subagents reliably: define a task bundle (often spanning several related issues), create isolated worktrees, spawn 1 or 3 identical attempts, then select the best PR and clean up the rest.
This skill is for the orchestrator/PM agent. Coding agents do implementation work and need not spawn subagents themselves.
Workflow (Best-Of-3 Default)
1) Write a bundle spec
- Put the bundle spec in
/scratch/(outside the repo), so you don’t create repo noise.- Example path:
/scratch/claude-bundle-spec-<date>-<slug>.md
- Example path:
- Include:
- Issue list (IDs + titles).
- Acceptance criteria (bulleted, testable).
- Out of scope (explicit “DO NOT …” list).
- Required readings (exact file paths relative to worktree root).
- Definition of done (tests/checks to run, CI must be green).
- “Stop and ask” triggers (ambiguity, scope conflicts, failing tests that look unrelated).
2) Write the subagent prompt file
- Use one prompt file for all subagents (identical attempts):
- Example path:
/scratch/claude-prompt-<date>-<slug>.md
- Example path:
- Use an absolute prompt path in
claude code exec(e.g. a/scratch/...path). - Transform the bundle spec into a prompt. Add instructions that are about how the subagent has to work, beyond the bundle spec.
- Work only in their current worktree (
pwdreveals it). - Run onboarding/sanity:
bash -lc scripts/hello.sh. Subagents readAGENTS.mdand will know what to do. - Implement the full issue bundle (single PR).
- Run the relevant checks (at minimum:
npm run check). - Open a PR (with a clear title and issue-closing footer).
- Stop and report back if they hit non-trivial blockers (don’t “invent” scope). Minimal prompt template (edit for the specific bundle):
- Work only in their current worktree (
# Prompt
You are a coding sub-agent. Work only inside your current git worktree.
## Onboarding
- Run `bash -lc scripts/hello.sh`.
## Task bundle
- Solve issues: #<A>, #<B>, #<C> as ONE coherent PR.
### Acceptance criteria:
- (list)
### Out of scope:
- (list explicit NOTs)
## Constraints
- Do not do PM tasks. Do implementation only.
- Do not add temporary/demo files.
## Process
- If you find ambiguity or a likely typo in the issue text, STOP and write a short question in the PR description.
## Validation
- (list)
## Deliverable
- Push a branch and open a PR.
- PR description must:
- Reference all issues with “Closes #…”.
- Include a short, skimmable summary and any tradeoffs/risks.
- Inform the reviewer of any deviations from the acceptance criteria.
- Inform the reviewer of any shortcomings or known issues you did not address, and why you did not address them.
3) Create Worktrees and Spawn Subagents
- For best-of-3, create 3 worktrees with 1 subagent each.
- See
.claude/skills/git-worktrees/SKILL.mdfor worktree management.- Create:
scripts/worktree-new.sh <path> <branch> [--force] - Remove:
scripts/worktree-remove.sh <path> [--force]
- Create:
- Recommended naming (deterministic, easy to filter in PR list):
- Slug:
<yyyymmdd>-<short-bundle-name> - Branches:
agent/<slug>/a,agent/<slug>/b,agent/<slug>/c - Paths:
/workspaces/worktrees/<slug>-a(and-b,-c)
- Slug:
- Start each subagent from inside its worktree directory (no backgrounding):
cd /workspaces/worktrees/<slug>-a && claude code exec "Prompt: /scratch/claude-prompt-<date>-<slug>.md" 2>/dev/null
Important:
- Do not add
&to theclaude code execcommand. - To run best-of-3 in parallel, run one subagent per terminal (three terminals total).
4) Monitor and Triage
- We suppress stderr because it is extremely verbose and not meant for orchestrator review.
- When the agent is done, it exits and prints its final message to stdout. It also ought to have opened a PR as per the prompt instructions.
- Wait for all three agents to finish (process exit) before proceeding to selection. Agents maybe will not write to stdout at all until they are done.
- If a subagent fails early, e.g. due to misspecified scope or unclear instructions or violated task assumptions, you should usually escalate to the owner instead of trying to salvage the run.
- If a subagent never even starts, e.g. due to a typo in the
claude code execcommand, you can usually just restart it without escalating.
5) Select the winning PR (best-of-3)
- Once all three subagents have finished, review their PRs.
- Prefer the PR that:
- Meets the bundle acceptance criteria, including passing all tests.
- Has the highest quality in code architecture, code style, and test coverage.
- Is a solid foundation for the remaining project work.
- The PR text is useful commentary, but not a source of truth: the worktree contents are what will be merged and thus the only thing that matters.
6) Merge, Close, and Clean Up
- Merge the winning PR via GitHub CLI.
- If the merged PR fell short of acceptance criteria, create follow-up issues for the remaining work.
- Close losing PRs with a short note (“best-of-3; superseded by #”).
- Delete their remote branches.
- Pull in the main worktree so the merged result is reflected locally.
- Remove the winning and the losing local worktrees.
- Hand-off to the owner with a summary:
- Winner PR link + what it does.
- Which PRs were closed and why.
- Anything that needs owner review/decision.
- Follow-up issues suggested (if any).
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
git-worktrees
Create, list, and remove git worktrees for parallel agent work. Use when you need isolated workdirs, new worktree branches, or safe cleanup workflows.
write-skills
Create or update SKILL.md files for this repo. Use when authoring skills in .claude/skills/.
write-gh-issues-prs
[DEPRECATED] This skill is no longer used. Feature tracking has migrated to PROJECT.md.
maintain-environment
Maintain the repo devcontainer environment and related workflow files. Use when changing .devcontainer or environment setup scripts.
ui-development
Autonomous screenshot-based UI development workflow for React/Tailwind webapps. Use when (1) implementing new UI components or pages, (2) modifying existing visual elements or styles, (3) fixing visual bugs or dark mode issues, (4) updating layouts or responsive design, (5) changing colors, typography, or spacing. Always triggers for CSS/styling work and React component visual changes.
devops-scripts
Write or update repository devops scripts with this project's conventions. Use when creating or modifying shell scripts in scripts/ or packages/*/scripts.
Didn't find tool you were looking for?