feat(lang-guard): 新增第七支 hook,強制非程式碼輸出繁中無亂碼
What:新增 `hooks/lang-guard.sh` 與機檢字表 `hooks/simplified.txt`。腳本比照 `comment-scope.sh` 的結構,一樣三種模式:`prompt` 注入規則摘要、無參數掃剛寫入的單一檔案、`sweep [dir]` 掃整個 git 工作區這次改過的檔案。偵測三項:簡體字、亂碼(U+FFFD 與雙重編碼殘骸)、非 UTF-8 編碼。命中走 stderr 並 exit 2,資料不足或找不到 git 一律安靜 exit 0,逃生門 `JSC_LANG_GUARD=off`。 Why:使用者新增的規則是「非程式碼的輸出一律套用繁中無亂碼」,範圍涵蓋程式碼註解、commit 訊息、PR 描述、wiki 頁、對使用者的回報與各種文件。這條規則原本只有 `ste100-guard.sh` 的提示層,模型看得到卻沒有人檢查,寫出簡體字或亂碼不會有任何回饋。提示層擋不住的事,就要有機檢層。 How:簡體字樣式由字表組出,字表是單一真實來源,腳本裡不留第二份;字表讀不到就安靜跳過這一項,不中斷整支腳本。亂碼一律用位元組比對(`LC_ALL=C`),不靠語系的字元範圍,因為 `grep -E` 的字元範圍在不同語系下行為不一致。掃描深度沿用 `comment-scope.sh`:檔案已追蹤就只掃 `git diff HEAD` 的新增行,不翻舊帳。二進位檔只認 NUL 位元組判定,不拿「非可列印字元」當判準,那會把所有含中文的檔案誤判成二進位。字表刻意排除繁體也在用的字(后、台、干、只、里、面、制、志),並跳過 `simplified.txt`、`ste100-guard.sh`、`lang-guard.sh` 三份以簡體字與亂碼為討論對象的檔案,避免整支 hook 每次先抓到自己。 Who:`jsc-hooks` 的 hook 實作層,供 `hooks/hooks.json` 與 `tools/wire-cli.sh` 接線給五個 CLI 使用。
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
# simplified.txt — 機檢用的簡體字表,一行一個字,UTF-8。
|
||||
# 用途:hooks/lang-guard.sh 讀這份字表組出 grep 樣式,判定非程式碼輸出有沒有夾帶簡體字。
|
||||
# 這是本存取庫的單一真實來源,jsc-meta 的 tools/ste100-lint.sh 也優先讀這份。
|
||||
# 排除原則:只收簡化後才出現的字形,刻意排除繁體也在用的字(后、台、干、只、里、面、制、志)。
|
||||
# 加進那些字會讓「太后」「電視台」「干涉」「只有」「公里」「面板」「制度」「志工」全部誤報。
|
||||
# 增刪字元前先想清楚:這份字表寧可漏抓,也不可誤報。
|
||||
# `#` 開頭的行與空行由讀取端忽略。
|
||||
应
|
||||
为
|
||||
这
|
||||
说
|
||||
发
|
||||
国
|
||||
过
|
||||
对
|
||||
开
|
||||
关
|
||||
问
|
||||
题
|
||||
东
|
||||
车
|
||||
马
|
||||
鸟
|
||||
龙
|
||||
飞
|
||||
见
|
||||
无
|
||||
产
|
||||
业
|
||||
务
|
||||
书
|
||||
写
|
||||
学
|
||||
习
|
||||
报
|
||||
纸
|
||||
认
|
||||
识
|
||||
证
|
||||
际
|
||||
网
|
||||
络
|
||||
计
|
||||
划
|
||||
实
|
||||
现
|
||||
给
|
||||
条
|
||||
约
|
||||
级
|
||||
组
|
||||
织
|
||||
变
|
||||
换
|
||||
电
|
||||
脑
|
||||
两
|
||||
双
|
||||
单
|
||||
构
|
||||
价
|
||||
钱
|
||||
众
|
||||
议
|
||||
论
|
||||
传
|
||||
统
|
||||
么
|
||||
儿
|
||||
们
|
||||
从
|
||||
来
|
||||
时
|
||||
间
|
||||
长
|
||||
门
|
||||
闻
|
||||
声
|
||||
员
|
||||
图
|
||||
团
|
||||
转
|
||||
输
|
||||
达
|
||||
运
|
||||
进
|
||||
远
|
||||
连
|
||||
边
|
||||
还
|
||||
经
|
||||
该
|
||||
营
|
||||
规
|
||||
则
|
||||
范
|
||||
围
|
||||
参
|
||||
数
|
||||
类
|
||||
结
|
||||
态
|
||||
设
|
||||
备
|
||||
辑
|
||||
译
|
||||
码
|
||||
库
|
||||
档
|
||||
Reference in New Issue
Block a user