ln-821-npm-upgrader について
npm、yarn、pnpm で Node.js の依存関係を更新し、破壊的変更の確認と移行も行うワーカースキルです。ビルドなどを検証し、更新結果と警告を記録します。
主な機能
- 01npm、yarn、pnpm に対応
- 02セキュリティ監査と古いパッケージの特定
- 03破壊的変更と移行ガイドの確認
- 04更新と移行の適用
- 05ビルド、テスト、型の検証
活用シーン
- 01Node.js プロジェクトの依存関係を更新
- 02メジャーバージョン移行を適用してビルド結果を確認
MCP 対応
大きな変更の前に、Context7 や Ref などの MCP ツールで最新のドキュメントや移行ガイドを調べます。MCP サーバーとしての機能は記載されていません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-821-npm-upgraderインストール後、Claude Code で/ln-821-npm-upgraderを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/breaking_changes_patterns.mdcoordinator_summary_contract.mdnpm_peer_resolution.md詳細
パス: ファイルパス(
references/、../ln-*)は、このスキルディレクトリを基準とします。
ln-821-npm-upgrader
タイプ: L3 Worker
カテゴリ: 8XX Optimization
npm、yarn、または pnpm を使用して Node.js の依存関係をアップグレードし、破壊的変更を自動検出して移行します。
概要
| 項目 | 詳細 |
|---|---|
| 入力 | プロジェクトパス、パッケージマネージャーの種類、アップグレードポリシー |
| 出力 | 更新されたパッケージマニフェストと、機械可読な依存関係アップグレードの概要 |
| 対応対象 | npm、yarn(classic と berry)、pnpm |
ワークフロー
フェーズ: 事前確認 -> 分析 -> セキュリティ監査 -> 更新確認 -> 破壊的変更の特定 -> アップグレードの適用 -> 移行の適用 -> ビルドの検証 -> レポート
フェーズ 0:事前確認
| 確認項目 | 必須 | 不足している場合の対応 |
|---|---|---|
package.json | はい | アップグレードをブロック |
ロックファイル(package-lock.json、yarn.lock、pnpm-lock.yaml) | いいえ | 警告し、最終検証前に再生成 |
| パッケージマネージャーが利用可能 | はい | アップグレードをブロック |
| ワークスペースのベースラインが安全 | はい | 管理実行ではコーディネーターがすでに準備済みです。スタンドアロン実行ではロールバックをローカルで保護します |
ランタイム連携
管理実行では、ln-820 から決定論的な runId と正確な summaryArtifactPath が渡されます。
スタンドアロン実行も引き続きサポートされます。ランタイム引数が省略された場合は、戻る前にスタンドアロン実行スコープのアーティファクトを生成します。
フェーズ 1:依存関係の分析
package.json を読み込み、アップグレードの優先度に応じて依存関係を分類します。
| カテゴリ | 例 | 優先度 |
|---|---|---|
| peer | typescript、@types/* | 1 |
| framework | react、vue、next | 2 |
| build | vite、webpack、esbuild | 3 |
| ui | @radix-ui/*、tailwindcss | 4 |
| state | @tanstack/react-query、zustand | 5 |
| utils | lodash、date-fns | 6 |
| dev | eslint、prettier、テストツール | 7 |
フェーズ 2:セキュリティ監査
| マネージャー | コマンド |
|---|---|
| npm | npm audit --audit-level=high |
| yarn | yarn audit --level high |
| pnpm | pnpm audit --audit-level high |
対応:
| 深刻度 | 対応 |
|---|---|
| Critical | ブロックして報告 |
| High | 警告して続行 |
| Moderate/Low | ログに記録のみ |
フェーズ 3:更新確認
| マネージャー | コマンド |
|---|---|
| npm | npm outdated --json |
| yarn | yarn outdated --json |
| pnpm | pnpm outdated --json |
フェーズ 4:破壊的変更の特定
必ず読んでください: 完全なパターンについて、breaking_changes_patterns.md を読み込みます。
検出フロー:
- 現在のバージョンと最新のメジャーバージョンを比較します。
- 共通の破壊的変更パターンを確認します。
- コードを変更する前に、Context7 または Ref で移行ガイドを検索します。
よくある破壊的変更の例:
| パッケージ | 破壊的変更のあるバージョン | 主な変更点 |
|---|---|---|
| react | 18 -> 19 | JSX トランスフォーム、props としての refs |
| vite | 5 -> 6 | ESM のみ、新しい Node のベースライン |
| eslint | 8 -> 9 | フラット設定 |
| tailwindcss | 3 -> 4 | CSS ファーストの設定 |
| typescript | 5.4 -> 5.5+ | より厳密な型推論 |
フェーズ 5:アップグレードの適用
アップグレード順序:
- peer 依存関係
- framework パッケージ
- build ツール
- UI ライブラリ
- ユーティリティ
- dev 依存関係
| マネージャー | コマンド |
|---|---|
| npm | npm install <package>@latest --save |
| yarn | yarn add <package>@latest |
| pnpm | pnpm add <package>@latest |
peer 依存関係の競合:
| 状況 | 解決策 |
|---|---|
| ERESOLVE | npm install --legacy-peer-deps |
| それでも失敗する | 最後の手段としてのみ npm install --force |
移行検索用 MCP ツール
| 優先度 | ツール | 使用するタイミング |
|---|---|---|
| 1 | mcp__context7__query-docs | ライブラリのドキュメントを調べる場合の第一候補 |
| 2 | mcp__Ref__ref_search_documentation | 公式ドキュメントや GitHub を調べる場合 |
| 3 | WebSearch | 最新情報やコミュニティによる修正を調べる場合 |
重要な変更を適用する前に、MCP ツールを使って移行ガイドを取得してください。
フェーズ 6:移行を適用する
- MCP ツールを使って、現在の移行ガイドを確認します。
- ガイドでサポートされている場合に限り、自動コード変換を適用します。
- 手動での追加作業を最終レポートに記録します。
現在のドキュメントを確認せずに、移行をハードコードしないでください。
フェーズ 7:ビルドを検証する
| チェック | コマンド |
|---|---|
| TypeScript | npm run check または npx tsc --noEmit |
| ビルド | npm run build |
| テスト | 利用可能な場合は npm test |
失敗した場合:
- 失敗したパッケージを特定します。
- Context7 または Ref で修正方法を検索します。
- 解決できない場合は、そのパッケージをロールバックして残りの候補で作業を続けます。
フェーズ 8:結果を報告する
| フィールド | 説明 |
|---|---|
project | プロジェクトのパス |
packageManager | npm、yarn、または pnpm |
duration | 合計所要時間 |
upgrades.major[] | 適用した破壊的変更 |
upgrades.minor[] | 機能の更新 |
upgrades.patch[] | バグ修正 |
migrations[] | 適用した移行 |
skipped[] | 最新のため、またはポリシーによりスキップ |
verification | ビルド/テスト/型チェックの判定 |
warnings[] | ブロック要因ではない問題 |
artifact_path | 書き込んだ場合の、永続的なワーカーレポートのパス |
設定
Options:
upgradeType: major # major | minor | patch
allowBreaking: true
autoMigrate: true
queryMigrationGuides: true
auditLevel: high
minimumReleaseAge: 14
legacyPeerDeps: false
force: false
runBuild: true
runTests: false
runTypeCheck: true
rollbackOnFailure: true
エラー処理
| エラー | 原因 | 解決策 |
|---|---|---|
| ERESOLVE | ピア依存関係の競合 | レガシーピア依存関係モードで再試行する |
| ENOENT | ロックファイルがない | まず依存関係を再生成する |
| ビルド失敗 | 破壊的変更 | 移行ガイドを適用するか、問題のあるパッケージをロールバックする |
| 型エラー | バージョンの不一致 | 型定義またはフレームワークのピアパッケージを更新する |
ロールバック:
package.json とロックファイルを復元し、クリーンインストールを実行して以前の状態に戻します。
参考資料
ランタイム概要アーティファクト
必ず読むこと: references/coordinator_summary_contract.md を読み込みます。
dependency-worker の概要エンベロープを出力します。
管理モード:
ln-820は決定論的なrunIdと正確なsummaryArtifactPathを渡します- 提供された
summaryArtifactPathに概要を書き込みます
スタンドアロンモード:
runIdとsummaryArtifactPathを省略します.hex-skills/runtime-artifacts/runs/{run_id}/dependency-worker/ln-821--{identifier}.jsonに書き込みます
モニター(2.1.98+): 30 秒を超えると予想されるインストール/監査/ビルド/テストコマンドには、Monitor を使用します。フォールバック:Bash(run_in_background=true)。
完了の定義
- パッケージマニフェストを分析し、依存関係に優先順位を付けた
- 選択したパッケージマネージャーについてセキュリティ監査を完了した
- 古くなったパッケージを特定した
- パターンと最新のドキュメントを使って破壊的変更を確認した
- 失敗時にロールバックできるようにしてアップグレードを適用した
- アップグレード後にビルドと関連する検証コマンドが成功した
- 管理対象またはスタンドアロンのパスに
dependency-workerの概要アーティファクトを書き込んだ
バージョン: 1.1.0 最終更新日: 2026-01-10