콘텐츠로 이동

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+$"
}
}