Major framework migrations
Breaks major framework upgrades into verifiable version boundaries with compatible surrounding tools and a recovery route.
framework-major-migrations
See how it helpsWhen is it useful?
Use when moving a framework across breaking version changes.
What does it help you do?
- Removes current deprecations and inventories official plugins and adapters.
- Coordinates core, toolchain and ecosystem requirements for each step.
- Verifies configuration, serialization and real runtime behavior after migration.
Try asking this
Plan a two-major framework upgrade with intermediate builds and explicit plugin compatibility checks. Verify authentication and one data-editing journey at each intermediate version. Record required configuration changes and stop if the next plugin combination is unsupported.
Detailed documentation
Read the skill’s original instructions, examples and checks in their authored language.
Show less
Framework Major Migrations
When to Use
Use when upgrading a primary application framework across one or more major versions (e.g., React 18 $\rightarrow$ 19, Next.js 14 $\rightarrow$ 15, Vue 2/3, Angular 17 $\rightarrow$ 18 $\rightarrow$ 19, Vite 5 $\rightarrow$ 6, Tailwind v3 $\rightarrow$ v4, Laravel 10 $\rightarrow$ 11 $\rightarrow$ 12, Symfony 6 $\rightarrow$ 7, Django 4.2 $\rightarrow$ 5.x, Electron/Tauri majors).
Multi-Major Stepping Rule
Never leapfrog multiple major versions in a single unverified jump if the framework's migration path relies on per-major deprecation bridges or CLI migrations (e.g., ng update requires stepping one major version at a time: 16 -> 17 -> 18). Even when a direct jump is technically possible, evaluate each intermediate major's breaking changes sequentially.
Phase-by-Phase Migration Playbook
Phase 1: Pre-Migration Readiness & Satellite Audit
- Eliminate Deprecations on the Current Version First:
- Before bumping the major version, resolve deprecation warnings emitted by the current version (e.g., Symfony deprecation logs, Django
-W error::DeprecationWarning, React StrictMode warnings, Vue compat flags).
- Before bumping the major version, resolve deprecation warnings emitted by the current version (e.g., Symfony deprecation logs, Django
- Audit Ecosystem / Satellite Package Compatibility:
- A framework major upgrade fails if critical ecosystem plugins do not yet support the new major (e.g., UI component libraries, router, state store, ORM adapter, auth library, test utils like
@testing-library/*or@vue/test-utils). - Map every framework-coupled dependency and verify its compatible target version before editing manifests.
- A framework major upgrade fails if critical ecosystem plugins do not yet support the new major (e.g., UI component libraries, router, state store, ORM adapter, auth library, test utils like
Phase 2: Coordinated Core + Toolchain Bump
Update the framework core alongside its mandatory build and compiler companions:
- React / Next.js:
react+react-dom+@types/react+@types/react-dom+next+eslint-config-next. Check async Request APIs (cookies(),headers(),params,searchParamsbecoming Promises in Next 15), caching defaults (fetchno longer cached by default), and React 19ref-as-prop /useActionState. - Vue / Nuxt:
vue+vue-router+pinia+@vitejs/plugin-vue+vue-tsc+@vue/test-utils. - Angular: Run
npx @angular/cli@<major> update @angular/core@<major> @angular/cli@<major>on a clean working tree so official Angular schematics transform decorators, standalone imports, control flow, andangular.jsonbuilders. - Laravel / Symfony: Bump
laravel/framework(orsymfony/*+extra.symfony.require) together with first-party packages, PHP minimum version, and PHPUnit/Pest. Review framework skeleton diffs (laravel/laravelcomparison) when structural files (bootstrap/app.php,config/*.php) change only on major boundaries. - Build & Styling Toolchains (Vite / Webpack / Tailwind / ESLint):
- ESLint v8 $\rightarrow$ v9: Migrate
.eslintrc.*toeslint.config.js(Flat Config) and verify every plugin's flat-config compatibility. - Tailwind CSS v3 $\rightarrow$ v4: Check
@import "tailwindcss";CSS-first configuration, removed utilities, and PostCSS/Vite plugin replacements (@tailwindcss/vite/@tailwindcss/postcss).
- ESLint v8 $\rightarrow$ v9: Migrate
Phase 3: Configuration, Serialization & Runtime Verification
- Check session storage, cache keys, cookie signing, queue job serialization, and SSR hydration payloads so rolling deploys or existing browser sessions do not crash after deployment.
- Verify both development server (
dev/ HMR) and production build (build+start/ preview), plus unit and E2E critical paths.
Included files 1
SKILL.md
