ln-710-dependency-upgrader について
ln-700 のプロジェクト初期化ワークフローで依存関係のアップグレードを調整するスキルです。パッケージマネージャーを検出して専用ワーカーに委任し、セキュリティ監査、更新、ビルド検証の結果を集約します。
主な機能
- 01識別ファイルからパッケージマネージャーを検出
- 02Git 状態の確認とバックアップブランチ作成
- 03依存関係のセキュリティ監査
- 04マネージャー別ワーカーへの更新委任
- 05更新・スキップ・失敗結果の集約
- 06ビルド検証とサマリー作成
活用シーン
- 01Node.js・.NET・Python の依存関係更新の調整
- 02更新前のリポジトリ状態と重大な脆弱性の確認
- 03複数のパッケージマネージャーへの作業委任
- 04依存関係の変更とビルド検証結果の集約
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-710-dependency-upgraderインストール後、Claude Code で/ln-710-dependency-upgraderを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
diagram.htmlreferences/breaking_changes_patterns.mdsecurity_audit_guide.md詳細
パス: ファイルパス(
shared/、references/、../ln-*)は skills リポジトリのルートからの相対パスです。CWD に見つからない場合は、この SKILL.md ディレクトリを特定し、1 つ上の階層に移動してリポジトリのルートを確認してください。
ln-710-dependency-upgrader
タイプ: L2 ドメインコーディネーター
カテゴリ: 7XX プロジェクトのブートストラップ
親: ln-700-project-bootstrap
パッケージマネージャーを検出し、適切な L3 ワーカーに委任して、依存関係のアップグレードを調整します。
概要
| 項目 | 詳細 |
|---|---|
| 入力 | ln-700 で検出されたスタック |
| 出力 | すべての依存関係を、互換性のある最新バージョンにアップグレード |
| ワーカー | ln-711(npm)、ln-712(nuget)、ln-713(pip) |
ワークフロー
視覚的なワークフローについては、diagram.html を参照してください。
フェーズ: 事前確認 → 検出 → セキュリティ監査 → 委任 → 結果の収集 → 検証 → レポート
フェーズ 0:事前確認
アップグレードを開始する前に、プロジェクトの状態を確認します。
| 確認項目 | 方法 | ブロック条件 |
|---|---|---|
| 未コミットの変更 | git status --porcelain | 出力が空でない |
| バックアップブランチの作成 | git checkout -b upgrade-backup-{timestamp} | 失敗 |
| ロックファイルの有無 | ロックファイルを確認 | 見つからない場合(警告のみ) |
未コミットの変更がある場合は、アップグレードをスキップしてください。ユーザーは先にコミットするか、スタッシュする必要があります。
フェーズ 1:パッケージマネージャーの検出
検出ルール
| パッケージマネージャー | 識別ファイル | ワーカー |
|---|---|---|
| npm | package.json + package-lock.json | ln-711 |
| yarn | package.json + yarn.lock | ln-711 |
| pnpm | package.json + pnpm-lock.yaml | ln-711 |
| nuget | *.csproj files | ln-712 |
| pip | requirements.txt | ln-713 |
| poetry | pyproject.toml + poetry.lock | ln-713 |
| pipenv | Pipfile + Pipfile.lock | ln-713 |
フェーズ 2:セキュリティ監査(事前確認)
セキュリティチェック
| パッケージマネージャー | コマンド | アップグレードをブロック |
|---|---|---|
| npm | npm audit --audit-level=high | Critical のみ |
| pip | pip-audit --json | Critical のみ |
| nuget | dotnet list package --vulnerable | Critical のみ |
リリース経過日数のチェック
| オプション | デフォルト | 説明 |
|---|---|---|
| minimumReleaseAge | 14 日 | リリースから 14 日未満のパッケージをスキップ |
| ignoreReleaseAge | false | 緊急のセキュリティパッチでは上書き |
Renovate のベストプラクティスに従い、14 日待つことで、レジストリが悪意のあるパッケージを削除する時間を確保できます。
フェーズ 3:ワーカーへの委任
重大: すべての委任では、コンテキストを分離するため、
subagent_type: "general-purpose"を指定した Task ツールを使用します。
プロンプトテンプレート:
Task(description: "Upgrade deps via ln-71X",
prompt: "Execute ln-71X-{worker}. Read skill from ln-71X-{worker}/SKILL.md. Context: {delegationContext}",
subagent_type: "general-purpose")
アンチパターン:
- ❌ Task ラッパーを使わずに Skill ツールを直接呼び出す
- ❌ サブエージェントのコンテキスト分離を回避するあらゆる実行
委任コンテキスト
各ワーカーには、標準化されたコンテキストが渡されます。
| フィールド | 型 | 説明 |
|---|---|---|
| projectPath | string | プロジェクトの絶対パス |
| packageManager | enum | npm、yarn、pnpm、nuget、pip、poetry、pipenv |
| options.upgradeType | enum | major、minor、patch |
| options.allowBreaking | bool | 破壊的変更を許可する |
| options.testAfterUpgrade | bool | アップグレード後にテストを実行する |
ワーカーの選択
| パッケージマネージャー | ワーカー | 備考 |
|---|---|---|
| npm、yarn、pnpm | ln-711-npm-upgrader | すべての Node.js を処理 |
| nuget | ln-712-nuget-upgrader | .NET プロジェクトを処理 |
| pip、poetry、pipenv | ln-713-pip-upgrader | すべての Python を処理 |
フェーズ 4:結果の収集
結果スキーマ
| フィールド | 型 | 説明 |
|---|---|---|
| status | enum | success、partial、failed |
| upgrades[] | array | アップグレードされたパッケージの一覧 |
| upgrades[].package | string | パッケージ名 |
| upgrades[].from | string | 以前のバージョン |
| upgrades[].to | string | 新しいバージョン |
| upgrades[].breaking | bool | 破壊的変更かどうか |
| warnings[] | array | ブロックしない警告 |
| errors[] | array | ブロックするエラー |
フェーズ 5:ビルドの検証
スタック別のビルドコマンド
| スタック | コマンド |
|---|---|
| Node.js | npm run build or yarn build |
| .NET | dotnet build --configuration Release |
| Python | pytest or python -m pytest |
ビルド失敗時
- エラーから失敗したパッケージを特定します
- Context7/Ref で移行ガイドを検索します
- 既知の修正を適用します
- それでも失敗する場合:パッケージをロールバックし、警告を記録します
フェーズ 6:概要を報告
レポートのスキーマ
| フィールド | 型 | 説明 |
|---|---|---|
| totalPackages | int | 分析したパッケージの合計 |
| upgraded | int | アップグレードに成功した数 |
| skipped | int | すでに最新のためスキップした数 |
| failed | int | ロールバックした数 |
| breakingChanges | int | メジャーバージョンへのアップグレード数 |
| buildVerified | bool | アップグレード後にビルドが成功したか |
| duration | string | 所要時間の合計 |
設定
Options:
# Upgrade scope
upgradeType: major # major | minor | patch
# Breaking changes
allowBreaking: true
autoMigrate: true # Apply known migrations
# Security
auditLevel: high # none | low | moderate | high | critical
minimumReleaseAge: 14 # days, 0 to disable
blockOnVulnerability: true
# Scope
skipDev: false # Include devDependencies
skipOptional: true # Skip optional deps
# Verification
testAfterUpgrade: true
buildAfterUpgrade: true
# Rollback
rollbackOnFailure: true
エラー処理
回復可能なエラー
| エラー | 復旧方法 |
|---|---|
| ピア依存関係の競合 | --legacy-peer-deps を試します |
| ビルド失敗 | パッケージをロールバックして続行します |
| ネットワークのタイムアウト | 3 回再試行します |
致命的なエラー
| エラー | アクション |
|---|---|
| パッケージマネージャーが見つからない | この手順をスキップします |
| すべてのビルドが失敗 | 親に報告し、手動レビューを提案します |
参考資料
完了の定義
- 事前チェックに合格(Git の状態がクリーンで、バックアップブランチが作成済み)
- インジケーターファイルからすべてのパッケージマネージャーを検出済み
- マネージャーごとにセキュリティ監査を完了(重大な脆弱性がある場合はアップグレードをブロック)
- コンテキストを分離して、Task ツール経由でワーカーに委任済み
- アップグレード/スキップ/失敗の件数を含むワーカーの結果を収集済み
- すべてのアップグレード適用後にビルドを検証済み
- totalPackages、upgraded、skipped、failed、buildVerified を含む概要レポートを作成済み
バージョン: 1.1.0 最終更新日: 2026-01-10