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,513 @@
1
+ name: Continuous Integration
2
+
3
+ # Universal CI/CD pipeline for MoAI-ADK projects
4
+ # Auto-detects: Python, Node.js, Go, Rust, Java, Ruby
5
+ # Triggers: Pull requests and pushes to main/develop branches
6
+
7
+ on:
8
+ pull_request:
9
+ branches: [main, develop]
10
+ push:
11
+ branches: [develop, main]
12
+
13
+ permissions:
14
+ contents: read
15
+ checks: write
16
+ pull-requests: write
17
+
18
+ concurrency:
19
+ group: ci-${{ github.ref }}
20
+ cancel-in-progress: true
21
+
22
+ jobs:
23
+ detect-language:
24
+ name: 🔍 Detect Project Language
25
+ runs-on: ubuntu-latest
26
+ outputs:
27
+ python: ${{ steps.detect.outputs.python }}
28
+ node: ${{ steps.detect.outputs.node }}
29
+ go: ${{ steps.detect.outputs.go }}
30
+ rust: ${{ steps.detect.outputs.rust }}
31
+ java: ${{ steps.detect.outputs.java }}
32
+ ruby: ${{ steps.detect.outputs.ruby }}
33
+ primary_language: ${{ steps.detect.outputs.primary_language }}
34
+
35
+ steps:
36
+ - name: 📥 Checkout code
37
+ uses: actions/checkout@v4
38
+
39
+ - name: 🔎 Auto-detect language
40
+ id: detect
41
+ run: |
42
+ echo "🔍 Auto-detecting project language..."
43
+ echo ""
44
+
45
+ # Python detection
46
+ if [ -f "pyproject.toml" ] || [ -f "setup.py" ] || [ -f "requirements.txt" ]; then
47
+ echo "✅ Python project detected"
48
+ echo "python=true" >> $GITHUB_OUTPUT
49
+ PRIMARY="python"
50
+ else
51
+ echo "python=false" >> $GITHUB_OUTPUT
52
+ fi
53
+
54
+ # Node.js detection
55
+ if [ -f "package.json" ]; then
56
+ echo "✅ Node.js project detected"
57
+ echo "node=true" >> $GITHUB_OUTPUT
58
+ [ -z "$PRIMARY" ] && PRIMARY="node"
59
+ else
60
+ echo "node=false" >> $GITHUB_OUTPUT
61
+ fi
62
+
63
+ # Go detection
64
+ if [ -f "go.mod" ]; then
65
+ echo "✅ Go project detected"
66
+ echo "go=true" >> $GITHUB_OUTPUT
67
+ [ -z "$PRIMARY" ] && PRIMARY="go"
68
+ else
69
+ echo "go=false" >> $GITHUB_OUTPUT
70
+ fi
71
+
72
+ # Rust detection
73
+ if [ -f "Cargo.toml" ]; then
74
+ echo "✅ Rust project detected"
75
+ echo "rust=true" >> $GITHUB_OUTPUT
76
+ [ -z "$PRIMARY" ] && PRIMARY="rust"
77
+ else
78
+ echo "rust=false" >> $GITHUB_OUTPUT
79
+ fi
80
+
81
+ # Java detection
82
+ if [ -f "pom.xml" ] || [ -f "build.gradle" ] || [ -f "build.gradle.kts" ]; then
83
+ echo "✅ Java project detected"
84
+ echo "java=true" >> $GITHUB_OUTPUT
85
+ [ -z "$PRIMARY" ] && PRIMARY="java"
86
+ else
87
+ echo "java=false" >> $GITHUB_OUTPUT
88
+ fi
89
+
90
+ # Ruby detection
91
+ if [ -f "Gemfile" ]; then
92
+ echo "✅ Ruby project detected"
93
+ echo "ruby=true" >> $GITHUB_OUTPUT
94
+ [ -z "$PRIMARY" ] && PRIMARY="ruby"
95
+ else
96
+ echo "ruby=false" >> $GITHUB_OUTPUT
97
+ fi
98
+
99
+ # Set primary language
100
+ if [ -z "$PRIMARY" ]; then
101
+ echo "⚠️ No language detected, defaulting to generic checks"
102
+ PRIMARY="generic"
103
+ fi
104
+
105
+ echo ""
106
+ echo "✅ Primary language: $PRIMARY"
107
+ echo "primary_language=$PRIMARY" >> $GITHUB_OUTPUT
108
+
109
+ code-quality-python:
110
+ name: 🐍 Python Code Quality
111
+ runs-on: ubuntu-latest
112
+ needs: detect-language
113
+ if: needs.detect-language.outputs.python == 'true'
114
+
115
+ steps:
116
+ - name: 📥 Checkout code
117
+ uses: actions/checkout@v4
118
+
119
+ - name: 🐍 Setup Python
120
+ uses: actions/setup-python@v5
121
+ with:
122
+ python-version: "3.11"
123
+
124
+ - name: 📦 Install dependencies
125
+ run: |
126
+ echo "📦 Installing Python dependencies..."
127
+
128
+ # Try pip install with pyproject.toml, setup.py, or requirements.txt
129
+ if [ -f "pyproject.toml" ]; then
130
+ pip install -e .[dev] || pip install -e . || true
131
+ elif [ -f "setup.py" ]; then
132
+ pip install -e . || true
133
+ elif [ -f "requirements.txt" ]; then
134
+ pip install -r requirements.txt || true
135
+ fi
136
+
137
+ # Install common linters (best-effort)
138
+ pip install black ruff mypy bandit || true
139
+
140
+ - name: 🎨 Check code formatting (black)
141
+ run: |
142
+ echo "🎨 Checking Python code formatting..."
143
+ black --check . --line-length=120 || echo "⚠️ Formatting issues found (non-blocking)"
144
+
145
+ - name: 🔧 Lint code (ruff)
146
+ run: |
147
+ echo "🔧 Linting Python code..."
148
+ ruff check . || echo "⚠️ Linting issues found (non-blocking)"
149
+
150
+ - name: 📝 Type checking (mypy)
151
+ run: |
152
+ echo "📝 Type checking Python code..."
153
+ mypy . --ignore-missing-imports || echo "⚠️ Type issues found (non-blocking)"
154
+
155
+ - name: 🔐 Security check (bandit)
156
+ run: |
157
+ echo "🔐 Security scanning Python code..."
158
+ bandit -r . -ll || echo "⚠️ Security issues found (non-blocking)"
159
+
160
+ code-quality-node:
161
+ name: 🟢 Node.js Code Quality
162
+ runs-on: ubuntu-latest
163
+ needs: detect-language
164
+ if: needs.detect-language.outputs.node == 'true'
165
+
166
+ steps:
167
+ - name: 📥 Checkout code
168
+ uses: actions/checkout@v4
169
+
170
+ - name: 🟢 Setup Node.js
171
+ uses: actions/setup-node@v4
172
+ with:
173
+ node-version: '20'
174
+ cache: 'npm'
175
+
176
+ - name: 📦 Install dependencies
177
+ run: |
178
+ echo "📦 Installing Node.js dependencies..."
179
+ npm ci || npm install || true
180
+
181
+ - name: 🔧 Lint code (ESLint)
182
+ run: |
183
+ echo "🔧 Linting JavaScript/TypeScript code..."
184
+ npm run lint || npx eslint . || echo "⚠️ Linting issues found (non-blocking)"
185
+
186
+ - name: 🎨 Check formatting (Prettier)
187
+ run: |
188
+ echo "🎨 Checking code formatting..."
189
+ npm run format:check || npx prettier --check . || echo "⚠️ Formatting issues found (non-blocking)"
190
+
191
+ - name: 📝 Type checking (TypeScript)
192
+ run: |
193
+ echo "📝 Type checking TypeScript..."
194
+ npm run type-check || npx tsc --noEmit || echo "⚠️ Type issues found (non-blocking)"
195
+
196
+ code-quality-go:
197
+ name: 🐹 Go Code Quality
198
+ runs-on: ubuntu-latest
199
+ needs: detect-language
200
+ if: needs.detect-language.outputs.go == 'true'
201
+
202
+ steps:
203
+ - name: 📥 Checkout code
204
+ uses: actions/checkout@v4
205
+
206
+ - name: 🐹 Setup Go
207
+ uses: actions/setup-go@v5
208
+ with:
209
+ go-version: '1.21'
210
+
211
+ - name: 🔧 Format check (gofmt)
212
+ run: |
213
+ echo "🔧 Checking Go code formatting..."
214
+ gofmt -l . | grep . && echo "⚠️ Formatting issues found" || echo "✅ Format check passed"
215
+
216
+ - name: 📝 Lint code (golangci-lint)
217
+ run: |
218
+ echo "📝 Linting Go code..."
219
+ go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
220
+ golangci-lint run || echo "⚠️ Linting issues found (non-blocking)"
221
+
222
+ - name: 🔍 Vet code
223
+ run: |
224
+ echo "🔍 Running go vet..."
225
+ go vet ./... || echo "⚠️ Vet issues found (non-blocking)"
226
+
227
+ code-quality-rust:
228
+ name: 🦀 Rust Code Quality
229
+ runs-on: ubuntu-latest
230
+ needs: detect-language
231
+ if: needs.detect-language.outputs.rust == 'true'
232
+
233
+ steps:
234
+ - name: 📥 Checkout code
235
+ uses: actions/checkout@v4
236
+
237
+ - name: 🦀 Setup Rust
238
+ uses: actions-rust-lang/setup-rust-toolchain@v1
239
+
240
+ - name: 🔧 Format check (rustfmt)
241
+ run: |
242
+ echo "🔧 Checking Rust code formatting..."
243
+ cargo fmt --check || echo "⚠️ Formatting issues found (non-blocking)"
244
+
245
+ - name: 📝 Lint code (clippy)
246
+ run: |
247
+ echo "📝 Linting Rust code..."
248
+ cargo clippy -- -D warnings || echo "⚠️ Clippy warnings found (non-blocking)"
249
+
250
+ test-python:
251
+ name: 🧪 Python Tests
252
+ runs-on: ubuntu-latest
253
+ needs: [detect-language, code-quality-python]
254
+ if: needs.detect-language.outputs.python == 'true'
255
+
256
+ strategy:
257
+ matrix:
258
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
259
+
260
+ steps:
261
+ - name: 📥 Checkout code
262
+ uses: actions/checkout@v4
263
+
264
+ - name: 🐍 Setup Python ${{ matrix.python-version }}
265
+ uses: actions/setup-python@v5
266
+ with:
267
+ python-version: ${{ matrix.python-version }}
268
+
269
+ - name: 📦 Install dependencies
270
+ run: |
271
+ echo "📦 Installing dependencies for Python ${{ matrix.python-version }}..."
272
+
273
+ if [ -f "pyproject.toml" ]; then
274
+ pip install -e .[dev] || pip install -e . || true
275
+ elif [ -f "setup.py" ]; then
276
+ pip install -e . || true
277
+ elif [ -f "requirements.txt" ]; then
278
+ pip install -r requirements.txt || true
279
+ fi
280
+
281
+ pip install pytest pytest-cov || true
282
+
283
+ - name: 🧪 Run tests with coverage
284
+ run: |
285
+ echo "🧪 Running Python tests..."
286
+ pytest tests/ --cov --cov-report=xml --cov-report=term -v || echo "⚠️ Tests failed or not found"
287
+
288
+ - name: 📊 Upload coverage to Codecov
289
+ uses: codecov/codecov-action@v4
290
+ with:
291
+ files: ./coverage.xml
292
+ flags: unittests
293
+ name: codecov-py${{ matrix.python-version }}
294
+ fail_ci_if_error: false
295
+ env:
296
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
297
+
298
+ test-node:
299
+ name: 🧪 Node.js Tests
300
+ runs-on: ubuntu-latest
301
+ needs: [detect-language, code-quality-node]
302
+ if: needs.detect-language.outputs.node == 'true'
303
+
304
+ steps:
305
+ - name: 📥 Checkout code
306
+ uses: actions/checkout@v4
307
+
308
+ - name: 🟢 Setup Node.js
309
+ uses: actions/setup-node@v4
310
+ with:
311
+ node-version: '20'
312
+ cache: 'npm'
313
+
314
+ - name: 📦 Install dependencies
315
+ run: npm ci || npm install
316
+
317
+ - name: 🧪 Run tests
318
+ run: |
319
+ echo "🧪 Running Node.js tests..."
320
+ npm test || echo "⚠️ Tests failed or not found"
321
+
322
+ test-go:
323
+ name: 🧪 Go Tests
324
+ runs-on: ubuntu-latest
325
+ needs: [detect-language, code-quality-go]
326
+ if: needs.detect-language.outputs.go == 'true'
327
+
328
+ steps:
329
+ - name: 📥 Checkout code
330
+ uses: actions/checkout@v4
331
+
332
+ - name: 🐹 Setup Go
333
+ uses: actions/setup-go@v5
334
+ with:
335
+ go-version: '1.21'
336
+
337
+ - name: 🧪 Run tests
338
+ run: |
339
+ echo "🧪 Running Go tests..."
340
+ go test -v ./... -coverprofile=coverage.out || echo "⚠️ Tests failed or not found"
341
+
342
+ - name: 📊 Upload coverage
343
+ uses: codecov/codecov-action@v4
344
+ with:
345
+ files: ./coverage.out
346
+ flags: unittests
347
+ fail_ci_if_error: false
348
+ env:
349
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
350
+
351
+ test-rust:
352
+ name: 🧪 Rust Tests
353
+ runs-on: ubuntu-latest
354
+ needs: [detect-language, code-quality-rust]
355
+ if: needs.detect-language.outputs.rust == 'true'
356
+
357
+ steps:
358
+ - name: 📥 Checkout code
359
+ uses: actions/checkout@v4
360
+
361
+ - name: 🦀 Setup Rust
362
+ uses: actions-rust-lang/setup-rust-toolchain@v1
363
+
364
+ - name: 🧪 Run tests
365
+ run: |
366
+ echo "🧪 Running Rust tests..."
367
+ cargo test || echo "⚠️ Tests failed or not found"
368
+
369
+ build-python:
370
+ name: 🏗️ Build Python Package
371
+ runs-on: ubuntu-latest
372
+ needs: [detect-language, test-python]
373
+ if: needs.detect-language.outputs.python == 'true'
374
+
375
+ steps:
376
+ - name: 📥 Checkout code
377
+ uses: actions/checkout@v4
378
+
379
+ - name: 🐍 Setup Python
380
+ uses: actions/setup-python@v5
381
+ with:
382
+ python-version: "3.11"
383
+
384
+ - name: 📦 Install build tools
385
+ run: |
386
+ pip install build || true
387
+
388
+ - name: 🔨 Build package
389
+ run: |
390
+ echo "🔨 Building Python package..."
391
+ python -m build || echo "⚠️ Build failed (non-blocking)"
392
+
393
+ if [ -d "dist/" ]; then
394
+ echo "✅ Package built successfully"
395
+ ls -lh dist/
396
+ fi
397
+
398
+ - name: 📤 Upload build artifacts
399
+ if: success()
400
+ uses: actions/upload-artifact@v4
401
+ with:
402
+ name: python-dist
403
+ path: dist/
404
+ retention-days: 7
405
+
406
+ build-node:
407
+ name: 🏗️ Build Node.js Package
408
+ runs-on: ubuntu-latest
409
+ needs: [detect-language, test-node]
410
+ if: needs.detect-language.outputs.node == 'true'
411
+
412
+ steps:
413
+ - name: 📥 Checkout code
414
+ uses: actions/checkout@v4
415
+
416
+ - name: 🟢 Setup Node.js
417
+ uses: actions/setup-node@v4
418
+ with:
419
+ node-version: '20'
420
+ cache: 'npm'
421
+
422
+ - name: 📦 Install dependencies
423
+ run: npm ci || npm install
424
+
425
+ - name: 🔨 Build package
426
+ run: |
427
+ echo "🔨 Building Node.js package..."
428
+ npm run build || echo "⚠️ Build script not found (non-blocking)"
429
+
430
+ build-go:
431
+ name: 🏗️ Build Go Binary
432
+ runs-on: ubuntu-latest
433
+ needs: [detect-language, test-go]
434
+ if: needs.detect-language.outputs.go == 'true'
435
+
436
+ steps:
437
+ - name: 📥 Checkout code
438
+ uses: actions/checkout@v4
439
+
440
+ - name: 🐹 Setup Go
441
+ uses: actions/setup-go@v5
442
+ with:
443
+ go-version: '1.21'
444
+
445
+ - name: 🔨 Build binary
446
+ run: |
447
+ echo "🔨 Building Go binary..."
448
+ go build -v ./... || echo "⚠️ Build failed (non-blocking)"
449
+
450
+ build-rust:
451
+ name: 🏗️ Build Rust Binary
452
+ runs-on: ubuntu-latest
453
+ needs: [detect-language, test-rust]
454
+ if: needs.detect-language.outputs.rust == 'true'
455
+
456
+ steps:
457
+ - name: 📥 Checkout code
458
+ uses: actions/checkout@v4
459
+
460
+ - name: 🦀 Setup Rust
461
+ uses: actions-rust-lang/setup-rust-toolchain@v1
462
+
463
+ - name: 🔨 Build binary
464
+ run: |
465
+ echo "🔨 Building Rust binary..."
466
+ cargo build --release || echo "⚠️ Build failed (non-blocking)"
467
+
468
+ quality-gate:
469
+ name: ✅ Quality Gate
470
+ runs-on: ubuntu-latest
471
+ needs: [detect-language]
472
+ if: always()
473
+
474
+ steps:
475
+ - name: 📊 Check results
476
+ run: |
477
+ echo "📊 Quality Gate Results:"
478
+ echo ""
479
+ echo "Primary Language: ${{ needs.detect-language.outputs.primary_language }}"
480
+ echo ""
481
+ echo "✅ CI Pipeline completed"
482
+ echo ""
483
+ echo "Note: This is a universal CI pipeline that adapts to your project."
484
+ echo "Failures in optional steps (linting, formatting) are non-blocking."
485
+
486
+ - name: 📝 Summary
487
+ if: always()
488
+ run: |
489
+ cat >> $GITHUB_STEP_SUMMARY << 'SUMMARY'
490
+ ## ✅ Universal CI Pipeline Summary
491
+
492
+ | Check | Status |
493
+ |-------|--------|
494
+ | Language Detection | ✅ Passed |
495
+ | Code Quality | See individual jobs |
496
+ | Tests | See individual jobs |
497
+ | Build | See individual jobs |
498
+
499
+ ### Detected Languages
500
+ - **Python**: ${{ needs.detect-language.outputs.python }}
501
+ - **Node.js**: ${{ needs.detect-language.outputs.node }}
502
+ - **Go**: ${{ needs.detect-language.outputs.go }}
503
+ - **Rust**: ${{ needs.detect-language.outputs.rust }}
504
+ - **Java**: ${{ needs.detect-language.outputs.java }}
505
+ - **Ruby**: ${{ needs.detect-language.outputs.ruby }}
506
+
507
+ ### Primary Language
508
+ **${{ needs.detect-language.outputs.primary_language }}**
509
+
510
+ ---
511
+
512
+ *This is a universal CI pipeline provided by MoAI-ADK*
513
+ SUMMARY
@@ -0,0 +1,179 @@
1
+ name: 🔒 Security Secrets Detection
2
+
3
+ # Trigger on every push and PR to catch secrets early
4
+ on:
5
+ pull_request:
6
+ branches: [main, develop]
7
+ push:
8
+ branches: [main, develop]
9
+
10
+ permissions:
11
+ contents: read
12
+ security-events: write
13
+ pull-requests: write
14
+
15
+ jobs:
16
+ secrets-detection:
17
+ name: 🔐 Detect API Keys & Secrets
18
+ runs-on: ubuntu-latest
19
+
20
+ steps:
21
+ - name: 📥 Checkout code
22
+ uses: actions/checkout@v4
23
+ with:
24
+ fetch-depth: 0 # Full history for secret scanning
25
+
26
+ - name: 🔑 Run TruffleHog Secret Scanner
27
+ uses: trufflesecurity/trufflehog@main
28
+ with:
29
+ path: ./
30
+ base: ${{ github.event.repository.default_branch }}
31
+ head: HEAD
32
+ extra_args: --debug --only-verified
33
+
34
+ - name: 🔍 Custom Pattern Detection
35
+ run: |
36
+ echo "🔍 Running custom secret pattern detection..."
37
+
38
+ # Define patterns to search for
39
+ PATTERNS=(
40
+ "AIzaSy[A-Za-z0-9_-]{35}" # Google APIs
41
+ "sk-[A-Za-z0-9]{20,}" # OpenAI
42
+ "sk_[A-Za-z0-9]{20,}" # OpenAI variant
43
+ "sk-ant-[A-Za-z0-9]{20,}" # Anthropic
44
+ "AKIA[0-9A-Z]{16}" # AWS Access Keys
45
+ "aws_secret_access_key.*=.*[A-Za-z0-9/+]{40}"
46
+ "access[_-]?token.*=.*[A-Za-z0-9._-]{20,}"
47
+ )
48
+
49
+ # Excluded directories
50
+ EXCLUDE_DIRS="node_modules|venv|.venv|.git|.next|dist|build"
51
+
52
+ FOUND_SECRETS=false
53
+
54
+ for PATTERN in "${PATTERNS[@]}"; do
55
+ echo "Checking pattern: $PATTERN"
56
+
57
+ MATCHES=$(find . \
58
+ -type f \
59
+ -not -path "*/.*" \
60
+ -not -path "*/$EXCLUDE_DIRS/*" \
61
+ -exec grep -l "$PATTERN" {} \; 2>/dev/null || true)
62
+
63
+ if [ ! -z "$MATCHES" ]; then
64
+ echo "❌ Found potential secrets in:"
65
+ echo "$MATCHES"
66
+ FOUND_SECRETS=true
67
+ fi
68
+ done
69
+
70
+ if [ "$FOUND_SECRETS" = true ]; then
71
+ echo ""
72
+ echo "⚠️ Potential secrets detected! Please review before committing."
73
+ exit 1
74
+ else
75
+ echo "✅ No obvious secrets detected"
76
+ fi
77
+
78
+ - name: 📋 Check .env and secrets/ directories
79
+ run: |
80
+ echo "📋 Checking for .env files in staging area..."
81
+
82
+ # Get list of files that would be committed
83
+ FILES=$(git diff --cached --name-only 2>/dev/null || true)
84
+
85
+ # Check for .env files and secrets directory
86
+ if echo "$FILES" | grep -q -E '\.env|secrets/|\.key|\.pem'; then
87
+ echo "❌ ERROR: Attempting to commit sensitive files!"
88
+ echo ""
89
+ echo "Files detected:"
90
+ echo "$FILES" | grep -E '\.env|secrets/|\.key|\.pem'
91
+ echo ""
92
+ echo "These files should NOT be committed:"
93
+ echo " - .env files (API keys, tokens)"
94
+ echo " - secrets/ directory (credentials)"
95
+ echo " - .key, .pem files (certificates)"
96
+ echo ""
97
+ echo "Add them to .gitignore instead:"
98
+ echo " echo '.env' >> .gitignore"
99
+ exit 1
100
+ fi
101
+
102
+ echo "✅ No sensitive files detected in commit"
103
+
104
+ - name: 🛡️ Validate .gitignore completeness
105
+ run: |
106
+ echo "🛡️ Verifying .gitignore has all sensitive patterns..."
107
+
108
+ REQUIRED_PATTERNS=(
109
+ ".env"
110
+ "*.key"
111
+ "*.pem"
112
+ "secrets/"
113
+ "credentials/"
114
+ )
115
+
116
+ GITIGNORE_FILE=".gitignore"
117
+
118
+ if [ ! -f "$GITIGNORE_FILE" ]; then
119
+ echo "❌ .gitignore file not found!"
120
+ exit 1
121
+ fi
122
+
123
+ MISSING_PATTERNS=()
124
+
125
+ for PATTERN in "${REQUIRED_PATTERNS[@]}"; do
126
+ if ! grep -q "$PATTERN" "$GITIGNORE_FILE"; then
127
+ MISSING_PATTERNS+=("$PATTERN")
128
+ fi
129
+ done
130
+
131
+ if [ ${#MISSING_PATTERNS[@]} -gt 0 ]; then
132
+ echo "⚠️ Missing patterns in .gitignore:"
133
+ for PATTERN in "${MISSING_PATTERNS[@]}"; do
134
+ echo " - $PATTERN"
135
+ done
136
+ echo ""
137
+ echo "Please add these patterns to .gitignore"
138
+ exit 1
139
+ fi
140
+
141
+ echo "✅ .gitignore is properly configured"
142
+
143
+ - name: 📝 Comment on PR if secrets found
144
+ if: failure() && github.event_name == 'pull_request'
145
+ uses: actions/github-script@v7
146
+ with:
147
+ script: |
148
+ github.rest.issues.createComment({
149
+ issue_number: context.issue.number,
150
+ owner: context.repo.owner,
151
+ repo: context.repo.repo,
152
+ body: `❌ **Security Check Failed: Potential Secrets Detected**
153
+
154
+ This PR contains patterns that match known API keys, tokens, or credentials.
155
+
156
+ 🔒 **Security Requirements:**
157
+ - Never commit API keys, tokens, or passwords
158
+ - Use \`.env\` files (git-ignored) for local configuration
159
+ - Use GitHub Secrets for CI/CD sensitive data
160
+ - Use environment variables in production deployments
161
+
162
+ ✅ **How to fix:**
163
+ 1. Remove real secrets from files
164
+ 2. Replace with placeholders like: \`your_actual_key_here\`
165
+ 3. Store real values in \`.env\` (add to .gitignore)
166
+ 4. Force push corrected commits: \`git push --force-with-lease\`
167
+
168
+ 📚 **Reference:** https://github.com/modu-ai/moai-adk/security
169
+ `
170
+ })
171
+
172
+ - name: ✅ Summary
173
+ if: success()
174
+ run: |
175
+ echo "🎉 All security checks passed!"
176
+ echo ""
177
+ echo "✅ Secrets detection complete"
178
+ echo "✅ .env files are properly ignored"
179
+ echo "✅ .gitignore is properly configured"