REF-003 安定度の整合性
ある項目の安定度が、依存先の項目の安定度を超えないことを検証します。stable な項目が experimental な項目を参照している、といった不整合を warning で報告します。プロジェクトスコープ のルールで、include で読み込んだ全ドキュメントを横断して評価されます。
安定度ラベル(experimental / review / stable など)はドキュメント内項目の信頼度を示します。stable な要件が experimental な要件に依存していると、依存先が変わるたびに stable 側も追従が必要になり、安定度の意味が形骸化します。逆方向の依存(experimental → stable)は問題ありません。このルールは安定度ラベルの一貫性を機械的に検証します。
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
stabilityColumn | string | ✓ | 安定度を格納するカラム名 |
stabilityOrder | string[] | ✓ | 安定度の並び順(不安定 → 安定の順) |
definitions | string | ✓ | ID を定義するファイルの glob |
references | string[] | ✓ | ID を参照するファイルの glob 配列 |
idColumn | string | — | 定義ファイルで ID が格納されているカラム名(既定値: ID) |
idPattern | string | — | ID として扱う値の正規表現 |
stabilityOrder は配列のインデックス順に「より安定」とみなされます。["experimental", "review", "stable"] であれば stable が最も安定です。参照側の行に書かれた安定度が、参照先の項目の安定度よりも安定(インデックスが大きい)だと違反になります。
docs/requirements.md:| ID | 内容 | Stability || ------ | ---------------- | ------------ || REQ-01 | ユーザー登録 | experimental |
docs/design.md:| ID | 関連 | Stability || ------ | ------- | --------- || DSN-01 | REQ-01 | stable |stabilityOrder: ["experimental", "review", "stable"] の場合、stable な DSN-01 が experimental な REQ-01 を参照しているため違反になります。
docs/design.md line 4 warning Item "REQ-01" has stability "experimental" in docs/requirements.md, but is referenced from a row with stability "stable" REF-003参照元の安定度を依存先と揃えるか、依存先の安定度を上げます。
docs/requirements.md:| ID | 内容 | Stability || ------ | ---------------- | --------- || REQ-01 | ユーザー登録 | stable |{ "rule": "ref003", "options": { "stabilityColumn": "Stability", "stabilityOrder": ["experimental", "review", "stable"], "definitions": "**/requirements.md", "references": ["**/design.md", "**/tests.md"], "idColumn": "ID", "idPattern": "^REQ-\\d+$" }}- REF-002 ID の定義と参照 — 安定度の前提となる ID の定義 / 参照の整合性
- TBL-003 許可値 — 安定度カラムの値が許可リストに含まれるかの検証
- TBL-005 列間制約 — 単一ファイル内での安定度と他列の整合性の検証