diff --git a/CHANGELOG.md b/CHANGELOG.md
index f783082..ca8e4aa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,9 @@
## Unreleased
-No changes yet.
+### Added
+
+- Optional Simplified/Traditional Chinese repository overviews, core user guides and limitation summaries, with reciprocal language links and an explicit source-revision/coverage note. Advanced references remain English; CLI messages, JSON fields, rule semantics and the published v0.23.0 distributions are unchanged.
## v0.23.0
diff --git a/README.md b/README.md
index 0f485fe..2de590c 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# AgentConfigScore
+English | [简体中文](https://github.com/LE0-Lin/AgentConfigScore/blob/main/README.zh-CN.md) | [繁體中文](https://github.com/LE0-Lin/AgentConfigScore/blob/main/README.zh-TW.md)
+
@@ -610,13 +612,17 @@ The Action emits outputs before returning its final regression status. Use `if:
- [x] source and installed-package gates before publication
- [x] user guide, exit-code reference and troubleshooting
- [x] versioned English core package with release notes and compatibility guidance
-- [ ] optional Simplified and Traditional Chinese documentation and README language switch
+- [x] optional Simplified and Traditional Chinese core documentation and README language switch
- [ ] optional semantic contradiction plugin
See [release readiness and the localization sequence](https://github.com/LE0-Lin/AgentConfigScore/blob/main/docs/release-readiness.md).
Semantic extensions are optional; they are not a prerequisite for the core
deterministic CI checker.
+The localized core overview, user guide and limitations are available separately;
+advanced references and research documents remain English. See the
+[translation scope and maintenance note](https://github.com/LE0-Lin/AgentConfigScore/blob/main/docs/translations.md).
+
## Development
```bash
diff --git a/README.zh-CN.md b/README.zh-CN.md
new file mode 100644
index 0000000..0dd9e42
--- /dev/null
+++ b/README.zh-CN.md
@@ -0,0 +1,112 @@
+# AgentConfigScore
+
+[English](README.md) | 简体中文 | [繁體中文](README.zh-TW.md)
+
+为 AI 编程助手的指令文件提供本地检查与 PR 回归门禁。
+
+
+
+AgentConfigScore 检查 `AGENTS.md`、`CLAUDE.md`、Cursor、Copilot、Gemini 等配置,并比较改动前后的基线,回答一个具体问题:**这次改动是否引入了已知规则能检测到的风险?**
+
+它是确定性检查器,不是 AI 评委。**A 100 只表示没有命中生效的规则,不表示指令有用、语义完美或安全无误。** 中文文档也不意味着检测器已经能够理解任意中文指令。
+
+## 快速开始
+
+需要 Python 3.10+。`diff` 还需要 Git;普通目录扫描和两个目录之间的 `compare` 不需要 Git。
+
+```bash
+python -m pip install --upgrade agent-config-score
+agent-config-score --version
+agent-config-score init
+agent-config-score doctor
+agent-config-score diff
+```
+
+在自己的仓库目录中运行。`init` 会生成 `.agentconfigscore.json` 和 `.github/workflows/agent-config-score.yml`;检查后提交这两个文件,后续 PR 即可自动检查。它不会替你编写或重写指令文件,也不会默认覆盖冲突的已有配置。
+
+`acs` 是短命令别名。v0.23.0+ 还可以使用 `python -m agent_config_score`,避免终端 PATH 没有找到命令的问题。
+
+- [简体中文使用指南](docs/zh-CN/user-guide.md):安装、基线、报告、退出码与排错。
+- [分数含义与限制](docs/zh-CN/limitations.md):先了解什么能检出、什么仍可能漏掉。
+- [完整英文文档索引](docs/README.md):进阶接口与研究资料。
+
+## 为什么采用回归检查
+
+现有仓库不必先达到 100 分才能接入。如果基线是 72 分,没有退步的改动可以通过;降低分数或引入新错误的改动则依据配置被拦截。
+
+初始化后的核心策略如下:
+
+```json
+{
+ "$schema": "https://raw.githubusercontent.com/LE0-Lin/AgentConfigScore/v0/schema/agentconfigscore.schema.json",
+ "version": 1,
+ "policy": {
+ "max_drop": 0,
+ "fail_on_new_errors": true
+ }
+}
+```
+
+比较时以**基线策略**为准:PR 不能通过放宽自己的阈值,或新增自己的豁免来批准自己。需要接受某项例外时,必须经过基线审核,填写规则 ID、原因和到期日期;被豁免的发现仍保留审计记录。
+
+普通扫描默认只报告发现,不因发现问题就自动失败。需要绝对分数门槛时显式设置:
+
+```bash
+agent-config-score . --fail-under 90
+```
+
+## 本地检查与报告
+
+```bash
+agent-config-score .
+agent-config-score rules curl-pipe-shell
+agent-config-score diff origin/main
+agent-config-score compare ../repo-base . --max-drop 0 --fail-on-new-errors
+agent-config-score . --json
+agent-config-score . --html .agent-config-score/report.html --sarif .agent-config-score/results.sarif
+```
+
+`diff` 包含未提交的工作区改动,自动基线检测不联网、不自动 fetch。找不到基线时,明确指定本地已有的默认分支引用。
+
+规则、行号和上下文比数字本身更重要。报告可能包含仓库路径和发现信息,公开分享前请检查。`feedback` 可生成隐私最小化的本地草稿,但不会上传,仍需自己审核。
+
+## 接入 GitHub Actions
+
+优先使用 `init` 生成工作流,也可以手工配置:
+
+```yaml
+name: agent-config-regression
+
+on:
+ pull_request:
+
+permissions:
+ contents: read
+
+jobs:
+ regression:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v7
+ with:
+ fetch-depth: 0
+ - uses: LE0-Lin/AgentConfigScore@v0.23.0
+```
+
+固定 `@v0.23.0` 有利于复现;`@v0` 是会随后续版本更新的滚动引用。PR 评论属于[可选集成(英文)](docs/pr-comments.md),扫描器默认不替你发评论。
+
+## 支持的指令文件
+
+包括根目录和嵌套目录的 `AGENTS.md` / `AGENTS.override.md`、`CLAUDE.md`、`GEMINI.md`、Cursor 的 `.cursorrules` / `.cursor/rules/`、Copilot 的 `.github/copilot-instructions.md` / `.github/instructions/`,以及 `.claude/`、`.clinerules`、`.windsurfrules`。可使用 `.agentconfigscoreignore` 排除发现路径。
+
+准备自己的指令文件时,可参考[复制即用模板(英文)](examples/README.md),并替换成仓库真正的命令和约束。不要为了得高分而复制空泛的“最佳实践”。
+
+## 可靠性与边界
+
+运行时没有第三方依赖;本地扫描不调用 AI API,也不执行指令文件中的命令。包安装需要访问所选软件包索引;GitHub Actions 是单独的 CI 环境,报告访问权限由你的工作流控制。
+
+跨平台测试、维护的规则用例和安装验收证明程序符合指定的工程预期,**不证明它比直接问 AI 更准,也不证明它已经有真实用户价值**。独立对照评测尚未完成,已知语义漏报仍保留。详见[限制说明](docs/zh-CN/limitations.md)与[评测资料(英文)](benchmarks/README.md)。
+
+本页是核心入门的中文概览,不是完整英文 README 的逐行翻译。使用指南和限制说明已提供中文;高级 Action 参数、规则语法细节、贡献及研究文档目前仍为英文。[翻译范围与维护说明](docs/translations.md)。命令、终端消息和 JSON 协议保持原样,English 仍是默认入口。
+
+项目采用 [MIT 协议](LICENSE)。[发布与升级说明](docs/releases/v0.23.0.md)目前为英文。
diff --git a/README.zh-TW.md b/README.zh-TW.md
new file mode 100644
index 0000000..98c6560
--- /dev/null
+++ b/README.zh-TW.md
@@ -0,0 +1,112 @@
+# AgentConfigScore
+
+[English](README.md) | [简体中文](README.zh-CN.md) | 繁體中文
+
+為 AI 程式開發助手的指令檔提供本機檢查與 PR 回歸檢查。
+
+
+
+AgentConfigScore 檢查 `AGENTS.md`、`CLAUDE.md`、Cursor、Copilot、Gemini 等設定,並與改動前的基準比較,回答一個具體問題:**這次改動是否引入了已知規則能偵測到的風險?**
+
+它是確定性的檢查工具,不是 AI 評審。**A 100 只表示沒有命中生效的規則,不代表指令實用、語意完美或完全安全。** 提供中文文件也不表示檢查工具已經能理解任意中文指令。
+
+## 快速開始
+
+需要 Python 3.10+。`diff` 另外需要 Git;一般目錄掃描和兩個目錄之間的 `compare` 不需要 Git。
+
+```bash
+python -m pip install --upgrade agent-config-score
+agent-config-score --version
+agent-config-score init
+agent-config-score doctor
+agent-config-score diff
+```
+
+請在自己的儲存庫目錄執行。`init` 會建立 `.agentconfigscore.json` 和 `.github/workflows/agent-config-score.yml`;檢查並提交這兩個檔案後,後續 PR 即可自動檢查。它不會替你撰寫或改寫指令檔,也不會預設覆寫已存在且內容衝突的設定。
+
+`acs` 是較短的命令別名。v0.23.0+ 也能使用 `python -m agent_config_score`,不必依賴終端機 PATH 找到主命令。
+
+- [繁體中文使用指南](docs/zh-TW/user-guide.md):安裝、基準、報告、結束代碼與疑難排解。
+- [分數意義與限制](docs/zh-TW/limitations.md):先了解能偵測哪些問題,以及可能遺漏什麼。
+- [完整英文文件索引](docs/README.md):進階介面與研究資料。
+
+## 為什麼使用回歸檢查
+
+既有儲存庫不必先達到 100 分才能導入。若基準為 72 分,沒有退步的改動可以通過;分數下降或引入新錯誤時,則依設定阻擋。
+
+初始化後的核心策略如下:
+
+```json
+{
+ "$schema": "https://raw.githubusercontent.com/LE0-Lin/AgentConfigScore/v0/schema/agentconfigscore.schema.json",
+ "version": 1,
+ "policy": {
+ "max_drop": 0,
+ "fail_on_new_errors": true
+ }
+}
+```
+
+比較以**基準策略**為準:PR 不能透過放寬自己的門檻,或新增自己的排除設定來核准自身。若需接受某項例外,必須經過基準審查,指定規則 ID、原因與到期日;被排除的檢查結果仍會保留稽核紀錄。
+
+一般掃描預設只回報結果,不會只因發現問題就自動失敗。需要絕對分數門檻時,請明確設定:
+
+```bash
+agent-config-score . --fail-under 90
+```
+
+## 本機檢查與報告
+
+```bash
+agent-config-score .
+agent-config-score rules curl-pipe-shell
+agent-config-score diff origin/main
+agent-config-score compare ../repo-base . --max-drop 0 --fail-on-new-errors
+agent-config-score . --json
+agent-config-score . --html .agent-config-score/report.html --sarif .agent-config-score/results.sarif
+```
+
+`diff` 包含尚未提交的工作目錄改動;自動偵測基準不連線,也不自動 fetch。找不到基準時,請明確指定本機已存在的預設分支參照。
+
+規則、行號與上下文比數字本身更重要。報告可能包含儲存庫路徑和檢查資訊,公開分享前請先檢查。`feedback` 能產生盡量減少私人資訊的本機草稿,但不會上傳,仍須自行審閱。
+
+## 整合 GitHub Actions
+
+建議用 `init` 產生工作流程,也可以手動設定:
+
+```yaml
+name: agent-config-regression
+
+on:
+ pull_request:
+
+permissions:
+ contents: read
+
+jobs:
+ regression:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v7
+ with:
+ fetch-depth: 0
+ - uses: LE0-Lin/AgentConfigScore@v0.23.0
+```
+
+固定使用 `@v0.23.0` 較容易重現;`@v0` 是會隨後續版本更新的滾動參照。PR 留言是[選用整合(英文)](docs/pr-comments.md),檢查工具預設不會替你留言。
+
+## 支援的指令檔
+
+包含根目錄與巢狀目錄的 `AGENTS.md` / `AGENTS.override.md`、`CLAUDE.md`、`GEMINI.md`、Cursor 的 `.cursorrules` / `.cursor/rules/`、Copilot 的 `.github/copilot-instructions.md` / `.github/instructions/`,以及 `.claude/`、`.clinerules`、`.windsurfrules`。可用 `.agentconfigscoreignore` 排除探索路徑。
+
+準備自己的指令檔時,可參考[可直接複製的範本(英文)](examples/README.md),再替換成儲存庫真正的命令與限制。不要為了提高分數而複製空泛的「最佳實務」。
+
+## 可靠性與界線
+
+執行時沒有第三方相依套件;本機掃描不呼叫 AI API,也不執行指令檔內的命令。安裝套件需存取選定的套件索引;GitHub Actions 是獨立的 CI 環境,報告存取權限由你的工作流程決定。
+
+跨平台測試、持續維護的規則案例與安裝驗收,證明程式符合指定的工程預期,**不代表它比直接詢問 AI 更準確,也不代表已經具備真實使用者價值**。獨立對照評測尚未完成,已知的語意漏報仍保留。請見[限制說明](docs/zh-TW/limitations.md)與[評測資料(英文)](benchmarks/README.md)。
+
+本頁是核心入門的中文概覽,不是完整英文 README 的逐行翻譯。使用指南與限制說明已提供中文;進階 Action 參數、規則語法細節、貢獻和研究文件目前仍為英文。[翻譯範圍與維護說明](docs/translations.md)。命令、終端機訊息和 JSON 協定維持原樣,English 仍為預設入口。
+
+專案採用 [MIT 授權](LICENSE)。[發布與升級說明](docs/releases/v0.23.0.md)目前為英文。
diff --git a/docs/README.md b/docs/README.md
index c9b2a35..391ac32 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,5 +1,7 @@
# Documentation
+[English](user-guide.md) | [简体中文](zh-CN/user-guide.md) | [繁體中文](zh-TW/user-guide.md)
+
Start with the [user guide](user-guide.md): install, initialize, check a change,
read the result, and troubleshoot a failing gate.
diff --git a/docs/limitations.md b/docs/limitations.md
index 0ea6876..4c45744 100644
--- a/docs/limitations.md
+++ b/docs/limitations.md
@@ -1,5 +1,7 @@
# What the score does—and does not—mean
+English | [简体中文](zh-CN/limitations.md) | [繁體中文](zh-TW/limitations.md)
+
AgentConfigScore is a deterministic linter and regression gate for persistent
coding-agent instructions. Its score measures detected, rule-defined risks. It
does not measure whether an AI agent is intelligent, whether a prompt will solve
diff --git a/docs/release-readiness.md b/docs/release-readiness.md
index 47c9cb5..92d3655 100644
--- a/docs/release-readiness.md
+++ b/docs/release-readiness.md
@@ -54,18 +54,18 @@ The release workflow is manual. Running tests or merging a readiness PR does
not create a tag or publish to PyPI. This document is a gate definition, not an
assertion that all future release steps have already been performed.
-## Next milestone: optional Chinese documentation
+## Optional Chinese documentation
-After the core package is cut, add a lightweight language switch in each README:
+After the v0.23.0 core package was cut, a documentation update adds a language switch in each README:
English (default), 简体中文 and 繁體中文. The approach follows
[Transformers' multilingual README](https://github.com/huggingface/transformers/blob/main/README.md)
without adding a documentation framework or runtime translation dependency.
-Planned files:
+Initial core documentation:
- `README.zh-CN.md` and `README.zh-TW.md`, with reciprocal language links.
-- `docs/zh-CN/` and `docs/zh-TW/` versions of the user guide, limitations and
- configuration / suppression guidance first; advanced reference pages follow.
+- `docs/zh-CN/` and `docs/zh-TW/` versions of the user guide and limitations,
+ including the core policy / exception explanations; advanced references remain English.
- A translation maintenance note recording the English source revision and
explicitly identifying untranslated pages instead of linking empty placeholders.
@@ -81,6 +81,8 @@ Rules for the translation stage:
- Do not add a CLI `--language` option until terminal-output localization is
explicitly in scope and independently tested. Documentation is the first stage.
-The translated files and language selector are planned, **not shipped yet**.
+The repository's core translated pages and selector are included in the
+documentation update, not retroactively in the immutable v0.23.0 distributions
+or tag. See [translation scope and source revision](translations.md).
Real-user feedback and independent evaluation remain separate ongoing work;
they are not replaced by localization or release acceptance.
diff --git a/docs/translations.md b/docs/translations.md
new file mode 100644
index 0000000..41689f1
--- /dev/null
+++ b/docs/translations.md
@@ -0,0 +1,41 @@
+# Optional documentation languages
+
+[English](../README.md) | [简体中文](../README.zh-CN.md) | [繁體中文](../README.zh-TW.md)
+
+English is the default repository entrypoint and package README. Choosing a
+different document language does not change CLI output, rule grammar, scores,
+configuration version, command names, JSON keys or API behavior. There is no
+runtime `--language` option. Chinese instruction semantics are not certified by
+providing Chinese documentation.
+
+## Available scope
+
+| English source | 简体中文 | 繁體中文 | Scope |
+|---|---|---|---|
+| [README](../README.md) | [Overview](../README.zh-CN.md) | [Overview](../README.zh-TW.md) | Localized core overview, not the entire long English reference |
+| [User guide](user-guide.md) | [Guide](zh-CN/user-guide.md) | [Guide](zh-TW/user-guide.md) | Core user journey, all executable examples, exit codes and troubleshooting |
+| [Limitations](limitations.md) | [Limits](zh-CN/limitations.md) | [Limits](zh-TW/limitations.md) | Core score contract, rule limits and unestablished accuracy; historic table/manual links stay in English |
+
+Advanced Action inputs/outputs, precise rule grammars, score-history integrations,
+release notes, contribution instructions and research protocols remain English.
+Localized pages identify those links as English instead of creating empty pages.
+The two Chinese variants are maintained with Simplified and Traditional regional
+wording rather than changing the program's machine-readable identifiers.
+
+## Source baseline and maintenance
+
+The first localized core pages use English source revision
+`78af3f9a470c9edab67f3d1579e8319a299bb191` (v0.23.0). The repository language
+links are a subsequent documentation update; they are not inside the immutable
+v0.23.0 PyPI distributions or v0.23.0 tag.
+
+When an English source page changes, review both variants together and record
+the new source revision here. Preserve executable examples, rule IDs and JSON
+keys verbatim. Keep the score limitations and failure/exit semantics aligned;
+do not translate a prohibition into an affirmative command. Mark any partial
+coverage clearly and retain links to the English reference.
+
+Tests verify language-link targets, guide code-block parity, identical config
+and workflow examples between variants, and English as the default package
+README. They cannot verify translation meaning or serve as independent human
+review. Wording and rule interpretation still need review when sources change.
diff --git a/docs/user-guide.md b/docs/user-guide.md
index e24f654..e9628c8 100644
--- a/docs/user-guide.md
+++ b/docs/user-guide.md
@@ -1,5 +1,7 @@
# User guide
+English | [简体中文](zh-CN/user-guide.md) | [繁體中文](zh-TW/user-guide.md)
+
AgentConfigScore is a local, deterministic linter and pull-request regression
gate for coding-agent instructions. It does not call an AI service or execute
commands found in instruction files. A 100 means no active rule matched, not
diff --git a/docs/zh-CN/limitations.md b/docs/zh-CN/limitations.md
new file mode 100644
index 0000000..fa69f01
--- /dev/null
+++ b/docs/zh-CN/limitations.md
@@ -0,0 +1,63 @@
+# 分数含义与限制
+
+[English](../limitations.md) | 简体中文 | [繁體中文](../zh-TW/limitations.md) · [使用指南](user-guide.md)
+
+AgentConfigScore 的分数衡量已经检测到的、由规则定义的风险,不衡量模型智力、任务成功率或指令总体质量。**A 100 表示没有命中生效的确定性规则,不是语义质量或安全认证。**
+
+## 高分不代表没有问题
+
+只要避开已知规则,下列内容仍可能得到 100 分:
+
+- 空泛、无用但非空的指令。
+- 没有使用已知危险命令表达的恶意或有害意图。
+- 经过改写、措辞不完全相同的矛盾。
+- 不在规则目录中的破坏性工具、命令形式。
+- 语法正确但与实际仓库任务不匹配的指导。
+
+我们不会用容易复制的“最佳实践”关键词加分来掩盖这些限制。模型辅助的语义判断需要独立评测和标注数据,不能通过更强的宣传措辞替代。
+
+中文文档是可选阅读入口。**它不表示检测规则能理解任意简体或繁体中文语义。** 英文散文规则的跨语言表现尚未得到验证;中文的否定、例子、改写和矛盾仍需要人工审核。
+
+## 命令与禁止上下文
+
+`rm-rf`、`git-clean-force`、`docker-system-prune` 解析有限 shell 片段的选项,支持部分重排、拆分、长选项、引号内的选项值和显式反斜杠续行。shell 分隔符与 `--` 会停止选项解释。Git 的预览/交互模式排除在危险匹配外;`rm` 后出现的交互选项会覆盖强制模式。排除/过滤选项的值不会当成执行标志。
+
+片段最多 1,000 个字符。普通操作数之后的选项、变量展开、别名、包装函数、子命令前的全局选项不解析。其他命令规则仍采用较窄的模式,不能覆盖所有 shell 语法。
+
+明确识别的英文禁止语句可以覆盖紧邻且闭合的代码块,或连续的直接命令列表。这不是完整 Markdown 解析器或意图分类器:没有标签的代码仍会接受危险命令检查;未闭合代码块不继承禁止作用域;直接出现的凭据独立检查。引号或代码围栏本身也不是通用豁免。
+
+复杂教学示例可能误报。先核对上下文,再使用有理由、有到期日期且经基线审核的豁免。[具体语法与负例(英文)](../instruction-context.md)。
+
+## 提示注入与工作流规则
+
+`prompt-injection-override` 识别 `ignore previous instructions` 等明确英文短语。命中只代表需要审核,不证明发生攻击。明确禁止以及整行标记的攻击示例可排除;任意改写、其他语言、运行时工具输出或远程内容的注入不在覆盖范围。[英文限制说明](../limitations.md#prompt-injection-warnings)。
+
+`false-success-report` 要求完整的英文散文子句,明确隐瞒错误却报告成功,或在失败/未执行时声称测试通过。仅跳过测试、禁止性描述、引号或代码示例不足以满足该规则。它不跨句、跨行拼接证据,也不检查实际测试是否运行。其他有害指导仍可能通过。[规则细节(英文)](../verification-reporting.md)。
+
+`broad-environment-upload` 要求同一英文子句同时包含明确传输行为、完整环境变量来源和网络接收端。仅变量名称、明确脱敏、日志、禁止描述、代码示例不满足此语法。它不读取进程环境、不验证脱敏、不解析目标,也不证明恶意意图或实际传输。字面回环地址被排除,但转发不分析;shell 上传、其他语言和任意改写仍不支持。[规则细节(英文)](../environment-upload.md)。
+
+## 本地 Markdown 链接
+
+简单的行内链接、图片目标相对于指令文件目录检查。URL 编码空格和尖括号目标受支持;只检查文件是否存在,不检查片段对应的标题。远程链接、纯锚点、代码块示例、绝对路径和逃出仓库的路径会跳过。引用式链接及目标中嵌套括号暂不解析,普通散文路径启发式保持原有行为。这不是完整 Markdown 校验器。
+
+## 回归保护的具体范围
+
+- 没有支持的指令文件会产生 `no-config`;空文件会产生 `empty-instructions`,不会显示 A 等级。
+- 生效的错误发现会限制等级,不能仅因数值惩罚较小就显示 A。
+- 精确指令形式的矛盾可以检出,改写后的语义矛盾不保证检出。
+- 删除指令文件会产生回归专用的 `instruction-file-removed`;内容完全相同的移动不作为删除。
+- 相同指令正文的明确极性翻转会产生 `directive-polarity-flip`,不推断任意语义相反的句子。
+
+对应行为有回归测试,基线审核的豁免可记录有意接受的例外。通过测试只证明符合这些已指定的行为。
+
+## 评测尚未证明什么
+
+维护的离线对抗用例目前有 474/474 个确定性契约匹配;公开挑战中检出 6/8,仍保留两个语义漏报。这是封闭开发用例的回归结果,**不是现实仓库准确率**。修复已知的虚假成功报告和环境上传案例是开发进展,不是独立准确率估计。
+
+与直接 AI 审查的独立对照尚未完成。比较工具包含已知的合成校准数据和暂定标签;未回答、未审核、未执行、参考标签未解决的情况,不会被当成完成的成功测量。一次未定论 AI 预评审、失败的源码获取,以及公共仓库片段,都不是已核验的用户反馈或优于 AI 的证据。[评测方法(英文)](../review-comparison.md)。
+
+## 合适的用途
+
+用于发现稳定规则覆盖的具体回归、在 CI 中审核发现、保留例外审计记录。不要作为生成代码、仓库安全或指令质量的唯一审批依据。安装验收、文档本地化和真实用户价值是不同问题。
+
+本文根据英文限制说明整理,保留核心边界;历史版本的逐项对照表和外部手册引用请见[英文原文](../limitations.md)。[翻译范围与维护说明](../translations.md)。
diff --git a/docs/zh-CN/user-guide.md b/docs/zh-CN/user-guide.md
new file mode 100644
index 0000000..360d335
--- /dev/null
+++ b/docs/zh-CN/user-guide.md
@@ -0,0 +1,115 @@
+# 使用指南
+
+[English](../user-guide.md) | 简体中文 | [繁體中文](../zh-TW/user-guide.md) · [项目主页](../../README.zh-CN.md)
+
+AgentConfigScore 是本地、确定性的编程助手指令检查器和 PR 回归门禁。它不调用 AI 服务,也不执行指令文件中的命令。100 分不代表指令有用、始终安全或比 AI 审查更好。
+
+## 1. 安装并确认版本
+
+需要 Python 3.10+。`diff` 需要 Git;普通目录扫描和两个目录间的 `compare` 不需要 Git。
+
+```bash
+python -m pip install agent-config-score
+agent-config-score --version
+agent-config-score --help
+```
+
+`acs` 是短命令别名。v0.23.0+ 支持相同功能的 `python -m agent_config_score`,不依赖主命令的 PATH 设置。旧版本没有此模块入口。查看[已发布版本](https://github.com/LE0-Lin/AgentConfigScore/releases),不要默认认为 `main` 的改动已经进入 PyPI 或滚动 `v0` 引用。
+
+## 2. 在自己的仓库初始化
+
+```bash
+agent-config-score init --dry-run
+agent-config-score init
+agent-config-score doctor
+```
+
+`init` 生成 `.agentconfigscore.json` 和 `.github/workflows/agent-config-score.yml`,不创建或改写指令文件。已有冲突文件默认不覆盖;使用 `--force` 前先检查。与生成内容相同的重复初始化不会改动文件。
+
+审核后提交生成的配置和工作流。只想本地使用时选 `init --no-workflow`;标准工作流缺失会成为 doctor 的提示性警告,而不是错误。
+
+若没有找到支持的指令文件,请编写符合仓库实际情况的指令,或采用[模板(英文)](../../examples/README.md)。不要仅为涨分添加词句。[完整发现范围(英文)](../../README.md#what-it-scans)。
+
+## 3. 检查当前目录
+
+```bash
+agent-config-score .
+agent-config-score rules
+agent-config-score rules curl-pipe-shell
+```
+
+普通扫描默认报告发现,不因为有发现就自动阻止后续操作。需要绝对分数门槛时,在策略中设置 `fail_under` 或明确传入:
+
+```bash
+agent-config-score . --fail-under 90
+```
+
+仓库不必先达到 90 分才能采用回归门禁。请结合规则、位置、上下文审核结果,不要把分数当成总体质量排名。
+
+## 4. 推送前检查改动
+
+```bash
+agent-config-score diff
+```
+
+包括未提交的工作区改动。尽可能采用本地已有的安全默认分支基线,不自动 fetch。也可明确指定:
+
+```bash
+agent-config-score diff origin/main
+```
+
+如果引用不存在,请自己获取该分支。应选择项目真正的默认分支,而非已经包含改动的功能分支。浅克隆需要足够的历史;生成的 Actions 工作流使用 `fetch-depth: 0`。
+
+没有 Git 时,可以比较两个已存在的目录:
+
+```bash
+agent-config-score compare ../repo-base . --max-drop 0 --fail-on-new-errors
+```
+
+两侧均使用基线策略和豁免。候选改动不能通过提高自己的降分预算或豁免新错误来批准自己;可信调用方的命令行覆盖必须明确传入。
+
+## 5. 理解失败并处理
+
+- `diff` / `compare` 返回 `1`:配置的回归门禁未通过。检查新发现与允许的降分幅度,处理实际指令问题。
+- 疑似误报仍需审核。接受的例外可以使用经基线审核的豁免,填写稳定规则 ID、原因、到期日期;结果保留审计记录。[豁免细节(英文)](../../README.md#auditable-exceptions)。
+- 返回 `2`:检查无法完成,如配置无效、Git 引用缺失、报告不可写。**这不是干净的结果**,不能因为没有 JSON 就批准改动。
+
+| 命令 | 返回 0 | 返回 1 | 返回 2 |
+|---|---|---|---|
+| 扫描(`agent-config-score .`) | 扫描完成,满足可选门槛 | 低于设置的分数门槛 | 输入无效或操作错误 |
+| `diff`、`compare` | 基线策略通过 | 新错误或降分门禁未通过 | 无法完成比较 |
+| `doctor` | 无错误项,可能有警告 | 有错误检查项 | 参数或调用错误 |
+| 其他命令 | 请求的操作完成 | 不是 lint 门禁 | 输入无效或操作错误 |
+
+意外的程序错误不会被通用异常捕获隐藏。分享堆栈前先删除私密信息;回归测试通过并不保证程序没有 bug。
+
+## 6. 在本地保存报告
+
+```bash
+agent-config-score . --json
+agent-config-score . --html .agent-config-score/report.html --badge .agent-config-score/badge.svg --sarif .agent-config-score/results.sarif
+agent-config-score diff --markdown .agent-config-score/regression.md
+```
+
+不要把报告放在会被当成指令文件扫描的位置。JSON、HTML、SARIF 和回归报告可能包含仓库路径及发现信息,分享前先检查。输出路径不要选成源码或策略文件,避免覆盖。多个报告写入不是事务:后一个写入失败时,前一个报告可能已生成。
+
+需要隐私最小化草稿时:
+
+```bash
+agent-config-score feedback . --output .agent-config-score/case.md
+```
+
+不会上传任何内容。请自行审核、脱敏后再分享。
+
+## 常见问题
+
+| 现象 | 检查方法 |
+|---|---|
+| 找不到命令 | 确认装入当前 Python 环境,并检查 Scripts/bin 的 PATH。v0.23.0+ 可用 `python -m agent_config_score`。 |
+| 配置或工作流编码错误 | 保存为 UTF-8,不要用 UTF-16 文件替代。 |
+| 报告不可写 | 选择可写的文件路径,不是已有目录;检查父目录权限。 |
+| 无法检测基线 | 运行 `doctor`,然后指定本地已有的默认分支引用。 |
+| 禁止示例被报为危险指令 | 对照[支持的禁止语法(英文)](../instruction-context.md)检查具体上下文;工具不理解任意语言和改写。 |
+| 旧 GitHub 运行记录是红色 | 查看当前提交对应的运行。后续修复不会抹掉历史失败记录。 |
+
+使用前阅读[限制说明](limitations.md)。发现是审核信号,不代替代码审查或安全评估。[翻译范围](../translations.md)。
diff --git a/docs/zh-TW/limitations.md b/docs/zh-TW/limitations.md
new file mode 100644
index 0000000..933e93f
--- /dev/null
+++ b/docs/zh-TW/limitations.md
@@ -0,0 +1,63 @@
+# 分數意義與限制
+
+[English](../limitations.md) | [简体中文](../zh-CN/limitations.md) | 繁體中文 · [使用指南](user-guide.md)
+
+AgentConfigScore 的分數衡量已偵測到、由規則定義的風險,不衡量模型智力、任務成功率或指令整體品質。**A 100 表示沒有命中生效的確定性規則,不是語意品質或安全認證。**
+
+## 高分不代表沒有問題
+
+只要避開已知規則,下列內容仍可能得到 100 分:
+
+- 空泛、沒有實際用途但並非空白的指令。
+- 未透過已知危險命令表達的惡意或有害意圖。
+- 經過改寫、措辭不完全相同的矛盾。
+- 規則目錄以外的破壞性工具或命令形式。
+- 語法正確卻不符合實際儲存庫任務的指導。
+
+我們不會藉由容易複製的「最佳實務」關鍵字加分來掩飾限制。模型輔助的語意判斷需要獨立評測與標註資料,不能用更強的宣傳措辭取代。
+
+中文文件是選用的閱讀入口。**它不表示偵測規則能理解任意簡體或繁體中文語意。** 英文敘述規則的跨語言表現尚未驗證;中文的否定、範例、改寫與矛盾仍須人工審查。
+
+## 命令與禁止上下文
+
+`rm-rf`、`git-clean-force`、`docker-system-prune` 解析有限 shell 片段的選項,支援部分重新排序、拆分、長選項、引號內的選項值與明確反斜線續行。shell 分隔符號與 `--` 會停止解讀選項。Git 的預覽/互動模式排除於危險匹配之外;`rm` 後續的互動選項會覆蓋強制模式。排除/過濾選項的值不會被當作執行旗標。
+
+片段最多 1,000 個字元。一般運算元之後的選項、變數展開、別名、包裝函式與子命令前的全域選項不解析。其他命令規則仍使用較窄的模式,無法涵蓋所有 shell 語法。
+
+可明確識別的英文禁止語句,能涵蓋緊鄰且已閉合的程式碼區塊,或連續的直接命令清單。這不是完整 Markdown 解析器或意圖分類器:沒有標籤的程式碼仍接受危險命令檢查;未閉合區塊不繼承禁止範圍;直接出現的認證資訊會獨立檢查。引號或程式碼圍欄本身也不是通用豁免。
+
+複雜的教學範例可能誤報。先核對上下文,再使用附有原因、到期日且經基準審查的排除設定。[具體語法與反例(英文)](../instruction-context.md)。
+
+## 提示注入與工作流程規則
+
+`prompt-injection-override` 識別 `ignore previous instructions` 等明確英文片語。命中只表示需要審查,不證明發生攻擊。明確禁止及整行標記的攻擊範例可排除;任意改寫、其他語言、執行時工具輸出或遠端內容的注入不在涵蓋範圍。[英文限制說明](../limitations.md#prompt-injection-warnings)。
+
+`false-success-report` 要求完整英文敘述子句,明確隱瞞錯誤卻回報成功,或在失敗/未執行時宣稱測試通過。僅略過測試、禁止性描述、引號或程式碼範例不足以符合規則。它不跨句、跨行組合證據,也不檢查實際測試是否執行。其他有害指導仍可能通過。[規則細節(英文)](../verification-reporting.md)。
+
+`broad-environment-upload` 要求同一英文子句同時包含明確傳輸行為、完整環境變數來源與網路接收端。只有變數名稱、明確移除敏感資訊、日誌、禁止描述或程式碼範例,不符合此語法。它不讀取處理程序環境、不驗證敏感資訊處理、不解析目標,也不證明惡意意圖或實際傳輸。字面回環位址排除在外,但不分析轉送;shell 上傳、其他語言和任意改寫仍不支援。[規則細節(英文)](../environment-upload.md)。
+
+## 本機 Markdown 連結
+
+簡單的行內連結、圖片目標依指令檔目錄檢查。支援 URL 編碼空格與尖括號目標;只檢查檔案是否存在,不檢查片段對應的標題。遠端連結、純錨點、程式碼區塊範例、絕對路徑與離開儲存庫的路徑會略過。參照式連結及目標中巢狀括號暫不解析,一般敘述路徑的啟發式維持原有行為。這不是完整 Markdown 驗證工具。
+
+## 回歸保護的具體範圍
+
+- 沒有支援的指令檔會產生 `no-config`;空白檔案會產生 `empty-instructions`,不會顯示 A 等級。
+- 生效的錯誤發現會限制等級,不會只因數值懲罰較小就顯示 A。
+- 可以偵測精確指令形式的矛盾,但不保證識別改寫後的語意矛盾。
+- 刪除指令檔會產生回歸專用的 `instruction-file-removed`;內容完全相同的搬移不視為刪除。
+- 相同指令正文的明確極性翻轉會產生 `directive-polarity-flip`,不推論任意語意相反的句子。
+
+對應行為有回歸測試,基準審查的排除設定可記錄有意接受的例外。測試通過只證明符合這些已指定的行為。
+
+## 評測尚未證明什麼
+
+持續維護的離線對抗案例目前有 474/474 個確定性契約符合預期;公開挑戰中偵測到 6/8,仍保留兩個語意漏報。這是封閉開發案例的回歸結果,**不是實際儲存庫的準確率**。修正已知的虛假成功回報與環境上傳案例是開發進展,不是獨立準確率估計。
+
+與直接 AI 審查的獨立對照尚未完成。比較工具包含已知的合成校準資料與暫定標籤;未回答、未審查、未執行、參考標籤尚未解決的情況,不會被視為已完成的成功測量。一次未定論 AI 預審、失敗的原始碼取得,以及公開儲存庫片段,都不是已驗證的使用者回饋或優於 AI 的證據。[評測方法(英文)](../review-comparison.md)。
+
+## 合適的用途
+
+用於發現穩定規則涵蓋的具體回歸、在 CI 中審閱發現,以及保留例外稽核紀錄。不要作為產生的程式碼、儲存庫安全或指令品質的唯一核准依據。安裝驗收、文件在地化與真實使用者價值是不同問題。
+
+本文依英文限制說明整理,保留核心界線;歷史版本逐項比較表和外部手冊引用請見[英文原文](../limitations.md)。[翻譯範圍與維護說明](../translations.md)。
diff --git a/docs/zh-TW/user-guide.md b/docs/zh-TW/user-guide.md
new file mode 100644
index 0000000..3e3528a
--- /dev/null
+++ b/docs/zh-TW/user-guide.md
@@ -0,0 +1,115 @@
+# 使用指南
+
+[English](../user-guide.md) | [简体中文](../zh-CN/user-guide.md) | 繁體中文 · [專案首頁](../../README.zh-TW.md)
+
+AgentConfigScore 是在本機執行、結果確定的開發助手指令檢查工具與 PR 回歸檢查。它不呼叫 AI 服務,也不執行指令檔內的命令。100 分不代表指令實用、始終安全或優於 AI 審查。
+
+## 1. 安裝並確認版本
+
+需要 Python 3.10+。`diff` 需要 Git;一般目錄掃描和兩個目錄之間的 `compare` 不需要 Git。
+
+```bash
+python -m pip install agent-config-score
+agent-config-score --version
+agent-config-score --help
+```
+
+`acs` 是較短的命令別名。v0.23.0+ 支援相同功能的 `python -m agent_config_score`,不依賴主命令的 PATH 設定。舊版本沒有此模組入口。請查看[已發布版本](https://github.com/LE0-Lin/AgentConfigScore/releases),不要假設 `main` 的改動已經出現在 PyPI 或滾動 `v0` 參照。
+
+## 2. 在自己的儲存庫初始化
+
+```bash
+agent-config-score init --dry-run
+agent-config-score init
+agent-config-score doctor
+```
+
+`init` 建立 `.agentconfigscore.json` 和 `.github/workflows/agent-config-score.yml`,不建立或改寫指令檔。既有衝突檔案預設不覆寫;使用 `--force` 前請先檢查。若內容與產生的設定相同,重複初始化不會改動檔案。
+
+審閱後提交產生的設定與工作流程。只想在本機使用時選 `init --no-workflow`;缺少標準工作流程只會成為 doctor 的提示性警告,不是錯誤。
+
+若沒有找到支援的指令檔,請撰寫符合儲存庫實際需求的指令,或使用[範本(英文)](../../examples/README.md)。不要只為提高分數添加詞句。[完整探索範圍(英文)](../../README.md#what-it-scans)。
+
+## 3. 檢查目前目錄
+
+```bash
+agent-config-score .
+agent-config-score rules
+agent-config-score rules curl-pipe-shell
+```
+
+一般掃描預設回報結果,不會只因有發現就自動阻擋後續操作。需要絕對分數門檻時,在策略中設定 `fail_under` 或明確傳入:
+
+```bash
+agent-config-score . --fail-under 90
+```
+
+儲存庫不必先達到 90 分才能導入回歸檢查。請依規則、位置與上下文審閱結果,不要把分數當成整體品質排名。
+
+## 4. 推送前檢查改動
+
+```bash
+agent-config-score diff
+```
+
+包含尚未提交的工作目錄改動。盡可能使用本機已存在的安全預設分支基準,不會自動 fetch。也能明確指定:
+
+```bash
+agent-config-score diff origin/main
+```
+
+如果參照不存在,請自行取得該分支。應選專案真正的預設分支,而不是已經包含改動的功能分支。淺層複製需要足夠的歷史;產生的 Actions 工作流程使用 `fetch-depth: 0`。
+
+沒有 Git 時,可以比較兩個已存在的目錄:
+
+```bash
+agent-config-score compare ../repo-base . --max-drop 0 --fail-on-new-errors
+```
+
+兩側都套用基準策略與排除設定。候選改動不能藉由增加自己的降分預算或排除新錯誤來核准自身;受信任呼叫端若要覆寫命令列設定,必須明確傳入。
+
+## 5. 理解失敗並處理
+
+- `diff` / `compare` 返回 `1`:設定的回歸檢查未通過。檢查新增發現與允許的降分幅度,處理實際指令問題。
+- 疑似誤報仍須審閱。接受的例外可以使用經基準審查的排除設定,指定穩定規則 ID、原因與到期日;結果仍保留稽核紀錄。[例外細節(英文)](../../README.md#auditable-exceptions)。
+- 返回 `2`:檢查無法完成,例如設定無效、Git 參照不存在或報告無法寫入。**這不是乾淨的結果**,不能因為沒有 JSON 就核准改動。
+
+| 命令 | 返回 0 | 返回 1 | 返回 2 |
+|---|---|---|---|
+| 掃描(`agent-config-score .`) | 掃描完成,符合選用門檻 | 低於設定的分數門檻 | 輸入無效或操作錯誤 |
+| `diff`、`compare` | 基準策略通過 | 新錯誤或降分檢查未通過 | 無法完成比較 |
+| `doctor` | 無錯誤項目,可能有警告 | 有錯誤檢查項目 | 參數或呼叫錯誤 |
+| 其他命令 | 要求的操作完成 | 不是 lint 門檻檢查 | 輸入無效或操作錯誤 |
+
+非預期的程式錯誤不會被通用例外處理隱藏。分享堆疊資訊前請移除私人內容;回歸測試通過不保證程式沒有 bug。
+
+## 6. 在本機儲存報告
+
+```bash
+agent-config-score . --json
+agent-config-score . --html .agent-config-score/report.html --badge .agent-config-score/badge.svg --sarif .agent-config-score/results.sarif
+agent-config-score diff --markdown .agent-config-score/regression.md
+```
+
+不要將報告放在會被視為指令檔掃描的位置。JSON、HTML、SARIF 與回歸報告可能包含儲存庫路徑和檢查資訊,分享前請先檢查。輸出路徑不要選擇原始碼或策略檔案,以免覆寫。多份報告寫入不是交易:後一份寫入失敗時,前一份可能已經產生。
+
+需要盡量減少私人資訊的草稿時:
+
+```bash
+agent-config-score feedback . --output .agent-config-score/case.md
+```
+
+不會上傳任何內容。請自行審閱並移除敏感資訊後再分享。
+
+## 常見問題
+
+| 現象 | 檢查方法 |
+|---|---|
+| 找不到命令 | 確認安裝在目前 Python 環境,並檢查 Scripts/bin 的 PATH。v0.23.0+ 可用 `python -m agent_config_score`。 |
+| 設定或工作流程編碼錯誤 | 儲存為 UTF-8,不要以 UTF-16 檔案取代。 |
+| 報告無法寫入 | 選擇可寫入的檔案路徑,不是既有目錄;檢查父目錄權限。 |
+| 無法偵測基準 | 執行 `doctor`,再指定本機已存在的預設分支參照。 |
+| 禁止範例被判為危險指令 | 對照[支援的禁止語法(英文)](../instruction-context.md)檢查上下文;工具不理解任意語言和改寫。 |
+| 舊 GitHub 執行紀錄是紅色 | 查看目前提交對應的執行結果。後續修正不會抹除歷史失敗紀錄。 |
+
+使用前閱讀[限制說明](limitations.md)。發現是審查訊號,不代替程式碼審查或安全評估。[翻譯範圍](../translations.md)。
diff --git a/tests/test_documentation_languages.py b/tests/test_documentation_languages.py
new file mode 100644
index 0000000..21788c3
--- /dev/null
+++ b/tests/test_documentation_languages.py
@@ -0,0 +1,88 @@
+import json
+from pathlib import Path
+import re
+import unittest
+from urllib.parse import unquote, urlsplit
+
+from agent_config_score.initializer import CONFIG_CONTENT
+
+
+ROOT = Path(__file__).resolve().parents[1]
+LOCALES = ("zh-CN", "zh-TW")
+
+
+def blocks(text, language):
+ return re.findall(r"```" + re.escape(language) + r"\n(.*?)\n```", text, re.DOTALL)
+
+
+class DocumentationLanguageTests(unittest.TestCase):
+ def test_english_stays_the_default_package_readme(self):
+ project = (ROOT / "pyproject.toml").read_text(encoding="utf-8")
+ self.assertIn('readme = "README.md"', project)
+ readme = (ROOT / "README.md").read_text(encoding="utf-8")
+ self.assertIn("English |", readme)
+ for locale in LOCALES:
+ self.assertIn(f"README.{locale}.md", readme)
+ page = (ROOT / f"README.{locale}.md").read_text(encoding="utf-8")
+ self.assertIn("[English](README.md)", page)
+ self.assertIn(f"docs/{locale}/user-guide.md", page)
+ self.assertIn(f"docs/{locale}/limitations.md", page)
+
+ def test_localized_guides_preserve_every_english_executable_example(self):
+ source = (ROOT / "docs" / "user-guide.md").read_text(encoding="utf-8")
+ expected = blocks(source, "bash")
+ self.assertGreater(len(expected), 5)
+ for locale in LOCALES:
+ with self.subTest(locale=locale):
+ page = (ROOT / "docs" / locale / "user-guide.md").read_text(encoding="utf-8")
+ self.assertEqual(blocks(page, "bash"), expected)
+ for code in ("--max-drop", "--fail-on-new-errors", "--json", "--sarif", "--force"):
+ self.assertIn(code, page)
+
+ def test_overviews_use_the_same_commands_config_and_workflow(self):
+ pages = [(ROOT / f"README.{locale}.md").read_text(encoding="utf-8") for locale in LOCALES]
+ for language in ("bash", "json", "yaml"):
+ with self.subTest(language=language):
+ self.assertEqual(blocks(pages[0], language), blocks(pages[1], language))
+ self.assertTrue(blocks(pages[0], language))
+ self.assertEqual(json.loads(blocks(pages[0], "json")[0]), json.loads(CONFIG_CONTENT))
+ workflow = blocks(pages[0], "yaml")[0]
+ self.assertIn("contents: read", workflow)
+ self.assertIn("fetch-depth: 0", workflow)
+ self.assertIn("LE0-Lin/AgentConfigScore@v0.23.0", workflow)
+
+ def test_localized_links_target_real_files_inside_the_repository(self):
+ paths = [ROOT / f"README.{locale}.md" for locale in LOCALES]
+ paths += [ROOT / "docs" / locale / name for locale in LOCALES
+ for name in ("user-guide.md", "limitations.md")]
+ paths += [ROOT / "docs" / "translations.md"]
+ for path in paths:
+ text = path.read_text(encoding="utf-8")
+ for destination in re.findall(r"!?\[[^\]\n]+\]\(([^)\n]+)\)", text):
+ parts = urlsplit(destination)
+ if parts.scheme or not parts.path:
+ continue
+ target = (path.parent / unquote(parts.path)).resolve()
+ with self.subTest(page=path.name, destination=destination):
+ self.assertTrue(target.is_relative_to(ROOT))
+ self.assertTrue(target.is_file(), target)
+
+ def test_core_limits_keep_stable_rule_ids_and_source_scope_visible(self):
+ for locale in LOCALES:
+ page = (ROOT / "docs" / locale / "limitations.md").read_text(encoding="utf-8")
+ for code in ("rm-rf", "prompt-injection-override", "false-success-report",
+ "broad-environment-upload", "no-config", "empty-instructions",
+ "instruction-file-removed", "directive-polarity-flip"):
+ self.assertIn(code, page)
+ self.assertIn("A 100", page)
+ self.assertIn("474/474", page)
+ self.assertIn("6/8", page)
+ self.assertIn("../translations.md", page)
+ note = (ROOT / "docs" / "translations.md").read_text(encoding="utf-8")
+ self.assertIn("78af3f9a470c9edab67f3d1579e8319a299bb191", note)
+ self.assertIn("cannot verify translation meaning", note)
+ self.assertIn("Advanced Action inputs/outputs", note)
+
+
+if __name__ == "__main__":
+ unittest.main()