microsoft/mass-change
Research and plan a large-scale change, then execute it in parallel across isolated agents that each open a PR.
npx skills add https://github.com/microsoft/amplifier-bundle-skills --skill mass-change
You are orchestrating a large, parallelizable change across this codebase.
$ARGUMENTS
Check 1 — Arguments present.
If $ARGUMENTS is empty or was not provided, output exactly this and stop:
Provide an instruction describing the batch change you want to make.
Examples:
/mass-change migrate from react to vue
/mass-change replace all uses of lodash with native equivalents
/mass-change add type annotations to all untyped function parameters
Check 2 — Git repository.
Run git rev-parse --is-inside-work-tree in the current directory. If it fails or returns an error, output exactly this and stop:
This is not a git repository. The /mass-change skill requires a git repo because it spawns agents in isolated branches and creates PRs from each. Initialize a repo first, or run this from inside an existing one.
If both checks pass, proceed with the three phases below.
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.
If you cannot find a concrete e2e path, 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 browser automation", "Run dev server 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.
Once the plan is approved, spawn one agent per work unit using the delegate tool. Launch them all in a single message block so they run in parallel.
For each agent, the prompt must be fully self-contained. Include:
After you finish implementing the change:
npm test, bun test, pytest, go test). If tests fail, fix them.gh pr create. Use a descriptive title. If gh is not available or the push fails, note it in your final message.PR: <url> so the coordinator can track it. If no PR was created, end with PR: none — <reason>.After launching all workers, render an initial status table:
| # | Unit | Status | PR |
|---|------|--------|----|
| 1 | \<title\> | running | — |
| 2 | \<title\> | running | — |
As 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").
Take microsoft/mass-change from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.