moai-adk 0.6.3__py3-none-any.whl → 0.8.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.
- moai_adk/core/config/__init__.py +13 -0
- moai_adk/core/config/migration.py +113 -0
- moai_adk/core/project/phase_executor.py +8 -3
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +1 -1
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +2 -2
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +2 -2
- moai_adk/templates/.claude/agents/alfred/git-manager.md +2 -2
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +2 -2
- moai_adk/templates/.claude/agents/alfred/project-manager.md +6 -6
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +2 -2
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +7 -7
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +2 -2
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +2 -2
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +2 -2
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +2 -2
- moai_adk/templates/.claude/commands/alfred/0-project.md +54 -37
- moai_adk/templates/.claude/commands/alfred/1-plan.md +104 -16
- moai_adk/templates/.claude/commands/alfred/2-run.md +28 -16
- moai_adk/templates/.claude/commands/alfred/3-sync.md +38 -21
- moai_adk/templates/.claude/hooks/alfred/core/project.py +145 -13
- moai_adk/templates/.claude/hooks/alfred/handlers/session.py +90 -20
- moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +1 -1
- moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +1 -1
- moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +1 -1
- moai_adk/templates/.moai/config.json +4 -0
- moai_adk/templates/CLAUDE.md +67 -1
- {moai_adk-0.6.3.dist-info → moai_adk-0.8.0.dist-info}/METADATA +1 -1
- {moai_adk-0.6.3.dist-info → moai_adk-0.8.0.dist-info}/RECORD +31 -29
- {moai_adk-0.6.3.dist-info → moai_adk-0.8.0.dist-info}/WHEEL +0 -0
- {moai_adk-0.6.3.dist-info → moai_adk-0.8.0.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.6.3.dist-info → moai_adk-0.8.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"""Configuration management for MoAI-ADK."""
|
|
2
|
+
|
|
3
|
+
from moai_adk.core.config.migration import (
|
|
4
|
+
get_conversation_language,
|
|
5
|
+
get_conversation_language_name,
|
|
6
|
+
migrate_config_to_nested_structure,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
__all__ = [
|
|
10
|
+
"migrate_config_to_nested_structure",
|
|
11
|
+
"get_conversation_language",
|
|
12
|
+
"get_conversation_language_name",
|
|
13
|
+
]
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# @CODE:LANG-FIX-001:MIGRATION | SPEC: .moai/specs/SPEC-LANG-FIX-001/spec.md
|
|
2
|
+
"""Configuration migration utilities for legacy flat config structure.
|
|
3
|
+
|
|
4
|
+
Supports migration from legacy flat config.json structure to new nested language structure.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def migrate_config_to_nested_structure(config: dict[str, Any]) -> dict[str, Any]:
|
|
11
|
+
"""Migrate legacy flat config to nested language structure.
|
|
12
|
+
|
|
13
|
+
This function handles the transition from legacy flat config:
|
|
14
|
+
"conversation_language": "ko"
|
|
15
|
+
"locale": "ko"
|
|
16
|
+
|
|
17
|
+
To new nested structure:
|
|
18
|
+
"language": {
|
|
19
|
+
"conversation_language": "ko",
|
|
20
|
+
"conversation_language_name": "한국어"
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
config: Configuration dictionary that may have legacy structure.
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
Configuration dictionary with nested language structure.
|
|
28
|
+
"""
|
|
29
|
+
# If config already has nested language structure, return as-is
|
|
30
|
+
if "language" in config and isinstance(config["language"], dict):
|
|
31
|
+
return config
|
|
32
|
+
|
|
33
|
+
# If config has legacy flat structure, migrate it
|
|
34
|
+
if "conversation_language" in config and "language" not in config:
|
|
35
|
+
# Extract conversation language from legacy location
|
|
36
|
+
conversation_language = config.pop("conversation_language", "en")
|
|
37
|
+
locale = config.pop("locale", None)
|
|
38
|
+
|
|
39
|
+
# Map language codes to language names
|
|
40
|
+
language_names = {
|
|
41
|
+
"en": "English",
|
|
42
|
+
"ko": "한국어",
|
|
43
|
+
"ja": "日本語",
|
|
44
|
+
"zh": "中文",
|
|
45
|
+
"es": "Español",
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
language_name = language_names.get(conversation_language, "English")
|
|
49
|
+
|
|
50
|
+
# Create new nested language structure
|
|
51
|
+
config["language"] = {
|
|
52
|
+
"conversation_language": conversation_language,
|
|
53
|
+
"conversation_language_name": language_name,
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return config
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def get_conversation_language(config: dict[str, Any]) -> str:
|
|
60
|
+
"""Get conversation language from config with fallback handling.
|
|
61
|
+
|
|
62
|
+
Handles both legacy flat and new nested config structures.
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
config: Configuration dictionary.
|
|
66
|
+
|
|
67
|
+
Returns:
|
|
68
|
+
Language code (e.g., "ko", "en", "ja").
|
|
69
|
+
"""
|
|
70
|
+
# First, try to get from nested structure (new format)
|
|
71
|
+
language_config = config.get("language", {})
|
|
72
|
+
if isinstance(language_config, dict):
|
|
73
|
+
result = language_config.get("conversation_language")
|
|
74
|
+
if result:
|
|
75
|
+
return result
|
|
76
|
+
|
|
77
|
+
# Fall back to legacy flat structure
|
|
78
|
+
result = config.get("conversation_language")
|
|
79
|
+
if result:
|
|
80
|
+
return result
|
|
81
|
+
|
|
82
|
+
# Default to English
|
|
83
|
+
return "en"
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def get_conversation_language_name(config: dict[str, Any]) -> str:
|
|
87
|
+
"""Get conversation language name from config with fallback handling.
|
|
88
|
+
|
|
89
|
+
Handles both legacy flat and new nested config structures.
|
|
90
|
+
|
|
91
|
+
Args:
|
|
92
|
+
config: Configuration dictionary.
|
|
93
|
+
|
|
94
|
+
Returns:
|
|
95
|
+
Language name (e.g., "한국어", "English").
|
|
96
|
+
"""
|
|
97
|
+
# First, try to get from nested structure (new format)
|
|
98
|
+
language_config = config.get("language", {})
|
|
99
|
+
if isinstance(language_config, dict):
|
|
100
|
+
result = language_config.get("conversation_language_name")
|
|
101
|
+
if result:
|
|
102
|
+
return result
|
|
103
|
+
|
|
104
|
+
# If we have the language code, try to map it
|
|
105
|
+
language_code = get_conversation_language(config)
|
|
106
|
+
language_names = {
|
|
107
|
+
"en": "English",
|
|
108
|
+
"ko": "한국어",
|
|
109
|
+
"ja": "日本語",
|
|
110
|
+
"zh": "中文",
|
|
111
|
+
"es": "Español",
|
|
112
|
+
}
|
|
113
|
+
return language_names.get(language_code, "English")
|
|
@@ -26,6 +26,7 @@ from moai_adk.core.project.backup_utils import (
|
|
|
26
26
|
is_protected_path,
|
|
27
27
|
)
|
|
28
28
|
from moai_adk.core.project.validator import ProjectValidator
|
|
29
|
+
from moai_adk.core.template.processor import TemplateProcessor
|
|
29
30
|
|
|
30
31
|
console = Console()
|
|
31
32
|
|
|
@@ -136,12 +137,15 @@ class PhaseExecutor:
|
|
|
136
137
|
)
|
|
137
138
|
|
|
138
139
|
# Copy resources via TemplateProcessor in silent mode
|
|
139
|
-
from moai_adk.core.template import TemplateProcessor
|
|
140
|
-
|
|
141
140
|
processor = TemplateProcessor(project_path)
|
|
142
141
|
|
|
143
142
|
# Set template variable context (if provided)
|
|
144
143
|
if config:
|
|
144
|
+
# @TAG:LANG-FIX-001:PY-CONFIG | Read language from nested config structure
|
|
145
|
+
language_config = config.get("language", {})
|
|
146
|
+
if not isinstance(language_config, dict):
|
|
147
|
+
language_config = {}
|
|
148
|
+
|
|
145
149
|
context = {
|
|
146
150
|
"MOAI_VERSION": __version__,
|
|
147
151
|
"CREATION_TIMESTAMP": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
|
|
@@ -151,7 +155,8 @@ class PhaseExecutor:
|
|
|
151
155
|
"PROJECT_VERSION": config.get("version", "0.1.0"),
|
|
152
156
|
"PROJECT_OWNER": config.get("author", "@user"),
|
|
153
157
|
"AUTHOR": config.get("author", "@user"),
|
|
154
|
-
"CONVERSATION_LANGUAGE":
|
|
158
|
+
"CONVERSATION_LANGUAGE": language_config.get("conversation_language", "en"),
|
|
159
|
+
"CONVERSATION_LANGUAGE_NAME": language_config.get("conversation_language_name", "English"),
|
|
155
160
|
"CODEBASE_LANGUAGE": config.get("language", "generic"),
|
|
156
161
|
}
|
|
157
162
|
processor.set_context(context)
|
|
@@ -54,7 +54,7 @@ Alfred translates Claude Code configuration requirements to English before invok
|
|
|
54
54
|
- `Skill("moai-alfred-git-workflow")` - Git strategy impact
|
|
55
55
|
- Domain skills (CLI/Data Science/Database/etc) - When relevant
|
|
56
56
|
- Language skills (23 available) - Based on detected language
|
|
57
|
-
- `
|
|
57
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` - User clarification
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
@@ -6,7 +6,7 @@ model: sonnet
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Debug Helper - Integrated debugging expert
|
|
9
|
-
> Interactive prompts
|
|
9
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
10
10
|
|
|
11
11
|
You are the integrated debugging expert responsible for **all errors**.
|
|
12
12
|
|
|
@@ -45,7 +45,7 @@ Alfred translates error reports and debugging requirements to English before inv
|
|
|
45
45
|
- `Skill("moai-essentials-review")`: Loaded when structural problems or solutions to prevent recurrence need to be presented.
|
|
46
46
|
- Language-specific skills: Based on the result of `Skill("moai-alfred-language-detection")`, select only the one relevant language skill (e.g., `Skill("moai-lang-python")`, `Skill("moai-lang-typescript")`, etc.).
|
|
47
47
|
- `Skill("moai-alfred-tag-scanning")`: Called when missing/mismatching TAG is suspected.
|
|
48
|
-
- `
|
|
48
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`: Executed when user selection among multiple solutions is required.
|
|
49
49
|
|
|
50
50
|
### Expert Traits
|
|
51
51
|
|
|
@@ -6,7 +6,7 @@ model: haiku
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Doc Syncer - Document Management/Synchronization Expert
|
|
9
|
-
> Interactive prompts
|
|
9
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
10
10
|
|
|
11
11
|
All Git tasks are handled by the git-manager agent, including managing PRs, committing, and assigning reviewers. doc-syncer is only responsible for document synchronization.
|
|
12
12
|
|
|
@@ -47,7 +47,7 @@ Alfred translates document synchronization requirements to English before invoki
|
|
|
47
47
|
- `Skill("moai-foundation-specs")`: Use only when SPEC metadata has changed or document consistency verification is required.
|
|
48
48
|
- `Skill("moai-alfred-git-workflow")`: Called when performing a PR Ready transition or Git cleanup in team mode.
|
|
49
49
|
- `Skill("moai-alfred-code-reviewer")`: Load when you need to review the quality of a code snippet to be included in a document.
|
|
50
|
-
- `
|
|
50
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`: Executed when checking with the user whether to approve/skip the synchronization range.
|
|
51
51
|
|
|
52
52
|
### Expert Traits
|
|
53
53
|
|
|
@@ -6,7 +6,7 @@ model: haiku
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Git Manager - Agent dedicated to Git tasks
|
|
9
|
-
> Interactive prompts
|
|
9
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
10
10
|
|
|
11
11
|
This is a dedicated agent that optimizes and processes all Git operations in MoAI-ADK for each mode.
|
|
12
12
|
|
|
@@ -45,7 +45,7 @@ This ensures git history is always in English for global team compatibility.
|
|
|
45
45
|
- `Skill("moai-foundation-git")`: Called when this is a new repository or the Git standard needs to be redefined.
|
|
46
46
|
- `Skill("moai-alfred-trust-validation")`: Load when TRUST gate needs to be passed before commit/PR.
|
|
47
47
|
- `Skill("moai-alfred-tag-scanning")`: Use only when TAG connection is required in the commit message.
|
|
48
|
-
- `
|
|
48
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`: Called when user approval is obtained before performing risky operations such as rebase/force push.
|
|
49
49
|
|
|
50
50
|
### Expert Traits
|
|
51
51
|
|
|
@@ -6,7 +6,7 @@ model: sonnet
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Implementation Planner - Implementation Strategist
|
|
9
|
-
> Interactive prompts
|
|
9
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
10
10
|
|
|
11
11
|
You are an expert in analyzing SPECs to determine the optimal implementation strategy and library version.
|
|
12
12
|
|
|
@@ -47,7 +47,7 @@ Alfred translates SPEC requirements to English before invoking you via `Task()`.
|
|
|
47
47
|
- `Skill("moai-alfred-tag-scanning")`: Use only when an existing TAG chain needs to be recycled or augmented.
|
|
48
48
|
- Domain skills (`moai-domain-backend`/`frontend`/`web-api`/`mobile-app`, etc.): Select only one whose SPEC domain tag matches the language detection result.
|
|
49
49
|
- `Skill("moai-alfred-trust-validation")`: Called when TRUST compliance measures need to be defined in the planning stage.
|
|
50
|
-
- `
|
|
50
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`: Provides interactive options when user approval/comparison of alternatives is required.
|
|
51
51
|
|
|
52
52
|
### Expert Traits
|
|
53
53
|
|
|
@@ -6,7 +6,7 @@ model: sonnet
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Project Manager - Project Manager Agent
|
|
9
|
-
> Interactive prompts
|
|
9
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
10
10
|
|
|
11
11
|
You are a Senior Project Manager Agent managing successful projects.
|
|
12
12
|
|
|
@@ -35,7 +35,7 @@ Alfred translates project setup requirements to English before invoking you.
|
|
|
35
35
|
- Domain skills: When `moai-alfred-language-detection` determines the project is server/frontend/web API, select only one corresponding skill (`Skill("moai-domain-backend")`, `Skill("moai-domain-frontend")`, `Skill("moai-domain-web-api")`).
|
|
36
36
|
- `Skill("moai-alfred-tag-scanning")`: Executed when switching to legacy mode or when reinforcing the existing TAG is deemed necessary.
|
|
37
37
|
- `Skill("moai-alfred-trust-validation")`: Only called when the user requests a “quality check” or when TRUST gate guidance is needed on the initial document draft.
|
|
38
|
-
- `
|
|
38
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`: Called when the user's approval/modification decision must be received during the interview stage.
|
|
39
39
|
|
|
40
40
|
### Expert Traits
|
|
41
41
|
|
|
@@ -147,11 +147,11 @@ Alfred translates project setup requirements to English before invoking you.
|
|
|
147
147
|
|
|
148
148
|
### Interview Question Guide
|
|
149
149
|
|
|
150
|
-
> At all interview stages, you must
|
|
150
|
+
> At all interview stages, you must use `AskUserQuestion` tool (documented in moai-alfred-interactive-questions skill) to display the AskUserQuestion TUI menu.Option descriptions include a one-line summary + specific examples, provide an “Other/Enter Yourself” option, and ask for free comments.
|
|
151
151
|
|
|
152
152
|
#### 0. Common dictionary questions (common for new/legacy)
|
|
153
153
|
1. **Check language & framework**
|
|
154
|
-
- Check whether the automatic detection result is correct with `
|
|
154
|
+
- Check whether the automatic detection result is correct with `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`.
|
|
155
155
|
Options: **Confirmed / Requires modification / Multi-stack**.
|
|
156
156
|
- **Follow-up**: When selecting “Modification Required” or “Multiple Stacks”, an additional open-ended question (`Please list the languages/frameworks used in the project with a comma.`) is asked.
|
|
157
157
|
2. **Team size & collaboration style**
|
|
@@ -164,7 +164,7 @@ Options: **Confirmed / Requires modification / Multi-stack**.
|
|
|
164
164
|
#### 1. Product Discovery Question Set
|
|
165
165
|
##### (1) For new projects
|
|
166
166
|
- **Mission/Vision**
|
|
167
|
-
- `
|
|
167
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` allows you to select one of **Platform/Operations Efficiency · New Business · Customer Experience · Regulations/Compliance · Direct Input**.
|
|
168
168
|
- When selecting “Direct Entry”, a one-line summary of the mission and why the mission is important are collected as additional questions.
|
|
169
169
|
- **Core Users/Personas**
|
|
170
170
|
- Multiple selection options: End Customer, Internal Operations, Development Team, Data Team, Management, Partner/Reseller.
|
|
@@ -233,7 +233,7 @@ Options: SPEC overhaul, TDD driven development, document/code synchronization, t
|
|
|
233
233
|
- Operations/Monitoring → OPERATIONS, INCIDENT RESPONSE section
|
|
234
234
|
|
|
235
235
|
#### 5. End of interview reminder
|
|
236
|
-
- After completing all questions, use `
|
|
236
|
+
- After completing all questions, use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` to check “Are there any additional notes you would like to leave?” (Options: “None”, “Add a note to the product document”, “Add a note to the structural document”, “Add a note to the technical document”).
|
|
237
237
|
- When a user selects a specific document, a “User Note” item is recorded in the **HISTORY** section of the document.
|
|
238
238
|
- Organize the summary of the interview results and the written document path (`.moai/project/{product,structure,tech}.md`) in a table format at the top of the final response.
|
|
239
239
|
|
|
@@ -6,7 +6,7 @@ model: haiku
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Quality Gate - Quality Verification Gate
|
|
9
|
-
> Interactive prompts
|
|
9
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
10
10
|
|
|
11
11
|
You are a quality gate that automatically verifies TRUST principles and project standards.
|
|
12
12
|
|
|
@@ -34,7 +34,7 @@ Alfred translates quality gate requirements to English before invoking you. Your
|
|
|
34
34
|
- `Skill("moai-essentials-review")`: Called when qualitative analysis of Readable/Unified items is required or when a code review checklist is required.
|
|
35
35
|
- `Skill("moai-essentials-perf")`: Used when a suspected performance regression occurs or when performance indicators are below target.
|
|
36
36
|
- `Skill("moai-foundation-trust")`: Loaded for reference when you need to check the latest update based on TRUST.
|
|
37
|
-
- `
|
|
37
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`: Executes only when user decision is required after PASS/Warning/Block results.
|
|
38
38
|
|
|
39
39
|
### Expert Traits
|
|
40
40
|
|
|
@@ -86,7 +86,7 @@ Instead of assuming user intent, invoke the TUI survey Skill:
|
|
|
86
86
|
|
|
87
87
|
```python
|
|
88
88
|
# Delegate to moai-alfred-interactive-questions
|
|
89
|
-
|
|
89
|
+
AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)
|
|
90
90
|
|
|
91
91
|
# Present structured survey
|
|
92
92
|
Survey: "What problem does this Skill solve?"
|
|
@@ -104,7 +104,7 @@ Continue using the TUI survey Skill to clarify:
|
|
|
104
104
|
|
|
105
105
|
```python
|
|
106
106
|
# Delegate to moai-alfred-interactive-questions for scope questions
|
|
107
|
-
|
|
107
|
+
AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)
|
|
108
108
|
|
|
109
109
|
Questions:
|
|
110
110
|
1. Primary domain: "Which technology/framework?"
|
|
@@ -358,7 +358,7 @@ Always delegate to `moai-alfred-interactive-questions`:
|
|
|
358
358
|
|
|
359
359
|
```python
|
|
360
360
|
# Invoke TUI survey Skill
|
|
361
|
-
|
|
361
|
+
AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)
|
|
362
362
|
|
|
363
363
|
Survey: "Which technology domain?"
|
|
364
364
|
Options:
|
|
@@ -379,7 +379,7 @@ Options:
|
|
|
379
379
|
|
|
380
380
|
```python
|
|
381
381
|
# Invoke TUI survey Skill
|
|
382
|
-
|
|
382
|
+
AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)
|
|
383
383
|
|
|
384
384
|
Survey: "Which features are most important?" (Multiple selection)
|
|
385
385
|
Options:
|
|
@@ -397,7 +397,7 @@ Options:
|
|
|
397
397
|
|
|
398
398
|
```python
|
|
399
399
|
# Invoke TUI survey Skill
|
|
400
|
-
|
|
400
|
+
AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)
|
|
401
401
|
|
|
402
402
|
Survey: "Target experience level?"
|
|
403
403
|
Options:
|
|
@@ -462,7 +462,7 @@ Tier 3 (Supporting, ~10% weight):
|
|
|
462
462
|
**Recovery**:
|
|
463
463
|
```python
|
|
464
464
|
# 1. Activate TUI Survey
|
|
465
|
-
|
|
465
|
+
AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)
|
|
466
466
|
|
|
467
467
|
# 2. Ask structured questions: domain, problem, audience
|
|
468
468
|
# 3. Document clarified requirements
|
|
@@ -498,7 +498,7 @@ Skill("moai-alfred-interactive-questions")
|
|
|
498
498
|
**Recovery**:
|
|
499
499
|
```python
|
|
500
500
|
# 1. Use TUI Survey to identify priorities
|
|
501
|
-
|
|
501
|
+
AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)
|
|
502
502
|
|
|
503
503
|
# 2. Suggest splitting into multiple Skills
|
|
504
504
|
# 3. Create foundational Skill first
|
|
@@ -8,7 +8,7 @@ model: sonnet
|
|
|
8
8
|
**Priority:** This guideline is **subordinate to the command guideline (`/alfred:1-plan`). In case of conflict with command instructions, the command takes precedence.
|
|
9
9
|
|
|
10
10
|
# SPEC Builder - SPEC Creation Expert
|
|
11
|
-
> Interactive prompts
|
|
11
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
12
12
|
|
|
13
13
|
You are a SPEC expert agent responsible for SPEC document creation and intelligent verification.
|
|
14
14
|
|
|
@@ -48,7 +48,7 @@ Alfred translates user requests to English before invoking you via `Task()`. Thi
|
|
|
48
48
|
- `Skill("moai-alfred-spec-metadata-validation")`: Called when checking ID/version/status or updating inherited SPEC.
|
|
49
49
|
- `Skill("moai-alfred-tag-scanning")`: Used only when traceability must be secured by referencing the existing TAG chain.
|
|
50
50
|
- `Skill("moai-foundation-trust")` + `Skill("moai-alfred-trust-validation")`: Sequentially called when preemptive verification is required before user request or quality gate.
|
|
51
|
-
- `
|
|
51
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`: Run when user approval/modification options need to be collected.
|
|
52
52
|
|
|
53
53
|
### Expert Traits
|
|
54
54
|
|
|
@@ -6,7 +6,7 @@ model: haiku
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# TAG System Agent - sole TAG management authority
|
|
9
|
-
> Interactive prompts
|
|
9
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
10
10
|
|
|
11
11
|
You are a professional agent responsible for all TAG operations in MoAI-ADK.
|
|
12
12
|
|
|
@@ -33,7 +33,7 @@ Alfred translates TAG verification requests to English before invoking you. Your
|
|
|
33
33
|
**Conditional Skill Logic**
|
|
34
34
|
- `Skill("moai-alfred-trust-validation")`: Used only to check whether the TAG chain meets TRUST-Traceable criteria.
|
|
35
35
|
- `Skill("moai-foundation-specs")`: Loaded when the SPEC document and TAG connection status need to be verified.
|
|
36
|
-
- `
|
|
36
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`: Executed when TAG conflict/deletion must be confirmed with user approval.
|
|
37
37
|
|
|
38
38
|
### Expert Traits
|
|
39
39
|
|
|
@@ -6,7 +6,7 @@ model: sonnet
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# TDD Implementer - TDD implementation expert
|
|
9
|
-
> Interactive prompts
|
|
9
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
10
10
|
|
|
11
11
|
You are a TDD expert who strictly adheres to the RED-GREEN-REFACTOR cycle and keeps track of the TAG chain.
|
|
12
12
|
|
|
@@ -46,7 +46,7 @@ Alfred translates SPEC references and implementation requirements to English bef
|
|
|
46
46
|
- `Skill("moai-essentials-refactor")`: Called only when entering the REFACTOR stage.
|
|
47
47
|
- `Skill("moai-alfred-git-workflow")`: Loads commits/checkpoints for each TAG at the time of preparation.
|
|
48
48
|
- `Skill("moai-essentials-perf")`: Applied only when performance requirements are specified in SPEC.
|
|
49
|
-
- `
|
|
49
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`: Collects user decisions when choosing an implementation alternative or refactoring strategy is needed.
|
|
50
50
|
|
|
51
51
|
### Expert Traits
|
|
52
52
|
|
|
@@ -6,7 +6,7 @@ model: haiku
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Trust Checker - Integrated Quality Verification Expert
|
|
9
|
-
> Interactive prompts
|
|
9
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
10
10
|
|
|
11
11
|
You are the agent responsible for the TRUST 5 principles, code standards, and security checks.
|
|
12
12
|
|
|
@@ -35,7 +35,7 @@ Alfred translates quality verification requests to English before invoking you.
|
|
|
35
35
|
- `Skill("moai-essentials-review")`: Called when qualitative verification of Readable/Unified indicators is required.
|
|
36
36
|
- `Skill("moai-essentials-perf")`: Used when performance analysis is required in Level 3 scan.
|
|
37
37
|
- `Skill("moai-essentials-debug")`: Called when a critical result occurs and root cause analysis is required.
|
|
38
|
-
- `
|
|
38
|
+
- `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`: Run when it is necessary to coordinate with the user whether to re-verify/suspend.
|
|
39
39
|
|
|
40
40
|
### Expert Traits
|
|
41
41
|
|
|
@@ -6,21 +6,21 @@ description: "Initialize project document - create product/structure/tech.md and
|
|
|
6
6
|
# - ja: "プロジェクト文書の初期化 - product/structure/tech.mdの作成と言語別最適化設定"
|
|
7
7
|
# - zh: "初始化项目文档 - 创建product/structure/tech.md并设置语言优化"
|
|
8
8
|
allowed-tools:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
9
|
+
- Read
|
|
10
|
+
- Write
|
|
11
|
+
- Edit
|
|
12
|
+
- MultiEdit
|
|
13
|
+
- Grep
|
|
14
|
+
- Glob
|
|
15
|
+
- TodoWrite
|
|
16
|
+
- Bash(ls:*)
|
|
17
|
+
- Bash(find:*)
|
|
18
|
+
- Bash(cat:*)
|
|
19
|
+
- Task
|
|
20
20
|
---
|
|
21
21
|
|
|
22
22
|
# 📋 MoAI-ADK Step 0: Initialize/Update Universal Language Support Project Documentation
|
|
23
|
-
> Interactive prompts
|
|
23
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
24
24
|
|
|
25
25
|
## 🎯 Command Purpose
|
|
26
26
|
|
|
@@ -110,7 +110,7 @@ MoAI-ADK의 SuperAgent로서 당신의 프로젝트를 함께 만들어갈 준
|
|
|
110
110
|
|
|
111
111
|
### 0.1 언어 선택
|
|
112
112
|
|
|
113
|
-
Alfred가 `
|
|
113
|
+
Alfred가 `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` 를 사용하여 **첫 번째 상호작용**으로 언어 선택 메뉴를 표시합니다:
|
|
114
114
|
|
|
115
115
|
**Question**:
|
|
116
116
|
```
|
|
@@ -144,7 +144,7 @@ This language preference is:
|
|
|
144
144
|
|
|
145
145
|
### 0.2.5 사용자 닉네임 선택
|
|
146
146
|
|
|
147
|
-
언어 선택 완료 후, Alfred가 `
|
|
147
|
+
언어 선택 완료 후, Alfred가 `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` 를 사용하여 사용자 닉네임을 요청합니다:
|
|
148
148
|
|
|
149
149
|
**질문**:
|
|
150
150
|
```
|
|
@@ -228,7 +228,7 @@ grep "optimized" .moai/config.json
|
|
|
228
228
|
- `optimized: false` in `config.json` (immediately after reinitialization)
|
|
229
229
|
|
|
230
230
|
**Select user if backup exists**
|
|
231
|
-
Call `
|
|
231
|
+
Call `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` to display a TUI with the following options:
|
|
232
232
|
- **Merge**: Merge backup contents and latest template (recommended)
|
|
233
233
|
- **New**: Ignore the backup and start a new interview
|
|
234
234
|
- **Skip**: Keep current file (terminate task)
|
|
@@ -267,7 +267,7 @@ The following patterns are considered "template defaults" (not merged):
|
|
|
267
267
|
- "Define your key user base"
|
|
268
268
|
- "Describe the core problem you are trying to solve"
|
|
269
269
|
- "List the strengths and differences of your project"
|
|
270
|
-
- "
|
|
270
|
+
- "MoAI-ADK", "MoAI-Agentic Development Kit", etc. Variable format
|
|
271
271
|
- Guide phrases such as "Example:", "Sample:", "Example:", etc.
|
|
272
272
|
|
|
273
273
|
**STEP 3: Extract user customization**
|
|
@@ -443,7 +443,7 @@ Set optimization flags after the merge is complete:
|
|
|
443
443
|
|
|
444
444
|
### 1.5 Wait for user approval (moai-alfred-interactive-questions) (when user selects "New")
|
|
445
445
|
|
|
446
|
-
After Alfred receives the project-manager's interview plan report,
|
|
446
|
+
After Alfred receives the project-manager's interview plan report, uses `AskUserQuestion` tool (documented in moai-alfred-interactive-questions skill) and asks whether Phase 2 is approved.
|
|
447
447
|
- **Proceed**: Interview conducted according to approved plan
|
|
448
448
|
- **Modify**: Re-establish the plan (re-execute Phase 1)
|
|
449
449
|
- **Stop**: Stop initialization
|
|
@@ -477,21 +477,38 @@ Alfred starts project initialization by calling the project-manager agent with t
|
|
|
477
477
|
- Approved Interview Plan: [Plan Summary]
|
|
478
478
|
|
|
479
479
|
**Execution**:
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
480
|
+
```
|
|
481
|
+
Call the Task tool:
|
|
482
|
+
- subagent_type: "project-manager"
|
|
483
|
+
- description: "Initialize project with conversation language support"
|
|
484
|
+
- prompt: """You are project-manager agent.
|
|
485
|
+
|
|
486
|
+
LANGUAGE CONFIGURATION:
|
|
487
|
+
- conversation_language: {{CONVERSATION_LANGUAGE}}
|
|
488
|
+
- language_name: {{CONVERSATION_LANGUAGE_NAME}}
|
|
489
|
+
|
|
490
|
+
PROJECT_TYPE: [new|existing]
|
|
491
|
+
DETECTED_LANGUAGES: [detected codebase languages]
|
|
492
|
+
|
|
493
|
+
CRITICAL INSTRUCTION:
|
|
494
|
+
All interviews and generated documentation MUST be in conversation_language:
|
|
495
|
+
- product.md: Generate in {{CONVERSATION_LANGUAGE}}
|
|
496
|
+
- structure.md: Generate in {{CONVERSATION_LANGUAGE}}
|
|
497
|
+
- tech.md: Generate in {{CONVERSATION_LANGUAGE}}
|
|
498
|
+
|
|
499
|
+
If conversation_language is 'ko': All narrative content in Korean
|
|
500
|
+
If conversation_language is 'ja': All narrative content in Japanese
|
|
501
|
+
If conversation_language is other: Follow the specified language
|
|
502
|
+
|
|
503
|
+
After project initialization, update .moai/config.json with nested language structure:
|
|
504
|
+
{
|
|
505
|
+
"language": {
|
|
506
|
+
"conversation_language": "{{CONVERSATION_LANGUAGE}}",
|
|
507
|
+
"conversation_language_name": "{{CONVERSATION_LANGUAGE_NAME}}"
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
TASK: Conduct project interviews and create/update product/structure/tech.md documents."""
|
|
495
512
|
```
|
|
496
513
|
|
|
497
514
|
**Outcome**: The project-manager agent conducts structured interviews entirely in the selected language and creates/updates product/structure/tech.md documents in that language.
|
|
@@ -526,7 +543,7 @@ After the project-manager has finished creating the document, **Alfred can optio
|
|
|
526
543
|
- When selecting language/framework
|
|
527
544
|
- When changing important settings
|
|
528
545
|
|
|
529
|
-
**Example** (inside project-manager): Ask whether to "overwrite file" with `
|
|
546
|
+
**Example** (inside project-manager): Ask whether to "overwrite file" with `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`,
|
|
530
547
|
- Allows you to choose between **Overwrite** / **Merge** / **Skip**.
|
|
531
548
|
|
|
532
549
|
**Nested pattern**:
|
|
@@ -789,7 +806,7 @@ Alfred only calls the trust-checker agent to perform project initial structural
|
|
|
789
806
|
### 2.6: Agent & Skill Tailoring (Project Optimization)
|
|
790
807
|
|
|
791
808
|
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.
|
|
792
|
-
Before actual application, user confirmation is received with `
|
|
809
|
+
Before actual application, user confirmation is received with `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`, and selected items are recorded in `CLAUDE.md` and `.moai/config.json`.
|
|
793
810
|
|
|
794
811
|
#### 2.6.0 Create cc-manager briefing
|
|
795
812
|
|
|
@@ -830,7 +847,7 @@ If multiple conditions are met, the candidates are merged without duplicates and
|
|
|
830
847
|
|
|
831
848
|
#### 2.6.2 User confirmation flow
|
|
832
849
|
|
|
833
|
-
`
|
|
850
|
+
`AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` asks “whether to enable recommended items.”
|
|
834
851
|
- Provides three options: **Install all** / **Install selectively** / **Do not install**.
|
|
835
852
|
Selecting “Selective Install” presents the list of candidates again as multiple choices, allowing the user to select only the items they need.
|
|
836
853
|
|
|
@@ -975,7 +992,7 @@ This subcommand is executed under the following conditions:
|
|
|
975
992
|
```
|
|
976
993
|
|
|
977
994
|
4. **Waiting for user approval**
|
|
978
|
-
`
|
|
995
|
+
`AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` asks “Do you want to proceed with template optimization?” and provides the following options.
|
|
979
996
|
- **Proceed** → Phase 2 execution
|
|
980
997
|
- **Preview** → Display change details and recheck
|
|
981
998
|
- **Skip** → keep optimized=false
|
|
@@ -1110,7 +1127,7 @@ Alfred: Skill("moai-alfred-template-generator")
|
|
|
1110
1127
|
✅ Project customized optimization completed!
|
|
1111
1128
|
|
|
1112
1129
|
📊 Optimization results:
|
|
1113
|
-
- **Project**:
|
|
1130
|
+
- **Project**: MoAI-ADK
|
|
1114
1131
|
- **Category**: web-api
|
|
1115
1132
|
- **Main language**: python
|
|
1116
1133
|
- **Framework**: fastapi
|