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
@@ -0,0 +1,337 @@
1
+ name: 📋 SPEC Issue Sync
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - '.moai/specs/SPEC-*/spec.md'
7
+ types: [opened, synchronize]
8
+
9
+ permissions:
10
+ issues: write
11
+ pull-requests: write
12
+ contents: read
13
+
14
+ jobs:
15
+ sync-spec-to-issue:
16
+ runs-on: ubuntu-latest
17
+ name: 🔄 Sync SPEC to GitHub Issue
18
+
19
+ steps:
20
+ - name: Checkout code
21
+ uses: actions/checkout@v4
22
+ with:
23
+ fetch-depth: 0
24
+ ref: ${{ github.event.pull_request.head.sha }}
25
+
26
+ - name: Find and parse SPEC file
27
+ id: spec
28
+ env:
29
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
30
+ run: |
31
+ set -x # Enable debug mode
32
+
33
+ echo "=== STEP 1: Get PR branch name ==="
34
+ branch_name="${{ github.head_ref }}"
35
+ echo "Branch: $branch_name"
36
+
37
+ echo ""
38
+ echo "=== STEP 2: Get changed files from PR ==="
39
+ # Get list of changed files from PR
40
+ changed_files=$(gh pr view ${{ github.event.pull_request.number }} --json files --jq '.files[].path' 2>&1)
41
+
42
+ if [ $? -ne 0 ]; then
43
+ echo "⚠️ Failed to fetch PR files, falling back to git diff"
44
+ changed_files=$(git diff --name-only origin/main HEAD 2>&1)
45
+ fi
46
+
47
+ echo "Changed files:"
48
+ echo "$changed_files"
49
+
50
+ echo ""
51
+ echo "=== STEP 3: Find SPEC files that were actually changed ==="
52
+ # Find spec files that were actually modified in this PR
53
+ spec_files=$(echo "$changed_files" | grep -E '\.moai/specs/SPEC-.*/spec\.md$' || true)
54
+
55
+ if [ -z "$spec_files" ]; then
56
+ echo "⚠️ No SPEC file changes detected in this PR"
57
+ echo "Exiting gracefully (this is expected if no SPEC files changed)"
58
+ exit 0
59
+ fi
60
+
61
+ echo "Found SPEC files:"
62
+ echo "$spec_files"
63
+
64
+ # Count SPEC files
65
+ spec_file_count=$(echo "$spec_files" | wc -l)
66
+ echo "Count: $spec_file_count"
67
+
68
+ if [ "$spec_file_count" -gt 1 ]; then
69
+ echo ""
70
+ echo "⚠️ WARNING: Multiple SPEC files detected in this PR"
71
+ echo " This is unusual. Using first SPEC file."
72
+ echo " Files:"
73
+ echo "$spec_files" | sed 's/^/ /'
74
+ fi
75
+
76
+ # Select first SPEC file
77
+ spec_file=$(echo "$spec_files" | head -1)
78
+ echo ""
79
+ echo "✅ Selected SPEC file: $spec_file"
80
+ echo "spec_file=$spec_file" >> $GITHUB_OUTPUT
81
+
82
+ echo ""
83
+ echo "=== STEP 4: Extract YAML metadata ==="
84
+ # Extract YAML metadata using grep
85
+ spec_id=$(grep "^id:" "$spec_file" | sed 's/^id: *//' | tr -d ' "')
86
+ spec_version=$(grep "^version:" "$spec_file" | sed 's/^version: *//' | tr -d ' "')
87
+ spec_status=$(grep "^status:" "$spec_file" | sed 's/^status: *//' | tr -d ' "')
88
+ spec_priority=$(grep "^priority:" "$spec_file" | sed 's/^priority: *//' | tr -d ' "')
89
+
90
+ # Extract title from H1 heading
91
+
92
+ echo "✅ Extracted SPEC metadata:"
93
+ echo " ID: $spec_id"
94
+ echo " Title: $spec_title"
95
+ echo " Version: $spec_version"
96
+ echo " Status: $spec_status"
97
+ echo " Priority: $spec_priority"
98
+
99
+ echo ""
100
+ echo "=== STEP 5: Validate SPEC status ==="
101
+ # Skip if SPEC is already completed (historical document)
102
+ if [ "$spec_status" = "completed" ]; then
103
+ echo "⚠️ SPEC status is 'completed' (historical document)"
104
+ echo " Skipping issue creation for completed SPEC"
105
+ exit 0
106
+ fi
107
+
108
+ echo "✅ SPEC status is valid (not completed)"
109
+
110
+ echo ""
111
+ echo "=== STEP 6: Validate branch name matches SPEC ID ==="
112
+ # Extract SPEC ID from branch name (feature/SPEC-UPDATE-REFACTOR-002 -> UPDATE-REFACTOR-002)
113
+ branch_spec_id=$(echo "$branch_name" | grep -oE 'SPEC-[A-Z0-9_-]+' | sed 's/^SPEC-//' || true)
114
+
115
+ if [ -n "$branch_spec_id" ]; then
116
+ if [ "$branch_spec_id" != "$spec_id" ]; then
117
+ echo "⚠️ WARNING: Branch name mismatch!"
118
+ echo " Branch SPEC ID: $branch_spec_id"
119
+ echo " File SPEC ID: $spec_id"
120
+ echo " Continuing anyway (might be intentional)"
121
+ else
122
+ echo "✅ Branch name matches SPEC ID"
123
+ fi
124
+ else
125
+ echo "⚠️ Could not extract SPEC ID from branch name"
126
+ echo " Branch: $branch_name"
127
+ echo " Continuing anyway"
128
+ fi
129
+
130
+ echo ""
131
+ echo "=== STEP 7: Output all variables ==="
132
+ echo "spec_id=$spec_id" >> $GITHUB_OUTPUT
133
+ echo "spec_version=$spec_version" >> $GITHUB_OUTPUT
134
+ echo "spec_status=$spec_status" >> $GITHUB_OUTPUT
135
+ echo "spec_priority=$spec_priority" >> $GITHUB_OUTPUT
136
+ echo "spec_title=$spec_title" >> $GITHUB_OUTPUT
137
+
138
+ - name: Check for existing issue
139
+ if: steps.spec.outputs.spec_id
140
+ id: check-issue
141
+ env:
142
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
143
+ run: |
144
+ spec_id="${{ steps.spec.outputs.spec_id }}"
145
+
146
+ echo "=== Checking for existing issue ==="
147
+ echo "Searching for existing GitHub issue with SPEC-$spec_id..."
148
+
149
+ # PRIMARY: Search with label filter (efficient)
150
+ echo " Attempt 1: Searching with 'spec' label filter..."
151
+ existing_issue=$(gh issue list \
152
+ --label "spec" \
153
+ --state all \
154
+ --search "[SPEC-$spec_id]" \
155
+ --json number,title,state \
156
+ --jq '.[] | select(.title | contains("[SPEC-'$spec_id']")) | .number' \
157
+ 2>/dev/null | head -1)
158
+
159
+ # FALLBACK: Search without label filter (in case labels missing)
160
+ if [ -z "$existing_issue" ]; then
161
+ echo " Attempt 2: Searching WITHOUT label filter (fallback for missing labels)..."
162
+ existing_issue=$(gh issue list \
163
+ --state all \
164
+ --search "[SPEC-$spec_id]" \
165
+ --json number,title,state,labels \
166
+ --jq '.[] | select(.title | contains("[SPEC-'$spec_id']")) | .number' \
167
+ 2>/dev/null | head -1)
168
+
169
+ if [ -n "$existing_issue" ]; then
170
+ echo " ⚠️ Found issue without 'spec' label, adding labels..."
171
+ # Add missing labels to existing issue
172
+ gh issue edit "$existing_issue" --add-label "spec,planning" 2>/dev/null || true
173
+ fi
174
+ fi
175
+
176
+ if [ -n "$existing_issue" ]; then
177
+ echo "✅ Found existing issue: #$existing_issue"
178
+ echo "issue_exists=true" >> $GITHUB_OUTPUT
179
+ echo "issue_number=$existing_issue" >> $GITHUB_OUTPUT
180
+ else
181
+ echo "📋 No existing issue found for SPEC-$spec_id"
182
+ echo "issue_exists=false" >> $GITHUB_OUTPUT
183
+ fi
184
+
185
+ - name: Create or Update GitHub Issue
186
+ if: steps.spec.outputs.spec_id
187
+ id: create-issue
188
+ env:
189
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
190
+ run: |
191
+ spec_id="${{ steps.spec.outputs.spec_id }}"
192
+ spec_version="${{ steps.spec.outputs.spec_version }}"
193
+ spec_title="${{ steps.spec.outputs.spec_title }}"
194
+ spec_status="${{ steps.spec.outputs.spec_status }}"
195
+ spec_priority="${{ steps.spec.outputs.spec_priority }}"
196
+ spec_file="${{ steps.spec.outputs.spec_file }}"
197
+ issue_exists="${{ steps.check-issue.outputs.issue_exists }}"
198
+ existing_issue="${{ steps.check-issue.outputs.issue_number }}"
199
+
200
+ # Read SPEC content (skip YAML frontmatter: 9 lines + 1 blank = 10 lines total)
201
+ # Start reading from line 11
202
+ spec_content=$(tail -n +11 "$spec_file")
203
+
204
+ # Create issue body using GitHub Actions recommended pattern
205
+ # Reference: https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions
206
+ {
207
+ echo "## SPEC Metadata"
208
+ echo ""
209
+ echo "| Field | Value |"
210
+ echo "|-------|-------|"
211
+ echo "| **ID** | $spec_id |"
212
+ echo "| **Version** | $spec_version |"
213
+ echo "| **Status** | $spec_status |"
214
+ echo "| **Priority** | $spec_priority |"
215
+ echo ""
216
+ echo "## SPEC Document"
217
+ echo ""
218
+ echo "$spec_content"
219
+ echo ""
220
+ echo "---"
221
+ echo ""
222
+ echo "📎 **Branch**: \`feature/$spec_id\`"
223
+ echo "🔗 **PR**: #${{ github.event.pull_request.number }}"
224
+ echo "📝 **Auto-synced**: This issue is automatically synchronized from the SPEC document"
225
+ } > /tmp/issue_body.txt
226
+
227
+ if [ "$issue_exists" = "true" ]; then
228
+ echo "📝 Updating existing issue #$existing_issue..."
229
+ echo " Title: [SPEC-$spec_id] $spec_title (v$spec_version)"
230
+ echo " Labels: spec, planning, $spec_priority"
231
+
232
+ # Update existing issue with new content and ensure proper labels
233
+ gh issue edit "$existing_issue" \
234
+ --title "[SPEC-$spec_id] $spec_title (v$spec_version)" \
235
+ --body-file /tmp/issue_body.txt \
236
+ --add-label "spec,planning,$spec_priority" \
237
+ --state open
238
+
239
+ issue_num=$existing_issue
240
+ echo "✅ Updated issue #$issue_num with latest SPEC version"
241
+ else
242
+ echo "📋 Creating new GitHub Issue..."
243
+ echo " Title: [SPEC-$spec_id] $spec_title (v$spec_version)"
244
+ echo " Body file: /tmp/issue_body.txt"
245
+ wc -l /tmp/issue_body.txt
246
+
247
+ # Create issue with labels using body-file
248
+ issue_output=$(gh issue create \
249
+ --title "[SPEC-$spec_id] $spec_title (v$spec_version)" \
250
+ --body-file /tmp/issue_body.txt \
251
+ --label "spec" \
252
+ --label "planning" \
253
+ --label "$spec_priority" 2>&1)
254
+
255
+ echo "$issue_output" | tee /tmp/issue_output.txt
256
+
257
+ # Extract issue number from output
258
+ issue_num=$(echo "$issue_output" | grep -oE '/issues/[0-9]+' | grep -oE '[0-9]+' | head -1)
259
+
260
+ if [ -z "$issue_num" ]; then
261
+ echo "⚠️ Could not extract issue number from output"
262
+ echo "Full output:"
263
+ cat /tmp/issue_output.txt
264
+ exit 1
265
+ fi
266
+
267
+ echo "✅ Created issue #$issue_num"
268
+ fi
269
+
270
+ echo "issue_number=$issue_num" >> $GITHUB_OUTPUT
271
+
272
+ - name: Validate SPEC issue labels
273
+ if: steps.create-issue.outputs.issue_number
274
+ id: validate-labels
275
+ env:
276
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
277
+ run: |
278
+ issue_num="${{ steps.create-issue.outputs.issue_number }}"
279
+ spec_priority="${{ steps.spec.outputs.spec_priority }}"
280
+
281
+ echo "🔍 Validating SPEC issue #$issue_num labels..."
282
+
283
+ # Get current labels
284
+ current_labels=$(gh issue view $issue_num --json labels --jq '.labels[].name' | tr '\n' ',' | sed 's/,$//')
285
+ echo "Current labels: $current_labels"
286
+
287
+ # Check for mandatory labels
288
+ needs_update=false
289
+
290
+ if [[ ! "$current_labels" =~ "spec" ]]; then
291
+ echo "⚠️ Missing 'spec' label, adding..."
292
+ gh issue edit $issue_num --add-label "spec"
293
+ needs_update=true
294
+ fi
295
+
296
+ if [[ ! "$current_labels" =~ "planning" ]]; then
297
+ echo "⚠️ Missing 'planning' label, adding..."
298
+ gh issue edit $issue_num --add-label "planning"
299
+ needs_update=true
300
+ fi
301
+
302
+ # Check for priority label
303
+ if [[ ! "$current_labels" =~ (critical|high|medium|low) ]]; then
304
+ echo "⚠️ No priority label found, adding '$spec_priority' as default"
305
+ gh issue edit $issue_num --add-label "$spec_priority"
306
+ needs_update=true
307
+ fi
308
+
309
+ if [ "$needs_update" = true ]; then
310
+ echo "✅ SPEC labels validated and corrected"
311
+ else
312
+ echo "✅ SPEC labels already valid"
313
+ fi
314
+
315
+ - name: Add PR comment
316
+ if: steps.create-issue.outputs.issue_number
317
+ env:
318
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
319
+ run: |
320
+ issue_num="${{ steps.create-issue.outputs.issue_number }}"
321
+ spec_id="${{ steps.spec.outputs.spec_id }}"
322
+ spec_title="${{ steps.spec.outputs.spec_title }}"
323
+
324
+ # Create PR comment body using same pattern
325
+ {
326
+ echo "✅ **SPEC GitHub Issue Created**"
327
+ echo ""
328
+ echo "This SPEC has been synchronized to GitHub Issue."
329
+ echo ""
330
+ echo "📋 **Issue**: [#$issue_num - SPEC-$spec_id: $spec_title](../issues/$issue_num)"
331
+ echo "🔗 **SPEC File**: \`.moai/specs/SPEC-$spec_id/spec.md\`"
332
+ echo ""
333
+ echo "The issue will be automatically updated as you modify the SPEC document."
334
+ } > /tmp/pr_comment.txt
335
+
336
+ gh pr comment ${{ github.event.pull_request.number }} --body-file /tmp/pr_comment.txt
337
+ echo "✅ Added PR comment linking to issue #$issue_num"
@@ -0,0 +1,222 @@
1
+ # ============================================
2
+ # MoAI-ADK Package Distribution .gitignore
3
+ # ============================================
4
+ # Version: 0.28.0
5
+ # Purpose: Essential patterns for user projects
6
+ # ============================================
7
+
8
+ # ---------------------------------------------
9
+ # Build Artifacts
10
+ # ---------------------------------------------
11
+ build/
12
+ dist/
13
+ *.egg-info/
14
+ *.egg
15
+
16
+ # ---------------------------------------------
17
+ # Python Cache & Database
18
+ # ---------------------------------------------
19
+ __pycache__/
20
+ .pytest_cache/
21
+ *.pyc
22
+ *.pyo
23
+ *.pyd
24
+ .mypy_cache/
25
+ .ruff_cache/
26
+ *.db
27
+ *.sqlite
28
+ *.sqlite3
29
+ *.rdb
30
+ *.dbm
31
+
32
+ # ---------------------------------------------
33
+ # Virtual Environments
34
+ # ---------------------------------------------
35
+ venv/
36
+ .venv/
37
+ env/
38
+ .env/
39
+ .uv_cache/
40
+ .uv-cache/
41
+
42
+ # ---------------------------------------------
43
+ # IDE & Editors
44
+ # ---------------------------------------------
45
+ .vscode/
46
+ .idea/
47
+ *.swp
48
+ *.swo
49
+ *.sw?
50
+ *~
51
+ .cursor/
52
+ *.sublime-project
53
+ *.sublime-workspace
54
+ *.njsproj
55
+ *.sln
56
+ *.suo
57
+ .#*
58
+
59
+ # ---------------------------------------------
60
+ # OS Files
61
+ # ---------------------------------------------
62
+ # Mac
63
+ .DS_Store
64
+ .AppleDouble
65
+ .LSOverride
66
+ .DocumentRevisions-V100
67
+ .fseventsd
68
+ .Spotlight-V100
69
+ .TemporaryItems
70
+ .Trashes
71
+ .VolumeIcon.icns
72
+
73
+ # Windows
74
+ [Dd]esktop.ini
75
+ Thumbs.db
76
+ ehthumbs.db
77
+
78
+ # Linux
79
+ .directory
80
+
81
+ # ---------------------------------------------
82
+ # Node.js (for docs/Nextra)
83
+ # ---------------------------------------------
84
+ node_modules/
85
+ *.tsbuildinfo
86
+ .tscache/
87
+ .next/
88
+ out/
89
+
90
+ # ---------------------------------------------
91
+ # Logs & Temporary Files
92
+ # ---------------------------------------------
93
+ *.log
94
+ logs/
95
+ *.tmp
96
+ *.temp
97
+ *.bak
98
+ *.backup
99
+
100
+ # ---------------------------------------------
101
+ # Test Coverage
102
+ # ---------------------------------------------
103
+ .coverage
104
+ coverage.json
105
+ htmlcov/
106
+ .pytest_cache/
107
+
108
+ # ---------------------------------------------
109
+ # Environment Variables & Secrets
110
+ # ---------------------------------------------
111
+ .env
112
+ .env.*
113
+ !.env.example
114
+
115
+ # Certificate files
116
+ *.pem
117
+ *.p12
118
+ *.pfx
119
+ *.jks
120
+
121
+ # Private keys and certificates (specific patterns to avoid false positives)
122
+ # FIXED: Issue #237 - Replaced overly broad *key* and *secret* patterns
123
+ # Old patterns caused false positives for: keyboard-config, hotkey, monkey-patch, etc.
124
+ *-key.*
125
+ *_key.*
126
+ *.key.*
127
+ *-secret-key.*
128
+ *-api-key.*
129
+ api-key-*
130
+ secret-key-*
131
+ private-key*
132
+ *-secret.*
133
+ *_secret.*
134
+ *.secret.*
135
+ secret-*.*
136
+
137
+ # API credentials patterns
138
+ *_secret=*
139
+ *_token=*
140
+
141
+ # Cloud provider credentials
142
+ .aws/config
143
+ .aws/credentials
144
+ .vercel/
145
+ .netlify/
146
+ .firebase/
147
+
148
+ # Claude Code Skills Secrets
149
+ .claude/skills/*/.env*
150
+ .claude/skills/*/secrets/
151
+ .claude/skills/*/*/*secret*
152
+ .claude/skills/*/*/*key*
153
+ .claude/skills/*/*/*token*
154
+
155
+ # ---------------------------------------------
156
+ # Backups
157
+ # ---------------------------------------------
158
+ .moai-backups/
159
+ *.backup/
160
+ *-backup/
161
+ *_backup_*/
162
+
163
+ # ---------------------------------------------
164
+ # Claude Code Local Configuration
165
+ # ---------------------------------------------
166
+ .claude/settings.local.json
167
+ .claude/settings.local.*.json
168
+ .claude/.env.local*
169
+ .claude/local/
170
+
171
+ # ---------------------------------------------
172
+ # MoAI Directory Management
173
+ # ---------------------------------------------
174
+ # Tracked in git: config/, memory/, scripts/, specs/
175
+ # User-generated content: logs/, cache/, reports/, etc.
176
+
177
+ .moai/*
178
+ !.moai/config/
179
+ !.moai/config/**
180
+ !.moai/memory/
181
+ !.moai/memory/**
182
+ !.moai/scripts/
183
+ !.moai/scripts/**
184
+ !.moai/specs/
185
+ !.moai/specs/**
186
+
187
+ # Legacy config format (migrated to YAML in v0.32.0)
188
+ .moai/config/config.json
189
+
190
+ # .moai local-only directories (user projects only)
191
+ .moai/cache/
192
+ .moai/logs/
193
+ .moai/docs/
194
+ .moai/reports/
195
+ .moai/analytics/
196
+ .moai/archive/
197
+ .moai/archived-skills/
198
+ .moai/backups/
199
+ .moai/error_logs/
200
+ .moai/temp/
201
+ .moai/work/
202
+
203
+ # .moai local development scripts (not distributed)
204
+ .moai/scripts/phase*.py
205
+ .moai/scripts/phase*.sh
206
+ .moai/scripts/sync-*.sh
207
+ .moai/scripts/sync-*.py
208
+ .moai/scripts/*sync*.sh
209
+ .moai/scripts/__pycache__/
210
+
211
+ # ---------------------------------------------
212
+ # CI/CD
213
+ # ---------------------------------------------
214
+ .github/workflows/*.yml.bak
215
+ .gitlab-ci.yml.bak
216
+
217
+ # ---------------------------------------------
218
+ # Package Distribution
219
+ # ---------------------------------------------
220
+ # uv.lock is intentionally included for reproducible builds
221
+ # Add to .gitignore if needed per project
222
+ # uv.lock
@@ -0,0 +1,13 @@
1
+ {
2
+ "mcpServers": {
3
+ "context7": {
4
+ "command": "npx",
5
+ "args": ["-y", "@upstash/context7-mcp@latest"]
6
+ }
7
+ },
8
+ "staggeredStartup": {
9
+ "enabled": true,
10
+ "delayMs": 500,
11
+ "connectionTimeout": 15000
12
+ }
13
+ }
@@ -0,0 +1,58 @@
1
+ # MoAI-ADK Configuration
2
+ # Format: YAML (modular section-based configuration)
3
+ #
4
+ # This is the main configuration file that references modular section files.
5
+ # Each section is stored in a separate file under .moai/config/sections/
6
+ # for better maintainability and token efficiency.
7
+ #
8
+ # Section Files:
9
+ # - sections/user.yaml: User personalization settings
10
+ # - sections/language.yaml: Language preferences
11
+ # - sections/project.yaml: Project metadata
12
+ # - sections/git-strategy.yaml: Git workflow configuration
13
+ # - sections/quality.yaml: TDD and quality settings
14
+ # - sections/system.yaml: MoAI system settings
15
+ #
16
+ # CLAUDE.md automatically loads:
17
+ # @.moai/config/sections/user.yaml
18
+ # @.moai/config/sections/language.yaml
19
+
20
+ moai:
21
+ version: "0.34.0"
22
+ initialized: true
23
+ initialized_at: "2025-12-19T00:00:00Z"
24
+
25
+ # Document Management System
26
+ # Prevents project root pollution by enforcing .moai/ hierarchy for all internal files
27
+ document_management:
28
+ enabled: true
29
+ enforce_structure: true
30
+ block_root_pollution: true
31
+
32
+ # Separation policy between logs and docs
33
+ separation_policy:
34
+ strict_separation: true
35
+ description: Clear separation between logs (runtime data) and docs (documentation content)
36
+ logs_scope: runtime sessions, errors, execution traces, agent transcripts
37
+ docs_scope: reports, analysis, validation, sync, inspection, documentation files
38
+
39
+ # Directory structure and retention policies
40
+ directories:
41
+ # Documentation files
42
+ docs:
43
+ base: .moai/docs/
44
+ retention_days: null # Keep indefinitely
45
+ # Log files (runtime data)
46
+ logs:
47
+ base: .moai/logs/
48
+ retention_days: 30
49
+ # Temporary files
50
+ temp:
51
+ base: .moai/temp/
52
+ retention_days: 7
53
+ auto_cleanup: true
54
+ # Cache files
55
+ cache:
56
+ base: .moai/cache/
57
+ retention_days: 30
58
+ auto_cleanup: true