develop
master
references/ste100.md
references/guidelines.md
tools/ste100-lint.sh
jsc-hooks
tools/sync-domains.sh
Ã
本次發佈前對 develop 樹重跑一輪,實測數據:
sh -n
jsc-meta
ste100-lint.sh
lang-guard.sh
What - `references/ste100.md` 新增「適用範圍」與「編碼」兩節,並以表格列出各類輸出是否適用。 - 「機檢」一節補上新的類別清單與文件檔、程式碼檔的分流說明。 - `references/guidelines.md`「語言」第 1 條改寫成「所有非程式碼輸出一律繁體中文、UTF-8、 無亂碼、無簡體字」,並以一行指引指回 `references/ste100.md`。 - 「審核檢查清單」新增一個可勾選項目,涵蓋非程式碼輸出的語言與編碼,且要求機檢全綠。 Why - 舊條文只講「交談與輸出內容」用 STE100 繁中,沒有把程式碼註解、commit 訊息、PR 描述、 wiki 頁這些實際會產出的東西點名,執行時容易各自解讀。 - 編碼要求原本只有基礎紀律裡的一句「UTF-8,無亂碼」,沒有說明什麼算亂碼,也沒有寫明 不得出現簡體字,機檢與人工判讀對不上。 How - 適用範圍用表格逐項標「是」或「否」,並明講程式碼識別字、關鍵字、API 名稱不受限, SKILL.md 維持整份英文。 - 編碼用表格寫要求、內容與常見違規,違規範例直接對應機檢的「亂碼」類別。 - 細節只寫在 `references/ste100.md` 一處,guidelines.md 只留摘要與指引,維持單一真實來源。 Who - 影響所有 jsc 技能的輸出與審核;撰寫技能與跑 `jsc-meta:skill-check` 的人要照新清單檢查。
What - 簡體字表改成優先讀 jsc-hooks 的 `hooks/simplified.txt`,讀不到才退回內建備援字表。 - 新增「亂碼」類別:U+FFFD 替代字元、雙重編碼的 `�`,以及 Latin-1 雙重編碼特徵。 - 掃描範圍加入程式碼檔(sh、js、ts、py、cs、java、go、rb、php、sql、yml、yaml、toml)。 - 檔頭註解補上分流理由,並把本檔自己加進跳過清單。 Why - 字表寫死在本檔,和 hook 端的守門字表各自維護,兩邊遲早不一致;真實來源只該有一份。 - 內建備援不能拿掉:jsc-hooks 不一定裝在這台機器上,單獨 clone plugins/meta 或 CI 只取 一個 repo 都會發生。缺基礎設施就讓簡體字檢查靜靜失效,會把「沒命中」變成假通過。 - 新規則要求所有非程式碼輸出無亂碼、無簡體字,程式碼註解也算,所以檢查得看得到程式碼檔。 How - `simplified_file()` 的搜尋路徑比照 `jsc-hooks/hooks/lib.sh` 的 `jsc_gitea_sh()`:先環境變數 `JSC_SIMPLIFIED_FILE`,再並排存取庫版面,最後已安裝的 plugin 快取版面取版本排序最後一份。 - 字表格式一行一個字,`#` 開頭與空行忽略,串成 grep -E 交替式。 - 分流:`.md` 與 `.json` 跑全部六項;程式碼檔只跑簡體字與亂碼。中國用語、半形標點、AI 套話、 並列斜線這四項在程式碼裡會被英文標點、路徑、URL、正規表示式大量誤報,留著只會讓人忽略輸出。 - 亂碼樣式一律用十六進位跳脫寫,本檔才不會存進真的亂碼字元自己打自己。 Who - 影響跑 `tools/ste100-lint.sh` 的人與 `jsc-meta:skill-check`、`jsc-meta:ste100-sync` 兩支技能。
What - `plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` 由 0.1.1 升到 0.1.2。 Why - STE100 規則正文與機檢工具都有變更,安裝端要靠版本號才知道該更新。 How - 跑 `sh tools/sync-skill-manifest.sh /root/plugins/meta`,三份 manifest 一起 bump, README 的「Skills 目錄」無增減。 Who - 影響安裝或更新 jsc-meta 的所有 CLI。
What:把 sync-domains.sh 檔頭註解的簡體字「脏」改成正體「髒」;ste100-lint.sh 的 skip() 新增三個檔案:jsc-hooks 的 simplified.txt、ste100-guard.sh、lang-guard.sh。 Why:「脏」是既有的簡體字,擴充字表後才驗出來,正好證明檢查有效。另外三個檔案 裡的簡體字是被列舉、被討論的對象,不是被使用;掃它們會每次都命中卻永遠改不掉, 久了就會有人乾脆把整個檢查關掉。 How:skip() 沿用既有的 case 比對,同時吃絕對路徑與純檔名兩種寫法,並在註解裡 寫明為什麼要跳過,避免後人誤以為是漏掉。 Who:STE100 語言規則的機檢工具。
Reviewed-on: #20
No dependencies set.
The note is not visible to the blocked user.
摘要
變更內容
references/ste100.mdreferences/guidelines.mdtools/ste100-lint.shjsc-hooks的共用字表(讀不到退回內建備援);新增亂碼類別;掃描範圍擴及 13 種程式碼副檔名;跳過清單補上規則實作本身tools/sync-domains.sh設計重點
jsc-hooks不一定裝在每台機器上(單獨 clone plugins/meta、CI 只取一個存取庫都會發生)。缺基礎設施就讓簡體字檢查靜靜失效,會把「沒命中」變成假通過,比不檢查更危險。Ã開頭會漏掉中文最常見的雙重編碼型態,改成「U+00C0–U+00FF 接 U+0080–U+00BF」。已驗證重音拉丁文字不誤報。測試結果
本次發佈前對 develop 樹重跑一輪,實測數據:
sh -n語法檢查所有 shell 腳本:0 錯jsc-meta的ste100-lint.sh掃整個存取庫:0 命中jsc-hooks的lang-guard.sh逐檔掃描(簡體字、亂碼、非 UTF-8):0 命中前置 Push Request