CTX-002 术语一致性
验证 glossary(术语表)文件中定义的别名(alias)是否在正文中被使用。当将 Database 设为正式表记,把 DB / database 注册为别名时,正文中出现 DB 会报告为 warning。这是项目作用域规则,会跨越 include 加载的所有文档进行评估。
判定不区分大小写。glossary 文件本身不在验证对象中。
「写 Database 还是 DB」这类表记不一致难以在评审中指出,放任不管会降低整个文档的可搜索性。尤其是用 AI 生成草稿时,同一概念容易混入多种表记。以 glossary 为单一事实源,机械化检测是否混入别名,可以保持术语一致。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
glossary | string | ✓ | 视为 glossary 的文件 glob |
termColumn | string | ✓ | 存放正式表记的列名 |
aliasColumn | string | — | 存放别名的列名(可用逗号分隔指定多个)。未指定则不会检测任何内容 |
section | string | — | 将 glossary 内引用的表格限定为指定章节 |
files | string | — | 应用此规则的文件 glob(glossary 本身始终被排除) |
aliasColumn 在形式上是 optional,但未指定时不会从 glossary 抽取别名,本规则也不会检测任何内容,实际上接近必需。
docs/glossary.md:
| Term | Aliases || -------- | ------------- || Database | DB, database |
docs/design.md:
# Design
We use a DB for storage.docs/design.md 中使用了别名 DB,因此判定为违例。
docs/design.md line 3 warning "DB" should be "Database" (defined in glossary) CTX-002docs/design.md:
# Design
We use a Database for storage.{ "rule": "ctx002", "options": { "glossary": "docs/glossary.md", "termColumn": "Term", "aliasColumn": "Aliases", "files": "docs/**/*.md" }}glossary 文件预期具有如下结构。
## 术语
| Term | Aliases || -------- | ------------- || Database | DB, database || API | Api, api |Aliases 列以逗号分隔,可在单个单元格中列出多个别名。
- CTX-001 占位符检测 — 检测 TODO/TBD 等未完成处
- TBL-006 文件间 ID 唯一性 — 验证包括 glossary 在内的文件群中 ID(Term)是否重复