feat/skillset-governance/main
develop
jsc-meta
jsc-gitea:wiki
SKILLSET
JSC_WIKI_REPO_SKILLSET
gitea.sh wiki-repo SKILLSET
unknown wiki type
knowledges/QUESTION
QUESTION_FB8DF0B5
tools/gitea.sh
resolve_wiki_repo
skills/wiki/SKILL.md
tools/check-wiki-rules.sh
TYPES
README.md
wiki-repo
plugin.json
.claude-plugin/plugin.json
.codex-plugin/plugin.json
JSC_WIKI_REPO
decoys()
JSC_WIKI_REPO_{TYPE}
decoy/{類型}
SKILLSET_{HASH}
{HASH}
{owner}/{repo}
H
tools/hash-id
tools/ste100-lint.sh
tools/gitea.sh wiki-repo SKILLSET
OK
wiki-put
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` 外掛的套件描述檔。
Reviewed-on: #25
No dependencies set.
The note is not visible to the blocked user.
PR 描述
摘要
jsc-meta四支異動技能產出,落地路徑必經jsc-gitea:wiki,所以本存取庫要先認得SKILLSET這個頁型:允許清單、專用環境變數JSC_WIKI_REPO_SKILLSET與頁型驗證都要放行它,否則gitea.sh wiki-repo SKILLSET會回unknown wiki type而 exit 2,報告一行都寫不進去。決策紀錄在 wikiknowledges/QUESTION的QUESTION_FB8DF0B5(2026-08-27 兩節共 12 題)。本 PR 是主幹feat/skillset-governance/main併回develop的釋出 PR,內容為已合併的子功能 PR #25。變更內容
tools/gitea.shresolve_wiki_repo的允許清單加上SKILLSET,用法註解同步。不加就是 exit 2,報告寫不進去skills/wiki/SKILL.mdSKILLSET;description 的呼叫端清單補上jsc-meta寫 SKILLSET 頁tools/check-wiki-rules.shTYPES加上SKILLSET,讓專用變數優先、退回共用變數、不得跨類型代用三項驗證自動涵蓋新頁型。註解裡的「十一種」、「其他八個類型」改成不綁數量的說法README.mdwiki-repo的用法列與環境變數表補上SKILLSET,並另立一列說明JSC_WIKI_REPO_SKILLSET的雜湊來源plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json設計重點
JSC_WIKI_REPO_SKILLSET優先、再退回JSC_WIKI_REPO、不得跨類型代用,與其他頁型完全一致。新頁型不該帶進新的例外,否則每加一種頁型就要記一條特例。TYPES列的每一種頁面類型」與「其餘每一個類型」之後,下次加頁型只要動TYPES一行。這正是本批同時加進jsc-meta稽核清單的流程檢查第 1 項要抓的——文件裡的數字與清單指得到實際內容。decoys()會把除受測類型以外的每一個JSC_WIKI_REPO_{TYPE}都設成decoy/{類型},跨類型代用一旦發生,回傳的就是誘餌值。SKILLSET進了TYPES就自動成為別人的誘餌、也自動被別人當誘餌,兩個方向都驗到。SKILLSET_{HASH}的{HASH}取自 domain 存取庫的{owner}/{repo},算法與 8 碼、H前綴規則完全相同,由同一支tools/hash-id產生,本存取庫不需要為它另寫算法。jsc-meta的準則裡;本存取庫只提供讀寫入口,不管內容編排。測試結果
tools/ste100-lint.sh掃本存取庫全綠。plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json)版本一致,皆為 0.1.6。tools/gitea.sh wiki-repo SKILLSET四種情境實測:只設JSC_WIKI_REPO_SKILLSET時回專用值、只設JSC_WIKI_REPO時回共用值、兩者都設時專用值優先、兩者都未設時 exit 3。tools/check-wiki-rules.sh全數通過並印OK(exit 0),十二種頁型每種三項,含SKILLSET的專用變數優先、退回共用變數、不得跨類型代用。SKILLSET_{HASH}頁面並回讀的端到端流程沒跑過。本批驗到的是頁型解析與規則驗證這一層,wiki-put對這個新頁型的行為與其他頁型共用同一段程式碼,未另外實測。前置 Push Request
jsc-meta的SKILLSET_{HASH}報告要靠本存取庫的允許清單才寫得進去,因此 meta 那支釋出 PR 依賴本 PR,本 PR 自己沒有前置。子功能 PR #25 已合併進主幹feat/skillset-governance/main,本 PR 只是把主幹併回develop,沒有未結清的前置 PR。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:`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 位置的操作者。