REF-004 영역 의존
영역(zonesDir 하위의 서브디렉터리)을 횡단하는 Markdown 링크가, 링크 출발지 영역의 overview.md의 의존 섹션에서 명시적으로 선언되어 있는지를 검증합니다. 선언되지 않은 영역 간 참조는 error 로 보고됩니다.
왜 필요한가
섹션 제목: “왜 필요한가”문서를 auth/ payment/ notification/ 같은 영역(책임 단위의 디렉터리)으로 나누어 관리하면, 영역 간의 의존 관계가 암묵적인 링크로 늘어나 갑니다. 본래는 「auth는 payment에는 의존하지 않는다」 는 설계 의도가 있어도, 링크는 자유롭게 쓸 수 있기 때문에 어느샌가 늘어나 갑니다. 이 규칙은 「영역 간의 의존은 overview.md의 의존 섹션에 반드시 선언한다」 는 규칙을 강제하여, 설계 의도와 문서 구조를 일치시킵니다.
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
zonesDir | string | ✓ | 영역이 배치되어 있는 디렉터리의 경로 |
dependencySection | string | — | 의존을 선언할 섹션의 제목(기본값: Dependencies) |
zonesDir 바로 아래의 각 서브디렉터리가 1개의 영역으로 취급됩니다. 각 영역에는 overview.md가 존재하고, 거기에 dependencySection으로 지정한 제목이 있을 것, 그 하위의 테이블에 의존 대상의 영역 이름이 나열되어 있을 것을 기대합니다.
위반 예시
섹션 제목: “위반 예시”docs/zones/auth/overview.md:# Auth zone
## Dependencies
| Zone || ---- |
docs/zones/auth/login.md:자세한 내용은 [결제 로직](../payment/charge.md)을 참조하세요.auth/login.md에서 payment 영역으로의 링크가 있지만, auth/overview.md의 Dependencies 섹션에 payment가 선언되어 있지 않기 때문에 위반이 됩니다.
docs/zones/auth/login.md line 1 error Cross-zone reference to "payment" zone, but "payment" is not listed in the "Dependencies" section of auth/overview.md REF-004수정 후
섹션 제목: “수정 후”의존을 overview.md에 명시적으로 추가합니다.
docs/zones/auth/overview.md:# Auth zone
## Dependencies
| Zone || ------- || payment |불필요한 의존이었다면, 링크를 제거하거나 의존 출발지 영역을 재검토합니다.
설정 예시
섹션 제목: “설정 예시”{ "rule": "ref004", "options": { "zonesDir": "docs/zones", "dependencySection": "Dependencies" }}관련 규칙
섹션 제목: “관련 규칙”- REF-001 끊어진 링크 — 링크 대상 파일이 존재하는지의 검증
- GRP-001 추적성 체인 — ID 간의 의존 관계 그래프의 검증
- GRP-002 순환 참조 — 문서 간의 순환 의존의 검출