fix/skillset-audit-compliance-and-guard-fixes #8

Merged
admin merged 3 commits from fix/skillset-audit-compliance-and-guard-fixes into develop 2026-08-25 07:14:49 +00:00
Member

摘要

  • 需求描述:jsc-meta:skill-check 例行稽核(2026-08-25)。本 repo 讓 ASCII 分支規則真的被工具擋住(原本產生非法 ref 還回 exit 0),並把 base 分支解析下放工具。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
tools/slugify.sh 補非 ASCII 與空 slug 的護欄。原本 slugify.sh feat "訂單報表匯出" 輸出 feat/ 且 exit 0,產生非法 git ref 而呼叫端毫無所知,ASCII 規則等於只停留在內文
tools/base-branch.sh 新增。base 分支解析(呼叫端指定優先,其次 develop、main、master,並逐一對遠端驗證)下放腳本;以參數個數而非字串空值判斷,空字串是錯誤而不是退回 develop
skills/pr/SKILL.md base 解析改一行呼叫;補上真正建立分支的指令與 slugify 退碼路由;PLAN、ANALYZE 頁改走 jsc-gitea:wiki 並說明逐類型環境變數與不得跨用;刪掉與 slugify 重複的 ASCII 規則敘述;補完成條件
skills/commit/SKILL.md 三個步驟補完成條件
README.md pr 的敘述改為與技能一致(呼叫端指定的 base 優先,其次依序退回);新增工具章節
三份 manifest、兩份 marketplace 同步升版至 0.0.6,marketplace 與正本對齊

設計重點

  • 護欄要放在工具裡。分支名只允許 ASCII 這條規則原本只寫在 SKILL.md,而工具會安靜產出 feat/ 這種非法 ref——規則的實現優先序是 hook 大於 prompt,工具化的部分同理。
  • 空字串與沒傳參數是兩件事。呼叫端寫 base-branch.sh "$SOURCE_BRANCH" 而變數沒值時,原本會安靜退回 develop,正是這支技能的 base 解析步驟要防的失誤。

測試結果

  • slugify.sh 實測:非 ASCII exit 2、空 slug exit 3、參數不足 exit 1;ASCII 快樂路徑以四種輸入與修改前逐一比對,輸出與退碼完全相同。
  • base-branch.sh 實測:不傳回 develop、傳 master 回 master、傳不存在的分支 exit 4、空字串 exit 6、兩個參數 exit 2。
  • 對照 jsc-gitea/tools/gitea.sh 的實作確認 pr-create 與 pr-depend 的參數順序與技能呼叫一致。
  • sh -n 全部通過;ste100-lint.sh exit 0。

前置 Push Request

  • 無
## 摘要 - 需求描述:jsc-meta:skill-check 例行稽核(2026-08-25)。本 repo 讓 ASCII 分支規則真的被工具擋住(原本產生非法 ref 還回 exit 0),並把 base 分支解析下放工具。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `tools/slugify.sh` | 補非 ASCII 與空 slug 的護欄。原本 `slugify.sh feat "訂單報表匯出"` 輸出 `feat/` 且 exit 0,產生非法 git ref 而呼叫端毫無所知,ASCII 規則等於只停留在內文 | | `tools/base-branch.sh` | 新增。base 分支解析(呼叫端指定優先,其次 develop、main、master,並逐一對遠端驗證)下放腳本;以參數個數而非字串空值判斷,空字串是錯誤而不是退回 develop | | `skills/pr/SKILL.md` | base 解析改一行呼叫;補上真正建立分支的指令與 slugify 退碼路由;PLAN、ANALYZE 頁改走 `jsc-gitea:wiki` 並說明逐類型環境變數與不得跨用;刪掉與 slugify 重複的 ASCII 規則敘述;補完成條件 | | `skills/commit/SKILL.md` | 三個步驟補完成條件 | | `README.md` | `pr` 的敘述改為與技能一致(呼叫端指定的 base 優先,其次依序退回);新增工具章節 | | 三份 manifest、兩份 marketplace | 同步升版至 0.0.6,marketplace 與正本對齊 | ## 設計重點 - 護欄要放在工具裡。分支名只允許 ASCII 這條規則原本只寫在 SKILL.md,而工具會安靜產出 `feat/` 這種非法 ref——規則的實現優先序是 hook 大於 prompt,工具化的部分同理。 - 空字串與沒傳參數是兩件事。呼叫端寫 `base-branch.sh "$SOURCE_BRANCH"` 而變數沒值時,原本會安靜退回 `develop`,正是這支技能的 base 解析步驟要防的失誤。 ## 測試結果 - `slugify.sh` 實測:非 ASCII exit 2、空 slug exit 3、參數不足 exit 1;ASCII 快樂路徑以四種輸入與修改前逐一比對,輸出與退碼完全相同。 - `base-branch.sh` 實測:不傳回 develop、傳 master 回 master、傳不存在的分支 exit 4、空字串 exit 6、兩個參數 exit 2。 - 對照 `jsc-gitea/tools/gitea.sh` 的實作確認 `pr-create` 與 `pr-depend` 的參數順序與技能呼叫一致。 - `sh -n` 全部通過;`ste100-lint.sh` exit 0。 ## 前置 Push Request - 無
jiantw83 added 3 commits 2026-08-25 07:03:48 +00:00
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 <noreply@anthropic.com>
What:更新 README、AGENTS.md、templates 與 references,讓文件敘述與實際行為一致。

Why:稽核發現多處文件與程式行為分歧,違反「每個意義只有單一真實來源」。

How:以實際程式行為為準改寫敘述,重複的規則收成單一來源並以一行指引指過去。

Who:jsc-meta:skill-check 例行稽核(2026-08-25)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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 <noreply@anthropic.com>
admin merged commit a471e0b883 into develop 2026-08-25 07:14:49 +00:00
admin deleted branch fix/skillset-audit-compliance-and-guard-fixes 2026-08-25 07:14:49 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/git#8