コンテンツにスキップ

CTX-002 用語一貫性

glossary(用語集)ファイルに定義された別名(alias)が本文中で使われていないかを検証します。Database を正式表記とし、DB / database を別名として登録している場合、本文に DB が登場すると warning で報告されます。プロジェクトスコープ のルールで、include で読み込んだ全ドキュメントを横断して評価されます。

判定は大文字・小文字を区別しません。glossary ファイル自身は対象外です。

Database と書くか DB と書くか」 のような表記揺れは、レビューでは指摘しづらく、放置するとドキュメント全体の検索性が下がります。とくに AI で下書きを生成すると、同じ概念に対して複数の表記が混ざりがちです。glossary を 1 つの真実の源として、別名が混入していないかを機械的に検出することで、用語を一貫させられます。

フィールド必須説明
glossarystringglossary として扱うファイルの glob
termColumnstring正式表記が格納されているカラム名
aliasColumnstring別名が格納されているカラム名(カンマ区切りで複数指定可)。未指定だと何も検出されない
sectionstringglossary 内で参照するテーブルを特定セクション配下に絞る
filesstringこのルールを適用するファイルの 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-002
docs/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 カラムはカンマ区切りで、複数の別名を 1 セルに列挙できます。