feat(gitea): 支援 SKILLSET 頁面類型 #25

Merged
admin merged 4 commits from feat/skillset-governance/wiki-skillset-type into feat/skillset-governance/main 2026-08-27 08:38:57 +00:00
Member

feat(gitea): 支援 SKILLSET 頁面類型

摘要

  • 需求描述:使用者 15 條規則第三群「技能組治理」的 R13 在 jsc-gitea 的落地。新增 SKILLSET 頁型(SKILLSET_CONTENTS、SKILLSET_{HASH},雜湊來源為被改動的 domain 存取庫 {owner}/{repo},頁內累積歷次異動),讓 jsc-meta 四支異動技能的收尾報告寫得進去;一併補齊先前漏列的 CHECK 與 REPORT。決策紀錄在 wiki knowledges/QUESTION 的 QUESTION_FB8DF0B5。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
tools/gitea.sh wiki-repo 的允許清單沒有 SKILLSET 就直接 exit 2,異動報告一個字也寫不進去。resolve_wiki_repo() 的 case 與用法註解加上 SKILLSET
skills/wiki/SKILL.md 所有 wiki 讀寫都走這一支技能。第 2 步的允許頁型補上 SKILLSET,並補齊腳本早就支援、技能卻漏列的 CHECK 與 REPORT;description 的呼叫端清單補上 jsc-meta
tools/check-wiki-rules.sh 驗證清單沒跟上,新頁型的三項判定就一次都沒驗到。TYPES 加 SKILLSET,註解裡寫死的類型數量改成指向 TYPES
README.md 類型清單停在九種,CHECK 與 REPORT 支援了卻沒補。清單補到十二種,環境變數表新增 JSC_WIKI_REPO_SKILLSET 一列
plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 行為變更要升版,各 CLI 才知道要更新;0.1.5 升到 0.1.6,三份同版號

設計重點

  • 只加類型名,解析規則一律不動。 JSC_WIKI_REPO_SKILLSET 優先,未設定才退回 JSC_WIKI_REPO,不做跨類型代用,兩個都沒有仍是 exit 3 交回技能問使用者。
  • SKILLSET 不需要雜湊特例。 雜湊來源就是被改動的 domain 存取庫 {owner}/{repo},走的是同一支 hash-id。CHECK 那種「主機加登入帳號」的例外才需要另外寫規則。
  • 註解不再寫死類型數量。 check-wiki-rules.sh 原本寫「涵蓋全部十一種頁面類型」與「其他八個類型的誘餌值」,每加一種頁型就要記得改兩個數字,忘了改註解就開始騙人;加 CHECK 與 REPORT 那次就已經漏過一個。改成指向 TYPES 這個變數後,日後加頁型只要改一個地方。
  • 三項判定自動涵蓋。 專用變數優先、退回共用變數、不得跨類型代用三項與誘餌值都是照 TYPES 展開的,加進清單就自動涵蓋,不必另外寫測項。
  • 順手補齊漏列的兩種頁型。 CHECK 與 REPORT 在腳本裡早就合法,技能與 README 卻沒補。照技能寫的走會以為那兩種頁型不合法,屬於準則流程檢查第 1 項「指標指得到」的同一類問題,一併修掉。

測試結果

  • tools/ste100-lint.sh 對本存取庫全綠;三份 manifest 版本一致為 0.1.6。
  • tools/check-wiki-rules.sh:十二種頁型每種三項全部通過,印出 OK 並 exit 0。
  • gitea.sh wiki-repo SKILLSET 逐項實測:專用變數 JSC_WIKI_REPO_SKILLSET 優先、未設定時退回 JSC_WIKI_REPO、其餘類型的誘餌值不被代用(exit 3)、假頁型仍以 exit 2 被拒。
  • 四個 domain(meta、cli、hooks、gitea)的 ste100-lint.sh 全綠,三份 manifest 版本各自一致。

前置 Push Request

  • 無
# feat(gitea): 支援 SKILLSET 頁面類型 ## 摘要 - 需求描述:使用者 15 條規則第三群「技能組治理」的 R13 在 `jsc-gitea` 的落地。新增 `SKILLSET` 頁型(`SKILLSET_CONTENTS`、`SKILLSET_{HASH}`,雜湊來源為被改動的 domain 存取庫 `{owner}/{repo}`,頁內累積歷次異動),讓 `jsc-meta` 四支異動技能的收尾報告寫得進去;一併補齊先前漏列的 `CHECK` 與 `REPORT`。決策紀錄在 wiki `knowledges/QUESTION` 的 `QUESTION_FB8DF0B5`。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `tools/gitea.sh` | `wiki-repo` 的允許清單沒有 `SKILLSET` 就直接 exit 2,異動報告一個字也寫不進去。`resolve_wiki_repo()` 的 `case` 與用法註解加上 `SKILLSET` | | `skills/wiki/SKILL.md` | 所有 wiki 讀寫都走這一支技能。第 2 步的允許頁型補上 `SKILLSET`,並補齊腳本早就支援、技能卻漏列的 `CHECK` 與 `REPORT`;`description` 的呼叫端清單補上 `jsc-meta` | | `tools/check-wiki-rules.sh` | 驗證清單沒跟上,新頁型的三項判定就一次都沒驗到。`TYPES` 加 `SKILLSET`,註解裡寫死的類型數量改成指向 `TYPES` | | `README.md` | 類型清單停在九種,`CHECK` 與 `REPORT` 支援了卻沒補。清單補到十二種,環境變數表新增 `JSC_WIKI_REPO_SKILLSET` 一列 | | `plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` | 行為變更要升版,各 CLI 才知道要更新;0.1.5 升到 0.1.6,三份同版號 | ## 設計重點 - **只加類型名,解析規則一律不動。** `JSC_WIKI_REPO_SKILLSET` 優先,未設定才退回 `JSC_WIKI_REPO`,不做跨類型代用,兩個都沒有仍是 exit 3 交回技能問使用者。 - **`SKILLSET` 不需要雜湊特例。** 雜湊來源就是被改動的 domain 存取庫 `{owner}/{repo}`,走的是同一支 `hash-id`。`CHECK` 那種「主機加登入帳號」的例外才需要另外寫規則。 - **註解不再寫死類型數量。** `check-wiki-rules.sh` 原本寫「涵蓋全部十一種頁面類型」與「其他八個類型的誘餌值」,每加一種頁型就要記得改兩個數字,忘了改註解就開始騙人;加 `CHECK` 與 `REPORT` 那次就已經漏過一個。改成指向 `TYPES` 這個變數後,日後加頁型只要改一個地方。 - **三項判定自動涵蓋。** 專用變數優先、退回共用變數、不得跨類型代用三項與誘餌值都是照 `TYPES` 展開的,加進清單就自動涵蓋,不必另外寫測項。 - **順手補齊漏列的兩種頁型。** `CHECK` 與 `REPORT` 在腳本裡早就合法,技能與 README 卻沒補。照技能寫的走會以為那兩種頁型不合法,屬於準則流程檢查第 1 項「指標指得到」的同一類問題,一併修掉。 ## 測試結果 - `tools/ste100-lint.sh` 對本存取庫全綠;三份 manifest 版本一致為 0.1.6。 - `tools/check-wiki-rules.sh`:十二種頁型每種三項全部通過,印出 `OK` 並 exit 0。 - `gitea.sh wiki-repo SKILLSET` 逐項實測:專用變數 `JSC_WIKI_REPO_SKILLSET` 優先、未設定時退回 `JSC_WIKI_REPO`、其餘類型的誘餌值不被代用(exit 3)、假頁型仍以 exit 2 被拒。 - 四個 domain(meta、cli、hooks、gitea)的 `ste100-lint.sh` 全綠,三份 manifest 版本各自一致。 ## 前置 Push Request - 無
jiantw83 added 4 commits 2026-08-27 08:34:29 +00:00
What:`tools/gitea.sh` 的 `resolve_wiki_repo()` 允許清單加入 `SKILLSET`,`wiki-repo` 的用法註解同步。`skills/wiki/SKILL.md` 第 2 步的允許頁型補上 `SKILLSET`,同時補上先前漏列的 `CHECK` 與 `REPORT`;`description` 的呼叫端清單補上「`jsc-meta` 的 `SKILLSET` 頁」。

Why:`jsc-meta` 的四支異動技能收尾要把驗證結果寫進 `SKILLSET_{HASH}`,而所有 wiki 讀寫都走這一支技能與這一支腳本。頁型不在允許清單裡,`wiki-repo` 會直接 exit 2,報告一個字也寫不進去。`CHECK` 與 `REPORT` 是另一件事:腳本早就支援,技能的允許清單卻沒補,照技能寫的走會以為那兩種頁型不合法。

How:只加類型名,解析規則不動——`JSC_WIKI_REPO_SKILLSET` 優先,未設定才退回 `JSC_WIKI_REPO`,不做跨類型代用,兩個都沒有仍是 exit 3 交回技能問使用者。雜湊來源是被改動的 domain 存取庫 `{owner}/{repo}`,用的是同一支 `hash-id`,所以這裡不必為它多寫一條特例(`CHECK` 那種主機加帳號的例外才需要)。

Who:`jsc-gitea:wiki` 技能與 `jsc-meta` 四支異動技能的異動報告寫入路徑。
What:`tools/check-wiki-rules.sh` 的 `TYPES` 加入 `SKILLSET`,檔頭的「涵蓋全部十一種頁面類型」改成「涵蓋 `TYPES` 列的每一種頁面類型」,誘餌值那段註解的「其他八個類型」改成「其餘每一個類型」。

Why:驗證清單沒跟上,新頁型的三項判定(專用變數優先、退回共用變數、不得跨類型代用)就一次都沒驗到。註解裡寫死數字更麻煩:每加一種頁型就要記得改兩個數字,忘了改註解就開始騙人——事實上加 `CHECK` 與 `REPORT` 那次就已經漏了一個。

How:只加 `TYPES` 一個字串,三項判定與誘餌值都是照 `TYPES` 展開的,加進去就自動涵蓋,不必另外寫測項。註解一律改成指向 `TYPES` 這個變數,不再寫死數量,日後加頁型只要改一個地方。

Who:`jsc-gitea` 的 wiki 頁型解析驗證,以及日後新增頁面類型的人。
What:`README.md` 兩處增修。`wiki-repo` 的用法說明把允許的 `TYPE` 清單補到十二種(加上 `CHECK`、`REPORT`、`SKILLSET`);環境變數表新增 `JSC_WIKI_REPO_SKILLSET` 一列,寫明對應 `SKILLSET_CONTENTS`、`SKILLSET_{HASH}`(技能組異動報告)與雜湊來源 `{owner}/{repo}`。

Why:README 的類型清單停在九種,`CHECK` 與 `REPORT` 支援了卻沒補上。照 README 設定環境變數的人會以為這幾種頁型沒有專用變數,只能全塞進共用的 `JSC_WIKI_REPO`。

How:`SKILLSET` 單獨列一列而不是併進 `JSC_WIKI_REPO_{TYPE}` 那一行,因為它要多寫雜湊來源;`JSC_WIKI_REPO_{TYPE}` 那一行只補清單,退回規則不動,兩列都保留「不做跨類型代用」這句。

Who:讀 `jsc-gitea` 說明設定 wiki 位置的操作者。
What:`plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` 的 `version` 由 0.1.5 改為 0.1.6。

Why:本次 `wiki-repo` 多支援一種頁面類型,`wiki` 技能的允許頁型也跟著補齊,屬於行為變更,版本要跟著往上走,各 CLI 才知道要更新。

How:三份只改 `version` 一個欄位,其餘內容不動,三份保持同一版號。

Who:`jsc-gitea` 外掛的套件描述檔。
admin merged commit a5b5d7362c into feat/skillset-governance/main 2026-08-27 08:38:57 +00:00
admin deleted branch feat/skillset-governance/wiki-skillset-type 2026-08-27 08:38:57 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Reference: plugins/gitea#25