# Mandu 구현 상태

> 최종 업데이트: 2026-05-18

모든 주요 패키지가 **기능 구현 완료** 상태이며, 현재 P0 품질 게이트가 green입니다.
검증: `bun run typecheck`, `bun run lint`, `bun run test:packages` 통과.

---

## 전체 요약

| 패키지 | 기능 수 | 완료 | 상태 |
|--------|---------|------|------|
| **Core** (`@mandujs/core`) | 28 | 28 | 100% |
| **CLI** (`@mandujs/cli`) | 26 | 26 | 100% |
| **MCP** (`@mandujs/mcp`) | 23 | 23 | 100% |
| **ATE** (`@mandujs/ate`) | - | - | Green |
| **Edge** (`@mandujs/edge`) | - | - | Green |
| **Skills** | 9 | 9 | 100% |
| **Playground Runner** | - | - | Green |
| **합계** | **86+** | **86+** | **Green** |

---

## Core 프레임워크 (28/28)

### Phase 1 -- 서버 기반

| 기능 | 설명 |
|------|------|
| AbortController | 요청 취소 및 타임아웃 지원 |
| Zero-JS 모드 | 클라이언트 JavaScript 없는 서버 렌더링 |
| ETag / 304 | 조건부 응답 및 캐시 유효성 검사 |

### Phase 2 -- 데이터 변경

| 기능 | 설명 |
|------|------|
| filling.action() | 서버 사이드 폼 액션 핸들러 |
| `<Form>` 컴포넌트 | 프로그레시브 인핸스먼트 폼 |
| useMandu 훅 | 요청, 파라미터, 상태 통합 컨텍스트 훅 |

### Phase 3 -- 캐싱 및 렌더링

| 기능 | 설명 |
|------|------|
| ISR / SWR 캐시 | Stale-while-revalidate 기반 증분 정적 재생성 |
| 라우트 렌더 모드 | 라우트별 SSR, SSG, ISR 설정 |
| 글로벌 미들웨어 | 애플리케이션 전역 요청/응답 파이프라인 |

### Phase 4 -- 배포

| 기능 | 설명 |
|------|------|
| 어댑터 시스템 | 플러그형 배포 타겟 (Bun, Node, edge) |
| 프리렌더링 / SSG | 빌드 타임 정적 페이지 생성 |
| 중첩 라우트 병렬 로더 | 중첩 레이아웃을 위한 동시 데이터 로딩 |

### Phase 5 -- DX 및 네트워킹

| 기능 | 설명 |
|------|------|
| RPC 클라이언트 | 클라이언트-서버 간 타입 안전 원격 호출 |
| 미들웨어 플러그인 | cors, jwt, compress, logger, timeout (내장 5종) |
| useFetch | SSR 인식 데이터 페칭 훅 (캐시 포함) |
| WebSocket | 실시간 양방향 통신 |
| 테스트 헬퍼 | 라우트, 필링, 아일랜드 테스트 유틸리티 |

### Phase 6 -- 성능 및 콘텐츠

| 기능 | 설명 |
|------|------|
| 코드 스플리팅 | 라우트/아일랜드 기반 자동 청킹 |
| View Transitions | View Transitions API 기반 페이지 전환 애니메이션 |
| 이미지 최적화 | 자동 리사이즈, 포맷 변환, 지연 로딩 |
| Content Collections | 스키마 검증 기반 타입 안전 Markdown/MDX 콘텐츠 |

### 부록 -- 추가 API

| 기능 | 설명 |
|------|------|
| Route ErrorBoundary | 라우트별 에러 UI 및 복구 |
| shouldRevalidate | 세밀한 캐시 재검증 제어 |
| 세션 스토리지 | 플러그형 백엔드 기반 서버 사이드 세션 |
| useHead / useSeoMeta | 선언적 head 및 SEO 메타 관리 |
| island('never') 제외 | 정적 아일랜드의 하이드레이션 제외 |
| @slot 세그먼트 | 병렬 라우트를 위한 네임드 레이아웃 슬롯 |

---

## CLI (26/26)

6개 카테고리, 총 38개 명령어.

| 카테고리 | 명령어 |
|----------|--------|
| 핵심 워크플로우 | dev, build, start, preview, clean, info |
| 아키텍처 가드 | guard, contract, explain, fix, review |
| MCP 브릿지 | 터미널에서 85개 도구 접근 |
| 배포 | deploy, upgrade, completion |
| 스캐폴딩 | scaffold, middleware, session, ws, auth, collection |
| AI 지원 | ask, generate --ai |

---

## MCP 서버 (23/23)

85개 도구, 18개 카테고리, dot-notation 네이밍 및 하위 호환 별칭 지원.

| 기능 | 상세 |
|------|------|
| 도구 | 85개, dot-notation 네이밍 |
| 카테고리 | 18개 (guard, contract, scaffold, brain, ...) |
| 프롬프트 | 서버 프롬프트 3개 |
| 리소스 | 서버 리소스 3개 |
| 프로필 시스템 | 사용자/프로젝트 프로필 설정 |
| 트랜잭션 잠금 | 동시 작업 안전성 보장 |
| 어노테이션 | 85개 도구 전체 메타데이터 어노테이션 |
| 설명 품질 | LLM 도구 선택에 최적화 |

---

## Skills (9/9)

| 항목 | 설명 |
|------|------|
| 9개 SKILL.md 파일 | 선언적 역량 정의 |
| 플러그인 패키징 | npm 배포 가능한 스킬 패키지 |
| Claude Code 훅 | Claude Code 워크플로우 연동 |

---

## 품질 지표

| 지표 | 값 |
|------|-----|
| 패키지 테스트 게이트 | `bun run test:packages` 통과 |
| 테스트 스냅샷 | 6,044 pass, 178 skip, 0 fail |
| Core | 4,057 pass + gated bundler 7 pass, 176 skip, 0 fail |
| CLI | 806 pass, 2 skip, 0 fail |
| MCP | 288 pass, 0 fail |
| ATE | 587 pass, 0 fail |
| Edge | 107 pass, 0 fail |
| Skills | 106 pass, 0 fail |
| Playground Runner | 86 pass, 0 fail |
| 타입체크 | `bun run typecheck` -- 전체 통과 |
| 린트 | `bun run lint` -- 0 warnings, 0 errors |
| 라이선스 | MPL-2.0 |
| 런타임 | Bun 네이티브 |
