From 9313dea6ee7d435b10543c06bf0d8d09de716b74 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 25 Aug 2026 14:58:54 +0800 Subject: [PATCH 1/6] =?UTF-8?q?fix(review):=20=E8=A3=9C=E9=BD=8A=E7=A8=BD?= =?UTF-8?q?=E6=A0=B8=E7=BC=BA=E5=A4=B1=E4=B8=A6=E4=BF=AE=E6=8E=89=E8=AD=B7?= =?UTF-8?q?=E6=AC=84=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit What:依 jsc-meta:skill-check 的稽核結果修正技能與工具——補上每個步驟的可檢核完成條件、 把留在內文的標準輸入輸出流程下放 tools/、修正查表與退碼路由造成的誤判。 Why:稽核發現這些缺失會讓技能在實際執行時走錯分支或靜默通過。 完成條件缺漏是最常被違反的一項;退碼誤判與查表錯誤則會讓良性狀況被當成失敗。 How:逐項對照 references/guidelines.md 的審核檢查清單修正,新增的工具都有 documented exit codes,並以真實執行驗證每條路徑。 Who:jsc-meta:skill-check 例行稽核(2026-08-25)。 Co-Authored-By: Claude Opus 5 --- skills/code-review/SKILL.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/skills/code-review/SKILL.md b/skills/code-review/SKILL.md index b416ed8..d344759 100644 --- a/skills/code-review/SKILL.md +++ b/skills/code-review/SKILL.md @@ -10,7 +10,7 @@ Review changed code against `references/smells.md` (from the book *Refactoring*) ## When to run 1. **When a file change is complete**: one file or one related group of files is done. -2. **When an implementation is complete**: all todos of a work package are done (called by `jsc-sdlc:implement` step 6). +2. **When an implementation is complete**: all todos of a work package are done. This is the call site in `jsc-sdlc:implement` — the end of a work package, after its last todo and before it is committed and turned into a PR. ## Division of labor @@ -19,7 +19,7 @@ Review changed code against `references/smells.md` (from the book *Refactoring*) ## Steps -1. Get the review scope: `git diff` (uncommitted changes) or `git diff {base}...HEAD` (against the base branch when an implementation is complete); list the changed files. +1. Get the review scope: `git diff` (uncommitted changes) or `git diff {base}...HEAD` (against the base branch when an implementation is complete); list the changed files. An empty diff → report the literal 「無發現」 and stop here; spawn no sub agent. Completion condition: the changed-file list is non-empty and reported, or the run already ended with 「無發現」. 2. Review in six groups, and every group **MUST run as a sub agent**; the six groups may run in parallel: | Group | Scope | @@ -32,8 +32,10 @@ Review changed code against `references/smells.md` (from the book *Refactoring*) | 6 Shallow Module | smells.md group 6 | Instructions for each sub agent: read only, change nothing; check every changed line and its enclosing function or class against the group's definitions and detection signals in smells.md; report each finding as `file:line`, smell name, severity (高、中、低 per the smells.md scale), one sentence of evidence, and the suggested refactoring. Findings are reported in Traditional Chinese. -3. Merge the six groups' findings: deduplicate (when one location hits several groups, merge and list every smell), then sort by severity. -4. Report the finding list. **This skill never modifies code**; the caller decides what to fix (inside the implementation flow, 高 and 中 are normally mandatory, 低 is judgment). + + Completion condition: all six groups have returned — a group with nothing to report still returns 「無發現」 for its group. +3. Merge the six groups' findings: deduplicate (when one location hits several groups, merge and list every smell), then sort by severity. Start this step only once all six groups have returned; a group still running means the merge waits. Completion condition: every finding appears exactly once in the merged list, ordered 高 → 中 → 低. +4. Report the finding list. **This skill never modifies code**; the caller decides what to fix (inside the implementation flow, 高 and 中 are normally mandatory, 低 is judgment). Completion condition: the report is handed to the caller and the fix decision is left to them. ## Notes -- 2.53.0 From d9d0f6936f456e93cc407d7885405bf173ee3ccc Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 25 Aug 2026 14:58:54 +0800 Subject: [PATCH 2/6] =?UTF-8?q?docs(review):=20=E5=90=8C=E6=AD=A5=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E8=88=87=E5=8F=83=E8=80=83=E8=B3=87=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit What:更新 README、AGENTS.md、templates 與 references,讓文件敘述與實際行為一致。 Why:稽核發現多處文件與程式行為分歧,違反「每個意義只有單一真實來源」。 How:以實際程式行為為準改寫敘述,重複的規則收成單一來源並以一行指引指過去。 Who:jsc-meta:skill-check 例行稽核(2026-08-25)。 Co-Authored-By: Claude Opus 5 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f5c1d4..b89ea3d 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Marketplace 統一為 `jsc`(https://gitea.jsc.idv.tw/plugins/meta.git),安 ### `code-review` -對 git diff 進行六組壞味道審查,每組一個 sub agent 平行執行;回報 `檔案:行號`、嚴重度、建議重構手法,修正與否由呼叫端決定。安全性與 bug 審查交給 CLI 內建 review,不重複。 +對 git diff 進行六組壞味道審查,每組一個 sub agent 平行執行;回報 `檔案:行號`、嚴重度、建議重構手法,修正與否由呼叫端決定。diff 是空的就直接回報「無發現」,不開任何 sub agent;六組全部回覆才進入彙整,沒東西可報的那組也要回「無發現」。安全性與 bug 審查交給 CLI 內建 review,不重複。 -- 2.53.0 From 150f0cc07c34e2a4bb11e13fc9d93cdd30b09385 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 25 Aug 2026 14:58:54 +0800 Subject: [PATCH 3/6] =?UTF-8?q?chore(review):=20=E4=B8=89=E4=BB=BD=20manif?= =?UTF-8?q?est=20=E5=90=8C=E6=AD=A5=E5=8D=87=E7=89=88=E4=B8=A6=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=20marketplace=20=E6=AD=A3=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit What:三份 plugin manifest 版本同步 bump,兩份 marketplace 檔與 plugins/meta 正本對齊。 Why:準則要求技能異動必須同步升版;marketplace 副本必須與正本完全一致。 How:以 jsc-meta 的 tools/sync-skill-manifest.sh 升版,marketplace 檔由正本複製。 Who:jsc-meta:skill-check 例行稽核(2026-08-25)。 Co-Authored-By: Claude Opus 5 --- .agents/plugins/marketplace.json | 6 +++--- .claude-plugin/marketplace.json | 6 +++--- .claude-plugin/plugin.json | 2 +- .codex-plugin/plugin.json | 2 +- plugin.json | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index a9b4e66..8a2f91b 100644 --- a/.agents/plugins/marketplace.json +++ b/.agents/plugins/marketplace.json @@ -43,7 +43,7 @@ "source": "url", "url": "https://gitea.jsc.idv.tw/plugins/hooks.git" }, - "description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄" + "description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄、SDLC 模型鎖、版本前置檢查" }, { "name": "jsc-log", @@ -75,7 +75,7 @@ "source": "url", "url": "https://gitea.jsc.idv.tw/plugins/review.git" }, - "description": "程式碼審查:Refactoring 壞味道六組 + 註解規範 + 淺模組" + "description": "程式碼審查:Refactoring 壞味道六組、註解規範、淺模組" }, { "name": "jsc-sdlc", @@ -83,7 +83,7 @@ "source": "url", "url": "https://gitea.jsc.idv.tw/plugins/sdlc.git" }, - "description": "開發生命週期:規劃/分析/實作/維護(wiki 追蹤)" + "description": "開發生命週期:規劃、分析、實作、維護(wiki 追蹤)" } ] } diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index a9b4e66..8a2f91b 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -43,7 +43,7 @@ "source": "url", "url": "https://gitea.jsc.idv.tw/plugins/hooks.git" }, - "description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄" + "description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄、SDLC 模型鎖、版本前置檢查" }, { "name": "jsc-log", @@ -75,7 +75,7 @@ "source": "url", "url": "https://gitea.jsc.idv.tw/plugins/review.git" }, - "description": "程式碼審查:Refactoring 壞味道六組 + 註解規範 + 淺模組" + "description": "程式碼審查:Refactoring 壞味道六組、註解規範、淺模組" }, { "name": "jsc-sdlc", @@ -83,7 +83,7 @@ "source": "url", "url": "https://gitea.jsc.idv.tw/plugins/sdlc.git" }, - "description": "開發生命週期:規劃/分析/實作/維護(wiki 追蹤)" + "description": "開發生命週期:規劃、分析、實作、維護(wiki 追蹤)" } ] } diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 195429e..f307e48 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "jsc-review", - "version": "0.0.2", + "version": "0.0.4", "description": "程式碼審查:Refactoring 壞味道六組 + 註解規範 + 淺模組", "skills": "./skills", "author": { diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 475078d..935ebeb 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "jsc-review", - "version": "0.0.2", + "version": "0.0.4", "description": "程式碼審查:Refactoring 壞味道六組 + 註解規範 + 淺模組", "skills": "./skills" } diff --git a/plugin.json b/plugin.json index d41885b..a97e79e 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "name": "jsc-review", - "version": "0.0.2", + "version": "0.0.4", "description": "程式碼審查:Refactoring 壞味道六組 + 註解規範 + 淺模組", "skills": "./skills/" } -- 2.53.0 From fd70ce3bc2a1438bf72f892c66af3d72ec52fa7f Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 26 Aug 2026 18:59:59 +0800 Subject: [PATCH 4/6] =?UTF-8?q?feat(review):=20=E6=96=B0=E5=A2=9E=E7=A8=8B?= =?UTF-8?q?=E5=BC=8F=E7=A2=BC=E8=A8=BB=E8=A7=A3=E7=A6=81=E6=AD=A2=E5=A4=BE?= =?UTF-8?q?=E5=B8=B6=E6=96=87=E4=BB=B6=E8=B3=87=E8=A8=8A=E7=9A=84=E8=A6=8F?= =?UTF-8?q?=E5=89=87=E6=AD=A3=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit What:新增 references/comment-scope.md 規則正文,並在 references/smells.md 第 2 組加入 2.5 文件編號夾帶,嚴重度分級「低」列補上本項。 Why:註解寫「這件事記在哪份文件」,讀程式碼的人查不到。編號會過期、會搬家、 會落在存取權限外,最後只剩一串無意義的代號。註解該寫的是「為什麼這樣寫」。 How:規則正文限定適用範圍只到程式碼註解,docstring、README、commit 訊息不受限。 禁止清單三十項分四組:追蹤系統編號、jsc wiki 頁面編號、需求與規格編號、 流程與人事資訊。白名單七項:日期與時間戳、需求變更歷程、RFC 與 ISO 標準、CVE、 第三方套件 issue 連結、授權標頭與 SPDX、語言原生標記。 Who:jsc-review 的 code-review 技能,第 2 組可讀性審查。 --- references/comment-scope.md | 91 +++++++++++++++++++++++++++++++++++++ references/smells.md | 9 +++- 2 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 references/comment-scope.md diff --git a/references/comment-scope.md b/references/comment-scope.md new file mode 100644 index 0000000..1b3a0b5 --- /dev/null +++ b/references/comment-scope.md @@ -0,0 +1,91 @@ +# 程式碼註解內容界線 + +註解寫「為什麼這樣寫」,不寫「這件事記在哪份文件」。文件編號會過期、會搬家、會在存取權限外,讀程式碼的人查不到,只留下一串無意義的代號。 + +`code-review` 第 2 組(可讀性)依本清單審查;`jsc-hooks` 的 `comment-scope.sh` 在寫檔後自動比對並發出警告。 + +有兩項樣式判定不了:專案代號、客戶名稱。hook 抓不到這兩項,只能靠 `code-review` 人工判讀。hook 只掃這次新增的註解行,不翻既有程式碼的舊帳。 + +## 適用範圍 + +| 對象 | 是否受限 | +| --- | --- | +| 程式碼註解(`//`、`#`、`/* */`、`--`、`` 等) | 受限 | +| docstring、API 文件註解(含 `@param`、`@return` 內容) | 不受限 | +| README、設計文件、其他 markdown | 不受限 | +| commit 訊息、PR 描述 | 不受限 | + +## 禁止寫進註解 + +### 追蹤系統編號 + +| 項目 | 命中例 | +| --- | --- | +| 議題編號 | `// #123`、`// ABC-123` | +| PR 編號、MR 編號 | `// 見 PR !45` | +| 變更單編號、CR 編號 | `// CR-2026-07` | +| 議題留言引用 | `// 見 #123 第三則留言` | + +### jsc wiki 頁面編號 + +| 項目 | 命中例 | +| --- | --- | +| 規劃頁編號與分頁編號 | `// PLAN_A1B2C3D4 第 2 頁` | +| 分析頁編號 | `// ANALYZE_A1B2C3D4` | +| 工作包編號 | `// WP-01` | +| TDD 待辦編號 | `// todo 3` | +| 交付頁編號 | `// DELIVER_A1B2C3D4` | +| 維運頁編號 | `// MAINTAIN_A1B2C3D4` | +| 異常頁編號 | `// ERROR_A1B2C3D4` | +| 問詢頁編號 | `// QUESTION_A1B2C3D4` | +| 工作日誌頁編號 | `// LOG_A1B2C3D4` | +| 教訓頁編號 | `// LEARN_A1B2C3D4` | +| 盤點頁編號 | `// REPO_A1B2C3D4` | +| wiki 頁面網址 | `// https://gitea.example/…/wiki/PLAN_A1B2C3D4` | + +### 需求與規格編號 + +| 項目 | 命中例 | +| --- | --- | +| 使用者故事編號 | `// US-01` | +| 驗收條件編號 | `// AC-01` | +| 測試案例編號 | `// TC-01` | +| 規格文件章節編號 | `// 規格書 3.2.1 節` | +| 稽核檢查項編號 | `// guidelines 第 7 項` | + +### 流程與人事資訊 + +| 項目 | 命中例 | +| --- | --- | +| 分支名稱、commit hash | `// 見 commit a1b2c3d` | +| 版本號、里程碑、Sprint 編號 | `// Sprint 12 加入` | +| 人名、認領者、`@` 提及、`@author` | `// @someone 認領` | +| 工時估算、CPM 數據 | `// 預估 3 小時` | +| 專案代號、客戶名稱 | `// 客戶 XX 專案` | +| 產生來源署名、AI 署名 | `// 本檔由 jsc-sdlc:implement 產生` | +| 外部文件連結 | `// 見 Confluence、Notion、Google Docs 連結` | + +## 允許寫進註解 + +| 項目 | 允許的理由 | 例 | +| --- | --- | --- | +| 日期與時間戳 | 標示某個決定的時間點,不依賴外部系統 | `// 2026-08-26 起改用新費率` | +| 需求變更歷程 | 說明「為什麼不是更直覺的那個做法」 | `// 原本四捨五入,改成無條件捨去` | +| RFC、ISO 等標準規格編號與章節 | 指向公開且長期穩定的規格 | `// 依 RFC 7231 第 6.5.1 節` | +| CVE 編號 | 說明這段防護在擋什麼 | `// 修補 CVE-2026-1234` | +| 第三方套件的 issue 連結 | 說明繞道寫法的成因與解除條件 | `// 繞過 github.com/foo/bar/issues/88,修好後可移除` | +| 授權標頭、SPDX 標記 | 法律要求 | `// SPDX-License-Identifier: MIT` | +| 語言原生標記 | 編譯器或工具鏈直接解讀 | `@deprecated`、`@since` | + +`@author` 不在允許之列:它是人名,屬「流程與人事資訊」。 + +## 命中時怎麼改 + +| 原本 | 改成 | +| --- | --- | +| `// WP-03 要求這裡回傳空陣列` | `// 查無資料回傳空陣列,呼叫端不必再判 null` | +| `// 見 #123` | 把 `#123` 裡的原因寫進註解本身 | +| `// @someone 2026-08-26 修` | `// 2026-08-26 改用新費率` | +| `// PLAN_A1B2C3D4 第 2 頁的規則` | 把該頁的規則正文濃縮成一句寫進來 | + +原則一句話:把編號指向的內容**搬進註解**,再刪掉編號。搬不動就代表那件事不該用註解表達,改寫進文件。 diff --git a/references/smells.md b/references/smells.md index b1d801d..cc3cf63 100644 --- a/references/smells.md +++ b/references/smells.md @@ -57,6 +57,13 @@ - **建議重構手法**:Extract Function(用函式名取代註解)、Rename(用命名取代註解)、Introduce Assertion;保留「為什麼」與外部限制類註解。 - **注意**:本項與「註解問題」(第 5 組)互補:刪除解釋性廢話註解,補齊第 5 組要求的介面契約註解,兩者不衝突。 +### 2.5 文件編號夾帶(Document Reference Leak) + +- **定義**:註解寫的是「這件事記在哪份文件」,不是「為什麼這樣寫」。編號會過期、會搬家、會在存取權限外,讀程式碼的人查不到,只剩一串無意義的代號。 +- **偵測訊號**:註解含議題編號(`// #123`、`// ABC-123`)、wiki 頁編號(`// PLAN_A1B2C3D4`)、工作包編號(`// WP-01`)、commit hash(`// 見 commit a1b2c3d`)、`@` 提及(`// @someone 認領`)、外部文件連結(Confluence、Notion、Google Docs)。完整禁止清單、允許清單與適用範圍看 `references/comment-scope.md`。 +- **建議重構手法**:把編號指向的內容搬進註解,再刪掉編號;搬不動就代表那件事不該用註解表達,改寫進文件。 +- **注意**:本項與 2.4、第 5 組分工明確:2.4 刪解釋性廢話,第 5 組補介面契約,2.5 刪文件編號。 + ## 第 3 組:耦合與設計問題(Couplers) ### 3.1 依賴嫉妒(Feature Envy) @@ -155,4 +162,4 @@ | --- | --- | --- | | 高 | 會造成錯誤或已阻礙修改 | 吞掉異常、重複程式碼改漏、死碼誤導 | | 中 | 持續增加維護成本 | 巨型類別、臃腫函式、巢狀地獄、Couplers 全組 | -| 低 | 可讀性與一致性 | 命名、魔術數字、註解缺漏、淺模組 | +| 低 | 可讀性與一致性 | 命名、魔術數字、註解缺漏、文件編號夾帶、淺模組 | -- 2.53.0 From df81eec8fb038dbb0affca9f4c6c584262765bf2 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 26 Aug 2026 19:00:12 +0800 Subject: [PATCH 5/6] =?UTF-8?q?feat(review):=20=E6=8A=80=E8=83=BD=E8=88=87?= =?UTF-8?q?=E8=AA=AA=E6=98=8E=E6=96=87=E4=BB=B6=E7=B4=8D=E5=85=A5=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=B7=A8=E8=99=9F=E5=A4=BE=E5=B8=B6=E5=AF=A9=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit What:skills/code-review/SKILL.md 的第 2 組 Obscurity 審查範圍納入 2.5, Notes 補上與 jsc-hooks 的 comment-scope.sh 分工說明;README.md 的技能說明 與參考檔表格同步。 Why:規則正文放進 references 還不夠,sub agent 讀的是 SKILL.md 的審查範圍表。 範圍表沒寫,第 2 組就不會查這一項。使用者讀的是 README.md,參考檔沒列出來就找不到。 How:審查範圍表的第 2 組直接列出六類命中樣式,並指向 references/comment-scope.md 取完整清單。Notes 寫明 comment-scope.sh 負責樣式判定得了的項目,第 2 組負責 樣式判定不了的專案代號與客戶名稱,兩邊不重複回報。README.md 表格新增一列。 Who:jsc-review 的 code-review 技能與存取庫說明文件。 --- README.md | 3 ++- skills/code-review/SKILL.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b89ea3d..44a199b 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Marketplace 統一為 `jsc`(https://gitea.jsc.idv.tw/plugins/meta.git),安 ### `code-review` -對 git diff 進行六組壞味道審查,每組一個 sub agent 平行執行;回報 `檔案:行號`、嚴重度、建議重構手法,修正與否由呼叫端決定。diff 是空的就直接回報「無發現」,不開任何 sub agent;六組全部回覆才進入彙整,沒東西可報的那組也要回「無發現」。安全性與 bug 審查交給 CLI 內建 review,不重複。 +對 git diff 進行六組壞味道審查,每組一個 sub agent 平行執行;回報 `檔案:行號`、嚴重度、建議重構手法,修正與否由呼叫端決定。第 2 組同時擋「文件編號夾帶」:註解只寫「為什麼這樣寫」,議題編號、wiki 頁編號、工作包編號、commit hash、`@` 提及、外部文件連結一律不進註解,清單看 `references/comment-scope.md`。diff 是空的就直接回報「無發現」,不開任何 sub agent;六組全部回覆才進入彙整,沒東西可報的那組也要回「無發現」。安全性與 bug 審查交給 CLI 內建 review,不重複。 @@ -35,6 +35,7 @@ Marketplace 統一為 `jsc`(https://gitea.jsc.idv.tw/plugins/meta.git),安 | 檔案 | 用途 | | --- | --- | | `references/smells.md` | 六組壞味道完整清單:定義、偵測訊號、建議重構手法、嚴重度分級;範例資料必須去識別化 | +| `references/comment-scope.md` | 程式碼註解內容界線:禁止寫進註解的文件編號清單、允許項目與白名單、命中時的改法 | ## 相關 domain diff --git a/skills/code-review/SKILL.md b/skills/code-review/SKILL.md index d344759..b8a472f 100644 --- a/skills/code-review/SKILL.md +++ b/skills/code-review/SKILL.md @@ -25,7 +25,7 @@ Review changed code against `references/smells.md` (from the book *Refactoring*) | Group | Scope | | --- | --- | | 1 Bloaters | smells.md group 1 | - | 2 Obscurity | smells.md group 2 | + | 2 Obscurity | smells.md group 2, including 2.5 document reference leak — comments carrying issue ids, wiki page ids, work package ids, commit hashes, @ mentions, or external document links; the full banned and allowed lists live in `references/comment-scope.md` | | 3 Couplers | smells.md group 3 | | 4 Dispensables & Others | smells.md group 4 | | 5 Comment contract | smells.md group 5 | @@ -39,5 +39,6 @@ Review changed code against `references/smells.md` (from the book *Refactoring*) ## Notes +- `jsc-hooks`' `comment-scope.sh` already matches the pattern-detectable items after every file write. Group 2 here covers what patterns cannot decide — project code names and customer names — plus the overall judgment; the two never report the same finding twice. - If group 5 examples are fetched from a database, they must be de-identified; never include personal data. - When there are no findings, report the literal 「無發現」 explicitly; never leave the report empty. -- 2.53.0 From 0df99db51218a57a815afcec34fe7cdaed9c5a25 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 26 Aug 2026 19:00:25 +0800 Subject: [PATCH 6/6] =?UTF-8?q?feat(review):=20=E4=B8=89=E4=BB=BD=20manife?= =?UTF-8?q?st=20=E5=90=8C=E6=AD=A5=E5=8D=87=E7=89=88=E8=87=B3=200.0.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit What:plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 三份 manifest 的 version 由 0.0.4 改為 0.0.5。 Why:本次新增了註解內容界線規則,屬於功能異動。版本沒跟著升,各 CLI 端的 外掛版本護欄就分不出新舊,已安裝的使用者也收不到更新。 How:三份 manifest 只改 version 欄位,其餘欄位維持原樣,三處版本號保持一致。 Who:jsc-review 外掛的安裝與更新流程。 --- .claude-plugin/plugin.json | 2 +- .codex-plugin/plugin.json | 2 +- plugin.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index f307e48..b813ab9 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "jsc-review", - "version": "0.0.4", + "version": "0.0.5", "description": "程式碼審查:Refactoring 壞味道六組 + 註解規範 + 淺模組", "skills": "./skills", "author": { diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 935ebeb..5574084 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "jsc-review", - "version": "0.0.4", + "version": "0.0.5", "description": "程式碼審查:Refactoring 壞味道六組 + 註解規範 + 淺模組", "skills": "./skills" } diff --git a/plugin.json b/plugin.json index a97e79e..78becd3 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "name": "jsc-review", - "version": "0.0.4", + "version": "0.0.5", "description": "程式碼審查:Refactoring 壞味道六組 + 註解規範 + 淺模組", "skills": "./skills/" } -- 2.53.0