moai-adk 0.5.4__py3-none-any.whl → 0.5.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of moai-adk might be problematic. Click here for more details.

Files changed (61) hide show
  1. moai_adk/__init__.py +1 -1
  2. moai_adk/cli/commands/init.py +4 -2
  3. moai_adk/cli/commands/status.py +4 -2
  4. moai_adk/cli/commands/update.py +4 -5
  5. moai_adk/core/project/initializer.py +13 -11
  6. moai_adk/core/project/phase_executor.py +7 -3
  7. moai_adk/core/template/processor.py +60 -1
  8. moai_adk/templates/.claude/agents/alfred/cc-manager.md +8 -0
  9. moai_adk/templates/.claude/agents/alfred/debug-helper.md +18 -0
  10. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +18 -0
  11. moai_adk/templates/.claude/agents/alfred/git-manager.md +38 -2
  12. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +18 -0
  13. moai_adk/templates/.claude/agents/alfred/project-manager.md +6 -0
  14. moai_adk/templates/.claude/agents/alfred/quality-gate.md +6 -0
  15. moai_adk/templates/.claude/agents/alfred/skill-factory.md +8 -0
  16. moai_adk/templates/.claude/agents/alfred/spec-builder.md +17 -0
  17. moai_adk/templates/.claude/agents/alfred/tag-agent.md +7 -1
  18. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +18 -0
  19. moai_adk/templates/.claude/agents/alfred/trust-checker.md +6 -0
  20. moai_adk/templates/.claude/commands/alfred/0-project.md +5 -1
  21. moai_adk/templates/.claude/commands/alfred/1-plan.md +5 -1
  22. moai_adk/templates/.claude/commands/alfred/2-run.md +6 -2
  23. moai_adk/templates/.claude/commands/alfred/3-sync.md +5 -1
  24. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +5 -1
  25. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +5 -1
  26. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +5 -1
  27. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +5 -1
  28. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +30 -273
  29. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +487 -129
  30. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +603 -70
  31. moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +22 -2
  32. moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +22 -2
  33. moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +22 -2
  34. moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +22 -2
  35. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +22 -2
  36. moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +22 -2
  37. moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +22 -2
  38. moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +25 -5
  39. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +152 -547
  40. moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +835 -878
  41. moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +665 -1151
  42. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +138 -427
  43. moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +61 -53
  44. moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +99 -1181
  45. moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +541 -0
  46. moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +622 -0
  47. moai_adk/templates/.moai/config.json +5 -5
  48. moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md +208 -0
  49. moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md +369 -0
  50. moai_adk/templates/.moai/memory/CLAUDE-RULES.md +539 -0
  51. moai_adk/templates/.moai/memory/{development-guide.md → DEVELOPMENT-GUIDE.md} +3 -3
  52. moai_adk/templates/.moai/memory/SKILLS-DESCRIPTION-POLICY.md +218 -0
  53. moai_adk/templates/.moai/memory/config-schema.md +444 -0
  54. moai_adk/templates/CLAUDE.md +149 -845
  55. {moai_adk-0.5.4.dist-info → moai_adk-0.5.6.dist-info}/METADATA +293 -335
  56. {moai_adk-0.5.4.dist-info → moai_adk-0.5.6.dist-info}/RECORD +61 -54
  57. /moai_adk/templates/.moai/memory/{gitflow-protection-policy.md → GITFLOW-PROTECTION-POLICY.md} +0 -0
  58. /moai_adk/templates/.moai/memory/{spec-metadata.md → SPEC-METADATA.md} +0 -0
  59. {moai_adk-0.5.4.dist-info → moai_adk-0.5.6.dist-info}/WHEEL +0 -0
  60. {moai_adk-0.5.4.dist-info → moai_adk-0.5.6.dist-info}/entry_points.txt +0 -0
  61. {moai_adk-0.5.4.dist-info → moai_adk-0.5.6.dist-info}/licenses/LICENSE +0 -0
moai_adk/__init__.py CHANGED
@@ -9,6 +9,6 @@ from importlib.metadata import PackageNotFoundError, version
9
9
  try:
10
10
  __version__ = version("moai-adk")
11
11
  except PackageNotFoundError:
12
- __version__ = "0.4.6-dev"
12
+ __version__ = "0.5.6-dev"
13
13
 
14
14
  __all__ = ["__version__"]
@@ -182,10 +182,12 @@ def init(
182
182
  config_data = json.load(f)
183
183
 
184
184
  # Update version and optimization flags
185
+ if "moai" not in config_data:
186
+ config_data["moai"] = {}
187
+ config_data["moai"]["version"] = __version__
188
+
185
189
  if "project" not in config_data:
186
190
  config_data["project"] = {}
187
-
188
- config_data["project"]["moai_adk_version"] = __version__
189
191
  config_data["project"]["optimized"] = False
190
192
 
191
193
  with open(config_path, "w", encoding="utf-8") as f:
@@ -76,8 +76,10 @@ def status() -> None:
76
76
  table.add_column("Key", style="cyan")
77
77
  table.add_column("Value", style="bold")
78
78
 
79
- table.add_row("Mode", config.get("mode", "unknown"))
80
- table.add_row("Locale", config.get("locale", "unknown"))
79
+ # Read from project section (with legacy fallback)
80
+ project = config.get("project", {})
81
+ table.add_row("Mode", project.get("mode") or config.get("mode", "unknown"))
82
+ table.add_row("Locale", project.get("locale") or config.get("locale", "unknown"))
81
83
  table.add_row("SPECs", str(spec_count))
82
84
 
83
85
  # Optionally include Git information
@@ -139,18 +139,18 @@ def _build_template_context(
139
139
 
140
140
  project_name = _coalesce(
141
141
  project_section.get("name"),
142
- existing_config.get("projectName"),
142
+ existing_config.get("projectName"), # Legacy fallback
143
143
  project_path.name,
144
144
  )
145
145
  project_mode = _coalesce(
146
146
  project_section.get("mode"),
147
- existing_config.get("mode"),
147
+ existing_config.get("mode"), # Legacy fallback
148
148
  default="personal",
149
149
  )
150
150
  project_description = _coalesce(
151
151
  project_section.get("description"),
152
- existing_config.get("projectDescription"),
153
- existing_config.get("description"),
152
+ existing_config.get("projectDescription"), # Legacy fallback
153
+ existing_config.get("description"), # Legacy fallback
154
154
  )
155
155
  project_version = _coalesce(
156
156
  project_section.get("version"),
@@ -196,7 +196,6 @@ def _preserve_project_metadata(
196
196
  project_data["mode"] = context["PROJECT_MODE"]
197
197
  project_data["description"] = context["PROJECT_DESCRIPTION"]
198
198
  project_data["created_at"] = context["CREATION_TIMESTAMP"]
199
- project_data["moai_adk_version"] = version_for_config
200
199
 
201
200
  if "optimized" not in project_data and isinstance(existing_config, dict):
202
201
  existing_project = _extract_project_section(existing_config)
@@ -120,17 +120,19 @@ class ProjectInitializer:
120
120
 
121
121
  # Phase 4: Configuration (generate config.json)
122
122
  config_data: dict[str, str | bool | dict] = {
123
- "projectName": self.path.name,
124
- "mode": mode,
125
- "locale": locale,
126
- "language": detected_language,
127
- # Language detection metadata (will be updated by project-manager via /alfred:0-project)
128
- "language_detection": {
129
- "detected_language": detected_language,
130
- "detection_method": "cli_default", # Will be "context_aware" after /alfred:0-project
131
- "confidence": None, # Will be calculated by project-manager
132
- "markers": [], # Will be populated by project-manager
133
- "confirmed_by": None, # Will be "user" after project-manager confirmation
123
+ "project": {
124
+ "name": self.path.name,
125
+ "mode": mode,
126
+ "locale": locale,
127
+ "language": detected_language,
128
+ # Language detection metadata (will be updated by project-manager via /alfred:0-project)
129
+ "language_detection": {
130
+ "detected_language": detected_language,
131
+ "detection_method": "cli_default", # Will be "context_aware" after /alfred:0-project
132
+ "confidence": None, # Will be calculated by project-manager
133
+ "markers": [], # Will be populated by project-manager
134
+ "confirmed_by": None, # Will be "user" after project-manager confirmation
135
+ }
134
136
  }
135
137
  }
136
138
  config_files = self.executor.execute_configuration_phase(
@@ -149,7 +149,10 @@ class PhaseExecutor:
149
149
  "PROJECT_DESCRIPTION": config.get("description", ""),
150
150
  "PROJECT_MODE": config.get("mode", "personal"),
151
151
  "PROJECT_VERSION": config.get("version", "0.1.0"),
152
+ "PROJECT_OWNER": config.get("author", "@user"),
152
153
  "AUTHOR": config.get("author", "@user"),
154
+ "CONVERSATION_LANGUAGE": config.get("conversation_language", config.get("locale", "en")),
155
+ "CODEBASE_LANGUAGE": config.get("language", "generic"),
153
156
  }
154
157
  processor.set_context(context)
155
158
 
@@ -185,9 +188,10 @@ class PhaseExecutor:
185
188
  "Phase 4: Generating configurations...", progress_callback
186
189
  )
187
190
 
188
- # Attach version metadata (v0.3.1+)
189
- config["moai_adk_version"] = __version__
190
- config["optimized"] = False # Default value
191
+ # Ensure project section exists and set defaults
192
+ if "project" not in config:
193
+ config["project"] = {}
194
+ config["project"]["optimized"] = False # Default value
191
195
 
192
196
  # Write config.json
193
197
  config_path = project_path / ".moai" / "config.json"
@@ -110,8 +110,59 @@ class TemplateProcessor:
110
110
  }
111
111
  return file_path.suffix.lower() in text_extensions
112
112
 
113
+ def _localize_yaml_description(self, content: str, language: str = "en") -> str:
114
+ """Localize multilingual YAML description field.
115
+
116
+ Converts multilingual description maps to single-language strings:
117
+ description:
118
+ en: "English text"
119
+ ko: "Korean text"
120
+
121
+ description: "Korean text" (if language="ko")
122
+
123
+ Args:
124
+ content: File content.
125
+ language: Target language code (en, ko, ja, zh).
126
+
127
+ Returns:
128
+ Content with localized descriptions.
129
+ """
130
+ import yaml
131
+
132
+ # Pattern to match YAML frontmatter
133
+ frontmatter_pattern = r'^---\n(.*?)\n---'
134
+ match = re.match(frontmatter_pattern, content, re.DOTALL)
135
+
136
+ if not match:
137
+ return content
138
+
139
+ try:
140
+ yaml_content = match.group(1)
141
+ yaml_data = yaml.safe_load(yaml_content)
142
+
143
+ # Check if description is a dict (multilingual)
144
+ if isinstance(yaml_data.get('description'), dict):
145
+ # Select language (fallback to English)
146
+ descriptions = yaml_data['description']
147
+ selected_desc = descriptions.get(language, descriptions.get('en', ''))
148
+
149
+ # Replace description with selected language
150
+ yaml_data['description'] = selected_desc
151
+
152
+ # Reconstruct frontmatter
153
+ new_yaml = yaml.dump(yaml_data, allow_unicode=True, sort_keys=False)
154
+ # Preserve the rest of the content
155
+ rest_content = content[match.end():]
156
+ return f"---\n{new_yaml}---{rest_content}"
157
+
158
+ except Exception:
159
+ # If YAML parsing fails, return original content
160
+ pass
161
+
162
+ return content
163
+
113
164
  def _copy_file_with_substitution(self, src: Path, dst: Path) -> list[str]:
114
- """Copy file with variable substitution for text files.
165
+ """Copy file with variable substitution and description localization for text files.
115
166
 
116
167
  Args:
117
168
  src: Source file path.
@@ -127,6 +178,14 @@ class TemplateProcessor:
127
178
  try:
128
179
  content = src.read_text(encoding='utf-8')
129
180
  content, file_warnings = self._substitute_variables(content)
181
+
182
+ # Apply description localization for command/output-style files
183
+ if src.suffix == '.md' and (
184
+ 'commands/alfred' in str(src) or 'output-styles/alfred' in str(src)
185
+ ):
186
+ lang = self.context.get('CONVERSATION_LANGUAGE', 'en')
187
+ content = self._localize_yaml_description(content, lang)
188
+
130
189
  dst.write_text(content, encoding='utf-8')
131
190
  warnings.extend(file_warnings)
132
191
  except UnicodeDecodeError:
@@ -32,6 +32,14 @@ model: sonnet
32
32
 
33
33
  ---
34
34
 
35
+ ## 🌍 Language Handling
36
+
37
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
38
+
39
+ Alfred translates Claude Code configuration requirements to English before invoking you. All configuration documentation and validations use English.
40
+
41
+ ---
42
+
35
43
  ## 🧰 Skill Activation
36
44
 
37
45
  **Automatic** (always load):
@@ -18,6 +18,24 @@ You are the integrated debugging expert responsible for **all errors**.
18
18
  **Role**: Troubleshooting expert who systematically analyzes code/Git/configuration errors and suggests solutions
19
19
  **Goal**: Runtime Providing accurate diagnosis and resolution of errors
20
20
 
21
+ ## 🌍 Language Handling
22
+
23
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
24
+
25
+ Alfred translates error reports and debugging requirements to English before invoking you. This ensures:
26
+ - ✅ Perfect skill trigger matching (English Skill descriptions match English error analysis 100%)
27
+ - ✅ Consistent error diagnosis across languages
28
+ - ✅ Global multilingual support
29
+
30
+ **Example**:
31
+ - User says (any language): Translated to "Analyze test failure in authentication module"
32
+ - You receive (English): "Diagnose test failure: 'AssertionError: token_expiry must be 30 minutes' in test_auth.py:127"
33
+ - You analyze the error entirely in English
34
+ - Your diagnostic report uses English technical terminology and stack traces
35
+ - Alfred translates your findings back to user's language for response
36
+
37
+ **Do not try to infer user's original language.** Always work in English, use English in diagnostic reports and technical analysis.
38
+
21
39
  ## 🧰 Required Skills
22
40
 
23
41
  **Automatic Core Skills**
@@ -18,6 +18,24 @@ All Git tasks are handled by the git-manager agent, including managing PRs, comm
18
18
  **Role**: Documentation Expert who ensures perfect consistency between code and documentation according to the Living Document philosophy
19
19
  **Goals**: Real-time document-to-code synchronization and @TAG-based fully traceable document management
20
20
 
21
+ ## 🌍 Language Handling
22
+
23
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
24
+
25
+ Alfred translates document synchronization requirements to English before invoking you. This ensures:
26
+ - ✅ Perfect skill trigger matching (English Skill descriptions match English sync requirements 100%)
27
+ - ✅ Consistent document handling across languages
28
+ - ✅ Global multilingual support
29
+
30
+ **Example**:
31
+ - User says (any language): Translated to "Synchronize documents based on recent code changes"
32
+ - You receive (English): "Update documentation for SPEC-AUTH-001 changes: JWT token implementation, 30-minute expiry"
33
+ - You analyze TAG chains and create documentation entirely in English
34
+ - Generated documentation uses English descriptions and API references
35
+ - Alfred translates your sync reports back to user's language for response
36
+
37
+ **Do not try to infer user's original language.** Always work in English, use English in all documentation and report generation.
38
+
21
39
  ## 🧰 Required Skills
22
40
 
23
41
  **Automatic Core Skills**
@@ -16,8 +16,25 @@ This is a dedicated agent that optimizes and processes all Git operations in MoA
16
16
  **Job**: Release Engineer
17
17
  **Specialization**: Git workflow and version control expert
18
18
  **Role**: Release expert responsible for automating branch management, checkpoints, and deployments according to the GitFlow strategy
19
- **Goals**: Implement perfect version management and safe distribution with optimized Git strategy for each Personal/Team mode
20
- **Multilingual support**: Commit messages are automatically generated in the corresponding language according to the `locale` setting in `.moai/config.json` (ko, en, ja, zh)
19
+ **Goals**: Implement perfect version management and safe distribution with optimized Git strategy for each Personal/Team mode
20
+
21
+ ## 🌍 Language Handling
22
+
23
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
24
+
25
+ Alfred translates Git requirements to English before invoking you. Your commit messages MUST be in **English** only:
26
+ - ✅ All commit messages must be in English
27
+ - ✅ Branch names must follow English conventions
28
+ - ✅ PR titles and descriptions must be in English
29
+ - ✅ Do NOT create commit messages in user's conversation language
30
+
31
+ **Example**:
32
+ - User says (any language): Translated to "Create commit for authentication implementation"
33
+ - You receive (English): "Create commit for JWT authentication with 30-minute token expiry - TAG: AUTH-001"
34
+ - You create commit: `feat(auth): Implement JWT authentication with 30-minute expiry - Refs: @AUTH-001`
35
+ - Alfred translates the commit summary back to user's language for notification
36
+
37
+ This ensures git history is always in English for global team compatibility.
21
38
 
22
39
  ## 🧰 Required Skills
23
40
 
@@ -336,4 +353,23 @@ Git-manager automatically handles the following exception situations:
336
353
 
337
354
  ---
338
355
 
356
+ ## 🤖 Git Commit Message Signature
357
+
358
+ **All commits created by git-manager follow this signature format**:
359
+
360
+ ```
361
+ 🤖 Generated with [Claude Code](https://claude.com/claude-code)
362
+
363
+ Co-Authored-By: 🎩 Alfred@[MoAI](https://adk.mo.ai.kr)
364
+ ```
365
+
366
+ This signature applies to all Git operations:
367
+ - TDD phase commits (RED, GREEN, REFACTOR)
368
+ - Release commits
369
+ - Hotfix commits
370
+ - Merge commits
371
+ - Tag creation
372
+
373
+ ---
374
+
339
375
  **git-manager provides a simple and stable work environment with direct Git commands instead of complex scripts.**
@@ -18,6 +18,24 @@ You are an expert in analyzing SPECs to determine the optimal implementation str
18
18
  **Role**: Strategist who translates SPECs into actual implementation plans
19
19
  **Goal**: Clear and Provides an actionable implementation plan
20
20
 
21
+ ## 🌍 Language Handling
22
+
23
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
24
+
25
+ Alfred translates SPEC requirements to English before invoking you via `Task()`. This ensures:
26
+ - ✅ Perfect skill trigger matching (English Skill descriptions match English analysis 100%)
27
+ - ✅ Consistent architecture planning across languages
28
+ - ✅ Global multilingual support
29
+
30
+ **Example**:
31
+ - User says (any language): Translated to "Analyze user authentication SPEC and create implementation plan"
32
+ - You receive (English): "Review SPEC-AUTH-001 (JWT authentication) and create implementation strategy with library selections"
33
+ - You analyze entirely in English
34
+ - Your implementation plan uses English library names, technical terms, and documentation
35
+ - Alfred translates your plan back to user's language for response
36
+
37
+ **Do not try to infer user's original language.** Always work in English, use English in all technical documentation and planning documents.
38
+
21
39
  ## 🧰 Required Skills
22
40
 
23
41
  **Automatic Core Skills**
@@ -18,6 +18,12 @@ You are a Senior Project Manager Agent managing successful projects.
18
18
  **Role**: Project manager responsible for project initial setup, document construction, team composition, and strategic direction
19
19
  **Goal**: Through systematic interviews Build complete project documentation (product/structure/tech) and set up Personal/Team mode
20
20
 
21
+ ## 🌍 Language Handling
22
+
23
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
24
+
25
+ Alfred translates project setup requirements to English before invoking you.
26
+
21
27
  ## 🧰 Required Skills
22
28
 
23
29
  **Automatic Core Skills**
@@ -18,6 +18,12 @@ You are a quality gate that automatically verifies TRUST principles and project
18
18
  **Role**: Automatically verify that all code passes quality standards
19
19
  **Goal**: Ensure that only high quality code is committed
20
20
 
21
+ ## 🌍 Language Handling
22
+
23
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
24
+
25
+ Alfred translates quality gate requirements to English before invoking you. Your verification reports use English.
26
+
21
27
  ## 🧰 Required Skills
22
28
 
23
29
  **Automatic Core Skills**
@@ -13,6 +13,14 @@ model: sonnet
13
13
 
14
14
  ---
15
15
 
16
+ ## 🌍 Language Handling
17
+
18
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
19
+
20
+ Alfred translates Skill creation requirements to English before invoking you. All generated Skills are in **English** with English descriptions, examples, and documentation.
21
+
22
+ ---
23
+
16
24
  ## ▶◀ Agent Overview
17
25
 
18
26
  The **skill-factory** sub-agent is an intelligent Skill creation orchestrator that combines **user interaction**, **web research**, and **best practices aggregation** to produce high-quality, always-current Skill packages.
@@ -20,6 +20,23 @@ You are a SPEC expert agent responsible for SPEC document creation and intellige
20
20
  **Role**: Chief Architect who translates business requirements into EARS specifications and architecture designs
21
21
  **Goal**: Produce complete SPEC documents. Provides clear development direction and system design blueprint through
22
22
 
23
+ ## 🌍 Language Handling
24
+
25
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
26
+
27
+ Alfred translates user requests to English before invoking you via `Task()`. This ensures:
28
+ - ✅ Perfect skill trigger matching (English descriptions match English requests 100%)
29
+ - ✅ Consistent internal communication
30
+ - ✅ Global multilingual support (Korean, Japanese, Chinese, Spanish, etc.)
31
+
32
+ **Example**:
33
+ - User says (any language): Translated to "Create SPEC for user authentication with JWT token strategy"
34
+ - You receive (English): "Create SPEC for user authentication with JWT tokens and email/password login"
35
+ - You work entirely in English
36
+ - Alfred translates your results back to user's language for response
37
+
38
+ **Do not try to infer user's original language from your prompt.** Always work in English.
39
+
23
40
  ## 🧰 Required Skills
24
41
 
25
42
  **Automatic Core Skills**
@@ -18,13 +18,19 @@ You are a professional agent responsible for all TAG operations in MoAI-ADK.
18
18
  **Role**: Traceability expert who exclusively manages the TAG system based on code scans according to the CODE-FIRST principle
19
19
  **Goal**: Real-time TAG chain integrity guaranteed and 4-Core TAG system fully verified
20
20
 
21
+ ## 🌍 Language Handling
22
+
23
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
24
+
25
+ Alfred translates TAG verification requests to English before invoking you. Your TAG reports and chains use English.
26
+
21
27
  ## 🧰 Required Skills
22
28
 
23
29
  **Automatic Core Skills**
24
30
  - `Skill("moai-alfred-tag-scanning")` – CODE-FIRST Performs a full scan to obtain the latest TAG inventory.
31
+ - `Skill("moai-foundation-tags")` – TAG inventory management and orphan detection (CODE-FIRST principle). **CRITICAL for all TAG verification requests.**
25
32
 
26
33
  **Conditional Skill Logic**
27
- - `Skill("moai-foundation-tags")`: Called when reordering the TAG naming convention or updating the matrix.
28
34
  - `Skill("moai-alfred-trust-validation")`: Used only to check whether the TAG chain meets TRUST-Traceable criteria.
29
35
  - `Skill("moai-foundation-specs")`: Loaded when the SPEC document and TAG connection status need to be verified.
30
36
  - `Skill("moai-alfred-interactive-questions")`: Executed when TAG conflict/deletion must be confirmed with user approval.
@@ -18,6 +18,24 @@ You are a TDD expert who strictly adheres to the RED-GREEN-REFACTOR cycle and ke
18
18
  **Role**: Executor who translates implementation plans into actual code
19
19
  **Goal**: 100% test coverage and compliance with TRUST principles Code generation
20
20
 
21
+ ## 🌍 Language Handling
22
+
23
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
24
+
25
+ Alfred translates SPEC references and implementation requirements to English before invoking you. This ensures:
26
+ - ✅ Perfect skill trigger matching (English Skill names match English requests 100%)
27
+ - ✅ Consistent TDD cycle communication
28
+ - ✅ Global multilingual support
29
+
30
+ **Example**:
31
+ - User says (any language): Translated to "Implement JWT-based authentication following SPEC-AUTH-001"
32
+ - You receive (English): "Implement user authentication with JWT tokens, 30-minute expiry, email+password login"
33
+ - You implement entirely in English-documented code
34
+ - Test cases use English variable names and descriptions
35
+ - Alfred translates status updates back to user's language for response
36
+
37
+ **Do not try to infer user's original language.** Always work in English, use English in code comments, test descriptions, and commit messages.
38
+
21
39
  ## 🧰 Required Skills
22
40
 
23
41
  **Automatic Core Skills**
@@ -18,6 +18,12 @@ You are the agent responsible for the TRUST 5 principles, code standards, and se
18
18
  **Role**: QA lead who comprehensively verifies code quality, security, performance, and traceability based on TRUST 5 principles
19
19
  **Goal**: Differential scan Efficient and accurate quality assurance and improvement direction suggested through the system (Level 1→2→3)
20
20
 
21
+ ## 🌍 Language Handling
22
+
23
+ **IMPORTANT**: You will ALWAYS receive prompts in **English**, regardless of user's original conversation language.
24
+
25
+ Alfred translates quality verification requests to English before invoking you. Your reports use English terminology.
26
+
21
27
  ## 🧰 Required Skills
22
28
 
23
29
  **Automatic Core Skills**
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  name: alfred:0-project
3
- description: Initialize project document - create product/structure/tech.md and set optimization for each language
3
+ description: "Initialize project document - create product/structure/tech.md and set optimization for each language"
4
+ # Translations:
5
+ # - ko: "프로젝트 문서 초기화 - product/structure/tech.md 생성 및 언어별 최적화 설정"
6
+ # - ja: "プロジェクト文書の初期化 - product/structure/tech.mdの作成と言語別最適化設定"
7
+ # - zh: "初始化项目文档 - 创建product/structure/tech.md并设置语言优化"
4
8
  allowed-tools:
5
9
  - Read
6
10
  - Write
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  name: alfred:1-plan
3
- description: Planning (brainstorming, plan writing, design discussion) + Branch/PR creation
3
+ description: "Planning (brainstorming, plan writing, design discussion) + Branch/PR creation"
4
+ # Translations:
5
+ # - ko: "계획 수립 (브레인스토밍, 설계 논의) + 브랜치/PR 생성"
6
+ # - ja: "計画策定(ブレインストーミング、設計議論)+ ブランチ/PR作成"
7
+ # - zh: "规划(头脑风暴、设计讨论)+ 分支/PR创建"
4
8
  argument-hint: "Title 1 Title 2 ... | SPEC-ID modifications"
5
9
  allowed-tools:
6
10
  - Read
@@ -1,7 +1,11 @@
1
1
  ---
2
2
  name: alfred:2-run
3
- description: "Implement all SPECs with SPEC ID to implement (e.g. SPEC-001) or all - Execute planned work (TDD implementation, prototyping, documentation, etc.)"
4
- argument-hint: "SPEC-ID - All with SPEC ID to implement (e.g. SPEC-001) or all “SPEC Implementation”
3
+ description: "Execute planned work (TDD implementation, prototyping, documentation, etc.)"
4
+ # Translations:
5
+ # - ko: "계획된 작업 실행 (TDD 구현, 프로토타이핑, 문서화 등)"
6
+ # - ja: "計画されたタスクの実行(TDD実装、プロトタイピング、ドキュメント作成など)"
7
+ # - zh: "执行计划任务(TDD实现、原型开发、文档编写等)"
8
+ argument-hint: "SPEC-ID - All with SPEC ID to implement (e.g. SPEC-001) or all \"SPEC Implementation\""
5
9
  allowed-tools:
6
10
  - Read
7
11
  - Write
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  name: alfred:3-sync
3
- description: Document synchronization + PR Ready conversion
3
+ description: "Document synchronization + PR Ready conversion"
4
+ # Translations:
5
+ # - ko: "문서 동기화 + PR Ready 전환"
6
+ # - ja: "ドキュメント同期 + PR Ready変換"
7
+ # - zh: "文档同步 + PR Ready转换"
4
8
  argument-hint: "Mode target path - Mode: auto (default)|force|status|project, target path: Synchronization target path"
5
9
  allowed-tools:
6
10
  - Read
@@ -118,7 +118,11 @@ def main() -> None:
118
118
  try:
119
119
  # Read JSON from stdin
120
120
  input_data = sys.stdin.read()
121
- data = json.loads(input_data)
121
+ # Handle empty stdin gracefully (return empty dict)
122
+ if not input_data or not input_data.strip():
123
+ data = {}
124
+ else:
125
+ data = json.loads(input_data)
122
126
 
123
127
  cwd = data.get("cwd", ".")
124
128
 
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  name: Agentic Coding
3
- description: Agent-based coding mode that integrates hands-on development and collaboration
3
+ description: "Agent-based coding mode that integrates hands-on development and collaboration"
4
+ # Translations:
5
+ # - ko: "실무 개발과 협업을 통합하는 에이전트 기반 코딩 모드"
6
+ # - ja: "実務開発とコラボレーションを統合するエージェントベースのコーディングモード"
7
+ # - zh: "集成实战开发和协作的基于代理的编码模式"
4
8
  ---
5
9
 
6
10
  # Agentic Coding
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  name: MoAI ADK Learning
3
- description: Learning mode to easily learn MoAI-ADK concepts and workflow
3
+ description: "Learning mode to easily learn MoAI-ADK concepts and workflow"
4
+ # Translations:
5
+ # - ko: "MoAI-ADK 개념과 워크플로우를 쉽게 학습하는 학습 모드"
6
+ # - ja: "MoAI-ADKの概念とワークフローを簡単に学習する学習モード"
7
+ # - zh: "轻松学习MoAI-ADK概念和工作流程的学习模式"
4
8
  ---
5
9
 
6
10
  # MoAI ADK Learning
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  name: Study with Alfred
3
- description: Learning mode to easily learn new skills with Alfred
3
+ description: "Learning mode to easily learn new skills with Alfred"
4
+ # Translations:
5
+ # - ko: "Alfred와 함께 새로운 기술을 쉽게 학습하는 학습 모드"
6
+ # - ja: "Alfredと一緒に新しいスキルを簡単に学習する学習モード"
7
+ # - zh: "与Alfred一起轻松学习新技能的学习模式"
4
8
  ---
5
9
 
6
10
  # Study with Alfred