From migration-runner
Execute the upgrade plan written by /migration-runner:detect, one package per wave, verifying build + typecheck + tests after each upgrade. On verifier failure: hard reset to pre-wave SHA, write fix-plan.md, halt. Resumable with --resume.
How this skill is triggered — by the user, by Claude, or both
Slash command
/migration-runner:run [--package <name>] [--resume] [--ecosystem <name>][--package <name>] [--resume] [--ecosystem <name>]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are orchestrating a `migration-runner:run` execution. Follow these steps exactly.
You are orchestrating a migration-runner:run execution. Follow these steps exactly.
Parse $ARGUMENTS for:
--package <name> — single-package mode--resume — continue from last non-completed wave--ecosystem <name> — restrict to one ecosystemRun each check; abort with a clear error if any fails:
node "${CLAUDE_PLUGIN_ROOT}/scripts/git-helpers.js" require-reponode "${CLAUDE_PLUGIN_ROOT}/scripts/git-helpers.js" require-cleannode "${CLAUDE_PLUGIN_ROOT}/scripts/git-helpers.js" is-detached — if it prints true, abort: "detached HEAD; check out a branch first."docs/migration-runner/plan.json exists; otherwise: "no plan found; run /migration-runner:detect first."Run:
node "${CLAUDE_PLUGIN_ROOT}/scripts/state.js" read docs/migration-runner/plan.json > /tmp/plan.json
node "${CLAUDE_PLUGIN_ROOT}/scripts/state.js" read .migration-runner/state.json > /tmp/state.json || true
Build the wave list:
--ecosystem X: only waves where wave.ecosystem === X.--package X: a single wave matching wave.package === X. Abort if not present.--resume: skip waves where state shows status: "completed".Initialize state.json if missing: every wave starts as { wave_index, package, status: "pending" }.
For each wave in the wave list:
Capture pre-wave SHA: node "${CLAUDE_PLUGIN_ROOT}/scripts/git-helpers.js" current-sha → PRE_SHA.
Dispatch the migration-applier agent with this wave's { ecosystem, manifest_path, package, from_version, to_version }. Capture its return JSON.
If applier returned { "status": "failed", ... }:
git reset --hard <PRE_SHA>.docs/migration-runner/fix-plan.md (see Step 4).failed in state.json.If applier returned { "status": "applied" }, dispatch the migration-verifier agent with { ecosystem, wave_index, timeout_seconds: <from config or 600> }. Capture its return JSON.
If verifier returned { "status": "fail", ... }:
git reset --hard <PRE_SHA>.docs/migration-runner/fix-plan.md with the verifier output (failed_step, stdout_tail, full_output_path).failed in state.json.If verifier returned { "status": "pass" }:
node "${CLAUDE_PLUGIN_ROOT}/scripts/git-helpers.js" commit-all "chore(deps): bump <package> from <from_version> to <to_version>".git reset --hard <PRE_SHA>, write fix-plan.md (Step 4 template) substituting the failed step as commit and including the git stderr in the "Last 200 lines" block, mark wave failed, halt.current-sha, update state.json: { status: "completed", commit_sha: "<sha>" }, and continue to the next wave.Write to docs/migration-runner/fix-plan.md:
# migration-runner fix plan
Halted on **wave <N>**: `<package>` (<ecosystem>) <from_version> -> <to_version>.
## What failed
**Step:** <build|typecheck|test|apply>
## Last 200 lines of output
\`\`\`
<stdout_tail from verifier or stderr from applier>
\`\`\`
Full log: `<full_output_path>`
## Suggested next steps
1. Manually investigate the failure in `<package>`. The pre-wave state is restored (the wave was reverted).
2. Optionally pin a different target version by adding `<package>` to `ignore` in `.migration-runner.json` and re-running `detect`, OR manually upgrading and committing yourself.
3. Once the underlying issue is fixed (or the package excluded), resume with:
`/migration-runner:run --resume`
If all waves passed:
Migration complete. Upgraded N packages across in commits. Run
git logto review.
If halted:
Halted at wave (
<package>). Wrote fix-plan todocs/migration-runner/fix-plan.md. Resume with/migration-runner:run --resumeafter addressing the issue.
npx claudepluginhub mistervitopro/qa-claude-marketGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.