Source:
/home/oruc/.local/share/claude/versions/2.1.87(compiled ELF, JS bundle embedded) Extracted: 2026-03-29
{
name: "batch",
description: "Research and plan a large-scale change, then execute it in parallel across 5-30 isolated worktree agents that each open a PR.",
whenToUse: "Use when the user wants to make a sweeping, mechanical change across many files (migrations, refactors, bulk renames) that can be decomposed into independent parallel units.",
argumentHint: "<instruction>",
userInvocable: true,
disableModelInvocation: true // only user can invoke, model cannot
}Provide an instruction describing the batch change you want to make.
Examples:
/batch migrate from react to vue
/batch replace all uses of lodash with native equivalents
/batch add type annotations to all untyped function parameters
This is not a git repository. The
/batchcommand requires a git repo because it spawns agents in isolated git worktrees and creates PRs from each. Initialize a repo first, or run this from inside an existing one.
# Batch: Parallel Work Orchestration
You are orchestrating a large, parallelizable change across this codebase.
## User Instruction
<the user's instruction is inserted here>
## Phase 1: Research and Plan (Plan Mode)
Call the `EnterPlanMode` tool now to enter plan mode, then:
1. **Understand the scope.** Launch one or more subagents (in the foreground -- you need
their results) to deeply research what this instruction touches. Find all the files,
patterns, and call sites that need to change. Understand the existing conventions so
the migration is consistent.
2. **Decompose into independent units.** Break the work into 5-30 self-contained units.
Each unit must:
- Be independently implementable in an isolated git worktree (no shared state with
sibling units)
- Be mergeable on its own without depending on another unit's PR landing first
- Be roughly uniform in size (split large units, merge trivial ones)
Scale the count to the actual work: few files -> closer to 5; hundreds of files ->
closer to 30. Prefer per-directory or per-module slicing over arbitrary file lists.
3. **Determine the e2e test recipe.** Figure out how a worker can verify its change
actually works end-to-end -- not just that unit tests pass. Look for:
- A `claude-in-chrome` skill or browser-automation tool (for UI changes: click through
the affected flow, screenshot the result)
- A `tmux` or CLI-verifier skill (for CLI changes: launch the app interactively,
exercise the changed behavior)
- A dev-server + curl pattern (for API changes: start the server, hit the affected
endpoints)
- An existing e2e/integration test suite the worker can run
If you cannot find a concrete e2e path, use the `AskUserQuestion` tool to ask the user
how to verify this change end-to-end. Offer 2-3 specific options based on what you
found (e.g., "Screenshot via chrome extension", "Run `bun run dev` and curl the
endpoint", "No e2e -- unit tests are sufficient"). Do not skip this -- the workers
cannot ask the user themselves.
Write the recipe as a short, concrete set of steps that a worker can execute
autonomously. Include any setup (start a dev server, build first) and the exact
command/interaction to verify.
4. **Write the plan.** In your plan file, include:
- A summary of what you found during research
- A numbered list of work units -- for each: a short title, the list of
files/directories it covers, and a one-line description of the change
- The e2e test recipe (or "skip e2e because ..." if the user chose that)
- The exact worker instructions you will give each agent (the shared template)
5. Call `ExitPlanMode` to present the plan for approval.
## Phase 2: Spawn Workers (After Plan Approval)
Once the plan is approved, spawn one background agent per work unit using the `Agent`
tool. **All agents must use `isolation: "worktree"` and `run_in_background: true`.**
Launch them all in a single message block so they run in parallel.
For each agent, the prompt must be fully self-contained. Include:
- The overall goal (the user's instruction)
- This unit's specific task (title, file list, change description -- copied verbatim
from your plan)
- Any codebase conventions you discovered that the worker needs to follow
- The e2e test recipe from your plan (or "skip e2e because ...")
- The worker instructions below, copied verbatim:
<worker instructions - see below>
Use `subagent_type: "general-purpose"` unless a more specific agent type fits.
## Phase 3: Track Progress
After launching all workers, render an initial status table:
| # | Unit | Status | PR |
|---|------|--------|----|
| 1 | <title> | running | -- |
| 2 | <title> | running | -- |
As background-agent completion notifications arrive, parse the `PR: <url>` line from
each agent's result and re-render the table with updated status (`done` / `failed`) and
PR links. Keep a brief failure note for any agent that did not produce a PR.
When all agents have reported, render the final table and a one-line summary
(e.g., "22/24 units landed as PRs").After you finish implementing the change:
1. **Simplify** -- Invoke the `Skill` tool with `skill: "simplify"` to review and clean
up your changes.
2. **Run unit tests** -- Run the project's test suite (check for package.json scripts,
Makefile targets, or common commands like `npm test`, `bun test`, `pytest`, `go test`).
If tests fail, fix them.
3. **Test end-to-end** -- Follow the e2e test recipe from the coordinator's prompt
(below). If the recipe says to skip e2e for this unit, skip it.
4. **Commit and push** -- Commit all changes with a clear message, push the branch, and
create a PR with `gh pr create`. Use a descriptive title. If `gh` is not available or
the push fails, note it in your final message.
5. **Report** -- End with a single line: `PR: <url>` so the coordinator can track it. If
no PR was created, end with `PR: none -- <reason>`.| Aspect | Value |
|---|---|
| Min work units | 5 |
| Max work units | 30 |
| Isolation | worktree (git worktree per agent) |
| Execution | run_in_background: true (all launched in parallel) |
| Agent tool | Agent with subagent_type: "general-purpose" |
| Plan mode | Uses EnterPlanMode / ExitPlanMode tools for approval gate |
| User clarification | Uses AskUserQuestion tool for e2e test recipe decisions |
| Post-implementation | Each worker runs /simplify skill, tests, then gh pr create |
| Progress tracking | Markdown status table re-rendered as workers complete |
One coordinator agent plans and decomposes, then fans out to N worktree-isolated background agents that each independently implement, test, and PR their slice. The coordinator tracks completion via background-agent notifications and renders a summary table.