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.
- moai_adk/__init__.py +8 -1
- moai_adk/__main__.py +1 -1
- moai_adk/cli/commands/__init__.py +1 -1
- moai_adk/cli/commands/doctor.py +2 -2
- moai_adk/cli/commands/status.py +1 -1
- moai_adk/cli/commands/update.py +136 -90
- moai_adk/cli/prompts/init_prompts.py +1 -1
- moai_adk/core/__init__.py +1 -1
- moai_adk/core/git/branch.py +1 -1
- moai_adk/core/git/manager.py +1 -1
- moai_adk/core/quality/__init__.py +1 -1
- moai_adk/core/quality/trust_checker.py +1 -1
- moai_adk/core/quality/validators/__init__.py +1 -1
- moai_adk/core/quality/validators/base_validator.py +1 -1
- moai_adk/core/template/__init__.py +1 -1
- moai_adk/core/template/backup.py +2 -1
- moai_adk/core/template/config.py +24 -0
- moai_adk/core/template/languages.py +1 -1
- moai_adk/core/template/merger.py +58 -1
- moai_adk/core/template/processor.py +41 -12
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +558 -3
- moai_adk/templates/.claude/commands/alfred/0-project.md +480 -12
- moai_adk/templates/.claude/commands/alfred/1-plan.md +563 -0
- moai_adk/templates/.claude/commands/alfred/1-spec.md +15 -516
- moai_adk/templates/.claude/commands/alfred/2-build.md +15 -417
- moai_adk/templates/.claude/commands/alfred/2-run.md +460 -0
- moai_adk/templates/.claude/hooks/alfred/handlers/session.py +10 -31
- moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-claude-code/examples.md +513 -0
- moai_adk/templates/.claude/skills/moai-claude-code/reference.md +419 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +332 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +384 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +349 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +552 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +499 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +64 -0
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +69 -0
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +69 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +62 -0
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +74 -0
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +59 -0
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +76 -0
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +61 -0
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +63 -0
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +64 -0
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +61 -0
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +54 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +46 -0
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +69 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +64 -0
- moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +65 -0
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +65 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +64 -0
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +64 -0
- moai_adk/templates/.claude/skills/scripts/standardize_skills.py +166 -0
- moai_adk/templates/.claude/skills/scripts/verify_standardization.sh +43 -0
- moai_adk/templates/CLAUDE.md +153 -0
- moai_adk/templates/__init__.py +1 -1
- moai_adk/utils/__init__.py +1 -1
- moai_adk/utils/banner.py +7 -7
- moai_adk/utils/logger.py +1 -1
- {moai_adk-0.3.13.dist-info → moai_adk-0.4.0.dist-info}/METADATA +231 -1
- moai_adk-0.4.0.dist-info/RECORD +145 -0
- moai_adk-0.3.13.dist-info/RECORD +0 -90
- {moai_adk-0.3.13.dist-info → moai_adk-0.4.0.dist-info}/WHEEL +0 -0
- {moai_adk-0.3.13.dist-info → moai_adk-0.4.0.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.3.13.dist-info → moai_adk-0.4.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: {agent-name}
|
|
3
|
+
description: "Use when: {detailed-trigger-condition-with-context}"
|
|
4
|
+
tools: Read, Write, Edit, MultiEdit, Grep, Glob, Bash, TodoWrite, WebFetch
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# {Agent Name} - {Specialist Title}
|
|
9
|
+
|
|
10
|
+
**{Comprehensive 2-3 sentence description of agent's role, expertise, and unique value proposition}**
|
|
11
|
+
|
|
12
|
+
## 🎭 에이전트 페르소나 (전문 개발자 직무)
|
|
13
|
+
|
|
14
|
+
**아이콘**: {emoji}
|
|
15
|
+
**직무**: {job-title-kr} ({job-title-en})
|
|
16
|
+
**전문 영역**: {detailed-expertise-description}
|
|
17
|
+
**역할**: {comprehensive-role-and-responsibilities}
|
|
18
|
+
**목표**: {specific-measurable-goals}
|
|
19
|
+
|
|
20
|
+
### 전문가 특성
|
|
21
|
+
|
|
22
|
+
- **사고 방식**: {how-this-agent-approaches-problems}
|
|
23
|
+
- **의사결정 기준**: {what-principles-guide-decisions}
|
|
24
|
+
- **커뮤니케이션 스타일**: {how-agent-interacts-with-users}
|
|
25
|
+
- **전문 분야**: {specific-technical-domains-1}, {domain-2}, {domain-3}
|
|
26
|
+
|
|
27
|
+
## 🎯 핵심 역할
|
|
28
|
+
|
|
29
|
+
### 1. {Primary Responsibility Area}
|
|
30
|
+
|
|
31
|
+
- **{Sub-responsibility 1}**: {detailed-description-of-what-this-involves}
|
|
32
|
+
- **{Sub-responsibility 2}**: {detailed-description-with-examples}
|
|
33
|
+
- **{Sub-responsibility 3}**: {description-and-expected-outcomes}
|
|
34
|
+
|
|
35
|
+
### 2. 자동 실행 조건
|
|
36
|
+
|
|
37
|
+
- {Specific trigger situation 1 with context}
|
|
38
|
+
- {Specific trigger situation 2 with context}
|
|
39
|
+
- {Specific trigger situation 3 with context}
|
|
40
|
+
|
|
41
|
+
## 📐 워크플로우 (상세)
|
|
42
|
+
|
|
43
|
+
### STEP 1: {First Major Step Title}
|
|
44
|
+
|
|
45
|
+
**목적**: {Clear statement of what this step accomplishes}
|
|
46
|
+
|
|
47
|
+
**실행**:
|
|
48
|
+
```bash
|
|
49
|
+
# {Command description}
|
|
50
|
+
{command-1}
|
|
51
|
+
|
|
52
|
+
# {Another command description}
|
|
53
|
+
{command-2}
|
|
54
|
+
|
|
55
|
+
# {Final command in this step}
|
|
56
|
+
{command-3}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**산출물**:
|
|
60
|
+
- {Detailed output 1 with format/structure}
|
|
61
|
+
- {Detailed output 2 with expected values}
|
|
62
|
+
- {Detailed output 3 with validation criteria}
|
|
63
|
+
|
|
64
|
+
**검증**:
|
|
65
|
+
- [ ] {Validation criterion 1 - what to check}
|
|
66
|
+
- [ ] {Validation criterion 2 - expected result}
|
|
67
|
+
- [ ] {Validation criterion 3 - error conditions}
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### STEP 2: {Second Major Step Title}
|
|
72
|
+
|
|
73
|
+
**목적**: {Clear statement of purpose}
|
|
74
|
+
|
|
75
|
+
**실행**:
|
|
76
|
+
```bash
|
|
77
|
+
# {Detailed command explanation}
|
|
78
|
+
{command}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**산출물**:
|
|
82
|
+
```{format}
|
|
83
|
+
{example-output-structure}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**검증**:
|
|
87
|
+
- [ ] {Validation 1}
|
|
88
|
+
- [ ] {Validation 2}
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
### STEP 3: {Third Major Step Title}
|
|
93
|
+
|
|
94
|
+
**목적**: {Purpose statement}
|
|
95
|
+
|
|
96
|
+
**실행**:
|
|
97
|
+
```bash
|
|
98
|
+
{commands}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**산출물**:
|
|
102
|
+
- {Output description}
|
|
103
|
+
|
|
104
|
+
## 🤝 사용자 상호작용
|
|
105
|
+
|
|
106
|
+
### AskUserQuestion 사용 시점
|
|
107
|
+
|
|
108
|
+
{agent-name}는 다음 상황에서 **AskUserQuestion 도구**를 사용합니다:
|
|
109
|
+
|
|
110
|
+
#### 1. {Situation 1 Title}
|
|
111
|
+
|
|
112
|
+
**상황**: {Detailed description of when this occurs}
|
|
113
|
+
|
|
114
|
+
**예시 질문**:
|
|
115
|
+
```typescript
|
|
116
|
+
AskUserQuestion({
|
|
117
|
+
questions: [{
|
|
118
|
+
question: "{Specific question to ask user}?",
|
|
119
|
+
header: "{Short header text}",
|
|
120
|
+
options: [
|
|
121
|
+
{
|
|
122
|
+
label: "{Option 1}",
|
|
123
|
+
description: "{What happens if user chooses this}"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
label: "{Option 2}",
|
|
127
|
+
description: "{What happens if user chooses this}"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
label: "{Option 3}",
|
|
131
|
+
description: "{Alternative choice explanation}"
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
multiSelect: false
|
|
135
|
+
}]
|
|
136
|
+
})
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**처리 로직**:
|
|
140
|
+
```typescript
|
|
141
|
+
// Based on user response
|
|
142
|
+
if (answer === "Option 1") {
|
|
143
|
+
// {What agent does for this choice}
|
|
144
|
+
} else if (answer === "Option 2") {
|
|
145
|
+
// {What agent does for this choice}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
#### 2. {Situation 2 Title}
|
|
152
|
+
|
|
153
|
+
**상황**: {When this interaction is needed}
|
|
154
|
+
|
|
155
|
+
**예시 질문**:
|
|
156
|
+
```typescript
|
|
157
|
+
AskUserQuestion({
|
|
158
|
+
questions: [{
|
|
159
|
+
question: "{Another scenario question}?",
|
|
160
|
+
header: "{Header}",
|
|
161
|
+
options: [
|
|
162
|
+
{ label: "{Choice A}", description: "{Impact of choice A}" },
|
|
163
|
+
{ label: "{Choice B}", description: "{Impact of choice B}" }
|
|
164
|
+
],
|
|
165
|
+
multiSelect: false
|
|
166
|
+
}]
|
|
167
|
+
})
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## ⚠️ 제약사항
|
|
171
|
+
|
|
172
|
+
### 금지 사항
|
|
173
|
+
|
|
174
|
+
- ❌ {Prohibited action 1 with explanation why}
|
|
175
|
+
- ❌ {Prohibited action 2 with security/safety reason}
|
|
176
|
+
- ❌ {Prohibited action 3 with alternative approach}
|
|
177
|
+
|
|
178
|
+
### 위임 규칙
|
|
179
|
+
|
|
180
|
+
- **{Agent/Tool 1}** → {When to delegate to this agent}
|
|
181
|
+
- **{Agent/Tool 2}** → {When to use this instead}
|
|
182
|
+
- **{Agent/Tool 3}** → {Delegation condition}
|
|
183
|
+
|
|
184
|
+
### 권한 제한
|
|
185
|
+
|
|
186
|
+
- 파일 접근: {List allowed directories/patterns}
|
|
187
|
+
- 명령 실행: {List allowed bash patterns}
|
|
188
|
+
- 외부 리소스: {List allowed external resources}
|
|
189
|
+
|
|
190
|
+
## ✅ 품질 게이트
|
|
191
|
+
|
|
192
|
+
### 완료 기준
|
|
193
|
+
|
|
194
|
+
- [ ] {Completion criterion 1 with measurable target}
|
|
195
|
+
- [ ] {Completion criterion 2 with validation method}
|
|
196
|
+
- [ ] {Completion criterion 3 with expected state}
|
|
197
|
+
- [ ] {Completion criterion 4 with deliverable}
|
|
198
|
+
|
|
199
|
+
### 에러 처리
|
|
200
|
+
|
|
201
|
+
**일반적인 오류 및 해결책**:
|
|
202
|
+
|
|
203
|
+
| 오류 유형 | 원인 | 해결 방법 |
|
|
204
|
+
|----------|------|----------|
|
|
205
|
+
| {Error Type 1} | {Root cause} | {Step-by-step solution} |
|
|
206
|
+
| {Error Type 2} | {What causes it} | {How to fix it} |
|
|
207
|
+
| {Error Type 3} | {Trigger condition} | {Resolution steps} |
|
|
208
|
+
|
|
209
|
+
**에러 복구 프로세스**:
|
|
210
|
+
1. {First recovery step}
|
|
211
|
+
2. {Second recovery step}
|
|
212
|
+
3. {Fallback procedure}
|
|
213
|
+
|
|
214
|
+
### 성능 기준
|
|
215
|
+
|
|
216
|
+
- **실행 시간**: {Expected duration}
|
|
217
|
+
- **메모리 사용**: {Expected resource usage}
|
|
218
|
+
- **출력 크기**: {Expected output size}
|
|
219
|
+
|
|
220
|
+
## 💡 사용 가이드
|
|
221
|
+
|
|
222
|
+
### 직접 호출
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Basic usage
|
|
226
|
+
@agent-{agent-name} "{simple task description}"
|
|
227
|
+
|
|
228
|
+
# With specific context
|
|
229
|
+
@agent-{agent-name} "{detailed task with context and constraints}"
|
|
230
|
+
|
|
231
|
+
# With options
|
|
232
|
+
@agent-{agent-name} "{task}" --option1 value1 --option2 value2
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### 자동 실행 조건
|
|
236
|
+
|
|
237
|
+
- {Auto-trigger condition 1 with example}
|
|
238
|
+
- {Auto-trigger condition 2 with keyword pattern}
|
|
239
|
+
- {Auto-trigger condition 3 with context requirement}
|
|
240
|
+
|
|
241
|
+
### 베스트 프랙티스
|
|
242
|
+
|
|
243
|
+
1. **{Practice 1 Title}**
|
|
244
|
+
- {Detailed explanation}
|
|
245
|
+
- Example: `{code-or-command-example}`
|
|
246
|
+
|
|
247
|
+
2. **{Practice 2 Title}**
|
|
248
|
+
- {Why this is important}
|
|
249
|
+
- Anti-pattern: ❌ `{what-not-to-do}`
|
|
250
|
+
- Correct: ✅ `{what-to-do-instead}`
|
|
251
|
+
|
|
252
|
+
3. **{Practice 3 Title}**
|
|
253
|
+
- {Best approach}
|
|
254
|
+
- When to apply: {Specific scenarios}
|
|
255
|
+
|
|
256
|
+
## 🔗 통합 및 협업
|
|
257
|
+
|
|
258
|
+
### 연관 에이전트
|
|
259
|
+
|
|
260
|
+
- **{Agent 1}** ({Icon} {Role}): {How they collaborate}
|
|
261
|
+
- **{Agent 2}** ({Icon} {Role}): {Handoff scenarios}
|
|
262
|
+
- **{Agent 3}** ({Icon} {Role}): {Integration points}
|
|
263
|
+
|
|
264
|
+
### 커맨드 통합
|
|
265
|
+
|
|
266
|
+
- **{Command 1}** - {When this command invokes this agent}
|
|
267
|
+
- **{Command 2}** - {Integration scenario}
|
|
268
|
+
|
|
269
|
+
### MoAI-ADK 워크플로우 위치
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
/alfred:1-spec → /alfred:2-build → /alfred:3-sync
|
|
273
|
+
↑ ↑ ↑
|
|
274
|
+
{Where this agent fits in the workflow}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## 📊 예제 시나리오
|
|
278
|
+
|
|
279
|
+
### 시나리오 1: {Common Use Case Title}
|
|
280
|
+
|
|
281
|
+
**입력**:
|
|
282
|
+
```
|
|
283
|
+
{Example user request}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**실행 과정**:
|
|
287
|
+
1. {What agent does in step 1}
|
|
288
|
+
2. {What agent does in step 2}
|
|
289
|
+
3. {What agent does in step 3}
|
|
290
|
+
|
|
291
|
+
**출력**:
|
|
292
|
+
```{format}
|
|
293
|
+
{example-output}
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**검증 결과**:
|
|
297
|
+
- ✅ {Verification 1 passed}
|
|
298
|
+
- ✅ {Verification 2 passed}
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
### 시나리오 2: {Edge Case Title}
|
|
303
|
+
|
|
304
|
+
**입력**:
|
|
305
|
+
```
|
|
306
|
+
{Complex user request}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
**처리**:
|
|
310
|
+
- {How agent handles complexity}
|
|
311
|
+
- {Special considerations}
|
|
312
|
+
|
|
313
|
+
**출력**:
|
|
314
|
+
- {Result description}
|
|
315
|
+
|
|
316
|
+
## 📚 참고 자료
|
|
317
|
+
|
|
318
|
+
- **공식 문서**: {Link to relevant documentation}
|
|
319
|
+
- **관련 스킬**: {Link to complementary skills}
|
|
320
|
+
- **MoAI-ADK 가이드**: {Link to internal guide}
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
**Template Level**: Full
|
|
325
|
+
**Best For**: Production MoAI-ADK projects, enterprise workflows
|
|
326
|
+
**Features**: Complete feature set, AskUserQuestion, quality gates, error handling
|
|
327
|
+
**Estimated Setup Time**: 30-45 minutes
|
|
328
|
+
**Maintenance**: Regular updates recommended
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
이 {agent-name}는 {expertise-domain}의 최고 표준을 제공합니다.
|
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: {command-name}
|
|
3
|
+
description: {Comprehensive one-line description with context}
|
|
4
|
+
argument-hint: [{param1}] [{param2}] [{options}]
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- MultiEdit
|
|
10
|
+
- Grep
|
|
11
|
+
- Glob
|
|
12
|
+
- TodoWrite
|
|
13
|
+
- Task
|
|
14
|
+
- Bash(git:*)
|
|
15
|
+
- Bash({specific-pattern}:*)
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# 📋 {Command Title}
|
|
19
|
+
|
|
20
|
+
{Comprehensive 2-3 sentence description of command's purpose, integration with MoAI-ADK workflow, and key benefits}
|
|
21
|
+
|
|
22
|
+
## 🎯 커맨드 목적
|
|
23
|
+
|
|
24
|
+
{Detailed multi-paragraph explanation covering:
|
|
25
|
+
- What problem this command solves
|
|
26
|
+
- How it fits into the larger workflow
|
|
27
|
+
- When to use this command vs alternatives
|
|
28
|
+
- What makes this command unique/valuable}
|
|
29
|
+
|
|
30
|
+
## 📋 실행 흐름 (2-Phase 구조)
|
|
31
|
+
|
|
32
|
+
### ⚙️ Phase 0: 환경 분석 (선택적)
|
|
33
|
+
|
|
34
|
+
**목적**: {Pre-execution analysis purpose}
|
|
35
|
+
|
|
36
|
+
**실행**:
|
|
37
|
+
```bash
|
|
38
|
+
# {Environment check description}
|
|
39
|
+
{command-1}
|
|
40
|
+
|
|
41
|
+
# {Prerequisites verification}
|
|
42
|
+
{command-2}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**검증**:
|
|
46
|
+
- [ ] {Prerequisite 1 checked}
|
|
47
|
+
- [ ] {Prerequisite 2 verified}
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
### 📊 Phase 1: {Planning/Analysis Phase}
|
|
52
|
+
|
|
53
|
+
**목적**: {Detailed purpose of planning phase}
|
|
54
|
+
|
|
55
|
+
**자동 처리**:
|
|
56
|
+
- {Auto-task 1 that happens without user input}
|
|
57
|
+
- {Auto-task 2 that system handles}
|
|
58
|
+
- {Auto-task 3 performed automatically}
|
|
59
|
+
|
|
60
|
+
**실행 단계**:
|
|
61
|
+
|
|
62
|
+
#### 1.1 {First Sub-Step}
|
|
63
|
+
```bash
|
|
64
|
+
# {Detailed explanation}
|
|
65
|
+
{command-or-action}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**산출물**:
|
|
69
|
+
- {Output 1 with format specification}
|
|
70
|
+
- {Output 2 with expected structure}
|
|
71
|
+
|
|
72
|
+
#### 1.2 {Second Sub-Step}
|
|
73
|
+
```bash
|
|
74
|
+
{commands}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**산출물**:
|
|
78
|
+
- {Intermediate output description}
|
|
79
|
+
|
|
80
|
+
#### 1.3 {사용자 확인}
|
|
81
|
+
|
|
82
|
+
**AskUserQuestion 시점**: {When user confirmation is needed}
|
|
83
|
+
|
|
84
|
+
**확인 내용**:
|
|
85
|
+
```typescript
|
|
86
|
+
AskUserQuestion({
|
|
87
|
+
questions: [{
|
|
88
|
+
question: "{What to ask user}?",
|
|
89
|
+
header: "{Short header}",
|
|
90
|
+
options: [
|
|
91
|
+
{ label: "진행", description: "Phase 2 실행" },
|
|
92
|
+
{ label: "수정", description: "{What modification means}" },
|
|
93
|
+
{ label: "중단", description: "작업 취소" }
|
|
94
|
+
],
|
|
95
|
+
multiSelect: false
|
|
96
|
+
}]
|
|
97
|
+
})
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Phase 1 산출물 (최종)**:
|
|
101
|
+
- {Complete output 1 from planning}
|
|
102
|
+
- {Complete output 2 ready for execution}
|
|
103
|
+
- {User-approved plan}
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### 🚀 Phase 2: {Execution Phase}
|
|
108
|
+
|
|
109
|
+
**목적**: {Detailed purpose of execution phase}
|
|
110
|
+
|
|
111
|
+
**사전 조건**:
|
|
112
|
+
- [ ] Phase 1 완료 및 사용자 승인
|
|
113
|
+
- [ ] {Additional precondition 1}
|
|
114
|
+
- [ ] {Additional precondition 2}
|
|
115
|
+
|
|
116
|
+
**실행 단계**:
|
|
117
|
+
|
|
118
|
+
#### 2.1 {First Execution Step}
|
|
119
|
+
```bash
|
|
120
|
+
# {What this does}
|
|
121
|
+
{execution-command-1}
|
|
122
|
+
|
|
123
|
+
# {Next action}
|
|
124
|
+
{execution-command-2}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**실시간 진행 상황**:
|
|
128
|
+
```
|
|
129
|
+
{Progress indicator format}
|
|
130
|
+
[▓▓▓▓▓▓▓░░░] {percentage}% - {current-action}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
#### 2.2 {Second Execution Step}
|
|
134
|
+
```bash
|
|
135
|
+
{commands-with-explanations}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
#### 2.3 {품질 검증}
|
|
139
|
+
```bash
|
|
140
|
+
# {Validation check 1}
|
|
141
|
+
{validation-command-1}
|
|
142
|
+
|
|
143
|
+
# {Validation check 2}
|
|
144
|
+
{validation-command-2}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**검증 기준**:
|
|
148
|
+
- [ ] {Quality criterion 1 with threshold}
|
|
149
|
+
- [ ] {Quality criterion 2 with expected value}
|
|
150
|
+
- [ ] {Quality criterion 3 with pass/fail}
|
|
151
|
+
|
|
152
|
+
**Phase 2 최종 산출물**:
|
|
153
|
+
```{format}
|
|
154
|
+
{example-final-output-structure}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## 🔗 연관 에이전트
|
|
158
|
+
|
|
159
|
+
### Primary Agent
|
|
160
|
+
- **{agent-name}** ({Icon} {Persona})
|
|
161
|
+
- **전문 영역**: {Expertise}
|
|
162
|
+
- **호출 시점**: {When invoked}
|
|
163
|
+
- **역할**: {What agent does in this command}
|
|
164
|
+
|
|
165
|
+
### Secondary Agents
|
|
166
|
+
- **{agent-2}** ({Icon} {Role}) - {Integration scenario}
|
|
167
|
+
- **{agent-3}** ({Icon} {Role}) - {When used}
|
|
168
|
+
|
|
169
|
+
## 💡 사용 예시
|
|
170
|
+
|
|
171
|
+
### 기본 사용
|
|
172
|
+
```bash
|
|
173
|
+
/{command-name} {basic-example}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### 고급 사용
|
|
177
|
+
```bash
|
|
178
|
+
# {Advanced use case 1}
|
|
179
|
+
/{command-name} {param1} --{option1}={value1}
|
|
180
|
+
|
|
181
|
+
# {Advanced use case 2}
|
|
182
|
+
/{command-name} {param1} {param2} --{flag}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### 실전 시나리오
|
|
186
|
+
|
|
187
|
+
#### 시나리오 1: {Common Workflow}
|
|
188
|
+
```bash
|
|
189
|
+
# Step 1: {What user does first}
|
|
190
|
+
/{command-name} "{example-input}"
|
|
191
|
+
|
|
192
|
+
# Result: {What happens}
|
|
193
|
+
# Next: {What to do next}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
#### 시나리오 2: {Edge Case}
|
|
197
|
+
```bash
|
|
198
|
+
# When {special condition}
|
|
199
|
+
/{command-name} {special-params}
|
|
200
|
+
|
|
201
|
+
# Handles: {How command adapts}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## 명령어 인수 상세
|
|
205
|
+
|
|
206
|
+
| 인수/옵션 | 타입 | 필수 | 기본값 | 설명 |
|
|
207
|
+
|----------|------|------|--------|------|
|
|
208
|
+
| `{param1}` | {type} | ✅ | - | {Detailed description of param1} |
|
|
209
|
+
| `{param2}` | {type} | ⚠️ | {default} | {Detailed description of param2} |
|
|
210
|
+
| `--{option1}` | {type} | ⚠️ | {default} | {What this option controls} |
|
|
211
|
+
| `--{flag}` | boolean | ⚠️ | false | {When to use this flag} |
|
|
212
|
+
|
|
213
|
+
**인수 검증**:
|
|
214
|
+
- {Validation rule 1}
|
|
215
|
+
- {Validation rule 2}
|
|
216
|
+
|
|
217
|
+
## ⚠️ 금지 사항
|
|
218
|
+
|
|
219
|
+
**절대 하지 말아야 할 작업**:
|
|
220
|
+
|
|
221
|
+
- ❌ {Prohibited action 1 with explanation}
|
|
222
|
+
- ❌ {Prohibited action 2 with reason}
|
|
223
|
+
- ❌ {Prohibited action 3 with alternative}
|
|
224
|
+
|
|
225
|
+
**사용해야 할 표현**:
|
|
226
|
+
|
|
227
|
+
- ✅ {Recommended practice 1}
|
|
228
|
+
- ✅ {Recommended practice 2}
|
|
229
|
+
|
|
230
|
+
## 🚨 에러 처리
|
|
231
|
+
|
|
232
|
+
### 일반적인 오류
|
|
233
|
+
|
|
234
|
+
| 에러 메시지 | 원인 | 해결 방법 |
|
|
235
|
+
|-----------|------|----------|
|
|
236
|
+
| `{Error 1}` | {Root cause} | {Step-by-step solution} |
|
|
237
|
+
| `{Error 2}` | {What triggers it} | {How to fix} |
|
|
238
|
+
| `{Error 3}` | {Condition} | {Resolution} |
|
|
239
|
+
|
|
240
|
+
### 복구 절차
|
|
241
|
+
|
|
242
|
+
1. **{Recovery Step 1}**: {What to do first}
|
|
243
|
+
2. **{Recovery Step 2}**: {Next action}
|
|
244
|
+
3. **{Fallback}**: {Last resort if all fails}
|
|
245
|
+
|
|
246
|
+
## ✅ 성공 기준
|
|
247
|
+
|
|
248
|
+
**커맨드 실행 후 확인 사항**:
|
|
249
|
+
|
|
250
|
+
- [ ] {Success criterion 1 with verification method}
|
|
251
|
+
- [ ] {Success criterion 2 with expected outcome}
|
|
252
|
+
- [ ] {Success criterion 3 with deliverable}
|
|
253
|
+
|
|
254
|
+
**품질 게이트**:
|
|
255
|
+
```bash
|
|
256
|
+
# {Quality check 1}
|
|
257
|
+
{verification-command-1}
|
|
258
|
+
|
|
259
|
+
# {Quality check 2}
|
|
260
|
+
{verification-command-2}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## 📋 다음 단계
|
|
264
|
+
|
|
265
|
+
**권장 워크플로우**:
|
|
266
|
+
|
|
267
|
+
1. **즉시 실행**: {What to do right after command completes}
|
|
268
|
+
2. **검증**: {How to verify results}
|
|
269
|
+
3. **다음 커맨드**: `/{next-command}` - {Why this is next}
|
|
270
|
+
|
|
271
|
+
**대안 경로**:
|
|
272
|
+
- {Alternative path 1 if condition X}
|
|
273
|
+
- {Alternative path 2 if condition Y}
|
|
274
|
+
|
|
275
|
+
## 🔄 통합 워크플로우
|
|
276
|
+
|
|
277
|
+
### MoAI-ADK 워크플로우 위치
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
/{prev-command} → /{command-name} → /{next-command}
|
|
281
|
+
↓
|
|
282
|
+
{Connected agents/tasks}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### 다른 커맨드와의 관계
|
|
286
|
+
|
|
287
|
+
| 커맨드 | 관계 | 실행 순서 |
|
|
288
|
+
|--------|------|----------|
|
|
289
|
+
| `/{related-1}` | {Relationship} | {Before/After/Parallel} |
|
|
290
|
+
| `/{related-2}` | {Relationship} | {Sequence} |
|
|
291
|
+
|
|
292
|
+
## 📊 성능 메트릭
|
|
293
|
+
|
|
294
|
+
- **평균 실행 시간**: {Expected duration}
|
|
295
|
+
- **메모리 사용량**: {Expected memory}
|
|
296
|
+
- **생성 파일 수**: {Expected file count}
|
|
297
|
+
- **API 호출**: {Expected external calls}
|
|
298
|
+
|
|
299
|
+
## 🎓 베스트 프랙티스
|
|
300
|
+
|
|
301
|
+
### 1. {Practice Category 1}
|
|
302
|
+
|
|
303
|
+
**권장**:
|
|
304
|
+
```bash
|
|
305
|
+
# {Good example}
|
|
306
|
+
/{command-name} {recommended-usage}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
**비권장**:
|
|
310
|
+
```bash
|
|
311
|
+
# {Bad example - why to avoid}
|
|
312
|
+
/{command-name} {anti-pattern}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### 2. {Practice Category 2}
|
|
316
|
+
|
|
317
|
+
**팁**: {Helpful tip or trick}
|
|
318
|
+
|
|
319
|
+
### 3. {Practice Category 3}
|
|
320
|
+
|
|
321
|
+
**주의**: {Important consideration}
|
|
322
|
+
|
|
323
|
+
## 🔗 관련 리소스
|
|
324
|
+
|
|
325
|
+
### 관련 커맨드
|
|
326
|
+
- `/{command-1}` - {Description and relation}
|
|
327
|
+
- `/{command-2}` - {Description and when to use}
|
|
328
|
+
|
|
329
|
+
### 관련 에이전트
|
|
330
|
+
- `@agent-{agent-1}` - {How it supports this command}
|
|
331
|
+
- `@agent-{agent-2}` - {Integration point}
|
|
332
|
+
|
|
333
|
+
### 문서
|
|
334
|
+
- **SPEC**: {Link to specification}
|
|
335
|
+
- **가이드**: {Link to detailed guide}
|
|
336
|
+
- **예제**: {Link to examples}
|
|
337
|
+
|
|
338
|
+
## 📝 커맨드 출력 예시
|
|
339
|
+
|
|
340
|
+
**성공 케이스**:
|
|
341
|
+
```
|
|
342
|
+
✅ {Command Name} 완료
|
|
343
|
+
|
|
344
|
+
📊 실행 결과:
|
|
345
|
+
- {Result metric 1}: {value}
|
|
346
|
+
- {Result metric 2}: {value}
|
|
347
|
+
- {Result metric 3}: {value}
|
|
348
|
+
|
|
349
|
+
📁 생성된 파일:
|
|
350
|
+
- {File 1}: {Description}
|
|
351
|
+
- {File 2}: {Description}
|
|
352
|
+
|
|
353
|
+
📋 다음 단계:
|
|
354
|
+
- {Next step 1}
|
|
355
|
+
- {Next step 2}
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
**에러 케이스**:
|
|
359
|
+
```
|
|
360
|
+
❌ {Command Name} 실패
|
|
361
|
+
|
|
362
|
+
🔍 에러 상세:
|
|
363
|
+
- 유형: {Error type}
|
|
364
|
+
- 위치: {Where error occurred}
|
|
365
|
+
- 메시지: {Error message}
|
|
366
|
+
|
|
367
|
+
💡 해결 방법:
|
|
368
|
+
1. {Solution step 1}
|
|
369
|
+
2. {Solution step 2}
|
|
370
|
+
|
|
371
|
+
📞 추가 도움: {Where to get help}
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
**Template Level**: Full
|
|
377
|
+
**Best For**: Production MoAI-ADK workflows, enterprise automation
|
|
378
|
+
**Features**: 2-phase structure, quality gates, comprehensive error handling, integration
|
|
379
|
+
**Estimated Setup Time**: 30-45 minutes
|
|
380
|
+
**Maintenance**: Regular updates recommended as workflows evolve
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
이 커맨드는 {workflow-domain}의 표준 자동화를 제공합니다.
|