Commit Graph
22 Commits
Author SHA1 Message Date
jiantw83 5db1d8a608 docs(templates): 兩個目錄頁範本改成大標題加條列
What
- `templates/skillset-contents.md`:`SKILLSET_CONTENTS` 的版面從 markdown 表格改成一筆一個 H2 區塊,標題寫成該筆對應內容頁的實際頁名,欄位改成標題底下的一層條列。
- `templates/tooling-contents.md`:同樣轉條列,原本說明用的 `## ` 區段併進 `>` 引言,正式頁上才不會被讀成一筆假紀錄。
- `templates/skillset-page.md`、`templates/tooling-page.md`:引言補上目錄頁與內容頁的版面差別,內容頁本身維持圖表優先、不改版面。
- `README.md`:兩份目錄頁範本的說明同步改寫,兩份 `TOOLING` 範本語意相反那一段補上「版面也相反」。

Why
- 目錄頁是全部使用者共用的索引。表格一寬就得橫向捲、欄位一多就對不上表頭,而且併行寫入時只要有人少打一根豎線,整張表就散掉,別人那一筆跟著看不見。
- 條列式一筆一個區塊,寫入端只換自己那一塊,壞掉也只壞自己那一塊。
- 三個範本原本除了示範區塊之外還留著說明用的 `## ` 區段,轉條列後那種區段會在正式頁上被當成一筆紀錄讀進去。

How
- 一頁固定三段:H1 頁名、`>` 引言、然後每一筆一個 H2 區塊;區塊之間空一行,H2 與第一條之間空一行。
- 欄位在標題底下一行一條,格式 `- {欄位名}:{值}`,全形冒號,順序照原本的欄位從左到右,鍵那一欄照樣留一條。
- 寫入示例改成 `wiki-contents.sh upsert {TYPE} {鍵欄} "{內容頁頁名}" {區塊檔}`,並註明鍵欄是舊表格裡持有內容頁連結那一欄的序號、只供自動轉檔用、要照線上那一頁實際的欄位排法填。
- 頁上不留任何 markdown 表格,也不放 mermaid。

Who
- 影響照這兩個範本寫目錄頁的技能:`skill-new`、`skill-update`、`skill-delete`、`skillset-update`、`skill-check` 與 `tooling-guide`。
- 舊頁的轉檔與單一區塊 upsert 的實作不在本存取庫,本存取庫只提供範本與說明。
2026-09-02 17:21:02 +08:00
jiantw83 b87dbb12cd feat(狀態回報): 收尾寫一筆 skill-end 事件
現行紀錄只記「被叫用」,沒有成敗也沒有結束碼。跑完整輪的技能與開場就
中止的技能,在紀錄裡長得一模一樣。

start 由技能用量 hook 順手發,不必改技能文件。end 只能由技能自己在收尾
步驟寫——hook 接在技能工具呼叫上,而實際工作發生在之後的模型輪次,它在
原理上看不到成敗。有 start 沒有配對的 end,就是那一輪中止了。

status 五選一,每支技能各自寫明什麼情況選哪一個。找不到回報腳本就安靜
跳過,回報失敗一律不改變技能自己的結論。
2026-09-02 16:01:16 +08:00
jiantw83 651ddb3a6f feat(link): 連結一律寫成 [文字](絕對網址),寫入前先驗證連得到
取消 [[頁名]] 與 [[顯示文字|頁名]] 兩種同 wiki 寫法,不再分「同存取庫」與
「跨存取庫」兩條規則。那種寫法只在自己那個 wiki 內解析,寫錯不報錯,畫面上
看起來像普通文字或死連結,巡不到也修不了。

連結寫進頁面前先過 jsc-gitea 的 link-check.sh,結束碼 0 才寫。驗證一律走 API,
不看網頁狀態碼:私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判會把
好連結判成壞的。認證失敗回 7,與死連結的 1 分開,免得金鑰一過期就把還在的頁
整批判死。
2026-09-02 14:27:18 +08:00
jiantw83 f13724cb79 feat(wiki): 目錄頁專用存取庫入準則,skill-check 加入優化建議流程
What:準則的環境變數表與命名總表加入 JSC_WIKI_REPO_CONTENTS 與目錄頁專用存取庫
一節,HASH 規則改為完整 40 碼。skill-check 的 Group 3 先讀上一輪決議,建議表加上
決議與決議日期兩欄,新增步驟 8 把稽核結果寫進 SKILLSET 頁。新增 check-page-name.sh
與兩份 SKILLSET 範本。

Why:優化建議原本每輪產出後就散掉,決議為延後的項目下一輪會重新掃、重新問一次,
正是 skill-check 自己第三個面向點名的毛病。SKILLSET_CONTENTS 是 14 個目錄頁裡
唯一沒有範本的,四支技能都被要求寫它,卻沒有欄位定義可套。

How:Group 1 補進三支現成但沒人呼叫的檢查腳本——ste100-lint.sh、check-wiki-rules.sh
與新增的 check-page-name.sh。讀不到上一輪決議時只停掉 Group 3,不再中止整輪:那兩組
完全不碰 wiki,金鑰失效就會鎖死整組技能唯一的稽核路徑。另外四支 meta 技能原本把目錄頁
寫進 SKILLSET 存取庫,一併改走 CONTENTS。
2026-09-02 11:02:48 +08:00
jiantw83 4a741071e5 docs(frontmatter-lint): 同步 README 與行為清單的 frontmatter 檢查
What:
- README 的 skill-check 段落,第一組稽核補上 lint-frontmatter.sh。
- README 的工具表新增 tools/lint-frontmatter.sh 一列,寫明五項檢查、不相依 YAML 套件、四種結束碼、退出 3 不等於通過。
- references/behaviors.md 的 skill-check 表改寫四列:關鍵步驟、外部呼叫、完成條件、可驗證跡象。

Why:
- 準則要求該 domain 的 behaviors.md 與 skills/ 相符,check-behaviors.sh 才會退出 0;README 的「Skills 目錄」也要跟著改動同步。
- 文件沒跟上,稽核就查不到這支新腳本,也不知道退出 3 是什麼都沒掃。這支腳本擋的正是靜默失效,文件本身先靜默漏掉它,等於白做。

How:
- 照 skills/skill-check/SKILL.md 的新流程改寫,關鍵步驟寫明第一組平行跑腳本檢查、frontmatter 檢查、行為清單檢查與 hook smoke。
- 外部呼叫清單依實際呼叫順序插入 tools/lint-frontmatter.sh。
- 完成條件補上「frontmatter 檢查退出 3 是什麼都沒掃,不算通過」,可驗證跡象補上「每個 domain 的 lint-frontmatter.sh 退出 0」。
- 第二組留白項目由四項改五項,同步寫進關鍵步驟的合併說明。

Who:
屬 CLI hook 接線修正(jsc-hooks 0.3.4)在 meta 這一側的文件同步。
2026-08-31 19:13:03 +08:00
jiantw83 651dc19be9 docs(guidelines): 改寫相依版本準則並補上技能行為清單合約
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:涵蓋這次兩件需求的準則與說明文件,一件是相依版本不符改為阻擋執行,一件是技能行為清單。
2026-08-31 13:37:22 +08:00
jiantw83 6d28e207c7 docs(guidelines): 修正版本閘門、重啟閘門與維護頁的準則記載
版本前置檢查的豁免表只列了四項,重啟閘門的豁免表少了 hook 修復技能。
照著這兩張表設定,hook 壞掉時唯一的修復路徑會被自己擋住,修不好也繞不過。
兩張表逐項對齊三方實作與腳本現況,補成七項與十項,
並寫明各自的唯一真實來源是哪一支 hook 腳本,兩邊以後要一起改。

Wiki 頁命名總表原本替維護類型列了內容頁。
技能與樣板都沒有產生那一頁的步驟,照著總表找,只會找到一個不存在的頁。
改成只列目錄頁,並寫清楚維護登記全寫在目錄頁的表格裡;
要補內容頁就先補技能步驟與樣板,不能只在總表上寫著。

另外登記技能盤點頁的類型、環境變數與雜湊來源,說明為什麼雜湊要帶工具名稱,
補上唯讀稽核要帶唯讀旗標、行數一律讀腳本自己印的那一行兩項檢查,
並把新增的共用說明、兩份樣板與三支工具寫進 README 的檔案一覽。
2026-08-31 11:11:12 +08:00
jiantw83 0cf2392ae7 fix(skill-check): 納入腳本與 hook 驗證 2026-08-28 16:55:48 +08:00
jiantw83 c593803ed5 docs(tooling-guide): 更新 README 技能與工具目錄 2026-08-28 15:33:13 +08:00
jiantw83 b0ea356ff5 feat(meta): 建立 PR 收尾回報單一規範 2026-08-28 09:30:23 +08:00
jiantw83 fbb7004e70 fix(meta): 放寬 major 版本限制 2026-08-25 16:41:57 +08:00
jiantw83 acbbd30a0f fix(meta): 版本號改為單位數進位 2026-08-25 16:40:01 +08:00
jiantw83andClaude Opus 5 073c51e145 docs(meta): 同步文件與參考資料
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>
2026-08-25 14:58:54 +08:00
jiantw83andClaude Opus 5 98bc02578d refactor(marketplace 正本): 正本與權威來源改為 plugins/meta,移除對 plugins/jsc 的相依
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-24 18:00:35 +08:00
jiantw83 3c63989f80 fix(skill-check): 補強工具化與環境優先審核 2026-08-21 16:53:17 +00:00
jiantw83andClaude Fable 5 ef2577c011 feat(skill-check): 新增 skill-check 技能——例行稽核整個技能組是否符合準則
What(改了什麼):
- 新增 skills/skill-check/SKILL.md:六步流程——依 Gitea 正本 marketplace 同步全部 domain repo → 每個 domain 各派一個 sub agent 對照 guidelines 審核檢查清單稽核 → 不符項目逐項走 jsc-ask:ask 決策樹確認(套用建議修正/略過/自訂修正,每個選項標明影響範圍)→ 每個受影響 repo 各派一個 sub agent 套用修正(含 README「Skills 目錄」同步與三份 manifest 版本遞增)→ 複檢至全數通過 → 逐 repo 以 jsc-git:pr 開 PR。
- README.md「Skills 目錄」新增 skill-check 條目,並標明與 skillset-update 的分工:無變更需求走 skill-check,有變更需求走 skillset-update。

Why(為什麼改):
- 既有 skillset-update 以「一份變更需求」為前提;準則本身演進後,技能組缺少「無變更需求時」的例行體檢入口,不符項目只能等到下次改動才被發現。
- 稽核與修正拆成獨立技能,可排入定期維護,讓整個技能組持續符合 guidelines.md。

How(怎麼改):
- 依 guidelines.md 準則撰寫:英文 description 含觸發與不觸發時機(套用變更需求改用 skillset-update、單一技能改用 skill-update)、Gitea 操作一律走 jsc-gitea/tools/gitea.sh、提問一律走 jsc-ask:ask、需隔離的步驟標明 MUST run as a sub agent、每步標明完成條件。
- 複檢失敗時明定回到決策樹確認步驟,直到檢查清單全數通過才開 PR。

Who(影響哪個功能/使用者):
- 負責 jsc 技能組例行維護的維護者;一般技能新增、更新、刪除的使用者不受影響(仍走 skill-new/skill-update/skill-delete)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 09:25:59 +00:00
jiantw83andClaude Fable 5 30687d5eea feat(skillset-update): 新增 skillset-update 技能——一份變更需求批次套用到整個技能組
What(改了什麼):
- 新增 skills/skillset-update/SKILL.md:五步流程——決策樹確認變更範圍 → 依 Gitea 正本 marketplace 同步全部 domain repo → 每個受影響 domain 各派一個 sub agent 套用變更(含 README「Skills 目錄」同步與三份 manifest 版本遞增)→ 逐技能過 guidelines 審核檢查清單 → 每個受影響 repo 各開一個 PR。
- README.md「Skills 目錄」新增 skillset-update 條目,並同步更新 skill-update 與 skill-delete 的流程描述(marketplace 先行、補 clone、深度刪除驗證)。

Why(為什麼改):
- 既有 skill-update 一次只能改一個技能;跨多技能、多 domain 的規則變更(如共用流程步驟調整)需要逐 repo 重複操作,容易漏改。
- README 需與技能實際流程保持同步,此為 guidelines 審核檢查清單的必要項目。

How(怎麼改):
- 依 guidelines.md 準則撰寫:英文 description 含觸發與不觸發時機(單一技能改用 skill-update)、Gitea 操作一律走 jsc-gitea/tools/gitea.sh、提問一律走 jsc-ask:ask、需隔離的步驟標明 MUST run as a sub agent、每步標明完成條件。
- README 條目與各技能一節的敘述對齊 SKILL.md 的實際流程。
- 註:README.md 的三處變更位於同一個 diff hunk、無法乾淨拆分,故整檔併入本群組(本群組為最後一個觸及 README 的 feature 群組)。

Who(影響哪個功能/使用者):
- 需要對整個 jsc 技能組做橫向規則變更的維護者;單一技能更新的使用者不受影響(仍走 skill-update)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 08:23:53 +00:00
jiantw83andClaude Fable 5 526c6c2b93 feat(meta): 新增 ste100-sync 技能——同步上游 speak-human-tw 並釘住版本 v1.4.0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 14:27:39 +08:00
jiantw83andClaude Fable 5 f1f7e6163a feat(meta): 新增 tools/ste100-lint.sh 語言機檢工具並補列參考表
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 14:18:42 +08:00
jiantw83andClaude Fable 5 66fa5e4aad docs(meta): README 安裝/更新/移除改為每指令一行(五個 CLI)並為相關 domain 加上 repo 連結
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 14:03:37 +08:00
jiantw83andClaude Fable 5 b6a3ef1f26 docs(meta): 以統一格式改寫繁體中文 README 與 AGENTS
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 13:08:43 +08:00
jiantw83 d759ea9208 Initial commit 2026-08-21 04:44:34 +00:00