釋出 jsc-meta 0.2.4:新增行為清單檢查腳本與準則改寫 #49

Merged
admin merged 5 commits from develop into master 2026-08-31 08:19:04 +00:00
Member

摘要

  • 需求描述:盤點所有技能組,整理出所有技能的行為清單作為技能驗證的參考基準,日後技能異動都要同步更新;相依技能版本不符時不得跳過更新,改為阻擋執行。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
tools/check-behaviors.sh 新增。比對 skills/ 與 references/behaviors.md,把清單一致性檢查放到程式層
references/behaviors.md 新增。7 支技能的行為清單
references/guidelines.md 四處:相依版本第 5 條改成部署端只回報、版本前置檢查補相依三列、新增「技能行為清單」一節、審核檢查清單加一項
skills/skill-new、skill-update、skill-delete、skillset-update 的 SKILL.md 加入同步行為清單的步驟與退出碼分流
skills/skill-check/SKILL.md check-behaviors.sh 併進第一組稽核
README.md 補上兩個新檔的說明
三份 manifest 版本同步到 0.2.4

設計重點

  • 行為清單放在各 domain 而不是集中在 jsc-meta:技能改動與清單在同一個 PR 才不會漂移,也不用跨 repo 開兩條 PR 互卡。
  • 一致性檢查工具化而非寫在內文:寫在內文的規則模型可以無視,清單會靜默過期。
  • domain 名以 plugin.json 的 name 為準,checkout 目錄名只是退路。目錄名是誰 clone 誰決定的,拿它當唯一來源會在別人的工作區誤報。
  • 相依版本阻擋的準則記載改成由 version-guard.sh 自己實作,不再寫成「只認 check-requires.sh」——原文指向一個不存在的呼叫。

測試結果

  • check-behaviors.sh 的 0、1、2、3 逐一實測,與檔頭宣告相符;對 10 個 domain 全部退出 0,34 節對上 34 支技能。
  • 換一個目錄名重測仍退出 0,證實 domain 名讀的是 plugin.json。
  • lint-scripts.sh 退出 0(12 支);ste100-lint.sh 退出 0。
  • list-skills.sh 印出 34 支技能,skill-check 的 description 已含 check-behaviors.sh。
  • 未跑「開新 CLI 行程送最小 Prompt」:這條 PR 合併前,CLI 載入的仍是舊的已安裝副本。

前置 Push Request

  • 無
## 摘要 - 需求描述:盤點所有技能組,整理出所有技能的行為清單作為技能驗證的參考基準,日後技能異動都要同步更新;相依技能版本不符時不得跳過更新,改為阻擋執行。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `tools/check-behaviors.sh` | 新增。比對 `skills/` 與 `references/behaviors.md`,把清單一致性檢查放到程式層 | | `references/behaviors.md` | 新增。7 支技能的行為清單 | | `references/guidelines.md` | 四處:相依版本第 5 條改成部署端只回報、版本前置檢查補相依三列、新增「技能行為清單」一節、審核檢查清單加一項 | | `skills/skill-new`、`skill-update`、`skill-delete`、`skillset-update` 的 SKILL.md | 加入同步行為清單的步驟與退出碼分流 | | `skills/skill-check/SKILL.md` | `check-behaviors.sh` 併進第一組稽核 | | `README.md` | 補上兩個新檔的說明 | | 三份 manifest | 版本同步到 0.2.4 | ## 設計重點 - 行為清單放在各 domain 而不是集中在 `jsc-meta`:技能改動與清單在同一個 PR 才不會漂移,也不用跨 repo 開兩條 PR 互卡。 - 一致性檢查工具化而非寫在內文:寫在內文的規則模型可以無視,清單會靜默過期。 - domain 名以 `plugin.json` 的 `name` 為準,checkout 目錄名只是退路。目錄名是誰 clone 誰決定的,拿它當唯一來源會在別人的工作區誤報。 - 相依版本阻擋的準則記載改成由 `version-guard.sh` 自己實作,不再寫成「只認 `check-requires.sh`」——原文指向一個不存在的呼叫。 ## 測試結果 - `check-behaviors.sh` 的 0、1、2、3 逐一實測,與檔頭宣告相符;對 10 個 domain 全部退出 0,34 節對上 34 支技能。 - 換一個目錄名重測仍退出 0,證實 domain 名讀的是 `plugin.json`。 - `lint-scripts.sh` 退出 0(12 支);`ste100-lint.sh` 退出 0。 - `list-skills.sh` 印出 34 支技能,`skill-check` 的 description 已含 `check-behaviors.sh`。 - 未跑「開新 CLI 行程送最小 Prompt」:這條 PR 合併前,CLI 載入的仍是舊的已安裝副本。 ## 前置 Push Request - 無
jiantw83 added 5 commits 2026-08-31 08:14:09 +00:00
What:新增 references/behaviors.md,一支技能一節,共七支技能。每節五列,記下觸發時機、關鍵步驟、外部呼叫、完成條件、可驗證跡象。新增 tools/check-behaviors.sh,比對 skills/ 與這份清單。skill-new、skill-update、skill-delete、skillset-update 加上同步更新清單的步驟。skill-check 把這支腳本併進第一組稽核。

Why:技能驗證原本沒有基準,稽核只能靠眼睛比對 SKILL.md。十個 domain 每輪都要重做一遍,還會漏掉。行為清單當基準,技能改了、清單沒跟著改,就是漂移。漂移交給程式判定才穩。

How:腳本檢查節數、節名、節序、每節一張表、五個欄位齊全、內容欄非空。退出碼 0 代表相符,1 代表不符,2 代表用法錯誤,3 代表找不到清單或找不到 skills 目錄。domain 名以 plugin.json 的 name 為準,checkout 目錄名只是退路。四支異動技能在同一個 PR 內改清單,並照退出碼分流。

Who:屬於「技能行為清單」這件需求,提供技能驗證的參考基準。
What:「Manifest 相依版本」第 5 條改成部署端照樣更新,只在回報裡寫明缺哪一版。「版本前置檢查」補上相依版本檢查三列。新增「技能行為清單」一節,訂出位置、標題、節、表格、欄位與更新時機。審核檢查清單加上行為清單這一項。README 補上 behaviors.md 與 check-behaviors.sh 兩列,並把 skill-check 段落改成三組腳本。

Why:跳過更新會讓落後的 domain 永遠更新不到。它落後所以被跳過,被跳過所以永遠落後。相依版本不符要擋的是拿舊版去跑,不是把舊版換成新版。阻擋改到技能被呼叫的當下,才擋得住真正會出事的動作。行為清單要有一份格式合約,check-behaviors.sh 才有判定依據。

How:阻擋交給 jsc-hooks/hooks/version-guard.sh。版本比對由它自己實作,不呼叫 jsc-cli/tools/check-requires.sh。hook 專屬存放於 jsc-hooks,而且 jsc-cli 已宣告相依 jsc-hooks,反向呼叫會做出循環相依。兩道檢查共用同一份豁免清單。行為清單一個 domain 一份,放進該 domain 的 references/behaviors.md,技能改動與清單改動才進得了同一個 PR。

Who:涵蓋這次兩件需求的準則與說明文件,一件是相依版本不符改為阻擋執行,一件是技能行為清單。
What:plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 的 version 從 0.2.3 提升到 0.2.4。

Why:這次新增了行為清單與檢查腳本,也改了五支技能的內文。版本不提升,version-guard.sh 就比不出遠端已經有新版,部署端也拿不到更新提示。

How:三份 manifest 只改 version 一個欄位,三份的值保持一致,其餘欄位原樣保留。

Who:收尾這次技能行為清單與相依版本阻擋兩件需求,對應審核檢查清單的 manifest 同步項。
admin approved these changes 2026-08-31 08:19:02 +00:00
admin merged commit 76c1232302 into master 2026-08-31 08:19:04 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/meta#49