Safely plan and execute JavaScript/TypeScript dependency maintenance across npm and pnpm repositories, including npm lockfiles, pnpm workspaces, catalogs, overrides, release-age policies, audits, CI validation, Dependabot boundaries, PRs, and GitHub tracking issues. Use whenever the user asks to update, bump, refresh, audit, clean, modernize, or review dependencies, reduce vulnerabilities, clean overrides, or prepare dependency PRs/issues.
92
92%
Does it follow best practices?
Impact
89%
1.00xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
Use this workflow to maximize safe dependency progress without changing the repository's package-manager contract or hiding remaining risk.
AGENTS.md, CLAUDE.md, package-specific instructions, and CONTRIBUTING.md.packageManager, CI, deploy config, and package-manager guard
scripts:
package-lock.json, and validate with npm ci.pnpm-lock.yaml, pnpm-workspace.yaml, catalogs, and overrides.git status --short --branch. If unrelated changes are present, use an isolated
worktree or avoid touching those files..nvmrc, .node-version, engines, .npmrc, CI workflows, deploy config, and dependabot.yml.minimumReleaseAge is a maturity window in minutes; respect minimumReleaseAgeExclude exactly.catalog: references, workspace: references, and repo-specific package
placement.Build an inventory from direct dependencies, dev dependencies, peer dependencies, optional dependencies, catalogs, overrides, lockfiles, and audit output.
Use native commands first:
npm outdated --json || true
npm audit --json || true
npm explain <package>
npm ls <package>
pnpm outdated -r --format json || true
pnpm audit --json || true
pnpm why <package> -rWhen registry-age gates matter, use the bundled helper as a reproducible first pass:
node <skill-dir>/scripts/eligible-updates --manager auto --days 3Replace <skill-dir> with the directory containing this SKILL.md. Adjust --days or --minutes to match the repo
policy.
Classify every candidate before changing files:
Group tightly coupled packages together when separate bumps are likely to create peer, type, or runtime friction.
catalog:.package.json and regenerate package-lock.json with npm. Prefer lockfile-only install when
appropriate, then validate with clean install.pnpm-lock.yaml with normal pnpm install flow. Do not bypass minimumReleaseAge.engine-strict, ignore-scripts, LavaMoat allow-scripts, and
only-allow.Treat overrides as temporary exceptions:
Run the narrowest meaningful checks first, then broaden by blast radius:
If a command cannot run, report why. If CI fails, inspect the actual logs and classify the failure as introduced by the update, exposed baseline debt, or external/non-actionable.
Open one draft PR for safe updates unless the user asks otherwise. Include:
Open English chore(deps): ... issues for deferred major upgrades or blocked migration streams. Each issue should
include official docs, current and target versions, expected code areas, migration plan, validation, rollout risk, and
rollback notes.
Pause before contract deployments, public API breakage, package-manager migration, broad refactors, invalid override trees, or CI failures that suggest a cross-cutting regression.
references/npm.md.references/pnpm.md.scripts/eligible-updates.8ff65cd
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.