문서 작성 가이드라인
docs/DOCS_GUIDE.md
문서 작성 가이드라인
개요
MAKITT 프로젝트의 문서 구조와 작성 규칙을 정의한다. Spec-driven 개발 방식을 따른다. Spec이 기능의 정의이자 실행 단위이다.
주의: 이 docs/ 디렉토리는 프로젝트에서 진행한 모든 작업을 담고 있지 않다. 각 하위 레포(makitt-client, makitt-server, makitt-ai-agent 등)에도 자체 문서와 스펙이 존재하며, 이미 구현 완료되어 별도 spec 없이 진행된 기능도 많다. 여기 있는 문서만으로 프로젝트의 전체 범위를 판단하면 안 된다.
디렉토리 구조
docs/
├── DOCS_GUIDE.md # 이 문서
├── spec/ # 기능 명세 (폴더 단위)
│ ├── ongoing/ # 현재 진행 중인 spec
│ ├── finished/ # 완료된 spec
│ └── argo/ # Argo 연동 spec 모음
├── domain/ # 서버 도메인 모델 정의 (작업할 때마다 유관 도메인 재정리)
├── handbook/ # HCS 설계 핸드북 (구조/컴포넌트/스타일/상태/프래그먼트 등)
├── api/ # 서버-클라이언트 스키마 검증 도구
├── reference/ # 운영/검증 레퍼런스
└── knowhow/ # 기술 노하우 노트
문서 유형별 작성 규칙
1. Spec 문서 (spec/)
기능의 정의와 구현 계획을 하나의 폴더로 관리한다. Spec이 곧 실행 단위이다.
폴더 컨벤션
모든 spec은 자기 폴더를 갖는다. 폴더 이름 = spec 이름(kebab-case).
spec/ongoing/{spec-name}/
├── README.md # Spec 본문 (필수)
├── README.test.md # Integration Test Guide (필수)
└── {sub-doc}.md # 선택: 긴 spec을 주제별로 쪼갤 때
- 한 기능 = 한 폴더. flat
.md배치 금지 - 보조 문서(아키텍처, IA/UX, 마이그레이션 노트, history 등)가 필요하면 같은 폴더 안에 둔다
- 큰 에픽은 Phase별 하위 문서로 분해 가능 (예:
fragment-library-to-coverage/phase-2-server-foundation.md)
frontmatter
--- status: draft | approved | in-progress | completed created: YYYY-MM-DD updated: YYYY-MM-DD ---
README.md 필수 섹션
# {기능명} ## 개요 기능의 목적과 범위. ## 배경 - 현재 문제점 - 비즈니스 맥락 ## 유저 플로우 Mermaid 다이어그램 또는 텍스트. ## 상세 기능 ### {섹션 1} - 기능 설명 - 규칙/제약 조건 ## Acceptance Criteria ### AC1: {기준 제목} - [ ] Given: {사전 조건} - [ ] When: {유저 액션} - [ ] Then: {기대 결과} ## 구현 계획 ### 영향 범위 - 관련 레포: makitt-client, makitt-server 등 ### 작업 목록 | 작업 | 설명 | |------|------| | Task 1 | 설명 | ### 기술 상세 (데이터 모델, API 설계, UI 컴포넌트 등 필요한 만큼만)
Integration Test (README.test.md)
Spec과 함께 반드시 작성한다. 포함 내용:
- 사전 준비: 데이터 초기화, 서버 재시작, 환경 확인
- Test Case: 번호별 액션 → 기대 결과 테이블
- 알려진 제한사항: 미구현 부분, 수동 작업 필요 사항
상태 흐름
draft → approved → in-progress → completed
완료되면 폴더 전체를 spec/ongoing/ → spec/finished/ 로 이동하고 status: completed 로 표기.
2. Domain 문서 (domain/)
서버(makitt-server)의 도메인 모델을 정의하는 문서. 도메인 이름 당 하나의 파일.
- 서버
com.makitt.core.domain.{name}패키지 구조와 1:1 대응 - 코드의 SSOT는 서버 코드이며, 이 문서는 참조용 스냅샷
- 작업할 때마다 유관 도메인 문서를 같이 최신화
- DynamoDB Entity, OpenSearch Document, Key Builder 규칙 포함
3. Handbook 문서 (handbook/)
HCS(Headless Component System) 설계 핸드북. 구조, 컴포넌트, 스타일, 데이터, 상태, 인터랙션, 폼, 전역 레이아웃, 프래그먼트, 토큰 스키마, 개발 가이드, 페이지 블루프린트 등 재사용 가능한 설계 레퍼런스를 담는다.
- spec이 아닌 설계 원리 + 사용 패턴 중심
- 번호 접두어(
01-,02-…)로 학습 순서 유지. 파일 추가/삭제 시 번호 재정렬 - 각 파일 최상단
# NN. 제목은 파일명 번호와 일치시킨다
4. 기타 폴더
| 폴더 | 용도 |
|---|---|
api/ | 서버-클라이언트 스키마 검증 도구 (verify-schemas 관련), OpenAPI 스냅샷 |
reference/ | 운영/검증 레퍼런스 (예: shop-app 검증 체크리스트) |
knowhow/ | 구현 중 쌓인 기술 노하우 노트 |
공통 작성 규칙
- 파일명: kebab-case (예:
payment-settings.md) - 폴더명: spec 이름 그대로 kebab-case
- 모든 문서는 Markdown 형식
- 첫 줄은
# 제목 - 문서는 한국어로 작성, 기술 용어는 원문 그대로
- 다이어그램: 문서 내 Mermaid 코드블록 사용. 복잡한 경우
diagrams/에.mmd파일 분리 - 다른 문서 참조 시 repo 루트 기준 절대 경로 표기 (예:
docs/handbook/hcs/09-fragment.md)