diff --git a/README.md b/README.md index 7158c5b..8b08348 100644 --- a/README.md +++ b/README.md @@ -36,11 +36,13 @@ Marketplace 統一為 `jsc`(https://gitea.jsc.idv.tw/plugins/jsc.git),安 -## 參考 +## 參考與工具 | 檔案 | 用途 | | --- | --- | | `references/guidelines.md` | 技能準則唯一來源,所有 domain 的 AGENTS.md 都指向這裡 | +| `references/ste100.md` | STE100 擬人台灣感語言規則唯一來源(改寫自 speak-human-tw,MIT) | +| `tools/ste100-lint.sh` | 語言規則的機檢工具:中國用語、中文句內半形標點、AI 套話;命中 exit 1 | ## 相關 domain diff --git a/references/ste100.md b/references/ste100.md index af9eb1a..7450219 100644 --- a/references/ste100.md +++ b/references/ste100.md @@ -57,4 +57,8 @@ jsc 技能組所有交談與文件的語言規則,唯一來源在這裡。基 ## 保護清單(原封不動) -指令與程式碼、檔案路徑、URL、專有名詞、版本號、wiki 頁名、範本欄位名、SKILL.md frontmatter 的英文 description、引號內原話。 +指令與程式碼、檔案路徑、URL、專有名詞、版本號、wiki 頁名、範本欄位名、SKILL.md frontmatter 的英文 description、引號內原話。被討論的詞也放行:本檔替換表左欄就是例子。 + +## 機檢 + +可機檢的部分(中國用語、中文句內半形標點、AI 套話)用 `tools/ste100-lint.sh ` 檢查,命中 exit 1。掃描時跳過本檔(規則文件裡的詞是被討論,不是被使用);語感與翻譯腔仍要人工判讀。 diff --git a/tools/ste100-lint.sh b/tools/ste100-lint.sh new file mode 100755 index 0000000..8ecc9f2 --- /dev/null +++ b/tools/ste100-lint.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env sh +# ste100-lint.sh — 檢查檔案是否違反 STE100 擬人台灣感規則(可機檢的部分)。 +# 用法: ste100-lint.sh [...] +# 檢查項目: +# 1. 中國用語(references/ste100.md 的替換表左欄) +# 2. 中文句內的半形標點(, ; ! ? 緊鄰中日韓字元) +# 3. 常見 AI 套話(總的來說、綜上所述、希望這對你有幫助 等) +# 輸出: {檔案}:{行號}:{類別}:{命中內容};全部通過 exit 0,有命中 exit 1。 +# 限制: 只掃 .md 檔;程式碼圍欄內的內容可能誤報,人工複核。 +set -u +TERMS='默認|支持某|兼容|信息|數據庫|服務器|軟件|硬件|網絡|質量|卸載|反饋|視頻|屏幕|鼠標|打印|立馬|靠譜|賦能|閉環|抓手|復盤' +CLICHES='總的來說|綜上所述|希望這對你有幫助|好問題|在當今|瞬息萬變|標誌著|奠定了基礎|體現了|不僅僅是|讓我們一起' +hit=0 +files() { + for p in "$@"; do + if [ -d "$p" ]; then find "$p" -name '*.md' -not -path '*/.git/*'; else echo "$p"; fi + done +} +check() { # $1=檔案 $2=類別 $3=grep 模式 $4=grep 旗標 + out=$(grep -n"$4" "$3" "$1" 2>/dev/null | sed "s|^|$1:|;s|:\([0-9]*\):|:\1:$2:|") + if [ -n "$out" ]; then printf '%s\n' "$out"; hit=1; fi +} +for f in $(files "$@"); do + check "$f" "中國用語" "$TERMS" E + check "$f" "半形標點" '[\x{4e00}-\x{9fff}][,;!?]|[,;][\x{4e00}-\x{9fff}]' P + check "$f" "AI 套話" "$CLICHES" E +done +exit $hit