moai-adk 0.3.3__py3-none-any.whl → 0.3.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of moai-adk might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: moai-adk
3
- Version: 0.3.3
3
+ Version: 0.3.6
4
4
  Summary: MoAI Agentic Development Kit - SPEC-First TDD with Alfred SuperAgent
5
5
  Project-URL: Homepage, https://github.com/modu-ai/moai-adk
6
6
  Project-URL: Repository, https://github.com/modu-ai/moai-adk
@@ -21,6 +21,7 @@ Classifier: Topic :: Software Development :: Testing
21
21
  Requires-Python: >=3.13
22
22
  Requires-Dist: click>=8.1.0
23
23
  Requires-Dist: gitpython>=3.1.45
24
+ Requires-Dist: packaging>=21.0
24
25
  Requires-Dist: pyfiglet>=1.0.2
25
26
  Requires-Dist: questionary>=2.0.0
26
27
  Requires-Dist: rich>=13.0.0
@@ -56,236 +57,308 @@ Description-Content-Type: text/markdown
56
57
 
57
58
  ## 목차
58
59
 
59
- - [v0.3.x 주요 개선사항](#-v03x-주요-개선사항)
60
- - [Meet Alfred](#-meet-alfred---10개-ai-에이전트-팀)
61
- - [AI 모델 선택 가이드](#-ai-모델-선택-가이드)
60
+ - [이런 문제 겪고 계신가요?](#-이런-문제-겪고-계신가요)
61
+ - [Meet Alfred](#-meet-alfred---12개-ai-에이전트-팀)
62
+ - [5분 만에 이해하는 핵심 개념](#-5분-만에-이해하는-핵심-개념)
62
63
  - [Quick Start](#-quick-start-3분-실전)
64
+ - [첫 번째 프로젝트: Todo API](#-첫-번째-프로젝트-todo-api-만들기)
63
65
  - [3단계 워크플로우](#-3단계-워크플로우)
66
+ - [실전 시나리오](#-실전-시나리오)
67
+ - [AI 모델 선택 가이드](#-ai-모델-선택-가이드)
64
68
  - [CLI Reference](#-cli-reference)
65
69
  - [출력 스타일](#-alfreds-output-styles)
66
70
  - [언어 지원](#-universal-language-support)
67
71
  - [TRUST 5원칙](#-trust-5원칙)
72
+ - [코드 품질 가이드](#-코드-품질-가이드)
68
73
  - [FAQ](#-faq)
69
74
  - [문제 해결](#-문제-해결)
70
75
 
71
76
  ---
72
77
 
73
- ## 🆕 v0.3.x 주요 개선사항
74
-
75
- ### 🚀 핵심 기능 강화
76
-
77
- #### 1. Template Processor 개선 - 안전한 업데이트 시스템
78
- - **Alfred 폴더 자동 백업**: 업데이트 전 `.moai-backups/alfred-{timestamp}/` 폴더에 자동 백업
79
- - **선택적 복사 전략**: Alfred 시스템 폴더만 덮어쓰고, 사용자 커스터마이징 파일 보존
80
- - **지능형 병합**: `product/structure/tech.md` 등 프로젝트 문서를 BackupMerger가 자동으로 병합
81
- - **롤백 지원**: 문제 발생 시 백업에서 복구 가능
82
-
83
- #### 2. Event-Driven Checkpoint 시스템
84
- - **자동 백업**: 위험한 작업(`rm -rf`, 병합, 스크립트 실행) 전 자동 checkpoint 생성
85
- - **Hooks 통합**: `SessionStart`, `PreToolUse`, `PostToolUse` 훅이 실시간 감지
86
- - **최대 10개 유지**: FIFO + 7일 보존 정책으로 디스크 효율 관리
87
- - **투명한 동작**: 백그라운드 자동 생성, 사용자에게 알림
88
-
89
- #### 3. Hooks vs Agents vs Commands 역할 분리
90
- - **Hooks** (가드레일): 위험 차단, 자동 백업, JIT Context (<100ms)
91
- - **Agents** (분석): SPEC 검증, TRUST 원칙 확인, TAG 관리 (수 초)
92
- - **Commands** (워크플로우): 여러 단계 오케스트레이션 (수 분)
93
-
94
- #### 4. Context Engineering 전략 완성
95
- - **JIT Retrieval**: 필요한 순간에만 문서 로드 (초기 컨텍스트 최소화)
96
- - **Compaction**: 토큰 사용량 >70% 시 요약 후 새 세션 시작 권장
97
- - **Explore 에이전트**: 대규모 코드베이스 효율적 탐색 가이드 추가
98
-
99
- #### 5. AI 모델 최적화 - Haiku/Sonnet 전략적 배치
100
- - **Haiku 에이전트 적용** (5개): doc-syncer, tag-agent, git-manager, trust-checker, Explore
101
- - 빠른 응답 속도 (2~5배 향상)
102
- - 비용 67% 절감
103
- - 반복 작업 및 패턴 매칭에 최적화
104
- - **Sonnet 에이전트 유지** (5개): spec-builder, code-builder, debug-helper, cc-manager, project-manager
105
- - 복잡한 판단 및 설계에 집중
106
- - 높은 품질 보장
107
- - **/model 명령어 지원**:
108
- - `/model haiku` → **패스트 모드** (빠른 응답, 반복 작업)
109
- - `/model sonnet` → **스마트 모드** (복잡한 판단, 설계)
110
-
111
- ### 🛠️ 도구 & 명령어 개선
112
-
113
- #### CLI 명령어 표준화
114
- ```bash
115
- # 새 프로젝트 생성
116
- moai-adk init project-name
117
-
118
- # 기존 프로젝트에 설치
119
- moai-adk init .
120
-
121
- # 상태 확인
122
- moai-adk status
123
-
124
- # 업데이트
125
- moai-adk update
126
- ```
127
-
128
- #### Alfred 커맨드 단계별 커밋 지침 추가
129
- - **0-project**: 문서 생성 완료 시 커밋
130
- - **1-spec**: SPEC 작성 + Git 브랜치/PR 생성 시 커밋
131
- - **2-build**: TDD 전체 사이클(RED→GREEN→REFACTOR) 완료 시 1회 커밋
132
- - **3-sync**: 문서 동기화 완료 시 커밋
78
+ ## 🚨 이런 문제 겪고 계신가요?
133
79
 
134
- #### PyPI 배포 자동화
135
- - GitHub Actions 워크플로우 추가 (`.github/workflows/publish-pypi.yml`)
136
- - 템플릿 프로젝트에도 배포 워크플로우 제공
137
- - 버전 관리 및 자동 배포 지원
80
+ ### AI 코딩의 현실
138
81
 
139
- ### 📚 문서 강화
82
+ - 💥 **"AI가 만든 코드, 나중에 유지보수 불가능..."**
83
+ - 같은 기능을 매번 다르게 구현
84
+ - 코드 스타일이 파일마다 제각각
85
+ - 테스트 코드는 없고 버그는 많음
140
86
 
141
- #### SPEC 메타데이터 표준 (SSOT)
142
- - **필수 필드 7개**: id, version, status, created, updated, author, priority
143
- - **선택 필드 9개**: category, labels, depends_on, blocks, related_specs, related_issue, scope
144
- - **HISTORY 섹션**: 모든 버전 변경 이력 기록 (필수)
145
- - `.moai/memory/spec-metadata.md`에 전체 가이드 문서화
87
+ - 🔄 **"같은 질문 반복해도 매번 다른 답변..."**
88
+ - 이전 대화 내용을 기억하지 못함
89
+ - 일관된 아키텍처를 유지하기 어려움
90
+ - 프로젝트 전체 맥락을 놓침
146
91
 
147
- #### Explore 에이전트 활용 가이드
148
- - 코드 분석 권장 상황 명확화
149
- - thoroughness 레벨별 사용법 (quick/medium/very thorough)
150
- - JIT Retrieval 최적화 전략
92
+ - 📚 **"코드는 많은데 문서는 없고, 추적 불가능..."**
93
+ - 이렇게 만들었는지 수 없음
94
+ - 코드 변경 이력 추적 불가
95
+ - 요구사항과 코드가 따로
151
96
 
152
- ### 🔒 보안 & 안정성
97
+ - 🤯 **"프롬프트 엔지니어링에만 하루가 다 갔어요..."**
98
+ - 완벽한 프롬프트를 찾기 위해 수십 번 시도
99
+ - AI에게 매번 같은 제약사항을 반복 설명
100
+ - 코드 품질을 수동으로 검증
153
101
 
154
- #### 크로스 플랫폼 지원 강화
155
- - Windows/macOS/Linux 동일 동작 보장
156
- - 플랫폼별 에러 메시지 제공
157
- - PowerShell + Python 보안 스캔 스크립트
102
+ ### MoAI-ADK는 이렇게 해결합니다
158
103
 
159
- #### .gitignore 및 프로젝트 정리
160
- - 로컬 설정 파일 자동 제외 (`.claude/settings.local.json`)
161
- - 임시 테스트 파일 제외 (`*-test-report.md`)
162
- - 불필요한 파일 자동 정리
104
+ ```mermaid
105
+ flowchart TD
106
+ Problem["😫 문제: 플랑켄슈타인 코드"] --> Solution["✨ MoAI-ADK"]
107
+ Solution --> SPEC["📋 SPEC 우선<br/>명세 없으면 코드 없다"]
108
+ Solution --> TDD["🔴🟢♻️ TDD 강제<br/>테스트 없으면 구현 없다"]
109
+ Solution --> TAG["🏷️ @TAG 추적<br/>모든 코드가 SPEC과 연결"]
163
110
 
164
- ### 🎨 출력 스타일 개선
111
+ SPEC --> Result["🎉 결과"]
112
+ TDD --> Result
113
+ TAG --> Result
165
114
 
166
- #### 3가지 표준 스타일
167
- - **MoAI Beginner Learning**: 개발 입문자를 위한 친절한 가이드
168
- - **MoAI Professional**: 전문 개발자를 위한 효율적인 출력
169
- - **MoAI Alfred (기본)**: 균형잡힌 AI 협업 스타일
115
+ Result --> Quality["✅ 높은 품질<br/>TRUST 5원칙 자동 검증"]
116
+ Result --> Track["📊 완벽한 추적성<br/>SPEC→TEST→CODE→DOC"]
117
+ Result --> Maintain["🔧 쉬운 유지보수<br/>코드 변경 이력 완전 기록"]
118
+ ```
170
119
 
171
120
  ---
172
121
 
173
- ## 🎩 Meet Alfred - 10개 AI 에이전트 팀
122
+ ## 🎩 Meet Alfred - 12개 AI 에이전트 팀
174
123
 
175
124
  안녕하세요, 모두의AI SuperAgent **🎩 Alfred**입니다!
176
125
 
177
126
  ![Alfred Logo](https://github.com/modu-ai/moai-adk/raw/main/docs/public/alfred_logo.png)
178
127
 
179
- 저는 MoAI-ADK의 SuperAgent이자 중앙 오케스트레이터 AI입니다. **10개의 AI 에이전트 팀**(Alfred + 9개 전문 에이전트)을 조율하여 Claude Code 환경에서 완벽한 개발 지원을 제공합니다.
128
+ 저는 MoAI-ADK의 SuperAgent이자 중앙 오케스트레이터 AI입니다. **12개의 AI 에이전트 팀**(Alfred + 11개 전문 에이전트)을 조율하여 Claude Code 환경에서 완벽한 개발 지원을 제공합니다.
180
129
 
181
130
  ### 🌟 흥미로운 사실: AI가 만든 AI 개발 도구
182
131
 
183
132
  이 프로젝트의 모든 코드는 **100% AI에 의해 작성**되었습니다.
184
133
 
185
134
  - **AI 협업 설계**: GPT-5 Pro와 Claude 4.1 Opus가 함께 아키텍처를 설계
186
- - **Agentic Coding 적용**: 10개 AI 에이전트 팀이 자율적으로 SPEC 작성, TDD 구현, 문서 동기화 수행
135
+ - **Agentic Coding 적용**: 12개 AI 에이전트 팀(Alfred + 11개 전문 에이전트)이 자율적으로 SPEC 작성, TDD 구현, 문서 동기화 수행
187
136
  - **투명성**: 완벽하지 않은 부분을 숨기지 않고, 커뮤니티와 함께 개선해나가는 오픈소스
188
137
 
189
- ### 🎩 Alfred가 제공하는 4가지 핵심 가치
138
+ ### Alfred가 제공하는 4가지 핵심 가치
139
+
140
+ ```mermaid
141
+ mindmap
142
+ root((Alfred))
143
+ 일관성
144
+ SPEC-First
145
+ TDD 강제
146
+ 플랑켄슈타인 코드 방지
147
+ 품질
148
+ TRUST 5원칙
149
+ 자동 검증
150
+ 85%+ 커버리지
151
+ 추적성
152
+ @TAG 시스템
153
+ SPEC→TEST→CODE→DOC
154
+ 완벽한 연결
155
+ 범용성
156
+ 17개 언어 지원
157
+ Python TypeScript Java Go
158
+ 모바일 Flutter Swift
159
+ ```
190
160
 
191
161
  #### 1️⃣ 일관성 (Consistency)
162
+
192
163
  **SPEC → TDD → Sync** 3단계 파이프라인으로 플랑켄슈타인 코드 방지
193
164
 
194
165
  #### 2️⃣ 품질 (Quality)
166
+
195
167
  **TRUST 5원칙** 자동 적용 및 검증 (Test First, Readable, Unified, Secured, Trackable)
196
168
 
197
169
  #### 3️⃣ 추적성 (Traceability)
170
+
198
171
  **@TAG 시스템**으로 `@SPEC → @TEST → @CODE → @DOC` 완벽 연결
199
172
 
200
173
  #### 4️⃣ 범용성 (Universality)
174
+
201
175
  **모든 주요 언어 지원** (Python, TypeScript, Java, Go, Rust, Dart, Swift, Kotlin 등)
202
176
 
203
177
  ---
204
178
 
205
- ## 🧠 AI 모델 선택 가이드
179
+ ## 📚 5분 만에 이해하는 핵심 개념
206
180
 
207
- MoAI-ADK는 **Haiku 4.5**와 **Sonnet 4.5** 두 가지 AI 모델을 전략적으로 활용하여 **최적의 성능과 비용 효율**을 제공합니다.
181
+ ### 1️⃣ SPEC-First: 설계도 먼저 그리기
208
182
 
209
- ### 패스트 모드 vs 스마트 모드
183
+ **비유**: 집을 짓기 전에 설계도를 그리듯이, 코드를 쓰기 전에 SPEC을 작성합니다.
210
184
 
211
- Claude Code에서 `/model` 명령어로 전체 세션의 기본 모델을 변경할 수 있습니다:
185
+ ```mermaid
186
+ graph LR
187
+ A["🏗️ SPEC 작성<br/>(설계도)"] --> B["🔴 RED<br/>(실패하는 테스트)"]
188
+ B --> C["🟢 GREEN<br/>(최소 구현)"]
189
+ C --> D["♻️ REFACTOR<br/>(품질 개선)"]
190
+ D --> E["📖 SYNC<br/>(문서화)"]
191
+ ```
212
192
 
213
- ```text
214
- # 패스트 모드 (빠른 응답, 반복 작업)
215
- /model haiku
193
+ #### EARS 구문으로 명세 작성 (실제 예시)
216
194
 
217
- # 스마트 모드 (복잡한 판단, 설계)
218
- /model sonnet
195
+ **EARS (Easy Approach to Requirements Syntax)**: 체계적인 요구사항 작성 방법론
196
+
197
+ ```markdown
198
+ # @SPEC:AUTH-001: JWT 인증 시스템
199
+
200
+ ## Ubiquitous (기본 기능)
201
+ - 시스템은 사용자 인증 기능을 제공해야 한다
202
+
203
+ ## Event-driven (이벤트 기반)
204
+ - WHEN 사용자가 유효한 자격증명으로 로그인하면,
205
+ 시스템은 JWT 토큰을 발급해야 한다
206
+ - WHEN 토큰이 만료되면,
207
+ 시스템은 401 에러를 반환해야 한다
208
+
209
+ ## State-driven (상태 기반)
210
+ - WHILE 사용자가 인증된 상태일 때,
211
+ 시스템은 보호된 리소스 접근을 허용해야 한다
212
+
213
+ ## Optional (선택적 기능)
214
+ - WHERE 리프레시 토큰이 제공되면,
215
+ 시스템은 새로운 액세스 토큰을 발급할 수 있다
216
+
217
+ ## Constraints (제약사항)
218
+ - IF 잘못된 토큰이 제공되면,
219
+ 시스템은 접근을 거부해야 한다
220
+ - 액세스 토큰 만료시간은 15분을 초과하지 않아야 한다
219
221
  ```
220
222
 
221
- ### 10개 에이전트의 모델 배치 전략
223
+ **실습**: Claude Code에서 직접 해보기
222
224
 
223
- Alfred는 **작업 특성**에 따라 각 에이전트에 최적 모델을 할당합니다:
225
+ ```bash
226
+ /alfred:1-spec "JWT 기반 사용자 로그인 API"
227
+ # Alfred가 위 형식으로 SPEC을 자동 생성합니다
228
+ ```
224
229
 
225
- #### 🚀 Haiku 에이전트 (5개) - 패스트 모드
230
+ ---
226
231
 
227
- **빠른 응답이 필요한 반복 작업 패턴 매칭**
232
+ ### 2️⃣ @TAG 추적: 코드와 문서를 실로 엮기
228
233
 
229
- | 에이전트 | 역할 | Haiku? |
230
- | ------------------- | --------------- | -------------------------------------------- |
231
- | **doc-syncer** 📖 | 문서 동기화 | 패턴화된 문서 업데이트, Living Document 생성 |
232
- | **tag-agent** 🏷️ | TAG 시스템 관리 | 반복적 패턴 매칭, TAG 체인 검증 |
233
- | **git-manager** 🚀 | Git 워크플로우 | 정형화된 Git 명령어 실행, 브랜치/PR 생성 |
234
- | **trust-checker** ✅ | TRUST 원칙 검증 | 규칙 기반 체크리스트 확인 |
235
- | **Explore** 🔍 | 코드베이스 탐색 | 대량 파일 스캔, 키워드 검색 |
234
+ **비유**: 책의 색인처럼, 모든 코드를 SPEC과 연결합니다.
236
235
 
237
- **장점**:
238
- - ⚡ **속도 2~5배 향상**: 실시간 응답 (수 초 → 1초 이내)
239
- - 💰 **비용 67% 절감**: 반복 작업이 많은 프로젝트에 효과적
240
- - 🎯 **높은 정확도**: 패턴화된 작업에서 Sonnet과 동등한 품질
236
+ ```mermaid
237
+ graph TD
238
+ SPEC["📋 @SPEC:AUTH-001<br/>.moai/specs/SPEC-AUTH-001/spec.md"] --> TEST["🔴 @TEST:AUTH-001<br/>tests/test_auth_login.py"]
239
+ TEST --> CODE["🟢 @CODE:AUTH-001<br/>src/auth/service.py"]
240
+ CODE --> DOC["📖 @DOC:AUTH-001<br/>docs/api/auth.md"]
241
+ ```
241
242
 
242
- #### 🧠 Sonnet 에이전트 (5개) - 스마트 모드
243
+ #### 실제 코드 예시
243
244
 
244
- **복잡한 판단과 창의적 설계가 필요한 작업**
245
+ ```python
246
+ # tests/test_auth_login.py
247
+ # @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
245
248
 
246
- | 에이전트 | 역할 | 왜 Sonnet? |
247
- | --------------------- | ---------------- | ------------------------------------ |
248
- | **spec-builder** 🏗️ | SPEC 작성 | EARS 구조 설계, 복잡한 요구사항 분석 |
249
- | **code-builder** 💎 | TDD 구현 | 아키텍처 설계, 복잡한 리팩토링 |
250
- | **debug-helper** 🔬 | 디버깅 | 오류 원인 분석, 해결 방법 도출 |
251
- | **cc-manager** 🛠️ | Claude Code 설정 | 워크플로우 최적화, 복잡한 설정 |
252
- | **project-manager** 📋 | 프로젝트 초기화 | 전략 수립, 복잡한 의사결정 |
249
+ def test_login_success():
250
+ """사용자가 유효한 자격증명으로 로그인하면 JWT 토큰을 발급해야 한다"""
251
+ response = login(username="user@example.com", password="valid_pass")
252
+ assert response.status_code == 200
253
+ assert "access_token" in response.json()
254
+ ```
253
255
 
254
- **장점**:
255
- - 🎯 **높은 품질**: 복잡한 코드 품질 보장
256
- - 🧠 **깊은 이해**: 맥락 파악 및 창의적 해결책 제시
257
- - 🏆 **정확한 판단**: 아키텍처 결정, 설계 선택
256
+ ```python
257
+ # src/auth/service.py
258
+ # @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: tests/test_auth_login.py
258
259
 
259
- ### 사용 시나리오별 권장 모델
260
+ def login(username: str, password: str) -> TokenResponse:
261
+ """JWT 토큰 발급 로직"""
262
+ if not validate_credentials(username, password):
263
+ raise UnauthorizedError()
260
264
 
261
- | 시나리오 | 권장 모델 | 이유 |
262
- | ---------------------- | --------- | ----------------------------- |
263
- | 🆕 **새 프로젝트 시작** | Sonnet | SPEC 설계, 아키텍처 결정 필요 |
264
- | 🔄 **반복 개발** | Haiku | 이미 정해진 패턴 반복 구현 |
265
- | 🐛 **버그 수정** | Sonnet | 원인 분석 및 해결 방법 도출 |
266
- | 📝 **문서 작성** | Haiku | Living Document 동기화 |
267
- | 🔍 **코드 탐색** | Haiku | 파일 검색, TAG 조회 |
268
- | ♻️ **리팩토링** | Sonnet | 구조 개선, 복잡한 변경 |
265
+ token = generate_jwt_token(username)
266
+ return TokenResponse(access_token=token)
267
+ ```
269
268
 
270
- ### 모델 전환
269
+ #### TAG 검증 실습 (실제로 해볼 수 있는 명령어)
271
270
 
272
- ```text
273
- # 기능 설계 시작
274
- /model sonnet
275
- /alfred:1-spec "사용자 인증 시스템"
271
+ ```bash
272
+ # 1. 모든 TAG 스캔
273
+ rg '@(SPEC|TEST|CODE|DOC):' -n .moai/specs/ tests/ src/ docs/
276
274
 
277
- # SPEC 승인 TDD 구현
278
- /alfred:2-build AUTH-001
275
+ # 2. 특정 도메인 TAG 확인
276
+ rg '@SPEC:AUTH' -n .moai/specs/
279
277
 
280
- # 구현 완료 문서 동기화 (자동으로 Haiku 사용)
281
- /alfred:3-sync
278
+ # 3. 고아 TAG 탐지 (CODE는 있는데 SPEC이 없는 경우)
279
+ rg '@CODE:AUTH-001' -n src/ # CODE 있음
280
+ rg '@SPEC:AUTH-001' -n .moai/specs/ # SPEC 있는지 확인
281
+ ```
282
282
 
283
- # 다음 기능 설계
284
- /model sonnet
285
- /alfred:1-spec "결제 시스템"
283
+ ---
284
+
285
+ ### 3️⃣ TRUST 품질: 5가지 원칙으로 코드 품질 보장
286
+
287
+ **비유**: 자동차 안전검사처럼, 코드도 5가지 기준으로 검사합니다.
288
+
289
+ ```mermaid
290
+ mindmap
291
+ root((TRUST 5원칙))
292
+ Test First
293
+ 테스트 커버리지 ≥85%
294
+ pytest Vitest JUnit
295
+ SPEC 기반 테스트 케이스
296
+ Readable
297
+ 파일 ≤300 LOC
298
+ 함수 ≤50 LOC
299
+ 매개변수 ≤5개
300
+ 복잡도 ≤10
301
+ Unified
302
+ 타입 안전성
303
+ 아키텍처 일관성
304
+ 코딩 스타일 통일
305
+ Secured
306
+ 입력 검증
307
+ 로깅 감사
308
+ 비밀 관리
309
+ 정적 분석
310
+ Trackable
311
+ @TAG 체계
312
+ CODE-FIRST 스캔
313
+ HISTORY 기록
286
314
  ```
287
315
 
288
- **Pro Tip**: Alfred는 에이전트를 호출할 때 자동으로 최적 모델을 사용하므로, **세션 전체 모델 변경은 선택사항**입니다. 기본 설정(Sonnet)으로도 충분히 효율적입니다.
316
+ #### 코드 제약 구체적 예시
317
+
318
+ ```python
319
+ # ✅ 좋은 예: 함수 ≤50 LOC, 매개변수 ≤5개
320
+ def create_user(
321
+ username: str,
322
+ email: str,
323
+ password: str,
324
+ role: str = "user",
325
+ is_active: bool = True
326
+ ) -> User:
327
+ """사용자 생성 (40 LOC)"""
328
+ # 입력 검증
329
+ if not username or len(username) < 3:
330
+ raise ValueError("Username must be at least 3 characters")
331
+
332
+ if not email or "@" not in email:
333
+ raise ValueError("Invalid email address")
334
+
335
+ # 비밀번호 해싱
336
+ hashed_password = hash_password(password)
337
+
338
+ # 사용자 생성
339
+ user = User(
340
+ username=username,
341
+ email=email,
342
+ password=hashed_password,
343
+ role=role,
344
+ is_active=is_active
345
+ )
346
+
347
+ # DB 저장
348
+ db.session.add(user)
349
+ db.session.commit()
350
+
351
+ return user
352
+
353
+
354
+ # ❌ 나쁜 예: 함수 > 50 LOC, 매개변수 > 5개
355
+ def create_user_with_profile_and_settings_and_notifications(
356
+ username, email, password, role, is_active, profile_data,
357
+ settings_data, notification_preferences, theme, language
358
+ ):
359
+ """100 LOC 넘는 거대 함수..."""
360
+ # ... 너무 많은 책임 ...
361
+ ```
289
362
 
290
363
  ---
291
364
 
@@ -327,6 +400,7 @@ moai-adk --version
327
400
  #### 3️⃣ 프로젝트 시작 (1분)
328
401
 
329
402
  **새 프로젝트:**
403
+
330
404
  ```bash
331
405
  moai-adk init my-project
332
406
  cd my-project
@@ -334,6 +408,7 @@ claude
334
408
  ```
335
409
 
336
410
  **기존 프로젝트:**
411
+
337
412
  ```bash
338
413
  cd existing-project
339
414
  moai-adk init .
@@ -341,11 +416,13 @@ claude
341
416
  ```
342
417
 
343
418
  **Claude Code에서 초기화:**
419
+
344
420
  ```text
345
421
  /alfred:0-project
346
422
  ```
347
423
 
348
424
  **첫 기능 개발:**
425
+
349
426
  ```text
350
427
  /alfred:1-spec "사용자 인증 기능"
351
428
  /alfred:2-build AUTH-001
@@ -355,6 +432,7 @@ claude
355
432
  ### 🎉 완료!
356
433
 
357
434
  **생성된 것들:**
435
+
358
436
  - ✅ `.moai/specs/SPEC-AUTH-001/spec.md` (명세)
359
437
  - ✅ `tests/test_auth_login.py` (테스트)
360
438
  - ✅ `src/auth/service.py` (구현)
@@ -363,50 +441,188 @@ claude
363
441
 
364
442
  ---
365
443
 
366
- ## ⬆️ 업그레이드 가이드 (v0.3.0 v0.3.x)
444
+ ## 🎓 번째 프로젝트: Todo API 만들기
367
445
 
368
- ### 1단계: 패키지 업데이트
446
+ ### Step 1: SPEC 작성 (5분)
447
+
448
+ **Alfred에게 요청**:
369
449
 
370
450
  ```bash
371
- uv pip install --upgrade moai-adk
451
+ /alfred:1-spec "할 추가, 조회, 수정, 삭제 API"
372
452
  ```
373
453
 
374
- ### 2단계: 프로젝트 업데이트
454
+ **Alfred가 생성하는 것**:
455
+
456
+ - `.moai/specs/SPEC-TODO-001/spec.md` (EARS 구문)
457
+ - `.moai/specs/SPEC-TODO-001/plan.md` (구현 계획)
458
+ - `feature/SPEC-TODO-001` 브랜치 (Team 모드)
459
+ - Draft PR (Team 모드)
460
+
461
+ **생성된 SPEC 예시**:
462
+
463
+ ```yaml
464
+ ---
465
+ id: TODO-001
466
+ version: 0.0.1
467
+ status: draft
468
+ created: 2025-10-17
469
+ updated: 2025-10-17
470
+ author: @Goos
471
+ priority: high
472
+ ---
473
+
474
+ # @SPEC:TODO-001: Todo API
475
+
476
+ ## Ubiquitous
477
+ - 시스템은 할 일 CRUD 기능을 제공해야 한다
478
+
479
+ ## Event-driven
480
+ - WHEN 사용자가 새 할 일을 생성하면, 시스템은 고유 ID를 부여해야 한다
481
+ - WHEN 사용자가 할 일을 완료 처리하면, 시스템은 completed_at 타임스탬프를 기록해야 한다
482
+
483
+ ## Constraints
484
+ - 할 일 제목은 1-200자여야 한다
485
+ - 할 일은 작성자만 수정/삭제할 수 있어야 한다
486
+ ```
487
+
488
+ ---
489
+
490
+ ### Step 2: TDD 구현 (10분)
491
+
492
+ **Alfred에게 요청**:
375
493
 
376
494
  ```bash
377
- cd your-project
378
- moai-adk update
495
+ /alfred:2-build TODO-001
379
496
  ```
380
497
 
381
- **자동 백업**: 업데이트 전 `.moai-backups/{timestamp}/`에 자동 백업 생성
498
+ **Alfred의 3단계 TDD 프로세스**:
499
+
500
+ ```mermaid
501
+ stateDiagram-v2
502
+ [*] --> Phase1: SPEC 분석
503
+ Phase1 --> Phase2: 계획 수립
504
+
505
+ Phase2 --> RED: TDD 시작
506
+ RED --> GREEN: 테스트 통과
507
+ GREEN --> REFACTOR: 품질 개선
508
+
509
+ REFACTOR --> Phase3: 품질 검증
510
+ Phase3 --> [*]: 완료
511
+
512
+ note right of RED
513
+ 🔴 RED
514
+ - 실패하는 테스트 작성
515
+ - @TEST:TODO-001 TAG 추가
516
+ end note
517
+
518
+ note right of GREEN
519
+ 🟢 GREEN
520
+ - 최소 구현으로 테스트 통과
521
+ - @CODE:TODO-001 TAG 추가
522
+ end note
523
+
524
+ note right of REFACTOR
525
+ ♻️ REFACTOR
526
+ - 코드 품질 개선
527
+ - 중복 제거, 가독성 향상
528
+ end note
529
+
530
+ note right of Phase3
531
+ ✅ 품질 게이트
532
+ - TRUST 5원칙 검증
533
+ - 테스트 커버리지 확인
534
+ end note
535
+ ```
382
536
 
383
- ### 3단계: Claude Code 최적화
537
+ **생성된 파일들**:
384
538
 
385
539
  ```text
386
- claude
387
- /alfred:0-project
540
+ tests/test_todo_api.py # @TEST:TODO-001
541
+ src/todo/service.py # @CODE:TODO-001:DOMAIN
542
+ src/todo/models.py # @CODE:TODO-001:DATA
543
+ src/todo/routes.py # @CODE:TODO-001:API
388
544
  ```
389
545
 
390
- 병합 프롬프트에서 **Merge** 선택 → 기존 문서 유지 + 새 템플릿 추가
546
+ ---
391
547
 
392
- ### 검증 체크리스트
548
+ ### Step 3: 문서 동기화 (2분)
549
+
550
+ **Alfred에게 요청**:
393
551
 
394
552
  ```bash
395
- # 상태 확인
396
- moai-adk status
553
+ /alfred:3-sync
554
+ ```
555
+
556
+ **Alfred가 자동 수행**:
557
+
558
+ 1. **품질 검증** (Haiku 에이전트)
559
+ - TRUST 5원칙 준수 확인
560
+ - TAG 체인 무결성 검증
561
+
562
+ 2. **문서 동기화** (Haiku 에이전트)
563
+ - API 문서 자동 생성 (`docs/api/todo.md`)
564
+ - @DOC:TODO-001 TAG 추가
565
+
566
+ 3. **PR 준비** (Team 모드)
567
+ - Draft → Ready 전환
568
+ - CI/CD 확인
569
+ - (선택) `--auto-merge`로 자동 병합
570
+
571
+ **생성된 문서**:
572
+
573
+ ```markdown
574
+ # @DOC:TODO-001: Todo API
575
+
576
+ ## API Endpoints
577
+
578
+ ### POST /api/todos
397
579
 
398
- # 확인 항목
399
- # ✅ .moai/config.json → moai.version: "0.3.x"
400
- # ✅ .moai/config.json → project.moai_adk_version: "0.3.x"
401
- # ✅ 모든 커맨드 정상 작동
402
- # ✅ 템플릿 파일 병합 완료
580
+ 생성
403
581
 
404
- ### v0.3.x 시리즈 주요 개선사항
582
+ **Request**:
405
583
 
406
- - **Event-Driven Checkpoint**: 위험한 작업 전 자동 백업
407
- - **BackupMerger**: 스마트 백업 병합 (사용자 파일 보존)
408
- - **버전 추적**: 자동 버전 감지 및 최적화 안내
409
- - **Claude Code Hooks 통합**: SessionStart, PreToolUse, PostToolUse 훅
584
+ ```json
585
+ {
586
+ "title": "장보기",
587
+ "description": "우유, 빵"
588
+ }
589
+ ```
590
+
591
+ **Response**:
592
+
593
+ ```json
594
+ {
595
+ "id": "uuid-123",
596
+ "title": "장보기",
597
+ "completed": false,
598
+ "created_at": "2025-10-17T10:00:00Z"
599
+ }
600
+ ```
601
+ ```
602
+
603
+ ---
604
+
605
+ ### 🎉 완료! 15분 만에 Todo API 완성
606
+
607
+ **생성된 것들**:
608
+
609
+ - ✅ `.moai/specs/SPEC-TODO-001/` (명세, 계획, 수락 기준)
610
+ - ✅ `tests/test_todo_api.py` (테스트 - 커버리지 87%)
611
+ - ✅ `src/todo/` (구현 - 3개 파일, 총 180 LOC)
612
+ - ✅ `docs/api/todo.md` (API 문서)
613
+ - ✅ `@SPEC → @TEST → @CODE → @DOC` TAG 체인
614
+
615
+ **검증 명령어**:
616
+
617
+ ```bash
618
+ # TAG 체인 확인
619
+ rg '@(SPEC|TEST|CODE|DOC):TODO-001' -n
620
+
621
+ # 테스트 실행
622
+ pytest tests/test_todo_api.py -v
623
+
624
+ # API 문서 확인
625
+ cat docs/api/todo.md
410
626
  ```
411
627
 
412
628
  ---
@@ -415,11 +631,21 @@ moai-adk status
415
631
 
416
632
  Alfred의 핵심은 **체계적인 3단계 워크플로우**입니다.
417
633
 
634
+ ```mermaid
635
+ graph TD
636
+ Start([사용자 요청]) --> Spec[1️⃣ SPEC 작성<br/>/alfred:1-spec]
637
+ Spec --> Build[2️⃣ TDD 구현<br/>/alfred:2-build]
638
+ Build --> Sync[3️⃣ 문서 동기화<br/>/alfred:3-sync]
639
+ Sync --> End([완료])
640
+ Sync -.-> Spec
641
+ ```
642
+
418
643
  ### 1️⃣ SPEC - 명세 작성
419
644
 
420
645
  **명령어**: `/alfred:1-spec "JWT 기반 사용자 로그인 API"`
421
646
 
422
647
  **Alfred가 자동 수행:**
648
+
423
649
  - EARS 형식 명세 자동 생성
424
650
  - `@SPEC:ID` TAG 부여
425
651
  - Git 브랜치 자동 생성 (Team 모드)
@@ -427,6 +653,7 @@ Alfred의 핵심은 **체계적인 3단계 워크플로우**입니다.
427
653
  - HISTORY 섹션 자동 추가
428
654
 
429
655
  **산출물:**
656
+
430
657
  - `.moai/specs/SPEC-AUTH-001/spec.md`
431
658
  - `.moai/specs/SPEC-AUTH-001/plan.md`
432
659
  - `.moai/specs/SPEC-AUTH-001/acceptance.md`
@@ -435,36 +662,217 @@ Alfred의 핵심은 **체계적인 3단계 워크플로우**입니다.
435
662
 
436
663
  **명령어**: `/alfred:2-build AUTH-001`
437
664
 
438
- **Alfred가 자동 수행:**
439
- - **RED**: 실패하는 테스트 작성
440
- - **GREEN**: 최소 구현으로 테스트 통과
441
- - **REFACTOR**: 코드 품질 개선
442
- - TRUST 5원칙 자동 검증
443
- - 단계별 Git 커밋 (TDD 완료 시 1회)
665
+ **Alfred가 자동 수행 (3개 에이전트 협업):**
666
+
667
+ - **Phase 1 (implementation-planner)**: SPEC 분석, 라이브러리 선정, TAG 체인 설계
668
+ - **Phase 2 (tdd-implementer)**: RED GREEN → REFACTOR TDD 사이클
669
+ - **RED**: 실패하는 테스트 작성 (@TEST:ID)
670
+ - **GREEN**: 최소 구현으로 테스트 통과 (@CODE:ID)
671
+ - **REFACTOR**: 코드 품질 개선
672
+ - **Phase 3 (quality-gate)**: TRUST 5원칙 자동 검증 (Pass/Warning/Critical)
673
+ - **Phase 4 (git-manager)**: 단계별 Git 커밋 (TDD 완료 시 1회)
444
674
 
445
675
  **산출물:**
676
+
446
677
  - `tests/test_auth_login.py` (테스트 코드)
447
678
  - `src/auth/service.py` (구현 코드)
448
679
  - `@TEST:AUTH-001` → `@CODE:AUTH-001` TAG 체인
680
+ - 품질 검증 리포트
449
681
 
450
682
  ### 3️⃣ SYNC - 문서 동기화
451
683
 
452
684
  **명령어**: `/alfred:3-sync`
453
685
 
454
686
  **Alfred가 자동 수행:**
455
- - Living Document 업데이트
456
- - TAG 시스템 무결성 검증
457
- - sync-report.md 생성
458
- - PR Ready 전환 (Team 모드)
459
- - 선택적 자동 머지 (`--auto-merge`)
687
+
688
+ - **Phase 1 (quality-gate)**: 동기화 전 빠른 품질 검증 (조건부, 변경 라인 >50줄)
689
+ - **Phase 2 (doc-syncer)**: Living Document 업데이트
690
+ - **Phase 3 (tag-agent)**: TAG 시스템 무결성 검증
691
+ - **Phase 4 (git-manager)**: sync-report.md 생성, PR Ready 전환 (Team 모드)
692
+ - **선택적 자동 머지** (`--auto-merge`): CI/CD 확인 후 자동 병합
460
693
 
461
694
  **산출물:**
695
+
462
696
  - `docs/api/auth.md` (API 문서)
463
697
  - `.moai/reports/sync-report.md`
464
698
  - `@DOC:AUTH-001` TAG 추가
465
699
 
466
700
  ---
467
701
 
702
+ ## 🔥 실전 시나리오
703
+
704
+ ### 시나리오 1: 긴급 버그 수정 (Hotfix)
705
+
706
+ **상황**: 프로덕션에서 로그인 에러 발생!
707
+
708
+ ```bash
709
+ # 옵션 1: 표준 방식 (권장)
710
+ git checkout develop
711
+ git checkout -b hotfix/auth-error
712
+ # ... 수정 ...
713
+ git push origin hotfix/auth-error
714
+ # PR 생성: hotfix -> develop -> main
715
+
716
+ # 옵션 2: 직접 main 수정 (허용, 하지만 권장 안 함)
717
+ git checkout main
718
+ # ... 수정 ...
719
+ git commit -m "Fix critical auth bug"
720
+ git push origin main # ⚠️ Advisory 경고 표시되지만 진행됨
721
+ ```
722
+
723
+ **Alfred의 Advisory 경고**:
724
+
725
+ ```text
726
+ ⚠️ ADVISORY: Non-standard GitFlow detected
727
+
728
+ Current branch: hotfix/auth-error
729
+ Target branch: main
730
+
731
+ Recommended GitFlow workflow:
732
+ 1. Push to hotfix and create PR to develop
733
+ 2. Merge into develop after code review
734
+ 3. When develop is stable, create PR from develop to main
735
+ 4. Release manager merges develop -> main with tag
736
+
737
+ ✓ Push will proceed (flexibility mode enabled)
738
+ ```
739
+
740
+ ---
741
+
742
+ ### 시나리오 2: 새 기능 개발 (Feature)
743
+
744
+ ```bash
745
+ # 1. develop에서 최신 코드 받기
746
+ git checkout develop
747
+ git pull origin develop
748
+
749
+ # 2. Claude Code에서 SPEC 작성
750
+ /alfred:1-spec "사용자 프로필 이미지 업로드"
751
+ # → feature/SPEC-PROFILE-001 브랜치 자동 생성
752
+ # → Draft PR 자동 생성 (feature → develop)
753
+
754
+ # 3. TDD 구현
755
+ /alfred:2-build PROFILE-001
756
+
757
+ # 4. 문서 동기화 + 자동 머지
758
+ /alfred:3-sync --auto-merge
759
+ # → 문서 동기화
760
+ # → PR Ready 전환
761
+ # → CI/CD 확인
762
+ # → PR 자동 머지 (squash)
763
+ # → develop 체크아웃
764
+ # → 다음 작업 준비 완료 ✅
765
+ ```
766
+
767
+ ---
768
+
769
+ ### 시나리오 3: Release 준비
770
+
771
+ ```bash
772
+ # 표준 방식 (권장):
773
+ git checkout develop
774
+ gh pr create --base main --head develop --title "Release v1.0.0"
775
+
776
+ # 직접 push 방식 (허용):
777
+ git checkout develop
778
+ git push origin main # ⚠️ Advisory 경고 표시되지만 진행됨
779
+ git tag -a v1.0.0 -m "Release v1.0.0"
780
+ git push origin v1.0.0
781
+ ```
782
+
783
+ ---
784
+
785
+ ## 🧠 AI 모델 선택 가이드
786
+
787
+ MoAI-ADK는 **Haiku 4.5**와 **Sonnet 4.5** 두 가지 AI 모델을 전략적으로 활용하여 **최적의 성능과 비용 효율**을 제공합니다.
788
+
789
+ ### 패스트 모드 vs 스마트 모드
790
+
791
+ Claude Code에서 `/model` 명령어로 전체 세션의 기본 모델을 변경할 수 있습니다:
792
+
793
+ ```text
794
+ # 패스트 모드 (빠른 응답, 반복 작업)
795
+ /model haiku
796
+
797
+ # 스마트 모드 (복잡한 판단, 설계)
798
+ /model sonnet
799
+ ```
800
+
801
+ ### 12개 에이전트의 모델 배치 전략
802
+
803
+ Alfred는 **작업 특성**에 따라 각 에이전트에 최적 모델을 할당합니다:
804
+
805
+ #### 🚀 Haiku 에이전트 (6개) - 패스트 모드
806
+
807
+ **빠른 응답이 필요한 반복 작업 및 패턴 매칭**
808
+
809
+ | 에이전트 | 역할 | 왜 Haiku? |
810
+ | ------------------- | --------------- | -------------------------------------------- |
811
+ | **doc-syncer** 📖 | 문서 동기화 | 패턴화된 문서 업데이트, Living Document 생성 |
812
+ | **tag-agent** 🏷️ | TAG 시스템 관리 | 반복적 패턴 매칭, TAG 체인 검증 |
813
+ | **git-manager** 🚀 | Git 워크플로우 | 정형화된 Git 명령어 실행, 브랜치/PR 생성 |
814
+ | **trust-checker** ✅ | TRUST 원칙 검증 | 규칙 기반 체크리스트 확인 |
815
+ | **quality-gate** 🛡️ | 품질 검증 | TRUST 원칙 자동 검증, 빠른 품질 게이트 |
816
+ | **Explore** 🔍 | 코드베이스 탐색 | 대량 파일 스캔, 키워드 검색 |
817
+
818
+ **장점**:
819
+
820
+ - ⚡ **속도 2~5배 향상**: 실시간 응답 (수 초 → 1초 이내)
821
+ - 💰 **비용 67% 절감**: 반복 작업이 많은 프로젝트에 효과적
822
+ - 🎯 **높은 정확도**: 패턴화된 작업에서 Sonnet과 동등한 품질
823
+
824
+ #### 🧠 Sonnet 에이전트 (6개) - 스마트 모드
825
+
826
+ **복잡한 판단과 창의적 설계가 필요한 작업**
827
+
828
+ | 에이전트 | 역할 | 왜 Sonnet? |
829
+ | ---------------------------- | ---------------- | ------------------------------------ |
830
+ | **spec-builder** 🏗️ | SPEC 작성 | EARS 구조 설계, 복잡한 요구사항 분석 |
831
+ | **implementation-planner** 📋 | 구현 전략 수립 | 아키텍처 설계, 라이브러리 선정 |
832
+ | **tdd-implementer** 🔬 | TDD 구현 | RED-GREEN-REFACTOR, 복잡한 리팩토링 |
833
+ | **debug-helper** 🔍 | 디버깅 | 런타임 오류 분석, 해결 방법 도출 |
834
+ | **cc-manager** 🛠️ | Claude Code 설정 | 워크플로우 최적화, 복잡한 설정 |
835
+ | **project-manager** 📂 | 프로젝트 초기화 | 전략 수립, 복잡한 의사결정 |
836
+
837
+ **장점**:
838
+
839
+ - 🎯 **높은 품질**: 복잡한 코드 품질 보장
840
+ - 🧠 **깊은 이해**: 맥락 파악 및 창의적 해결책 제시
841
+ - 🏆 **정확한 판단**: 아키텍처 결정, 설계 선택
842
+
843
+ ### 사용 시나리오별 권장 모델
844
+
845
+ | 시나리오 | 권장 모델 | 이유 |
846
+ | ---------------------- | --------- | ----------------------------- |
847
+ | 🆕 **새 프로젝트 시작** | Sonnet | SPEC 설계, 아키텍처 결정 필요 |
848
+ | 🔄 **반복 개발** | Haiku | 이미 정해진 패턴 반복 구현 |
849
+ | 🐛 **버그 수정** | Sonnet | 원인 분석 및 해결 방법 도출 |
850
+ | 📝 **문서 작성** | Haiku | Living Document 동기화 |
851
+ | 🔍 **코드 탐색** | Haiku | 파일 검색, TAG 조회 |
852
+ | ♻️ **리팩토링** | Sonnet | 구조 개선, 복잡한 변경 |
853
+
854
+ ### 모델 전환 팁
855
+
856
+ ```text
857
+ # 새 기능 설계 시작
858
+ /model sonnet
859
+ /alfred:1-spec "사용자 인증 시스템"
860
+
861
+ # SPEC 승인 후 TDD 구현
862
+ /alfred:2-build AUTH-001
863
+
864
+ # 구현 완료 후 문서 동기화 (자동으로 Haiku 사용)
865
+ /alfred:3-sync
866
+
867
+ # 다음 기능 설계
868
+ /model sonnet
869
+ /alfred:1-spec "결제 시스템"
870
+ ```
871
+
872
+ **Pro Tip**: Alfred는 각 에이전트를 호출할 때 자동으로 최적 모델을 사용하므로, **세션 전체 모델 변경은 선택사항**입니다. 기본 설정(Sonnet)으로도 충분히 효율적입니다.
873
+
874
+ ---
875
+
468
876
  ## 🛠️ CLI Reference
469
877
 
470
878
  ### 프로젝트 관리
@@ -518,12 +926,12 @@ moai-adk --help
518
926
 
519
927
  각 Alfred 커맨드는 적절한 에이전트를 호출하며, **자동으로 최적 모델**을 사용합니다:
520
928
 
521
- | 커맨드 | 에이전트 | 모델 | 작업 특성 | 예상 시간 |
522
- | ------------------- | ----------------- | -------------- | ----------------------------------- | --------- |
523
- | `/alfred:0-project` | project-manager 📋 | 세션 기본 모델 | 프로젝트 전략 수립, 복잡한 의사결정 | 1~2분 |
524
- | `/alfred:1-spec` | spec-builder 🏗️ | 세션 기본 모델 | EARS 명세 설계, 요구사항 분석 | 2~3분 |
525
- | `/alfred:2-build` | code-builder 💎 | 세션 기본 모델 | TDD 구현, 아키텍처 설계 | 3~5분 |
526
- | `/alfred:3-sync` | doc-syncer 📖 | **Haiku 지정** | Living Document 동기화, 패턴 기반 | 30초~1분 |
929
+ | 커맨드 | 에이전트 (Phase) | 모델 | 작업 특성 | 예상 시간 |
930
+ | ------------------- | ------------------------------------------------------------- | -------------------------- | ---------------------------------------- | --------- |
931
+ | `/alfred:0-project` | project-manager 📂 | 세션 기본 모델 | 프로젝트 전략 수립, 복잡한 의사결정 | 1~2분 |
932
+ | `/alfred:1-spec` | spec-builder 🏗️ | 세션 기본 모델 | EARS 명세 설계, 요구사항 분석 | 2~3분 |
933
+ | `/alfred:2-build` | implementation-planner 📋 → tdd-implementer 🔬 → quality-gate 🛡️ | 세션 기본 모델 + **Haiku** | SPEC 분석 → TDD 구현 품질 검증 (3단계) | 3~5분 |
934
+ | `/alfred:3-sync` | quality-gate 🛡️ → doc-syncer 📖 → tag-agent 🏷️ | **Haiku 지정** | 사전 검증 문서 동기화 → TAG 검증 | 30초~1분 |
527
935
 
528
936
  #### 온디맨드 에이전트 호출
529
937
 
@@ -534,14 +942,15 @@ moai-adk --help
534
942
  @agent-tag-agent "AUTH 도메인 TAG 목록 조회"
535
943
  @agent-git-manager "브랜치 생성 및 PR 생성"
536
944
  @agent-trust-checker "TRUST 원칙 준수 여부 확인"
945
+ @agent-quality-gate "코드 품질 검증 실행"
946
+ @agent-Explore "JWT 인증 관련 코드 위치 탐색"
537
947
 
538
948
  # Sonnet 에이전트 (복잡한 작업)
539
- @agent-debug-helper "TypeError 오류 원인 분석"
540
949
  @agent-spec-builder "SPEC-AUTH-001 메타데이터 검증"
950
+ @agent-implementation-planner "AUTH-001 구현 계획 수립"
951
+ @agent-tdd-implementer "AUTH-001 TDD 구현 실행"
952
+ @agent-debug-helper "TypeError 런타임 오류 원인 분석"
541
953
  @agent-cc-manager "Claude Code 설정 최적화"
542
-
543
- # Explore 에이전트 (Haiku, 코드 탐색)
544
- @agent-Explore "JWT 인증 관련 코드 위치 탐색"
545
954
  ```
546
955
 
547
956
  #### 모델별 성능 비교
@@ -556,6 +965,7 @@ moai-adk --help
556
965
  | **디버깅** | 1분 | 2~3분 | 세션 기본 모델 사용 |
557
966
 
558
967
  **핵심 설계**:
968
+
559
969
  - `/alfred:0-project`, `/alfred:1-spec`, `/alfred:2-build`: **사용자가 선택한 세션 기본 모델** 사용
560
970
  - `/model sonnet` (기본값): 높은 품질, 복잡한 판단
561
971
  - `/model haiku`: 빠른 속도, 반복 작업
@@ -575,9 +985,10 @@ Alfred는 작업 특성과 사용자 경험 수준에 따라 **3가지 출력
575
985
 
576
986
  **대상**: 실무 개발자, 팀 리더, 아키텍트
577
987
 
578
- Alfred SuperAgent가 9개 전문 에이전트를 조율하여 빠른 개발과 협업을 자동으로 전환하는 통합 코딩 모드입니다.
988
+ Alfred SuperAgent가 11개 전문 에이전트를 조율하여 빠른 개발과 협업을 자동으로 전환하는 통합 코딩 모드입니다.
579
989
 
580
990
  **두 가지 작업 방식**:
991
+
581
992
  - **⚡ Fast Mode (기본)**: 빠른 개발, 구현 위주 작업
582
993
  - SPEC → TDD → SYNC 자동화
583
994
  - 간결한 기술 커뮤니케이션
@@ -590,12 +1001,14 @@ Alfred SuperAgent가 9개 전문 에이전트를 조율하여 빠른 개발과
590
1001
  - 실시간 코드 리뷰
591
1002
 
592
1003
  **핵심 원칙**:
1004
+
593
1005
  - SPEC 우선: 모든 작업은 @SPEC:ID부터 시작
594
1006
  - TAG 무결성: `rg` 스캔 기반 실시간 검증
595
1007
  - TRUST 준수: 5원칙 자동 검증 및 품질 게이트
596
1008
  - 다중 언어: 17개 언어 지원 (Python, TypeScript, JavaScript, Java, Go, Rust, Dart, Swift, Kotlin, PHP, Ruby, C++, C, C#, Haskell, Shell, Lua)
597
1009
 
598
1010
  **사용**:
1011
+
599
1012
  ```text
600
1013
  /output-style agentic-coding
601
1014
  ```
@@ -611,6 +1024,7 @@ MoAI-ADK의 핵심 개념과 3단계 워크플로우를 친절하게 설명하
611
1024
  **핵심 철학**: "명세 없으면 코드 없다, 테스트 없으면 구현 없다"
612
1025
 
613
1026
  **3가지 핵심 개념**:
1027
+
614
1028
  1. **SPEC-First**: 코드 작성 전 명세를 먼저 작성
615
1029
  - EARS 구문 (5가지 패턴)으로 요구사항 작성
616
1030
  - Ubiquitous, Event-driven, State-driven, Optional, Constraints
@@ -621,12 +1035,14 @@ MoAI-ADK의 핵심 개념과 3단계 워크플로우를 친절하게 설명하
621
1035
  - Test First, Readable, Unified, Secured, Trackable
622
1036
 
623
1037
  **학습 내용**:
1038
+
624
1039
  - 각 개념을 실생활 비유로 쉽게 설명
625
1040
  - 3단계 워크플로우 단계별 학습
626
1041
  - 실제 예시로 SPEC 작성 연습
627
1042
  - FAQ로 자주 묻는 질문 해결
628
1043
 
629
1044
  **사용**:
1045
+
630
1046
  ```text
631
1047
  /output-style moai-adk-learning
632
1048
  ```
@@ -662,12 +1078,14 @@ Alfred가 함께 배우는 친구처럼 새로운 기술을 쉽게 설명하고,
662
1078
  - 완성된 코드 품질 검증
663
1079
 
664
1080
  **특징**:
1081
+
665
1082
  - 복잡한 개념을 쉽게 풀어서 설명
666
1083
  - 실생활 비유로 이해도 향상
667
1084
  - 단계별로 함께 실습
668
1085
  - 자주 묻는 질문에 답변
669
1086
 
670
1087
  **사용**:
1088
+
671
1089
  ```text
672
1090
  /output-style study-with-alfred
673
1091
  ```
@@ -687,6 +1105,7 @@ Alfred가 함께 배우는 친구처럼 새로운 기술을 쉽게 설명하고,
687
1105
  | 🤝 **팀 협업** | Agentic Coding (Collab) | 트레이드오프 분석, 브레인스토밍 |
688
1106
 
689
1107
  **스타일 전환 예시**:
1108
+
690
1109
  ```text
691
1110
  # MoAI-ADK 처음 시작 시
692
1111
  /output-style moai-adk-learning
@@ -789,6 +1208,7 @@ Alfred는 프로젝트 루트의 설정 파일을 자동으로 감지하여 언
789
1208
  | **T**rackable | @TAG | @TAG | @TAG |
790
1209
 
791
1210
  **공통 원칙**:
1211
+
792
1212
  - 모든 언어는 `@TAG 시스템`으로 SPEC→TEST→CODE→DOC 추적성 보장
793
1213
  - 언어별 표준 도구 체인을 자동 감지 및 적용
794
1214
  - TRUST 5원칙은 모든 프로젝트에 일관되게 적용
@@ -819,28 +1239,33 @@ Alfred는 각 디렉토리의 언어를 자동 감지하고 적절한 도구 체
819
1239
  Alfred가 모든 코드에 자동으로 적용하는 품질 기준입니다.
820
1240
 
821
1241
  ### T - Test First (테스트 우선)
1242
+
822
1243
  - SPEC 기반 테스트 케이스 작성
823
1244
  - TDD RED → GREEN → REFACTOR 사이클
824
1245
  - 테스트 커버리지 ≥ 85%
825
1246
 
826
1247
  ### R - Readable (가독성)
1248
+
827
1249
  - 파일 ≤ 300 LOC
828
1250
  - 함수 ≤ 50 LOC
829
1251
  - 매개변수 ≤ 5개
830
1252
  - 복잡도 ≤ 10
831
1253
 
832
1254
  ### U - Unified (통일성)
1255
+
833
1256
  - 타입 안전성 또는 런타임 검증
834
1257
  - 아키텍처 일관성
835
1258
  - 코딩 스타일 통일
836
1259
 
837
1260
  ### S - Secured (보안)
1261
+
838
1262
  - 입력 검증
839
1263
  - 로깅 및 감사
840
1264
  - 비밀 관리
841
1265
  - 정적 분석
842
1266
 
843
1267
  ### T - Trackable (추적성)
1268
+
844
1269
  - `@SPEC → @TEST → @CODE → @DOC` TAG 체인
845
1270
  - CODE-FIRST 원칙 (코드 직접 스캔)
846
1271
  - HISTORY 섹션 기록
@@ -862,11 +1287,146 @@ Alfred가 모든 코드에 자동으로 적용하는 품질 기준입니다.
862
1287
 
863
1288
  ---
864
1289
 
1290
+ ## 📐 코드 품질 가이드
1291
+
1292
+ ### 리팩토링 규칙: 3회 반복 규칙
1293
+
1294
+ **원칙**: 동일한 패턴이 3번째 반복될 때 리팩토링을 고려합니다.
1295
+
1296
+ ```python
1297
+ # ❌ 반복 1회: 복사-붙여넣기 OK
1298
+ def process_user_data(user):
1299
+ if not user.is_active:
1300
+ return None
1301
+ return user.data
1302
+
1303
+ # ❌ 반복 2회: 복사-붙여넣기 OK (하지만 주의)
1304
+ def process_admin_data(admin):
1305
+ if not admin.is_active:
1306
+ return None
1307
+ return admin.data
1308
+
1309
+ # ✅ 반복 3회: 리팩토링 필수!
1310
+ def process_data(entity):
1311
+ """공통 로직 추출"""
1312
+ if not entity.is_active:
1313
+ return None
1314
+ return entity.data
1315
+ ```
1316
+
1317
+ ### 변수 역할 참고 (11가지 패턴)
1318
+
1319
+ **변수 명명에 도움이 되는 역할 분류**:
1320
+
1321
+ | 역할 | 설명 | 예시 |
1322
+ | ------------------ | ----------------------- | ------------------------------------- |
1323
+ | Fixed Value | 초기화 후 불변 | `const MAX_SIZE = 100` |
1324
+ | Stepper | 순차적으로 변화 | `for (let i = 0; i < n; i++)` |
1325
+ | Flag | 불린 상태 표시 | `let isValid = true` |
1326
+ | Walker | 자료구조 순회 | `while (node) { node = node.next; }` |
1327
+ | Most Recent Holder | 가장 최근 값 보관 | `let lastError` |
1328
+ | Most Wanted Holder | 최적/최대값 보관 | `let bestScore = -Infinity` |
1329
+ | Gatherer | 누적기 | `sum += value` |
1330
+ | Container | 여러 값 저장 | `const list = []` |
1331
+ | Follower | 다른 변수의 이전 값 | `prev = curr; curr = next;` |
1332
+ | Organizer | 데이터 재구성 | `const sorted = array.sort()` |
1333
+ | Temporary | 임시 저장 | `const temp = a; a = b; b = temp;` |
1334
+
1335
+ **실제 적용 예시**:
1336
+
1337
+ ```python
1338
+ # ✅ 좋은 예: 역할이 명확한 변수명
1339
+ def find_max_score(scores: List[int]) -> int:
1340
+ """최고 점수 찾기"""
1341
+ best_score = -float('inf') # Most Wanted Holder
1342
+
1343
+ for score in scores: # Stepper (implicit)
1344
+ if score > best_score:
1345
+ best_score = score
1346
+
1347
+ return best_score
1348
+
1349
+
1350
+ # ❌ 나쁜 예: 역할이 불명확한 변수명
1351
+ def find_max(data):
1352
+ x = -999999
1353
+ for d in data:
1354
+ if d > x:
1355
+ x = d
1356
+ return x
1357
+ ```
1358
+
1359
+ ---
1360
+
1361
+ ## ⬆️ 업그레이드 가이드
1362
+
1363
+ ### 1단계: 패키지 업데이트
1364
+
1365
+ ```bash
1366
+ moai-adk update
1367
+
1368
+ # 또는
1369
+ uv pip install --upgrade moai-adk
1370
+ ```
1371
+
1372
+ ### 2단계: 프로젝트 업데이트
1373
+
1374
+ ```bash
1375
+ cd your-project
1376
+ moai-adk init .
1377
+ ```
1378
+
1379
+ **자동 백업**: 업데이트 전 `.moai-backups/{timestamp}/`에 자동 백업 생성
1380
+
1381
+ ### 3단계: Claude Code 최적화
1382
+
1383
+ ```text
1384
+ $ claude
1385
+ > /alfred:0-project
1386
+ ```
1387
+
1388
+ 병합 프롬프트에서 **Merge** 선택 → 기존 문서 유지 + 새 템플릿 추가
1389
+
1390
+ ### 검증 체크리스트
1391
+
1392
+ ```bash
1393
+ # 상태 확인
1394
+ moai-adk status
1395
+
1396
+ ## 출력 예시:
1397
+ ╭────── Project Status ──────╮
1398
+ │ Mode team │
1399
+ │ Locale ko │
1400
+ │ SPECs 23 │
1401
+ │ Branch develop │
1402
+ │ Git Status Clean │
1403
+ ╰────────────────────────────╯
1404
+ ```
1405
+
1406
+ ```bash
1407
+ # 시스템 진단
1408
+ moai-adk doctor
1409
+
1410
+ ## 출력 예시:
1411
+ Running system diagnostics...
1412
+ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓
1413
+ ┃ Check ┃ Status ┃
1414
+ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩
1415
+ │ Python >= 3.13 │ ✓ │
1416
+ │ Git installed │ ✓ │
1417
+ │ Project structure (.moai/) │ ✓ │
1418
+ │ Config file (.moai/config.json) │ ✓ │
1419
+ └──────────────────────────────────────────┴────────┘
1420
+ ```
1421
+
1422
+ ---
1423
+
865
1424
  ## ❓ FAQ
866
1425
 
867
1426
  ### Q1: MoAI-ADK는 어떤 프로젝트에 적합한가요?
868
1427
 
869
1428
  **A**: 다음과 같은 프로젝트에 적합합니다:
1429
+
870
1430
  - ✅ 새로운 프로젝트 (그린필드)
871
1431
  - ✅ 기존 프로젝트 (레거시 도입)
872
1432
  - ✅ 개인 프로젝트 (Personal 모드)
@@ -884,12 +1444,14 @@ Alfred가 모든 코드에 자동으로 적용하는 품질 기준입니다.
884
1444
  ### Q4: Personal 모드와 Team 모드의 차이는?
885
1445
 
886
1446
  **A**:
1447
+
887
1448
  - **Personal 모드**: 로컬 작업 중심, 체크포인트만 생성
888
1449
  - **Team 모드**: GitFlow 지원, Draft PR 자동 생성, develop 브랜치 기반
889
1450
 
890
1451
  ### Q5: SPEC 메타데이터는 어떻게 관리하나요?
891
1452
 
892
1453
  **A**: `.moai/memory/spec-metadata.md`에 전체 가이드가 있습니다.
1454
+
893
1455
  - **필수 7개**: id, version, status, created, updated, author, priority
894
1456
  - **선택 9개**: category, labels, depends_on, blocks, related_specs, related_issue, scope
895
1457
  - **HISTORY 섹션**: 모든 변경 이력 기록 (필수)
@@ -901,13 +1463,14 @@ Alfred가 모든 코드에 자동으로 적용하는 품질 기준입니다.
901
1463
  ### Q7: Context Engineering이란?
902
1464
 
903
1465
  **A**:
1466
+
904
1467
  - **JIT Retrieval**: 필요한 순간에만 문서 로드 (초기 컨텍스트 최소화)
905
- - **Compaction**: 토큰 사용량 >70% 시 요약 후 새 세션 권장
906
1468
  - **Explore 에이전트**: 대규모 코드베이스 효율적 탐색
907
1469
 
908
1470
  ### Q8: 자동 백업은 어떻게 작동하나요?
909
1471
 
910
1472
  **A**:
1473
+
911
1474
  - **Template Processor**: 업데이트 전 `.moai-backups/alfred-{timestamp}/` 자동 백업
912
1475
  - **Event-Driven Checkpoint**: 위험한 작업 전 자동 checkpoint 생성
913
1476
  - **보존 정책**: 최대 10개 유지, 7일 후 자동 정리
@@ -915,6 +1478,7 @@ Alfred가 모든 코드에 자동으로 적용하는 품질 기준입니다.
915
1478
  ### Q9: /model 명령어를 사용해야 하나요?
916
1479
 
917
1480
  **A**: **선택사항**입니다. Alfred는 이미 각 에이전트에 최적 모델을 할당했으므로:
1481
+
918
1482
  - ✅ **기본 설정 유지** (권장): Alfred가 자동으로 작업별 최적 모델 사용
919
1483
  - ⚡ **패스트 모드**: `/model haiku` - 반복 작업 시 전체 세션을 Haiku로
920
1484
  - 🧠 **스마트 모드**: `/model sonnet` - 복잡한 판단이 계속 필요할 때
@@ -924,11 +1488,13 @@ Alfred가 모든 코드에 자동으로 적용하는 품질 기준입니다.
924
1488
  ### Q10: Haiku와 Sonnet의 비용 차이는?
925
1489
 
926
1490
  **A**:
1491
+
927
1492
  - **Haiku**: $1 / 1M 입력 토큰, $5 / 1M 출력 토큰
928
1493
  - **Sonnet**: $3 / 1M 입력 토큰, $15 / 1M 출력 토큰
929
1494
  - **절감 효과**: Haiku 에이전트 사용 시 **비용 67% 절감**
930
1495
 
931
1496
  **예시 (100만 토큰 기준)**:
1497
+
932
1498
  - 100% Sonnet: $18 (입력 + 출력)
933
1499
  - MoAI-ADK (혼합): $6~$9 (작업 특성에 따라)
934
1500
  - **절감액**: $9~$12 (50~67%)
@@ -962,11 +1528,42 @@ uv pip install moai-adk --force-reinstall
962
1528
  ```bash
963
1529
  # 프로젝트 상태 확인
964
1530
  moai-adk status
1531
+ ```
1532
+
1533
+ **출력 예시**:
1534
+
1535
+ ```text
1536
+ ╭────── Project Status ──────╮
1537
+ │ Mode team │
1538
+ │ Locale ko │
1539
+ │ SPECs 23 │
1540
+ │ Branch develop │
1541
+ │ Git Status Clean │
1542
+ ╰────────────────────────────╯
1543
+ ```
965
1544
 
1545
+ ```bash
966
1546
  # 시스템 진단
967
1547
  moai-adk doctor
1548
+ ```
1549
+
1550
+ **출력 예시**:
1551
+
1552
+ ```text
1553
+ Running system diagnostics...
1554
+
1555
+ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓
1556
+ ┃ Check ┃ Status ┃
1557
+ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩
1558
+ │ Python >= 3.13 │ ✓ │
1559
+ │ Git installed │ ✓ │
1560
+ │ Project structure (.moai/) │ ✓ │
1561
+ │ Config file (.moai/config.json) │ ✓ │
1562
+ └──────────────────────────────────────────┴────────┘
1563
+ ```
968
1564
 
969
- # 강제 재초기화
1565
+ ```bash
1566
+ # 강제 재초기화 (문제가 있을 경우)
970
1567
  moai-adk init . --force
971
1568
  ```
972
1569
 
@@ -986,6 +1583,7 @@ ls -la .claude/commands/alfred/
986
1583
  ### 일반적인 에러
987
1584
 
988
1585
  #### 에러: "moai-adk: command not found"
1586
+
989
1587
  ```bash
990
1588
  # PATH 확인 및 전체 경로 사용
991
1589
  ~/.local/bin/moai-adk --version
@@ -995,6 +1593,7 @@ pip install --force-reinstall moai-adk
995
1593
  ```
996
1594
 
997
1595
  #### 에러: ".moai/ 디렉토리를 찾을 수 없습니다"
1596
+
998
1597
  ```bash
999
1598
  # 초기화 실행
1000
1599
  moai-adk init .
@@ -1004,6 +1603,7 @@ moai-adk init .
1004
1603
  ```
1005
1604
 
1006
1605
  #### 에러: "SPEC ID 중복"
1606
+
1007
1607
  ```bash
1008
1608
  # 기존 SPEC 확인
1009
1609
  rg "@SPEC:" -n .moai/specs/
@@ -1017,15 +1617,16 @@ rg "@SPEC:" -n .moai/specs/
1017
1617
  ## 📚 문서 및 지원
1018
1618
 
1019
1619
  ### 공식 문서
1620
+
1020
1621
  - **GitHub Repository**: https://github.com/modu-ai/moai-adk
1021
1622
  - **PyPI Package**: https://pypi.org/project/moai-adk/
1022
1623
  - **Issue Tracker**: https://github.com/modu-ai/moai-adk/issues
1023
1624
  - **Discussions**: https://github.com/modu-ai/moai-adk/discussions
1024
1625
 
1025
1626
  ### 커뮤니티
1627
+
1026
1628
  - **GitHub Discussions**: 질문, 아이디어, 피드백 공유
1027
1629
  - **Issue Tracker**: 버그 리포트, 기능 요청
1028
- - **Email**: email@mo.ai.kr
1029
1630
 
1030
1631
  ### 기여하기
1031
1632
 
@@ -1047,9 +1648,6 @@ MIT License - 자유롭게 사용하실 수 있습니다.
1047
1648
 
1048
1649
  MoAI-ADK는 다음 프로젝트와 커뮤니티의 도움으로 만들어졌습니다:
1049
1650
 
1050
- - **Anthropic Claude Code**: AI 에이전트 시스템의 기반
1051
- - **OpenAI GPT Models**: 초기 설계 협업
1052
- - **Python & TypeScript Communities**: 언어 지원 및 도구 체인
1053
1651
  - **모두의AI Community**: 지속적인 피드백과 개선 아이디어
1054
1652
 
1055
1653
  ---