콘텐츠로 이동

TBL-006 파일 간 ID 고유성

여러 파일에 걸쳐 특정 컬럼의 값(ID)이 고유한지를 검증합니다. 중복이 발견되면 error 로 보고됩니다. 프로젝트 스코프 의 규칙으로, include로 읽어들인 모든 문서를 횡단하여 평가됩니다.

요구사항 ID, ADR 번호, 테스트 ID처럼 저장소 전체에서 고유해야 할 식별자가 자주 등장합니다. 그러나 여러 파일이나 여러 팀이 동시에 추가해 나가면 모르는 사이에 같은 ID를 사용해 버리는 경우가 있습니다. 중복된 ID는 검색성도 추적성도 무너뜨리므로 기계적으로 검출할 가치가 있습니다.

필드타입필수설명
filesstringID 고유성을 검증할 대상 파일의 glob
columnstringID가 저장된 컬럼명
idPatternstring이 정규표현식과 일치하는 값만 ID로 간주 (일치하지 않는 값은 무시)

files는 다른 규칙의 files 옵션과 같은 glob 구문이지만, TBL-006에서는 필수입니다.

docs/auth/requirements.md:
| ID | 내용 |
| ------ | -------------- |
| REQ-01 | 사용자 등록 |
docs/todo/requirements.md:
| ID | 내용 |
| ------ | ---------------- |
| REQ-01 | 작업 생성 |

두 파일 모두에서 REQ-01을 사용하고 있으므로 위반이 됩니다.

docs/todo/requirements.md
line 3 error ID "REQ-01" is already defined in docs/auth/requirements.md:3 TBL-006

ID에 영역 이름을 포함하여 구별합니다.

docs/auth/requirements.md:
| ID | 내용 |
| ----------- | -------------- |
| REQ-AUTH-01 | 사용자 등록 |
docs/todo/requirements.md:
| ID | 내용 |
| ----------- | ---------------- |
| REQ-TODO-01 | 작업 생성 |
{
"rule": "tbl006",
"options": {
"files": "**/requirements.md",
"column": "ID",
"idPattern": "^REQ-"
}
}

idPattern을 지정하면, 그 패턴과 일치하는 값만 ID로 취급됩니다. 테이블에 헤더 행 샘플이나 제목 행이 섞여 있어도 ID 행만 대상으로 할 수 있습니다.