コンテンツにスキップ

REF-003 安定度の整合性

ある項目の安定度が、依存先の項目の安定度を超えないことを検証します。stable な項目が experimental な項目を参照している、といった不整合を warning で報告します。プロジェクトスコープ のルールで、include で読み込んだ全ドキュメントを横断して評価されます。

安定度ラベル(experimental / review / stable など)はドキュメント内項目の信頼度を示します。stable な要件が experimental な要件に依存していると、依存先が変わるたびに stable 側も追従が必要になり、安定度の意味が形骸化します。逆方向の依存(experimentalstable)は問題ありません。このルールは安定度ラベルの一貫性を機械的に検証します。

フィールド必須説明
stabilityColumnstring安定度を格納するカラム名
stabilityOrderstring[]安定度の並び順(不安定 → 安定の順)
definitionsstringID を定義するファイルの glob
referencesstring[]ID を参照するファイルの glob 配列
idColumnstring定義ファイルで ID が格納されているカラム名(既定値: ID
idPatternstringID として扱う値の正規表現

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"] の場合、stableDSN-01experimentalREQ-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+$"
}
}