moai-adk 0.35.1__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 (502) hide show
  1. moai_adk/__init__.py +10 -0
  2. moai_adk/__main__.py +199 -0
  3. moai_adk/cli/__init__.py +6 -0
  4. moai_adk/cli/commands/__init__.py +17 -0
  5. moai_adk/cli/commands/analyze.py +116 -0
  6. moai_adk/cli/commands/doctor.py +272 -0
  7. moai_adk/cli/commands/init.py +372 -0
  8. moai_adk/cli/commands/language.py +248 -0
  9. moai_adk/cli/commands/status.py +104 -0
  10. moai_adk/cli/commands/update.py +2686 -0
  11. moai_adk/cli/main.py +13 -0
  12. moai_adk/cli/prompts/__init__.py +5 -0
  13. moai_adk/cli/prompts/init_prompts.py +219 -0
  14. moai_adk/cli/spec_status.py +263 -0
  15. moai_adk/cli/ui/__init__.py +44 -0
  16. moai_adk/cli/ui/progress.py +422 -0
  17. moai_adk/cli/ui/prompts.py +389 -0
  18. moai_adk/cli/ui/theme.py +129 -0
  19. moai_adk/cli/worktree/__init__.py +27 -0
  20. moai_adk/cli/worktree/__main__.py +31 -0
  21. moai_adk/cli/worktree/cli.py +683 -0
  22. moai_adk/cli/worktree/exceptions.py +89 -0
  23. moai_adk/cli/worktree/manager.py +493 -0
  24. moai_adk/cli/worktree/models.py +65 -0
  25. moai_adk/cli/worktree/registry.py +422 -0
  26. moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
  27. moai_adk/core/__init__.py +1 -0
  28. moai_adk/core/analysis/__init__.py +9 -0
  29. moai_adk/core/analysis/session_analyzer.py +400 -0
  30. moai_adk/core/claude_integration.py +393 -0
  31. moai_adk/core/command_helpers.py +270 -0
  32. moai_adk/core/comprehensive_monitoring_system.py +1183 -0
  33. moai_adk/core/config/__init__.py +19 -0
  34. moai_adk/core/config/auto_spec_config.py +340 -0
  35. moai_adk/core/config/migration.py +244 -0
  36. moai_adk/core/config/unified.py +436 -0
  37. moai_adk/core/context_manager.py +273 -0
  38. moai_adk/core/diagnostics/__init__.py +19 -0
  39. moai_adk/core/diagnostics/slash_commands.py +159 -0
  40. moai_adk/core/enterprise_features.py +1404 -0
  41. moai_adk/core/error_recovery_system.py +1902 -0
  42. moai_adk/core/event_driven_hook_system.py +1371 -0
  43. moai_adk/core/git/__init__.py +31 -0
  44. moai_adk/core/git/branch.py +25 -0
  45. moai_adk/core/git/branch_manager.py +129 -0
  46. moai_adk/core/git/checkpoint.py +134 -0
  47. moai_adk/core/git/commit.py +67 -0
  48. moai_adk/core/git/conflict_detector.py +413 -0
  49. moai_adk/core/git/event_detector.py +79 -0
  50. moai_adk/core/git/manager.py +216 -0
  51. moai_adk/core/hooks/post_tool_auto_spec_completion.py +901 -0
  52. moai_adk/core/input_validation_middleware.py +1006 -0
  53. moai_adk/core/integration/__init__.py +22 -0
  54. moai_adk/core/integration/engine.py +157 -0
  55. moai_adk/core/integration/integration_tester.py +226 -0
  56. moai_adk/core/integration/models.py +88 -0
  57. moai_adk/core/integration/utils.py +211 -0
  58. moai_adk/core/issue_creator.py +305 -0
  59. moai_adk/core/jit_context_loader.py +956 -0
  60. moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
  61. moai_adk/core/language_config.py +202 -0
  62. moai_adk/core/language_config_resolver.py +572 -0
  63. moai_adk/core/language_validator.py +543 -0
  64. moai_adk/core/mcp/setup.py +116 -0
  65. moai_adk/core/merge/__init__.py +9 -0
  66. moai_adk/core/merge/analyzer.py +605 -0
  67. moai_adk/core/migration/__init__.py +18 -0
  68. moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
  69. moai_adk/core/migration/backup_manager.py +277 -0
  70. moai_adk/core/migration/custom_element_scanner.py +358 -0
  71. moai_adk/core/migration/file_migrator.py +209 -0
  72. moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
  73. moai_adk/core/migration/selective_restorer.py +470 -0
  74. moai_adk/core/migration/template_utils.py +74 -0
  75. moai_adk/core/migration/user_selection_ui.py +338 -0
  76. moai_adk/core/migration/version_detector.py +139 -0
  77. moai_adk/core/migration/version_migrator.py +228 -0
  78. moai_adk/core/performance/__init__.py +6 -0
  79. moai_adk/core/performance/cache_system.py +316 -0
  80. moai_adk/core/performance/parallel_processor.py +116 -0
  81. moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
  82. moai_adk/core/project/__init__.py +1 -0
  83. moai_adk/core/project/backup_utils.py +70 -0
  84. moai_adk/core/project/checker.py +300 -0
  85. moai_adk/core/project/detector.py +293 -0
  86. moai_adk/core/project/initializer.py +387 -0
  87. moai_adk/core/project/phase_executor.py +716 -0
  88. moai_adk/core/project/validator.py +139 -0
  89. moai_adk/core/quality/__init__.py +6 -0
  90. moai_adk/core/quality/trust_checker.py +377 -0
  91. moai_adk/core/quality/validators/__init__.py +6 -0
  92. moai_adk/core/quality/validators/base_validator.py +19 -0
  93. moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
  94. moai_adk/core/robust_json_parser.py +611 -0
  95. moai_adk/core/rollback_manager.py +918 -0
  96. moai_adk/core/session_manager.py +651 -0
  97. moai_adk/core/skill_loading_system.py +579 -0
  98. moai_adk/core/spec/confidence_scoring.py +680 -0
  99. moai_adk/core/spec/ears_template_engine.py +1247 -0
  100. moai_adk/core/spec/quality_validator.py +687 -0
  101. moai_adk/core/spec_status_manager.py +478 -0
  102. moai_adk/core/template/__init__.py +7 -0
  103. moai_adk/core/template/backup.py +174 -0
  104. moai_adk/core/template/config.py +191 -0
  105. moai_adk/core/template/languages.py +43 -0
  106. moai_adk/core/template/merger.py +233 -0
  107. moai_adk/core/template/processor.py +1200 -0
  108. moai_adk/core/template_engine.py +310 -0
  109. moai_adk/core/template_variable_synchronizer.py +417 -0
  110. moai_adk/core/unified_permission_manager.py +745 -0
  111. moai_adk/core/user_behavior_analytics.py +851 -0
  112. moai_adk/core/version_sync.py +429 -0
  113. moai_adk/foundation/__init__.py +56 -0
  114. moai_adk/foundation/backend.py +1027 -0
  115. moai_adk/foundation/database.py +1115 -0
  116. moai_adk/foundation/devops.py +1585 -0
  117. moai_adk/foundation/ears.py +431 -0
  118. moai_adk/foundation/frontend.py +870 -0
  119. moai_adk/foundation/git/commit_templates.py +557 -0
  120. moai_adk/foundation/git.py +376 -0
  121. moai_adk/foundation/langs.py +484 -0
  122. moai_adk/foundation/ml_ops.py +1162 -0
  123. moai_adk/foundation/testing.py +1524 -0
  124. moai_adk/foundation/trust/trust_principles.py +676 -0
  125. moai_adk/foundation/trust/validation_checklist.py +1573 -0
  126. moai_adk/project/__init__.py +0 -0
  127. moai_adk/project/configuration.py +1084 -0
  128. moai_adk/project/documentation.py +566 -0
  129. moai_adk/project/schema.py +447 -0
  130. moai_adk/statusline/__init__.py +38 -0
  131. moai_adk/statusline/alfred_detector.py +105 -0
  132. moai_adk/statusline/config.py +376 -0
  133. moai_adk/statusline/enhanced_output_style_detector.py +372 -0
  134. moai_adk/statusline/git_collector.py +190 -0
  135. moai_adk/statusline/main.py +322 -0
  136. moai_adk/statusline/metrics_tracker.py +78 -0
  137. moai_adk/statusline/renderer.py +343 -0
  138. moai_adk/statusline/update_checker.py +129 -0
  139. moai_adk/statusline/version_reader.py +741 -0
  140. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +714 -0
  141. moai_adk/templates/.claude/agents/moai/builder-agent.md +474 -0
  142. moai_adk/templates/.claude/agents/moai/builder-command.md +1172 -0
  143. moai_adk/templates/.claude/agents/moai/builder-plugin.md +637 -0
  144. moai_adk/templates/.claude/agents/moai/builder-skill.md +666 -0
  145. moai_adk/templates/.claude/agents/moai/expert-backend.md +899 -0
  146. moai_adk/templates/.claude/agents/moai/expert-database.md +777 -0
  147. moai_adk/templates/.claude/agents/moai/expert-debug.md +401 -0
  148. moai_adk/templates/.claude/agents/moai/expert-devops.md +720 -0
  149. moai_adk/templates/.claude/agents/moai/expert-frontend.md +734 -0
  150. moai_adk/templates/.claude/agents/moai/expert-performance.md +657 -0
  151. moai_adk/templates/.claude/agents/moai/expert-security.md +513 -0
  152. moai_adk/templates/.claude/agents/moai/expert-testing.md +733 -0
  153. moai_adk/templates/.claude/agents/moai/expert-uiux.md +1041 -0
  154. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +432 -0
  155. moai_adk/templates/.claude/agents/moai/manager-docs.md +573 -0
  156. moai_adk/templates/.claude/agents/moai/manager-git.md +1060 -0
  157. moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
  158. moai_adk/templates/.claude/agents/moai/manager-quality.md +624 -0
  159. moai_adk/templates/.claude/agents/moai/manager-spec.md +809 -0
  160. moai_adk/templates/.claude/agents/moai/manager-strategy.md +780 -0
  161. moai_adk/templates/.claude/agents/moai/manager-tdd.md +784 -0
  162. moai_adk/templates/.claude/agents/moai/mcp-context7.md +458 -0
  163. moai_adk/templates/.claude/agents/moai/mcp-figma.md +1607 -0
  164. moai_adk/templates/.claude/agents/moai/mcp-notion.md +789 -0
  165. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +469 -0
  166. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1032 -0
  167. moai_adk/templates/.claude/commands/moai/0-project.md +1386 -0
  168. moai_adk/templates/.claude/commands/moai/1-plan.md +1427 -0
  169. moai_adk/templates/.claude/commands/moai/2-run.md +943 -0
  170. moai_adk/templates/.claude/commands/moai/3-sync.md +1324 -0
  171. moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
  172. moai_adk/templates/.claude/hooks/__init__.py +8 -0
  173. moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
  174. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
  175. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
  176. moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
  177. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
  178. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
  179. moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
  180. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
  181. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
  182. moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
  183. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
  184. moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
  185. moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
  186. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
  187. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
  188. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
  189. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +1083 -0
  190. moai_adk/templates/.claude/output-styles/moai/r2d2.md +560 -0
  191. moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
  192. moai_adk/templates/.claude/settings.json +172 -0
  193. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +307 -0
  194. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
  195. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
  196. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
  197. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +249 -0
  198. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +406 -0
  199. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
  200. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
  201. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
  202. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
  203. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
  204. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +328 -0
  205. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +320 -0
  206. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
  207. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
  208. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +323 -0
  209. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
  210. moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
  211. moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
  212. moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
  213. moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
  214. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
  215. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +497 -0
  216. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
  217. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
  218. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +455 -0
  219. moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
  220. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
  221. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
  222. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
  223. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
  224. moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
  225. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +492 -0
  226. moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
  227. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
  228. moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
  229. moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
  230. moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
  231. moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
  232. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
  233. moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
  234. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +202 -0
  235. moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
  236. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
  237. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
  238. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
  239. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
  240. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
  241. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
  242. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
  243. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
  244. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
  245. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
  246. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
  247. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
  248. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
  249. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
  250. moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
  251. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +441 -0
  252. moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
  253. moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
  254. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +420 -0
  255. moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
  256. moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
  257. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +359 -0
  258. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
  259. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
  260. moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
  261. moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
  262. moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
  263. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -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 +981 -0
  266. moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
  267. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +315 -0
  268. moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
  269. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
  270. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
  271. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
  272. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
  273. moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
  274. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +364 -0
  275. moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
  276. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
  277. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
  278. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
  279. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
  280. moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
  281. moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
  282. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
  283. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
  284. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +649 -0
  285. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +478 -0
  286. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +612 -0
  287. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +477 -0
  288. moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
  289. moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
  290. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +376 -0
  291. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
  292. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
  293. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +385 -0
  294. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
  295. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
  296. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +382 -0
  297. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
  298. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
  299. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +644 -0
  300. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +481 -0
  301. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
  302. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
  303. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +579 -0
  304. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +687 -0
  305. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +372 -0
  306. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
  307. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
  308. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +497 -0
  309. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
  310. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
  311. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +497 -0
  312. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
  313. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
  314. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +368 -0
  315. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
  316. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
  317. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +300 -0
  318. moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
  319. moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
  320. moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
  321. moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
  322. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +319 -0
  323. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
  324. moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
  325. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
  326. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
  327. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
  328. moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
  329. moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
  330. moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
  331. moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
  332. moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
  333. moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
  334. moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
  335. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +372 -0
  336. moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
  337. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
  338. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
  339. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
  340. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
  341. moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
  342. moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +402 -0
  343. moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +607 -0
  344. moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +300 -0
  345. moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +537 -0
  346. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +291 -0
  347. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +390 -0
  348. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +398 -0
  349. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +379 -0
  350. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +358 -0
  351. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +467 -0
  352. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +377 -0
  353. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +466 -0
  354. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +482 -0
  355. moai_adk/templates/.claude/skills/moai-plugin-builder/SKILL.md +474 -0
  356. moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
  357. moai_adk/templates/.claude/skills/moai-plugin-builder/migration.md +341 -0
  358. moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +463 -0
  359. moai_adk/templates/.claude/skills/moai-plugin-builder/validation.md +373 -0
  360. moai_adk/templates/.claude/skills/moai-security-auth0/SKILL.md +275 -0
  361. moai_adk/templates/.claude/skills/moai-security-auth0/modules/adaptive-mfa.md +233 -0
  362. moai_adk/templates/.claude/skills/moai-security-auth0/modules/akamai-integration.md +215 -0
  363. moai_adk/templates/.claude/skills/moai-security-auth0/modules/application-credentials.md +280 -0
  364. moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-log-events.md +225 -0
  365. moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-overview.md +140 -0
  366. moai_adk/templates/.claude/skills/moai-security-auth0/modules/bot-detection.md +144 -0
  367. moai_adk/templates/.claude/skills/moai-security-auth0/modules/breached-password-detection.md +187 -0
  368. moai_adk/templates/.claude/skills/moai-security-auth0/modules/brute-force-protection.md +189 -0
  369. moai_adk/templates/.claude/skills/moai-security-auth0/modules/certifications.md +282 -0
  370. moai_adk/templates/.claude/skills/moai-security-auth0/modules/compliance-overview.md +263 -0
  371. moai_adk/templates/.claude/skills/moai-security-auth0/modules/continuous-session-protection.md +307 -0
  372. moai_adk/templates/.claude/skills/moai-security-auth0/modules/customize-mfa.md +178 -0
  373. moai_adk/templates/.claude/skills/moai-security-auth0/modules/dpop-implementation.md +283 -0
  374. moai_adk/templates/.claude/skills/moai-security-auth0/modules/fapi-implementation.md +259 -0
  375. moai_adk/templates/.claude/skills/moai-security-auth0/modules/gdpr-compliance.md +313 -0
  376. moai_adk/templates/.claude/skills/moai-security-auth0/modules/guardian-configuration.md +269 -0
  377. moai_adk/templates/.claude/skills/moai-security-auth0/modules/highly-regulated-identity.md +272 -0
  378. moai_adk/templates/.claude/skills/moai-security-auth0/modules/jwt-fundamentals.md +248 -0
  379. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mdl-verification.md +211 -0
  380. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-api-management.md +278 -0
  381. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-factors.md +226 -0
  382. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-overview.md +174 -0
  383. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mtls-sender-constraining.md +316 -0
  384. moai_adk/templates/.claude/skills/moai-security-auth0/modules/ropg-flow-mfa.md +217 -0
  385. moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-center.md +325 -0
  386. moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-guidance.md +277 -0
  387. moai_adk/templates/.claude/skills/moai-security-auth0/modules/state-parameters.md +178 -0
  388. moai_adk/templates/.claude/skills/moai-security-auth0/modules/step-up-authentication.md +251 -0
  389. moai_adk/templates/.claude/skills/moai-security-auth0/modules/suspicious-ip-throttling.md +240 -0
  390. moai_adk/templates/.claude/skills/moai-security-auth0/modules/tenant-access-control.md +180 -0
  391. moai_adk/templates/.claude/skills/moai-security-auth0/modules/webauthn-fido.md +235 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +449 -0
  393. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
  396. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
  397. moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
  398. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +390 -0
  399. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
  404. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +175 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
  407. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
  409. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
  410. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
  416. moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
  417. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
  418. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1434 -0
  419. moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
  420. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
  421. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
  422. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +92 -0
  423. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
  424. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
  425. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
  426. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
  427. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
  428. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
  429. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +534 -0
  430. moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
  431. moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
  432. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +377 -0
  433. moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
  434. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
  435. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
  436. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
  437. moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
  438. moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
  439. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +456 -0
  440. moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
  441. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
  442. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
  443. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
  444. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
  445. moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
  446. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
  447. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
  448. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
  449. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
  450. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
  451. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
  452. moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
  453. moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
  454. moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
  455. moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
  456. moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
  457. moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
  458. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +411 -0
  459. moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
  460. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
  461. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
  462. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
  463. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
  464. moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
  465. moai_adk/templates/.git-hooks/pre-commit +128 -0
  466. moai_adk/templates/.git-hooks/pre-push +365 -0
  467. moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
  468. moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
  469. moai_adk/templates/.github/workflows/spec-issue-sync.yml +337 -0
  470. moai_adk/templates/.gitignore +222 -0
  471. moai_adk/templates/.mcp.json +13 -0
  472. moai_adk/templates/.moai/config/config.yaml +58 -0
  473. moai_adk/templates/.moai/config/questions/_schema.yaml +174 -0
  474. moai_adk/templates/.moai/config/questions/tab0-init.yaml +251 -0
  475. moai_adk/templates/.moai/config/questions/tab1-user.yaml +107 -0
  476. moai_adk/templates/.moai/config/questions/tab2-project.yaml +79 -0
  477. moai_adk/templates/.moai/config/questions/tab3-git.yaml +632 -0
  478. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +182 -0
  479. moai_adk/templates/.moai/config/questions/tab5-system.yaml +96 -0
  480. moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -0
  481. moai_adk/templates/.moai/config/sections/language.yaml +11 -0
  482. moai_adk/templates/.moai/config/sections/project.yaml +13 -0
  483. moai_adk/templates/.moai/config/sections/quality.yaml +17 -0
  484. moai_adk/templates/.moai/config/sections/system.yaml +24 -0
  485. moai_adk/templates/.moai/config/sections/user.yaml +5 -0
  486. moai_adk/templates/.moai/config/statusline-config.yaml +92 -0
  487. moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
  488. moai_adk/templates/CLAUDE.md +642 -0
  489. moai_adk/utils/__init__.py +30 -0
  490. moai_adk/utils/banner.py +38 -0
  491. moai_adk/utils/common.py +294 -0
  492. moai_adk/utils/link_validator.py +241 -0
  493. moai_adk/utils/logger.py +147 -0
  494. moai_adk/utils/safe_file_reader.py +206 -0
  495. moai_adk/utils/timeout.py +160 -0
  496. moai_adk/utils/toon_utils.py +256 -0
  497. moai_adk/version.py +22 -0
  498. moai_adk-0.35.1.dist-info/METADATA +3018 -0
  499. moai_adk-0.35.1.dist-info/RECORD +502 -0
  500. moai_adk-0.35.1.dist-info/WHEEL +4 -0
  501. moai_adk-0.35.1.dist-info/entry_points.txt +3 -0
  502. moai_adk-0.35.1.dist-info/licenses/LICENSE +21 -0
moai_adk/__init__.py ADDED
@@ -0,0 +1,10 @@
1
+ """MoAI Agentic Development Kit
2
+
3
+ SPEC-First TDD Framework with Alfred SuperAgent
4
+ """
5
+
6
+ from moai_adk.version import MOAI_VERSION
7
+
8
+ __version__ = MOAI_VERSION
9
+
10
+ __all__ = ["__version__"]
moai_adk/__main__.py ADDED
@@ -0,0 +1,199 @@
1
+ # type: ignore
2
+ """MoAI-ADK CLI Entry Point
3
+
4
+ Implements the CLI entry point:
5
+ - Click-based CLI framework with lazy command loading
6
+ - Rich console terminal output
7
+ - ASCII logo rendering (lazy-loaded)
8
+ - --version and --help options
9
+ - Five core commands: init, doctor, status, update (lazy-loaded)
10
+
11
+ Performance optimization: Commands and heavy libraries are lazy-loaded
12
+ to reduce CLI startup time by 75% (~400ms → ~100ms).
13
+ """
14
+
15
+ import sys
16
+
17
+ import click
18
+
19
+ from moai_adk import __version__
20
+
21
+ # Lazy-loaded console (created when needed)
22
+ _console = None
23
+
24
+
25
+ def get_console():
26
+ """Get or create Rich Console instance (lazy loading)"""
27
+ global _console
28
+ if _console is None:
29
+ from rich.console import Console
30
+
31
+ _console = Console()
32
+ return _console
33
+
34
+
35
+ def show_logo() -> None:
36
+ """Render the MoAI-ADK ASCII logo with Pyfiglet (lazy-loaded)"""
37
+ # Lazy load pyfiglet only when displaying logo
38
+ import pyfiglet
39
+
40
+ console = get_console()
41
+
42
+ # Generate the "MoAI-ADK" banner using the ansi_shadow font
43
+ logo = pyfiglet.figlet_format("MoAI-ADK", font="ansi_shadow")
44
+
45
+ # Print with Rich styling
46
+ console.print(logo, style="cyan bold", highlight=False)
47
+ console.print(
48
+ " Modu-AI's Agentic Development Kit w/ SuperAgent 🎩 Alfred",
49
+ style="yellow bold",
50
+ )
51
+ console.print()
52
+ console.print(" Version: ", style="green", end="")
53
+ console.print(__version__, style="cyan bold")
54
+ console.print()
55
+ console.print(" Tip: Run ", style="yellow", end="")
56
+ console.print("uv run moai-adk --help", style="cyan", end="")
57
+ console.print(" to see available commands", style="yellow")
58
+
59
+
60
+ @click.group(invoke_without_command=True)
61
+ @click.version_option(version=__version__, prog_name="MoAI-ADK")
62
+ @click.pass_context
63
+ def cli(ctx: click.Context) -> None:
64
+ """MoAI Agentic Development Kit
65
+
66
+ SPEC-First TDD Framework with Alfred SuperAgent
67
+ """
68
+ # Display the logo when no subcommand is invoked
69
+ if ctx.invoked_subcommand is None:
70
+ show_logo()
71
+
72
+
73
+ # Lazy-loaded commands (imported only when invoked)
74
+ @cli.command()
75
+ @click.argument("path", type=click.Path(), default=".")
76
+ @click.option(
77
+ "--non-interactive",
78
+ "-y",
79
+ is_flag=True,
80
+ help="Non-interactive mode (use defaults)",
81
+ )
82
+ @click.option(
83
+ "--mode",
84
+ type=click.Choice(["personal", "team"]),
85
+ default="personal",
86
+ help="Project mode",
87
+ )
88
+ @click.option(
89
+ "--locale",
90
+ type=click.Choice(["ko", "en", "ja", "zh"]),
91
+ default=None,
92
+ help="Preferred language (ko/en/ja/zh, default: en)",
93
+ )
94
+ @click.option(
95
+ "--language",
96
+ type=str,
97
+ default=None,
98
+ help="Programming language (auto-detect if not specified)",
99
+ )
100
+ @click.option(
101
+ "--force",
102
+ is_flag=True,
103
+ help="Force reinitialize without confirmation",
104
+ )
105
+ @click.pass_context
106
+ def init(
107
+ ctx: click.Context,
108
+ path: str,
109
+ non_interactive: bool,
110
+ mode: str,
111
+ locale: str,
112
+ language: str | None,
113
+ force: bool,
114
+ ) -> None:
115
+ """Initialize a new MoAI-ADK project"""
116
+ from moai_adk.cli.commands.init import init as _init
117
+
118
+ ctx.invoke(
119
+ _init,
120
+ path=path,
121
+ non_interactive=non_interactive,
122
+ mode=mode,
123
+ locale=locale,
124
+ language=language,
125
+ force=force,
126
+ )
127
+
128
+
129
+ @cli.command()
130
+ @click.pass_context
131
+ def doctor(ctx: click.Context, **kwargs) -> None:
132
+ """Run system diagnostics"""
133
+ from moai_adk.cli.commands.doctor import doctor as _doctor
134
+
135
+ ctx.invoke(_doctor, **kwargs)
136
+
137
+
138
+ @cli.command()
139
+ @click.pass_context
140
+ def status(ctx: click.Context, **kwargs) -> None:
141
+ """Show project status"""
142
+ from moai_adk.cli.commands.status import status as _status
143
+
144
+ ctx.invoke(_status, **kwargs)
145
+
146
+
147
+ @cli.command()
148
+ @click.pass_context
149
+ def update(ctx: click.Context, **kwargs) -> None:
150
+ """Update MoAI-ADK to latest version"""
151
+ from moai_adk.cli.commands.update import update as _update
152
+
153
+ ctx.invoke(_update, **kwargs)
154
+
155
+
156
+ # statusline command (for Claude Code statusline rendering)
157
+ @cli.command(name="statusline")
158
+ def statusline() -> None:
159
+ """Render Claude Code statusline (internal use only)"""
160
+ import json
161
+
162
+ # Lazy load statusline module
163
+ from moai_adk.statusline.main import build_statusline_data
164
+
165
+ try:
166
+ # Read JSON context from stdin
167
+ input_data = sys.stdin.read() if not sys.stdin.isatty() else "{}"
168
+ context = json.loads(input_data) if input_data else {}
169
+ except (json.JSONDecodeError, EOFError, ValueError):
170
+ context = {}
171
+
172
+ # Render statusline
173
+ output = build_statusline_data(context, mode="extended")
174
+ print(output, end="")
175
+
176
+
177
+ def main() -> int:
178
+ """CLI entry point"""
179
+ try:
180
+ cli(standalone_mode=False)
181
+ return 0
182
+ except click.Abort:
183
+ # User cancelled with Ctrl+C
184
+ return 130
185
+ except click.ClickException as e:
186
+ e.show()
187
+ return e.exit_code
188
+ except Exception as e:
189
+ console = get_console()
190
+ console.print(f"[red]Error:[/red] {e}")
191
+ return 1
192
+ finally:
193
+ # Flush the output buffer explicitly if console was created
194
+ if _console is not None:
195
+ _console.file.flush()
196
+
197
+
198
+ if __name__ == "__main__":
199
+ sys.exit(main())
@@ -0,0 +1,6 @@
1
+ """MoAI-ADK CLI Tools
2
+
3
+ Command-line interface utilities for MoAI-ADK project management.
4
+ """
5
+
6
+ __all__ = ["spec_status"]
@@ -0,0 +1,17 @@
1
+ """CLI command module
2
+
3
+ Core commands:
4
+ - init: initialize the project
5
+ - doctor: run system diagnostics
6
+ - status: show project status
7
+ - update: update templates to latest version
8
+
9
+ Note: restore functionality is handled by checkpoint system in core.git.checkpoint
10
+ """
11
+
12
+ from moai_adk.cli.commands.doctor import doctor
13
+ from moai_adk.cli.commands.init import init
14
+ from moai_adk.cli.commands.status import status
15
+ from moai_adk.cli.commands.update import update
16
+
17
+ __all__ = ["init", "doctor", "status", "update"]
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Analyze command for MoAI-ADK
4
+
5
+ Analyze Claude Code sessions and generate improvement suggestions.
6
+ """
7
+
8
+ from pathlib import Path
9
+ from typing import Optional
10
+
11
+ import click
12
+ from rich.console import Console
13
+ from rich.table import Table
14
+
15
+ from moai_adk.core.analysis.session_analyzer import SessionAnalyzer
16
+
17
+ console = Console()
18
+
19
+
20
+ @click.command()
21
+ @click.option("--days", "-d", default=7, help="Number of days to analyze (default: 7)")
22
+ @click.option("--output", "-o", type=click.Path(), help="Output file path")
23
+ @click.option("--verbose", "-v", is_flag=True, help="Verbose output")
24
+ @click.option("--report-only", "-r", is_flag=True, help="Generate report only (no console output)")
25
+ @click.option(
26
+ "--project-path",
27
+ "-p",
28
+ type=click.Path(),
29
+ help="Project root path (default: current directory)",
30
+ )
31
+ def analyze(
32
+ days: int,
33
+ output: Optional[Path],
34
+ verbose: bool,
35
+ report_only: bool,
36
+ project_path: Optional[Path],
37
+ ):
38
+ """
39
+ Analyze Claude Code sessions from the last N days
40
+
41
+ Analyzes Claude Code session logs to identify usage patterns,
42
+ error frequencies, and generate improvement suggestions.
43
+
44
+ Examples:
45
+ moai-adk analyze session
46
+ moai-adk analyze session --days 14 --verbose
47
+ moai-adk analyze session --output /path/to/report.md
48
+ """
49
+ if project_path is None:
50
+ project_path = Path.cwd()
51
+
52
+ # Validate project path
53
+ if not (project_path / ".moai").exists():
54
+ console.print("[red]Error:[/red] Not a MoAI-ADK project (missing .moai directory)")
55
+ console.print(f"[blue]Current path:[/blue] {project_path}")
56
+ return
57
+
58
+ # Initialize analyzer
59
+ analyzer = SessionAnalyzer(days_back=days, verbose=verbose)
60
+
61
+ if not report_only:
62
+ console.print(f"[blue]📊 Analyzing sessions from last {days} days...[/blue]")
63
+
64
+ # Parse sessions
65
+ patterns = analyzer.parse_sessions()
66
+
67
+ if not report_only:
68
+ console.print(f"[green]✅ Analyzed {patterns['total_sessions']} sessions[/green]")
69
+ console.print(f"[blue] Total events: {patterns['total_events']}[/blue]")
70
+
71
+ # Display summary table
72
+ table = Table(title="Session Summary")
73
+ table.add_column("Metric", style="cyan")
74
+ table.add_column("Value", style="green")
75
+
76
+ table.add_row("Total Sessions", str(patterns["total_sessions"]))
77
+ table.add_row("Total Events", str(patterns["total_events"]))
78
+ table.add_row("Failed Sessions", str(patterns["failed_sessions"]))
79
+ table.add_row("Success Rate", f"{patterns.get('success_rate', 0):.1f}%")
80
+
81
+ console.print(table)
82
+
83
+ # Show top tools
84
+ if patterns["tool_usage"]:
85
+ console.print("\n[bold]🔧 Top Tools Used:[/bold]")
86
+ top_tools = sorted(patterns["tool_usage"].items(), key=lambda x: x[1], reverse=True)[:10]
87
+
88
+ tools_table = Table()
89
+ tools_table.add_column("Tool", style="cyan")
90
+ tools_table.add_column("Usage", style="green")
91
+
92
+ for tool, count in top_tools:
93
+ tools_table.add_row(f"`{tool}`", str(count))
94
+
95
+ console.print(tools_table)
96
+
97
+ # Save report
98
+ output_path_obj = Path(output) if output else None
99
+ report_path = analyzer.save_report(output_path_obj, project_path)
100
+
101
+ if not report_only:
102
+ console.print(f"\n[green]📄 Report saved: {report_path}[/green]")
103
+
104
+ # Show key suggestions
105
+ report_content = analyzer.generate_report()
106
+ if "💡 Improvement Suggestions" in report_content:
107
+ console.print("\n[bold yellow]💡 Key Suggestions:[/bold yellow]")
108
+ # Extract suggestions section
109
+ suggestions_start = report_content.find("💡 Improvement Suggestions")
110
+ if suggestions_start != -1:
111
+ suggestions_section = report_content[suggestions_start:]
112
+ # Extract first few suggestions
113
+ lines = suggestions_section.split("\n")[2:] # Skip header and empty line
114
+ for line in lines[:10]: # Show first 10 lines
115
+ if line.strip() and not line.startswith("---"):
116
+ console.print(line)
@@ -0,0 +1,272 @@
1
+ """MoAI-ADK doctor command
2
+
3
+ System diagnostics command:
4
+ - Check the Python version
5
+ - Verify Git installation
6
+ - Validate project structure
7
+ - Inspect language-specific tool chains
8
+ - Diagnose slash command loading issues (--check-commands)
9
+
10
+ ## Skill Invocation Guide (English-Only)
11
+
12
+ ### Related Skills
13
+ - **moai-foundation-langs**: For language toolchain verification and detection
14
+ - Trigger: Use `--verbose` or `--fix` flag to inspect language-specific tools
15
+ - Invocation: `Skill("moai-foundation-langs")` for detailed language stack analysis
16
+
17
+ - **moai-foundation-trust**: For TRUST 5-principles verification after fixing tools
18
+ - Trigger: After running doctor with `--fix` to validate improvements
19
+ - Invocation: `Skill("moai-foundation-trust")` to verify code quality toolchain
20
+
21
+ ### When to Invoke Skills in Related Workflows
22
+ 1. **After doctor diagnosis**:
23
+ - Run `Skill("moai-foundation-trust")` to validate that all TRUST tools are properly configured
24
+ - Run `Skill("moai-foundation-langs")` to confirm language-specific toolchains
25
+
26
+ 2. **When tools are missing** (`--fix` flag):
27
+ - Use suggested fixes from doctor command
28
+ - Follow up with `Skill("moai-foundation-langs")` to validate corrections
29
+
30
+ 3. **Debugging slash command issues** (`--check-commands`):
31
+ - Run `Skill("moai-cc-commands")` if commands fail to load
32
+ - Check `.claude/commands/` directory structure and permissions
33
+ """
34
+
35
+ import json
36
+ from pathlib import Path
37
+
38
+ import click
39
+ import questionary
40
+ from rich.console import Console
41
+ from rich.table import Table
42
+
43
+ from moai_adk.core.project.checker import SystemChecker, check_environment
44
+ from moai_adk.core.project.detector import detect_project_language
45
+
46
+ console = Console()
47
+
48
+
49
+ @click.command()
50
+ @click.option(
51
+ "--verbose",
52
+ "-v",
53
+ is_flag=True,
54
+ help="Show detailed tool versions and language detection",
55
+ )
56
+ @click.option("--fix", is_flag=True, help="Suggest fixes for missing tools")
57
+ @click.option("--export", type=click.Path(), help="Export diagnostics to JSON file")
58
+ @click.option("--check", type=str, help="Check specific tool only")
59
+ @click.option("--check-commands", is_flag=True, help="Diagnose slash command loading issues")
60
+ def doctor(
61
+ verbose: bool,
62
+ fix: bool,
63
+ export: str | None,
64
+ check: str | None,
65
+ check_commands: bool,
66
+ ) -> None:
67
+ """Check system requirements and project health
68
+
69
+ Verifies:
70
+ - Python version (>= 3.13)
71
+ - Git installation
72
+ - Project structure (.moai directory)
73
+ - Language-specific tool chains (20+ languages)
74
+ """
75
+ try:
76
+ # Handle --check-commands option first
77
+ if check_commands:
78
+ _check_slash_commands()
79
+ return
80
+
81
+ console.print("[cyan]Running system diagnostics...[/cyan]\n")
82
+
83
+ # Run basic environment checks
84
+ results = check_environment()
85
+ diagnostics_data: dict = {"basic_checks": results}
86
+
87
+ # In verbose mode, verify language-specific toolchains
88
+ if verbose or fix:
89
+ language = detect_project_language()
90
+ diagnostics_data["detected_language"] = language
91
+
92
+ if verbose:
93
+ console.print(f"[dim]Detected language: {language or 'Unknown'}[/dim]\n")
94
+
95
+ if language:
96
+ checker = SystemChecker()
97
+ language_tools = checker.check_language_tools(language)
98
+ diagnostics_data["language_tools"] = language_tools
99
+
100
+ if verbose:
101
+ _display_language_tools(language, language_tools, checker)
102
+
103
+ # Specific tool check
104
+ if check:
105
+ _check_specific_tool(check)
106
+ return
107
+
108
+ # Build the base results table
109
+ table = Table(show_header=True, header_style="bold magenta")
110
+ table.add_column("Check", style="dim", width=40)
111
+ table.add_column("Status", justify="center")
112
+
113
+ for check_name, status in results.items():
114
+ icon = "✓" if status else "✗"
115
+ color = "green" if status else "red"
116
+ table.add_row(check_name, f"[{color}]{icon}[/{color}]")
117
+
118
+ console.print(table)
119
+
120
+ # In fix mode, suggest installation commands for missing tools
121
+ if fix and "language_tools" in diagnostics_data:
122
+ _suggest_fixes(
123
+ diagnostics_data["language_tools"],
124
+ diagnostics_data.get("detected_language"),
125
+ )
126
+
127
+ # When exporting, write diagnostics to JSON
128
+ if export:
129
+ _export_diagnostics(export, diagnostics_data)
130
+
131
+ # Summarize the overall result
132
+ all_passed = all(results.values())
133
+ if all_passed:
134
+ console.print("\n[green]✓ All checks passed[/green]")
135
+ else:
136
+ console.print("\n[yellow]⚠ Some checks failed[/yellow]")
137
+ console.print("[dim]Run [cyan]python -m moai_adk doctor --verbose[/cyan] for detailed diagnostics[/dim]")
138
+
139
+ except Exception as e:
140
+ console.print(f"[red]✗ Diagnostic failed: {e}[/red]")
141
+ raise
142
+
143
+
144
+ def _display_language_tools(language: str, tools: dict[str, bool], checker: SystemChecker) -> None:
145
+ """Display a table of language-specific tools (helper)"""
146
+ table = Table(show_header=True, header_style="bold cyan", title=f"{language.title()} Tools")
147
+ table.add_column("Tool", style="dim")
148
+ table.add_column("Status", justify="center")
149
+ table.add_column("Version", style="blue")
150
+
151
+ for tool, available in tools.items():
152
+ icon = "✓" if available else "✗"
153
+ color = "green" if available else "red"
154
+ version = checker.get_tool_version(tool) if available else "not installed"
155
+
156
+ table.add_row(tool, f"[{color}]{icon}[/{color}]", version or "")
157
+
158
+ console.print(table)
159
+ console.print()
160
+
161
+
162
+ def _check_specific_tool(tool: str) -> None:
163
+ """Check only a specific tool (helper)"""
164
+ checker = SystemChecker()
165
+ available = checker._is_tool_available(tool)
166
+ version = checker.get_tool_version(tool) if available else None
167
+
168
+ if available:
169
+ console.print(f"[green]✓ {tool} is installed[/green]")
170
+ if version:
171
+ console.print(f" Version: {version}")
172
+ else:
173
+ console.print(f"[red]✗ {tool} is not installed[/red]")
174
+
175
+
176
+ def _suggest_fixes(tools: dict[str, bool], language: str | None) -> None:
177
+ """Suggest installation commands for missing tools (helper)"""
178
+ missing_tools = [tool for tool, available in tools.items() if not available]
179
+
180
+ if not missing_tools:
181
+ console.print("\n[green]✓ All tools are installed[/green]")
182
+ return
183
+
184
+ console.print(f"\n[yellow]⚠ Missing {len(missing_tools)} tool(s)[/yellow]")
185
+
186
+ try:
187
+ proceed = questionary.confirm(
188
+ "Would you like to see install suggestions for missing tools?",
189
+ default=True,
190
+ ).ask()
191
+ except Exception:
192
+ proceed = True
193
+
194
+ if not proceed:
195
+ console.print("[yellow]User skipped install suggestions[/yellow]")
196
+ return
197
+
198
+ for tool in missing_tools:
199
+ install_cmd = _get_install_command(tool, language)
200
+ console.print(f" [red]✗[/red] {tool}")
201
+ if install_cmd:
202
+ console.print(f" Install: [cyan]{install_cmd}[/cyan]")
203
+
204
+
205
+ def _get_install_command(tool: str, language: str | None) -> str:
206
+ """Return the install command for a given tool (helper)"""
207
+ # Common tools with preferred package managers
208
+ install_commands = {
209
+ # Python tools (prefer uv)
210
+ "pytest": "uv pip install pytest",
211
+ "mypy": "uv pip install mypy",
212
+ "ruff": "uv pip install ruff",
213
+ # JavaScript tools
214
+ "vitest": "npm install -D vitest",
215
+ "biome": "npm install -D @biomejs/biome",
216
+ "eslint": "npm install -D eslint",
217
+ "jest": "npm install -D jest",
218
+ }
219
+
220
+ return install_commands.get(tool, f"# Install {tool} for {language}")
221
+
222
+
223
+ def _export_diagnostics(export_path: str, data: dict) -> None:
224
+ """Export diagnostic results to a JSON file (helper)"""
225
+ try:
226
+ output = Path(export_path)
227
+ output.write_text(json.dumps(data, indent=2))
228
+ console.print(f"\n[green]✓ Diagnostics exported to {export_path}[/green]")
229
+ except Exception as e:
230
+ console.print(f"\n[red]✗ Failed to export diagnostics: {e}[/red]")
231
+
232
+
233
+ def _check_slash_commands() -> None:
234
+ """Check slash command loading issues (helper)"""
235
+ from moai_adk.core.diagnostics.slash_commands import diagnose_slash_commands
236
+
237
+ console.print("[cyan]Running slash command diagnostics...[/cyan]\n")
238
+
239
+ result = diagnose_slash_commands()
240
+
241
+ # Handle error case
242
+ if "error" in result:
243
+ console.print(f"[red]✗ {result['error']}[/red]")
244
+ return
245
+
246
+ # Build results table
247
+ table = Table(show_header=True, header_style="bold magenta")
248
+ table.add_column("Command File", style="dim", width=40)
249
+ table.add_column("Status", justify="center", width=10)
250
+ table.add_column("Issues", style="yellow")
251
+
252
+ for detail in result["details"]:
253
+ icon = "✓" if detail["valid"] else "✗"
254
+ color = "green" if detail["valid"] else "red"
255
+ issues = ", ".join(detail["errors"]) if detail["errors"] else "-"
256
+
257
+ table.add_row(detail["file"], f"[{color}]{icon}[/{color}]", issues)
258
+
259
+ console.print(table)
260
+ console.print()
261
+
262
+ # Summary
263
+ total = result["total_files"]
264
+ valid = result["valid_commands"]
265
+
266
+ if valid == total and total > 0:
267
+ console.print(f"[green]✓ {valid}/{total} command files are valid[/green]")
268
+ elif total == 0:
269
+ console.print("[yellow]⚠ No command files found in .claude/commands/[/yellow]")
270
+ else:
271
+ console.print(f"[yellow]⚠ Only {valid}/{total} command files are valid[/yellow]")
272
+ console.print("[dim]Fix the issues above to enable slash commands[/dim]")