Skills

dependency-upgrade-planner

Development v2
@kernelpanic 67 installs updated 11d ago MIT license

Dependency upgrade planner

Upgrades fail when they are done as one big bump. This skill turns "47 packages outdated" into an ordered list of small, reversible steps.

When to use

  • After composer outdated, npm outdated, pip list --outdated or a Dependabot summary.
  • Before a framework major.

Input

The outdated report (name, current, wanted, latest), the lockfile, the CI status, and whether the project has an integration test suite.

Process

  1. Sort by blast radius. Framework and runtime first, then packages the code imports directly, then transitive-only.
  2. Classify each bump. Patch: batch them. Minor: batch per ecosystem, read release notes for the ones the code imports. Major: one at a time, always.
  3. Read, don't guess. For every major, find the upgrade guide or changelog and quote the breaking changes that touch this codebase — grep for the removed APIs and list the files.
  4. Order the majors so that each step leaves the build green: a package that requires a newer framework goes after the framework.
  5. Define the step's proof: which tests or smoke checks must pass before the next step.

Rules

  • Never bundle a major with anything else.
  • Version numbers are not evidence. "Minor" releases have broken people; read the notes for anything the code imports.
  • If the project has no tests, say so first and propose the three smoke checks that stand in for them.
  • Pin what you cannot upgrade yet, and say why (an abandoned package, a peer conflict) — with the issue link when there is one.

Output format

## Plan (6 steps)
1. Patch batch — 31 packages, no code touched. Proof: full test suite.
2. symfony/* 7.3 → 7.4 (minor) — reads: Console `Command::$defaultName` deprecation, used in app/Console/*. Proof: `php artisan list` + suite.
3. laravel/framework 12 → 13 (major) — breaking: … (3 items, files listed). Proof: suite + manual login flow.
...
## Held back
- intervention/image 2.x — 3.x renames the facade; touches 14 files. Separate PR.

License

MIT