GRP-001 추적성 체인
요구사항 → 설계 → 테스트 계획처럼, ID가 여러 문서 단계를 순서대로 추적할 수 있는지를 검증합니다. 각 단계에서 참조되지 않는 ID가 발견되면 warning 으로 보고됩니다. 프로젝트 스코프 의 규칙으로, include로 읽어들인 모든 문서를 횡단하여 평가됩니다.
최초 단계(chain[0])의 idColumn에서 ID를 모으고, 그것이 다음 단계 이후의 refColumn에서 참조되어 있는지를 순서대로 확인해 갑니다.
왜 필요한가
섹션 제목: “왜 필요한가”요구사항 → 설계 → 테스트와 같은 흐름에서는, 「요구사항 ID는 설계에 반드시 인용되어 있고, 설계에 등장한 ID는 테스트에 반드시 인용되어 있다」 는 것이 정합성의 최저 조건입니다. 그러나 요구사항을 1건 추가하고 설계를 빠뜨리거나, 테스트 계획을 빠뜨리거나 하는 누락은, 파일이 나뉘어 있으면 사람의 눈으로는 따라잡을 수 없습니다. 이 규칙은 체인의 누락을 기계적으로 검출합니다.
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
chain | object[] | ✓ | 체인을 구성하는 단계(최소 2단계). 순서가 그대로 검증 순서 |
idPattern | string | — | 이 정규표현식과 일치하는 값만 ID로 간주(일치하지 않는 값은 무시) |
chain의 각 단계
섹션 제목: “chain의 각 단계”| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
stage | string | ✓ | 단계의 이름(에러 메시지에 표시) |
files | string | ✓ | 이 단계의 문서를 가리키는 glob |
idColumn | string | — | 이 단계에서 ID가 정의되어 있는 컬럼명(최초 단계에서 필수) |
refColumn | string | — | 이 단계에서 전 단계의 ID를 참조하고 있는 컬럼명(2단계 이후에서 필수) |
최초 단계에서는 idColumn을, 2단계 이후에서는 refColumn을 지정합니다.
위반 예시
섹션 제목: “위반 예시”docs/requirements.md:
| ID | Name || ------- | ------ || REQ-001 | Login || REQ-002 | Logout |
docs/design.md:
| Requirement | Detail || ----------- | ------------- || REQ-001 | Design login |REQ-002가 docs/design.md의 Requirement 컬럼에서 참조되어 있지 않기 때문에 위반이 됩니다.
docs/requirements.md line 4 warning REQ-002 defined in docs/requirements.md but not referenced in stage "Design" GRP-001수정 후
섹션 제목: “수정 후”docs/design.md:
| Requirement | Detail || ----------- | -------------- || REQ-001 | Design login || REQ-002 | Design logout |설정 예시
섹션 제목: “설정 예시”{ "rule": "grp001", "options": { "chain": [ { "stage": "Requirements", "files": "**/requirements.md", "idColumn": "ID" }, { "stage": "Design", "files": "**/design.md", "refColumn": "Requirement" }, { "stage": "Test", "files": "**/test-plan.md", "refColumn": "Covers" } ], "idPattern": "^REQ-\\d{3}$" }}3단계 이상의 체인도 chain 배열을 늘리는 것만으로 표현할 수 있습니다. idPattern을 지정하면, 헤더 행 샘플이나 표기 흔들림 행을 ID 집합에서 제외할 수 있습니다.
관련 규칙
섹션 제목: “관련 규칙”- TBL-006 파일 간 ID 고유성 — 그 이전에 ID가 저장소 전체에서 고유한지의 검증
- REF-002 ID의 정의와 참조 — 2개 파일 간에서의 ID 참조의 검증(체인이 아니라 1대 1)
- GRP-002 순환 참조 — 문서 간 링크에 순환이 없는지의 검증
- GRP-003 고립 문서 — 어느 문서에서도 참조되지 않은 파일의 검출