moai-adk 0.4.0__py3-none-any.whl → 0.4.4__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 +2 -3
- moai_adk/cli/commands/init.py +10 -5
- moai_adk/cli/commands/update.py +274 -118
- moai_adk/cli/prompts/init_prompts.py +14 -18
- moai_adk/core/diagnostics/slash_commands.py +1 -1
- moai_adk/core/project/backup_utils.py +2 -11
- moai_adk/core/project/checker.py +2 -2
- moai_adk/core/project/phase_executor.py +11 -14
- moai_adk/core/project/validator.py +3 -2
- moai_adk/core/quality/__init__.py +1 -1
- moai_adk/core/quality/trust_checker.py +63 -63
- moai_adk/core/quality/validators/__init__.py +1 -1
- moai_adk/core/quality/validators/base_validator.py +1 -1
- moai_adk/core/template/backup.py +21 -8
- moai_adk/core/template/merger.py +14 -4
- moai_adk/core/template/processor.py +24 -5
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +446 -424
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +116 -103
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +130 -116
- moai_adk/templates/.claude/agents/alfred/git-manager.md +186 -174
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +227 -213
- moai_adk/templates/.claude/agents/alfred/project-manager.md +216 -128
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +224 -209
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +174 -160
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +151 -139
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +209 -196
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +247 -233
- moai_adk/templates/.claude/commands/alfred/0-project.md +756 -640
- moai_adk/templates/.claude/commands/alfred/1-plan.md +343 -333
- moai_adk/templates/.claude/commands/alfred/2-run.md +297 -285
- moai_adk/templates/.claude/commands/alfred/3-sync.md +387 -356
- moai_adk/templates/.claude/hooks/alfred/README.md +52 -52
- moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +44 -48
- moai_adk/templates/.claude/hooks/alfred/core/__init__.py +17 -17
- moai_adk/templates/.claude/hooks/alfred/core/checkpoint.py +59 -59
- moai_adk/templates/.claude/hooks/alfred/core/context.py +19 -19
- moai_adk/templates/.claude/hooks/alfred/core/project.py +52 -52
- moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +1 -1
- moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +4 -4
- moai_adk/templates/.claude/hooks/alfred/handlers/session.py +27 -27
- moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +16 -17
- moai_adk/templates/.claude/hooks/alfred/handlers/user.py +11 -11
- moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +308 -307
- moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +297 -296
- moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +191 -190
- moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +112 -0
- moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +103 -0
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +103 -0
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +95 -0
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +105 -0
- moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +97 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +97 -0
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +90 -0
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +87 -0
- moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +62 -0
- moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +70 -43
- moai_adk/templates/.claude/skills/moai-claude-code/examples.md +141 -141
- moai_adk/templates/.claude/skills/moai-claude-code/reference.md +179 -165
- moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +78 -78
- moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +90 -90
- moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +39 -25
- moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +117 -74
- moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +131 -134
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +43 -12
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +43 -12
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +43 -12
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +43 -12
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +43 -12
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +43 -12
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +43 -11
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +43 -12
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +43 -12
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +43 -12
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +47 -11
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +47 -11
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +51 -14
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +46 -10
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +62 -25
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +44 -17
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +44 -14
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +45 -13
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +46 -14
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +48 -8
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +44 -11
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +44 -11
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +44 -11
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +44 -11
- moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +44 -11
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +44 -11
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +44 -11
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +44 -11
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +44 -11
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +44 -11
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +44 -12
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +44 -12
- moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +44 -43
- moai_adk/templates/.github/workflows/moai-gitflow.yml +36 -35
- moai_adk/templates/.moai/config.json +9 -6
- moai_adk/templates/.moai/memory/development-guide.md +220 -221
- moai_adk/templates/.moai/memory/gitflow-protection-policy.md +85 -85
- moai_adk/templates/.moai/memory/spec-metadata.md +229 -150
- moai_adk/templates/.moai/project/product.md +90 -90
- moai_adk/templates/.moai/project/structure.md +85 -85
- moai_adk/templates/.moai/project/tech.md +117 -117
- moai_adk/templates/CLAUDE.md +564 -709
- moai_adk-0.4.4.dist-info/METADATA +369 -0
- moai_adk-0.4.4.dist-info/RECORD +152 -0
- moai_adk/templates/.claude/commands/alfred/1-spec.md +0 -31
- moai_adk/templates/.claude/commands/alfred/2-build.md +0 -30
- moai_adk/templates/.claude/skills/scripts/standardize_skills.py +0 -166
- moai_adk/templates/.claude/skills/scripts/verify_standardization.sh +0 -43
- moai_adk/templates/.moai/hooks/pre-push.sample +0 -88
- moai_adk-0.4.0.dist-info/METADATA +0 -1816
- moai_adk-0.4.0.dist-info/RECORD +0 -145
- {moai_adk-0.4.0.dist-info → moai_adk-0.4.4.dist-info}/WHEEL +0 -0
- {moai_adk-0.4.0.dist-info → moai_adk-0.4.4.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.4.0.dist-info → moai_adk-0.4.4.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: alfred:0-project
|
|
3
|
-
description:
|
|
3
|
+
description: Initialize project document - create product/structure/tech.md and set optimization for each language
|
|
4
4
|
allowed-tools:
|
|
5
5
|
- Read
|
|
6
6
|
- Write
|
|
@@ -15,202 +15,251 @@ allowed-tools:
|
|
|
15
15
|
- Task
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
# 📋 MoAI-ADK 0
|
|
18
|
+
# 📋 MoAI-ADK Step 0: Initialize/Update Universal Language Support Project Documentation
|
|
19
|
+
> Interactive prompts rely on `Skill("moai-alfred-tui-survey")` so AskUserQuestion renders TUI selection menus for user surveys and approvals.
|
|
19
20
|
|
|
20
|
-
## 🎯
|
|
21
|
+
## 🎯 Command Purpose
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
Automatically analyzes the project environment to create/update product/structure/tech.md documents and configure language-specific optimization settings.
|
|
23
24
|
|
|
24
|
-
## 📋
|
|
25
|
+
## 📋 Execution flow
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
0. **Conversation Language Selection**: User selects the language for all dialogs and documentation
|
|
28
|
+
1. **Environment Analysis**: Automatically detect project type (new/legacy) and codebase language
|
|
29
|
+
2. **Establishment of interview strategy**: Select question tree suited to project characteristics
|
|
30
|
+
3. **User Verification**: Review and approve interview plan
|
|
31
|
+
4. **Create project documentation**: Create product/structure/tech.md in the selected language
|
|
32
|
+
5. **Create configuration file**: config.json auto-configuration
|
|
31
33
|
|
|
32
|
-
##
|
|
34
|
+
## 🧠 Associated Skills & Agents
|
|
33
35
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-
|
|
36
|
+
| Agent | Core Skill | Purpose |
|
|
37
|
+
| ----- | -------- | ------- |
|
|
38
|
+
| project-manager | `moai-alfred-language-detection` | Initialize project and interview requirements |
|
|
39
|
+
| trust-checker | `moai-alfred-trust-validation` | Verify initial project structure (optional) |
|
|
37
40
|
|
|
38
|
-
|
|
41
|
+
**Note**: TUI Survey Skill is used for user confirmations during project initialization and is shared across all interactive prompts.
|
|
39
42
|
|
|
40
|
-
|
|
43
|
+
## 🔗 Associated Agent
|
|
41
44
|
|
|
42
|
-
|
|
45
|
+
- **Primary**: project-manager (📋 planner) - Dedicated to project initialization
|
|
46
|
+
- **Quality Check**: trust-checker (✅ Quality assurance lead) - Initial structural verification (optional)
|
|
47
|
+
- **Secondary**: None (standalone execution)
|
|
43
48
|
|
|
44
|
-
|
|
49
|
+
## 💡 Example of use
|
|
45
50
|
|
|
46
|
-
|
|
47
|
-
- **프로젝트 유형 분류**: 신규 vs 기존 프로젝트 자동 판단
|
|
48
|
-
- **고성능 초기화**: TypeScript 기반 CLI로 0.18초 초기화 달성
|
|
49
|
-
- **2단계 워크플로우**: 1) 분석 및 계획 → 2) 사용자 승인 후 실행
|
|
51
|
+
The user executes the `/alfred:8-project` command to analyze the project and create/update documents.
|
|
50
52
|
|
|
51
|
-
##
|
|
53
|
+
## Command Overview
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
It is a systematic initialization system that analyzes the project environment and creates/updates product/structure/tech.md documents.
|
|
54
56
|
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
57
|
+
- **Automatically detect language**: Automatically recognize Python, TypeScript, Java, Go, Rust, etc.
|
|
58
|
+
- **Project type classification**: Automatically determine new vs. existing projects
|
|
59
|
+
- **High-performance initialization**: Achieve 0.18 second initialization with TypeScript-based CLI
|
|
60
|
+
- **2-step workflow**: 1) Analysis and planning → 2) Execution after user approval
|
|
59
61
|
|
|
60
|
-
##
|
|
62
|
+
## How to use
|
|
61
63
|
|
|
62
|
-
|
|
64
|
+
The user executes the `/alfred:8-project` command to start analyzing the project and creating/updating documents.
|
|
63
65
|
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
- ❌ 가상의 시나리오, 예상 시장 규모, 미래 기술 트렌드 예측
|
|
66
|
+
**Automatic processing**:
|
|
67
|
+
- Update mode if there is an existing `.moai/project/` document
|
|
68
|
+
- New creation mode if there is no document
|
|
69
|
+
- Automatic detection of language and project type
|
|
69
70
|
|
|
70
|
-
|
|
71
|
+
## ⚠️ Prohibitions
|
|
71
72
|
|
|
72
|
-
|
|
73
|
-
- ✅ "즉시 필요", "단계적 개선"
|
|
74
|
-
- ✅ 현재 확인 가능한 사실
|
|
75
|
-
- ✅ 기존 기술 스택
|
|
76
|
-
- ✅ 실제 문제점
|
|
73
|
+
**What you should never do**:
|
|
77
74
|
|
|
78
|
-
|
|
75
|
+
- ❌ Create a file in the `.claude/memory/` directory
|
|
76
|
+
- ❌ Create a file `.claude/commands/alfred/*.json`
|
|
77
|
+
- ❌ Unnecessary overwriting of existing documents
|
|
78
|
+
- ❌ Date and numerical prediction (“within 3 months”, “50% reduction”) etc.)
|
|
79
|
+
- ❌ Hypothetical scenarios, expected market size, future technology trend predictions
|
|
79
80
|
|
|
80
|
-
|
|
81
|
+
**Expressions to use**:
|
|
81
82
|
|
|
82
|
-
|
|
83
|
+
- ✅ "High/medium/low priority"
|
|
84
|
+
- ✅ "Immediately needed", "step-by-step improvements"
|
|
85
|
+
- ✅ Current facts
|
|
86
|
+
- ✅ Existing technology stack
|
|
87
|
+
- ✅ Real problems
|
|
83
88
|
|
|
84
|
-
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 🚀 STEP 0: Conversation Language Selection (NEW in v0.4.2)
|
|
92
|
+
|
|
93
|
+
**Purpose**: Establish the conversation language before project initialization begins. This selection applies to all Alfred prompts, interview questions, and generated documentation.
|
|
94
|
+
|
|
95
|
+
### 0.1 Display Language Selection Menu
|
|
96
|
+
|
|
97
|
+
Alfred displays a language selection menu as the **very first interaction** using `Skill("moai-alfred-tui-survey")`:
|
|
98
|
+
|
|
99
|
+
**Question**:
|
|
100
|
+
```
|
|
101
|
+
Which language would you like to use for the project initialization and documentation?
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Options** (AskUserQuestion with moai-alfred-tui-survey):
|
|
105
|
+
- **English** (en) — All dialogs and documentation in English
|
|
106
|
+
- **한국어** (ko) — All dialogs and documentation in Korean
|
|
107
|
+
- **日本語** (ja) — All dialogs and documentation in Japanese
|
|
108
|
+
- **中文** (zh) — All dialogs and documentation in Chinese
|
|
109
|
+
- **Other** — User can specify custom language (e.g., "Español", "Français", "Deutsch")
|
|
110
|
+
|
|
111
|
+
### 0.2 Store Language Preference
|
|
112
|
+
|
|
113
|
+
Alfred records the selected language:
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"conversation_language": "ko",
|
|
118
|
+
"conversation_language_name": "한국어",
|
|
119
|
+
"selected_at": "2025-10-22T12:34:56Z"
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
This language preference is:
|
|
124
|
+
- Passed to all sub-agents as a context parameter
|
|
125
|
+
- Stored in `.moai/config.json` under `language` field
|
|
126
|
+
- Used to generate all documentation in the selected language
|
|
127
|
+
- Displayed in CLAUDE.md under "## Project Information"
|
|
128
|
+
|
|
129
|
+
### 0.3 Transition to STEP 1
|
|
130
|
+
|
|
131
|
+
After language selection, all subsequent interactions proceed in the selected language:
|
|
132
|
+
- Alfred's prompts are translated
|
|
133
|
+
- project-manager sub-agent receives language parameter
|
|
134
|
+
- Interview questions are in the selected language
|
|
135
|
+
- Generated documents (product.md, structure.md, tech.md) are in the selected language
|
|
136
|
+
- CLAUDE.md displays the selected language prominently
|
|
137
|
+
|
|
138
|
+
**Example output for Korean selection**:
|
|
139
|
+
```markdown
|
|
140
|
+
✅ 언어 선택 완료: 한국어 (ko)
|
|
141
|
+
|
|
142
|
+
이제 프로젝트 환경 분석으로 진행하겠습니다...
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 🚀 STEP 1: Environmental analysis and interview plan development
|
|
148
|
+
|
|
149
|
+
Analyze the project environment and develop a systematic interview plan.
|
|
150
|
+
|
|
151
|
+
### 1.0 Check backup directory (highest priority)
|
|
152
|
+
|
|
153
|
+
**Processing backup files after moai-adk init reinitialization**
|
|
85
154
|
|
|
86
|
-
Alfred
|
|
155
|
+
Alfred first checks the `.moai-backups/` directory:
|
|
87
156
|
|
|
88
157
|
```bash
|
|
89
|
-
#
|
|
158
|
+
# Check latest backup timestamp
|
|
90
159
|
ls -t .moai-backups/ | head -1
|
|
91
160
|
|
|
92
|
-
#
|
|
161
|
+
# Check the optimized flag in config.json
|
|
93
162
|
grep "optimized" .moai/config.json
|
|
94
163
|
```
|
|
95
164
|
|
|
96
|
-
|
|
97
|
-
- `.moai-backups/`
|
|
98
|
-
-
|
|
99
|
-
- `
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
```
|
|
165
|
+
**Backup existence conditions**:
|
|
166
|
+
- `.moai-backups/` directory exists
|
|
167
|
+
- `.moai/project/*.md` file exists in the latest backup folder
|
|
168
|
+
- `optimized: false` in `config.json` (immediately after reinitialization)
|
|
169
|
+
|
|
170
|
+
**Select user if backup exists**
|
|
171
|
+
Call `Skill("moai-alfred-tui-survey")` to display a TUI with the following options:
|
|
172
|
+
- **Merge**: Merge backup contents and latest template (recommended)
|
|
173
|
+
- **New**: Ignore the backup and start a new interview
|
|
174
|
+
- **Skip**: Keep current file (terminate task)
|
|
126
175
|
|
|
127
|
-
|
|
128
|
-
- **"
|
|
129
|
-
- **"
|
|
130
|
-
- **"
|
|
176
|
+
**Response processing**:
|
|
177
|
+
- **"Merge"** → Proceed to Phase 1.1 (backup merge workflow)
|
|
178
|
+
- **"Create new"** → Proceed to Phase 1.2 (Project environment analysis) (existing process)
|
|
179
|
+
- **"Skip"** → End task
|
|
131
180
|
|
|
132
|
-
|
|
133
|
-
- Phase 1.2 (
|
|
181
|
+
**No backup or optimized: true**:
|
|
182
|
+
- Proceed directly to Phase 1.2 (project environment analysis)
|
|
134
183
|
|
|
135
184
|
---
|
|
136
185
|
|
|
137
|
-
### 1.1
|
|
186
|
+
### 1.1 Backup merge workflow (when user selects “Merge”)
|
|
138
187
|
|
|
139
|
-
|
|
188
|
+
**Purpose**: Restore only user customizations while maintaining the latest template structure.
|
|
140
189
|
|
|
141
|
-
**STEP 1:
|
|
190
|
+
**STEP 1: Read backup file**
|
|
142
191
|
|
|
143
|
-
Alfred
|
|
192
|
+
Alfred reads files from the latest backup directory:
|
|
144
193
|
```bash
|
|
145
|
-
#
|
|
194
|
+
# Latest backup directory path
|
|
146
195
|
BACKUP_DIR=.moai-backups/$(ls -t .moai-backups/ | head -1)
|
|
147
196
|
|
|
148
|
-
#
|
|
197
|
+
# Read backup file
|
|
149
198
|
Read $BACKUP_DIR/.moai/project/product.md
|
|
150
199
|
Read $BACKUP_DIR/.moai/project/structure.md
|
|
151
200
|
Read $BACKUP_DIR/.moai/project/tech.md
|
|
152
201
|
Read $BACKUP_DIR/CLAUDE.md
|
|
153
202
|
```
|
|
154
203
|
|
|
155
|
-
**STEP 2:
|
|
204
|
+
**STEP 2: Detect template defaults**
|
|
156
205
|
|
|
157
|
-
|
|
158
|
-
- "
|
|
159
|
-
- "
|
|
160
|
-
- "
|
|
161
|
-
- "{{PROJECT_NAME}}", "{{PROJECT_DESCRIPTION}}"
|
|
162
|
-
- "
|
|
206
|
+
The following patterns are considered "template defaults" (not merged):
|
|
207
|
+
- "Define your key user base"
|
|
208
|
+
- "Describe the core problem you are trying to solve"
|
|
209
|
+
- "List the strengths and differences of your project"
|
|
210
|
+
- "{{PROJECT_NAME}}", "{{PROJECT_DESCRIPTION}}", etc. Variable format
|
|
211
|
+
- Guide phrases such as "Example:", "Sample:", "Example:", etc.
|
|
163
212
|
|
|
164
|
-
**STEP 3:
|
|
213
|
+
**STEP 3: Extract user customization**
|
|
165
214
|
|
|
166
|
-
|
|
215
|
+
Extract only **non-template default content** from the backup file:
|
|
167
216
|
- `product.md`:
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
217
|
+
- Define your actual user base in the USER section
|
|
218
|
+
- Describe the actual problem in the PROBLEM section
|
|
219
|
+
- Real differences in the STRATEGY section
|
|
220
|
+
- Actual success metrics in the SUCCESS section
|
|
172
221
|
- `structure.md`:
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
222
|
+
- Actual design in the ARCHITECTURE section
|
|
223
|
+
- Actual module structure in the MODULES section
|
|
224
|
+
- Actual integration plan in the INTEGRATION section
|
|
176
225
|
- `tech.md`:
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
- `HISTORY`
|
|
226
|
+
- The actual technology stack
|
|
227
|
+
in the STACK section - The actual framework
|
|
228
|
+
in the FRAMEWORK section - The actual quality policy
|
|
229
|
+
in the QUALITY section - `HISTORY` section: **Full Preservation** (all files)
|
|
181
230
|
|
|
182
|
-
**STEP 4:
|
|
231
|
+
**STEP 4: Merge Strategy**
|
|
183
232
|
|
|
184
233
|
```markdown
|
|
185
|
-
|
|
234
|
+
Latest template structure (v0.4.0+)
|
|
186
235
|
↓
|
|
187
|
-
|
|
236
|
+
Insert user customization (extracted from backup file)
|
|
188
237
|
↓
|
|
189
|
-
HISTORY
|
|
238
|
+
HISTORY section updates
|
|
190
239
|
↓
|
|
191
|
-
|
|
240
|
+
Version update (v0.1.x → v0.1.x+1)
|
|
192
241
|
```
|
|
193
242
|
|
|
194
|
-
|
|
195
|
-
- ✅
|
|
196
|
-
- ✅
|
|
197
|
-
- ✅
|
|
198
|
-
- ❌
|
|
243
|
+
**Merge Principle**:
|
|
244
|
+
- ✅ Maintain the latest version of the template structure (section order, header, @TAG format)
|
|
245
|
+
- ✅ Insert only user customization (actual content written)
|
|
246
|
+
- ✅ Cumulative preservation of the HISTORY section (existing history + merge history)
|
|
247
|
+
- ❌ Replace template default values with the latest version
|
|
199
248
|
|
|
200
|
-
**STEP 5: HISTORY
|
|
249
|
+
**STEP 5: HISTORY Section Update**
|
|
201
250
|
|
|
202
|
-
|
|
251
|
+
After the merge is complete, add history to the HISTORY section of each file:
|
|
203
252
|
```yaml
|
|
204
253
|
### v0.1.x+1 (2025-10-19)
|
|
205
|
-
- **UPDATED**:
|
|
254
|
+
- **UPDATED**: Merge backup files (automatic optimization)
|
|
206
255
|
- AUTHOR: @Alfred
|
|
207
256
|
- BACKUP: .moai-backups/20251018-003638/
|
|
208
|
-
- REASON: moai-adk init
|
|
257
|
+
- REASON: Restoring user customization after moai-adk init reinitialization
|
|
209
258
|
```
|
|
210
259
|
|
|
211
|
-
**STEP 6: config.json
|
|
260
|
+
**STEP 6: Update config.json**
|
|
212
261
|
|
|
213
|
-
|
|
262
|
+
Set optimization flags after the merge is complete:
|
|
214
263
|
```json
|
|
215
264
|
{
|
|
216
265
|
"project": {
|
|
@@ -221,239 +270,236 @@ HISTORY 섹션 업데이트
|
|
|
221
270
|
}
|
|
222
271
|
```
|
|
223
272
|
|
|
224
|
-
**STEP 7:
|
|
273
|
+
**STEP 7: Completion Report**
|
|
225
274
|
|
|
226
275
|
```markdown
|
|
227
|
-
✅
|
|
276
|
+
✅ Backup merge completed!
|
|
228
277
|
|
|
229
|
-
📁
|
|
278
|
+
📁 Merged files:
|
|
230
279
|
- .moai/project/product.md (v0.1.4 → v0.1.5)
|
|
231
280
|
- .moai/project/structure.md (v0.1.1 → v0.1.2)
|
|
232
281
|
- .moai/project/tech.md (v0.1.1 → v0.1.2)
|
|
233
282
|
- .moai/config.json (optimized: false → true)
|
|
234
283
|
|
|
235
|
-
🔍
|
|
236
|
-
- USER
|
|
237
|
-
- PROBLEM
|
|
238
|
-
- STRATEGY
|
|
239
|
-
- HISTORY
|
|
284
|
+
🔍 Merge history:
|
|
285
|
+
- USER section: Restore customized contents of backup file
|
|
286
|
+
- PROBLEM section: Restore problem description of backup file
|
|
287
|
+
- STRATEGY section: Restore differentials of backup file
|
|
288
|
+
- HISTORY section: Add merge history (cumulative retention)
|
|
240
289
|
|
|
241
|
-
💾
|
|
242
|
-
-
|
|
243
|
-
-
|
|
290
|
+
💾 Backup file location:
|
|
291
|
+
- Original backup: .moai-backups/20251018-003638/
|
|
292
|
+
- Retention period: Permanent (until manual deletion)
|
|
244
293
|
|
|
245
|
-
📋
|
|
246
|
-
1.
|
|
247
|
-
2.
|
|
248
|
-
3. /alfred:1-
|
|
294
|
+
📋 Next steps:
|
|
295
|
+
1. Review the merged document
|
|
296
|
+
2. Additional modifications if necessary
|
|
297
|
+
3. Create your first SPEC with /alfred:1-plan
|
|
249
298
|
|
|
250
299
|
---
|
|
251
|
-
|
|
300
|
+
**Task completed: /alfred:0-project terminated**
|
|
252
301
|
```
|
|
253
302
|
|
|
254
|
-
|
|
303
|
+
**Finish work after merge**: Complete immediately without interview
|
|
255
304
|
|
|
256
305
|
---
|
|
257
306
|
|
|
258
|
-
### 1.2
|
|
307
|
+
### 1.2 Run project environment analysis (when user selects "New" or no backup)
|
|
259
308
|
|
|
260
|
-
|
|
309
|
+
**Automatically analyzed items**:
|
|
261
310
|
|
|
262
|
-
1.
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
311
|
+
1. **Project Type Detection**
|
|
312
|
+
Alfred classifies new vs existing projects by analyzing the directory structure:
|
|
313
|
+
- Empty directory → New project
|
|
314
|
+
- Code/documentation present → Existing project
|
|
266
315
|
|
|
267
|
-
2.
|
|
316
|
+
2. **Auto-detect language/framework**: Detects the main language of your project based on file patterns
|
|
268
317
|
- pyproject.toml, requirements.txt → Python
|
|
269
318
|
- package.json, tsconfig.json → TypeScript/Node.js
|
|
270
319
|
- pom.xml, build.gradle → Java
|
|
271
320
|
- go.mod → Go
|
|
272
321
|
- Cargo.toml → Rust
|
|
273
|
-
|
|
322
|
+
- backend/ + frontend/ → full stack
|
|
274
323
|
|
|
275
|
-
3.
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
324
|
+
3. **Document status analysis**
|
|
325
|
+
- Check the status of existing `.moai/project/*.md` files
|
|
326
|
+
- Identify areas of insufficient information
|
|
327
|
+
- Organize items that need supplementation
|
|
279
328
|
|
|
280
|
-
4.
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
329
|
+
4. **Project structure evaluation**
|
|
330
|
+
- Directory structure complexity
|
|
331
|
+
- Monolingual vs. hybrid vs. microservice
|
|
332
|
+
- Code base size estimation
|
|
284
333
|
|
|
285
|
-
### 1.3
|
|
334
|
+
### 1.3 Establish interview strategy (when user selects “New”)
|
|
286
335
|
|
|
287
|
-
|
|
336
|
+
**Select question tree by project type**:
|
|
288
337
|
|
|
289
|
-
|
|
|
290
|
-
|
|
291
|
-
|
|
|
292
|
-
|
|
|
293
|
-
| **TypeScript
|
|
338
|
+
| Project Type | Question Category | Focus Areas |
|
|
339
|
+
| ------------------------- | ------------------ | --------------------------------------------- |
|
|
340
|
+
| **New Project** | Product Discovery | Mission, Users, Problems Solved |
|
|
341
|
+
| **Existing Project** | Legacy Analysis | Code Base, Technical Debt, Integration Points |
|
|
342
|
+
| **TypeScript conversion** | Migration Strategy | TypeScript conversion for existing projects |
|
|
294
343
|
|
|
295
|
-
|
|
296
|
-
-
|
|
297
|
-
-
|
|
298
|
-
-
|
|
344
|
+
**Question Priority**:
|
|
345
|
+
- **Essential Questions**: Core Business Value, Key User Bases (all projects)
|
|
346
|
+
- **Technical Questions**: Language/Framework, Quality Policy, Deployment Strategy
|
|
347
|
+
- **Governance**: Security Requirements, Traceability Strategy (Optional)
|
|
299
348
|
|
|
300
|
-
### 1.4
|
|
349
|
+
### 1.4 Generate Interview Plan Report (when user selects “Create New”)
|
|
301
350
|
|
|
302
|
-
|
|
351
|
+
**Format of plan to be presented to users**:
|
|
303
352
|
|
|
304
353
|
```markdown
|
|
305
|
-
## 📊
|
|
306
|
-
|
|
307
|
-
###
|
|
308
|
-
-
|
|
309
|
-
-
|
|
310
|
-
-
|
|
311
|
-
-
|
|
312
|
-
|
|
313
|
-
### 🎯
|
|
314
|
-
-
|
|
315
|
-
-
|
|
316
|
-
-
|
|
317
|
-
-
|
|
318
|
-
|
|
319
|
-
### ⚠️
|
|
320
|
-
-
|
|
321
|
-
-
|
|
322
|
-
-
|
|
323
|
-
|
|
324
|
-
### ✅
|
|
325
|
-
- **product.md**: [
|
|
326
|
-
- **structure.md**: [
|
|
327
|
-
- **tech.md**: [
|
|
328
|
-
- **config.json**: [
|
|
354
|
+
## 📊 Project initialization plan: [PROJECT-NAME]
|
|
355
|
+
|
|
356
|
+
### Environmental Analysis Results
|
|
357
|
+
- **Project Type**: [New/Existing/Hybrid]
|
|
358
|
+
- **Languages Detected**: [Language List]
|
|
359
|
+
- **Current Document Status**: [Completeness Rating 0-100%]
|
|
360
|
+
- **Structure Complexity**: [Simple/Medium/Complex]
|
|
361
|
+
|
|
362
|
+
### 🎯 Interview strategy
|
|
363
|
+
- **Question category**: Product Discovery / Structure / Tech
|
|
364
|
+
- **Expected number of questions**: [N (M required + K optional)]
|
|
365
|
+
- **Estimated time required**: [Time estimation]
|
|
366
|
+
- **Priority area**: [Focus on Areas to be covered]
|
|
367
|
+
|
|
368
|
+
### ⚠️ Notes
|
|
369
|
+
- **Existing document**: [Overwrite vs supplementation strategy]
|
|
370
|
+
- **Language settings**: [Automatic detection vs manual setting]
|
|
371
|
+
- **Configuration conflicts**: [Compatibility with existing config.json]
|
|
372
|
+
|
|
373
|
+
### ✅ Expected deliverables
|
|
374
|
+
- **product.md**: [Business requirements document]
|
|
375
|
+
- **structure.md**: [System architecture document]
|
|
376
|
+
- **tech.md**: [Technology stack and policy document]
|
|
377
|
+
- **config.json**: [Project configuration file]
|
|
329
378
|
|
|
330
379
|
---
|
|
331
|
-
|
|
332
|
-
(
|
|
380
|
+
**Approval Request**: Would you like to proceed with the interview using the above plan?
|
|
381
|
+
(Choose “Proceed,” “Modify [Content],” or “Abort”)
|
|
333
382
|
```
|
|
334
383
|
|
|
335
|
-
### 1.5
|
|
336
|
-
|
|
337
|
-
Alfred
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
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
|
-
```
|
|
384
|
+
### 1.5 Wait for user approval (moai-alfred-tui-survey) (when user selects "New")
|
|
385
|
+
|
|
386
|
+
After Alfred receives the project-manager's interview plan report, calls `Skill("moai-alfred-tui-survey")` and asks whether Phase 2 is approved.
|
|
387
|
+
- **Proceed**: Interview conducted according to approved plan
|
|
388
|
+
- **Modify**: Re-establish the plan (re-execute Phase 1)
|
|
389
|
+
- **Stop**: Stop initialization
|
|
353
390
|
|
|
354
|
-
|
|
355
|
-
- **"
|
|
356
|
-
- **"
|
|
357
|
-
- **"
|
|
391
|
+
**Response processing**:
|
|
392
|
+
- **"Progress"** (`answers["0"] === "Progress"`) → Execute Phase 2
|
|
393
|
+
- **"Modify"** (`answers["0"] === "Modify"`) → Repeat Phase 1 (recall project-manager)
|
|
394
|
+
- **"Abort"** (`answers["0"] === "Abort"`) → End task
|
|
358
395
|
|
|
359
396
|
---
|
|
360
397
|
|
|
361
|
-
## 🚀 STEP 2:
|
|
398
|
+
## 🚀 STEP 2: Execute project initialization (after user approves “New”)
|
|
362
399
|
|
|
363
|
-
|
|
364
|
-
- "
|
|
365
|
-
- "
|
|
366
|
-
-
|
|
400
|
+
**Note**: This step will only be executed if the user selects **"New"**.
|
|
401
|
+
- When selecting "Merge": End the task in Phase 1.1 (Merge Backups)
|
|
402
|
+
- When selecting "Skip": End the task
|
|
403
|
+
- When selecting "New": Proceed with the process below
|
|
367
404
|
|
|
368
|
-
|
|
405
|
+
After user approval, the project-manager agent performs initialization.
|
|
369
406
|
|
|
370
|
-
### 2.1 project-manager
|
|
407
|
+
### 2.1 Call project-manager agent (when user selects "New")
|
|
371
408
|
|
|
372
|
-
Alfred
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
-
|
|
376
|
-
-
|
|
409
|
+
Alfred starts project initialization by calling the project-manager agent with the following parameters:
|
|
410
|
+
|
|
411
|
+
**Parameters passed to project-manager**:
|
|
412
|
+
- **conversation_language** (from STEP 0): Language code selected by user (e.g., "ko", "en", "ja", "zh")
|
|
413
|
+
- **language_name** (from STEP 0): Display name of selected language (e.g., "Korean", "English")
|
|
414
|
+
- Detected Languages: [Language List from codebase detection]
|
|
415
|
+
- Project Type: [New/Existing]
|
|
416
|
+
- Existing Document Status: [Existence/Absence]
|
|
417
|
+
- Approved Interview Plan: [Plan Summary]
|
|
418
|
+
|
|
419
|
+
**Execution**:
|
|
420
|
+
```bash
|
|
421
|
+
# Pseudo-code showing parameter flow
|
|
422
|
+
Task(
|
|
423
|
+
subagent_type="project-manager",
|
|
424
|
+
description="Initialize project with conversation language support",
|
|
425
|
+
prompt=f"""You are project-manager. Initialize project with these parameters:
|
|
426
|
+
- conversation_language: "{conversation_language}" # e.g., "ko"
|
|
427
|
+
- language_name: "{language_name}" # e.g., "Korean"
|
|
428
|
+
- project_type: "{project_type}" # e.g., "new"
|
|
429
|
+
- detected_languages: {detected_languages}
|
|
430
|
+
|
|
431
|
+
All interviews and documentation must be generated in the conversation_language.
|
|
432
|
+
Update .moai/config.json with these language parameters.
|
|
433
|
+
"""
|
|
434
|
+
)
|
|
435
|
+
```
|
|
377
436
|
|
|
378
|
-
|
|
437
|
+
**Outcome**: The project-manager agent conducts structured interviews entirely in the selected language and creates/updates product/structure/tech.md documents in that language.
|
|
379
438
|
|
|
380
|
-
### 2.2 Alfred Skills
|
|
439
|
+
### 2.2 Automatic activation of Alfred Skills (optional)
|
|
381
440
|
|
|
382
|
-
project-manager
|
|
441
|
+
After the project-manager has finished creating the document, **Alfred can optionally call Skills** (upon user request).
|
|
383
442
|
|
|
384
|
-
|
|
443
|
+
**Automatic activation conditions** (optional):
|
|
385
444
|
|
|
386
|
-
|
|
|
387
|
-
|
|
388
|
-
|
|
|
445
|
+
| Conditions | Automatic selection Skill | Purpose |
|
|
446
|
+
| ------------------------------------ | ---------------------------- | -------------------------------------- |
|
|
447
|
+
| User Requests “Quality Verification” | moai-alfred-trust-validation | Initial project structure verification |
|
|
389
448
|
|
|
390
|
-
|
|
449
|
+
**Execution flow** (optional):
|
|
391
450
|
```
|
|
392
|
-
1. project-manager
|
|
451
|
+
1. project-manager completion
|
|
393
452
|
↓
|
|
394
|
-
2.
|
|
395
|
-
|
|
396
|
-
|
|
453
|
+
2. User selection:
|
|
454
|
+
- "Quality verification required" → moai-alfred-trust-validation (Level 1 quick scan)
|
|
455
|
+
- "Skip" → Complete immediately
|
|
397
456
|
```
|
|
398
457
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
### 2.3 Sub-agent
|
|
402
|
-
|
|
403
|
-
**project-manager
|
|
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
|
-
```
|
|
458
|
+
**Note**: Quality verification is optional during the project initialization phase.
|
|
459
|
+
|
|
460
|
+
### 2.3 Sub-agent moai-alfred-tui-survey (Nested)
|
|
461
|
+
|
|
462
|
+
**The project-manager agent can internally call the TUI survey skill** to check the details of the task.
|
|
425
463
|
|
|
426
|
-
**
|
|
427
|
-
-
|
|
428
|
-
-
|
|
464
|
+
**When to call**:
|
|
465
|
+
- Before overwriting existing project documents
|
|
466
|
+
- When selecting language/framework
|
|
467
|
+
- When changing important settings
|
|
429
468
|
|
|
430
|
-
|
|
469
|
+
**Example** (inside project-manager): Ask whether to "overwrite file" with `Skill("moai-alfred-tui-survey")`,
|
|
470
|
+
- Allows you to choose between **Overwrite** / **Merge** / **Skip**.
|
|
431
471
|
|
|
432
|
-
|
|
472
|
+
**Nested pattern**:
|
|
473
|
+
- **Command level** (Phase approval): Called by Alfred → "Shall we proceed with Phase 2?"
|
|
474
|
+
- **Sub-agent level** (Detailed confirmation): Called by project-manager → "Shall we overwrite the file?"
|
|
433
475
|
|
|
434
|
-
|
|
476
|
+
### 2.4 Processing method by project type
|
|
435
477
|
|
|
436
|
-
|
|
437
|
-
- 핵심 미션 정의 (@DOC:MISSION-001)
|
|
438
|
-
- 주요 사용자층 파악 (@SPEC:USER-001)
|
|
439
|
-
- 해결할 핵심 문제 식별 (@SPEC:PROBLEM-001)
|
|
440
|
-
- 차별점 및 강점 정리 (@DOC:STRATEGY-001)
|
|
441
|
-
- 성공 지표 설정 (@SPEC:SUCCESS-001)
|
|
478
|
+
#### A. New project (Greenfield)
|
|
442
479
|
|
|
443
|
-
|
|
444
|
-
- 아키텍처 전략 선택 (@DOC:ARCHITECTURE-001)
|
|
445
|
-
- 모듈별 책임 구분 (@DOC:MODULES-001)
|
|
446
|
-
- 외부 시스템 통합 계획 (@DOC:INTEGRATION-001)
|
|
447
|
-
- 추적성 전략 정의 (@DOC:TRACEABILITY-001)
|
|
480
|
+
**Interview Flow**:
|
|
448
481
|
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
482
|
+
1. **Product Discovery** (create product.md)
|
|
483
|
+
- Define core mission (@DOC:MISSION-001)
|
|
484
|
+
- Identify key user base (@SPEC:USER-001)
|
|
485
|
+
- Identify key problems to solve (@SPEC:PROBLEM-001)
|
|
486
|
+
- Summary of differences and strengths (@DOC:STRATEGY-001)
|
|
487
|
+
- Setting success indicators (@SPEC:SUCCESS-001)
|
|
455
488
|
|
|
456
|
-
|
|
489
|
+
2. **Structure Blueprint** (create structure.md)
|
|
490
|
+
- Selection of architecture strategy (@DOC:ARCHITECTURE-001)
|
|
491
|
+
- Division of responsibilities by module (@DOC:MODULES-001)
|
|
492
|
+
- External system integration plan (@DOC:INTEGRATION-001)
|
|
493
|
+
- Define traceability strategy (@DOC:TRACEABILITY-001)
|
|
494
|
+
|
|
495
|
+
3. **Tech Stack Mapping** (written by tech.md)
|
|
496
|
+
- Select language & runtime (@DOC:STACK-001)
|
|
497
|
+
- Determine core framework (@DOC:FRAMEWORK-001)
|
|
498
|
+
- Set quality gate (@DOC:QUALITY-001)
|
|
499
|
+
- Define security policy (@DOC:SECURITY-001)
|
|
500
|
+
- Plan distribution channels (@DOC:DEPLOY-001)
|
|
501
|
+
|
|
502
|
+
**Automatically generate config.json**:
|
|
457
503
|
```json
|
|
458
504
|
{
|
|
459
505
|
"project_name": "detected-name",
|
|
@@ -467,423 +513,493 @@ AskUserQuestion({
|
|
|
467
513
|
}
|
|
468
514
|
```
|
|
469
515
|
|
|
470
|
-
#### B.
|
|
516
|
+
#### B. Existing project (legacy introduction)
|
|
471
517
|
|
|
472
518
|
**Legacy Snapshot & Alignment**:
|
|
473
519
|
|
|
474
|
-
**STEP 1:
|
|
520
|
+
**STEP 1: Identify the overall project structure**
|
|
475
521
|
|
|
476
|
-
Alfred
|
|
477
|
-
-
|
|
478
|
-
- node_modules, .git, dist, build, __pycache__
|
|
479
|
-
-
|
|
522
|
+
Alfred identifies the entire project structure:
|
|
523
|
+
- Visualize the directory structure using the tree or find commands
|
|
524
|
+
- Exclude build artifacts such as node_modules, .git, dist, build, __pycache__, etc.
|
|
525
|
+
- Identify key source directories and configuration files.
|
|
480
526
|
|
|
481
|
-
|
|
482
|
-
-
|
|
483
|
-
-
|
|
484
|
-
-
|
|
527
|
+
**Output**:
|
|
528
|
+
- Visualize the entire folder/file hierarchy of the project
|
|
529
|
+
- Identify major directories (src/, tests/, docs/, config/, etc.)
|
|
530
|
+
- Check language/framework hint files (package.json, pyproject.toml, go.mod, etc.)
|
|
485
531
|
|
|
486
|
-
**STEP 2:
|
|
532
|
+
**STEP 2: Establish parallel analysis strategy**
|
|
487
533
|
|
|
488
|
-
Alfred
|
|
489
|
-
1.
|
|
490
|
-
2.
|
|
491
|
-
3.
|
|
492
|
-
4.
|
|
534
|
+
Alfred identifies groups of files by the Glob pattern:
|
|
535
|
+
1. **Configuration files**: *.json, *.toml, *.yaml, *.yml, *.config.js
|
|
536
|
+
2. **Source code files**: src/**/*.{ts,js,py,go,rs,java}
|
|
537
|
+
3. **Test files**: tests/**/*.{ts,js,py,go,rs,java}, **/*.test.*, **/*.spec.*
|
|
538
|
+
4. **Documentation files**: *.md, docs/**/*.md, README*, CHANGELOG*
|
|
493
539
|
|
|
494
|
-
|
|
495
|
-
-
|
|
496
|
-
-
|
|
497
|
-
-
|
|
540
|
+
**Parallel Read Strategy**:
|
|
541
|
+
- Speed up analysis by reading multiple files simultaneously with the Read tool
|
|
542
|
+
- Batch processing for each file group
|
|
543
|
+
- Priority: Configuration file → Core source → Test → Document
|
|
498
544
|
|
|
499
|
-
**STEP 3:
|
|
545
|
+
**STEP 3: Analysis and reporting of characteristics for each file**
|
|
500
546
|
|
|
501
|
-
|
|
547
|
+
As each file is read, the following information is collected:
|
|
502
548
|
|
|
503
|
-
1.
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
549
|
+
1. **Configuration file analysis**
|
|
550
|
+
- Project metadata (name, version, description)
|
|
551
|
+
- Dependency list and versions
|
|
552
|
+
- Build/test script
|
|
553
|
+
- Confirm language/framework
|
|
508
554
|
|
|
509
|
-
2.
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
555
|
+
2. **Source code analysis**
|
|
556
|
+
- Identify major modules and classes
|
|
557
|
+
- Architectural pattern inference (MVC, clean architecture, microservice, etc.)
|
|
558
|
+
- Identify external API calls and integration points
|
|
559
|
+
- Key areas of domain logic
|
|
514
560
|
|
|
515
|
-
3.
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
561
|
+
3. **Test code analysis**
|
|
562
|
+
- Check test framework
|
|
563
|
+
- Identify coverage settings
|
|
564
|
+
- Identify key test scenarios
|
|
565
|
+
- Evaluate TDD compliance
|
|
520
566
|
|
|
521
|
-
4.
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
567
|
+
4. **Document analysis**
|
|
568
|
+
- Existing README contents
|
|
569
|
+
- Existence of architecture document
|
|
570
|
+
- API document status
|
|
571
|
+
- Installation/deployment guide completeness
|
|
526
572
|
|
|
527
|
-
|
|
573
|
+
**Report Format**:
|
|
528
574
|
```markdown
|
|
529
|
-
##
|
|
530
|
-
|
|
531
|
-
###
|
|
532
|
-
- package.json: Node.js 18+, TypeScript 5.x, Vitest
|
|
533
|
-
- tsconfig.json: strict
|
|
534
|
-
- biome.json:
|
|
535
|
-
|
|
536
|
-
###
|
|
537
|
-
- src/core/:
|
|
538
|
-
- src/api/: REST API
|
|
539
|
-
- src/utils/:
|
|
540
|
-
-
|
|
541
|
-
|
|
542
|
-
###
|
|
543
|
-
- Vitest + @testing-library
|
|
544
|
-
-
|
|
545
|
-
- E2E
|
|
546
|
-
|
|
547
|
-
###
|
|
548
|
-
- README.md:
|
|
549
|
-
- API
|
|
550
|
-
-
|
|
575
|
+
## Analysis results for each file
|
|
576
|
+
|
|
577
|
+
### Configuration file
|
|
578
|
+
- package.json: Node.js 18+, TypeScript 5.x, Vitest test
|
|
579
|
+
- tsconfig.json: strict mode, ESNext target
|
|
580
|
+
- biome.json: Linter/formatter settings exist
|
|
581
|
+
|
|
582
|
+
### Source code (src/)
|
|
583
|
+
- src/core/: Core business logic (3 modules)
|
|
584
|
+
- src/api/: REST API endpoints (5 routers)
|
|
585
|
+
- src/utils/: Utility functions (logging, verification, etc.)
|
|
586
|
+
- Architecture: Hierarchical (controller) → service → repository)
|
|
587
|
+
|
|
588
|
+
### Tests (tests/)
|
|
589
|
+
- Vitest + @testing-library used
|
|
590
|
+
- Unit test coverage estimated at about 60%
|
|
591
|
+
- E2E testing lacking
|
|
592
|
+
|
|
593
|
+
### Documentation
|
|
594
|
+
- README.md: Only installation guide
|
|
595
|
+
- Absence of API documentation
|
|
596
|
+
- Absence of architecture document
|
|
551
597
|
```
|
|
552
598
|
|
|
553
|
-
**STEP 4:
|
|
599
|
+
**STEP 4: Comprehensive analysis and product/structure/tech reflection**
|
|
554
600
|
|
|
555
|
-
|
|
601
|
+
Based on the collected information, it is reflected in three major documents:
|
|
556
602
|
|
|
557
|
-
1. **product.md
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
603
|
+
1. Contents reflected in **product.md**
|
|
604
|
+
- Project mission extracted from existing README/document
|
|
605
|
+
- Main user base and scenario inferred from code
|
|
606
|
+
- Backtracking of core problem to be solved
|
|
607
|
+
- Preservation of existing assets in “Legacy Context”
|
|
562
608
|
|
|
563
|
-
2. **structure.md
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
609
|
+
2. Contents reflected in **structure.md**
|
|
610
|
+
- Identified actual directory structure
|
|
611
|
+
- Responsibility analysis results for each module
|
|
612
|
+
- External system integration points (API calls, DB connections, etc.)
|
|
613
|
+
- Technical debt items (marked with @CODE tag)
|
|
568
614
|
|
|
569
|
-
3. **tech.md
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
615
|
+
3. **tech.md reflection content**
|
|
616
|
+
- Languages/frameworks/libraries actually in use
|
|
617
|
+
- Existing build/test pipeline
|
|
618
|
+
- Status of quality gates (linter, formatter, test coverage)
|
|
619
|
+
- Identification of security/distribution policy
|
|
620
|
+
- Items requiring improvement (marked with TODO tags)
|
|
575
621
|
|
|
576
|
-
|
|
577
|
-
-
|
|
578
|
-
-
|
|
579
|
-
-
|
|
622
|
+
**Preservation Policy**:
|
|
623
|
+
- Supplement only the missing parts without overwriting existing documents
|
|
624
|
+
- Preserve conflicting content in the “Legacy Context” section
|
|
625
|
+
- Mark items needing improvement with @CODE and TODO tags
|
|
580
626
|
|
|
581
|
-
|
|
627
|
+
**Example Final Report**:
|
|
582
628
|
```markdown
|
|
583
|
-
##
|
|
584
|
-
|
|
585
|
-
###
|
|
586
|
-
-
|
|
587
|
-
-
|
|
588
|
-
-
|
|
589
|
-
-
|
|
590
|
-
|
|
591
|
-
###
|
|
592
|
-
1.
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
2.
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
###
|
|
602
|
-
1. product/structure/tech.md
|
|
603
|
-
2. @CODE/TODO
|
|
604
|
-
3. /alfred:
|
|
629
|
+
## Complete analysis of existing project
|
|
630
|
+
|
|
631
|
+
### Environment Information
|
|
632
|
+
- **Language**: TypeScript 5.x (Node.js 18+)
|
|
633
|
+
- **Framework**: Express.js
|
|
634
|
+
- **Test**: Vitest (coverage ~60%)
|
|
635
|
+
- **Linter/Formatter**: Biome
|
|
636
|
+
|
|
637
|
+
### Main findings
|
|
638
|
+
1. **Strengths**:
|
|
639
|
+
- High type safety (strict mode)
|
|
640
|
+
- Clear module structure (separation of core/api/utils)
|
|
641
|
+
|
|
642
|
+
2. **Needs improvement**:
|
|
643
|
+
- Test coverage below 85% (TODO:TEST-COVERAGE-001)
|
|
644
|
+
- Absence of API documentation (TODO:DOCS-API-001)
|
|
645
|
+
- Insufficient E2E testing (@CODE:TEST-E2E-001)
|
|
646
|
+
|
|
647
|
+
### Next step
|
|
648
|
+
1. product/structure/tech.md creation completed
|
|
649
|
+
2. @CODE/TODO item priority confirmation
|
|
650
|
+
3. /alfred:Start writing an improvement SPEC with 1-spec
|
|
605
651
|
```
|
|
606
652
|
|
|
607
|
-
### 2.3
|
|
653
|
+
### 2.3 Document creation and verification
|
|
608
654
|
|
|
609
|
-
|
|
610
|
-
- `.moai/project/product.md` (
|
|
611
|
-
- `.moai/project/structure.md` (
|
|
612
|
-
- `.moai/project/tech.md` (
|
|
613
|
-
- `.moai/config.json` (
|
|
655
|
+
**Output**:
|
|
656
|
+
- `.moai/project/product.md` (Business Requirements)
|
|
657
|
+
- `.moai/project/structure.md` (System Architecture)
|
|
658
|
+
- `.moai/project/tech.md` (Technology Stack and policy)
|
|
659
|
+
- `.moai/config.json` (project settings)
|
|
614
660
|
|
|
615
|
-
|
|
616
|
-
- [ ]
|
|
617
|
-
- [ ]
|
|
618
|
-
- [ ] config.json
|
|
619
|
-
- [ ]
|
|
661
|
+
**Quality Verification**:
|
|
662
|
+
- [ ] Verify existence of all required @TAG sections
|
|
663
|
+
- [ ] Verify compliance with EARS syntax format
|
|
664
|
+
- [ ] Verify config.json syntax validity
|
|
665
|
+
- [ ] Verify cross-document consistency
|
|
620
666
|
|
|
621
|
-
### 2.4
|
|
667
|
+
### 2.4 Completion Report
|
|
622
668
|
|
|
623
669
|
```markdown
|
|
624
|
-
✅
|
|
625
|
-
|
|
626
|
-
📁
|
|
627
|
-
- .moai/project/product.md (
|
|
628
|
-
- .moai/project/structure.md (
|
|
629
|
-
- .moai/project/tech.md (
|
|
630
|
-
- .moai/config.json (
|
|
631
|
-
|
|
632
|
-
🔍
|
|
633
|
-
-
|
|
634
|
-
-
|
|
635
|
-
-
|
|
636
|
-
|
|
637
|
-
📋
|
|
638
|
-
1.
|
|
639
|
-
2. /alfred:1-
|
|
640
|
-
3.
|
|
670
|
+
✅ Project initialization complete!
|
|
671
|
+
|
|
672
|
+
📁 Documents generated:
|
|
673
|
+
- .moai/project/product.md (Business Definition)
|
|
674
|
+
- .moai/project/structure.md (Architecture Design)
|
|
675
|
+
- .moai/project/tech.md (Technology Stack)
|
|
676
|
+
- .moai/config.json (project settings)
|
|
677
|
+
|
|
678
|
+
🔍 Detected environments:
|
|
679
|
+
- Language: [List of languages]
|
|
680
|
+
- Frameworks: [List of frameworks]
|
|
681
|
+
- Test tools: [List of tools]
|
|
682
|
+
|
|
683
|
+
📋 Next steps:
|
|
684
|
+
1. Review the generated document
|
|
685
|
+
2. Create your first SPEC with /alfred:1-plan
|
|
686
|
+
3. If necessary, readjust with /alfred:8-project update
|
|
641
687
|
```
|
|
642
688
|
|
|
643
|
-
### 2.5:
|
|
689
|
+
### 2.5: Initial structural verification (optional)
|
|
690
|
+
|
|
691
|
+
After project initialization is complete, you can optionally run quality verification.
|
|
644
692
|
|
|
645
|
-
|
|
693
|
+
**Execution Conditions**: Only when explicitly requested by the user.
|
|
646
694
|
|
|
647
|
-
|
|
695
|
+
**Verification Purpose**:
|
|
696
|
+
- Basic verification of project documentation and configuration files
|
|
697
|
+
- Verification of compliance with the TRUST principles of the initial structure
|
|
698
|
+
- Validation of configuration files
|
|
648
699
|
|
|
649
|
-
|
|
650
|
-
-
|
|
651
|
-
- 초기 구조의 TRUST 원칙 준수 확인
|
|
652
|
-
- 설정 파일 유효성 검증
|
|
700
|
+
**How it works**:
|
|
701
|
+
Alfred only calls the trust-checker agent to perform project initial structural verification if explicitly requested by the user.
|
|
653
702
|
|
|
654
|
-
|
|
655
|
-
|
|
703
|
+
**Verification items**:
|
|
704
|
+
- **Document completeness**: Check existence of required sections in product/structure/tech.md
|
|
705
|
+
- **Settings validity**: Verify config.json JSON syntax and required fields
|
|
706
|
+
- **TAG scheme**: Check compliance with @TAG format in document
|
|
707
|
+
- **EARS syntax**: Validation of the EARS template to be used when writing SPECs
|
|
656
708
|
|
|
657
|
-
|
|
658
|
-
- **문서 완성도**: product/structure/tech.md 필수 섹션 존재 확인
|
|
659
|
-
- **설정 유효성**: config.json JSON 구문 및 필수 필드 검증
|
|
660
|
-
- **TAG 체계**: 문서 내 @TAG 형식 준수 확인
|
|
661
|
-
- **EARS 구문**: SPEC 작성 시 사용할 EARS 템플릿 검증
|
|
709
|
+
**Run Verification**: Level 1 quick scan (3-5 seconds)
|
|
662
710
|
|
|
663
|
-
|
|
711
|
+
**Handling verification results**:
|
|
664
712
|
|
|
665
|
-
|
|
713
|
+
✅ **Pass**: Can proceed to next step
|
|
714
|
+
- Documents and settings are all normal
|
|
666
715
|
|
|
667
|
-
|
|
668
|
-
-
|
|
716
|
+
⚠️ **Warning**: Proceed after warning
|
|
717
|
+
- Some optional sections are missing
|
|
718
|
+
- Recommendations not applied
|
|
669
719
|
|
|
670
|
-
|
|
671
|
-
-
|
|
672
|
-
-
|
|
720
|
+
❌ **Critical**: Needs fix
|
|
721
|
+
- Required section missing
|
|
722
|
+
- config.json syntax error
|
|
723
|
+
- User choice: “Revalidate after fix” or “Skip”
|
|
673
724
|
|
|
674
|
-
|
|
675
|
-
-
|
|
676
|
-
-
|
|
677
|
-
- 사용자 선택: "수정 후 재검증" 또는 "건너뛰기"
|
|
725
|
+
**Skip verification**:
|
|
726
|
+
- Verification is not run by default
|
|
727
|
+
- Run only when explicitly requested by the user
|
|
678
728
|
|
|
679
|
-
|
|
680
|
-
- 기본적으로 검증은 실행되지 않음
|
|
681
|
-
- 사용자가 명시적으로 요청할 때만 실행
|
|
729
|
+
### 2.6: Agent & Skill Tailoring (Project Optimization)
|
|
682
730
|
|
|
731
|
+
Based on the results of the interviews and initial analysis, we recommend and activate sub-agents and skills that should be immediately utilized in the project.
|
|
732
|
+
Before actual application, user confirmation is received with `Skill("moai-alfred-tui-survey")`, and selected items are recorded in `CLAUDE.md` and `.moai/config.json`.
|
|
733
|
+
|
|
734
|
+
#### 2.6.0 Create cc-manager briefing
|
|
735
|
+
|
|
736
|
+
Once the document creation is complete, **read all three documents (product/structure/tech.md)** and summarize the following information to create a text called `cc_manager_briefing`.
|
|
737
|
+
|
|
738
|
+
- `product.md`: Organize the mission, key users, problems to be solved, success indicators, and backlog (TODO) with a quotation from the original text or a one-line summary.
|
|
739
|
+
- `structure.md`: Records architecture type, module boundaries and scope of responsibility, external integration, traceability strategy, and TODO contents.
|
|
740
|
+
- `tech.md`: Organizes language/framework version, build/test/deployment procedures, quality/security policy, operation/monitoring method, and TODO items.
|
|
741
|
+
|
|
742
|
+
Be sure to include the source (e.g. `product.md@SPEC:SUCCESS-001`) for each item so that cc-manager can understand the basis.
|
|
743
|
+
|
|
744
|
+
#### 2.6.1 cc-manager judgment guide
|
|
745
|
+
|
|
746
|
+
cc-manager selects the required sub-agents and skills based on the briefing.The table below is a reference guide to help you make a decision, and when making an actual call, the supporting sentences from the relevant document are also delivered.
|
|
747
|
+
|
|
748
|
+
|Project requirements (document basis) |Recommended sub-agent/skill |Purpose |
|
|
749
|
+
| -------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------ |
|
|
750
|
+
|High quality and coverage goals (`product.md@SPEC:SUCCESS-001`) |`tdd-implementer`, `moai-essentials-debug`, `moai-essentials-review` |Establishment of RED·GREEN·REFACTOR workflow |
|
|
751
|
+
|Traceability/TAG improvement request (`structure.md@DOC:TRACEABILITY-001`) |`doc-syncer`, `moai-alfred-tag-scanning`, `moai-alfred-trust-validation` |Enhanced TAG traceability and document/code synchronization |
|
|
752
|
+
|Deployment automation/branch strategy required (`structure.md` Architecture/TODO) |`git-manager`, `moai-alfred-git-workflow`, `moai-foundation-git` |Branch Strategy·Commit Policy·PR Automation |
|
|
753
|
+
|Refactoring legacy modules (`product.md` BACKLOG, `tech.md` TODO) |`implementation-planner`, `moai-alfred-refactoring-coach`, `moai-essentials-refactor` |Technical Debt Diagnosis and Refactoring Roadmap |
|
|
754
|
+
|Strengthening regulatory/security compliance (`tech.md@DOC:SECURITY-001`) |`quality-gate`, `moai-alfred-trust-validation`, `moai-foundation-trust`, `moai-domain-security` |TRUST S (Secured) and Trackable Compliance, Security Consulting |
|
|
755
|
+
|CLI Automation/Tooling Requirements (`tech.md` BUILD/CLI section) |`implementation-planner`, `moai-domain-cli-tool`, detected language skills (e.g. `moai-lang-python`) |CLI command design, input/output standardization |
|
|
756
|
+
|Data analysis/reporting needs (`product.md` DATA, `tech.md` ANALYTICS) |`implementation-planner`, `moai-domain-data-science`, detected language skills |Data Pipeline·Notebook Job Definition |
|
|
757
|
+
|Improved database structure (`structure.md` DB, `tech.md` STORAGE) |`doc-syncer`, `moai-domain-database`, `moai-alfred-tag-scanning` |Strengthening schema documentation and TAG-DB mapping |
|
|
758
|
+
|DevOps/Infrastructure automation required (`tech.md` DEVOPS, `structure.md` CI/CD) |`implementation-planner`, `moai-domain-devops`, `moai-alfred-git-workflow` |Establishing a deployment pipeline and IaC strategy |
|
|
759
|
+
|Introduction of ML/AI functions (`product.md` AI, `tech.md` MODEL) |`implementation-planner`, `moai-domain-ml`, detected language skills |Model training/inference pipeline definition |
|
|
760
|
+
|Mobile app strategy (`product.md` MOBILE, `structure.md` CLIENT) |`implementation-planner`, `moai-domain-mobile-app`, detected language skills (e.g. `moai-lang-dart`, `moai-lang-swift`) |Mobile client structure design |
|
|
761
|
+
|Strengthening coding standards/review process (`tech.md` REVIEW) |`quality-gate`, `moai-essentials-review`, `moai-alfred-code-reviewer` |Strengthening review checklist and quality reporting |
|
|
762
|
+
|Requires onboarding/training mode (`tech.md` STACK description, etc.) |`moai-alfred-tui-survey`, `moai-adk-learning`, `agentic-coding` Output style |Enhanced interview TUI and automatically provided onboarding materials |
|
|
763
|
+
|
|
764
|
+
> **Language/Domain Skill Selection Rules**
|
|
765
|
+
> - Select and add one relevant language skill (`moai-lang-python`, `moai-lang-java`, …) based on the `moai-alfred-language-detection` results or the stack recorded in the Tech section of the briefing.
|
|
766
|
+
> - Skills listed in the domain row are automatically included by cc-manager in the `selected_skills` list when the conditions are met.
|
|
767
|
+
> - The skill directory is always copied in its entirety, and only actual activation is recorded in `skill_pack` and `CLAUDE.md`.
|
|
768
|
+
|
|
769
|
+
If multiple conditions are met, the candidates are merged without duplicates and organized into sets of `candidate_agents`, `candidate_skills`, and `candidate_styles`.
|
|
770
|
+
|
|
771
|
+
#### 2.6.2 User confirmation flow
|
|
772
|
+
|
|
773
|
+
`Skill("moai-alfred-tui-survey")` asks “whether to enable recommended items.”
|
|
774
|
+
- Provides three options: **Install all** / **Install selectively** / **Do not install**.
|
|
775
|
+
Selecting “Selective Install” presents the list of candidates again as multiple choices, allowing the user to select only the items they need.
|
|
776
|
+
|
|
777
|
+
#### 2.6.3 Activation and Recording Steps
|
|
778
|
+
|
|
779
|
+
1. **Preparing briefing**: Organize the results of user selection (install all/install selectively) and the full text of `cc_manager_briefing`.
|
|
780
|
+
2. **Call the cc-manager agent**:
|
|
781
|
+
- Call `subagent_type: "cc-manager"` with the `Task` tool and include a briefing and user selections in the prompt.
|
|
782
|
+
- cc-manager determines the necessary sub-agents and skills based on the briefing, and copies and updates `CLAUDE.md`, `.claude/agents/alfred/*.md`, and `.claude/skills/*.md` as customized for the project.
|
|
783
|
+
3. **Check for configuration updates**: Review the results reflected by cc-manager.
|
|
784
|
+
- Sub-Agents: Keep the `.claude/agents/alfred/` template active and list it in the `CLAUDE.md` “Agents” section.
|
|
785
|
+
- Skills: Check the `.claude/skills/` document and add it to the `CLAUDE.md` “Skills” section.
|
|
786
|
+
- Output style: Apply `.claude/output-styles/alfred/` and record the activation in `CLAUDE.md` “Output Styles”.
|
|
787
|
+
4. **Update config.json**
|
|
788
|
+
```json
|
|
789
|
+
{
|
|
790
|
+
"project": {
|
|
791
|
+
"optimized": true,
|
|
792
|
+
"agent_pack": ["tdd-implementer", "doc-syncer"],
|
|
793
|
+
"skill_pack": ["moai-alfred-git-workflow", "moai-alfred-tag-scanning"],
|
|
794
|
+
"output_styles": ["moai-adk-learning"]
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
```
|
|
798
|
+
Merge existing properties, if any.
|
|
799
|
+
5. **Final Report**: Add a list of “Activated Sub-Agents/Skills/Style” and a `cc_manager_briefing` summary at the top of the Completion Report, and reflect the same contents in the `CLAUDE.md` table so that they are automatically searched in subsequent commands.
|
|
683
800
|
|
|
684
|
-
##
|
|
801
|
+
## Interview guide by project type
|
|
685
802
|
|
|
686
|
-
###
|
|
803
|
+
### New project interview area
|
|
687
804
|
|
|
688
805
|
**Product Discovery** (product.md)
|
|
689
|
-
-
|
|
690
|
-
-
|
|
691
|
-
-
|
|
692
|
-
-
|
|
693
|
-
-
|
|
806
|
+
- Core mission and value proposition
|
|
807
|
+
- Key user bases and needs
|
|
808
|
+
- 3 key problems to solve
|
|
809
|
+
- Differentiation compared to competing solutions
|
|
810
|
+
- Measurable indicators of success
|
|
694
811
|
|
|
695
812
|
**Structure Blueprint** (structure.md)
|
|
696
|
-
-
|
|
697
|
-
-
|
|
698
|
-
-
|
|
699
|
-
- @TAG
|
|
813
|
+
- System architecture strategy
|
|
814
|
+
- Separation of modules and division of responsibilities
|
|
815
|
+
- External system integration plan
|
|
816
|
+
- @TAG-based traceability strategy
|
|
700
817
|
|
|
701
818
|
**Tech Stack Mapping** (tech.md)
|
|
702
|
-
-
|
|
703
|
-
-
|
|
704
|
-
-
|
|
705
|
-
-
|
|
819
|
+
- Language/runtime selection and version
|
|
820
|
+
- Framework and libraries
|
|
821
|
+
- Quality gate policy (coverage, linter)
|
|
822
|
+
- Security policy and distribution channel
|
|
706
823
|
|
|
707
|
-
###
|
|
824
|
+
### Existing project interview area
|
|
708
825
|
|
|
709
826
|
**Legacy Analysis**
|
|
710
|
-
-
|
|
711
|
-
-
|
|
712
|
-
-
|
|
713
|
-
-
|
|
714
|
-
- MoAI-ADK
|
|
827
|
+
- Identify current code structure and modules
|
|
828
|
+
- Status of build/test pipeline
|
|
829
|
+
- Identify technical debt and constraints
|
|
830
|
+
- External integration and authentication methods
|
|
831
|
+
- MoAI-ADK transition priority plan
|
|
715
832
|
|
|
716
|
-
|
|
833
|
+
**Retention Policy**: Preserve existing documents in the "Legacy Context" section and mark items needing improvement with @CODE/TODO tags
|
|
717
834
|
|
|
718
|
-
## 🏷️ TAG
|
|
835
|
+
## 🏷️ TAG system application rules
|
|
719
836
|
|
|
720
|
-
|
|
837
|
+
**Automatically create @TAGs per section**:
|
|
721
838
|
|
|
722
|
-
-
|
|
723
|
-
-
|
|
724
|
-
-
|
|
725
|
-
-
|
|
726
|
-
-
|
|
839
|
+
- Mission/Vision → @DOC:MISSION-XXX, @DOC:STRATEGY-XXX
|
|
840
|
+
- Customization → @SPEC:USER-XXX, @SPEC:PERSONA-XXX
|
|
841
|
+
- Problem analysis → @SPEC:PROBLEM-XXX, @SPEC:SOLUTION-XXX
|
|
842
|
+
- Architecture → @DOC:ARCHITECTURE-XXX, @SPEC:PATTERN-XXX
|
|
843
|
+
- Technology Stack → @DOC:STACK-XXX, @DOC:FRAMEWORK-XXX
|
|
727
844
|
|
|
728
|
-
|
|
845
|
+
**Legacy Project Tags**:
|
|
729
846
|
|
|
730
|
-
-
|
|
731
|
-
-
|
|
732
|
-
-
|
|
847
|
+
- Technical debt → @CODE:REFACTOR-XXX, @CODE:TEST-XXX, @CODE:MIGRATION-XXX
|
|
848
|
+
- Resolution plan → @CODE:MIGRATION-XXX, TODO:SPEC-BACKLOG-XXX
|
|
849
|
+
- Quality improvement → TODO:TEST-COVERAGE-XXX, TODO:DOCS-SYNC-XXX
|
|
733
850
|
|
|
734
|
-
##
|
|
851
|
+
## Error handling
|
|
735
852
|
|
|
736
|
-
###
|
|
853
|
+
### Common errors and solutions
|
|
737
854
|
|
|
738
|
-
|
|
855
|
+
**Error 1**: Project language detection failed
|
|
739
856
|
```
|
|
740
|
-
|
|
741
|
-
|
|
857
|
+
Symptom: “Language not detected” message
|
|
858
|
+
Solution: Specify language manually or create language-specific settings file
|
|
742
859
|
```
|
|
743
860
|
|
|
744
|
-
|
|
861
|
+
**Error 2**: Conflict with existing document
|
|
745
862
|
```
|
|
746
|
-
|
|
747
|
-
|
|
863
|
+
Symptom: product.md already exists and has different contents
|
|
864
|
+
Solution: Preserve existing contents and add new contents in “Legacy Context” section
|
|
748
865
|
```
|
|
749
866
|
|
|
750
|
-
|
|
867
|
+
**Error 3**: Failed to create config.json
|
|
751
868
|
```
|
|
752
|
-
|
|
753
|
-
|
|
869
|
+
Symptom: JSON syntax error or permission denied
|
|
870
|
+
Solution: Check file permissions (chmod 644) or create config.json manually
|
|
754
871
|
```
|
|
755
872
|
|
|
756
873
|
---
|
|
757
874
|
|
|
758
|
-
## /alfred:0-project update:
|
|
875
|
+
## /alfred:0-project update: Template optimization (subcommand)
|
|
759
876
|
|
|
760
|
-
>
|
|
877
|
+
> **Purpose**: After running moai-adk update, compare the backup and new template to optimize the template while preserving user customization.
|
|
761
878
|
|
|
762
|
-
###
|
|
879
|
+
### Execution conditions
|
|
763
880
|
|
|
764
|
-
|
|
881
|
+
This subcommand is executed under the following conditions:
|
|
765
882
|
|
|
766
|
-
1. **moai-adk update
|
|
767
|
-
2.
|
|
768
|
-
3.
|
|
883
|
+
1. **After executing moai-adk update**: `optimized=false` status in `config.json`
|
|
884
|
+
2. **Template update required**: When there is a difference between the backup and the new template
|
|
885
|
+
3. **User explicit request**: User directly executes `/alfred:0-project update`
|
|
769
886
|
|
|
770
|
-
###
|
|
887
|
+
### Execution flow
|
|
771
888
|
|
|
772
|
-
#### Phase 1:
|
|
889
|
+
#### Phase 1: Backup analysis and comparison
|
|
773
890
|
|
|
774
|
-
1.
|
|
891
|
+
1. **Make sure you have the latest backup**:
|
|
775
892
|
```bash
|
|
776
|
-
|
|
893
|
+
# Browse the latest backups in the .moai-backups/ directory
|
|
777
894
|
ls -lt .moai-backups/ | head -1
|
|
778
895
|
```
|
|
779
896
|
|
|
780
|
-
2.
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
897
|
+
2. **Change Analysis**:
|
|
898
|
+
- Compare `.claude/` directory from backup with current template
|
|
899
|
+
- Compare `.moai/project/` document from backup with current document
|
|
900
|
+
- Identify user customization items
|
|
784
901
|
|
|
785
|
-
3.
|
|
902
|
+
3. **Create Comparison Report**:
|
|
786
903
|
```markdown
|
|
787
|
-
|
|
904
|
+
## 📊 Template optimization analysis
|
|
788
905
|
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
906
|
+
### Changed items
|
|
907
|
+
- CLAUDE.md: "## Project Information" section needs to be preserved
|
|
908
|
+
- settings.json: 3 env variables need to be preserved
|
|
909
|
+
- product.md: Has user-written content
|
|
793
910
|
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
911
|
+
### Recommended Action
|
|
912
|
+
- Run Smart Merge
|
|
913
|
+
- Preserve User Customizations
|
|
914
|
+
- Set optimized=true
|
|
798
915
|
```
|
|
799
916
|
|
|
800
|
-
4.
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
- "건너뛰기" → optimized=false 유지
|
|
917
|
+
4. **Waiting for user approval**
|
|
918
|
+
`Skill("moai-alfred-tui-survey")` asks “Do you want to proceed with template optimization?” and provides the following options.
|
|
919
|
+
- **Proceed** → Phase 2 execution
|
|
920
|
+
- **Preview** → Display change details and recheck
|
|
921
|
+
- **Skip** → keep optimized=false
|
|
806
922
|
|
|
807
|
-
#### Phase 2:
|
|
923
|
+
#### Phase 2: Run smart merge (after user approval)
|
|
808
924
|
|
|
809
|
-
1.
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
925
|
+
1. **Execute smart merge logic**:
|
|
926
|
+
- Run `TemplateProcessor.copy_templates()`
|
|
927
|
+
- CLAUDE.md: Preserve "## Project Information" section
|
|
928
|
+
- settings.json: env variables and permissions.allow merge
|
|
813
929
|
|
|
814
|
-
2. **optimized=true
|
|
930
|
+
2. Set **optimized=true**:
|
|
815
931
|
```python
|
|
816
|
-
# config.json
|
|
932
|
+
# update config.json
|
|
817
933
|
config_data["project"]["optimized"] = True
|
|
818
934
|
```
|
|
819
935
|
|
|
820
|
-
3.
|
|
936
|
+
3. **Optimization completion report**:
|
|
821
937
|
```markdown
|
|
822
|
-
|
|
938
|
+
✅ Template optimization completed!
|
|
823
939
|
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
940
|
+
📄 Merged files:
|
|
941
|
+
- CLAUDE.md (preserves project information)
|
|
942
|
+
- settings.json (preserves env variables)
|
|
827
943
|
|
|
828
|
-
|
|
944
|
+
⚙️ config.json: optimized=true Configuration complete
|
|
829
945
|
```
|
|
830
946
|
|
|
831
|
-
### Alfred
|
|
947
|
+
### Alfred Automation Strategy
|
|
832
948
|
|
|
833
|
-
**Alfred
|
|
834
|
-
- project-manager
|
|
835
|
-
-
|
|
836
|
-
-
|
|
949
|
+
**Alfred automatic decision**:
|
|
950
|
+
- Automatically call project-manager agent
|
|
951
|
+
- Check backup freshness (within 24 hours)
|
|
952
|
+
- Automatically analyze changes
|
|
837
953
|
|
|
838
|
-
**
|
|
839
|
-
- moai-alfred-tag-scanning: TAG
|
|
840
|
-
- moai-alfred-trust-validation:
|
|
954
|
+
**Auto-activation of Skills**:
|
|
955
|
+
- moai-alfred-tag-scanning: TAG chain verification
|
|
956
|
+
- moai-alfred-trust-validation: Verification of compliance with TRUST principles
|
|
841
957
|
|
|
842
|
-
###
|
|
958
|
+
### Running example
|
|
843
959
|
|
|
844
960
|
```bash
|
|
845
|
-
# moai-adk update
|
|
961
|
+
# After running moai-adk update
|
|
846
962
|
moai-adk update
|
|
847
963
|
|
|
848
|
-
#
|
|
964
|
+
# Output:
|
|
849
965
|
# ✓ Update complete!
|
|
850
966
|
# ℹ️ Next step: Run /alfred:0-project update to optimize template changes
|
|
851
967
|
|
|
852
|
-
# Alfred
|
|
968
|
+
# Run Alfred
|
|
853
969
|
/alfred:0-project update
|
|
854
970
|
|
|
855
|
-
# → Phase 1:
|
|
856
|
-
# →
|
|
857
|
-
# → Phase 2:
|
|
971
|
+
# → Phase 1: Generate backup analysis and comparison report
|
|
972
|
+
# → Wait for user approval
|
|
973
|
+
# → Phase 2: Run smart merge, set optimized=true
|
|
858
974
|
```
|
|
859
975
|
|
|
860
|
-
###
|
|
976
|
+
### caution
|
|
861
977
|
|
|
862
|
-
-
|
|
863
|
-
-
|
|
864
|
-
-
|
|
978
|
+
- **Backup required**: Cannot run without backup in `.moai-backups/` directory
|
|
979
|
+
- **Manual review recommended**: Preview is required if there are important customizations
|
|
980
|
+
- **Conflict resolution**: Request user selection in case of merge conflict
|
|
865
981
|
|
|
866
982
|
---
|
|
867
983
|
|
|
868
|
-
## 🚀 STEP 3:
|
|
984
|
+
## 🚀 STEP 3: Project Custom Optimization (Optional)
|
|
869
985
|
|
|
870
|
-
|
|
871
|
-
- Phase 2 (
|
|
872
|
-
-
|
|
873
|
-
-
|
|
986
|
+
**Execution conditions**:
|
|
987
|
+
- After completion of Phase 2 (project initialization)
|
|
988
|
+
- or after completion of Phase 1.1 (backup merge)
|
|
989
|
+
- Explicitly requested by the user or automatically determined by Alfred
|
|
874
990
|
|
|
875
|
-
|
|
991
|
+
**Purpose**: Lightweight by selecting only Commands, Agents, and Skills that fit the project characteristics (37 skills → 3~5)
|
|
876
992
|
|
|
877
|
-
### 3.1 Feature Selection
|
|
993
|
+
### 3.1 Automatic execution of Feature Selection
|
|
878
994
|
|
|
879
|
-
**Alfred
|
|
995
|
+
**Alfred automatically calls the moai-alfred-feature-selector skill**:
|
|
880
996
|
|
|
881
|
-
|
|
882
|
-
- `.moai/project/product.md` (
|
|
883
|
-
- `.moai/project/tech.md` (
|
|
884
|
-
- `.moai/config.json` (
|
|
997
|
+
**Skill Entry**:
|
|
998
|
+
- `.moai/project/product.md` (project category hint)
|
|
999
|
+
- `.moai/project/tech.md` (main language, framework)
|
|
1000
|
+
- `.moai/config.json` (project settings)
|
|
885
1001
|
|
|
886
|
-
|
|
1002
|
+
**Skill Output**:
|
|
887
1003
|
```json
|
|
888
1004
|
{
|
|
889
1005
|
"category": "web-api",
|
|
@@ -897,95 +1013,95 @@ moai-adk update
|
|
|
897
1013
|
}
|
|
898
1014
|
```
|
|
899
1015
|
|
|
900
|
-
|
|
1016
|
+
**How to Run**:
|
|
901
1017
|
```
|
|
902
1018
|
Alfred: Skill("moai-alfred-feature-selector")
|
|
903
1019
|
```
|
|
904
1020
|
|
|
905
1021
|
---
|
|
906
1022
|
|
|
907
|
-
### 3.2 Template Generation
|
|
1023
|
+
### 3.2 Automatic execution of Template Generation
|
|
908
1024
|
|
|
909
|
-
**Alfred
|
|
1025
|
+
**Alfred automatically calls the moai-alfred-template-generator skill**:
|
|
910
1026
|
|
|
911
|
-
|
|
912
|
-
- `.moai/.feature-selection.json` (feature-selector
|
|
913
|
-
- `CLAUDE.md`
|
|
914
|
-
-
|
|
1027
|
+
**Skill input**:
|
|
1028
|
+
- `.moai/.feature-selection.json` (feature-selector output)
|
|
1029
|
+
- `CLAUDE.md` template
|
|
1030
|
+
- Entire commands/agents/skills file
|
|
915
1031
|
|
|
916
|
-
|
|
917
|
-
- `CLAUDE.md` (
|
|
918
|
-
- `.claude/commands/` (
|
|
919
|
-
- `.claude/agents/` (
|
|
920
|
-
- `.claude/skills/` (
|
|
921
|
-
- `.moai/config.json` (`optimized: true`
|
|
1032
|
+
**Skill Output**:
|
|
1033
|
+
- `CLAUDE.md` (custom agent table - selected agents only)
|
|
1034
|
+
- `.claude/commands/` (selected commands only)
|
|
1035
|
+
- `.claude/agents/` (selected agents only)
|
|
1036
|
+
- `.claude/skills/` (selected skills only)
|
|
1037
|
+
- `.moai/config.json` (updates `optimized: true`)
|
|
922
1038
|
|
|
923
|
-
|
|
1039
|
+
**How to Run**:
|
|
924
1040
|
```
|
|
925
1041
|
Alfred: Skill("moai-alfred-template-generator")
|
|
926
1042
|
```
|
|
927
1043
|
|
|
928
1044
|
---
|
|
929
1045
|
|
|
930
|
-
### 3.3
|
|
1046
|
+
### 3.3 Optimization completion report
|
|
931
1047
|
|
|
932
|
-
|
|
1048
|
+
**Report Format**:
|
|
933
1049
|
```markdown
|
|
934
|
-
✅
|
|
935
|
-
|
|
936
|
-
📊
|
|
937
|
-
-
|
|
938
|
-
-
|
|
939
|
-
-
|
|
940
|
-
-
|
|
941
|
-
|
|
942
|
-
🎯
|
|
943
|
-
- Commands: 4
|
|
944
|
-
- Agents: 5
|
|
945
|
-
- Skills: 3
|
|
946
|
-
|
|
947
|
-
💡
|
|
948
|
-
-
|
|
949
|
-
-
|
|
950
|
-
- CLAUDE.md:
|
|
951
|
-
|
|
952
|
-
📋
|
|
953
|
-
1. CLAUDE.md
|
|
954
|
-
2. /alfred:1-
|
|
955
|
-
3. MoAI-ADK
|
|
1050
|
+
✅ Project customized optimization completed!
|
|
1051
|
+
|
|
1052
|
+
📊 Optimization results:
|
|
1053
|
+
- **Project**: {{PROJECT_NAME}}
|
|
1054
|
+
- **Category**: web-api
|
|
1055
|
+
- **Main language**: python
|
|
1056
|
+
- **Framework**: fastapi
|
|
1057
|
+
|
|
1058
|
+
🎯 Selected capabilities:
|
|
1059
|
+
- Commands: 4 items (0-project, 1-spec, 2-build, 3-sync)
|
|
1060
|
+
- Agents: 5 items (spec-builder, code-builder, doc-syncer, git-manager, debug-helper)
|
|
1061
|
+
- Skills: 3 items (moai-lang-python, moai-domain-web-api, moai-domain-backend)
|
|
1062
|
+
|
|
1063
|
+
💡 Lightweight effect:
|
|
1064
|
+
- Skills excluded: 34
|
|
1065
|
+
- Lightweight: 87%
|
|
1066
|
+
- CLAUDE.md: Create custom agent table
|
|
1067
|
+
|
|
1068
|
+
📋 Next steps:
|
|
1069
|
+
1. Check the CLAUDE.md file (only 5 agents are displayed)
|
|
1070
|
+
2. Run /alfred:1-plan "first function"
|
|
1071
|
+
3. Start the MoAI-ADK workflow
|
|
956
1072
|
```
|
|
957
1073
|
|
|
958
1074
|
---
|
|
959
1075
|
|
|
960
|
-
### 3.4 Phase 3
|
|
1076
|
+
### 3.4 Skip Phase 3 (optional)
|
|
961
1077
|
|
|
962
|
-
|
|
1078
|
+
**Users can skip Phase 3**:
|
|
963
1079
|
|
|
964
|
-
|
|
965
|
-
-
|
|
966
|
-
-
|
|
1080
|
+
**Skip condition**:
|
|
1081
|
+
- User explicitly selects “Skip”
|
|
1082
|
+
- “Simple project” when Alfred automatically determines (only basic features required)
|
|
967
1083
|
|
|
968
|
-
|
|
969
|
-
-
|
|
970
|
-
-
|
|
971
|
-
-
|
|
1084
|
+
**Skip effect**:
|
|
1085
|
+
- Maintain all 37 skills (no lightweighting)
|
|
1086
|
+
- Maintain default 9 agents in CLAUDE.md template
|
|
1087
|
+
- Maintain `optimized: false` in config.json
|
|
972
1088
|
|
|
973
1089
|
---
|
|
974
1090
|
|
|
975
|
-
##
|
|
1091
|
+
## Next steps
|
|
976
1092
|
|
|
977
|
-
|
|
1093
|
+
**Recommendation**: For better performance and context management, start a new chat session with the `/clear` or `/new` command before proceeding to the next step.
|
|
978
1094
|
|
|
979
|
-
|
|
1095
|
+
After initialization is complete:
|
|
980
1096
|
|
|
981
|
-
-
|
|
982
|
-
-
|
|
983
|
-
-
|
|
984
|
-
-
|
|
1097
|
+
- **New project**: Run `/alfred:1-plan` to create design-based SPEC backlog
|
|
1098
|
+
- **Legacy project**: Review @CODE/@CODE/TODO items in product/structure/tech document and confirm priority
|
|
1099
|
+
- **Set Change**: Run `/alfred:0-project` again to update document
|
|
1100
|
+
- **Template optimization**: Run `/alfred:0-project update` after `moai-adk update`
|
|
985
1101
|
|
|
986
|
-
##
|
|
1102
|
+
## Related commands
|
|
987
1103
|
|
|
988
|
-
- `/alfred:1-
|
|
989
|
-
- `/alfred:9-update` - MoAI-ADK
|
|
990
|
-
- `moai doctor` -
|
|
991
|
-
- `moai status` -
|
|
1104
|
+
- `/alfred:1-plan` - Start writing SPEC
|
|
1105
|
+
- `/alfred:9-update` - MoAI-ADK update
|
|
1106
|
+
- `moai doctor` - System diagnosis
|
|
1107
|
+
- `moai status` - Check project status
|