From 80665f06bd2799dd30f3f0ce3feca56e22c17cf7 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 8 Sep 2026 15:01:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(comment-scope):=20=E8=89=B2=E7=A2=BC?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E8=A2=AB=E7=95=B6=E6=88=90=E8=AD=B0=E9=A1=8C?= =?UTF-8?q?=E7=B7=A8=E8=99=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 寫一份含樣式表的網頁檔時,註解範圍守門連著兩次擋下來,說有議題編號,指 的其實是樣式表裡宣告墨色的那一行自訂屬性。 錯在兩層。一是註解行判定:SQL 的行首註解是兩個減號,樣式表的自訂屬性開 頭也是兩個減號,判定不管後面接什麼,整份樣式表的變數宣告就被當註解送去 比對。二是議題編號那條樣式咬的是井號接數字,色碼開頭剛好是數字,於是指 著色碼喊編號。 兩層各補一刀。行首兩個減號要求後面接空白:真的註解都留那個空白,自訂屬 性沒有,判定就分得開。白名單再多剪一條,把井號後面含十六進位字母的色碼 先剪掉;議題編號是純十進位,這一刀剪不到真的編號。剪而不是整行放行,維 持原本「同一行可能一半合規、一半違規」的處理方式。 驗過三種情形:含色碼宣告的樣式表不再命中;樣式表註解裡寫井號接兩位數字 照舊命中;SQL 註解裡夾議題編號照舊命中。語法檢查也過。 影響提交前那道註解範圍掃描。吃虧最深的是前端與資料庫這兩類檔案——之前它 們一碰色碼就得靠人判斷是不是誤報,現在守門擋下來的都值得看一眼。 三份 manifest 同步升到 0.5.2,跳過已在別處佔用的版號,避免撞號。 Co-Authored-By: Claude Opus 5 --- .claude-plugin/plugin.json | 2 +- .codex-plugin/plugin.json | 2 +- hooks/comment-scope.sh | 9 +++++++-- plugin.json | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 502358c..3da7b57 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "jsc-hooks", - "version": "0.5.0", + "version": "0.5.2", "description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄、SDLC 模型鎖、版本前置檢查、註解範圍守門、繁中編碼守門、部署後強制重啟、寫入與提交閘門", "skills": "./skills", "author": { diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 5b58713..693415c 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,7 +1,7 @@ { "hooks": "./hooks/codex-hooks.json", "name": "jsc-hooks", - "version": "0.5.0", + "version": "0.5.2", "description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄、SDLC 模型鎖、版本前置檢查、註解範圍守門、繁中編碼守門、部署後強制重啟、寫入與提交閘門", "skills": "./skills", "jsc": { diff --git a/hooks/comment-scope.sh b/hooks/comment-scope.sh index 6963885..f3c8cad 100755 --- a/hooks/comment-scope.sh +++ b/hooks/comment-scope.sh @@ -65,10 +65,14 @@ scan_file() { # $1=檔案路徑;命中就把報告印到 stdout 並回傳 1, fi # 只留註解行:行首註解符號,或行中出現 // 與 # 的行尾註解。 - comments=$(printf '%s\n' "$lines" | grep -E '^[[:space:]]*(//|#|--|\*|/\*|