skills/forge-migration/SKILL.md
[writes] Plan and execute a library or framework migration using the migration planner agent (fg-160). Use when upgrading major framework versions (e.g., Spring Boot 2→3, Angular 16→17), migrating between libraries (e.g., Enzyme→Testing Library), or checking for breaking changes before upgrading.
npx skillsauth add quantumbitcz/dev-pipeline forge-migrationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Plan and execute a library or framework migration.
Dispatches fg-160-migration-planner to handle the migration in phases.
See shared/skill-contract.md for the standard exit-code table.
Provide a description of what to migrate:
/migration Upgrade Spring Boot from 3.2 to 3.4
/migration Migrate from Moment.js to date-fns
/migration Update React from 18 to 19
| Command | Behavior |
|---------|----------|
| /forge-migration upgrade Spring Boot | Auto-detect current version, propose latest stable target, show analysis |
| /forge-migration upgrade Spring Boot to 3.4 | Auto-detect current, use specified target |
| /forge-migration upgrade Spring Boot from 3.2 to 3.4 | Use both specified versions |
| /forge-migration upgrade all | Detect ALL outdated dependencies, propose upgrades, prioritize by risk |
| /forge-migration check | Dry-run: detect all outdated deps, show what WOULD be upgraded, no changes |
When versions are not explicitly specified:
Read state.json.detected_versions if available (from a previous pipeline run)
Otherwise detect from project manifest files
For upgrade all: scan all dependencies, compare with registry latest, filter by: security patches first, then minor upgrades, then major upgrades
Present a prioritized table before proceeding:
| Package | Current | Latest | Change | Risk | Action | |---------|---------|--------|--------|------|--------| | spring-boot | 3.2.4 | 3.4.1 | minor | LOW | Auto | | spring-security | 6.1.0 | 6.3.2 | minor | LOW | Auto | | kotlin | 1.9.22 | 2.0.10 | major | HIGH | Confirm |
Proceed with LOW-risk upgrades? (HIGH-risk requires explicit confirmation)
Before dispatching the migration planner, verify:
git rev-parse --is-inside-work-tree. If not: "Not a git repository."git status --porcelain. If dirty, warn: "You have uncommitted changes. Migrations create commits per batch — consider committing or stashing first."After dispatch, fg-160-migration-planner will:
Total time: 10-45 minutes depending on version gap. High-risk upgrades will ask for confirmation.
The migration planner will:
Each batch gets its own commit for independent rollback.
When Context7 MCP is available, the migration planner uses it for:
When Context7 is unavailable, fallback to:
You are a thin launcher. Your ONLY job is to dispatch the migration planner agent.
Parse input: The user's argument (everything after /forge-migration) is the migration description — a free-text string like "Upgrade Spring Boot from 3.2 to 3.4" or "Migrate from Moment.js to date-fns". It may also be a keyword command like check or upgrade all.
Detect available MCPs: Detect available MCPs per shared/mcp-detection.md detection table. For each MCP, check if its probe tool is available. Mark unavailable MCPs as degraded and apply the documented degradation behavior. Include Context7 availability in the dispatch prompt so the planner knows whether to use it for migration guide lookups.
Dispatch the migration planner: Use the Agent tool to invoke fg-160-migration-planner with the following prompt:
Plan and execute migration:
{user_input}Context7 available:
{yes|no}
Where {user_input} is the raw text the user provided.
Do nothing else: Do not analyze dependencies, modify files, or make migration decisions. The migration planner handles detection, auditing, migration, cleanup, and verification autonomously.
Relay the result: When the migration planner completes, relay its final output (migration summary, rollback instructions, or escalation) back to the user unchanged.
| Condition | Action |
|-----------|--------|
| Prerequisites fail | Report specific error message and STOP |
| Empty input (no migration description) | Ask user what to migrate: "What would you like to migrate? e.g., 'Upgrade Spring Boot from 3.2 to 3.4'" |
| Migration planner dispatch fails | Report "Migration planner failed to start. Check plugin installation." and STOP |
| Migration planner returns error | Relay the error unchanged. Each batch has its own commit for independent rollback |
| Context7 unavailable | Migration planner falls back to CHANGELOG analysis and conservative migration. Log INFO |
| Version detection fails | Migration planner will ask user for current and target versions interactively |
| Build/test fails after batch | Migration planner handles rollback of the failed batch. Suggest reviewing rollback instructions |
| State corruption | Suggest /forge-recover repair to fix state, then retry |
/forge-run -- Full pipeline entry point (use migrate: prefix for migration routing)/forge-recover rollback -- Rollback migration changes if something goes wrong/forge-recover diagnose -- Diagnose pipeline health if the migration stalls/forge-verify --config -- Validate configuration before starting a migrationdevelopment
[writes] Build, fix, deploy, review, or modify code in this project. Universal entry for the forge pipeline. Auto-bootstraps on first run; brainstorms before planning when given a feature description. Use when you want to take any productive action: implementing features, fixing bugs, reviewing branches, deploying, committing, running migrations.
tools
[writes] Manage forge state and configuration: recovery, abort, config edits, session handoff, automations, playbooks, output compression, knowledge graph maintenance. Use when you need to recover from broken pipeline state, edit settings, or manage long-lived state.
development
[writes] Create, list, show, resume, or search forge session handoffs. Use when context is getting heavy and you want to transfer a forge run or conversation into a fresh Claude Code session, or to resume from a prior handoff artefact. Subcommands - no args (write), list, show, resume, search.
development
[writes] Manage the Neo4j knowledge graph. Subcommands: init, rebuild (writes); status, query <cypher>, debug (read-only). Requires Docker. No default — an explicit subcommand is required. Use when setting up the graph for the first time, rebuilding after major refactors, checking graph health, or running ad-hoc Cypher diagnostics.