From dec8607803161fcb46878ab090df7170d9f9d165 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 24 Jun 2026 09:32:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(code-review-nuget):=20=E9=81=87=E5=88=B0?= =?UTF-8?q?=20JSC=20=E9=96=8B=E9=A0=AD=E5=A5=97=E4=BB=B6=E6=99=82=E5=BF=85?= =?UTF-8?q?=E9=A0=88=E5=85=88=E8=A9=A2=E5=95=8F=E4=BD=BF=E7=94=A8=E8=80=85?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E7=B9=BC=E7=BA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skills/code-review-nuget/SKILL.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/skills/code-review-nuget/SKILL.md b/skills/code-review-nuget/SKILL.md index 848d07f..95f2d02 100644 --- a/skills/code-review-nuget/SKILL.md +++ b/skills/code-review-nuget/SKILL.md @@ -14,6 +14,7 @@ argument-hint: "[] [--include-prerelease] [--no-dedupe] [-- - 修改前先輸出簡短執行計畫;除非使用者要求確認、遇到多個 solution 無法判斷、或編譯失敗需要取捨,否則依計畫執行。 - 每個套件都要留下結果:已更新 / 已降階到可編譯版本 / 已略過 / 已回復 / 已移除重複參考,以及對應版本與驗證指令。 - 不主動 commit、push 或開 PR;使用者明確要求時才做。 +- **遇到 `JSC` 開頭的套件(套件 id 前綴為 `JSC`)時,必須先通知使用者並詢問是否要繼續處理該套件,取得明確同意後才可動作(更新版本或移除重複參考)。此確認為強制項,不得被 `--yes` 略過。使用者若拒絕,將該套件記為「已略過(JSC 套件,使用者未同意)」並繼續處理其他套件。** ## 參數 @@ -23,7 +24,7 @@ argument-hint: "[] [--include-prerelease] [--no-dedupe] [-- - `--include-prerelease`:更新時允許 prerelease 版本;未指定時只更新 stable 版本。 - `--no-dedupe`:略過 ProjectReference 重複 PackageReference 清理,只更新版本。 - `--build `:覆寫驗證指令,例如 `dotnet build My.sln -c Release`。未指定時用 `dotnet build --no-restore`。 -- `--yes`:可略過一般確認,但仍不可忽略多 solution 選擇、無法安全清理重複參考、或編譯失敗的必要決策。 +- `--yes`:可略過一般確認,但仍不可忽略多 solution 選擇、無法安全清理重複參考、編譯失敗的必要決策、或 `JSC` 開頭套件的繼續確認。 ## 執行流程 @@ -82,6 +83,7 @@ argument-hint: "[] [--include-prerelease] [--no-dedupe] [-- - 若目前專案的套件參考含 `PrivateAssets="all"`、`IncludeAssets` / `ExcludeAssets` 特殊設定、analyzers/build/source generators、或版本刻意高於上層專案,先列為「需人工確認」,不要自動移除。 - 若上層專案的參考含 `PrivateAssets="all"` 或不會傳遞必要 assets,不可視為可替代。 3. 對可安全移除的重複 direct reference 逐一處理: + - **若該套件 id 為 `JSC` 開頭,先通知使用者並詢問是否繼續移除,取得同意才處理;未同意則記為「已略過(JSC 套件,使用者未同意)」。此確認不得被 `--yes` 略過。** - 先記錄目前檔案狀態與套件版本。 - 移除當前專案的重複 `PackageReference`;若使用 Central Package Management,只有在沒有任何專案仍需要該 `PackageVersion` 時才移除中央版本項。 - 執行: @@ -100,6 +102,7 @@ argument-hint: "[] [--include-prerelease] [--no-dedupe] [-- - transitive-only 套件不直接更新;更新提供它的 direct 套件。 - 明確 pin 住版本且註解或 props 顯示有相容性原因者,先列入「需人工確認」。 - `PrivateAssets="all"` 的 analyzer / generator / build tooling 可更新,但要特別注意 build 驗證結果。 + - **`JSC` 開頭的套件:在更新版本前,必須先通知使用者「即將處理 JSC 套件 ``」並詢問是否繼續,取得同意才更新;未同意則記為「已略過(JSC 套件,使用者未同意)」。此確認不得被 `--yes` 略過。** 2. 逐一更新 direct 套件: - 一次只更新一個套件 id。 - 若多個專案引用同一套件,先判斷是否使用 Central Package Management: -- 2.53.0