pnpm-upgrade-package

bởi langfuse

Nâng cấp các phụ thuộc trong không gian làm việc pnpm lên phiên bản mục tiêu/mới nhất: nâng cấp trực tiếp/gián tiếp, kiểm tra thời gian phát hành, ghi đè tạm thời, minimumReleaseAgeExclude,…

npx skills add https://github.com/langfuse/langfuse --skill pnpm-upgrade-package

PNPM Upgrade Package

Use this skill for interactive dependency bumps in Langfuse.

Read Order

  • Use this SKILL.md for the end-to-end workflow.
  • Run the main helper once at the start of the upgrade: node .agents/skills/pnpm-upgrade-package/scripts/check-release-age-window.mjs <package> [targetVersion]

Apply This Skill

  • Ask for the package name if the user did not provide one.
  • Ask for the target version if the user did not provide one.
  • Run the main helper once as the first analysis step and use that single output for scope, exclusion decisions, and the final bump.
  • If the target package is not directly declared anywhere, run 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.
  • If the current parent range already covers the requested transitive version, prefer a lockfile refresh / reinstall path over bumping the parent manifest.
  • If the current parent range does not cover the requested transitive version, upgrade that parent dependency instead of adding the target package directly unless the user explicitly wants that.
  • Probe the parent once at @latest: npm view <parent>@latest dependencies peerDependencies optionalDependencies --json. If that range resolves to any non-vulnerable version of the target, even one newer than the lowest fix, upgrade the parent instead of pinning the exact lowest fix. If the latest parent still pins a vulnerable range, do not walk intermediate parent versions: add a scoped overrides entry in pnpm-workspace.yaml only when the fixed version stays within the major the parent declares, otherwise treat it as a major migration and stop. In the final response, state that the parent pins the vulnerable range so the reviewer knows the override is a workaround.
  • If pnpm will not move an already-allowed transitive version, a scoped 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.
  • Never manually edit pnpm-lock.yaml; regenerate lockfile changes with pnpm commands only. If a lockfile-only refresh causes unrelated churn, adjust the pnpm command and rerun instead of patching the lockfile by hand.
  • After fixing or upgrading a package, run pnpm dedupe. Always inspect the diff after dedupe and revert that generated attempt if it introduces unrelated churn.
  • Resolve the registry latest version, but do not silently upgrade to latest unless the user asked for latest.
  • Compare the target version with the latest version installable under the current minimumReleaseAge window.
  • Before generating lockfile changes, run pnpm install --dry-run --ignore-scripts to catch resolver and policy failures without writing pnpm-lock.yaml or node_modules.
  • Inspect any dry-run "would make changes" output as baseline resolver drift before deciding which write command is safe.
  • Ask before adding minimumReleaseAgeExclude entries for the target package, exact dependency companions from dependencies or optionalDependencies, or locally installed exact peer dependencies.
  • Finish with pnpm why -r <package> to confirm that only the intended version remains in the workspace.
  • In the final response, include a copy-pasteable human commit command using 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

Quick Commands

  • Analysis pass: node .agents/skills/pnpm-upgrade-package/scripts/check-release-age-window.mjs <package> <targetVersion>
  • Transitive provenance / final graph verification: pnpm why -r <package>
  • Inspect a current parent manifest on the registry: npm view <parent>@<installedVersion> dependencies peerDependencies optionalDependencies --json
  • Preflight resolver/policy check: pnpm install --dry-run --ignore-scripts
  • Optional lockfile cleanup: pnpm dedupe
  • Bump in the root workspace: pnpm -w up <package>@<version>
  • Bump in one workspace: pnpm --filter web up <package>@<version>
  • Bump everywhere that should move together: pnpm -r up <package>@<version>
  • Verify temporary override removal: remove the override, then run pnpm install and pnpm dedupe
  • Human commit helper: git switch -C deps/bump-<package-slug>-to-<version> && git commit -m "chore(deps): bump <package> to <version>" --no-verify

Thêm skills từ langfuse

frontend-browser-review
langfuse
Sử dụng kỹ năng này khi một thay đổi ảnh hưởng đến những gì người dùng nhìn thấy hoặc thực hiện trong trình duyệt.
frontend-large-feature-architecture
langfuse
Sử dụng khi xây dựng, thay đổi hoặc tái cấu trúc các tính năng frontend lớn của Langfuse, danh sách ảo hóa, bảng lớn, thành phần điều khiển, tính năng cục bộ…
skill-developer
langfuse
Tạo và quản lý các kỹ năng Claude Code theo các phương pháp tốt nhất của Anthropic. Sử dụng khi tạo kỹ năng mới, sửa đổi skill-rules.json, hiểu trình kích hoạt…
langfuse-prompt-migration
langfuse
Di chuyển các prompt được viết cứng sang Langfuse để quản lý phiên bản và lặp lại mà không cần triển khai. Sử dụng khi người dùng muốn ngoại hóa prompt, chuyển prompt sang Langfuse,…
incident-alert-tickets
langfuse
Read and, after human approval, update the Linear `incident-alert` knowledge base. Use before and after investigating a named Datadog monitor,…
refactor-react-effects
langfuse
Tái cấu trúc việc sử dụng React useEffect không cần thiết trong mã frontend Langfuse. Sử dụng khi thêm, xem xét hoặc xóa các effect; khởi tạo biểu mẫu hoặc trạng thái UI cục bộ từ...
sentry-instrumentation
langfuse
Decide whether and how errors report to Sentry. Use when touching capture or error-handling paths in `web/**`, triaging Sentry noise, or changing Sentry…
posthog-instrumentation
langfuse
Product analytics with posthog. Use when adding a meaningful user action or feature in `web/**`, touching PostHog capture code, or answering product-usage…