For engineers in legacy code: modernize incrementally, no big-bang rewrite.
Reach for this when you inherit a business-critical codebase that has to keep running while you drag it onto a modern stack. Plan a strangler-fig migration that runs old and new side by side, carve one safe bounded-context seam out of a monolith, drive major framework and language-version upgrades as small reversible CI-gated PRs, recover the business rules buried in tangled code, pin current behavior with characterization tests before you touch it, audit dependency risk as you upgrade, and delete dead code with evidence - so nothing breaks while everything moves.
Click to play with sound.
Arranged in the author's recommended order. Walk through them in sequence, or open any one on its own.
Produces an incremental migration plan that runs a legacy and a new system side by side behind a routing seam, slicing and sequencing whole capabilities so the old system stays live until its last route is cut. Use when planning to replace or rebuild a large, business-critical system that must keep serving traffic throughout. Do NOT use when extracting a single service from a still-living monolith - use monolith-decomposer instead; for generic non-migration implementation planning, use the plan skill instead.
View skillDrives a major-version framework bump as a sequence of small, reversible, CI-gated PRs using official codemods and changelog diffing while keeping the app green. Use when bumping React, Rails, Spring Boot, Angular, or any framework across a major version with breaking API/config changes; do NOT use for language or runtime version jumps (Python 2 to 3, Node majors, Java LTS) - use language-version-migrator instead.
View skill