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.

Files changed (207) hide show
  1. moai_adk/cli/commands/init.py +14 -2
  2. moai_adk/cli/commands/update.py +229 -60
  3. moai_adk/core/config/migration.py +1 -1
  4. moai_adk/core/issue_creator.py +313 -0
  5. moai_adk/core/project/detector.py +201 -12
  6. moai_adk/core/project/initializer.py +62 -1
  7. moai_adk/core/project/phase_executor.py +48 -6
  8. moai_adk/core/tags/__init__.py +86 -0
  9. moai_adk/core/tags/ci_validator.py +463 -0
  10. moai_adk/core/tags/cli.py +283 -0
  11. moai_adk/core/tags/generator.py +109 -0
  12. moai_adk/core/tags/inserter.py +99 -0
  13. moai_adk/core/tags/mapper.py +126 -0
  14. moai_adk/core/tags/parser.py +76 -0
  15. moai_adk/core/tags/pre_commit_validator.py +393 -0
  16. moai_adk/core/tags/reporter.py +956 -0
  17. moai_adk/core/tags/tags.py +149 -0
  18. moai_adk/core/tags/validator.py +897 -0
  19. moai_adk/core/template_engine.py +268 -0
  20. moai_adk/templates/.claude/agents/alfred/backend-expert.md +319 -0
  21. moai_adk/templates/.claude/agents/alfred/cc-manager.md +25 -2
  22. moai_adk/templates/.claude/agents/alfred/debug-helper.md +24 -12
  23. moai_adk/templates/.claude/agents/alfred/devops-expert.md +464 -0
  24. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +20 -13
  25. moai_adk/templates/.claude/agents/alfred/frontend-expert.md +357 -0
  26. moai_adk/templates/.claude/agents/alfred/git-manager.md +47 -16
  27. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +95 -15
  28. moai_adk/templates/.claude/agents/alfred/project-manager.md +78 -12
  29. moai_adk/templates/.claude/agents/alfred/quality-gate.md +28 -5
  30. moai_adk/templates/.claude/agents/alfred/skill-factory.md +30 -2
  31. moai_adk/templates/.claude/agents/alfred/spec-builder.md +133 -13
  32. moai_adk/templates/.claude/agents/alfred/tag-agent.md +104 -8
  33. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +133 -16
  34. moai_adk/templates/.claude/agents/alfred/trust-checker.md +27 -4
  35. moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +571 -0
  36. moai_adk/templates/.claude/commands/alfred/0-project.md +466 -125
  37. moai_adk/templates/.claude/commands/alfred/1-plan.md +208 -71
  38. moai_adk/templates/.claude/commands/alfred/2-run.md +276 -55
  39. moai_adk/templates/.claude/commands/alfred/3-sync.md +439 -53
  40. moai_adk/templates/.claude/commands/alfred/9-feedback.md +149 -0
  41. moai_adk/templates/.claude/hooks/alfred/core/project.py +361 -29
  42. moai_adk/templates/.claude/hooks/alfred/core/timeout.py +136 -0
  43. moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +108 -0
  44. moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +198 -0
  45. moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +14 -6
  46. moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +94 -0
  47. moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +100 -0
  48. moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +94 -0
  49. moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +94 -0
  50. moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/__init__.py +2 -2
  51. moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/checkpoint.py +3 -3
  52. moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/context.py +5 -5
  53. moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +749 -0
  54. moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/tags.py +55 -23
  55. moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +198 -0
  56. moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +21 -0
  57. moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +154 -0
  58. moai_adk/templates/.claude/hooks/alfred/{handlers → shared/handlers}/session.py +28 -15
  59. moai_adk/templates/.claude/hooks/alfred/{handlers → shared/handlers}/tool.py +3 -6
  60. moai_adk/templates/.claude/hooks/alfred/{handlers → shared/handlers}/user.py +19 -0
  61. moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +112 -0
  62. moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +1 -0
  63. moai_adk/templates/.claude/hooks/alfred/utils/timeout.py +161 -0
  64. moai_adk/templates/.claude/settings.json +5 -5
  65. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +70 -0
  66. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +62 -0
  67. moai_adk/templates/{.moai/memory/CLAUDE-AGENTS-GUIDE.md → .claude/skills/moai-alfred-agent-guide/reference.md} +34 -0
  68. moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +56 -0
  69. moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +28 -0
  70. moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +62 -0
  71. moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +28 -0
  72. moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +405 -0
  73. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +51 -0
  74. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +355 -0
  75. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +239 -0
  76. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +323 -0
  77. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +286 -0
  78. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +126 -0
  79. moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/SKILL.md +74 -0
  80. moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/examples.md +4 -0
  81. moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/reference.md +269 -0
  82. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +19 -0
  83. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +4 -0
  84. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +150 -0
  85. moai_adk/templates/.claude/skills/moai-alfred-persona-roles/SKILL.md +198 -0
  86. moai_adk/templates/.claude/skills/moai-alfred-persona-roles/examples.md +431 -0
  87. moai_adk/templates/.claude/skills/moai-alfred-persona-roles/reference.md +141 -0
  88. moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +89 -0
  89. moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +122 -0
  90. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +508 -0
  91. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +481 -0
  92. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +100 -0
  93. moai_adk/templates/.claude/skills/moai-alfred-reporting/SKILL.md +273 -0
  94. moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +77 -0
  95. moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +265 -0
  96. moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +19 -0
  97. moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +4 -0
  98. moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +84 -0
  99. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +137 -0
  100. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +219 -0
  101. moai_adk/templates/.claude/skills/{moai-spec-authoring → moai-alfred-spec-authoring}/examples/validate-spec.sh +3 -3
  102. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +541 -0
  103. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +622 -0
  104. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/SKILL.md +115 -0
  105. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/examples.md +4 -0
  106. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/reference.md +348 -0
  107. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +19 -0
  108. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +4 -0
  109. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +211 -0
  110. moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +288 -0
  111. moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/SKILL.md +19 -0
  112. moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/examples.md +4 -0
  113. moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/SKILL.md +3 -3
  114. moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +802 -0
  115. moai_adk/templates/.claude/skills/moai-design-systems/examples.md +1238 -0
  116. moai_adk/templates/.claude/skills/moai-design-systems/reference.md +673 -0
  117. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +17 -13
  118. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +9 -6
  119. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +15 -12
  120. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +14 -12
  121. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +14 -11
  122. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +10 -8
  123. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +15 -12
  124. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +13 -11
  125. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +16 -10
  126. moai_adk/templates/.claude/skills/moai-project-documentation.md +622 -0
  127. moai_adk/templates/.git-hooks/pre-push +143 -0
  128. moai_adk/templates/.github/workflows/c-tag-validation.yml +11 -0
  129. moai_adk/templates/.github/workflows/cpp-tag-validation.yml +11 -0
  130. moai_adk/templates/.github/workflows/csharp-tag-validation.yml +11 -0
  131. moai_adk/templates/.github/workflows/dart-tag-validation.yml +11 -0
  132. moai_adk/templates/.github/workflows/go-tag-validation.yml +130 -0
  133. moai_adk/templates/.github/workflows/java-tag-validation.yml +11 -0
  134. moai_adk/templates/.github/workflows/javascript-tag-validation.yml +135 -0
  135. moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +11 -0
  136. moai_adk/templates/.github/workflows/moai-gitflow.yml +166 -3
  137. moai_adk/templates/.github/workflows/moai-release-create.yml +100 -0
  138. moai_adk/templates/.github/workflows/moai-release-pipeline.yml +188 -0
  139. moai_adk/templates/.github/workflows/php-tag-validation.yml +11 -0
  140. moai_adk/templates/.github/workflows/python-tag-validation.yml +118 -0
  141. moai_adk/templates/.github/workflows/release.yml +118 -0
  142. moai_adk/templates/.github/workflows/ruby-tag-validation.yml +11 -0
  143. moai_adk/templates/.github/workflows/rust-tag-validation.yml +11 -0
  144. moai_adk/templates/.github/workflows/shell-tag-validation.yml +11 -0
  145. moai_adk/templates/.github/workflows/spec-issue-sync.yml +206 -35
  146. moai_adk/templates/.github/workflows/swift-tag-validation.yml +11 -0
  147. moai_adk/templates/.github/workflows/tag-report.yml +269 -0
  148. moai_adk/templates/.github/workflows/tag-validation.yml +186 -0
  149. moai_adk/templates/.github/workflows/typescript-tag-validation.yml +154 -0
  150. moai_adk/templates/.moai/config.json +21 -2
  151. moai_adk/templates/CLAUDE.md +972 -78
  152. moai_adk/templates/workflows/go-tag-validation.yml +30 -0
  153. moai_adk/templates/workflows/javascript-tag-validation.yml +41 -0
  154. moai_adk/templates/workflows/python-tag-validation.yml +42 -0
  155. moai_adk/templates/workflows/typescript-tag-validation.yml +31 -0
  156. moai_adk/utils/banner.py +5 -5
  157. {moai_adk-0.8.0.dist-info → moai_adk-0.15.0.dist-info}/METADATA +1518 -161
  158. {moai_adk-0.8.0.dist-info → moai_adk-0.15.0.dist-info}/RECORD +183 -100
  159. moai_adk/templates/.claude/hooks/alfred/HOOK_SCHEMA_VALIDATION.md +0 -313
  160. moai_adk/templates/.claude/hooks/alfred/README.md +0 -230
  161. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -174
  162. moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +0 -25
  163. moai_adk/templates/.claude/hooks/alfred/test_hook_output.py +0 -175
  164. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -640
  165. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -696
  166. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -474
  167. moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +0 -137
  168. moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +0 -218
  169. moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +0 -541
  170. moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +0 -622
  171. moai_adk/templates/.github/ISSUE_TEMPLATE/spec.yml +0 -176
  172. moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -69
  173. moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md +0 -344
  174. moai_adk/templates/.moai/memory/GITFLOW-PROTECTION-POLICY.md +0 -220
  175. moai_adk/templates/.moai/memory/SPEC-METADATA.md +0 -356
  176. moai_adk/templates/.moai/memory/config-schema.md +0 -444
  177. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -220
  178. moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
  179. moai_adk/templates/.moai/project/product.md +0 -161
  180. moai_adk/templates/.moai/project/structure.md +0 -156
  181. moai_adk/templates/.moai/project/tech.md +0 -227
  182. moai_adk/templates/__init__.py +0 -2
  183. /moai_adk/templates/{.moai/memory/CONFIG-SCHEMA.md → .claude/skills/moai-alfred-config-schema/reference.md} +0 -0
  184. /moai_adk/templates/{.moai/memory/CLAUDE-PRACTICES.md → .claude/skills/moai-alfred-practices/reference.md} +0 -0
  185. /moai_adk/templates/{.moai/memory/CLAUDE-RULES.md → .claude/skills/moai-alfred-rules/reference.md} +0 -0
  186. /moai_adk/templates/{.moai/memory/SKILLS-DESCRIPTION-POLICY.md → .claude/skills/moai-cc-skill-descriptions/reference.md} +0 -0
  187. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/CHECKLIST.md +0 -0
  188. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/EXAMPLES.md +0 -0
  189. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/INTERACTIVE-DISCOVERY.md +0 -0
  190. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/METADATA.md +0 -0
  191. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/PARALLEL-ANALYSIS-REPORT.md +0 -0
  192. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/PYTHON-VERSION-MATRIX.md +0 -0
  193. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/SKILL-FACTORY-WORKFLOW.md +0 -0
  194. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/SKILL-UPDATE-ADVISOR.md +0 -0
  195. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/STEP-BY-STEP-GUIDE.md +0 -0
  196. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/STRUCTURE.md +0 -0
  197. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/WEB-RESEARCH.md +0 -0
  198. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/reference.md +0 -0
  199. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/scripts/generate-structure.sh +0 -0
  200. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/scripts/validate-skill.sh +0 -0
  201. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/templates/SKILL_TEMPLATE.md +0 -0
  202. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/templates/examples-template.md +0 -0
  203. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/templates/reference-template.md +0 -0
  204. /moai_adk/templates/.claude/skills/{moai-skill-factory → moai-cc-skill-factory}/templates/scripts-template.sh +0 -0
  205. {moai_adk-0.8.0.dist-info → moai_adk-0.15.0.dist-info}/WHEEL +0 -0
  206. {moai_adk-0.8.0.dist-info → moai_adk-0.15.0.dist-info}/entry_points.txt +0 -0
  207. {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:3-sync
3
- description: "Document synchronization + PR Ready conversion"
4
- # Translations:
5
- # - ko: "문서 동기화 + PR Ready 전환"
6
- # - ja: "ドキュメント同期 + PR Ready変換"
7
- # - zh: "文档同步 + PR Ready转换"
3
+ description: "Synchronize documentation and finalize PR"
8
4
  argument-hint: 'Mode target path - Mode: auto (default)|force|status|project, target
9
5
  path: Synchronization target path'
10
6
  allowed-tools:
@@ -23,6 +19,12 @@ allowed-tools:
23
19
 
24
20
  # 📚 MoAI-ADK Step 3: Document Synchronization (+Optional PR Ready)
25
21
  > **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.
22
+ >
23
+ > **Batched Design**: All AskUserQuestion calls follow batched design principles (1-4 questions per call) to minimize user interaction turns. See CLAUDE.md section "Alfred Command Completion Pattern" for details.
24
+
25
+ <!-- @CODE:ALF-WORKFLOW-003:CMD-SYNC -->
26
+
27
+ **4-Step Workflow Integration**: This command implements Step 4 of Alfred's workflow (Report & Commit with conditional report generation). See CLAUDE.md for full workflow details.
26
28
 
27
29
  ## 🚀 START HERE
28
30
 
@@ -102,87 +104,147 @@ Users can run the command as follows:
102
104
 
103
105
  ## 🔍 STEP 1: Analyze synchronization scope and establish plan
104
106
 
105
- Analyze project status to determine synchronization scope, develop a systematic synchronization plan, and receive user confirmation.
107
+ STEP 1 consists of **two independent phases** to provide flexible workflow based on project complexity:
106
108
 
107
- **The tag-agent performs comprehensive TAG verification (full project scope), and doc-syncer analyzes Git changes and establishes synchronization plan.**
109
+ ### 📋 STEP 1 Workflow Overview
108
110
 
109
- ⚠️ **Important**: Tag-agent must verify the ENTIRE PROJECT for TAG orphans, not just changed files. Full-project scope is MANDATORY.
111
+ ```
112
+ ┌─────────────────────────────────────────────────────────────┐
113
+ │ STEP 1: Synchronization Analysis & Planning │
114
+ ├─────────────────────────────────────────────────────────────┤
115
+ │ │
116
+ │ Phase A (OPTIONAL) │
117
+ │ ┌─────────────────────────────────────────┐ │
118
+ │ │ 🔍 Explore Agent │ │
119
+ │ │ • Navigate complex TAG chains │ │
120
+ │ │ • Scan entire TAG system │ │
121
+ │ │ • Identify orphan TAGs │ │
122
+ │ └─────────────────────────────────────────┘ │
123
+ │ ↓ │
124
+ │ (exploration results) │
125
+ │ ↓ │
126
+ │ Phase B (REQUIRED) │
127
+ │ ┌─────────────────────────────────────────┐ │
128
+ │ │ ⚙️ tag-agent + doc-syncer Agents │ │
129
+ │ │ • Verify TAG integrity (full project) │ │
130
+ │ │ • Analyze Git changes │ │
131
+ │ │ • Create synchronization plan │ │
132
+ │ │ • Request user approval │ │
133
+ │ └─────────────────────────────────────────┘ │
134
+ │ ↓ │
135
+ │ (user approval via AskUserQuestion) │
136
+ │ ↓ │
137
+ │ PROCEED TO STEP 2 │
138
+ └─────────────────────────────────────────────────────────────┘
139
+ ```
140
+
141
+ **Key Points**:
142
+ - **Phase A is optional** - Skip for simple single-SPEC changes
143
+ - **Phase B is required** - Always runs to verify TAGs and plan sync
144
+ - **Results flow forward** - Exploration results (if any) are passed to tag-agent
145
+ - **⚠️ Important**: tag-agent verifies ENTIRE PROJECT, not just changed files
146
+
147
+ ---
110
148
 
111
- ### 🔍 TAG chain navigation (optional)
149
+ ### 🔍 Phase A: TAG Chain Navigation (OPTIONAL)
112
150
 
113
- **If your TAG chain is complex or extensive**, utilize the Explore agent first:
151
+ **Use the Explore agent for complex or extensive TAG chains.**
152
+
153
+ #### When to use Phase A:
154
+
155
+ - ✅ Large projects (100+ files)
156
+ - ✅ Need comprehensive TAG chain integrity verification
157
+ - ✅ Changes span multiple SPECs or modules
158
+ - ❌ Simple changes to a single SPEC (skip to Phase B)
159
+
160
+ #### How to invoke Explore agent:
114
161
 
115
162
  ```
116
163
  Invoking the Task tool (Explore agent):
117
164
  - subagent_type: "Explore"
118
165
  - description: "Scan entire TAG system"
119
- - prompt: "Please scan @TAG system throughout the project:
120
- - @SPEC TAG location (.moai/specs/)
121
- - @TEST TAG location (tests/)
122
- - @CODE TAG location (src/)
123
- - @DOC TAG location (docs/)
124
- - Detect orphan TAGs and broken references
125
- Thoroughness level: very thorough"
166
+ - prompt: "프로젝트 전체에서 @TAG 시스템을 스캔해주세요:
167
+ - @SPEC TAG 위치 (.moai/specs/)
168
+ - @TEST TAG 위치 (tests/)
169
+ - @CODE TAG 위치 (src/)
170
+ - @DOC TAG 위치 (docs/)
171
+ - 고아 TAG 끊긴 참조 감지
172
+ 상세도 수준: very thorough"
126
173
  ```
127
174
 
128
- **Explore Agent When to Use**:
129
- - ✅ Large projects (100+ files)
130
- - ✅ When TAG chain integrity verification is required
131
- - ✅ Changes across multiple SPECs
132
- - Simple changes to a single SPEC
175
+ **Note**: For simple changes, skip Phase A and proceed directly to Phase B.
176
+
177
+ ---
178
+
179
+ ### ⚙️ Phase B: TAG Verification & Sync Planning (REQUIRED)
133
180
 
134
- ### ⚙️ How to call an agent
181
+ **Call tag-agent and doc-syncer to verify TAG integrity and plan synchronization.**
135
182
 
136
- **In STEP 1, call doc-syncer and tag-agent using the Task tool**:
183
+ This phase is **always required** and runs **two agents sequentially**:
184
+
185
+ #### How to invoke agents:
137
186
 
138
187
  ```
139
188
  1. Tag-agent call (TAG verification - FULL PROJECT SCOPE):
140
189
  - subagent_type: "tag-agent"
141
190
  - description: "Verify TAG system across entire project"
142
- - prompt: "Please perform a COMPREHENSIVE TAG system verification across the ENTIRE PROJECT.
191
+ - prompt: "전체 프로젝트에서 포괄적인 @TAG 시스템 검증을 수행해주세요.
143
192
 
144
- **Required scope**: Scan all source files, not just changed files.
193
+ **필수 범위**: 변경된 파일만이 아니라 모든 소스 파일을 스캔합니다.
145
194
 
146
- **Verification items**:
147
- 1. @SPEC TAGs in .moai/specs/ directory
148
- 2. @TEST TAGs in tests/ directory
149
- 3. @CODE TAGs in src/ directory
150
- 4. @DOC TAGs in docs/ directory
195
+ **검증 항목**:
196
+ 1. .moai/specs/ 디렉토리의 @SPEC TAG
197
+ 2. tests/ 디렉토리의 @TEST TAG
198
+ 3. src/ 디렉토리의 @CODE TAG
199
+ 4. docs/ 디렉토리의 @DOC TAG
151
200
 
152
- **Orphan detection** (MANDATORY):
153
- - Detect @CODE TAGs without matching @SPEC
154
- - Detect @SPEC TAGs without matching @CODE
155
- - Detect @TEST TAGs without matching @SPEC
156
- - Detect @DOC TAGs without matching @SPEC/@CODE
201
+ **고아 감지** (필수):
202
+ - 매칭되는 @SPEC이 없는 @CODE TAG 감지
203
+ - 매칭되는 @CODE가 없는 @SPEC TAG 감지
204
+ - 매칭되는 @SPEC이 없는 @TEST TAG 감지
205
+ - 매칭되는 @SPEC/@CODE가 없는 @DOC TAG 감지
157
206
 
158
- **Output format**: Provide complete list of orphan TAGs with locations.
207
+ **출력 형식**: 고아 TAG의 전체 목록을 위치와 함께 제공합니다.
159
208
 
160
- (Optional) Explore results: $EXPLORE_RESULTS"
209
+ (선택사항) 탐색 결과: $EXPLORE_RESULTS"
161
210
 
162
211
  2. doc-syncer call (synchronization plan):
163
212
  - subagent_type: "doc-syncer"
164
213
  - description: "Establish a document synchronization plan"
165
- - prompt: """You are doc-syncer agent.
214
+ - prompt: """당신은 doc-syncer 에이전트입니다.
215
+
216
+ 언어 설정:
217
+ - 대화_언어: {{CONVERSATION_LANGUAGE}}
218
+ - 언어명: {{CONVERSATION_LANGUAGE_NAME}}
166
219
 
167
- LANGUAGE CONFIGURATION:
168
- - conversation_language: {{CONVERSATION_LANGUAGE}}
169
- - language_name: {{CONVERSATION_LANGUAGE_NAME}}
220
+ 중요 지시사항:
221
+ 문서 업데이트는 대화_언어를 반드시 존중해야 합니다:
222
+ - 사용자 대면 문서 (README, 가이드): {{CONVERSATION_LANGUAGE}}
223
+ - SPEC 문서 (spec.md, plan.md, acceptance.md): {{CONVERSATION_LANGUAGE}}
224
+ - 코드 주석: {{CONVERSATION_LANGUAGE}} (기술 키워드 제외)
225
+ - 기술 문서 및 YAML 프론트매터: 영어
170
226
 
171
- CRITICAL INSTRUCTION:
172
- Documentation updates MUST respect conversation_language:
173
- - User-facing documentation (README, guides): {{CONVERSATION_LANGUAGE}}
174
- - SPEC documents (spec.md, plan.md, acceptance.md): {{CONVERSATION_LANGUAGE}}
175
- - Code comments: {{CONVERSATION_LANGUAGE}} (when not technical keywords)
176
- - Technical documentation and YAML frontmatter: English
227
+ 스킬 호출:
228
+ 필요 명시적 Skill() 호출 사용:
229
+ - Skill("moai-foundation-tags") - TAG 체인 검증
230
+ - Skill("moai-foundation-trust") - 품질 게이트 검사
231
+ - Skill("moai-alfred-tag-scanning") - TAG 인벤토리 업데이트
177
232
 
178
- TASK:
179
- Please analyze Git changes and establish a document synchronization plan.
180
- Ensure all documentation updates align with the conversation_language setting.
233
+ 작업:
234
+ Git 변경사항을 분석하고 문서 동기화 계획을 수립해주세요.
235
+ 모든 문서 업데이트가 대화_언어 설정과 일치하는지 확인합니다.
181
236
 
182
237
  $ARGUMENTS
183
- (Optional) TAG validation results: $TAG_VALIDATION_RESULTS"""
238
+ (선택사항) TAG 검증 결과: $TAG_VALIDATION_RESULTS"""
184
239
  ```
185
240
 
241
+ **Note**:
242
+ - **Sequential execution**: Run tag-agent first, then doc-syncer
243
+ - **Results flow**: TAG validation results from tag-agent are passed to doc-syncer via `$TAG_VALIDATION_RESULTS`
244
+ - **Phase A results**: If Phase A was executed, exploration results are passed to tag-agent via `$EXPLORE_RESULTS`
245
+
246
+ ---
247
+
186
248
  ### Synchronization analysis in progress
187
249
 
188
250
  1. **Check project status**
@@ -254,6 +316,170 @@ After reviewing your sync plan, `AskUserQuestion tool (documented in moai-alfred
254
316
 
255
317
  After user approval (collected via `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`), the doc-syncer agent performs **Living Document synchronization and @TAG updates**, and optionally executes PR Ready transitions only in team mode.
256
318
 
319
+ ---
320
+
321
+ ### 2.0.5 Domain-Based Sync Routing (Automatic - During Sync)
322
+
323
+ **Purpose**: Route documentation sync to domain-specific experts based on changed files
324
+
325
+ **When to run**: During doc-syncer execution, after analyzing git changes
326
+
327
+ **Detection Logic**:
328
+
329
+ Alfred analyzes changed files to determine which domains were modified:
330
+
331
+ ```bash
332
+ # Get list of changed files
333
+ git diff --name-only HEAD~1 HEAD
334
+
335
+ # Domain detection by file patterns
336
+ ```
337
+
338
+ **File Pattern → Domain Mapping**:
339
+
340
+ | File Patterns | Domain | Sync Focus |
341
+ |---------------|--------|-----------|
342
+ | `src/components/*`, `src/pages/*`, `*.tsx`, `*.jsx`, `*.vue` | Frontend | Component documentation, Storybook, UI architecture |
343
+ | `src/api/*`, `src/models/*`, `src/routes/*`, `src/services/*` | Backend | API documentation (OpenAPI), schema docs, error handling |
344
+ | `Dockerfile`, `docker-compose.yml`, `.github/workflows/*`, `terraform/*`, `k8s/*` | DevOps | Deployment docs, CI/CD status, infrastructure diagrams |
345
+ | `src/database/*`, `migrations/*`, `*.sql`, `schema/*` | Database | Schema documentation, migration logs, query optimization |
346
+ | `notebooks/*`, `src/pipelines/*`, `*.ipynb`, `src/models/ml/*` | Data Science | Pipeline documentation, model cards, data validation |
347
+ | `src/mobile/*`, `ios/*`, `android/*`, `*.swift`, `*.kt` | Mobile | Platform-specific docs, app lifecycle, native modules |
348
+
349
+ **Automatic Invocation Pattern**:
350
+
351
+ ```python
352
+ # Pseudo-code for domain detection from git changes
353
+ changed_files = git_diff("HEAD~1", "HEAD")
354
+
355
+ detected_domains = []
356
+ if any(".tsx" in f or ".jsx" in f or "src/components/" in f for f in changed_files):
357
+ detected_domains.append("frontend")
358
+ if any("src/api/" in f or "src/models/" in f or "src/routes/" in f for f in changed_files):
359
+ detected_domains.append("backend")
360
+ if any("Dockerfile" in f or ".github/workflows/" in f or "docker-compose" in f for f in changed_files):
361
+ detected_domains.append("devops")
362
+ # ... repeat for all domains
363
+
364
+ # Invoke domain-specific sync for each detected domain
365
+ for domain in detected_domains:
366
+ Task(
367
+ subagent_type="Explore",
368
+ prompt=f"Generate domain-specific sync report for {domain} changes"
369
+ )
370
+ ```
371
+
372
+ **Example Invocation** (Frontend + Backend detected):
373
+
374
+ ```python
375
+ # Frontend sync
376
+ Task(
377
+ subagent_type="Explore",
378
+ prompt="""You are frontend-expert providing sync documentation.
379
+
380
+ Changed Files: [src/components/Dashboard.tsx, src/pages/Home.vue]
381
+
382
+ Provide frontend-specific documentation:
383
+ 1. Component documentation updates
384
+ 2. Storybook story generation
385
+ 3. UI architecture diagram updates
386
+ 4. Accessibility compliance notes
387
+
388
+ Output format: Markdown document for .moai/reports/sync-frontend.md"""
389
+ )
390
+
391
+ # Backend sync
392
+ Task(
393
+ subagent_type="Explore",
394
+ prompt="""You are backend-expert providing sync documentation.
395
+
396
+ Changed Files: [src/api/auth.py, src/models/user.py, src/routes/users.py]
397
+
398
+ Provide backend-specific documentation:
399
+ 1. OpenAPI spec generation
400
+ 2. Schema documentation updates
401
+ 3. Error handling documentation
402
+ 4. API endpoint examples
403
+
404
+ Output format: Markdown document for .moai/reports/sync-backend.md"""
405
+ )
406
+ ```
407
+
408
+ **Output Storage Structure**:
409
+
410
+ ```
411
+ .moai/reports/
412
+ ├── sync-report-2025-10-23.md # Combined sync report
413
+ ├── sync-frontend-2025-10-23.md # Frontend-specific sync
414
+ ├── sync-backend-2025-10-23.md # Backend-specific sync
415
+ └── sync-devops-2025-10-23.md # DevOps-specific sync
416
+ ```
417
+
418
+ **Combined Sync Report Format**:
419
+
420
+ ```markdown
421
+ ## 📚 Documentation Sync Report - 2025-10-23
422
+
423
+ ### Changed Files Summary
424
+ - Frontend: 3 files (components, pages)
425
+ - Backend: 5 files (api, models, routes)
426
+ - DevOps: 1 file (Dockerfile)
427
+
428
+ ### Domain-Specific Sync Results
429
+
430
+ #### 🎨 Frontend Sync
431
+ - ✅ Component documentation: Dashboard.tsx documented
432
+ - ✅ Storybook stories: 2 stories generated
433
+ - ✅ UI architecture: Component hierarchy diagram updated
434
+ - 📄 Details: [sync-frontend-2025-10-23.md](./sync-frontend-2025-10-23.md)
435
+
436
+ #### ⚙️ Backend Sync
437
+ - ✅ OpenAPI spec: /api/auth endpoints documented
438
+ - ✅ Schema documentation: User model fields updated
439
+ - ✅ Error handling: 401/403 response examples added
440
+ - 📄 Details: [sync-backend-2025-10-23.md](./sync-backend-2025-10-23.md)
441
+
442
+ #### 🚀 DevOps Sync
443
+ - ✅ Dockerfile: Multi-stage build documented
444
+ - ✅ Deployment: Railway configuration updated
445
+ - 📄 Details: [sync-devops-2025-10-23.md](./sync-devops-2025-10-23.md)
446
+
447
+ ### @TAG Verification
448
+ - ✅ All changed files have @TAG references
449
+ - ✅ SPEC → CODE → TEST → DOC chain intact
450
+
451
+ ### Next Steps
452
+ - Review domain-specific sync reports
453
+ - Update README.md with new features
454
+ - Create PR for documentation changes
455
+ ```
456
+
457
+ **Integration with doc-syncer**:
458
+
459
+ ```python
460
+ # doc-syncer orchestrates domain-specific sync
461
+ Task(
462
+ subagent_type="doc-syncer",
463
+ prompt="""You are doc-syncer agent.
464
+
465
+ DOMAIN SYNC RESULTS:
466
+ {domain_sync_results}
467
+
468
+ Consolidate all domain-specific sync reports into master sync report.
469
+ Ensure @TAG chain integrity across all domains.
470
+ Update .moai/reports/sync-report-{date}.md
471
+
472
+ $ARGUMENTS"""
473
+ )
474
+ ```
475
+
476
+ **Graceful Degradation**:
477
+ - If no domain detected → Standard sync (no domain-specific reports)
478
+ - If domain expert unavailable → Use generic sync templates
479
+ - Multi-domain changes → Generate separate reports, combine into master
480
+
481
+ ---
482
+
257
483
  ### Phase 2 Details: SPEC Completion Processing (Automatic)
258
484
 
259
485
  The doc-syncer agent automatically determines whether TDD implementation is complete and updates SPEC metadata.
@@ -270,9 +496,132 @@ The doc-syncer agent automatically determines whether TDD implementation is comp
270
496
 
271
497
  **If conditions are not met**: Phase 2 detailed work is automatically skipped
272
498
 
499
+ ---
500
+
501
+ ### Phase 2-1: SPEC Document Synchronization (CRITICAL)
502
+
503
+ **IMPORTANT**: Any code or file changes MUST be reflected in SPEC documents to maintain specification alignment.
504
+
505
+ #### When to synchronize SPEC documents:
506
+
507
+ 1. **After code modifications**:
508
+ - Functional changes to implemented features
509
+ - Bug fixes that alter expected behavior
510
+ - Performance optimizations with observable changes
511
+ - API/function signature changes
512
+ - New dependencies or external integrations
513
+
514
+ 2. **After requirement clarifications**:
515
+ - Acceptance criteria refinements
516
+ - Edge case discoveries during implementation
517
+ - User feedback incorporation
518
+ - Security/compliance adjustments
519
+
520
+ 3. **After structural changes**:
521
+ - File organization or module restructuring
522
+ - New configuration options
523
+ - Breaking API changes
524
+ - Database schema modifications
525
+
526
+ #### SPEC documents requiring update:
527
+
528
+ All files in `.moai/specs/SPEC-{ID}/` must be synchronized:
529
+
530
+ - **spec.md**: Update EARS requirements if implementation differs from specification
531
+ - **plan.md**: Revise implementation strategy if approach changed
532
+ - **acceptance.md**: Update acceptance criteria if new test cases or edge cases discovered
533
+
534
+ #### Synchronization rules:
535
+
536
+ **Code ↔ SPEC Comparison**:
537
+ ```
538
+ 1. Review Git diff for changed files
539
+ 2. Identify functional impacts:
540
+ ├─ Signature changes (parameters, return values)
541
+ ├─ Behavior changes (logic flow, edge cases)
542
+ ├─ Performance characteristics (latency, throughput changes)
543
+ └─ External dependencies (new APIs, services)
544
+ 3. Map changes to SPEC requirements:
545
+ ├─ Verify each changed function matches EARS statement
546
+ ├─ Check if acceptance criteria still valid
547
+ └─ Identify any spec-to-code divergence
548
+ 4. Update SPEC documents:
549
+ ├─ Correct EARS statements to match actual implementation
550
+ ├─ Add discovered edge cases to acceptance criteria
551
+ ├─ Update plan.md with implementation changes
552
+ └─ Maintain TAG references (@SPEC, @CODE, @TEST consistency)
553
+ ```
554
+
555
+ #### Example: When synchronization is needed
556
+
557
+ **Scenario 1: Bug Fix Changes Behavior**
558
+ ```
559
+ Git change: Fixed database connection retry logic
560
+ - Was: Max 3 retries with 1-second delay
561
+ - Now: Max 5 retries with exponential backoff
562
+
563
+ SPEC update required:
564
+ - spec.md: Update EARS statement for retry behavior
565
+ - acceptance.md: Add test case for exponential backoff
566
+ - Update @CODE TAG location if function moved
567
+ ```
568
+
569
+ **Scenario 2: API Signature Changes**
570
+ ```
571
+ Git change: Refactored authentication function signature
572
+ - Was: validate_token(token: str) -> bool
573
+ - Now: validate_token(token: str, ttl: int = 3600) -> dict
574
+
575
+ SPEC update required:
576
+ - spec.md: Update function requirements for new TTL parameter
577
+ - acceptance.md: Add test cases for TTL validation
578
+ - plan.md: Document reason for signature change
579
+ ```
580
+
581
+ **Scenario 3: New Edge Cases Discovered**
582
+ ```
583
+ Git change: Added null-check validation during testing
584
+ - Discovered: Special handling needed for empty strings
585
+
586
+ SPEC update required:
587
+ - spec.md: Add EARS statement for empty string edge case
588
+ - acceptance.md: Add test case for empty string handling
589
+ - Link with @TEST TAG from test file
590
+ ```
591
+
592
+ #### SPEC-Code Divergence Detection:
593
+
594
+ **Anti-pattern: Code without matching SPEC**
595
+ ```
596
+ ❌ WRONG: Code changes exist but SPEC documents unchanged
597
+ - Function behavior diverges from specification
598
+ - Acceptance criteria becomes inaccurate
599
+ - @TAG chain breaks (CODE exists without matching SPEC reference)
600
+
601
+ ✅ CORRECT: Code changes synchronized to SPEC
602
+ - SPEC documents updated to match implementation
603
+ - All EARS statements verified against actual code
604
+ - @TAG chain maintained: SPEC ↔ CODE ↔ TEST ↔ DOC
605
+ ```
606
+
607
+ #### SPEC Synchronization Checklist (doc-syncer responsibility):
608
+
609
+ Before marking sync as complete:
610
+ - [ ] All changed code files reviewed against SPEC
611
+ - [ ] EARS statements match implementation behavior
612
+ - [ ] Acceptance criteria valid for current code
613
+ - [ ] Edge cases discovered during implementation added to SPEC
614
+ - [ ] @CODE/@TEST TAGs point to correct locations
615
+ - [ ] @SPEC TAG references updated if files reorganized
616
+ - [ ] HISTORY section updated if version changed
617
+ - [ ] No spec-code divergence remains
618
+
619
+ ---
620
+
273
621
  ## function
274
622
 
275
623
  - **Automatic Document Synchronization**: The doc-syncer agent performs Living Document synchronization and @TAG updates. Optionally implements the PR Ready transition only in team mode.
624
+ - **SPEC-Code Alignment**: doc-syncer verifies that SPEC documents match implemented code and updates them when changes are detected.
276
625
 
277
626
  ## Synchronization output
278
627
 
@@ -530,6 +879,43 @@ Report synchronization results in a structured format:
530
879
  3. Orphan TAG cleanup
531
880
  ```
532
881
 
882
+ ## Final Step
883
+
884
+ After document synchronization completes, Alfred automatically invokes AskUserQuestion to ask the user what to do next:
885
+
886
+ ```python
887
+ AskUserQuestion(
888
+ questions=[
889
+ {
890
+ "question": "문서 동기화가 완료되었습니다. 다음으로 뭘 하시겠습니까?",
891
+ "header": "다음 단계",
892
+ "multiSelect": false,
893
+ "options": [
894
+ {
895
+ "label": "📋 다음 스펙 작성",
896
+ "description": "/alfred:1-plan으로 새로운 기능 SPEC 작성"
897
+ },
898
+ {
899
+ "label": "📤 PR 병합",
900
+ "description": "GitHub에서 PR 검토 및 병합 진행"
901
+ },
902
+ {
903
+ "label": "🔄 새 세션 시작",
904
+ "description": "성능 최적화를 위해 /clear 실행"
905
+ }
906
+ ]
907
+ }
908
+ ]
909
+ )
910
+ ```
911
+
912
+ **User Responses**:
913
+ - **📋 다음 스펙 작성**: Proceed to `/alfred:1-plan` for creating next SPEC
914
+ - **📤 PR 병합**: Manual PR review and merge on GitHub
915
+ - **🔄 새 세션 시작**: Execute `/clear` to start fresh session (recommended for performance)
916
+
917
+ ---
918
+
533
919
  ## Next steps guidance
534
920
 
535
921
  ### Development cycle complete
@@ -610,7 +996,7 @@ Report synchronization results in a structured format:
610
996
 
611
997
  ## 🧠 Context Management
612
998
 
613
- > For more information: `.moai/memory/development-guide.md` - see section "Context Engineering"
999
+ > For more information: Skill("moai-alfred-dev-guide") - see section "Context Engineering"
614
1000
 
615
1001
  ### Core strategy of this command
616
1002