langfuse/pnpm-upgrade-package
>- direct/transitive bumps, release-age checks, temporary overrides, minimumReleaseAgeExclude, lockfile/dedupe verification.
npx skills add https://github.com/langfuse/langfuse --skill pnpm-upgrade-package
Use this skill for interactive dependency bumps in Langfuse.
SKILL.md for the end-to-end workflow.node .agents/skills/pnpm-upgrade-package/scripts/check-release-age-window.mjs <package> [targetVersion]
output for scope, exclusion decisions, and the final bump.
pnpm why -r <package> to find which direct dependency brings it in, then
inspect whether the current top-level parent already allows the requested
transitive version via its dependency range.
prefer a lockfile refresh / reinstall path over bumping the parent manifest.
upgrade that parent dependency instead of adding the target package directly
unless the user explicitly wants that.
overrides entry in pnpm-workspace.yaml may be used as a temporary
resolution tool. Before finishing, prove whether the override is still
required: remove it, run pnpm install, then run pnpm dedupe. Inspect the
diff after each generated change. If the target version remains without the
override, do not keep the override; keep or restore it only when pnpm reverts
or drifts from the requested version without it.
pnpm-lock.yaml; regenerate lockfile changes withpnpm commands only. If a lockfile-only refresh causes unrelated churn,
adjust the pnpm command and rerun instead of patching the lockfile by hand.
pnpm dedupe. Always inspect thediff after dedupe and revert that generated attempt if it introduces
unrelated churn.
unless the user asked for latest.
current minimumReleaseAge window.
pnpm install --dry-run --ignore-scripts to catch resolver and policy
failures without writing pnpm-lock.yaml or node_modules.
before deciding which write command is safe.
minimumReleaseAgeExclude entries for the target package,exact dependency companions from dependencies or optionalDependencies, or
locally installed exact peer dependencies.
pnpm why -r <package> to confirm that only the intended versionremains in the workspace.
the resolved package name and target version. Use a branch-safe package slug
for scoped packages, but keep the exact package name in the commit message:
git switch -C deps/bump-<package-slug>-to-<version> && git commit -m "chore(deps): bump <package> to <version>" --no-verify
node .agents/skills/pnpm-upgrade-package/scripts/check-release-age-window.mjs <package> <targetVersion>
pnpm why -r <package>
npm view <parent>@<installedVersion> dependencies peerDependencies optionalDependencies --json
pnpm install --dry-run --ignore-scripts
pnpm dedupe
pnpm -w up <package>@<version>
pnpm --filter web up <package>@<version>
pnpm -r up <package>@<version>
remove the override, then run pnpm install and pnpm dedupe
git switch -C deps/bump-<package-slug>-to-<version> && git commit -m "chore(deps): bump <package> to <version>" --no-verify
Take langfuse/pnpm-upgrade-package from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npm.
Without those the skill loads but fails at the first command.