moai-adk 0.8.0__py3-none-any.whl → 0.15.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/cli/commands/init.py +14 -2
- moai_adk/cli/commands/update.py +229 -60
- moai_adk/core/config/migration.py +1 -1
- moai_adk/core/issue_creator.py +313 -0
- moai_adk/core/project/detector.py +201 -12
- moai_adk/core/project/initializer.py +62 -1
- moai_adk/core/project/phase_executor.py +48 -6
- moai_adk/core/tags/__init__.py +86 -0
- moai_adk/core/tags/ci_validator.py +463 -0
- moai_adk/core/tags/cli.py +283 -0
- moai_adk/core/tags/generator.py +109 -0
- moai_adk/core/tags/inserter.py +99 -0
- moai_adk/core/tags/mapper.py +126 -0
- moai_adk/core/tags/parser.py +76 -0
- moai_adk/core/tags/pre_commit_validator.py +393 -0
- moai_adk/core/tags/reporter.py +956 -0
- moai_adk/core/tags/tags.py +149 -0
- moai_adk/core/tags/validator.py +897 -0
- moai_adk/core/template_engine.py +268 -0
- moai_adk/templates/.claude/agents/alfred/backend-expert.md +319 -0
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +25 -2
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +24 -12
- moai_adk/templates/.claude/agents/alfred/devops-expert.md +464 -0
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +20 -13
- moai_adk/templates/.claude/agents/alfred/frontend-expert.md +357 -0
- moai_adk/templates/.claude/agents/alfred/git-manager.md +47 -16
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +95 -15
- moai_adk/templates/.claude/agents/alfred/project-manager.md +78 -12
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +28 -5
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +30 -2
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +133 -13
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +104 -8
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +133 -16
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +27 -4
- moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +571 -0
- moai_adk/templates/.claude/commands/alfred/0-project.md +466 -125
- moai_adk/templates/.claude/commands/alfred/1-plan.md +208 -71
- moai_adk/templates/.claude/commands/alfred/2-run.md +276 -55
- moai_adk/templates/.claude/commands/alfred/3-sync.md +439 -53
- moai_adk/templates/.claude/commands/alfred/9-feedback.md +149 -0
- moai_adk/templates/.claude/hooks/alfred/core/project.py +361 -29
- moai_adk/templates/.claude/hooks/alfred/core/timeout.py +136 -0
- moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +108 -0
- moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +198 -0
- moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +14 -6
- moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +94 -0
- moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +100 -0
- moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +94 -0
- moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +94 -0
- moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/__init__.py +2 -2
- moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/checkpoint.py +3 -3
- moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/context.py +5 -5
- moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +749 -0
- moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/tags.py +55 -23
- moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +198 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +21 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +154 -0
- moai_adk/templates/.claude/hooks/alfred/{handlers → shared/handlers}/session.py +28 -15
- moai_adk/templates/.claude/hooks/alfred/{handlers → shared/handlers}/tool.py +3 -6
- moai_adk/templates/.claude/hooks/alfred/{handlers → shared/handlers}/user.py +19 -0
- moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +112 -0
- moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +1 -0
- moai_adk/templates/.claude/hooks/alfred/utils/timeout.py +161 -0
- moai_adk/templates/.claude/settings.json +5 -5
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +70 -0
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +62 -0
- moai_adk/templates/{.moai/memory/CLAUDE-AGENTS-GUIDE.md → .claude/skills/moai-alfred-agent-guide/reference.md} +34 -0
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +56 -0
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +62 -0
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +405 -0
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +51 -0
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +355 -0
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +239 -0
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +323 -0
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +286 -0
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +126 -0
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/SKILL.md +74 -0
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/examples.md +4 -0
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/reference.md +269 -0
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +19 -0
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +4 -0
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +150 -0
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/SKILL.md +198 -0
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/examples.md +431 -0
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/reference.md +141 -0
- moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +89 -0
- moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +122 -0
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +508 -0
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +481 -0
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +100 -0
- moai_adk/templates/.claude/skills/moai-alfred-reporting/SKILL.md +273 -0
- moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +77 -0
- moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +265 -0
- moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +19 -0
- moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +4 -0
- moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +84 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +137 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +219 -0
- moai_adk/templates/.claude/skills/{moai-spec-authoring → moai-alfred-spec-authoring}/examples/validate-spec.sh +3 -3
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +541 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +622 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/SKILL.md +115 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/examples.md +4 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/reference.md +348 -0
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +19 -0
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +4 -0
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +211 -0
- moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +288 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/SKILL.md +19 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/examples.md +4 -0
- moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/SKILL.md +3 -3
- moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +802 -0
- moai_adk/templates/.claude/skills/moai-design-systems/examples.md +1238 -0
- moai_adk/templates/.claude/skills/moai-design-systems/reference.md +673 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +17 -13
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +9 -6
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +15 -12
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +14 -12
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +14 -11
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +10 -8
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +15 -12
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +13 -11
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +16 -10
- moai_adk/templates/.claude/skills/moai-project-documentation.md +622 -0
- moai_adk/templates/.git-hooks/pre-push +143 -0
- moai_adk/templates/.github/workflows/c-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/cpp-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/csharp-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/dart-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/go-tag-validation.yml +130 -0
- moai_adk/templates/.github/workflows/java-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/javascript-tag-validation.yml +135 -0
- moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/moai-gitflow.yml +166 -3
- moai_adk/templates/.github/workflows/moai-release-create.yml +100 -0
- moai_adk/templates/.github/workflows/moai-release-pipeline.yml +188 -0
- moai_adk/templates/.github/workflows/php-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/python-tag-validation.yml +118 -0
- moai_adk/templates/.github/workflows/release.yml +118 -0
- moai_adk/templates/.github/workflows/ruby-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/rust-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/shell-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/spec-issue-sync.yml +206 -35
- moai_adk/templates/.github/workflows/swift-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/tag-report.yml +269 -0
- moai_adk/templates/.github/workflows/tag-validation.yml +186 -0
- moai_adk/templates/.github/workflows/typescript-tag-validation.yml +154 -0
- moai_adk/templates/.moai/config.json +21 -2
- moai_adk/templates/CLAUDE.md +972 -78
- moai_adk/templates/workflows/go-tag-validation.yml +30 -0
- moai_adk/templates/workflows/javascript-tag-validation.yml +41 -0
- moai_adk/templates/workflows/python-tag-validation.yml +42 -0
- moai_adk/templates/workflows/typescript-tag-validation.yml +31 -0
- moai_adk/utils/banner.py +5 -5
- {moai_adk-0.8.0.dist-info → moai_adk-0.15.0.dist-info}/METADATA +1518 -161
- {moai_adk-0.8.0.dist-info → moai_adk-0.15.0.dist-info}/RECORD +183 -100
- moai_adk/templates/.claude/hooks/alfred/HOOK_SCHEMA_VALIDATION.md +0 -313
- moai_adk/templates/.claude/hooks/alfred/README.md +0 -230
- moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -174
- moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +0 -25
- moai_adk/templates/.claude/hooks/alfred/test_hook_output.py +0 -175
- moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -640
- moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -696
- moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -474
- moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +0 -137
- moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +0 -218
- moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +0 -541
- moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +0 -622
- moai_adk/templates/.github/ISSUE_TEMPLATE/spec.yml +0 -176
- moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -69
- moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md +0 -344
- moai_adk/templates/.moai/memory/GITFLOW-PROTECTION-POLICY.md +0 -220
- moai_adk/templates/.moai/memory/SPEC-METADATA.md +0 -356
- moai_adk/templates/.moai/memory/config-schema.md +0 -444
- moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -220
- moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
- moai_adk/templates/.moai/project/product.md +0 -161
- moai_adk/templates/.moai/project/structure.md +0 -156
- moai_adk/templates/.moai/project/tech.md +0 -227
- moai_adk/templates/__init__.py +0 -2
- /moai_adk/templates/{.moai/memory/CONFIG-SCHEMA.md → .claude/skills/moai-alfred-config-schema/reference.md} +0 -0
- /moai_adk/templates/{.moai/memory/CLAUDE-PRACTICES.md → .claude/skills/moai-alfred-practices/reference.md} +0 -0
- /moai_adk/templates/{.moai/memory/CLAUDE-RULES.md → .claude/skills/moai-alfred-rules/reference.md} +0 -0
- /moai_adk/templates/{.moai/memory/SKILLS-DESCRIPTION-POLICY.md → .claude/skills/moai-cc-skill-descriptions/reference.md} +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/CHECKLIST.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/EXAMPLES.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/INTERACTIVE-DISCOVERY.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/METADATA.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/PARALLEL-ANALYSIS-REPORT.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/PYTHON-VERSION-MATRIX.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/SKILL-FACTORY-WORKFLOW.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/SKILL-UPDATE-ADVISOR.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/STEP-BY-STEP-GUIDE.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/STRUCTURE.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/WEB-RESEARCH.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/reference.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/scripts/generate-structure.sh +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/scripts/validate-skill.sh +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/templates/SKILL_TEMPLATE.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/templates/examples-template.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/templates/reference-template.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/templates/scripts-template.sh +0 -0
- {moai_adk-0.8.0.dist-info → moai_adk-0.15.0.dist-info}/WHEEL +0 -0
- {moai_adk-0.8.0.dist-info → moai_adk-0.15.0.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.8.0.dist-info → moai_adk-0.15.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: alfred:0-project
|
|
3
|
-
description: "Initialize project
|
|
4
|
-
# Translations:
|
|
5
|
-
# - ko: "프로젝트 문서 초기화 - product/structure/tech.md 생성 및 언어별 최적화 설정"
|
|
6
|
-
# - ja: "プロジェクト文書の初期化 - product/structure/tech.mdの作成と言語別最適化設定"
|
|
7
|
-
# - zh: "初始化项目文档 - 创建product/structure/tech.md并设置语言优化"
|
|
3
|
+
description: "Initialize project metadata and documentation"
|
|
8
4
|
allowed-tools:
|
|
9
5
|
- Read
|
|
10
6
|
- Write
|
|
@@ -79,7 +75,7 @@ The user executes the `/alfred:8-project` command to start analyzing the project
|
|
|
79
75
|
- ❌ Create a file in the `.claude/memory/` directory
|
|
80
76
|
- ❌ Create a file `.claude/commands/alfred/*.json`
|
|
81
77
|
- ❌ Unnecessary overwriting of existing documents
|
|
82
|
-
- ❌ Date and numerical prediction (
|
|
78
|
+
- ❌ Date and numerical prediction ("within 3 months", "50% reduction") etc.)
|
|
83
79
|
- ❌ Hypothetical scenarios, expected market size, future technology trend predictions
|
|
84
80
|
|
|
85
81
|
**Expressions to use**:
|
|
@@ -96,6 +92,8 @@ The user executes the `/alfred:8-project` command to start analyzing the project
|
|
|
96
92
|
|
|
97
93
|
**목적**: 프로젝트 초기화 시작 전에 대화 언어를 설정하고 사용자 닉네임을 등록합니다. 이 설정은 모든 Alfred 프롬프트, 인터뷰 질문 및 생성된 문서에 적용됩니다.
|
|
98
94
|
|
|
95
|
+
**UX 개선**: 2개 질문을 **1회 배치 호출**로 통합 (50% 상호작용 감소: 2 turns → 1 turn)
|
|
96
|
+
|
|
99
97
|
### 0.0 Alfred 자기소개 및 환영 인사
|
|
100
98
|
|
|
101
99
|
Alfred가 첫 상호작용으로 다음과 같이 인사합니다:
|
|
@@ -108,79 +106,354 @@ MoAI-ADK의 SuperAgent로서 당신의 프로젝트를 함께 만들어갈 준
|
|
|
108
106
|
먼저 기본 설정을 진행하겠습니다.
|
|
109
107
|
```
|
|
110
108
|
|
|
111
|
-
### 0.1 언어 선택
|
|
109
|
+
### 0.1 배치 설계: 언어 선택 + 사용자 닉네임 + GitHub 설정 확인 (1-3회 호출)
|
|
110
|
+
|
|
111
|
+
Alfred가 `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` 를 사용하여 **배치 호출**로 필수 정보를 수집합니다:
|
|
112
|
+
|
|
113
|
+
**기본 배치 (항상 실행)**:
|
|
114
|
+
- 언어 선택
|
|
115
|
+
- 사용자 닉네임
|
|
112
116
|
|
|
113
|
-
|
|
117
|
+
**추가 배치 (팀 모드 감지 시)**:
|
|
118
|
+
- GitHub "Automatically delete head branches" 설정 확인
|
|
114
119
|
|
|
115
|
-
|
|
120
|
+
#### 0.1.1 팀 모드 감지
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# config.json에서 mode 확인
|
|
124
|
+
grep "mode" .moai/config.json
|
|
125
|
+
|
|
126
|
+
# 결과: "mode": "team" → 추가 질문 포함
|
|
127
|
+
# "mode": "personal" → 기본 질문만 실행
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
#### 0.1.2 기본 배치: 언어 선택 + 에이전트 프롬프트 언어 + 닉네임 (3개 질문, 1회 배치 호출)
|
|
131
|
+
|
|
132
|
+
**배치 설계**: 3개 질문을 1회 호출로 통합 (UX 개선: 3 turns → 1 turn)
|
|
133
|
+
|
|
134
|
+
**Example AskUserQuestion Call**:
|
|
135
|
+
```python
|
|
136
|
+
AskUserQuestion(
|
|
137
|
+
questions=[
|
|
138
|
+
{
|
|
139
|
+
"question": "Which language would you like to use for the project initialization and documentation?",
|
|
140
|
+
"header": "Language",
|
|
141
|
+
"multiSelect": false,
|
|
142
|
+
"options": [
|
|
143
|
+
{
|
|
144
|
+
"label": "🌍 English",
|
|
145
|
+
"description": "All dialogs and documentation in English"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"label": "🇰🇷 한국어",
|
|
149
|
+
"description": "All dialogs and documentation in Korean"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"label": "🇯🇵 日本語",
|
|
153
|
+
"description": "All dialogs and documentation in Japanese"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"label": "🇨🇳 中文",
|
|
157
|
+
"description": "All dialogs and documentation in Chinese"
|
|
158
|
+
}
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"question": "In which language should Alfred's sub-agent prompts be written?",
|
|
163
|
+
"header": "Agent Prompt Language",
|
|
164
|
+
"multiSelect": false,
|
|
165
|
+
"options": [
|
|
166
|
+
{
|
|
167
|
+
"label": "🌐 English (Global Standard)",
|
|
168
|
+
"description": "All sub-agent prompts in English for global consistency and team collaboration. Recommended for Claude Pro $20 users: reduces token usage by ~15-20%, lowering API costs"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"label": "🗣️ Selected Language (Localized)",
|
|
172
|
+
"description": "All sub-agent prompts in the language you selected above for local team efficiency"
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"question": "How would you like to be called in our conversations? (e.g., GOOS, Team Lead, Developer, or custom name - max 20 chars)",
|
|
178
|
+
"header": "Nickname",
|
|
179
|
+
"multiSelect": false,
|
|
180
|
+
"options": [
|
|
181
|
+
{
|
|
182
|
+
"label": "Enter custom nickname",
|
|
183
|
+
"description": "Type your preferred name using the 'Other' option below"
|
|
184
|
+
}
|
|
185
|
+
]
|
|
186
|
+
}
|
|
187
|
+
]
|
|
188
|
+
)
|
|
116
189
|
```
|
|
117
|
-
|
|
190
|
+
|
|
191
|
+
**응답 처리**:
|
|
192
|
+
|
|
193
|
+
**Q1 (사용자 언어)**:
|
|
194
|
+
- Selected option stored as: `conversation_language: "ko"` (or "en", "ja", "zh", etc.)
|
|
195
|
+
|
|
196
|
+
**Q2 (에이전트 프롬프트 언어)** - **NEW**:
|
|
197
|
+
- **"English (Global Standard)"** → `agent_prompt_language: "english"`
|
|
198
|
+
- All sub-agent prompts written in English
|
|
199
|
+
- Recommended for global teams, code consistency, and international collaboration
|
|
200
|
+
- Project-manager, spec-builder, code-builder use English prompts internally
|
|
201
|
+
- **"Selected Language (Localized)"** → `agent_prompt_language: "localized"`
|
|
202
|
+
- All sub-agent prompts written in the user-selected language
|
|
203
|
+
- Recommended for local teams, local documentation, and native language efficiency
|
|
204
|
+
- Project-manager receives prompts in selected language (e.g., Korean, Japanese)
|
|
205
|
+
|
|
206
|
+
**Q3 (사용자 닉네임)**:
|
|
207
|
+
- Custom nickname stored as: `user.nickname: "GOOS"` (or custom input)
|
|
208
|
+
|
|
209
|
+
#### 0.1.3 팀 모드 추가 배치: GitHub 설정 & Git 워크플로우 선택 (팀 모드만)
|
|
210
|
+
|
|
211
|
+
**조건**: `config.json`에서 `"mode": "team"` 감지 시 실행
|
|
212
|
+
|
|
213
|
+
**배치 구성**: 2개 질문 (1회 호출로 통합)
|
|
214
|
+
|
|
215
|
+
**Example AskUserQuestion Call**:
|
|
216
|
+
```python
|
|
217
|
+
AskUserQuestion(
|
|
218
|
+
questions=[
|
|
219
|
+
{
|
|
220
|
+
"question": "[Team Mode] Is 'Automatically delete head branches' enabled in your GitHub repository settings?",
|
|
221
|
+
"header": "GitHub Branch Settings",
|
|
222
|
+
"multiSelect": false,
|
|
223
|
+
"options": [
|
|
224
|
+
{
|
|
225
|
+
"label": "✅ Yes, already enabled",
|
|
226
|
+
"description": "PR merge 후 자동으로 원격 브랜치 삭제됨"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"label": "❌ No, not enabled (Recommended: Enable)",
|
|
230
|
+
"description": "Settings → General → '자동 삭제' 체크박스 확인 필요"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"label": "🤔 Not sure / Need to check",
|
|
234
|
+
"description": "GitHub Settings → General 확인 후 다시 진행"
|
|
235
|
+
}
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"question": "[Team Mode] Which Git workflow should we use when creating SPEC documents?",
|
|
240
|
+
"header": "SPEC Git Workflow",
|
|
241
|
+
"multiSelect": false,
|
|
242
|
+
"options": [
|
|
243
|
+
{
|
|
244
|
+
"label": "📋 Feature Branch + PR",
|
|
245
|
+
"description": "매 SPEC마다 feature 브랜치 생성 → PR 리뷰 → develop 병합. 팀 협업과 코드 리뷰에 최적"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"label": "🔄 Direct Commit to Develop",
|
|
249
|
+
"description": "브랜치 생성 없이 develop에 직접 커밋. 빠른 프로토타이핑과 단순 워크플로우에 최적"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"label": "🤔 Decide per SPEC",
|
|
253
|
+
"description": "SPEC 생성 시마다 매번 선택. 유연성이 높지만 매번 결정 필요"
|
|
254
|
+
}
|
|
255
|
+
]
|
|
256
|
+
}
|
|
257
|
+
]
|
|
258
|
+
)
|
|
118
259
|
```
|
|
119
260
|
|
|
120
|
-
|
|
121
|
-
- **English** (en) — All dialogs and documentation in English
|
|
122
|
-
- **한국어** (ko) — All dialogs and documentation in Korean
|
|
123
|
-
- **日本語** (ja) — All dialogs and documentation in Japanese
|
|
124
|
-
- **中文** (zh) — All dialogs and documentation in Chinese
|
|
125
|
-
- **Other** — User can specify custom language (e.g., "Español", "Français", "Deutsch")
|
|
261
|
+
**응답 처리**:
|
|
126
262
|
|
|
127
|
-
|
|
263
|
+
**Q1 (GitHub 설정)**:
|
|
264
|
+
- **"Yes, already enabled"** → `auto_delete_branches: true` 저장
|
|
265
|
+
- **"No, not enabled"** → `auto_delete_branches: false` + 권장사항 저장
|
|
266
|
+
- **"Not sure"** → `auto_delete_branches: null` + 경고 메시지
|
|
128
267
|
|
|
129
|
-
|
|
268
|
+
**Q2 (Git 워크플로우)**:
|
|
269
|
+
- **"Feature Branch + PR"** → `spec_git_workflow: "feature_branch"` 저장
|
|
270
|
+
- `/alfred:1-plan` 실행 시 자동으로 feature 브랜치 생성
|
|
271
|
+
- git-manager가 PR 기반 워크플로우 적용
|
|
272
|
+
- **"Direct Commit to Develop"** → `spec_git_workflow: "develop_direct"` 저장
|
|
273
|
+
- `/alfred:1-plan` 실행 시 develop 브랜치에 직접 커밋
|
|
274
|
+
- 브랜치 생성 과정 생략
|
|
275
|
+
- **"Decide per SPEC"** → `spec_git_workflow: "per_spec"` 저장
|
|
276
|
+
- `/alfred:1-plan` 실행 시마다 git-manager가 사용자에게 선택 요청
|
|
130
277
|
|
|
278
|
+
**User Response Example**:
|
|
279
|
+
```
|
|
280
|
+
Selected Language: 🇰🇷 한국어
|
|
281
|
+
Selected Nickname: GOOS (typed via "Other" option)
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
### 0.1.4 Domain Selection (Optional - All Modes)
|
|
287
|
+
|
|
288
|
+
**Purpose**: Identify project domains to activate domain-expert agents for specialized guidance.
|
|
289
|
+
|
|
290
|
+
**When to ask**: After language/nickname/GitHub settings complete
|
|
291
|
+
|
|
292
|
+
**Batched Design**: Domain selection integrated into initial batch OR asked separately based on user preference
|
|
293
|
+
|
|
294
|
+
**Example AskUserQuestion Call**:
|
|
295
|
+
```python
|
|
296
|
+
AskUserQuestion(
|
|
297
|
+
questions=[
|
|
298
|
+
{
|
|
299
|
+
"question": "Which domains does your project involve? (Select all that apply)",
|
|
300
|
+
"header": "Project Domains",
|
|
301
|
+
"multiSelect": true,
|
|
302
|
+
"options": [
|
|
303
|
+
{
|
|
304
|
+
"label": "🎨 Frontend",
|
|
305
|
+
"description": "React, Vue, Angular, Next.js, Nuxt, SvelteKit, Astro, Remix, SolidJS"
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"label": "⚙️ Backend",
|
|
309
|
+
"description": "FastAPI, Flask, Django, Express, Fastify, NestJS, Spring Boot, Gin, Axum"
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"label": "🚀 DevOps",
|
|
313
|
+
"description": "Railway, Vercel, Docker, Kubernetes, AWS, GCP, Azure, CI/CD"
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"label": "🗄️ Database",
|
|
317
|
+
"description": "PostgreSQL, MySQL, MongoDB, Redis, database design and optimization"
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"label": "📊 Data Science",
|
|
321
|
+
"description": "Data analysis, machine learning, data pipelines, notebooks"
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"label": "📱 Mobile",
|
|
325
|
+
"description": "React Native, Flutter, iOS, Android app development"
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"label": "⚡ Skip",
|
|
329
|
+
"description": "No domain selection (can add later via /alfred:1-plan)"
|
|
330
|
+
}
|
|
331
|
+
]
|
|
332
|
+
}
|
|
333
|
+
]
|
|
334
|
+
)
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Response Processing**:
|
|
131
338
|
```json
|
|
132
339
|
{
|
|
133
|
-
"
|
|
134
|
-
|
|
135
|
-
|
|
340
|
+
"stack": {
|
|
341
|
+
"selected_domains": ["frontend", "backend"],
|
|
342
|
+
"domain_selection_date": "2025-10-23T12:34:56Z"
|
|
343
|
+
}
|
|
136
344
|
}
|
|
137
345
|
```
|
|
138
346
|
|
|
139
|
-
|
|
140
|
-
- Passed to all sub-agents as a context parameter
|
|
141
|
-
- Stored in `.moai/config.json` under `language` field
|
|
142
|
-
- Used to generate all documentation in the selected language
|
|
143
|
-
- Displayed in CLAUDE.md under "## Project Information"
|
|
347
|
+
**Hint to User**: "You can always modify domains later during `/alfred:1-plan` when creating SPECs"
|
|
144
348
|
|
|
145
|
-
|
|
349
|
+
**Domain Expert Activation**:
|
|
350
|
+
- Selected domains stored in `.moai/config.json`
|
|
351
|
+
- Domain-expert agents activated during `/alfred:1-plan` (automatic keyword detection)
|
|
352
|
+
- Domain-expert agents available as advisors during `/alfred:2-run`
|
|
353
|
+
- Domain-specific sync routing enabled in `/alfred:3-sync`
|
|
146
354
|
|
|
147
|
-
|
|
355
|
+
---
|
|
148
356
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
357
|
+
### 0.2 사용자 정보 저장
|
|
358
|
+
|
|
359
|
+
Alfred가 선택된 언어, 닉네임, 그리고 팀 모드 설정을 다음과 같이 저장합니다:
|
|
360
|
+
|
|
361
|
+
#### 0.2.1 기본 정보 저장 (항상) - 에이전트 프롬프트 언어 추가
|
|
362
|
+
|
|
363
|
+
```json
|
|
364
|
+
{
|
|
365
|
+
"language": {
|
|
366
|
+
"conversation_language": "ko",
|
|
367
|
+
"conversation_language_name": "한국어",
|
|
368
|
+
"agent_prompt_language": "localized",
|
|
369
|
+
"agent_prompt_language_description": "All sub-agent prompts written in the selected language (localized)"
|
|
370
|
+
},
|
|
371
|
+
"user": {
|
|
372
|
+
"nickname": "GOOS",
|
|
373
|
+
"selected_at": "2025-10-23T12:34:56Z"
|
|
374
|
+
},
|
|
375
|
+
"stack": {
|
|
376
|
+
"selected_domains": ["frontend", "backend"],
|
|
377
|
+
"domain_selection_date": "2025-10-23T12:34:56Z"
|
|
378
|
+
}
|
|
379
|
+
}
|
|
153
380
|
```
|
|
154
381
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
382
|
+
**에이전트 프롬프트 언어 옵션**:
|
|
383
|
+
|
|
384
|
+
- **`"english"`** (Global Standard) - **💰 Claude Pro $20 사용자 추천**:
|
|
385
|
+
- All sub-agent prompts and internal communication in English
|
|
386
|
+
- Best for: International teams, global collaboration, code consistency
|
|
387
|
+
- Impact: Project-manager, spec-builder, code-builder all use English task prompts
|
|
388
|
+
- **Cost Benefit**: Reduces token usage by ~15-20% compared to non-English prompts
|
|
389
|
+
- English prompts are more efficient and use fewer tokens
|
|
390
|
+
- Significant cost savings for continuous API usage
|
|
391
|
+
- Example: 100,000 tokens in English ≈ 115,000-120,000 tokens in Korean/Japanese
|
|
159
392
|
|
|
160
|
-
|
|
393
|
+
- **`"localized"`** (Localized - Default for non-English):
|
|
394
|
+
- All sub-agent prompts and internal communication in selected language
|
|
395
|
+
- Best for: Local teams, native language efficiency, culturally-specific guidance
|
|
396
|
+
- Impact: Project-manager, spec-builder, code-builder all use localized task prompts
|
|
397
|
+
- Note: Uses ~15-20% more tokens due to language characteristics
|
|
161
398
|
|
|
162
|
-
|
|
399
|
+
#### 0.2.2 GitHub & Git 워크플로우 설정 저장 (팀 모드만)
|
|
163
400
|
|
|
401
|
+
**팀 모드 감지 시 추가 저장 - Feature Branch + PR 선택 시**:
|
|
164
402
|
```json
|
|
165
403
|
{
|
|
166
|
-
"
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
404
|
+
"github": {
|
|
405
|
+
"auto_delete_branches": true,
|
|
406
|
+
"spec_git_workflow": "feature_branch",
|
|
407
|
+
"checked_at": "2025-10-23T12:34:56Z",
|
|
408
|
+
"workflow_recommendation": "Feature branch를 사용한 PR 기반 협업 워크플로우. 매 SPEC마다 feature/spec-* 브랜치 생성, PR 리뷰 후 develop 병합"
|
|
409
|
+
}
|
|
170
410
|
}
|
|
171
411
|
```
|
|
172
412
|
|
|
413
|
+
**또는 - Direct Commit to Develop 선택 시**:
|
|
414
|
+
```json
|
|
415
|
+
{
|
|
416
|
+
"github": {
|
|
417
|
+
"auto_delete_branches": false,
|
|
418
|
+
"spec_git_workflow": "develop_direct",
|
|
419
|
+
"checked_at": "2025-10-23T12:34:56Z",
|
|
420
|
+
"workflow_recommendation": "develop 브랜치에 직접 커밋하는 단순 워크플로우. 브랜치 생성 과정 생략, 빠른 개발 속도"
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
**또는 - Decide per SPEC 선택 시**:
|
|
426
|
+
```json
|
|
427
|
+
{
|
|
428
|
+
"github": {
|
|
429
|
+
"auto_delete_branches": true,
|
|
430
|
+
"spec_git_workflow": "per_spec",
|
|
431
|
+
"checked_at": "2025-10-23T12:34:56Z",
|
|
432
|
+
"workflow_recommendation": "SPEC 생성 시마다 워크플로우 선택. /alfred:1-plan 실행 시 git-manager가 선택 요청"
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
#### 0.2.3 저장된 정보 활용
|
|
438
|
+
|
|
173
439
|
이 정보는:
|
|
174
440
|
- 모든 sub-agents 에게 컨텍스트 파라미터로 전달됨
|
|
175
|
-
- `.moai/config.json` 의 `user` 필드에 저장됨
|
|
176
|
-
- CLAUDE.md의 `{{USER_NICKNAME}}` 변수로 치환됨
|
|
441
|
+
- `.moai/config.json` 의 `language`, `user`, `github` 필드에 저장됨
|
|
442
|
+
- CLAUDE.md의 `{{CONVERSATION_LANGUAGE}}` 및 `{{USER_NICKNAME}}` 변수로 치환됨
|
|
177
443
|
- 모든 Alfred 대화에서 사용됨
|
|
444
|
+
- **팀 모드**: git-manager가 다음 워크플로우를 자동으로 적용:
|
|
445
|
+
- **`spec_git_workflow: "feature_branch"`**: `/alfred:1-plan` 실행 시 feature/spec-* 브랜치 생성, PR 기반 리뷰 프로세스 적용
|
|
446
|
+
- **`spec_git_workflow: "develop_direct"`**: `/alfred:1-plan` 실행 시 develop 브랜치에 직접 커밋, 브랜치 생성 과정 생략
|
|
447
|
+
- **`spec_git_workflow: "per_spec"`**: `/alfred:1-plan` 실행 시마다 사용자에게 워크플로우 선택 요청
|
|
178
448
|
|
|
179
|
-
|
|
180
|
-
```
|
|
181
|
-
|
|
449
|
+
**설정 완료 출력 예시**:
|
|
450
|
+
```markdown
|
|
451
|
+
✅ 초기 설정 완료!
|
|
452
|
+
|
|
453
|
+
언어: 한국어 (ko)
|
|
454
|
+
닉네임: GOOS
|
|
182
455
|
|
|
183
|
-
이제 프로젝트 환경 분석으로 진행하겠습니다...
|
|
456
|
+
이제 GOOS님의 프로젝트 환경 분석으로 진행하겠습니다...
|
|
184
457
|
```
|
|
185
458
|
|
|
186
459
|
### 0.3 STEP 1로 전환
|
|
@@ -192,16 +465,6 @@ Alfred가 선택된 닉네임을 다음과 같이 저장합니다:
|
|
|
192
465
|
- 생성된 문서 (product.md, structure.md, tech.md)가 선택된 언어로 작성됨
|
|
193
466
|
- CLAUDE.md가 선택된 언어와 사용자 닉네임을 표시함
|
|
194
467
|
|
|
195
|
-
**한국어 선택 시 출력 예시**:
|
|
196
|
-
```markdown
|
|
197
|
-
✅ 설정 완료!
|
|
198
|
-
|
|
199
|
-
언어: 한국어 (ko)
|
|
200
|
-
닉네임: GOOS
|
|
201
|
-
|
|
202
|
-
이제 GOOS님의 프로젝트 환경 분석으로 진행하겠습니다...
|
|
203
|
-
```
|
|
204
|
-
|
|
205
468
|
---
|
|
206
469
|
|
|
207
470
|
## 🚀 STEP 1: Environmental analysis and interview plan development
|
|
@@ -225,9 +488,9 @@ grep "optimized" .moai/config.json
|
|
|
225
488
|
**Backup existence conditions**:
|
|
226
489
|
- `.moai-backups/` directory exists
|
|
227
490
|
- `.moai/project/*.md` file exists in the latest backup folder
|
|
228
|
-
-
|
|
491
|
+
- User's existing project files can be merged (regardless of optimized flag)
|
|
229
492
|
|
|
230
|
-
**Select user if backup exists**
|
|
493
|
+
**Select user if backup exists**
|
|
231
494
|
Call `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` to display a TUI with the following options:
|
|
232
495
|
- **Merge**: Merge backup contents and latest template (recommended)
|
|
233
496
|
- **New**: Ignore the backup and start a new interview
|
|
@@ -238,12 +501,12 @@ Call `AskUserQuestion tool (documented in moai-alfred-interactive-questions skil
|
|
|
238
501
|
- **"Create new"** → Proceed to Phase 1.2 (Project environment analysis) (existing process)
|
|
239
502
|
- **"Skip"** → End task
|
|
240
503
|
|
|
241
|
-
**No backup
|
|
504
|
+
**No backup**:
|
|
242
505
|
- Proceed directly to Phase 1.2 (project environment analysis)
|
|
243
506
|
|
|
244
507
|
---
|
|
245
508
|
|
|
246
|
-
### 1.1 Backup merge workflow (when user selects
|
|
509
|
+
### 1.1 Backup merge workflow (when user selects "Merge")
|
|
247
510
|
|
|
248
511
|
**Purpose**: Restore only user customizations while maintaining the latest template structure.
|
|
249
512
|
|
|
@@ -391,7 +654,7 @@ Set optimization flags after the merge is complete:
|
|
|
391
654
|
- Monolingual vs. hybrid vs. microservice
|
|
392
655
|
- Code base size estimation
|
|
393
656
|
|
|
394
|
-
### 1.3 Establish interview strategy (when user selects
|
|
657
|
+
### 1.3 Establish interview strategy (when user selects "New")
|
|
395
658
|
|
|
396
659
|
**Select question tree by project type**:
|
|
397
660
|
|
|
@@ -406,7 +669,7 @@ Set optimization flags after the merge is complete:
|
|
|
406
669
|
- **Technical Questions**: Language/Framework, Quality Policy, Deployment Strategy
|
|
407
670
|
- **Governance**: Security Requirements, Traceability Strategy (Optional)
|
|
408
671
|
|
|
409
|
-
### 1.4 Generate Interview Plan Report (when user selects
|
|
672
|
+
### 1.4 Generate Interview Plan Report (when user selects "Create New")
|
|
410
673
|
|
|
411
674
|
**Format of plan to be presented to users**:
|
|
412
675
|
|
|
@@ -438,7 +701,7 @@ Set optimization flags after the merge is complete:
|
|
|
438
701
|
|
|
439
702
|
---
|
|
440
703
|
**Approval Request**: Would you like to proceed with the interview using the above plan?
|
|
441
|
-
(Choose
|
|
704
|
+
(Choose "Proceed," "Modify [Content]," or "Abort")
|
|
442
705
|
```
|
|
443
706
|
|
|
444
707
|
### 1.5 Wait for user approval (moai-alfred-interactive-questions) (when user selects "New")
|
|
@@ -455,7 +718,7 @@ After Alfred receives the project-manager's interview plan report, uses `AskUser
|
|
|
455
718
|
|
|
456
719
|
---
|
|
457
720
|
|
|
458
|
-
## 🚀 STEP 2: Execute project initialization (after user approves
|
|
721
|
+
## 🚀 STEP 2: Execute project initialization (after user approves "New")
|
|
459
722
|
|
|
460
723
|
**Note**: This step will only be executed if the user selects **"New"**.
|
|
461
724
|
- When selecting "Merge": End the task in Phase 1.1 (Merge Backups)
|
|
@@ -471,44 +734,85 @@ Alfred starts project initialization by calling the project-manager agent with t
|
|
|
471
734
|
**Parameters passed to project-manager**:
|
|
472
735
|
- **conversation_language** (from STEP 0): Language code selected by user (e.g., "ko", "en", "ja", "zh")
|
|
473
736
|
- **language_name** (from STEP 0): Display name of selected language (e.g., "Korean", "English")
|
|
737
|
+
- **agent_prompt_language** (from STEP 0.1.2) - **NEW**:
|
|
738
|
+
- `"english"` = All sub-agent prompts in English (Global Standard)
|
|
739
|
+
- `"localized"` = All sub-agent prompts in selected conversation_language (Localized)
|
|
474
740
|
- Detected Languages: [Language List from codebase detection]
|
|
475
741
|
- Project Type: [New/Existing]
|
|
476
742
|
- Existing Document Status: [Existence/Absence]
|
|
477
743
|
- Approved Interview Plan: [Plan Summary]
|
|
744
|
+
- **Team Mode Git Workflow** (from STEP 0.1.3):
|
|
745
|
+
- `spec_git_workflow: "feature_branch" | "develop_direct" | "per_spec"` (팀 모드만)
|
|
478
746
|
|
|
479
747
|
**Execution**:
|
|
480
748
|
```
|
|
481
749
|
Call the Task tool:
|
|
482
750
|
- subagent_type: "project-manager"
|
|
483
751
|
- description: "Initialize project with conversation language support"
|
|
484
|
-
- prompt: """
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
-
|
|
488
|
-
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
-
|
|
496
|
-
- structure.md
|
|
497
|
-
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
752
|
+
- prompt: """당신은 project-manager 에이전트입니다.
|
|
753
|
+
|
|
754
|
+
언어 설정:
|
|
755
|
+
- 대화_언어: {{CONVERSATION_LANGUAGE}} (모든 대화, 문서에 사용)
|
|
756
|
+
- 언어명: {{CONVERSATION_LANGUAGE_NAME}}
|
|
757
|
+
- 에이전트_프롬프트_언어: {{AGENT_PROMPT_LANGUAGE}} (내부 sub-agent 통신 언어)
|
|
758
|
+
|
|
759
|
+
에이전트 프롬프트 언어에 따른 작업 방식:
|
|
760
|
+
|
|
761
|
+
1. **agent_prompt_language = "english"** (Global Standard):
|
|
762
|
+
- 당신(project-manager)은 **영어**로 사고하고 작업합니다
|
|
763
|
+
- 모든 내부 분석과 계획을 영어로 진행합니다
|
|
764
|
+
- 생성된 product.md, structure.md, tech.md는 **{{CONVERSATION_LANGUAGE}}**로 작성합니다
|
|
765
|
+
- Sub-agent들(spec-builder 등)에게 전달하는 프롬프트는 **영어**입니다
|
|
766
|
+
|
|
767
|
+
2. **agent_prompt_language = "localized"** (Localized):
|
|
768
|
+
- 당신(project-manager)은 **{{CONVERSATION_LANGUAGE}}**로 사고하고 작업합니다
|
|
769
|
+
- 모든 내부 분석과 계획을 {{CONVERSATION_LANGUAGE}}로 진행합니다
|
|
770
|
+
- 생성된 product.md, structure.md, tech.md는 **{{CONVERSATION_LANGUAGE}}**로 작성합니다
|
|
771
|
+
- Sub-agent들(spec-builder 등)에게 전달하는 프롬프트도 **{{CONVERSATION_LANGUAGE}}**입니다
|
|
772
|
+
|
|
773
|
+
중요: 대화_언어(conversation_language)와 에이전트_프롬프트_언어(agent_prompt_language)는 다를 수 있습니다!
|
|
774
|
+
- 대화_언어는 **사용자와의 대화**, **생성 문서**에 사용
|
|
775
|
+
- 에이전트_프롬프트_언어는 **sub-agents 통신**, **내부 prompt**에 사용
|
|
776
|
+
|
|
777
|
+
GIT 워크플로우 설정 (팀 모드):
|
|
778
|
+
- spec_git_workflow: [feature_branch | develop_direct | per_spec]
|
|
779
|
+
- "feature_branch": feature/spec-* 브랜치 생성, PR 기반 리뷰, develop 병합
|
|
780
|
+
- "develop_direct": develop에 직접 커밋, 브랜치 생성 안 함
|
|
781
|
+
- "per_spec": SPEC별로 사용자에게 물어봄 (/alfred:1-plan 실행 중)
|
|
782
|
+
- 참고: 이 값을 .moai/config.json github.spec_git_workflow에 저장하여 git-manager가 참조하도록
|
|
783
|
+
|
|
784
|
+
프로젝트_타입: [new|existing]
|
|
785
|
+
감지된_언어들: [감지된 코드베이스 언어들]
|
|
786
|
+
|
|
787
|
+
중요 지시사항:
|
|
788
|
+
모든 인터뷰와 생성된 문서는 대화_언어(conversation_language)로 작성되어야 합니다:
|
|
789
|
+
- product.md: {{CONVERSATION_LANGUAGE}}로 생성
|
|
790
|
+
- structure.md: {{CONVERSATION_LANGUAGE}}로 생성
|
|
791
|
+
- tech.md: {{CONVERSATION_LANGUAGE}}로 생성
|
|
792
|
+
|
|
793
|
+
conversation_language가 'ko'인 경우: 모든 설명 내용을 한국어로
|
|
794
|
+
conversation_language가 'ja'인 경우: 모든 설명 내용을 일본어로
|
|
795
|
+
다른 언어인 경우: 지정된 언어를 따릅니다
|
|
796
|
+
|
|
797
|
+
프로젝트 초기화 후, 다음과 같이 .moai/config.json 업데이트:
|
|
504
798
|
{
|
|
505
799
|
"language": {
|
|
506
800
|
"conversation_language": "{{CONVERSATION_LANGUAGE}}",
|
|
507
|
-
"conversation_language_name": "{{CONVERSATION_LANGUAGE_NAME}}"
|
|
801
|
+
"conversation_language_name": "{{CONVERSATION_LANGUAGE_NAME}}",
|
|
802
|
+
"agent_prompt_language": "{{AGENT_PROMPT_LANGUAGE}}"
|
|
803
|
+
},
|
|
804
|
+
"github": {
|
|
805
|
+
"spec_git_workflow": "[feature_branch|develop_direct|per_spec]"
|
|
508
806
|
}
|
|
509
807
|
}
|
|
510
808
|
|
|
511
|
-
|
|
809
|
+
스킬 호출:
|
|
810
|
+
필요 시 명시적 Skill() 호출 사용:
|
|
811
|
+
- Skill("moai-alfred-language-detection") - 코드베이스 언어 감지
|
|
812
|
+
- Skill("moai-foundation-langs") - 다국어 프로젝트 설정
|
|
813
|
+
|
|
814
|
+
작업: 프로젝트 인터뷰를 진행하고 product/structure/tech.md 문서를 생성/업데이트합니다.
|
|
815
|
+
에이전트_프롬프트_언어 설정에 따라 sub-agent들과의 통신 언어를 결정합니다."""
|
|
512
816
|
```
|
|
513
817
|
|
|
514
818
|
**Outcome**: The project-manager agent conducts structured interviews entirely in the selected language and creates/updates product/structure/tech.md documents in that language.
|
|
@@ -521,7 +825,7 @@ After the project-manager has finished creating the document, **Alfred can optio
|
|
|
521
825
|
|
|
522
826
|
| Conditions | Automatic selection Skill | Purpose |
|
|
523
827
|
| ------------------------------------ | ---------------------------- | -------------------------------------- |
|
|
524
|
-
| User Requests
|
|
828
|
+
| User Requests "Quality Verification" | moai-alfred-trust-validation | Initial project structure verification |
|
|
525
829
|
|
|
526
830
|
**Execution flow** (optional):
|
|
527
831
|
```
|
|
@@ -557,24 +861,24 @@ After the project-manager has finished creating the document, **Alfred can optio
|
|
|
557
861
|
**Interview Flow**:
|
|
558
862
|
|
|
559
863
|
1. **Product Discovery** (create product.md)
|
|
560
|
-
- Define core mission (
|
|
561
|
-
- Identify key user base (
|
|
562
|
-
- Identify key problems to solve (
|
|
563
|
-
- Summary of differences and strengths (
|
|
564
|
-
- Setting success indicators (
|
|
864
|
+
- Define core mission (DOC:MISSION-001)
|
|
865
|
+
- Identify key user base (SPEC:USER-001)
|
|
866
|
+
- Identify key problems to solve (SPEC:PROBLEM-001)
|
|
867
|
+
- Summary of differences and strengths (DOC:STRATEGY-001)
|
|
868
|
+
- Setting success indicators (SPEC:SUCCESS-001)
|
|
565
869
|
|
|
566
870
|
2. **Structure Blueprint** (create structure.md)
|
|
567
|
-
- Selection of architecture strategy (
|
|
568
|
-
- Division of responsibilities by module (
|
|
569
|
-
- External system integration plan (
|
|
570
|
-
- Define traceability strategy (
|
|
871
|
+
- Selection of architecture strategy (DOC:ARCHITECTURE-001)
|
|
872
|
+
- Division of responsibilities by module (DOC:MODULES-001)
|
|
873
|
+
- External system integration plan (DOC:INTEGRATION-001)
|
|
874
|
+
- Define traceability strategy (DOC:TRACEABILITY-001)
|
|
571
875
|
|
|
572
876
|
3. **Tech Stack Mapping** (written by tech.md)
|
|
573
|
-
- Select language & runtime (
|
|
574
|
-
- Determine core framework (
|
|
575
|
-
- Set quality gate (
|
|
576
|
-
- Define security policy (
|
|
577
|
-
- Plan distribution channels (
|
|
877
|
+
- Select language & runtime (DOC:STACK-001)
|
|
878
|
+
- Determine core framework (DOC:FRAMEWORK-001)
|
|
879
|
+
- Set quality gate (DOC:QUALITY-001)
|
|
880
|
+
- Define security policy (DOC:SECURITY-001)
|
|
881
|
+
- Plan distribution channels (DOC:DEPLOY-001)
|
|
578
882
|
|
|
579
883
|
**Automatically generate config.json**:
|
|
580
884
|
```json
|
|
@@ -681,7 +985,7 @@ Based on the collected information, it is reflected in three major documents:
|
|
|
681
985
|
- Project mission extracted from existing README/document
|
|
682
986
|
- Main user base and scenario inferred from code
|
|
683
987
|
- Backtracking of core problem to be solved
|
|
684
|
-
- Preservation of existing assets in
|
|
988
|
+
- Preservation of existing assets in "Legacy Context"
|
|
685
989
|
|
|
686
990
|
2. Contents reflected in **structure.md**
|
|
687
991
|
- Identified actual directory structure
|
|
@@ -698,7 +1002,7 @@ Based on the collected information, it is reflected in three major documents:
|
|
|
698
1002
|
|
|
699
1003
|
**Preservation Policy**:
|
|
700
1004
|
- Supplement only the missing parts without overwriting existing documents
|
|
701
|
-
- Preserve conflicting content in the
|
|
1005
|
+
- Preserve conflicting content in the "Legacy Context" section
|
|
702
1006
|
- Mark items needing improvement with @CODE and TODO tags
|
|
703
1007
|
|
|
704
1008
|
**Example Final Report**:
|
|
@@ -797,7 +1101,7 @@ Alfred only calls the trust-checker agent to perform project initial structural
|
|
|
797
1101
|
❌ **Critical**: Needs fix
|
|
798
1102
|
- Required section missing
|
|
799
1103
|
- config.json syntax error
|
|
800
|
-
- User choice:
|
|
1104
|
+
- User choice: "Revalidate after fix" or "Skip"
|
|
801
1105
|
|
|
802
1106
|
**Skip verification**:
|
|
803
1107
|
- Verification is not run by default
|
|
@@ -824,11 +1128,11 @@ cc-manager selects the required sub-agents and skills based on the briefing.The
|
|
|
824
1128
|
|
|
825
1129
|
| Project requirements (document basis) | Recommended sub-agent/skill | Purpose |
|
|
826
1130
|
| ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
827
|
-
| High quality and coverage goals (
|
|
828
|
-
| Traceability/TAG improvement request (
|
|
1131
|
+
| High quality and coverage goals (product.md:SPEC:SUCCESS-001) | `tdd-implementer`, `moai-essentials-debug`, `moai-essentials-review` | Establishment of RED·GREEN·REFACTOR workflow |
|
|
1132
|
+
| 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 |
|
|
829
1133
|
| Deployment automation/branch strategy required (`structure.md` Architecture/TODO) | `git-manager`, `moai-alfred-git-workflow`, `moai-foundation-git` | Branch Strategy·Commit Policy·PR Automation |
|
|
830
1134
|
| Refactoring legacy modules (`product.md` BACKLOG, `tech.md` TODO) | `implementation-planner`, `moai-essentials-refactor` | Technical Debt Diagnosis and Refactoring Roadmap |
|
|
831
|
-
| Strengthening regulatory/security compliance (
|
|
1135
|
+
| 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 |
|
|
832
1136
|
| 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 |
|
|
833
1137
|
| Data analysis/reporting needs (`product.md` DATA, `tech.md` ANALYTICS) | `implementation-planner`, `moai-domain-data-science`, detected language skills | Data Pipeline·Notebook Job Definition |
|
|
834
1138
|
| 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 |
|
|
@@ -847,9 +1151,9 @@ If multiple conditions are met, the candidates are merged without duplicates and
|
|
|
847
1151
|
|
|
848
1152
|
#### 2.6.2 User confirmation flow
|
|
849
1153
|
|
|
850
|
-
`AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` asks
|
|
1154
|
+
`AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` asks "whether to enable recommended items."
|
|
851
1155
|
- Provides three options: **Install all** / **Install selectively** / **Do not install**.
|
|
852
|
-
Selecting
|
|
1156
|
+
Selecting "Selective Install" presents the list of candidates again as multiple choices, allowing the user to select only the items they need.
|
|
853
1157
|
|
|
854
1158
|
#### 2.6.3 Activation and Recording Steps
|
|
855
1159
|
|
|
@@ -858,9 +1162,9 @@ Selecting “Selective Install” presents the list of candidates again as multi
|
|
|
858
1162
|
- Call `subagent_type: "cc-manager"` with the `Task` tool and include a briefing and user selections in the prompt.
|
|
859
1163
|
- 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.
|
|
860
1164
|
3. **Check for configuration updates**: Review the results reflected by cc-manager.
|
|
861
|
-
- Sub-Agents: Keep the `.claude/agents/alfred/` template active and list it in the `CLAUDE.md`
|
|
862
|
-
- Skills: Check the `.claude/skills/` document and add it to the `CLAUDE.md`
|
|
863
|
-
- Output style: Apply `.claude/output-styles/alfred/` and record the activation in `CLAUDE.md`
|
|
1165
|
+
- Sub-Agents: Keep the `.claude/agents/alfred/` template active and list it in the `CLAUDE.md` "Agents" section.
|
|
1166
|
+
- Skills: Check the `.claude/skills/` document and add it to the `CLAUDE.md` "Skills" section.
|
|
1167
|
+
- Output style: Apply `.claude/output-styles/alfred/` and record the activation in `CLAUDE.md` "Output Styles".
|
|
864
1168
|
4. **Update config.json**
|
|
865
1169
|
```json
|
|
866
1170
|
{
|
|
@@ -873,17 +1177,17 @@ Selecting “Selective Install” presents the list of candidates again as multi
|
|
|
873
1177
|
}
|
|
874
1178
|
```
|
|
875
1179
|
Merge existing properties, if any.
|
|
876
|
-
5. **Final Report**: Add a list of
|
|
1180
|
+
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.
|
|
877
1181
|
|
|
878
1182
|
## Interview guide by project type
|
|
879
1183
|
|
|
880
1184
|
### New project interview area
|
|
881
1185
|
|
|
882
1186
|
**Product Discovery** (product.md)
|
|
883
|
-
- Core mission and value proposition
|
|
884
|
-
- Key user bases and needs
|
|
885
|
-
- 3 key problems to solve
|
|
886
|
-
- Differentiation compared to competing solutions
|
|
1187
|
+
- Core mission and value proposition
|
|
1188
|
+
- Key user bases and needs
|
|
1189
|
+
- 3 key problems to solve
|
|
1190
|
+
- Differentiation compared to competing solutions
|
|
887
1191
|
- Measurable indicators of success
|
|
888
1192
|
|
|
889
1193
|
**Structure Blueprint** (structure.md)
|
|
@@ -931,14 +1235,14 @@ Merge existing properties, if any.
|
|
|
931
1235
|
|
|
932
1236
|
**Error 1**: Project language detection failed
|
|
933
1237
|
```
|
|
934
|
-
Symptom:
|
|
1238
|
+
Symptom: "Language not detected" message
|
|
935
1239
|
Solution: Specify language manually or create language-specific settings file
|
|
936
1240
|
```
|
|
937
1241
|
|
|
938
1242
|
**Error 2**: Conflict with existing document
|
|
939
1243
|
```
|
|
940
1244
|
Symptom: product.md already exists and has different contents
|
|
941
|
-
Solution: Preserve existing contents and add new contents in
|
|
1245
|
+
Solution: Preserve existing contents and add new contents in "Legacy Context" section
|
|
942
1246
|
```
|
|
943
1247
|
|
|
944
1248
|
**Error 3**: Failed to create config.json
|
|
@@ -991,8 +1295,8 @@ This subcommand is executed under the following conditions:
|
|
|
991
1295
|
- Set optimized=true
|
|
992
1296
|
```
|
|
993
1297
|
|
|
994
|
-
4. **Waiting for user approval**
|
|
995
|
-
`AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` asks
|
|
1298
|
+
4. **Waiting for user approval**
|
|
1299
|
+
`AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` asks "Do you want to proceed with template optimization?" and provides the following options.
|
|
996
1300
|
- **Proceed** → Phase 2 execution
|
|
997
1301
|
- **Preview** → Display change details and recheck
|
|
998
1302
|
- **Skip** → keep optimized=false
|
|
@@ -1155,8 +1459,8 @@ Alfred: Skill("moai-alfred-template-generator")
|
|
|
1155
1459
|
**Users can skip Phase 3**:
|
|
1156
1460
|
|
|
1157
1461
|
**Skip condition**:
|
|
1158
|
-
- User explicitly selects
|
|
1159
|
-
-
|
|
1462
|
+
- User explicitly selects "Skip"
|
|
1463
|
+
- "Simple project" when Alfred automatically determines (only basic features required)
|
|
1160
1464
|
|
|
1161
1465
|
**Skip effect**:
|
|
1162
1466
|
- Maintain all 37 skills (no lightweighting)
|
|
@@ -1176,6 +1480,43 @@ After initialization is complete:
|
|
|
1176
1480
|
- **Set Change**: Run `/alfred:0-project` again to update document
|
|
1177
1481
|
- **Template optimization**: Run `/alfred:0-project update` after `moai-adk update`
|
|
1178
1482
|
|
|
1483
|
+
## Final Step
|
|
1484
|
+
|
|
1485
|
+
After project initialization completes, Alfred automatically invokes AskUserQuestion to ask the user what to do next:
|
|
1486
|
+
|
|
1487
|
+
```python
|
|
1488
|
+
AskUserQuestion(
|
|
1489
|
+
questions=[
|
|
1490
|
+
{
|
|
1491
|
+
"question": "프로젝트 초기화가 완료되었습니다. 다음으로 뭘 하시겠습니까?",
|
|
1492
|
+
"header": "다음 단계",
|
|
1493
|
+
"multiSelect": false,
|
|
1494
|
+
"options": [
|
|
1495
|
+
{
|
|
1496
|
+
"label": "📋 스펙 작성 진행",
|
|
1497
|
+
"description": "/alfred:1-plan 실행하여 첫 SPEC 작성"
|
|
1498
|
+
},
|
|
1499
|
+
{
|
|
1500
|
+
"label": "🔍 프로젝트 구조 검토",
|
|
1501
|
+
"description": "생성된 문서 검토 및 수정"
|
|
1502
|
+
},
|
|
1503
|
+
{
|
|
1504
|
+
"label": "🔄 새 세션 시작",
|
|
1505
|
+
"description": "성능 최적화를 위해 /clear 실행"
|
|
1506
|
+
}
|
|
1507
|
+
]
|
|
1508
|
+
}
|
|
1509
|
+
]
|
|
1510
|
+
)
|
|
1511
|
+
```
|
|
1512
|
+
|
|
1513
|
+
**User Responses**:
|
|
1514
|
+
- **📋 스펙 작성 진행**: Proceed to `/alfred:1-plan` for creating first SPEC
|
|
1515
|
+
- **🔍 프로젝트 구조 검토**: Review and modify generated project documents
|
|
1516
|
+
- **🔄 새 세션 시작**: Execute `/clear` to start fresh session (recommended for performance)
|
|
1517
|
+
|
|
1518
|
+
---
|
|
1519
|
+
|
|
1179
1520
|
## Related commands
|
|
1180
1521
|
|
|
1181
1522
|
- `/alfred:1-plan` - Start writing SPEC
|