mcpField
L
ln-822-nuget-upgrader

ln-822-nuget-upgrader

github.com/levnikolaevich開発584220 回インストール2 日前に更新
リポジトリ

ln-822-nuget-upgrader について

.NETプロジェクトのNuGet依存関係を更新するスキルです。脆弱性や古いバージョン、破壊的変更を確認して更新し、復元、ビルド、テストを行って結果を報告します。

主な機能

  1. 01ソリューションやディレクトリ内のプロジェクト検出
  2. 02脆弱なパッケージと古いパッケージの監査
  3. 03破壊的変更と移行ガイドの確認
  4. 04優先順位に沿ったパッケージ更新
  5. 05プロジェクトの復元、ビルド、テスト

活用シーン

  1. 01.NETソリューションのNuGet依存関係更新
  2. 02更新前のパッケージ脆弱性確認
  3. 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.md
coordinator_summary_contract.md
dotnet_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:破壊的変更の特定

検出の流れ:

  1. 現在のメジャーバージョンと最新のメジャーバージョンを比較します。
  2. breaking_changes_patterns.md を確認します。
  3. コードを変更する前に、移行ガイドの確認に MCP ツールを使用します。

一般的な例:

パッケージ破壊的変更のあるバージョン主な変更点
Microsoft.EntityFrameworkCore8 -> 9クエリと移行の変更
Serilog.AspNetCore7 -> 8構成の更新
Swashbuckle.AspNetCore6 -> 7Minimal API 統合の変更

移行情報の検索に使用する MCP ツール

優先度ツール使用するタイミング
1mcp__context7__query-docsライブラリのドキュメントを確認する際の第一候補
2mcp__Ref__ref_search_documentationMicrosoft の公式ドキュメント
3WebSearch最新情報やコミュニティによる修正

適用前に、ツールチェーンを使用して移行内容を確認します。


フェーズ 5:アップグレードの適用

優先順位:

  1. SDK またはランタイムのパッケージ
  2. フレームワークのパッケージ
  3. EF Core
  4. ロギングのパッケージ
  5. その他すべて
操作コマンド
1 つのパッケージを更新dotnet add package <name> --version <ver>
複数のパッケージを更新dotnet outdated --upgrade

フェーズ 6:復元とビルド

手順コマンド
復元dotnet restore
ビルドdotnet build --configuration Release
テストdotnet test

失敗した場合:

  1. 失敗したパッケージを特定します。
  2. Context7 または Ref で移行ガイドを検索します。
  3. 解決できない場合は、そのパッケージをロールバックして続行します。

フェーズ 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

コメント