moai-adk 0.3.13__py3-none-any.whl → 0.4.0__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.

Files changed (91) hide show
  1. moai_adk/__init__.py +8 -1
  2. moai_adk/__main__.py +1 -1
  3. moai_adk/cli/commands/__init__.py +1 -1
  4. moai_adk/cli/commands/doctor.py +2 -2
  5. moai_adk/cli/commands/status.py +1 -1
  6. moai_adk/cli/commands/update.py +136 -90
  7. moai_adk/cli/prompts/init_prompts.py +1 -1
  8. moai_adk/core/__init__.py +1 -1
  9. moai_adk/core/git/branch.py +1 -1
  10. moai_adk/core/git/manager.py +1 -1
  11. moai_adk/core/quality/__init__.py +1 -1
  12. moai_adk/core/quality/trust_checker.py +1 -1
  13. moai_adk/core/quality/validators/__init__.py +1 -1
  14. moai_adk/core/quality/validators/base_validator.py +1 -1
  15. moai_adk/core/template/__init__.py +1 -1
  16. moai_adk/core/template/backup.py +2 -1
  17. moai_adk/core/template/config.py +24 -0
  18. moai_adk/core/template/languages.py +1 -1
  19. moai_adk/core/template/merger.py +58 -1
  20. moai_adk/core/template/processor.py +41 -12
  21. moai_adk/templates/.claude/agents/alfred/cc-manager.md +558 -3
  22. moai_adk/templates/.claude/commands/alfred/0-project.md +480 -12
  23. moai_adk/templates/.claude/commands/alfred/1-plan.md +563 -0
  24. moai_adk/templates/.claude/commands/alfred/1-spec.md +15 -516
  25. moai_adk/templates/.claude/commands/alfred/2-build.md +15 -417
  26. moai_adk/templates/.claude/commands/alfred/2-run.md +460 -0
  27. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +10 -31
  28. moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +67 -0
  29. moai_adk/templates/.claude/skills/moai-claude-code/examples.md +513 -0
  30. moai_adk/templates/.claude/skills/moai-claude-code/reference.md +419 -0
  31. moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +332 -0
  32. moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +384 -0
  33. moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +349 -0
  34. moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +552 -0
  35. moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +499 -0
  36. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +68 -0
  37. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +64 -0
  38. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +67 -0
  39. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +69 -0
  40. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +69 -0
  41. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +68 -0
  42. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +67 -0
  43. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +62 -0
  44. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +74 -0
  45. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +66 -0
  46. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +66 -0
  47. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +68 -0
  48. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +59 -0
  49. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +76 -0
  50. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +61 -0
  51. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +63 -0
  52. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +64 -0
  53. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +61 -0
  54. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +54 -0
  55. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +46 -0
  56. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +68 -0
  57. moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +68 -0
  58. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +69 -0
  59. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +67 -0
  60. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +66 -0
  61. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +66 -0
  62. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +67 -0
  63. moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +67 -0
  64. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +66 -0
  65. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +64 -0
  66. moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +66 -0
  67. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +67 -0
  68. moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +65 -0
  69. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +65 -0
  70. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +64 -0
  71. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +66 -0
  72. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +66 -0
  73. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +68 -0
  74. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +68 -0
  75. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +67 -0
  76. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +68 -0
  77. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +67 -0
  78. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +64 -0
  79. moai_adk/templates/.claude/skills/scripts/standardize_skills.py +166 -0
  80. moai_adk/templates/.claude/skills/scripts/verify_standardization.sh +43 -0
  81. moai_adk/templates/CLAUDE.md +153 -0
  82. moai_adk/templates/__init__.py +1 -1
  83. moai_adk/utils/__init__.py +1 -1
  84. moai_adk/utils/banner.py +7 -7
  85. moai_adk/utils/logger.py +1 -1
  86. {moai_adk-0.3.13.dist-info → moai_adk-0.4.0.dist-info}/METADATA +231 -1
  87. moai_adk-0.4.0.dist-info/RECORD +145 -0
  88. moai_adk-0.3.13.dist-info/RECORD +0 -90
  89. {moai_adk-0.3.13.dist-info → moai_adk-0.4.0.dist-info}/WHEEL +0 -0
  90. {moai_adk-0.3.13.dist-info → moai_adk-0.4.0.dist-info}/entry_points.txt +0 -0
  91. {moai_adk-0.3.13.dist-info → moai_adk-0.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -79,7 +79,183 @@ allowed-tools:
79
79
 
80
80
  프로젝트 환경을 분석하고 체계적인 인터뷰 계획을 수립합니다.
81
81
 
82
- ### 1.1 프로젝트 환경 분석 실행
82
+ ### 1.0 백업 디렉토리 확인 (최우선)
83
+
84
+ **moai-adk init 재초기화 후 백업 파일 처리**
85
+
86
+ Alfred는 먼저 `.moai-backups/` 디렉토리를 확인합니다:
87
+
88
+ ```bash
89
+ # 최신 백업 타임스탬프 확인
90
+ ls -t .moai-backups/ | head -1
91
+
92
+ # config.json의 optimized 플래그 확인
93
+ grep "optimized" .moai/config.json
94
+ ```
95
+
96
+ **백업 존재 조건**:
97
+ - `.moai-backups/` 디렉토리 존재
98
+ - 최신 백업 폴더에 `.moai/project/*.md` 파일 존재
99
+ - `config.json`의 `optimized: false` (재초기화 직후)
100
+
101
+ **백업 존재 시 사용자 선택 (AskUserQuestion)**:
102
+
103
+ ```typescript
104
+ AskUserQuestion({
105
+ questions: [{
106
+ question: "백업 파일(.moai-backups/{timestamp}/)이 발견되었습니다. 어떻게 처리하시겠습니까?",
107
+ header: "백업 처리 방식",
108
+ options: [
109
+ {
110
+ label: "병합",
111
+ description: "백업 파일의 사용자 커스터마이징을 최신 템플릿에 병합 (권장)"
112
+ },
113
+ {
114
+ label: "새로 작성",
115
+ description: "백업 무시하고 새로운 인터뷰 시작 (처음부터 다시 작성)"
116
+ },
117
+ {
118
+ label: "건너뛰기",
119
+ description: "현재 파일 유지 (변경 없음, 작업 종료)"
120
+ }
121
+ ],
122
+ multiSelect: false
123
+ }]
124
+ })
125
+ ```
126
+
127
+ **응답 처리**:
128
+ - **"병합"** → Phase 1.1 (백업 병합 워크플로우)로 진행
129
+ - **"새로 작성"** → Phase 1.2 (프로젝트 환경 분석)로 진행 (기존 프로세스)
130
+ - **"건너뛰기"** → 작업 종료
131
+
132
+ **백업 없음 또는 optimized: true**:
133
+ - Phase 1.2 (프로젝트 환경 분석)로 바로 진행
134
+
135
+ ---
136
+
137
+ ### 1.1 백업 병합 워크플로우 (사용자가 "병합" 선택 시)
138
+
139
+ **목적**: 최신 템플릿 구조를 유지하면서 사용자 커스터마이징 내용만 복원
140
+
141
+ **STEP 1: 백업 파일 읽기**
142
+
143
+ Alfred는 최신 백업 디렉토리에서 파일을 읽습니다:
144
+ ```bash
145
+ # 최신 백업 디렉토리 경로
146
+ BACKUP_DIR=.moai-backups/$(ls -t .moai-backups/ | head -1)
147
+
148
+ # 백업 파일 읽기
149
+ Read $BACKUP_DIR/.moai/project/product.md
150
+ Read $BACKUP_DIR/.moai/project/structure.md
151
+ Read $BACKUP_DIR/.moai/project/tech.md
152
+ Read $BACKUP_DIR/CLAUDE.md
153
+ ```
154
+
155
+ **STEP 2: 템플릿 기본값 탐지**
156
+
157
+ 다음 패턴은 "템플릿 기본값"으로 간주 (병합하지 않음):
158
+ - "주요 사용자층을 정의하세요"
159
+ - "해결하려는 핵심 문제를 설명하세요"
160
+ - "프로젝트의 강점과 차별점을 나열하세요"
161
+ - "{{PROJECT_NAME}}", "{{PROJECT_DESCRIPTION}}" 등 변수 형식
162
+ - "예시:", "샘플:", "Example:" 등 가이드 문구
163
+
164
+ **STEP 3: 사용자 커스터마이징 추출**
165
+
166
+ 백업 파일에서 **템플릿 기본값이 아닌 내용**만 추출:
167
+ - `product.md`:
168
+ - USER 섹션의 실제 사용자층 정의
169
+ - PROBLEM 섹션의 실제 문제 설명
170
+ - STRATEGY 섹션의 실제 차별점
171
+ - SUCCESS 섹션의 실제 성공 지표
172
+ - `structure.md`:
173
+ - ARCHITECTURE 섹션의 실제 설계
174
+ - MODULES 섹션의 실제 모듈 구조
175
+ - INTEGRATION 섹션의 실제 통합 계획
176
+ - `tech.md`:
177
+ - STACK 섹션의 실제 기술 스택
178
+ - FRAMEWORK 섹션의 실제 프레임워크
179
+ - QUALITY 섹션의 실제 품질 정책
180
+ - `HISTORY` 섹션: **전체 보존** (모든 파일)
181
+
182
+ **STEP 4: 병합 전략**
183
+
184
+ ```markdown
185
+ 최신 템플릿 구조 (v0.4.0+)
186
+
187
+ 사용자 커스터마이징 삽입 (백업 파일에서 추출)
188
+
189
+ HISTORY 섹션 업데이트
190
+
191
+ 버전 업데이트 (v0.1.x → v0.1.x+1)
192
+ ```
193
+
194
+ **병합 원칙**:
195
+ - ✅ 템플릿 구조는 최신 버전 유지 (섹션 순서, 헤더, @TAG 형식)
196
+ - ✅ 사용자 커스터마이징만 삽입 (실제 작성한 내용)
197
+ - ✅ HISTORY 섹션 누적 보존 (기존 이력 + 병합 이력)
198
+ - ❌ 템플릿 기본값은 최신 버전으로 교체
199
+
200
+ **STEP 5: HISTORY 섹션 업데이트**
201
+
202
+ 병합 완료 후 각 파일의 HISTORY 섹션에 이력 추가:
203
+ ```yaml
204
+ ### v0.1.x+1 (2025-10-19)
205
+ - **UPDATED**: 백업 파일 병합 (자동 최적화)
206
+ - AUTHOR: @Alfred
207
+ - BACKUP: .moai-backups/20251018-003638/
208
+ - REASON: moai-adk init 재초기화 후 사용자 커스터마이징 복원
209
+ ```
210
+
211
+ **STEP 6: config.json 업데이트**
212
+
213
+ 병합 완료 후 최적화 플래그 설정:
214
+ ```json
215
+ {
216
+ "project": {
217
+ "optimized": true,
218
+ "last_merge": "2025-10-19T12:34:56+09:00",
219
+ "backup_source": ".moai-backups/20251018-003638/"
220
+ }
221
+ }
222
+ ```
223
+
224
+ **STEP 7: 완료 보고**
225
+
226
+ ```markdown
227
+ ✅ 백업 병합 완료!
228
+
229
+ 📁 병합된 파일:
230
+ - .moai/project/product.md (v0.1.4 → v0.1.5)
231
+ - .moai/project/structure.md (v0.1.1 → v0.1.2)
232
+ - .moai/project/tech.md (v0.1.1 → v0.1.2)
233
+ - .moai/config.json (optimized: false → true)
234
+
235
+ 🔍 병합 내역:
236
+ - USER 섹션: 백업 파일의 사용자 정의 내용 복원
237
+ - PROBLEM 섹션: 백업 파일의 문제 설명 복원
238
+ - STRATEGY 섹션: 백업 파일의 차별점 복원
239
+ - HISTORY 섹션: 병합 이력 추가 (누적 보존)
240
+
241
+ 💾 백업 파일 위치:
242
+ - 원본 백업: .moai-backups/20251018-003638/
243
+ - 보존 기간: 영구 (수동 삭제 전까지)
244
+
245
+ 📋 다음 단계:
246
+ 1. 병합된 문서를 검토하세요
247
+ 2. 필요 시 추가 수정
248
+ 3. /alfred:1-spec으로 첫 번째 SPEC 작성
249
+
250
+ ---
251
+ **작업 완료: /alfred:0-project 종료**
252
+ ```
253
+
254
+ **병합 후 작업 종료**: 인터뷰 없이 바로 완료
255
+
256
+ ---
257
+
258
+ ### 1.2 프로젝트 환경 분석 실행 (사용자가 "새로 작성" 선택 시 또는 백업 없음)
83
259
 
84
260
  **자동 분석 항목**:
85
261
 
@@ -106,7 +282,7 @@ allowed-tools:
106
282
  - 단일 언어 vs 하이브리드 vs 마이크로서비스
107
283
  - 코드 기반 크기 추정
108
284
 
109
- ### 1.2 인터뷰 전략 수립
285
+ ### 1.3 인터뷰 전략 수립 (사용자가 "새로 작성" 선택 시)
110
286
 
111
287
  **프로젝트 유형별 질문 트리 선택**:
112
288
 
@@ -121,7 +297,7 @@ allowed-tools:
121
297
  - **기술 질문**: 언어/프레임워크, 품질 정책, 배포 전략
122
298
  - **거버넌스**: 보안 요구사항, 추적성 전략 (선택적)
123
299
 
124
- ### 1.3 인터뷰 계획 보고서 생성
300
+ ### 1.4 인터뷰 계획 보고서 생성 (사용자가 "새로 작성" 선택 시)
125
301
 
126
302
  **사용자에게 제시할 계획서 포맷**:
127
303
 
@@ -156,20 +332,42 @@ allowed-tools:
156
332
  ("진행", "수정 [내용]", "중단" 중 선택)
157
333
  ```
158
334
 
159
- ### 1.4 사용자 확인 대기
335
+ ### 1.5 사용자 승인 대기 (AskUserQuestion) (사용자가 "새로 작성" 선택 시)
336
+
337
+ Alfred는 project-manager의 인터뷰 계획 보고서를 받은 후, **AskUserQuestion 도구를 호출하여 사용자 승인을 받습니다**:
338
+
339
+ ```typescript
340
+ AskUserQuestion({
341
+ questions: [{
342
+ question: "project-manager가 제시한 인터뷰 계획으로 프로젝트 초기화를 진행하시겠습니까?",
343
+ header: "Phase 2 승인",
344
+ options: [
345
+ { label: "진행", description: "승인된 계획대로 인터뷰 및 문서 생성 시작" },
346
+ { label: "수정", description: "계획 재수립 (Phase 1 반복)" },
347
+ { label: "중단", description: "프로젝트 초기화 중단" }
348
+ ],
349
+ multiSelect: false
350
+ }]
351
+ })
352
+ ```
160
353
 
161
- **반응에 따른 분기**:
162
- - **"진행"** 또는 **"시작"**: STEP 2 진행
163
- - **"수정 [내용]"**: 계획 수정 재제시
164
- - **"중단"**: 프로젝트 초기화 중단
354
+ **응답 처리**:
355
+ - **"진행"** (`answers["0"] === "진행"`) Phase 2 실행
356
+ - **"수정"** (`answers["0"] === "수정"`) Phase 1 반복 (project-manager 재호출)
357
+ - **"중단"** (`answers["0"] === "중단"`) → 작업 종료
165
358
 
166
359
  ---
167
360
 
168
- ## 🚀 STEP 2: 프로젝트 초기화 실행 (사용자 승인 후)
361
+ ## 🚀 STEP 2: 프로젝트 초기화 실행 (사용자 "새로 작성" 승인 후)
362
+
363
+ **주의**: 이 단계는 사용자가 **"새로 작성"을 선택한 경우**에만 실행됩니다.
364
+ - "병합" 선택 시: Phase 1.1 (백업 병합)에서 작업 종료
365
+ - "건너뛰기" 선택 시: 작업 종료
366
+ - "새로 작성" 선택 시: 아래 프로세스 진행
169
367
 
170
368
  사용자 승인 후 project-manager 에이전트가 초기화를 수행합니다.
171
369
 
172
- ### 2.1 project-manager 에이전트 호출
370
+ ### 2.1 project-manager 에이전트 호출 (사용자가 "새로 작성" 선택 시)
173
371
 
174
372
  Alfred는 project-manager 에이전트를 호출하여 프로젝트 초기화를 시작합니다. 다음 정보를 기반으로 진행합니다:
175
373
  - 감지된 언어: [언어 목록]
@@ -179,7 +377,57 @@ Alfred는 project-manager 에이전트를 호출하여 프로젝트 초기화를
179
377
 
180
378
  에이전트는 체계적인 인터뷰를 진행하고 product/structure/tech.md 문서를 생성/갱신합니다.
181
379
 
182
- ### 2.2 프로젝트 유형별 처리 방식
380
+ ### 2.2 Alfred Skills 자동 활성화 (선택적)
381
+
382
+ project-manager가 문서를 생성 완료한 후, **Alfred는 선택적으로 Skills를 호출할 수 있습니다** (사용자 요청 시).
383
+
384
+ **자동 활성화 조건** (선택적):
385
+
386
+ | 조건 | 자동 선택 Skill | 목적 |
387
+ |------|----------------|------|
388
+ | 사용자 "품질 검증" 요청 | moai-alfred-trust-validation | 초기 프로젝트 구조 검증 |
389
+
390
+ **실행 흐름** (선택적):
391
+ ```
392
+ 1. project-manager 완료
393
+
394
+ 2. 사용자 선택:
395
+ - "품질 검증 필요" → moai-alfred-trust-validation (Level 1 빠른 스캔)
396
+ - "건너뛰기" → 바로 완료
397
+ ```
398
+
399
+ **참고**: 프로젝트 초기화 단계에서는 품질 검증이 선택사항입니다.
400
+
401
+ ### 2.3 Sub-agent AskUserQuestion (Nested)
402
+
403
+ **project-manager 에이전트는 내부적으로 AskUserQuestion을 호출**하여 세부 작업을 확인할 수 있습니다.
404
+
405
+ **호출 시점**:
406
+ - 기존 프로젝트 문서 덮어쓰기 전
407
+ - 언어/프레임워크 선택 시
408
+ - 중요한 설정 변경 시
409
+
410
+ **예시** (project-manager 내부):
411
+ ```typescript
412
+ AskUserQuestion({
413
+ questions: [{
414
+ question: "기존 product.md 파일이 존재합니다. 어떻게 처리하시겠습니까?",
415
+ header: "파일 덮어쓰기 확인",
416
+ options: [
417
+ { label: "덮어쓰기", description: "기존 파일 백업 후 새 내용으로 교체" },
418
+ { label: "병합", description: "기존 내용과 새 내용 병합" },
419
+ { label: "건너뛰기", description: "기존 파일 유지" }
420
+ ],
421
+ multiSelect: false
422
+ }]
423
+ })
424
+ ```
425
+
426
+ **Nested 패턴**:
427
+ - **커맨드 레벨** (Phase 승인): Alfred가 호출 → "Phase 2 진행할까요?"
428
+ - **Sub-agent 레벨** (세부 확인): project-manager가 호출 → "파일 덮어쓸까요?"
429
+
430
+ ### 2.4 프로젝트 유형별 처리 방식
183
431
 
184
432
  #### A. 신규 프로젝트 (그린필드)
185
433
 
@@ -505,6 +753,225 @@ Alfred는 Glob 패턴으로 파일 그룹을 식별합니다:
505
753
  해결: 파일 권한 확인 (chmod 644) 또는 수동으로 config.json 생성
506
754
  ```
507
755
 
756
+ ---
757
+
758
+ ## /alfred:0-project update: 템플릿 최적화 (서브커맨드)
759
+
760
+ > **목적**: moai-adk update 실행 후 백업과 신규 템플릿을 비교하여 사용자 커스터마이징을 보존하면서 템플릿을 최적화합니다.
761
+
762
+ ### 실행 조건
763
+
764
+ 이 서브커맨드는 다음 조건에서 실행됩니다:
765
+
766
+ 1. **moai-adk update 실행 후**: `config.json`의 `optimized=false` 상태
767
+ 2. **템플릿 업데이트 필요**: 백업과 신규 템플릿 간 차이가 있을 때
768
+ 3. **사용자 명시적 요청**: 사용자가 직접 `/alfred:0-project update` 실행
769
+
770
+ ### 실행 흐름
771
+
772
+ #### Phase 1: 백업 분석 및 비교
773
+
774
+ 1. **최신 백업 확인**:
775
+ ```bash
776
+ # .moai-backups/ 디렉토리에서 최신 백업 탐색
777
+ ls -lt .moai-backups/ | head -1
778
+ ```
779
+
780
+ 2. **변경 사항 분석**:
781
+ - 백업의 `.claude/` 디렉토리와 현재 템플릿 비교
782
+ - 백업의 `.moai/project/` 문서와 현재 문서 비교
783
+ - 사용자 커스터마이징 항목 식별
784
+
785
+ 3. **비교 보고서 생성**:
786
+ ```markdown
787
+ ## 📊 템플릿 최적화 분석
788
+
789
+ ### 변경 항목
790
+ - CLAUDE.md: "## 프로젝트 정보" 섹션 보존 필요
791
+ - settings.json: env 변수 3개 보존 필요
792
+ - product.md: 사용자 작성 내용 있음
793
+
794
+ ### 권장 조치
795
+ - 스마트 병합 실행
796
+ - 사용자 커스터마이징 보존
797
+ - optimized=true 설정
798
+ ```
799
+
800
+ 4. **사용자 승인 대기** (AskUserQuestion):
801
+ - 질문: "템플릿 최적화를 진행하시겠습니까?"
802
+ - 옵션:
803
+ - "진행" → Phase 2 실행
804
+ - "미리보기" → 상세 변경 내역 표시 후 재확인
805
+ - "건너뛰기" → optimized=false 유지
806
+
807
+ #### Phase 2: 스마트 병합 실행 (사용자 승인 후)
808
+
809
+ 1. **스마트 병합 로직 실행**:
810
+ - `TemplateProcessor.copy_templates()` 실행
811
+ - CLAUDE.md: "## 프로젝트 정보" 섹션 보존
812
+ - settings.json: env 변수 및 permissions.allow 병합
813
+
814
+ 2. **optimized=true 설정**:
815
+ ```python
816
+ # config.json 업데이트
817
+ config_data["project"]["optimized"] = True
818
+ ```
819
+
820
+ 3. **최적화 완료 보고**:
821
+ ```markdown
822
+ ✅ 템플릿 최적화 완료!
823
+
824
+ 📄 병합된 파일:
825
+ - CLAUDE.md (프로젝트 정보 보존)
826
+ - settings.json (env 변수 보존)
827
+
828
+ ⚙️ config.json: optimized=true 설정 완료
829
+ ```
830
+
831
+ ### Alfred 자동화 전략
832
+
833
+ **Alfred 자동 판단**:
834
+ - project-manager 에이전트 자동 호출
835
+ - 백업 최신성 확인 (24시간 이내)
836
+ - 변경 사항 자동 분석
837
+
838
+ **Skills 자동 활성화**:
839
+ - moai-alfred-tag-scanning: TAG 체인 검증
840
+ - moai-alfred-trust-validation: TRUST 원칙 준수 확인
841
+
842
+ ### 실행 예시
843
+
844
+ ```bash
845
+ # moai-adk update 실행 후
846
+ moai-adk update
847
+
848
+ # 출력:
849
+ # ✓ Update complete!
850
+ # ℹ️ Next step: Run /alfred:0-project update to optimize template changes
851
+
852
+ # Alfred 실행
853
+ /alfred:0-project update
854
+
855
+ # → Phase 1: 백업 분석 및 비교 보고서 생성
856
+ # → 사용자 승인 대기
857
+ # → Phase 2: 스마트 병합 실행, optimized=true 설정
858
+ ```
859
+
860
+ ### 주의사항
861
+
862
+ - **백업 필수**: `.moai-backups/` 디렉토리에 백업이 없으면 실행 불가
863
+ - **수동 검토 권장**: 중요한 커스터마이징이 있다면 미리보기 확인 필수
864
+ - **충돌 해결**: 병합 충돌 발생 시 사용자 선택 요청
865
+
866
+ ---
867
+
868
+ ## 🚀 STEP 3: 프로젝트 맞춤형 최적화 (선택적)
869
+
870
+ **실행 조건**:
871
+ - Phase 2 (프로젝트 초기화) 완료 후
872
+ - 또는 Phase 1.1 (백업 병합) 완료 후
873
+ - 사용자가 명시적으로 요청하거나 Alfred가 자동 판단
874
+
875
+ **목적**: 프로젝트 특성에 맞는 Commands, Agents, Skills만 선택하여 경량화 (37개 스킬 → 3~5개)
876
+
877
+ ### 3.1 Feature Selection 자동 실행
878
+
879
+ **Alfred는 moai-alfred-feature-selector 스킬을 자동 호출**합니다:
880
+
881
+ **스킬 입력**:
882
+ - `.moai/project/product.md` (프로젝트 카테고리 힌트)
883
+ - `.moai/project/tech.md` (주 언어, 프레임워크)
884
+ - `.moai/config.json` (프로젝트 설정)
885
+
886
+ **스킬 출력**:
887
+ ```json
888
+ {
889
+ "category": "web-api",
890
+ "language": "python",
891
+ "framework": "fastapi",
892
+ "commands": ["1-spec", "2-build", "3-sync"],
893
+ "agents": ["spec-builder", "code-builder", "doc-syncer", "git-manager", "debug-helper"],
894
+ "skills": ["moai-lang-python", "moai-domain-web-api", "moai-domain-backend"],
895
+ "excluded_skills_count": 34,
896
+ "optimization_rate": "87%"
897
+ }
898
+ ```
899
+
900
+ **실행 방법**:
901
+ ```
902
+ Alfred: Skill("moai-alfred-feature-selector")
903
+ ```
904
+
905
+ ---
906
+
907
+ ### 3.2 Template Generation 자동 실행
908
+
909
+ **Alfred는 moai-alfred-template-generator 스킬을 자동 호출**합니다:
910
+
911
+ **스킬 입력**:
912
+ - `.moai/.feature-selection.json` (feature-selector 출력)
913
+ - `CLAUDE.md` 템플릿
914
+ - 전체 commands/agents/skills 파일
915
+
916
+ **스킬 출력**:
917
+ - `CLAUDE.md` (맞춤형 에이전트 테이블 - 선택된 에이전트만)
918
+ - `.claude/commands/` (선택된 commands만)
919
+ - `.claude/agents/` (선택된 agents만)
920
+ - `.claude/skills/` (선택된 skills만)
921
+ - `.moai/config.json` (`optimized: true` 업데이트)
922
+
923
+ **실행 방법**:
924
+ ```
925
+ Alfred: Skill("moai-alfred-template-generator")
926
+ ```
927
+
928
+ ---
929
+
930
+ ### 3.3 최적화 완료 보고
931
+
932
+ **보고 형식**:
933
+ ```markdown
934
+ ✅ 프로젝트 맞춤형 최적화 완료!
935
+
936
+ 📊 최적화 결과:
937
+ - **프로젝트**: {{PROJECT_NAME}}
938
+ - **카테고리**: web-api
939
+ - **주 언어**: python
940
+ - **프레임워크**: fastapi
941
+
942
+ 🎯 선택된 기능:
943
+ - Commands: 4개 (0-project, 1-spec, 2-build, 3-sync)
944
+ - Agents: 5개 (spec-builder, code-builder, doc-syncer, git-manager, debug-helper)
945
+ - Skills: 3개 (moai-lang-python, moai-domain-web-api, moai-domain-backend)
946
+
947
+ 💡 경량화 효과:
948
+ - 제외된 스킬: 34개
949
+ - 경량화: 87%
950
+ - CLAUDE.md: 맞춤형 에이전트 테이블 생성
951
+
952
+ 📋 다음 단계:
953
+ 1. CLAUDE.md 파일 확인 (5개 에이전트만 표시)
954
+ 2. /alfred:1-spec "첫 기능" 실행
955
+ 3. MoAI-ADK 워크플로우 시작
956
+ ```
957
+
958
+ ---
959
+
960
+ ### 3.4 Phase 3 건너뛰기 (선택적)
961
+
962
+ **사용자는 Phase 3를 건너뛸 수 있습니다**:
963
+
964
+ **건너뛰기 조건**:
965
+ - 사용자가 명시적으로 "건너뛰기" 선택
966
+ - Alfred 자동 판단 시 "간단한 프로젝트" (기본 기능만 필요)
967
+
968
+ **건너뛰기 효과**:
969
+ - 전체 37개 스킬 유지 (경량화 없음)
970
+ - CLAUDE.md 템플릿 기본 9개 에이전트 유지
971
+ - config.json의 `optimized: false` 유지
972
+
973
+ ---
974
+
508
975
  ## 다음 단계
509
976
 
510
977
  **권장사항**: 다음 단계 진행 전 `/clear` 또는 `/new` 명령으로 새로운 대화 세션을 시작하면 더 나은 성능과 컨텍스트 관리를 경험할 수 있습니다.
@@ -513,7 +980,8 @@ Alfred는 Glob 패턴으로 파일 그룹을 식별합니다:
513
980
 
514
981
  - **신규 프로젝트**: `/alfred:1-spec`을 실행해 설계 기반 SPEC 백로그 생성
515
982
  - **레거시 프로젝트**: product/structure/tech 문서의 @CODE/@CODE/TODO 항목 검토 후 우선순위 확정
516
- - **설정 변경**: `/alfred:8-project`를 다시 실행하여 문서 갱신
983
+ - **설정 변경**: `/alfred:0-project`를 다시 실행하여 문서 갱신
984
+ - **템플릿 최적화**: `moai-adk update` 후 `/alfred:0-project update` 실행
517
985
 
518
986
  ## 관련 명령어
519
987