# DOCUMENT_VALIDATION_RULES.md

## 문서 검증 규칙

### 금지 구문

다음 구문이 포함되면 문서는 FAIL입니다.

- `내용을 입력하세요` - placeholder
- `TODO` - 미완료 표시
- `placeholder` - placeholder 직접 명시
- `N/A` - 섹션 전체가 N/A만 있는 경우
- `미정` - 결정되지 않은 내용
- `추후 작성` - 나중에 작성 예정
- `나중에 결정` - 미결정 상태

---

### 최소 길이 규칙

| 문서 | 최소 길이 | 권장 |
|------|----------|------|
| 모든 문서 | 100자 | 200자 |
| 설계 문서 (REQUIREMENTS, ARCHITECTURE, UI_FLOW, TECHNICAL_DECISIONS) | 500자 | 1000자 |

---

### 필수 섹션 규칙

각 문서에는 다음 섹션이 포함되어야 합니다.

- `## 상태`
또는
- `## 검증 결과`

현재 상태와 검증 결과를 반드시 포함해야 합니다.

---

### 문서 일관성 규칙

다음 항목은 관련 문서 간 내용이 서로 일치해야 합니다.

- 프로젝트명
- 버전
- 개발 단계(Current Phase)
- 입력 정책
- 출력 정책
- 파일명 생성 규칙
- 지원 확장자
- 로그 저장 정책
- 오류 처리 정책
- 배포 방식

내용이 서로 다르면 FAIL입니다.

---

### 문서 참조 규칙

문서 간 참조가 존재하는 경우

- 존재하지 않는 문서를 참조하면 FAIL
- 존재하지 않는 함수명을 참조하면 WARNING
- 존재하지 않는 CHECKPOINT를 참조하면 FAIL

---

### 구현 가능성 규칙

다음 조건을 만족해야 합니다.

- REQUIREMENTS의 요구사항은 IMPLEMENTATION_PLAN에서 구현 가능해야 한다.
- TECHNICAL_DECISIONS의 기술 선택은 ARCHITECTURE와 충돌하지 않아야 한다.
- UI_FLOW는 IMPLEMENTATION_PLAN의 순서와 일치해야 한다.
- DESIGN_FREEZE의 내용은 REQUIREMENTS와 충돌하면 안 된다.

---

### 검증 방법

1. 파일 존재 검사
2. Placeholder 패턴 검출
3. 최소 길이 검사
4. 필수 섹션 존재 확인
5. 문서 간 일관성 검사
6. 문서 참조 검사
7. 결과를 PASS / FAIL / WARNING으로 분류

---

### 검증 도구

- 생성기 내장:
  - `validate_documents()`
- 수동 검사:
  - `can_approve_design_freeze()`
- 전체 프로젝트 검사:
  - `validate_project()`

---

### 검증 실패 시 조치

1. FAIL
   - 반드시 수정 후 재검증

2. WARNING
   - 수정 권장
   - 필요 시 재검증

3. PASS
   - 다음 단계 진행 가능

---

### DESIGN_FREEZE 승인 조건

DESIGN_FREEZE를 승인하려면 다음 문서가 모두 PASS여야 합니다.

- REQUIREMENTS.md
- TECHNICAL_DECISIONS.md
- UI_FLOW.md
- ARCHITECTURE.md
- IMPLEMENTATION_PLAN.md

또한

- 문서 간 충돌이 없어야 한다.
- Placeholder가 없어야 한다.
- 검증 결과가 PASS여야 한다.

---

## 상태

| 항목 | 값 |
|---|---|
| 작성일 | 2026-07-06 |
| 상태 | Draft |
| 검증 결과 | 대기 |

---

**참고**

- 검증은 단일 파일 단위로 수행한다.
- 전체 프로젝트 검증은 `validate_project()`로 수행한다.
- 문서 간 일관성은 AI-WORKS Standard의 핵심 검증 항목이다.