# 문서 작성 원칙

**작성일**: 2025-10-13
**수정일**: 2025-11-28 (핵심 원칙 명확화, 중복 내용 정리)
**참고**: CLAUDE.md, 311_FastAPI_구조_원칙.md

---

## 1. 문서 종류별 규칙

### 트러블슈팅 문서

**경로**: `DOCS/troubleshooting/`
**파일명**: `yymmdd_주제.md` (예: 251013_coldmail_ir_analyzer_fix.md)
**규칙**:
- 주제별 파일 분리 (날짜 중복 허용)
- 시간순 작성
- 교훈 섹션 필수
- 100줄 이하 유지

**필수 헤더**:
```markdown
# 제목

**날짜**: 2025-10-13
**작성자**: happybell80
**관련 파일**: `경로/파일명.py`

---
```

### 아키텍처 문서

**경로**: `DOCS/300_architecture/`
**파일명**: `3NN_주제.md` (예: 311_FastAPI_구조_원칙.md)
**규칙**:
- 작성일/수정일 명시
- 섹션 번호 사용
- 표, 다이어그램 권장
- 코드 예시 (올바름/금지) 포함

### 계획 문서

**경로**: `DOCS/plans/`
**규칙**:
- 미래 계획, 아이디어
- 구현 완료 시 troubleshooting으로 이동

---

## 2. 작성 규칙

### 핵심 원칙 (최우선)

**"핵심만 간결하게 정리"** - 문서의 모든 내용은 이 원칙을 준수해야 함
- 불필요한 설명, 중복 내용, 장황한 문장 제거
- 필요한 정보만 간결하게 기록
- 관련 정보는 링크로 참조 (중복 작성 금지)
- **같은 내용인 경우 새로운 파일 생성하지 말고 기존 파일 수정하여 깔끔하게 정리**

### 절대 금지 사항

| 금지 | 이유 |
|------|------|
| 핵심 없는 장황한 설명, 중복 내용 | 핵심만 간결하게 정리 원칙 위반, 관련 문서 링크로 대체 |
| 쓸데없는 코드 작성 (전체 코드 블록) | 파일명:줄번호만 명시 |
| 의사코드, 추측, 예측 ("아마", "것 같다") | 확인된 사실만 기록 |
| 이모지 사용 | 명시적 요청 시만 허용 |

### 파일 참조 형식

**올바름** (파일명:줄번호 + 간단 설명):
```markdown
- naverworks_briefing.py:58-74: 폴백 제거
- ir_analyzer.py:28: /api/query → /api/search
```

**금지** (전체 코드 복사, 추상적 표현):
```markdown
- naverworks_briefing.py에서 폴백 제거  ← 구체적 위치 없음
- ir_analyzer.py 파일 수정  ← 구체적 내용 없음
```python
# 전체 함수 코드 50줄 복사...  ← 불필요
```
```

---

## 3. 문서 구조

### 트러블슈팅 문서 구조

```markdown
# 제목

**날짜**, **작성자**, **관련 파일**

---

## 문제 상황
- 현상, 에러 메시지

## 해결 방안
- 파일명:줄번호 명시
- 수정 내용 간결히

## 구현 완료 (선택)
- 커밋 해시, 날짜

## 교훈 (필수)
- 왜 발생했는가
- 다음에 어떻게 방지할 것인가
```

### 아키텍처 문서 구조

```markdown
# 제목

**작성일**: 2025-10-13
**수정일**: 2025-10-13 (수정 이유)

## 1. 원칙
## 2. 규칙
## 3. 예시
## 4. 체크리스트
## 5. 참고
```

---

## 4. 파일 크기 제한

### 규칙
- 모든 문서: 100줄 이하
- 초과 시: 주제별 분리 또는 참고/실행용 분리

### 예외
- 아키텍처 문서: 200줄까지 허용 (섹션 많은 경우)
- 단, 분리 가능하면 분리 우선

---

## 5. 교훈 작성 규칙

### 필수 항목
1. **원인**: 왜 문제가 발생했는가
2. **교훈**: 다음에 어떻게 방지할 것인가
3. **원칙**: 위반한 원칙이 있는가

### 올바른 예시
```markdown
## 교훈

### API 엔드포인트 검증 부족
- 구현 시 skill-rag-file API 스펙 미확인
- 추측으로 /api/query 사용, 실제는 /api/search
- 교훈: 스킬 통합 전 API 문서 또는 코드 직접 확인 필수
```

### 금지 예시
```markdown
## 교훈

에러가 발생했습니다. 다음에 조심하겠습니다.
```

---

## 6. 비난조 문장 금지

### 금지 표현
- "잘못 작성됨"
- "버그가 많음"
- "엉망진창"

### 권장 표현
- "수정 필요"
- "개선 가능"
- "리팩토링 대상"

---

## 7. 체크리스트

문서 작성 전:
- [ ] **핵심만 간결하게 정리** (불필요한 설명/중복 제거, 링크로 대체)
- [ ] 파일명:줄번호로 위치 명시 (전체 코드 블록 금지)
- [ ] 확인된 사실만 기록 (추측/의사코드 제거)
- [ ] 파일명 형식 준수 (yymmdd_주제.md)
- [ ] 100줄 이하 확인
- [ ] 교훈 섹션 작성 (트러블슈팅)

문서 작성 후:
- [ ] 한 번 더 읽고 핵심 없는 부분/중복 제거

---

## 8. 참고 문서

- CLAUDE.md: 전체 개발 가이드
- 311_FastAPI_구조_원칙.md: 코드 구조 원칙
- troubleshooting/ 폴더: 트러블슈팅 예시
