moai-adk 0.25.4__py3-none-any.whl → 0.41.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 (672) hide show
  1. moai_adk/__init__.py +2 -5
  2. moai_adk/__main__.py +114 -82
  3. moai_adk/cli/__init__.py +6 -1
  4. moai_adk/cli/commands/__init__.py +1 -3
  5. moai_adk/cli/commands/analyze.py +5 -16
  6. moai_adk/cli/commands/doctor.py +6 -18
  7. moai_adk/cli/commands/init.py +60 -126
  8. moai_adk/cli/commands/language.py +14 -35
  9. moai_adk/cli/commands/status.py +9 -15
  10. moai_adk/cli/commands/update.py +1560 -190
  11. moai_adk/cli/prompts/init_prompts.py +112 -56
  12. moai_adk/cli/spec_status.py +263 -0
  13. moai_adk/cli/ui/__init__.py +44 -0
  14. moai_adk/cli/ui/progress.py +422 -0
  15. moai_adk/cli/ui/prompts.py +389 -0
  16. moai_adk/cli/ui/theme.py +129 -0
  17. moai_adk/cli/worktree/__init__.py +27 -0
  18. moai_adk/cli/worktree/__main__.py +31 -0
  19. moai_adk/cli/worktree/cli.py +683 -0
  20. moai_adk/cli/worktree/exceptions.py +89 -0
  21. moai_adk/cli/worktree/manager.py +493 -0
  22. moai_adk/cli/worktree/models.py +65 -0
  23. moai_adk/cli/worktree/registry.py +422 -0
  24. moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
  25. moai_adk/core/analysis/session_analyzer.py +17 -56
  26. moai_adk/core/claude_integration.py +26 -54
  27. moai_adk/core/command_helpers.py +10 -10
  28. moai_adk/core/comprehensive_monitoring_system.py +1183 -0
  29. moai_adk/core/config/migration.py +19 -9
  30. moai_adk/core/config/unified.py +610 -0
  31. moai_adk/core/context_manager.py +6 -12
  32. moai_adk/core/enterprise_features.py +1404 -0
  33. moai_adk/core/error_recovery_system.py +747 -116
  34. moai_adk/core/event_driven_hook_system.py +1371 -0
  35. moai_adk/core/git/__init__.py +8 -0
  36. moai_adk/core/git/branch_manager.py +3 -11
  37. moai_adk/core/git/checkpoint.py +1 -3
  38. moai_adk/core/git/conflict_detector.py +422 -0
  39. moai_adk/core/git/event_detector.py +16 -5
  40. moai_adk/core/git/manager.py +91 -1
  41. moai_adk/core/input_validation_middleware.py +1006 -0
  42. moai_adk/core/integration/engine.py +6 -18
  43. moai_adk/core/integration/integration_tester.py +10 -9
  44. moai_adk/core/integration/utils.py +1 -1
  45. moai_adk/core/issue_creator.py +10 -28
  46. moai_adk/core/jit_context_loader.py +956 -0
  47. moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
  48. moai_adk/core/language_config_resolver.py +578 -0
  49. moai_adk/core/language_validator.py +28 -41
  50. moai_adk/core/mcp/setup.py +15 -12
  51. moai_adk/core/merge/__init__.py +9 -0
  52. moai_adk/core/merge/analyzer.py +666 -0
  53. moai_adk/core/migration/alfred_to_moai_migrator.py +389 -0
  54. moai_adk/core/migration/backup_manager.py +131 -12
  55. moai_adk/core/migration/custom_element_scanner.py +358 -0
  56. moai_adk/core/migration/file_migrator.py +181 -18
  57. moai_adk/core/migration/interactive_checkbox_ui.py +499 -0
  58. moai_adk/core/migration/selective_restorer.py +470 -0
  59. moai_adk/core/migration/template_utils.py +74 -0
  60. moai_adk/core/migration/user_selection_ui.py +338 -0
  61. moai_adk/core/migration/version_detector.py +127 -27
  62. moai_adk/core/migration/version_migrator.py +47 -12
  63. moai_adk/core/performance/cache_system.py +8 -10
  64. moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
  65. moai_adk/core/project/backup_utils.py +9 -1
  66. moai_adk/core/project/checker.py +2 -4
  67. moai_adk/core/project/detector.py +1 -3
  68. moai_adk/core/project/initializer.py +142 -93
  69. moai_adk/core/project/phase_executor.py +130 -111
  70. moai_adk/core/project/validator.py +6 -12
  71. moai_adk/core/quality/trust_checker.py +39 -37
  72. moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
  73. moai_adk/core/robust_json_parser.py +611 -0
  74. moai_adk/core/rollback_manager.py +116 -164
  75. moai_adk/core/session_manager.py +10 -26
  76. moai_adk/core/skill_loading_system.py +579 -0
  77. moai_adk/core/spec_status_manager.py +64 -74
  78. moai_adk/core/template/backup.py +48 -22
  79. moai_adk/core/template/config.py +142 -45
  80. moai_adk/core/template/merger.py +45 -27
  81. moai_adk/core/template/processor.py +391 -152
  82. moai_adk/core/template_engine.py +83 -41
  83. moai_adk/core/template_variable_synchronizer.py +431 -0
  84. moai_adk/core/unified_permission_manager.py +745 -0
  85. moai_adk/core/user_behavior_analytics.py +851 -0
  86. moai_adk/core/version_sync.py +477 -0
  87. moai_adk/foundation/__init__.py +56 -0
  88. moai_adk/foundation/backend.py +1027 -0
  89. moai_adk/foundation/database.py +1115 -0
  90. moai_adk/foundation/devops.py +1585 -0
  91. moai_adk/foundation/ears.py +431 -0
  92. moai_adk/foundation/frontend.py +870 -0
  93. moai_adk/foundation/git/commit_templates.py +4 -12
  94. moai_adk/foundation/git.py +376 -0
  95. moai_adk/foundation/langs.py +484 -0
  96. moai_adk/foundation/ml_ops.py +1162 -0
  97. moai_adk/foundation/testing.py +1524 -0
  98. moai_adk/foundation/trust/trust_principles.py +23 -72
  99. moai_adk/foundation/trust/validation_checklist.py +57 -162
  100. moai_adk/project/__init__.py +0 -0
  101. moai_adk/project/configuration.py +1084 -0
  102. moai_adk/project/documentation.py +566 -0
  103. moai_adk/project/schema.py +447 -0
  104. moai_adk/statusline/alfred_detector.py +1 -3
  105. moai_adk/statusline/config.py +18 -6
  106. moai_adk/statusline/enhanced_output_style_detector.py +23 -15
  107. moai_adk/statusline/main.py +109 -15
  108. moai_adk/statusline/renderer.py +85 -69
  109. moai_adk/statusline/update_checker.py +3 -9
  110. moai_adk/statusline/version_reader.py +140 -46
  111. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +716 -0
  112. moai_adk/templates/.claude/agents/moai/builder-agent.md +480 -0
  113. moai_adk/templates/.claude/agents/moai/builder-command.md +1194 -0
  114. moai_adk/templates/.claude/agents/moai/builder-plugin.md +753 -0
  115. moai_adk/templates/.claude/agents/moai/builder-skill.md +672 -0
  116. moai_adk/templates/.claude/agents/moai/expert-backend.md +903 -0
  117. moai_adk/templates/.claude/agents/moai/expert-database.md +782 -0
  118. moai_adk/templates/.claude/agents/moai/expert-debug.md +407 -0
  119. moai_adk/templates/.claude/agents/moai/expert-devops.md +722 -0
  120. moai_adk/templates/.claude/agents/moai/expert-frontend.md +727 -0
  121. moai_adk/templates/.claude/agents/moai/expert-performance.md +661 -0
  122. moai_adk/templates/.claude/agents/moai/expert-refactoring.md +218 -0
  123. moai_adk/templates/.claude/agents/moai/expert-security.md +525 -0
  124. moai_adk/templates/.claude/agents/moai/expert-testing.md +737 -0
  125. moai_adk/templates/.claude/agents/moai/expert-uiux.md +1047 -0
  126. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +438 -0
  127. moai_adk/templates/.claude/agents/moai/manager-docs.md +578 -0
  128. moai_adk/templates/.claude/agents/moai/manager-git.md +1092 -0
  129. moai_adk/templates/.claude/agents/moai/manager-project.md +897 -0
  130. moai_adk/templates/.claude/agents/moai/manager-quality.md +640 -0
  131. moai_adk/templates/.claude/agents/moai/manager-spec.md +815 -0
  132. moai_adk/templates/.claude/agents/moai/manager-strategy.md +786 -0
  133. moai_adk/templates/.claude/agents/moai/manager-tdd.md +797 -0
  134. moai_adk/templates/.claude/agents/moai/mcp-context7.md +464 -0
  135. moai_adk/templates/.claude/agents/moai/mcp-figma.md +1588 -0
  136. moai_adk/templates/.claude/agents/moai/mcp-notion.md +795 -0
  137. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +475 -0
  138. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1038 -0
  139. moai_adk/templates/.claude/commands/moai/0-project.md +1339 -0
  140. moai_adk/templates/.claude/commands/moai/1-plan.md +1367 -0
  141. moai_adk/templates/.claude/commands/moai/2-run.md +825 -0
  142. moai_adk/templates/.claude/commands/moai/3-sync.md +1358 -0
  143. moai_adk/templates/.claude/commands/moai/9-feedback.md +320 -0
  144. moai_adk/templates/.claude/hooks/__init__.py +8 -0
  145. moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
  146. moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
  147. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +104 -0
  148. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +247 -0
  149. moai_adk/templates/.claude/hooks/moai/lib/common.py +161 -0
  150. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +444 -0
  151. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
  152. moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
  153. moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
  154. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
  155. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +407 -0
  156. moai_adk/templates/.claude/hooks/moai/lib/models.py +104 -0
  157. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +219 -0
  158. moai_adk/templates/.claude/hooks/moai/lib/project.py +777 -0
  159. moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
  160. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
  161. moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +804 -0
  162. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +542 -0
  163. moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +256 -0
  164. moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +253 -0
  165. moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +307 -0
  166. moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +231 -0
  167. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +866 -0
  168. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +1125 -0
  169. moai_adk/templates/.claude/output-styles/moai/r2d2.md +643 -0
  170. moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
  171. moai_adk/templates/.claude/settings.json +209 -0
  172. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +302 -0
  173. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
  174. moai_adk/templates/.claude/skills/moai-ai-nano-banana/reference.md +139 -0
  175. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
  176. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
  177. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +302 -0
  178. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +252 -0
  179. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +56 -0
  180. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +120 -0
  181. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
  182. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +185 -0
  183. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +207 -0
  184. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +234 -0
  185. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +324 -0
  186. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
  187. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
  188. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +326 -0
  189. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
  190. moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
  191. moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
  192. moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
  193. moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
  194. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
  195. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +194 -0
  196. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
  197. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/component-architecture.md +723 -0
  198. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/nextjs16-patterns.md +713 -0
  199. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/performance-optimization.md +694 -0
  200. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/react19-patterns.md +591 -0
  201. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/state-management.md +680 -0
  202. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/vue35-patterns.md +802 -0
  203. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
  204. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +454 -0
  205. moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
  206. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
  207. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
  208. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
  209. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
  210. moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
  211. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +280 -0
  212. moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
  213. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +327 -0
  214. moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
  215. moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
  216. moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
  217. moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
  218. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
  219. moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
  220. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +243 -0
  221. moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
  222. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/advanced-agent-patterns.md +370 -0
  223. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
  224. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-cli-reference-official.md +420 -0
  225. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
  226. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-devcontainers-official.md +381 -0
  227. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-discover-plugins-official.md +379 -0
  228. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-headless-official.md +378 -0
  229. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +670 -0
  230. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
  231. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
  232. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugin-marketplaces-official.md +308 -0
  233. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugins-official.md +432 -0
  234. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sandboxing-official.md +282 -0
  235. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
  236. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +467 -0
  237. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-statusline-official.md +293 -0
  238. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +420 -0
  239. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
  240. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
  241. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
  242. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
  243. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
  244. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
  245. moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
  246. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +449 -0
  247. moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
  248. moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
  249. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +414 -0
  250. moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
  251. moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
  252. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +359 -0
  253. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
  254. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-advanced.md +279 -0
  255. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-implementation.md +267 -0
  256. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +228 -0
  257. moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
  258. moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
  259. moai_adk/templates/.claude/skills/moai-foundation-core/modules/patterns.md +22 -0
  260. moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
  261. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-ears-format.md +200 -0
  262. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +171 -0
  263. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-tdd-implementation.md +275 -0
  264. moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
  265. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +239 -0
  266. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-implementation.md +244 -0
  267. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-validation.md +219 -0
  268. moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
  269. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +311 -0
  270. moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
  271. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
  272. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
  273. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
  274. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
  275. moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
  276. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +363 -0
  277. moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
  278. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
  279. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
  280. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
  281. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
  282. moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
  283. moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
  284. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
  285. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
  286. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +430 -0
  287. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +17 -0
  288. moai_adk/templates/.claude/skills/moai-lang-cpp/modules/advanced-patterns.md +401 -0
  289. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +17 -0
  290. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +193 -0
  291. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +585 -0
  292. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/aspnet-core.md +627 -0
  293. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/blazor-components.md +767 -0
  294. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/cqrs-validation.md +626 -0
  295. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/csharp12-features.md +580 -0
  296. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/efcore-patterns.md +622 -0
  297. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +403 -0
  298. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +394 -0
  299. moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +17 -0
  300. moai_adk/templates/.claude/skills/moai-lang-elixir/modules/advanced-patterns.md +531 -0
  301. moai_adk/templates/.claude/skills/moai-lang-elixir/reference.md +17 -0
  302. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +472 -0
  303. moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
  304. moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
  305. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +377 -0
  306. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
  307. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
  308. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +386 -0
  309. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
  310. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
  311. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +418 -0
  312. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +973 -0
  313. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +1543 -0
  314. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +383 -0
  315. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
  316. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
  317. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +504 -0
  318. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +17 -0
  319. moai_adk/templates/.claude/skills/moai-lang-php/modules/advanced-patterns.md +538 -0
  320. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +17 -0
  321. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +489 -0
  322. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
  323. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
  324. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +389 -0
  325. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +17 -0
  326. moai_adk/templates/.claude/skills/moai-lang-r/modules/advanced-patterns.md +489 -0
  327. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +17 -0
  328. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +432 -0
  329. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +17 -0
  330. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/advanced-patterns.md +309 -0
  331. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/testing-patterns.md +306 -0
  332. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +17 -0
  333. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +377 -0
  334. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
  335. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
  336. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +211 -0
  337. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
  338. moai_adk/templates/.claude/skills/moai-lang-scala/modules/akka-actors.md +479 -0
  339. moai_adk/templates/.claude/skills/moai-lang-scala/modules/cats-effect.md +489 -0
  340. moai_adk/templates/.claude/skills/moai-lang-scala/modules/functional-programming.md +460 -0
  341. moai_adk/templates/.claude/skills/moai-lang-scala/modules/spark-data.md +498 -0
  342. moai_adk/templates/.claude/skills/moai-lang-scala/modules/zio-patterns.md +541 -0
  343. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
  344. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +191 -0
  345. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
  346. moai_adk/templates/.claude/skills/moai-lang-swift/modules/combine-reactive.md +256 -0
  347. moai_adk/templates/.claude/skills/moai-lang-swift/modules/concurrency.md +270 -0
  348. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swift6-features.md +265 -0
  349. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swiftui-patterns.md +314 -0
  350. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
  351. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +364 -0
  352. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
  353. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
  354. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +164 -0
  355. moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
  356. moai_adk/templates/.claude/skills/moai-library-mermaid/modules/advanced-patterns.md +465 -0
  357. moai_adk/templates/.claude/skills/moai-library-mermaid/modules/optimization.md +440 -0
  358. moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
  359. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +335 -0
  360. moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
  361. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
  362. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +336 -0
  363. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +350 -0
  364. moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
  365. moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
  366. moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
  367. moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
  368. moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
  369. moai_adk/templates/.claude/skills/moai-library-nextra/modules/optimization.md +303 -0
  370. moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
  371. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +373 -0
  372. moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
  373. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
  374. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
  375. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
  376. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
  377. moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
  378. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +283 -0
  379. moai_adk/templates/.claude/skills/moai-platform-auth0/examples.md +2446 -0
  380. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/adaptive-mfa.md +233 -0
  381. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/akamai-integration.md +214 -0
  382. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/application-credentials.md +280 -0
  383. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-log-events.md +224 -0
  384. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-overview.md +140 -0
  385. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/bot-detection.md +144 -0
  386. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/breached-password-detection.md +187 -0
  387. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/brute-force-protection.md +189 -0
  388. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/certifications.md +282 -0
  389. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/compliance-overview.md +263 -0
  390. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/continuous-session-protection.md +307 -0
  391. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/customize-mfa.md +177 -0
  392. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/dpop-implementation.md +283 -0
  393. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/fapi-implementation.md +259 -0
  394. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/gdpr-compliance.md +313 -0
  395. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/guardian-configuration.md +269 -0
  396. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/highly-regulated-identity.md +272 -0
  397. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/jwt-fundamentals.md +248 -0
  398. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mdl-verification.md +210 -0
  399. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-api-management.md +278 -0
  400. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-factors.md +226 -0
  401. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-overview.md +174 -0
  402. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mtls-sender-constraining.md +316 -0
  403. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/ropg-flow-mfa.md +216 -0
  404. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-center.md +325 -0
  405. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-guidance.md +277 -0
  406. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/state-parameters.md +177 -0
  407. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/step-up-authentication.md +251 -0
  408. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/suspicious-ip-throttling.md +240 -0
  409. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/tenant-access-control.md +179 -0
  410. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/webauthn-fido.md +235 -0
  411. moai_adk/templates/.claude/skills/moai-platform-auth0/reference.md +224 -0
  412. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +425 -0
  413. moai_adk/templates/.claude/skills/moai-platform-clerk/modules/advanced-patterns.md +417 -0
  414. moai_adk/templates/.claude/skills/moai-platform-clerk/reference.md +273 -0
  415. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +228 -0
  416. moai_adk/templates/.claude/skills/moai-platform-convex/examples.md +506 -0
  417. moai_adk/templates/.claude/skills/moai-platform-convex/modules/auth-integration.md +421 -0
  418. moai_adk/templates/.claude/skills/moai-platform-convex/modules/file-storage.md +474 -0
  419. moai_adk/templates/.claude/skills/moai-platform-convex/modules/reactive-queries.md +302 -0
  420. moai_adk/templates/.claude/skills/moai-platform-convex/modules/server-functions.md +452 -0
  421. moai_adk/templates/.claude/skills/moai-platform-convex/reference.md +385 -0
  422. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +249 -0
  423. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/examples.md +514 -0
  424. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/custom-claims.md +374 -0
  425. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/phone-auth.md +372 -0
  426. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/social-auth.md +339 -0
  427. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/reference.md +382 -0
  428. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +230 -0
  429. moai_adk/templates/.claude/skills/moai-platform-firestore/examples.md +445 -0
  430. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/offline-cache.md +392 -0
  431. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/realtime-listeners.md +441 -0
  432. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/security-rules.md +352 -0
  433. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/transactions.md +452 -0
  434. moai_adk/templates/.claude/skills/moai-platform-firestore/reference.md +322 -0
  435. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +205 -0
  436. moai_adk/templates/.claude/skills/moai-platform-neon/examples.md +470 -0
  437. moai_adk/templates/.claude/skills/moai-platform-neon/modules/auto-scaling.md +349 -0
  438. moai_adk/templates/.claude/skills/moai-platform-neon/modules/branching-workflows.md +354 -0
  439. moai_adk/templates/.claude/skills/moai-platform-neon/modules/connection-pooling.md +412 -0
  440. moai_adk/templates/.claude/skills/moai-platform-neon/modules/pitr-backups.md +458 -0
  441. moai_adk/templates/.claude/skills/moai-platform-neon/reference.md +272 -0
  442. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +223 -0
  443. moai_adk/templates/.claude/skills/moai-platform-railway/examples.md +539 -0
  444. moai_adk/templates/.claude/skills/moai-platform-railway/modules/docker-deployment.md +261 -0
  445. moai_adk/templates/.claude/skills/moai-platform-railway/modules/multi-service.md +291 -0
  446. moai_adk/templates/.claude/skills/moai-platform-railway/modules/networking-domains.md +338 -0
  447. moai_adk/templates/.claude/skills/moai-platform-railway/modules/volumes-storage.md +353 -0
  448. moai_adk/templates/.claude/skills/moai-platform-railway/reference.md +374 -0
  449. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +206 -0
  450. moai_adk/templates/.claude/skills/moai-platform-supabase/examples.md +502 -0
  451. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/auth-integration.md +384 -0
  452. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/edge-functions.md +371 -0
  453. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/postgresql-pgvector.md +231 -0
  454. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/realtime-presence.md +354 -0
  455. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/row-level-security.md +286 -0
  456. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/storage-cdn.md +319 -0
  457. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/typescript-patterns.md +453 -0
  458. moai_adk/templates/.claude/skills/moai-platform-supabase/reference.md +284 -0
  459. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +209 -0
  460. moai_adk/templates/.claude/skills/moai-platform-vercel/examples.md +502 -0
  461. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/analytics-speed.md +348 -0
  462. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/deployment-config.md +344 -0
  463. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/edge-functions.md +222 -0
  464. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/isr-caching.md +306 -0
  465. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/kv-storage.md +399 -0
  466. moai_adk/templates/.claude/skills/moai-platform-vercel/reference.md +360 -0
  467. moai_adk/templates/.claude/skills/moai-plugin-builder/SKILL.md +473 -0
  468. moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
  469. moai_adk/templates/.claude/skills/moai-plugin-builder/modules/migration.md +341 -0
  470. moai_adk/templates/.claude/skills/moai-plugin-builder/modules/validation.md +373 -0
  471. moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +464 -0
  472. moai_adk/templates/.claude/skills/moai-tool-ast-grep/SKILL.md +306 -0
  473. moai_adk/templates/.claude/skills/moai-tool-ast-grep/examples.md +1099 -0
  474. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/language-specific.md +307 -0
  475. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/pattern-syntax.md +237 -0
  476. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/refactoring-patterns.md +260 -0
  477. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/security-rules.md +239 -0
  478. moai_adk/templates/.claude/skills/moai-tool-ast-grep/reference.md +288 -0
  479. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/go.yml +90 -0
  480. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/python.yml +101 -0
  481. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/typescript.yml +83 -0
  482. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/complexity-check.yml +94 -0
  483. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/deprecated-apis.yml +84 -0
  484. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/secrets-detection.yml +89 -0
  485. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/sql-injection.yml +45 -0
  486. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/xss-prevention.yml +50 -0
  487. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml +54 -0
  488. moai_adk/templates/.claude/skills/moai-tool-opencode/SKILL.md +214 -0
  489. moai_adk/templates/.claude/skills/moai-tool-opencode/examples.md +697 -0
  490. moai_adk/templates/.claude/skills/moai-tool-opencode/index.md +96 -0
  491. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/acp.md +115 -0
  492. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/agents.md +241 -0
  493. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/commands.md +197 -0
  494. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/custom-tools.md +197 -0
  495. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/formatters.md +164 -0
  496. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/keybinds.md +150 -0
  497. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/lsp-servers.md +156 -0
  498. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/mcp-servers.md +214 -0
  499. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/models.md +197 -0
  500. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/permissions.md +162 -0
  501. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/rules.md +129 -0
  502. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/skills.md +192 -0
  503. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/themes.md +200 -0
  504. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/tools.md +169 -0
  505. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/config.md +211 -0
  506. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/enterprise.md +68 -0
  507. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/intro.md +127 -0
  508. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/migration-1.0.md +82 -0
  509. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/network.md +72 -0
  510. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/providers.md +310 -0
  511. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/troubleshooting.md +124 -0
  512. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/ecosystem.md +75 -0
  513. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/plugins.md +218 -0
  514. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/sdk.md +266 -0
  515. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/server.md +207 -0
  516. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/cli.md +159 -0
  517. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/github.md +181 -0
  518. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/gitlab.md +122 -0
  519. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/ide.md +74 -0
  520. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/share.md +106 -0
  521. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/tui.md +129 -0
  522. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/zen.md +118 -0
  523. moai_adk/templates/.claude/skills/moai-tool-opencode/reference.md +790 -0
  524. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +211 -0
  525. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
  526. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/modules/advanced-patterns.md +379 -0
  527. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/modules/optimization.md +286 -0
  528. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
  529. moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
  530. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +260 -0
  531. moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
  532. moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
  533. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
  534. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1434 -0
  535. moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
  536. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
  537. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
  538. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +92 -0
  539. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
  540. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
  541. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
  542. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
  543. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
  544. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +336 -0
  545. moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
  546. moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
  547. moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
  548. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +386 -0
  549. moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
  550. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
  551. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
  552. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
  553. moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
  554. moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
  555. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +307 -0
  556. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
  557. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
  558. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
  559. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
  560. moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
  561. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +269 -0
  562. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/advanced-patterns.md +576 -0
  563. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +302 -0
  564. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/context7-integration.md +286 -0
  565. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/review-workflows.md +500 -0
  566. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/relevance-analysis.md +154 -0
  567. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/safety-analysis.md +148 -0
  568. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/scoring-algorithms.md +196 -0
  569. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/timeliness-analysis.md +168 -0
  570. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/truthfulness-analysis.md +136 -0
  571. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/usability-analysis.md +153 -0
  572. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework.md +257 -0
  573. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +263 -0
  574. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/analysis-patterns.md +340 -0
  575. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/core-classes.md +299 -0
  576. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/tool-integration.md +380 -0
  577. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/debugging-workflows.md +451 -0
  578. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/error-analysis.md +442 -0
  579. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/optimization.md +505 -0
  580. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/optimization-patterns.md +473 -0
  581. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/profiling-techniques.md +481 -0
  582. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/ai-optimization.md +241 -0
  583. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/bottleneck-detection.md +397 -0
  584. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/optimization-plan.md +315 -0
  585. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/profiler-core.md +277 -0
  586. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/real-time-monitoring.md +187 -0
  587. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +327 -0
  588. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/quality-metrics.md +415 -0
  589. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/ai-workflows.md +620 -0
  590. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/patterns.md +692 -0
  591. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/security-analysis.md +429 -0
  592. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +313 -0
  593. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/static-analysis.md +438 -0
  594. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd/core-classes.md +397 -0
  595. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/advanced-features.md +494 -0
  596. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/red-green-refactor.md +316 -0
  597. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-generation.md +471 -0
  598. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-patterns.md +371 -0
  599. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +265 -0
  600. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/trust5-validation.md +428 -0
  601. moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
  602. moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
  603. moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
  604. moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
  605. moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
  606. moai_adk/templates/.claude/skills/moai-workflow-worktree/SKILL.md +227 -0
  607. moai_adk/templates/.claude/skills/moai-workflow-worktree/examples.md +606 -0
  608. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/integration-patterns.md +149 -0
  609. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/moai-adk-integration.md +245 -0
  610. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-advanced.md +310 -0
  611. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-development.md +202 -0
  612. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-workflows.md +302 -0
  613. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/registry-architecture.md +271 -0
  614. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/resource-optimization.md +300 -0
  615. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/tools-integration.md +280 -0
  616. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/troubleshooting.md +397 -0
  617. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-commands.md +296 -0
  618. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-management.md +217 -0
  619. moai_adk/templates/.claude/skills/moai-workflow-worktree/reference.md +357 -0
  620. moai_adk/templates/.git-hooks/pre-commit +103 -41
  621. moai_adk/templates/.git-hooks/pre-push +244 -31
  622. moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
  623. moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
  624. moai_adk/templates/.gitignore +181 -44
  625. moai_adk/templates/.lsp.json +152 -0
  626. moai_adk/templates/.mcp.json +6 -15
  627. moai_adk/templates/.moai/config/config.yaml +58 -0
  628. moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
  629. moai_adk/templates/.moai/config/questions/_schema.yaml +174 -0
  630. moai_adk/templates/.moai/config/questions/tab0-init.yaml +259 -0
  631. moai_adk/templates/.moai/config/questions/tab1-user.yaml +107 -0
  632. moai_adk/templates/.moai/config/questions/tab2-project.yaml +79 -0
  633. moai_adk/templates/.moai/config/questions/tab3-git.yaml +632 -0
  634. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +183 -0
  635. moai_adk/templates/.moai/config/questions/tab5-system.yaml +96 -0
  636. moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -0
  637. moai_adk/templates/.moai/config/sections/language.yaml +11 -0
  638. moai_adk/templates/.moai/config/sections/project.yaml +13 -0
  639. moai_adk/templates/.moai/config/sections/quality.yaml +18 -0
  640. moai_adk/templates/.moai/config/sections/system.yaml +24 -0
  641. moai_adk/templates/.moai/config/sections/user.yaml +5 -0
  642. moai_adk/templates/.moai/config/statusline-config.yaml +92 -0
  643. moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
  644. moai_adk/templates/CLAUDE.md +804 -499
  645. moai_adk/utils/__init__.py +24 -1
  646. moai_adk/utils/banner.py +7 -10
  647. moai_adk/utils/common.py +49 -30
  648. moai_adk/utils/link_validator.py +4 -12
  649. moai_adk/utils/safe_file_reader.py +2 -6
  650. moai_adk/utils/timeout.py +160 -0
  651. moai_adk/utils/toon_utils.py +256 -0
  652. moai_adk/version.py +22 -0
  653. moai_adk-0.41.0.dist-info/METADATA +3274 -0
  654. moai_adk-0.41.0.dist-info/RECORD +683 -0
  655. {moai_adk-0.25.4.dist-info → moai_adk-0.41.0.dist-info}/WHEEL +1 -1
  656. {moai_adk-0.25.4.dist-info → moai_adk-0.41.0.dist-info}/entry_points.txt +1 -0
  657. moai_adk/cli/commands/backup.py +0 -82
  658. moai_adk/cli/commands/improve_user_experience.py +0 -348
  659. moai_adk/cli/commands/migrate.py +0 -158
  660. moai_adk/cli/commands/validate_links.py +0 -118
  661. moai_adk/core/config/auto_spec_config.py +0 -346
  662. moai_adk/core/hooks/post_tool_auto_spec_completion.py +0 -925
  663. moai_adk/core/spec/confidence_scoring.py +0 -749
  664. moai_adk/core/spec/ears_template_engine.py +0 -1182
  665. moai_adk/core/spec/quality_validator.py +0 -721
  666. moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -413
  667. moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
  668. moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
  669. moai_adk/utils/user_experience.py +0 -531
  670. moai_adk-0.25.4.dist-info/METADATA +0 -2279
  671. moai_adk-0.25.4.dist-info/RECORD +0 -112
  672. {moai_adk-0.25.4.dist-info → moai_adk-0.41.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,389 @@
1
+ """
2
+ Alfred to Moai folder structure migration for MoAI-ADK
3
+
4
+ Handles automatic migration from legacy alfred/ folders to new moai/ structure.
5
+ - Creates backup before migration
6
+ - Installs fresh moai/ templates from package
7
+ - Deletes alfred/ folders
8
+ - Updates settings.json Hook paths
9
+ - Records migration status in config.json (legacy) or config.yaml
10
+ - Provides automatic rollback on failure
11
+
12
+ BACKWARD COMPATIBILITY NOTE:
13
+ - This migration tool maintains compatibility with legacy config.json format
14
+ - New projects use modular section-based YAML configs (.moai/config/sections/*.yaml)
15
+ - Migration status is recorded in whichever config format the project uses
16
+ - Both formats are supported during migration process
17
+ """
18
+
19
+ import json
20
+ import logging
21
+ import shutil
22
+ from datetime import datetime
23
+ from pathlib import Path
24
+ from typing import Optional
25
+
26
+ from .backup_manager import BackupManager
27
+
28
+ logger = logging.getLogger(__name__)
29
+
30
+
31
+ class AlfredToMoaiMigrator:
32
+ """Handles automatic migration from Alfred to Moai folder structure"""
33
+
34
+ def __init__(self, project_root: Path):
35
+ """
36
+ Initialize Alfred to Moai migrator
37
+
38
+ Args:
39
+ project_root: Root directory of the project
40
+ """
41
+ self.project_root = Path(project_root)
42
+ self.claude_root = self.project_root / ".claude"
43
+ self.config_path = self.project_root / ".moai" / "config" / "config.json"
44
+ self.settings_path = self.claude_root / "settings.json"
45
+ self.backup_manager = BackupManager(project_root)
46
+
47
+ # Define folder paths
48
+ self.alfred_folders = {
49
+ "commands": self.claude_root / "commands" / "alfred",
50
+ "agents": self.claude_root / "agents" / "alfred",
51
+ "hooks": self.claude_root / "hooks" / "alfred",
52
+ }
53
+
54
+ self.moai_folders = {
55
+ "commands": self.claude_root / "commands" / "moai",
56
+ "agents": self.claude_root / "agents" / "moai",
57
+ "hooks": self.claude_root / "hooks" / "moai",
58
+ }
59
+
60
+ def _load_config(self) -> dict:
61
+ """
62
+ Load config.json
63
+
64
+ Returns:
65
+ Dictionary from config.json, or empty dict if not found
66
+ """
67
+ if not self.config_path.exists():
68
+ return {}
69
+
70
+ try:
71
+ return json.loads(self.config_path.read_text(encoding="utf-8"))
72
+ except Exception as e:
73
+ logger.warning(f"Failed to load config.json: {e}")
74
+ return {}
75
+
76
+ def _save_config(self, config: dict) -> None:
77
+ """
78
+ Save config.json
79
+
80
+ Args:
81
+ config: Configuration dictionary to save
82
+
83
+ Raises:
84
+ Exception: If save fails
85
+ """
86
+ self.config_path.parent.mkdir(parents=True, exist_ok=True)
87
+ self.config_path.write_text(json.dumps(config, indent=2, ensure_ascii=False))
88
+
89
+ def needs_migration(self) -> bool:
90
+ """
91
+ Check if Alfred to Moai migration is needed
92
+
93
+ Returns:
94
+ True if migration is needed, False otherwise
95
+ """
96
+ # Check if already migrated
97
+ try:
98
+ config = self._load_config()
99
+ migration_state = config.get("migration", {}).get("alfred_to_moai", {})
100
+ if migration_state.get("migrated"):
101
+ logger.info("ℹ️ Alfred → Moai migration already completed")
102
+ if migration_state.get("timestamp"):
103
+ logger.info(f"Timestamp: {migration_state['timestamp']}")
104
+ return False
105
+ except Exception as e:
106
+ logger.debug(f"Config check error: {e}")
107
+
108
+ # Check if any alfred folder exists
109
+ has_alfred = any(folder.exists() for folder in self.alfred_folders.values())
110
+
111
+ if has_alfred:
112
+ detected = [name for name, folder in self.alfred_folders.items() if folder.exists()]
113
+ logger.debug(f"Alfred folders detected: {', '.join(detected)}")
114
+
115
+ return has_alfred
116
+
117
+ def execute_migration(self, backup_path: Optional[Path] = None) -> bool:
118
+ """
119
+ Execute Alfred to Moai migration
120
+
121
+ Args:
122
+ backup_path: Path to use for backup (if None, creates new backup)
123
+
124
+ Returns:
125
+ True if migration successful, False otherwise
126
+ """
127
+ try:
128
+ logger.info("\n[1/5] Backing up project...")
129
+
130
+ # Step 1: Create or use existing backup
131
+ if backup_path is None:
132
+ try:
133
+ backup_path = self.backup_manager.create_backup("alfred_to_moai_migration")
134
+ logger.info(f"✅ Backup completed: {backup_path}")
135
+ except Exception as e:
136
+ logger.error("❌ Error: Backup failed")
137
+ logger.error(f"Cause: {str(e)}")
138
+ return False
139
+ else:
140
+ logger.info(f"✅ Using existing backup: {backup_path}")
141
+
142
+ # Step 2: Detect alfred folders
143
+ logger.info("\n[2/5] Alfred folders detected:")
144
+ alfred_detected = {name: folder for name, folder in self.alfred_folders.items() if folder.exists()}
145
+
146
+ if not alfred_detected:
147
+ logger.warning("No Alfred folders found - skipping migration")
148
+ return True
149
+
150
+ logger.info(", ".join(alfred_detected.keys()))
151
+
152
+ # Step 3: Verify moai folders exist (should be created in Phase 1)
153
+ logger.info("\n[3/5] Verifying Moai template installation...")
154
+ missing_moai = [name for name, folder in self.moai_folders.items() if not folder.exists()]
155
+
156
+ if missing_moai:
157
+ logger.error(f"❌ Missing Moai folders: {', '.join(missing_moai)}")
158
+ logger.error("Phase 1 implementation required first (package template moai structure)")
159
+ self._rollback_migration(backup_path)
160
+ return False
161
+
162
+ logger.info("✅ Moai templates installed")
163
+
164
+ # Step 4: Update settings.json hooks
165
+ logger.info("\n[4/5] Updating paths...")
166
+ try:
167
+ self._update_settings_json_hooks()
168
+ logger.info("✅ settings.json Hook paths updated")
169
+ except Exception as e:
170
+ logger.error("❌ Error: Failed to update settings.json")
171
+ logger.error(f"Cause: {str(e)}")
172
+ self._rollback_migration(backup_path)
173
+ return False
174
+
175
+ # Step 5: Delete alfred folders
176
+ logger.info("\n[5/5] Cleaning up...")
177
+ try:
178
+ self._delete_alfred_folders(alfred_detected)
179
+ logger.info("✅ Alfred folders deleted")
180
+ except Exception as e:
181
+ logger.error("❌ Error: Failed to delete Alfred folders")
182
+ logger.error(f"Cause: {str(e)}")
183
+ self._rollback_migration(backup_path)
184
+ return False
185
+
186
+ # Step 6: Verify migration
187
+ logger.info("\n[6/6] Verifying migration...")
188
+ if not self._verify_migration():
189
+ logger.error("❌ Migration verification failed")
190
+ self._rollback_migration(backup_path)
191
+ return False
192
+
193
+ logger.info("✅ Migration verification passed")
194
+
195
+ # Step 7: Record migration status
196
+ logger.info("\nRecording migration status...")
197
+ try:
198
+ self._record_migration_state(backup_path, len(alfred_detected))
199
+ logger.info("✅ Migration status recorded")
200
+ except Exception as e:
201
+ logger.warning(f"⚠️ Failed to record status: {str(e)}")
202
+ # Don't rollback for this, migration was successful
203
+
204
+ logger.info("\n✅ Alfred → Moai migration completed!")
205
+ return True
206
+
207
+ except Exception as e:
208
+ logger.error(f"\n❌ Unexpected error: {str(e)}")
209
+ if backup_path:
210
+ self._rollback_migration(backup_path)
211
+ return False
212
+
213
+ def _delete_alfred_folders(self, alfred_detected: dict) -> None:
214
+ """
215
+ Delete Alfred folders
216
+
217
+ Args:
218
+ alfred_detected: Dictionary of detected alfred folders
219
+
220
+ Raises:
221
+ Exception: If deletion fails
222
+ """
223
+ for name, folder in alfred_detected.items():
224
+ if folder.exists():
225
+ try:
226
+ shutil.rmtree(folder)
227
+ logger.debug(f"Deleted: {folder}")
228
+ except Exception as e:
229
+ raise Exception(f"Failed to delete {name} folder: {str(e)}")
230
+
231
+ def _update_settings_json_hooks(self) -> None:
232
+ """
233
+ Update settings.json to replace alfred paths with moai paths
234
+
235
+ Raises:
236
+ Exception: If update fails
237
+ """
238
+ if not self.settings_path.exists():
239
+ logger.warning(f"settings.json file missing: {self.settings_path}")
240
+ return
241
+
242
+ try:
243
+ # Read settings.json
244
+ with open(self.settings_path, "r", encoding="utf-8") as f:
245
+ settings_content = f.read()
246
+
247
+ # Replace all alfred references with moai
248
+ # Pattern: .claude/hooks/alfred/ → .claude/hooks/moai/
249
+ updated_content = settings_content.replace(".claude/hooks/alfred/", ".claude/hooks/moai/")
250
+ updated_content = updated_content.replace(".claude/commands/alfred/", ".claude/commands/moai/")
251
+ updated_content = updated_content.replace(".claude/agents/alfred/", ".claude/agents/moai/")
252
+
253
+ # Write back to file
254
+ with open(self.settings_path, "w", encoding="utf-8") as f:
255
+ f.write(updated_content)
256
+
257
+ # Verify JSON validity
258
+ with open(self.settings_path, "r", encoding="utf-8") as f:
259
+ json.load(f) # This will raise if JSON is invalid
260
+
261
+ logger.debug("settings.json update and verification completed")
262
+
263
+ except json.JSONDecodeError as e:
264
+ raise Exception(f"settings.json JSON format error: {str(e)}")
265
+ except Exception as e:
266
+ raise Exception(f"Failed to update settings.json: {str(e)}")
267
+
268
+ def _verify_migration(self) -> bool:
269
+ """
270
+ Verify migration was successful
271
+
272
+ Returns:
273
+ True if migration is valid, False otherwise
274
+ """
275
+ # Check moai folders exist
276
+ for name, folder in self.moai_folders.items():
277
+ if not folder.exists():
278
+ logger.error(f"❌ Missing Moai {name} folder: {folder}")
279
+ return False
280
+
281
+ # Check alfred folders are deleted
282
+ for name, folder in self.alfred_folders.items():
283
+ if folder.exists():
284
+ logger.warning(f"⚠️ Alfred {name} folder still exists: {folder}")
285
+ return False
286
+
287
+ # Check settings.json hooks paths (ignore pattern matching strings like "Bash(alfred:*)")
288
+ if self.settings_path.exists():
289
+ try:
290
+ with open(self.settings_path, "r", encoding="utf-8") as f:
291
+ settings_content = f.read()
292
+
293
+ # Only check for hooks/alfred paths, not pattern strings
294
+ if (
295
+ ".claude/hooks/alfred/" in settings_content
296
+ or ".claude/commands/alfred/" in settings_content
297
+ or ".claude/agents/alfred/" in settings_content
298
+ ):
299
+ logger.error("❌ settings.json still contains alfred hook paths")
300
+ return False
301
+
302
+ if "moai" not in settings_content.lower():
303
+ logger.warning("⚠️ No moai references in settings.json")
304
+
305
+ except Exception as e:
306
+ logger.error(f"❌ settings.json verification failed: {str(e)}")
307
+ return False
308
+
309
+ logger.debug("Migration verification completed")
310
+ return True
311
+
312
+ def _record_migration_state(self, backup_path: Path, folders_count: int) -> None:
313
+ """
314
+ Record migration state in config.json
315
+
316
+ Args:
317
+ backup_path: Path to the backup
318
+ folders_count: Number of folders migrated
319
+
320
+ Raises:
321
+ Exception: If recording fails
322
+ """
323
+ try:
324
+ config = self._load_config()
325
+
326
+ # Initialize migration section if not exists
327
+ if "migration" not in config:
328
+ config["migration"] = {}
329
+
330
+ config["migration"]["alfred_to_moai"] = {
331
+ "migrated": True,
332
+ "timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
333
+ "folders_installed": 3, # commands, agents, hooks
334
+ "folders_removed": folders_count,
335
+ "backup_path": str(backup_path),
336
+ "package_version": self._get_package_version(),
337
+ }
338
+
339
+ self._save_config(config)
340
+ logger.debug("Migration state recorded in config.json")
341
+
342
+ except Exception as e:
343
+ raise Exception(f"Migration state recording failed: {str(e)}")
344
+
345
+ def _rollback_migration(self, backup_path: Path) -> None:
346
+ """
347
+ Rollback migration from backup
348
+
349
+ Args:
350
+ backup_path: Path to the backup to restore from
351
+ """
352
+ try:
353
+ logger.info("\n🔄 Starting automatic rollback...")
354
+ logger.info("[1/3] Restoring project...")
355
+
356
+ # Restore from backup
357
+ self.backup_manager.restore_backup(backup_path)
358
+
359
+ logger.info("✅ Project restored")
360
+ logger.info("[2/3] Resetting migration state...")
361
+
362
+ # Clear migration state in config
363
+ try:
364
+ config = self._load_config()
365
+ if "migration" in config and "alfred_to_moai" in config["migration"]:
366
+ del config["migration"]["alfred_to_moai"]
367
+ self._save_config(config)
368
+ except Exception as e:
369
+ logger.warning(f"⚠️ Failed to reset state: {str(e)}")
370
+
371
+ logger.info("✅ Rollback completed")
372
+ logger.info("💡 Tip: Run `moai-adk update` again after resolving the error")
373
+
374
+ except Exception as e:
375
+ logger.error(f"\n❌ Rollback failed: {str(e)}")
376
+ logger.error(f"⚠️ Manual recovery required: Please restore manually from backup: {backup_path}")
377
+
378
+ def _get_package_version(self) -> str:
379
+ """
380
+ Get current package version
381
+
382
+ Returns:
383
+ Version string
384
+ """
385
+ try:
386
+ config = self._load_config()
387
+ return config.get("moai", {}).get("version", "unknown")
388
+ except Exception:
389
+ return "unknown"
@@ -3,6 +3,11 @@ Backup management module for MoAI-ADK migrations
3
3
 
4
4
  Creates and manages backups during migration processes
5
5
  to ensure data safety and enable rollback.
6
+
7
+ Supports backup of:
8
+ - Legacy config.json (.moai/config.json) - pre-v0.24.0
9
+ - Intermediate config.json (.moai/config/config.json) - v0.24.0
10
+ - Section YAML files (.moai/config/sections/*.yaml) - v0.36.0+
6
11
  """
7
12
 
8
13
  import json
@@ -10,7 +15,7 @@ import logging
10
15
  import shutil
11
16
  from datetime import datetime
12
17
  from pathlib import Path
13
- from typing import Dict, List, Optional
18
+ from typing import Any, Dict, List, Optional
14
19
 
15
20
  logger = logging.getLogger(__name__)
16
21
 
@@ -46,15 +51,25 @@ class BackupManager:
46
51
 
47
52
  logger.info(f"Creating backup at {backup_dir}")
48
53
 
49
- # Files to backup
54
+ # Files to backup (supporting all config formats)
50
55
  backup_targets = [
56
+ # Legacy config.json (pre-v0.24.0)
51
57
  self.project_root / ".moai" / "config.json",
58
+ # Intermediate config.json (v0.24.0)
52
59
  self.project_root / ".moai" / "config" / "config.json",
60
+ # Statusline configs
53
61
  self.project_root / ".claude" / "statusline-config.yaml",
54
62
  self.project_root / ".moai" / "config" / "statusline-config.yaml",
55
63
  ]
56
64
 
65
+ # Add section YAML files (v0.36.0+)
66
+ sections_dir = self.project_root / ".moai" / "config" / "sections"
67
+ if sections_dir.exists():
68
+ for yaml_file in sections_dir.glob("*.yaml"):
69
+ backup_targets.append(yaml_file)
70
+
57
71
  backed_up_files = []
72
+ backed_up_dirs = []
58
73
 
59
74
  for target in backup_targets:
60
75
  if target.exists():
@@ -70,21 +85,47 @@ class BackupManager:
70
85
  backed_up_files.append(str(rel_path))
71
86
  logger.debug(f"Backed up: {rel_path}")
72
87
 
88
+ # Track sections directory if it exists
89
+ if sections_dir.exists():
90
+ backed_up_dirs.append(str(sections_dir.relative_to(self.project_root)))
91
+
73
92
  # Save backup metadata
74
93
  metadata = {
75
94
  "timestamp": timestamp,
76
95
  "description": description,
77
96
  "backed_up_files": backed_up_files,
97
+ "backed_up_dirs": backed_up_dirs,
78
98
  "project_root": str(self.project_root),
99
+ "config_format": self._detect_config_format(),
79
100
  }
80
101
 
81
102
  metadata_path = backup_dir / "backup_metadata.json"
82
- with open(metadata_path, "w") as f:
83
- json.dump(metadata, f, indent=2)
103
+ with open(metadata_path, "w", encoding="utf-8") as f:
104
+ json.dump(metadata, f, indent=2, ensure_ascii=False)
84
105
 
85
- logger.info(f"Backup created successfully: {backup_dir}")
106
+ logger.info(f"Backup created successfully: {backup_dir}")
86
107
  return backup_dir
87
108
 
109
+ def _detect_config_format(self) -> str:
110
+ """
111
+ Detect the current configuration format
112
+
113
+ Returns:
114
+ One of: "section_yaml", "intermediate_json", "legacy_json", "none"
115
+ """
116
+ sections_dir = self.project_root / ".moai" / "config" / "sections"
117
+ system_yaml = sections_dir / "system.yaml"
118
+ intermediate_config = self.project_root / ".moai" / "config" / "config.json"
119
+ legacy_config = self.project_root / ".moai" / "config.json"
120
+
121
+ if sections_dir.exists() and system_yaml.exists():
122
+ return "section_yaml"
123
+ elif intermediate_config.exists():
124
+ return "intermediate_json"
125
+ elif legacy_config.exists():
126
+ return "legacy_json"
127
+ return "none"
128
+
88
129
  def list_backups(self) -> List[Dict[str, str]]:
89
130
  """
90
131
  List all available backups
@@ -92,7 +133,7 @@ class BackupManager:
92
133
  Returns:
93
134
  List of backup information dictionaries
94
135
  """
95
- backups = []
136
+ backups: List[Dict[str, Any]] = []
96
137
 
97
138
  if not self.backup_base_dir.exists():
98
139
  return backups
@@ -102,16 +143,15 @@ class BackupManager:
102
143
  metadata_path = backup_dir / "backup_metadata.json"
103
144
  if metadata_path.exists():
104
145
  try:
105
- with open(metadata_path, "r") as f:
146
+ with open(metadata_path, "r", encoding="utf-8") as f:
106
147
  metadata = json.load(f)
107
148
  backups.append(
108
149
  {
109
150
  "path": str(backup_dir),
110
151
  "timestamp": metadata.get("timestamp", "unknown"),
111
- "description": metadata.get(
112
- "description", "unknown"
113
- ),
152
+ "description": metadata.get("description", "unknown"),
114
153
  "files": len(metadata.get("backed_up_files", [])),
154
+ "config_format": metadata.get("config_format", "unknown"),
115
155
  }
116
156
  )
117
157
  except Exception as e:
@@ -142,7 +182,7 @@ class BackupManager:
142
182
 
143
183
  try:
144
184
  # Read metadata
145
- with open(metadata_path, "r") as f:
185
+ with open(metadata_path, "r", encoding="utf-8") as f:
146
186
  metadata = json.load(f)
147
187
 
148
188
  logger.info(f"Restoring backup from {backup_path}")
@@ -160,7 +200,7 @@ class BackupManager:
160
200
  shutil.copy2(backup_file, target_file)
161
201
  logger.debug(f"Restored: {rel_path}")
162
202
 
163
- logger.info("Backup restored successfully")
203
+ logger.info("Backup restored successfully")
164
204
  return True
165
205
 
166
206
  except Exception as e:
@@ -206,3 +246,82 @@ class BackupManager:
206
246
  if backups:
207
247
  return Path(backups[0]["path"])
208
248
  return None
249
+
250
+ def create_full_project_backup(self, description: str = "pre-update-backup") -> Path:
251
+ """
252
+ Create a complete backup of entire project structure before update
253
+
254
+ Backs up:
255
+ - .claude/ (entire directory)
256
+ - .moai/ (entire directory)
257
+ - CLAUDE.md (file)
258
+ - .mcp.json (MCP server configuration) (v2.0.0)
259
+ - .lsp.json (LSP server configuration) (v2.0.0)
260
+ - .git-hooks/ (custom git hooks) (v2.0.0)
261
+
262
+ Args:
263
+ description: Description of this backup (default: "pre-update-backup")
264
+
265
+ Returns:
266
+ Path to the backup directory
267
+ """
268
+ # Create timestamped backup directory
269
+ timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
270
+ backup_dir = self.project_root / ".moai-backups" / f"{description}_{timestamp}"
271
+ backup_dir.mkdir(parents=True, exist_ok=True)
272
+
273
+ logger.info(f"Creating full project backup at {backup_dir}")
274
+
275
+ # Directories and files to backup
276
+ backup_targets = [
277
+ (self.project_root / ".claude", True), # (path, is_directory)
278
+ (self.project_root / ".moai", True),
279
+ (self.project_root / "CLAUDE.md", False),
280
+ # MCP/LSP configuration (v2.0.0)
281
+ (self.project_root / ".mcp.json", False), # MCP server configuration
282
+ (self.project_root / ".lsp.json", False), # LSP server configuration
283
+ # Git hooks (v2.0.0)
284
+ (self.project_root / ".git-hooks", True), # Custom git hooks
285
+ ]
286
+
287
+ backed_up_items = []
288
+
289
+ for target_path, is_dir in backup_targets:
290
+ if not target_path.exists():
291
+ continue
292
+
293
+ try:
294
+ rel_path = target_path.relative_to(self.project_root)
295
+ backup_path = backup_dir / rel_path
296
+
297
+ if is_dir:
298
+ # Backup directory
299
+ shutil.copytree(target_path, backup_path, dirs_exist_ok=True)
300
+ backed_up_items.append(str(rel_path))
301
+ logger.debug(f"Backed up directory: {rel_path}")
302
+ else:
303
+ # Backup file
304
+ backup_path.parent.mkdir(parents=True, exist_ok=True)
305
+ shutil.copy2(target_path, backup_path)
306
+ backed_up_items.append(str(rel_path))
307
+ logger.debug(f"Backed up file: {rel_path}")
308
+
309
+ except Exception as e:
310
+ logger.error(f"Failed to backup {target_path}: {e}")
311
+ raise
312
+
313
+ # Save backup metadata
314
+ metadata = {
315
+ "timestamp": timestamp,
316
+ "description": description,
317
+ "backed_up_items": backed_up_items,
318
+ "project_root": str(self.project_root),
319
+ "backup_type": "full_project",
320
+ }
321
+
322
+ metadata_path = backup_dir / "backup_metadata.json"
323
+ with open(metadata_path, "w", encoding="utf-8") as f:
324
+ json.dump(metadata, f, indent=2, ensure_ascii=False)
325
+
326
+ logger.info(f"Full project backup created successfully: {backup_dir}")
327
+ return backup_dir