ln-822-nuget-upgrader について
.NETプロジェクトのNuGet依存関係を更新するスキルです。脆弱性や古いバージョン、破壊的変更を確認して更新し、復元、ビルド、テストを行って結果を報告します。
主な機能
- 01ソリューションやディレクトリ内のプロジェクト検出
- 02脆弱なパッケージと古いパッケージの監査
- 03破壊的変更と移行ガイドの確認
- 04優先順位に沿ったパッケージ更新
- 05プロジェクトの復元、ビルド、テスト
活用シーン
- 01.NETソリューションのNuGet依存関係更新
- 02更新前のパッケージ脆弱性確認
- 03復元、ビルド、テストによる更新検証
MCP 対応
更新を適用する前に、MCPのドキュメント検索ツールで移行ガイドを確認します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-822-nuget-upgraderインストール後、Claude Code で/ln-822-nuget-upgraderを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/breaking_changes_patterns.mdcoordinator_summary_contract.mddotnet_version_matrix.md詳細
パス: ファイルパス(
references/、../ln-*)は、このスキルディレクトリからの相対パスです。
ln-822-nuget-upgrader
タイプ: L3 ワーカー カテゴリ: 8XX 最適化
.NET NuGet パッケージを、破壊的変更の自動検出と移行によってアップグレードします。
概要
| 項目 | 詳細 |
|---|---|
| 入力 | ソリューションまたはプロジェクトのパスとアップグレードポリシー |
| 出力 | 更新された .csproj ファイルと、機械可読な依存関係アップグレードの概要 |
| 対応対象 | .NET 6、7、8、9、10 |
ワークフロー
フェーズ: 事前確認 -> プロジェクトの検出 -> セキュリティ監査 -> 古いパッケージの確認 -> 破壊的変更の特定 -> アップグレードの適用 -> 復元とビルド -> レポート
フェーズ 0:事前確認
| 確認項目 | 必須 | 不足している場合の対応 |
|---|---|---|
.csproj ファイル | はい | アップグレードを中止 |
.sln ファイル | いいえ | 再帰的なプロジェクト検出にフォールバック |
dotnet CLI | はい | アップグレードを中止 |
| ワークスペースのベースラインが安全 | はい | 管理実行ではコーディネーターがすでに準備済みです。単独実行ではロールバックをローカルで保護します |
実行時の連携
管理実行では、ln-820 から決定的な runId と正確な summaryArtifactPath が渡されます。
単独実行も引き続きサポートされます。実行時引数が省略された場合は、応答を返す前に単独実行スコープのアーティファクトを生成します。
フェーズ 1:プロジェクトの検出
| 方法 | コマンド |
|---|---|
.csproj ファイルの検索 | Get-ChildItem -Recurse -Filter *.csproj |
| ソリューションのメンバーを読み取る | dotnet sln list |
フェーズ 2:セキュリティ監査
| 確認項目 | コマンド |
|---|---|
| 脆弱性のあるパッケージ | dotnet list package --vulnerable |
| 古いパッケージ | dotnet list package --outdated |
対応:
| 重大度 | 対応 |
|---|---|
| Critical | 中止して報告 |
| High | 警告して続行 |
| Moderate/Low | ログに記録のみ |
フェーズ 3:古いパッケージの確認
| 手順 | コマンド |
|---|---|
| ヘルパーのインストール | dotnet tool install --global dotnet-outdated-tool |
| 古いパッケージの検出 | dotnet outdated --output json |
フェーズ 4:破壊的変更の特定
検出の流れ:
- 現在のメジャーバージョンと最新のメジャーバージョンを比較します。
- breaking_changes_patterns.md を確認します。
- コードを変更する前に、移行ガイドの確認に MCP ツールを使用します。
一般的な例:
| パッケージ | 破壊的変更のあるバージョン | 主な変更点 |
|---|---|---|
| Microsoft.EntityFrameworkCore | 8 -> 9 | クエリと移行の変更 |
| Serilog.AspNetCore | 7 -> 8 | 構成の更新 |
| Swashbuckle.AspNetCore | 6 -> 7 | Minimal API 統合の変更 |
移行情報の検索に使用する MCP ツール
| 優先度 | ツール | 使用するタイミング |
|---|---|---|
| 1 | mcp__context7__query-docs | ライブラリのドキュメントを確認する際の第一候補 |
| 2 | mcp__Ref__ref_search_documentation | Microsoft の公式ドキュメント |
| 3 | WebSearch | 最新情報やコミュニティによる修正 |
適用前に、ツールチェーンを使用して移行内容を確認します。
フェーズ 5:アップグレードの適用
優先順位:
- SDK またはランタイムのパッケージ
- フレームワークのパッケージ
- EF Core
- ロギングのパッケージ
- その他すべて
| 操作 | コマンド |
|---|---|
| 1 つのパッケージを更新 | dotnet add package <name> --version <ver> |
| 複数のパッケージを更新 | dotnet outdated --upgrade |
フェーズ 6:復元とビルド
| 手順 | コマンド |
|---|---|
| 復元 | dotnet restore |
| ビルド | dotnet build --configuration Release |
| テスト | dotnet test |
失敗した場合:
- 失敗したパッケージを特定します。
- Context7 または Ref で移行ガイドを検索します。
- 解決できない場合は、そのパッケージをロールバックして続行します。
フェーズ 7:結果の報告
| フィールド | 説明 |
|---|---|
solution | ソリューションのパス |
projects[] | 更新されたプロジェクト |
duration | 合計時間 |
upgrades[] | 適用されたアップグレード |
verification | 復元/ビルド/テストの判定 |
warnings[] | ブロックしない問題 |
artifact_path | 書き込まれた場合の、永続的なワーカーレポートのパス |
設定
Options:
upgradeType: major # major | minor | patch
auditLevel: high
minimumReleaseAge: 14
includePrerelease: false
targetFramework: net10.0
runTests: true
runBuild: true
エラー処理
| エラー | 原因 | 解決策 |
|---|---|---|
| CS0246 | 型が見つからない | 代替 API を検索する |
| NU1605 | ダウングレードが検出された | パッケージの制約を確認する |
| ビルド失敗 | 破壊的変更 | 移行ガイドを適用するか、問題のパッケージをロールバックする |
参考資料
ランタイムサマリーアーティファクト
必ず読み込むこと: references/coordinator_summary_contract.md を読み込みます。
dependency-worker サマリーエンベロープを出力します。
管理モード:
ln-820が決定論的なrunIdと正確なsummaryArtifactPathを渡します- 指定された
summaryArtifactPathにサマリーを書き込みます
スタンドアロンモード:
runIdとsummaryArtifactPathは省略します.hex-skills/runtime-artifacts/runs/{run_id}/dependency-worker/ln-822--{identifier}.jsonに書き込みます
Monitor(2.1.98+): 30 秒を超えることが予想される復元/ビルド/テストコマンドには、Monitor を使用します。代替手段:Bash(run_in_background=true)。
完了の定義
- すべての対象
.csprojファイルを検出済み - NuGet 依存関係のセキュリティ監査を完了済み
- 古いパッケージを特定済み
- パターンと最新のドキュメントを使って破壊的変更を確認済み
- 失敗時にロールバックしながら、安全な順序でアップグレードを適用済み
-
dotnet restore、dotnet build、および必要なテストが成功 -
dependency-workerサマリーアーティファクトを管理パスまたはスタンドアロンパスに書き込み済み
バージョン: 1.1.0 最終更新日: 2026-01-10