Dependency upgrades: outdated/vulnerable deps planned into semver waves (patch/minor batched, majors gated and changelog-read), applied incrementally with lockfiles regenerated and tests green after each. Runs on green main. Triggers on "absolute upgrade", "upgrade our dependencies", "bump deps", "update packages", "move off the deprecated X", "clear the Dependabot backlog".
Scanned 8/31/2026
Install to Claude Code
npx -y skills add maddhruv/absolute --skill absolute-upgrade --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Absolute Upgrade?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/maddhruv-absolute-upgrade)More formats (shields.io, HTML) on the badges page.
---
name: absolute-upgrade
version: 0.5.0
description: >
Dependency upgrades: outdated/vulnerable deps planned into semver waves (patch/minor batched, majors gated and changelog-read), applied incrementally with lockfiles regenerated and tests green after each. Runs on green main.
Triggers on "absolute upgrade", "upgrade our dependencies", "bump deps", "update packages", "move off the deprecated X", "clear the Dependabot backlog".
category: workflow
tags:
- workflow
- maintenance
- dependencies
- upgrade
- security
platforms:
- claude-code
- gemini-cli
- openai-codex
- mcp
user-invocable: true
argument-hint: "[target]"
license: MIT
maintainers:
- github: maddhruv
---
> Start your first response with the ⬆️ emoji.
## Absolute Upgrade
Bring dependencies current — safely, in risk-ranked waves, with tests green after each.
Not a blind `npm update`: outdated and vulnerable deps are grouped by blast radius
(patch/minor → safe wave; major/breaking → gated, one at a time, changelog-read), applied
incrementally, and verified against the project's own test suite.
Runs the shared engine in **`references/health-engine.md`** — read it for the
DETECT → SCAN → TRIAGE → FIX → VERIFY → REPORT loop and the safety contract. This file
covers only what's specific to dependency upgrades.
---
## When to use
- Routine "bring deps up to date" / "upgrade our dependencies".
- A specific bump: "upgrade React to 19", "move off the deprecated X package".
- Clearing `npm outdated` / Dependabot backlog without 40 separate PRs.
**Not** for: adding a *new* dependency (that's a `work`/feature decision), or auditing
*vulnerabilities* specifically → use **`/absolute audit`** (it triages CVEs; `upgrade`
moves versions).
---
## What it scans
Per ecosystem, list outdated deps with current → wanted → latest and the jump type:
| Ecosystem | Detect outdated | Lockfile / manifest |
|---|---|---|
| npm | `npm outdated --json` | `package-lock.json` |
| pnpm | `pnpm outdated --format json` | `pnpm-lock.yaml` |
| yarn | `yarn outdated --json` | `yarn.lock` |
| Python (pip) | `pip list --outdated --format=json` | `requirements*.txt` |
| Python (poetry/uv) | `poetry show --outdated` / `uv pip list --outdated` | `pyproject.toml` + lock |
| Go | `go list -u -m -json all` | `go.mod` / `go.sum` |
Also flag: deps with known deprecations, duplicate/multiple versions of the same package,
and direct vs transitive (only direct deps are upgrade targets; transitives follow).
---
## Risk ranking (TRIAGE)
Group the upgrade plan into waves by semver jump — safest first:
| Wave | Jump | Default |
|---|---|---|
| 1 | patch (`x.y.Z`) | batch together, fix now |
| 2 | minor (`x.Y.z`) | batch by package family, fix now |
| 3 | major (`X.y.z`) / pre-1.0 minor | **one at a time, gated** — read the changelog/migration guide first, list breaking changes |
For every major bump: locate breaking changes (CHANGELOG, release notes, codemod if the
package ships one), inventory call sites that touch the changed API, and state the
migration before applying. Peer-dependency conflicts get resolved in the same wave as
their driver.
---
## Fix & verify
- Apply a wave, regenerate the lockfile, run the project's **full** test + build (a passing
install is not a passing upgrade).
- Majors: apply the version bump *and* the required code migration in the same wave, or the
build breaks. Use the package's codemod where one exists.
- A wave that can't go green within reason → revert it, report it as blocked with the error,
keep the green waves. Never `--force` / `--legacy-peer-deps` to mask a real conflict.
---
## Gotchas
1. **Lockfile-only "upgrade".** Bumping the manifest without regenerating + committing the
lockfile ships untested transitive versions. Always regenerate.
2. **Batching a major in with patches.** One breaking bump fails the whole wave and hides
which change broke it. Majors are always solo.
3. **Green install ≠ green project.** `npm install` succeeding proves nothing — run tests.
4. **Pinning around a failure.** If a bump breaks something, fix or defer it; don't pin the
dependency tree to dodge it silently.
---
## Companion commands
- **`/absolute audit`** — if the goal is fixing *vulnerabilities*, start there; it'll route
back here for the version moves.
- **`/absolute deflake`** — flaky tests can mask whether an upgrade truly passed.
- **`/absolute work`** — if an upgrade needs real feature-level migration work, hand off.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!