A Claude Code skill that rewrites Traditional Chinese technical text so every reader — human or model — takes the same action from it.
把繁體中文的技術內容改寫成「只有一種讀法」的文字。適用於 agent 指令、system prompt、工具描述、錯誤訊息、SOP、需求規格、runbook 與 UI 文案。
本專案改寫自 danyuchn/asd-ste100-skill(MIT),該 skill 把航太業的 ASD-STE100 簡化技術英文標準,轉用於處理 agent 之間傳遞的英文訊息。
核心洞察來自那份專案:受控語言之所以存在,是因為讀者沒有辦法回頭問作者「你是指 X 還是 Y」——飛機維修技師是如此,解析另一個 agent 輸出的模型也是如此。
但這不是翻譯。 中文的歧義來源跟英文不同:英文靠時態與語態製造模糊,中文靠省略主詞、「的」字堆疊、量詞與範圍不明的連接詞。ASD-STE100 的規則(避免現在完成式、限制被動語態)多數在中文裡沒有對應物。因此本專案的判準是為繁體中文重新寫的原創規範,只借用受控語言的設計精神與 repo 結構。
同樣地,本專案不是 ASD-STE100 的中文譯本,也不是任何官方標準或認證。
中文技術文件最常見的失效不是「寫得不美」,而是兩個人讀同一句話,做出不同的動作。省略的主詞、沒有判準的「適當」與「儘快」、範圍不明的「除非」,在一般文章裡沒事,在照著執行的文件裡就是事故。
模型讀這些文字時問題更嚴重:它不會停下來問你「這裡的『它』是指哪個?」,它會猜,而且每次猜的可能不一樣。
原文(實際的 API 錯誤訊息):
系統在處理您的請求時可能發生了一些問題,這通常是因為傳入的參數不太正確,或者您的帳號權限可能不足,請稍後再試或聯繫管理員。
改寫後:
請求處理失敗。失敗原因可能是下列其中一項:
- 傳入的參數不正確。
- 您的帳號權限不足。
請檢查傳入的參數與帳號權限。問題仍未解決時,請稍後再試或聯繫管理員。
注意它沒有做的事:沒有虛構錯誤碼,沒有把「可能」改成確定的斷言,沒有發明一個重試秒數,也沒有在交付的文案裡留下待填空格——因為這段字會直接顯示給終端使用者。
三個平台載入 skill 的機制不同,各自的指令如下。裝好之後都不需要特別呼叫——描述會在你談到中文文件不清楚、模型照做卻做錯、SOP 每個人理解不一樣時自動觸發。也可以直接說「用受控技術中文處理這段」。
本 repo 同時是一個 plugin marketplace,可以直接用 /plugin 安裝(建議,之後能用 /plugin marketplace update 更新):
/plugin marketplace add bjo4/controlled-technical-chinese
/plugin install controlled-technical-chinese@controlled-technical-chinese
安裝後若提示 Run /reload-plugins to activate.,執行該指令即可。plugin 的 skill 會加上命名空間,因此顯式呼叫時是 /controlled-technical-chinese:controlled-technical-chinese;但一般不需要這樣叫,描述會自動觸發。
或者直接 clone:
git clone https://github.com/bjo4/controlled-technical-chinese.git \
~/.claude/skills/controlled-technical-chinese這種方式目錄名必須是 controlled-technical-chinese——Claude Code 用目錄名解析 skill,改名會找不到。只在單一專案使用的話,改 clone 到專案的 .claude/skills/ 底下。
想先試不安裝:
claude --plugin-dir /path/to/controlled-technical-chineseCodex 的 user scope skill 目錄是 ~/.agents/skills:
git clone https://github.com/bjo4/controlled-technical-chinese.git \
~/.agents/skills/controlled-technical-chinese專案層級則放在 repo 的 .agents/skills/ 底下。本專案已包含 Codex 需要的 agents/openai.yaml 介面定義,不需額外設定。
Cursor 沒有原生的 skill 載入機制,改用 Project Rules。把 repo clone 進專案,再建立一個指向它的規則檔:
git clone https://github.com/bjo4/controlled-technical-chinese.git \
.cursor/controlled-technical-chinese
mkdir -p .cursor/rules
cat > .cursor/rules/controlled-technical-chinese.mdc <<'EOF'
---
description: 繁體中文技術文件的受控語言改寫。當中文的 SOP、agent 指令、工具描述、錯誤訊息、需求規格出現「每個人理解不一樣」「照著做卻做錯」「模型跳步驟」時使用。不用於純翻譯、簡繁轉換、錯字校對或文案潤飾。
alwaysApply: false
---
處理繁體中文技術文件時,先讀取並遵循
`.cursor/controlled-technical-chinese/SKILL.md`。
需要完整判準時讀 `references/writing-rules.md`,
需要校準輸出粒度時讀 `references/examples.md`。
EOFCursor 只認 .cursor/rules/ 底下的 .mdc 檔,純 .md 會被忽略。description 是 Cursor 判斷何時套用規則的依據,寫法跟 skill 的 description 同理。
也可以改用 AGENTS.md(Cursor 支援,放在專案根目錄或子目錄),在裡面加一段指向 clone 下來的 SKILL.md。
| 模式 | 什麼時候用 | 產出 |
|---|---|---|
| 檢查並改寫 | 預設 | 風險摘要 + 修訂表 + 完整定稿 + 待確認事項 |
| 直接改寫 | 你說「只給結果」「不要解釋」 | 只有乾淨定稿 |
| 起草 | 從零寫新文件 | 直接產出受控技術中文 |
| 稽核 | 你說「先不要改」 | 依嚴重度排序的問題清單 |
修訂表依 阻斷 / 誤讀 / 一致性 三級排序,而嚴重度由後果決定、不由缺陷類型決定:判斷方式是「想像兩個讀者各自照這段文字動手,動作會不會不同」。
- 不虛構。缺少的門檻、時限、工具名稱、狀態值清單一律標為待確認,不會替你填。也不會引用原文沒提到的規則或文件——「依變更管理流程辦理」在那份流程不存在時,是最難被發現的一種虛構。
- 不把定稿變成待填表格。標記只用在「不問就會做錯」的真歧義上。使用者可見的文案(錯誤訊息、UI 字串、通知)的定稿完全不含標記。
- 不改變規範強度。原文的「可以」不會被升級成「必須」。
- 不動法條、契約與引文。原文保留,另附標示為非正式的清楚版本。
- 不做純翻譯、簡繁轉換、錯字校對、語氣調整或文案潤飾。那些是別的工作。
.claude-plugin/ Claude Code plugin 與 marketplace manifest
SKILL.md 工作流程、輸出格式、編修界線
references/writing-rules.md 完整判準(術語、句構、條件邏輯、規範強度、保真界線)
references/examples.md 改寫案例,用來校準粒度
evals/evals.json 回歸測試:4 個案例、51 條驗證條件
agents/openai.yaml 其他 agent 平台的介面定義
evals/ 不會被打包進發佈用的 .skill 檔,只用於開發時驗證改動有沒有造成退步。
這個 skill 用 skill-creator 的評測流程迭代了四輪,每一輪都跟前一版做對照測試。實際修掉的問題包括:定稿被待確認標記淹沒到無法使用、稽核報告長到沒人讀得完、引用不存在的文件、嚴重度分級與後果脫節。
改動 SKILL.md 之後,建議用 evals/evals.json 重跑一次,確認既有行為沒有退步。
這是一套語言規範,不是領域檢查清單。它會指出「定期觀察一段時間」沒有判準,但不會提醒你「備份時點到故障時點之間的資料會遺失」——後者是維運領域知識,不在範圍內。
產出不應被宣稱符合任何產業規範或認證,理由見上方「源起」。
MIT — 見 LICENSE。
改寫自 danyuchn/asd-ste100-skill(MIT, © danyuchn)。