moai-adk 0.3.12__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 (92) 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/project/detector.py +14 -2
  12. moai_adk/core/quality/__init__.py +1 -1
  13. moai_adk/core/quality/trust_checker.py +1 -1
  14. moai_adk/core/quality/validators/__init__.py +1 -1
  15. moai_adk/core/quality/validators/base_validator.py +1 -1
  16. moai_adk/core/template/__init__.py +1 -1
  17. moai_adk/core/template/backup.py +2 -1
  18. moai_adk/core/template/config.py +24 -0
  19. moai_adk/core/template/languages.py +1 -1
  20. moai_adk/core/template/merger.py +58 -1
  21. moai_adk/core/template/processor.py +41 -12
  22. moai_adk/templates/.claude/agents/alfred/cc-manager.md +558 -3
  23. moai_adk/templates/.claude/commands/alfred/0-project.md +480 -12
  24. moai_adk/templates/.claude/commands/alfred/1-plan.md +563 -0
  25. moai_adk/templates/.claude/commands/alfred/1-spec.md +15 -516
  26. moai_adk/templates/.claude/commands/alfred/2-build.md +15 -417
  27. moai_adk/templates/.claude/commands/alfred/2-run.md +460 -0
  28. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +12 -0
  29. moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +67 -0
  30. moai_adk/templates/.claude/skills/moai-claude-code/examples.md +513 -0
  31. moai_adk/templates/.claude/skills/moai-claude-code/reference.md +419 -0
  32. moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +332 -0
  33. moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +384 -0
  34. moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +349 -0
  35. moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +552 -0
  36. moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +499 -0
  37. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +68 -0
  38. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +64 -0
  39. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +67 -0
  40. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +69 -0
  41. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +69 -0
  42. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +68 -0
  43. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +67 -0
  44. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +62 -0
  45. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +74 -0
  46. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +66 -0
  47. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +66 -0
  48. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +68 -0
  49. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +59 -0
  50. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +76 -0
  51. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +61 -0
  52. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +63 -0
  53. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +64 -0
  54. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +61 -0
  55. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +54 -0
  56. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +46 -0
  57. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +68 -0
  58. moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +68 -0
  59. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +69 -0
  60. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +67 -0
  61. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +66 -0
  62. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +66 -0
  63. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +67 -0
  64. moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +67 -0
  65. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +66 -0
  66. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +64 -0
  67. moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +66 -0
  68. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +67 -0
  69. moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +65 -0
  70. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +65 -0
  71. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +64 -0
  72. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +66 -0
  73. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +66 -0
  74. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +68 -0
  75. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +68 -0
  76. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +67 -0
  77. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +68 -0
  78. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +67 -0
  79. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +64 -0
  80. moai_adk/templates/.claude/skills/scripts/standardize_skills.py +166 -0
  81. moai_adk/templates/.claude/skills/scripts/verify_standardization.sh +43 -0
  82. moai_adk/templates/CLAUDE.md +153 -0
  83. moai_adk/templates/__init__.py +1 -1
  84. moai_adk/utils/__init__.py +1 -1
  85. moai_adk/utils/banner.py +1 -1
  86. moai_adk/utils/logger.py +1 -1
  87. {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/METADATA +244 -3
  88. moai_adk-0.4.0.dist-info/RECORD +145 -0
  89. moai_adk-0.3.12.dist-info/RECORD +0 -90
  90. {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/WHEEL +0 -0
  91. {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/entry_points.txt +0 -0
  92. {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,563 @@
1
+ ---
2
+ name: alfred:1-plan
3
+ description: 계획 수립 (브레인스토밍, 계획 작성, 설계 논의) + 브랜치/PR 생성
4
+ argument-hint: "제목1 제목2 ... | SPEC-ID 수정내용"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - MultiEdit
10
+ - Grep
11
+ - Glob
12
+ - TodoWrite
13
+ - Bash(git:*)
14
+ - Bash(gh:*)
15
+ - Bash(rg:*)
16
+ - Bash(mkdir:*)
17
+ ---
18
+
19
+ # 🏗️ MoAI-ADK 1단계: 계획 수립 (Plan) - 항상 계획을 먼저 세우고 진행한다
20
+
21
+ ## 🎯 커맨드 목적
22
+
23
+ **"계획(Plan) → 실행(Run) → 동기화(Sync)"** 워크플로우의 첫 단계로, 아이디어 구상부터 계획 작성까지 계획 수립 전반을 지원합니다.
24
+
25
+ **계획 수립 대상**: $ARGUMENTS
26
+
27
+ ## 💡 계획 철학: "항상 계획을 먼저 세우고 진행한다"
28
+
29
+ `/alfred:1-plan`은 단순히 SPEC 문서를 "작성"하는 것이 아니라, **계획을 수립**하는 범용 커맨드입니다.
30
+
31
+ ### 3가지 주요 시나리오
32
+
33
+ #### 시나리오 1: 계획 작성 (주 사용 방식) ⭐
34
+ ```bash
35
+ /alfred:1-plan "사용자 인증 기능"
36
+ → 아이디어 구체화
37
+ → EARS 구문으로 요구사항 명세
38
+ → feature/SPEC-XXX 브랜치 생성
39
+ → Draft PR 생성
40
+ ```
41
+
42
+ #### 시나리오 2: 브레인스토밍
43
+ ```bash
44
+ /alfred:1-plan "결제 시스템 개선 아이디어"
45
+ → 아이디어 정리 및 구조화
46
+ → 요구사항 후보 도출
47
+ → 기술적 검토 및 리스크 분석
48
+ ```
49
+
50
+ #### 시나리오 3: 기존 SPEC 개선
51
+ ```bash
52
+ /alfred:1-plan "SPEC-AUTH-001 보안 강화"
53
+ → 기존 계획 분석
54
+ → 개선 방향 수립
55
+ → 새 버전 계획 작성
56
+ ```
57
+
58
+ > **표준 2단계 워크플로우** (자세한 내용: `CLAUDE.md` - "Alfred 커맨드 실행 패턴" 참조)
59
+
60
+ ## 📋 실행 흐름
61
+
62
+ 1. **프로젝트 분석**: product/structure/tech.md 심층 분석
63
+ 2. **SPEC 후보 발굴**: 비즈니스 요구사항 기반 우선순위 결정
64
+ 3. **사용자 확인**: 작성 계획 검토 및 승인
65
+ 4. **계획 작성**: EARS 구조의 명세서 생성 (spec.md, plan.md, acceptance.md)
66
+ 5. **Git 작업**: git-manager를 통한 브랜치/PR 생성
67
+
68
+ ## 🔗 연관 에이전트
69
+
70
+ - **Primary**: spec-builder (🏗️ 시스템 아키텍트) - SPEC 문서 작성 전담
71
+ - **Secondary**: git-manager (🚀 릴리스 엔지니어) - Git 브랜치/PR 생성 전담
72
+
73
+ ## 💡 사용 예시
74
+
75
+ 사용자가 다음과 같이 커맨드를 실행할 수 있습니다:
76
+ - `/alfred:1-plan` - 프로젝트 문서 기반 자동 제안
77
+ - `/alfred:1-plan "JWT 인증 시스템"` - 단일 SPEC 수동 생성
78
+ - `/alfred:1-plan SPEC-001 "보안 보강"` - 기존 SPEC 보완
79
+
80
+ ## 🔍 STEP 1: 프로젝트 분석 및 계획 수립
81
+
82
+ 프로젝트 문서를 분석하여 SPEC 후보를 제안하고 구현 전략을 수립한 후 사용자 확인을 받습니다.
83
+
84
+ **spec-builder 에이전트가 자동으로 필요한 문서를 로드하여 분석합니다.**
85
+
86
+ ### 🔍 코드베이스 탐색 (선택사항)
87
+
88
+ **사용자 요청이 불명확하거나 기존 코드 파악이 필요한 경우** Explore 에이전트를 먼저 활용합니다:
89
+
90
+ ```
91
+ Task tool 호출 (Explore 에이전트):
92
+ - subagent_type: "Explore"
93
+ - description: "코드베이스에서 관련 파일 탐색"
94
+ - prompt: "다음 키워드와 관련된 모든 파일을 찾아주세요: $ARGUMENTS
95
+ - 파일 위치 (src/, tests/, docs/)
96
+ - 관련 SPEC 문서 (.moai/specs/)
97
+ - 기존 구현 코드
98
+ thoroughness 레벨: medium"
99
+ ```
100
+
101
+ **Explore 에이전트 사용 기준**:
102
+ - ✅ 사용자가 "어디에 있는지", "찾아줘" 등의 키워드 사용
103
+ - ✅ 기존 코드 구조 파악이 필요한 경우
104
+ - ✅ 여러 파일에 걸쳐있는 기능 조사
105
+ - ❌ 명확한 SPEC 제목이 주어진 경우 (바로 spec-builder로)
106
+
107
+ ### ⚙️ 에이전트 호출 방법
108
+
109
+ **STEP 1에서는 Task tool을 사용하여 spec-builder 에이전트를 호출합니다**:
110
+
111
+ ```
112
+ Task tool 호출:
113
+ - subagent_type: "spec-builder"
114
+ - description: "계획 분석 및 작성 계획 수립"
115
+ - prompt: "프로젝트 문서를 분석하여 SPEC 후보를 제안해주세요.
116
+ 분석 모드로 실행하며, 다음을 포함해야 합니다:
117
+ 1. product/structure/tech.md 심층 분석
118
+ 2. SPEC 후보 발굴 및 우선순위 결정
119
+ 3. EARS 구조 설계
120
+ 4. 사용자 승인 대기
121
+ 사용자 입력: $ARGUMENTS
122
+ (선택) Explore 결과: $EXPLORE_RESULTS"
123
+ ```
124
+
125
+ ### 계획 분석 진행
126
+
127
+ 1. **프로젝트 문서 분석**
128
+ - product/structure/tech.md 심층 분석
129
+ - 기존 SPEC 목록 및 우선순위 검토 (.moai/specs/ 스캔)
130
+ - 구현 가능성 및 복잡도 평가
131
+ - (선택) Explore 결과 반영하여 기존 코드 구조 파악
132
+
133
+ 2. **SPEC 후보 발굴**
134
+ - 핵심 비즈니스 요구사항 추출
135
+ - 기술적 제약사항 반영
136
+ - 우선순위별 SPEC 후보 리스트 생성
137
+
138
+ 3. **구현 계획 보고**
139
+ - 단계별 계획 작성 계획 제시
140
+ - 예상 작업 범위 및 의존성 분석
141
+ - EARS 구조 및 Acceptance Criteria 설계
142
+
143
+ ### 사용자 확인 단계
144
+
145
+ 구현 계획 검토 후 다음 중 선택하세요:
146
+ - **"진행"** 또는 **"시작"**: 계획대로 계획 작성 시작
147
+ - **"수정 [내용]"**: 계획 수정 요청
148
+ - **"중단"**: 계획 작성 중단
149
+
150
+ ---
151
+
152
+ ## 🚀 STEP 2: 계획 문서 작성 (사용자 승인 후)
153
+
154
+ 사용자 승인 후 **Task tool을 사용하여 spec-builder와 git-manager 에이전트를 호출**합니다.
155
+
156
+ ### ⚙️ 에이전트 호출 방법
157
+
158
+ ```
159
+ 1. spec-builder 호출 (계획 작성):
160
+ - subagent_type: "spec-builder"
161
+ - description: "SPEC 문서 작성"
162
+ - prompt: "STEP 1에서 승인된 계획에 따라 SPEC 문서를 작성해주세요.
163
+ EARS 구조의 명세서를 생성합니다."
164
+
165
+ 2. git-manager 호출 (Git 작업):
166
+ - subagent_type: "git-manager"
167
+ - description: "Git 브랜치/PR 생성"
168
+ - prompt: "계획 작성 완료 후 브랜치와 Draft PR을 생성해주세요."
169
+ ```
170
+
171
+ ## 기능
172
+
173
+ - **프로젝트 문서 분석**: `.moai/project/{product,structure,tech}.md`를 분석해 구현 후보를 제안하고 사용자 승인 후 SPEC을 생성합니다.
174
+ - **Personal 모드**: `.moai/specs/SPEC-{ID}/` 디렉터리와 템플릿 문서를 만듭니다 (**디렉토리명 형식 필수**: `SPEC-` 접두어 + TAG ID).
175
+ - **Team 모드**: GitHub Issue(또는 Discussion)를 생성하고 브랜치 템플릿과 연결합니다.
176
+
177
+ ## 사용법
178
+
179
+ 사용자가 다음과 같은 형태로 커맨드를 실행합니다:
180
+ - `/alfred:1-plan` - 프로젝트 문서 기반 자동 제안 (권장)
181
+ - `/alfred:1-plan "JWT 인증 시스템"` - 단일 SPEC 수동 생성
182
+ - `/alfred:1-plan SPEC-001 "보안 보강"` - 기존 SPEC 보완
183
+
184
+ 입력하지 않으면 Q&A 결과를 기반으로 우선순위 3~5건을 제안하며, 승인한 항목만 실제 SPEC으로 확정됩니다.
185
+
186
+ ## 모드별 처리 요약
187
+
188
+ | 모드 | 산출물 | 브랜치 전략 | 추가 작업 |
189
+ | -------- | -------------------------------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- |
190
+ | Personal | `.moai/specs/SPEC-XXX/spec.md`, `plan.md`, `acceptance.md` 등 템플릿 | `main` 또는 `develop`에서 분기 (설정 기준) | git-manager 에이전트가 자동으로 체크포인트 생성 |
191
+ | Team | GitHub Issue(`[SPEC-XXX] 제목`), Draft PR(옵션) | **항상 `develop`에서 분기** (GitFlow 표준) | `gh` CLI 로그인 유지, Draft PR → develop 생성 |
192
+
193
+ ## 입력 옵션
194
+
195
+ - **자동 제안**: `/alfred:1-plan` → 프로젝트 문서 핵심 bullet을 기반으로 후보 리스트 작성
196
+ - **수동 생성**: 제목을 인수로 전달 → 1건만 생성, Acceptance 템플릿은 회신 후 보완
197
+ - **보완 모드**: `SPEC-ID "메모"` 형식으로 전달 → 기존 SPEC 문서/Issue를 업데이트
198
+
199
+ ## 📋 STEP 1 실행 가이드: 프로젝트 분석 및 계획 수립
200
+
201
+ ### ⚠️ 필수 규칙: 디렉토리 명명 규칙
202
+
203
+ **반드시 준수해야 할 형식**: `.moai/specs/SPEC-{ID}/`
204
+
205
+ **올바른 예시**:
206
+ - ✅ `SPEC-AUTH-001/`
207
+ - ✅ `SPEC-REFACTOR-001/`
208
+ - ✅ `SPEC-UPDATE-REFACTOR-001/`
209
+
210
+ **잘못된 예시**:
211
+ - ❌ `AUTH-001/` (SPEC- 접두어 누락)
212
+ - ❌ `SPEC-001-auth/` (ID 뒤 추가 텍스트)
213
+ - ❌ `SPEC-AUTH-001-jwt/` (ID 뒤 추가 텍스트)
214
+
215
+ **중복 확인 필수**: 새 SPEC ID를 생성하기 전에 반드시 기존 TAG ID를 검색하여 중복을 방지합니다.
216
+
217
+ **복합 도메인 규칙**:
218
+ - ✅ 허용: `UPDATE-REFACTOR-001` (2개 도메인)
219
+ - ⚠️ 주의: `UPDATE-REFACTOR-FIX-001` (3개 이상 도메인, 단순화 권장)
220
+
221
+ ---
222
+
223
+ ### 1. 프로젝트 문서 분석
224
+
225
+ Alfred는 spec-builder 에이전트를 호출하여 프로젝트 문서 기반 계획 분석 및 계획 수립을 수행합니다.
226
+
227
+ #### 분석 체크리스트
228
+
229
+ - [ ] **요구사항 추출**: product.md의 핵심 비즈니스 요구사항 파악
230
+ - [ ] **아키텍처 제약**: structure.md의 시스템 설계 제약사항 확인
231
+ - [ ] **기술적 제약**: tech.md의 기술 스택 및 품질 정책
232
+ - [ ] **기존 SPEC**: 현재 SPEC 목록 및 우선순위 검토
233
+
234
+ ### 2. SPEC 후보 발굴 전략
235
+
236
+ #### 우선순위 결정 기준
237
+
238
+ | 우선순위 | 기준 | SPEC 후보 유형 |
239
+ |---------|------|----------------|
240
+ | **높음** | 핵심 비즈니스 가치 | 사용자 핵심 기능, API 설계 |
241
+ | **중간** | 시스템 안정성 | 인증/보안, 데이터 관리 |
242
+ | **낮음** | 개선 및 확장 | UI/UX 개선, 성능 최적화 |
243
+
244
+ #### SPEC 타입별 접근법
245
+
246
+ - **API/백엔드**: 엔드포인트 설계, 데이터 모델, 인증
247
+ - **프론트엔드**: 사용자 인터페이스, 상태 관리, 라우팅
248
+ - **인프라**: 배포, 모니터링, 보안 정책
249
+ - **품질**: 테스트 전략, 성능 기준, 문서화
250
+
251
+ ### 3. 계획 작성 계획 보고서 생성
252
+
253
+ 다음 형식으로 계획을 제시합니다:
254
+
255
+ ```
256
+ ## 계획 작성 계획 보고서: [TARGET]
257
+
258
+ ### 📊 분석 결과
259
+ - **발굴된 SPEC 후보**: [개수 및 카테고리]
260
+ - **우선순위 높음**: [핵심 SPEC 목록]
261
+ - **예상 작업시간**: [시간 산정]
262
+
263
+ ### 🎯 작성 전략
264
+ - **선택된 SPEC**: [작성할 SPEC ID 및 제목]
265
+ - **EARS 구조**: [Event-Action-Response-State 설계]
266
+ - **Acceptance Criteria**: [Given-When-Then 시나리오]
267
+
268
+ ### 📦 기술 스택 및 라이브러리 버전 (선택사항)
269
+ **기술 스택이 계획 작성 단계에서 결정되는 경우에만 포함**:
270
+ - **웹 검색**: `WebSearch`를 통해 사용할 주요 라이브러리의 최신 안정 버전 확인
271
+ - **버전 명시**: 라이브러리별 정확한 버전 명시 (예: `fastapi>=0.118.3`)
272
+ - **안정성 우선**: 베타/알파 버전 제외, 프로덕션 안정 버전만 선택
273
+ - **참고**: 상세 버전은 `/alfred:2-build` 단계에서 최종 확정
274
+
275
+ ### ⚠️ 주의사항
276
+ - **기술적 제약**: [고려해야 할 제약사항]
277
+ - **의존성**: [다른 SPEC과의 연관성]
278
+ - **브랜치 전략**: [Personal/Team 모드별 처리]
279
+
280
+ ### ✅ 예상 산출물
281
+ - **spec.md**: [EARS 구조의 핵심 명세]
282
+ - **plan.md**: [구현 계획서]
283
+ - **acceptance.md**: [인수 기준]
284
+ - **브랜치/PR**: [모드별 Git 작업]
285
+
286
+ ---
287
+ **승인 요청**: 위 계획으로 계획 작성을 진행하시겠습니까?
288
+ ("진행", "수정 [내용]", "중단" 중 선택)
289
+ ```
290
+
291
+ ---
292
+
293
+ ## 🚀 STEP 2 실행 가이드: 계획 작성 (승인 후)
294
+
295
+ 사용자가 **"진행"** 또는 **"시작"**을 선택한 경우에만 Alfred는 spec-builder 에이전트를 호출하여 SPEC 문서 작성을 시작합니다.
296
+
297
+ ### EARS 명세 작성 가이드
298
+
299
+ 1. **Event**: 시스템에 발생하는 트리거 이벤트 정의
300
+ 2. **Action**: 이벤트에 대한 시스템의 행동 명세
301
+ 3. **Response**: 행동의 결과로 나타나는 응답 정의
302
+ 4. **State**: 시스템 상태 변화 및 부작용 명시
303
+
304
+ **예시** (상세 내용은 `development-guide.md` 참조):
305
+ ```markdown
306
+ ### Ubiquitous Requirements (기본 요구사항)
307
+ - 시스템은 사용자 인증 기능을 제공해야 한다
308
+
309
+ ### Event-driven Requirements (이벤트 기반)
310
+ - WHEN 사용자가 유효한 자격증명으로 로그인하면, 시스템은 JWT 토큰을 발급해야 한다
311
+
312
+ ### State-driven Requirements (상태 기반)
313
+ - WHILE 토큰이 만료되지 않은 상태일 때, 시스템은 보호된 리소스에 대한 접근을 허용해야 한다
314
+
315
+ ### Constraints (제약사항)
316
+ - IF 토큰이 만료되었으면, 시스템은 401 Unauthorized 응답을 반환해야 한다
317
+ ```
318
+
319
+ ### 📄 SPEC 문서 템플릿
320
+
321
+ #### YAML Front Matter 스키마
322
+
323
+ > **📋 SPEC 메타데이터 표준 (SSOT)**: `.moai/memory/spec-metadata.md`
324
+
325
+ **spec.md 파일 상단에 반드시 포함**해야 하는 메타데이터:
326
+ - **필수 필드 7개**: id, version, status, created, updated, author, priority
327
+ - **선택 필드 9개**: category, labels, depends_on, blocks, related_specs, related_issue, scope
328
+
329
+ **간단한 참조 예시**:
330
+ ```yaml
331
+ ---
332
+ id: AUTH-001
333
+ version: 0.0.1
334
+ status: draft
335
+ created: 2025-09-15
336
+ updated: 2025-09-15
337
+ author: @Goos
338
+ priority: high
339
+ ---
340
+ ```
341
+
342
+ **핵심 규칙**:
343
+ - **id**: TAG ID와 동일 (`<도메인>-<3자리>`) - 생성 후 절대 변경 금지
344
+ - **디렉토리명**: `.moai/specs/SPEC-{ID}/` (예: `SPEC-AUTH-001/`)
345
+ - **중복 확인**: `rg "@SPEC:{ID}" -n .moai/specs/` 필수
346
+ - **version**: v0.0.1 (INITIAL) → v0.1.0 (구현 완료) → v1.0.0 (안정화)
347
+ - **author**: GitHub ID 앞에 @ 접두사 필수 (예: `@Goos`)
348
+ - **priority**: critical | high | medium | low
349
+
350
+ **전체 필드 설명 및 검증 방법**: `.moai/memory/spec-metadata.md` 참조
351
+
352
+ #### HISTORY 섹션 (필수)
353
+
354
+ **YAML Front Matter 직후**에 반드시 HISTORY 섹션을 포함해야 합니다:
355
+
356
+ ```markdown
357
+ # @SPEC:AUTH-001: JWT 기반 인증 시스템
358
+
359
+ ## HISTORY
360
+
361
+ ### v0.0.1 (2025-09-15)
362
+ - **INITIAL**: JWT 기반 인증 시스템 명세 최초 작성
363
+ - **AUTHOR**: @Goos
364
+ - **SCOPE**: 토큰 발급, 검증, 갱신 로직
365
+ - **CONTEXT**: 사용자 인증 강화 요구사항 반영
366
+
367
+ ### v0.0.2 (2025-09-20)
368
+ - **ADDED**: 소셜 로그인 요구사항 추가 (Draft 수정)
369
+ - **AUTHOR**: @Goos
370
+ - **REVIEW**: @security-team (승인)
371
+ - **CHANGES**:
372
+ - OAuth2 통합 요구사항
373
+ - Google/GitHub 로그인 지원
374
+
375
+ ### v0.1.0 (2025-10-01)
376
+ - **IMPLEMENTATION COMPLETED**: TDD 구현 완료 (status: draft → completed)
377
+ - **TDD CYCLE**: RED → GREEN → REFACTOR
378
+ - **COMMITS**: [구현 커밋 해시 목록]
379
+ - **FILES**: [생성/수정된 파일 목록]
380
+ ```
381
+
382
+ **HISTORY 작성 규칙**:
383
+ - **버전 체계**: v0.0.1 (INITIAL) → v0.1.0 (구현 완료) → v1.0.0 (안정화)
384
+ - 상세 버전 체계: `.moai/memory/spec-metadata.md#버전-체계` 참조
385
+ - **버전 순서**: 최신 버전이 위로 (역순)
386
+ - **변경 타입 태그**: INITIAL, ADDED, CHANGED, IMPLEMENTATION COMPLETED, BREAKING, DEPRECATED, REMOVED, FIXED
387
+ - 상세 설명: `.moai/memory/spec-metadata.md#history-작성-가이드` 참조
388
+ - **필수 항목**: 버전, 날짜, AUTHOR, 변경 내용
389
+ - **선택 항목**: REVIEW, SCOPE, CONTEXT, MIGRATION
390
+
391
+ #### SPEC 문서 전체 구조
392
+
393
+ ```markdown
394
+ ---
395
+ id: AUTH-001
396
+ version: 1.0.0
397
+ status: draft
398
+ created: 2025-09-15
399
+ updated: 2025-09-15
400
+ author: @username
401
+ ---
402
+
403
+ # @SPEC:AUTH-001: [SPEC 제목]
404
+
405
+ ## HISTORY
406
+ [버전별 변경 이력 - 위 예시 참조]
407
+
408
+ ## Environment (환경)
409
+ [시스템 환경 및 전제 조건]
410
+
411
+ ## Assumptions (가정)
412
+ [설계 가정 사항]
413
+
414
+ ## Requirements (요구사항)
415
+ ### Ubiquitous (필수 기능)
416
+ - 시스템은 [기능]을 제공해야 한다
417
+
418
+ ### Event-driven (이벤트 기반)
419
+ - WHEN [조건]이면, 시스템은 [동작]해야 한다
420
+
421
+ ### State-driven (상태 기반)
422
+ - WHILE [상태]일 때, 시스템은 [동작]해야 한다
423
+
424
+ ### Optional (선택 기능)
425
+ - WHERE [조건]이면, 시스템은 [동작]할 수 있다
426
+
427
+ ### Constraints (제약사항)
428
+ - IF [조건]이면, 시스템은 [제약]해야 한다
429
+
430
+ ## Traceability (@TAG)
431
+ - **SPEC**: @SPEC:AUTH-001
432
+ - **TEST**: tests/auth/test_service.py
433
+ - **CODE**: src/auth/service.py
434
+ - **DOC**: docs/api/authentication.md
435
+ ```
436
+
437
+ ### 에이전트 협업 구조
438
+
439
+ - **1단계**: `spec-builder` 에이전트가 프로젝트 문서 분석 및 SPEC 문서 작성을 전담합니다.
440
+ - **2단계**: `git-manager` 에이전트가 브랜치 생성, GitHub Issue/PR 생성을 전담합니다.
441
+ - **단일 책임 원칙**: spec-builder는 계획 작성만, git-manager는 Git/GitHub 작업만 수행합니다.
442
+ - **순차 실행**: spec-builder → git-manager 순서로 실행하여 명확한 의존성을 유지합니다.
443
+ - **에이전트 간 호출 금지**: 각 에이전트는 다른 에이전트를 직접 호출하지 않고, 커맨드 레벨에서만 순차 실행합니다.
444
+
445
+ ## 🚀 최적화된 워크플로우 실행 순서
446
+
447
+ ### Phase 1: 병렬 프로젝트 분석 (성능 최적화)
448
+
449
+ **동시에 수행**:
450
+
451
+ ```
452
+ Task 1 (haiku): 프로젝트 구조 스캔
453
+ ├── 언어/프레임워크 감지
454
+ ├── 기존 SPEC 목록 수집
455
+ └── 우선순위 백로그 초안
456
+
457
+ Task 2 (sonnet): 심화 문서 분석
458
+ ├── product.md 요구사항 추출
459
+ ├── structure.md 아키텍처 분석
460
+ └── tech.md 기술적 제약사항
461
+ ```
462
+
463
+ **성능 향상**: 기본 스캔과 심화 분석을 병렬 처리하여 대기 시간 최소화
464
+
465
+ ### Phase 2: SPEC 문서 통합 작성
466
+
467
+ `spec-builder` 에이전트(sonnet)가 병렬 분석 결과를 통합하여:
468
+
469
+ - 프로젝트 문서 기반 기능 후보 제안
470
+ - 사용자 승인 후 SPEC 문서 작성 (MultiEdit 활용)
471
+ - 3개 파일 동시 생성 (spec.md, plan.md, acceptance.md)
472
+
473
+ ### Phase 3: Git 작업 처리
474
+
475
+ `git-manager` 에이전트(haiku)가 최종 처리:
476
+
477
+ - **브랜치 생성**: 모드별 전략 적용
478
+ - **Personal 모드**: `main` 또는 `develop`에서 분기 (프로젝트 설정 기준)
479
+ - **Team 모드**: **항상 `develop`에서 분기** (GitFlow 표준)
480
+ - 브랜치명: `feature/SPEC-{ID}` 형식
481
+ - **GitHub Issue 생성**: Team 모드에서 SPEC Issue 생성
482
+ - **Draft PR 생성**: Team 모드에서 `feature/SPEC-{ID}` → `develop` PR 생성
483
+ - **초기 커밋**: SPEC 문서 커밋 및 태그 생성
484
+
485
+ **중요**: 각 에이전트는 독립적으로 실행되며, 에이전트 간 직접 호출은 금지됩니다.
486
+
487
+ ## 에이전트 역할 분리
488
+
489
+ ### spec-builder 전담 영역
490
+
491
+ - 프로젝트 문서 분석 및 SPEC 후보 발굴
492
+ - EARS 구조의 명세서 작성
493
+ - Acceptance Criteria 작성 (Given-When-Then)
494
+ - SPEC 문서 품질 검증
495
+ - @TAG 시스템 적용
496
+
497
+ ### git-manager 전담 영역
498
+
499
+ - 모든 Git 브랜치 생성 및 관리
500
+ - **모드별 브랜치 전략 적용**
501
+ - Personal: `main` 또는 `develop`에서 분기
502
+ - Team: **항상 `develop`에서 분기** (GitFlow)
503
+ - GitHub Issue/PR 생성
504
+ - Team 모드: Draft PR 생성 (`feature/SPEC-{ID}` → `develop`)
505
+ - 초기 커밋 및 태그 생성
506
+ - 원격 동기화 처리
507
+
508
+ ## 2단계 워크플로우 실행 순서
509
+
510
+ ### Phase 1: 분석 및 계획 단계
511
+
512
+ **계획 분석기**가 다음을 수행:
513
+
514
+ 1. **프로젝트 문서 로딩**: product/structure/tech.md 심층 분석
515
+ 2. **SPEC 후보 발굴**: 비즈니스 요구사항 기반 우선순위 결정
516
+ 3. **구현 전략 수립**: EARS 구조 및 Acceptance 설계
517
+ 4. **작성 계획 생성**: 단계별 계획 작성 접근 방식 제시
518
+ 5. **사용자 승인 대기**: 계획 검토 및 피드백 수집
519
+
520
+ ### Phase 2: 계획 작성 단계 (승인 후)
521
+
522
+ `spec-builder` 에이전트가 사용자 승인 후 **연속적으로** 수행:
523
+
524
+ 1. **EARS 명세 작성**: Event-Action-Response-State 구조화
525
+ 2. **Acceptance Criteria**: Given-When-Then 시나리오 작성
526
+ 3. **문서 품질 검증**: TRUST 원칙 및 @TAG 적용
527
+ 4. **템플릿 생성**: spec.md, plan.md, acceptance.md 동시 생성
528
+
529
+ ### Phase 3: Git 작업 (git-manager)
530
+
531
+ `git-manager` 에이전트가 SPEC 완료 후 **한 번에** 수행:
532
+
533
+ 1. **브랜치 생성**: 모드별 브랜치 전략 적용
534
+ 2. **GitHub Issue**: Team 모드에서 SPEC Issue 생성
535
+ 3. **초기 커밋**: SPEC 문서 커밋 및 태그 생성
536
+ 4. **원격 동기화**: 모드별 동기화 전략 적용
537
+
538
+ ## 작성 팁
539
+
540
+ - product/structure/tech 문서에 없는 정보는 새로 질문해 보완합니다.
541
+ - Acceptance Criteria는 Given/When/Then 3단으로 최소 2개 이상 작성하도록 유도합니다.
542
+ - TRUST 원칙 중 Readable(읽기 쉬움) 기준 완화로 인해 모듈 수가 권장치(기본 5)를 초과하는 경우, 근거를 SPEC `context` 섹션에 함께 기록하세요.
543
+
544
+ ---
545
+
546
+ ## 🧠 Context Management (컨텍스트 관리)
547
+
548
+ > 자세한 내용: `.moai/memory/development-guide.md` - "Context Engineering" 섹션 참조
549
+
550
+ ### 이 커맨드의 핵심 전략
551
+
552
+ **우선 로드**: `.moai/project/product.md` (비즈니스 요구사항)
553
+
554
+ **권장사항**: 계획 작성이 완료되었습니다. 다음 단계(`/alfred:2-build`) 진행 전 `/clear` 또는 `/new` 명령으로 새로운 대화 세션을 시작하면 더 나은 성능과 컨텍스트 관리를 경험할 수 있습니다.
555
+
556
+ ---
557
+
558
+ ## 다음 단계
559
+
560
+ **권장사항**: 다음 단계 진행 전 `/clear` 또는 `/new` 명령으로 새로운 대화 세션을 시작하면 더 나은 성능과 컨텍스트 관리를 경험할 수 있습니다.
561
+
562
+ - `/alfred:2-build SPEC-XXX`로 TDD 구현 시작
563
+ - 팀 모드: Issue 생성 후 git-manager 에이전트가 자동으로 브랜치 생성