moai-adk 0.25.4__py3-none-any.whl → 0.32.8__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 (378) hide show
  1. moai_adk/__init__.py +2 -5
  2. moai_adk/__main__.py +114 -82
  3. moai_adk/cli/__init__.py +6 -1
  4. moai_adk/cli/commands/__init__.py +1 -3
  5. moai_adk/cli/commands/analyze.py +5 -16
  6. moai_adk/cli/commands/doctor.py +6 -18
  7. moai_adk/cli/commands/init.py +56 -125
  8. moai_adk/cli/commands/language.py +14 -35
  9. moai_adk/cli/commands/status.py +9 -15
  10. moai_adk/cli/commands/update.py +1555 -190
  11. moai_adk/cli/prompts/init_prompts.py +112 -56
  12. moai_adk/cli/spec_status.py +263 -0
  13. moai_adk/cli/ui/__init__.py +44 -0
  14. moai_adk/cli/ui/progress.py +422 -0
  15. moai_adk/cli/ui/prompts.py +389 -0
  16. moai_adk/cli/ui/theme.py +129 -0
  17. moai_adk/cli/worktree/__init__.py +27 -0
  18. moai_adk/cli/worktree/__main__.py +31 -0
  19. moai_adk/cli/worktree/cli.py +672 -0
  20. moai_adk/cli/worktree/exceptions.py +89 -0
  21. moai_adk/cli/worktree/manager.py +490 -0
  22. moai_adk/cli/worktree/models.py +65 -0
  23. moai_adk/cli/worktree/registry.py +128 -0
  24. moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
  25. moai_adk/core/analysis/session_analyzer.py +17 -56
  26. moai_adk/core/claude_integration.py +26 -54
  27. moai_adk/core/command_helpers.py +10 -10
  28. moai_adk/core/comprehensive_monitoring_system.py +1183 -0
  29. moai_adk/core/config/auto_spec_config.py +5 -11
  30. moai_adk/core/config/migration.py +19 -9
  31. moai_adk/core/config/unified.py +436 -0
  32. moai_adk/core/context_manager.py +6 -12
  33. moai_adk/core/enterprise_features.py +1404 -0
  34. moai_adk/core/error_recovery_system.py +725 -112
  35. moai_adk/core/event_driven_hook_system.py +1371 -0
  36. moai_adk/core/git/__init__.py +8 -0
  37. moai_adk/core/git/branch_manager.py +3 -11
  38. moai_adk/core/git/checkpoint.py +1 -3
  39. moai_adk/core/git/conflict_detector.py +413 -0
  40. moai_adk/core/git/manager.py +91 -1
  41. moai_adk/core/hooks/post_tool_auto_spec_completion.py +56 -80
  42. moai_adk/core/input_validation_middleware.py +1006 -0
  43. moai_adk/core/integration/engine.py +6 -18
  44. moai_adk/core/integration/integration_tester.py +10 -9
  45. moai_adk/core/integration/utils.py +1 -1
  46. moai_adk/core/issue_creator.py +10 -28
  47. moai_adk/core/jit_context_loader.py +956 -0
  48. moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
  49. moai_adk/core/language_config_resolver.py +485 -0
  50. moai_adk/core/language_validator.py +28 -41
  51. moai_adk/core/mcp/setup.py +15 -12
  52. moai_adk/core/merge/__init__.py +9 -0
  53. moai_adk/core/merge/analyzer.py +481 -0
  54. moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
  55. moai_adk/core/migration/backup_manager.py +78 -9
  56. moai_adk/core/migration/custom_element_scanner.py +358 -0
  57. moai_adk/core/migration/file_migrator.py +8 -17
  58. moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
  59. moai_adk/core/migration/selective_restorer.py +470 -0
  60. moai_adk/core/migration/template_utils.py +74 -0
  61. moai_adk/core/migration/user_selection_ui.py +338 -0
  62. moai_adk/core/migration/version_detector.py +6 -10
  63. moai_adk/core/migration/version_migrator.py +3 -3
  64. moai_adk/core/performance/cache_system.py +8 -10
  65. moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
  66. moai_adk/core/project/checker.py +2 -4
  67. moai_adk/core/project/detector.py +1 -3
  68. moai_adk/core/project/initializer.py +135 -23
  69. moai_adk/core/project/phase_executor.py +54 -81
  70. moai_adk/core/project/validator.py +6 -12
  71. moai_adk/core/quality/trust_checker.py +9 -27
  72. moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
  73. moai_adk/core/robust_json_parser.py +611 -0
  74. moai_adk/core/rollback_manager.py +73 -148
  75. moai_adk/core/session_manager.py +10 -26
  76. moai_adk/core/skill_loading_system.py +579 -0
  77. moai_adk/core/spec/confidence_scoring.py +31 -100
  78. moai_adk/core/spec/ears_template_engine.py +351 -286
  79. moai_adk/core/spec/quality_validator.py +35 -69
  80. moai_adk/core/spec_status_manager.py +64 -74
  81. moai_adk/core/template/backup.py +45 -20
  82. moai_adk/core/template/config.py +112 -39
  83. moai_adk/core/template/merger.py +11 -19
  84. moai_adk/core/template/processor.py +253 -149
  85. moai_adk/core/template_engine.py +73 -40
  86. moai_adk/core/template_variable_synchronizer.py +417 -0
  87. moai_adk/core/unified_permission_manager.py +745 -0
  88. moai_adk/core/user_behavior_analytics.py +851 -0
  89. moai_adk/core/version_sync.py +429 -0
  90. moai_adk/foundation/__init__.py +56 -0
  91. moai_adk/foundation/backend.py +1027 -0
  92. moai_adk/foundation/database.py +1115 -0
  93. moai_adk/foundation/devops.py +1585 -0
  94. moai_adk/foundation/ears.py +431 -0
  95. moai_adk/foundation/frontend.py +870 -0
  96. moai_adk/foundation/git/commit_templates.py +4 -12
  97. moai_adk/foundation/git.py +376 -0
  98. moai_adk/foundation/langs.py +484 -0
  99. moai_adk/foundation/ml_ops.py +1162 -0
  100. moai_adk/foundation/testing.py +1524 -0
  101. moai_adk/foundation/trust/trust_principles.py +23 -72
  102. moai_adk/foundation/trust/validation_checklist.py +57 -162
  103. moai_adk/project/__init__.py +0 -0
  104. moai_adk/project/configuration.py +1084 -0
  105. moai_adk/project/documentation.py +566 -0
  106. moai_adk/project/schema.py +447 -0
  107. moai_adk/statusline/alfred_detector.py +1 -3
  108. moai_adk/statusline/config.py +13 -4
  109. moai_adk/statusline/enhanced_output_style_detector.py +23 -15
  110. moai_adk/statusline/main.py +51 -15
  111. moai_adk/statusline/renderer.py +104 -48
  112. moai_adk/statusline/update_checker.py +3 -9
  113. moai_adk/statusline/version_reader.py +140 -46
  114. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +549 -0
  115. moai_adk/templates/.claude/agents/moai/builder-agent.md +445 -0
  116. moai_adk/templates/.claude/agents/moai/builder-command.md +1132 -0
  117. moai_adk/templates/.claude/agents/moai/builder-skill.md +601 -0
  118. moai_adk/templates/.claude/agents/moai/expert-backend.md +831 -0
  119. moai_adk/templates/.claude/agents/moai/expert-database.md +774 -0
  120. moai_adk/templates/.claude/agents/moai/expert-debug.md +396 -0
  121. moai_adk/templates/.claude/agents/moai/expert-devops.md +711 -0
  122. moai_adk/templates/.claude/agents/moai/expert-frontend.md +666 -0
  123. moai_adk/templates/.claude/agents/moai/expert-security.md +474 -0
  124. moai_adk/templates/.claude/agents/moai/expert-uiux.md +1038 -0
  125. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +429 -0
  126. moai_adk/templates/.claude/agents/moai/manager-docs.md +570 -0
  127. moai_adk/templates/.claude/agents/moai/manager-git.md +937 -0
  128. moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
  129. moai_adk/templates/.claude/agents/moai/manager-quality.md +598 -0
  130. moai_adk/templates/.claude/agents/moai/manager-spec.md +713 -0
  131. moai_adk/templates/.claude/agents/moai/manager-strategy.md +600 -0
  132. moai_adk/templates/.claude/agents/moai/manager-tdd.md +603 -0
  133. moai_adk/templates/.claude/agents/moai/mcp-context7.md +369 -0
  134. moai_adk/templates/.claude/agents/moai/mcp-figma.md +1567 -0
  135. moai_adk/templates/.claude/agents/moai/mcp-notion.md +749 -0
  136. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +427 -0
  137. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +994 -0
  138. moai_adk/templates/.claude/commands/moai/0-project.md +1143 -0
  139. moai_adk/templates/.claude/commands/moai/1-plan.md +1435 -0
  140. moai_adk/templates/.claude/commands/moai/2-run.md +883 -0
  141. moai_adk/templates/.claude/commands/moai/3-sync.md +993 -0
  142. moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
  143. moai_adk/templates/.claude/hooks/__init__.py +8 -0
  144. moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
  145. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
  146. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
  147. moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
  148. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
  149. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
  150. moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
  151. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
  152. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
  153. moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
  154. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
  155. moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
  156. moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
  157. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
  158. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
  159. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
  160. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +921 -0
  161. moai_adk/templates/.claude/output-styles/moai/r2d2.md +380 -0
  162. moai_adk/templates/.claude/output-styles/moai/yoda.md +338 -0
  163. moai_adk/templates/.claude/settings.json +172 -0
  164. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +247 -0
  165. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
  166. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
  167. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
  168. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
  169. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
  170. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +319 -0
  171. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +320 -0
  172. moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
  173. moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
  174. moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
  175. moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
  176. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +496 -0
  177. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +453 -0
  178. moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
  179. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
  180. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
  181. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +405 -0
  182. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
  183. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
  184. moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
  185. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +491 -0
  186. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
  187. moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
  188. moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
  189. moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
  190. moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
  191. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
  192. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +201 -0
  193. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
  194. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
  195. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
  196. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
  197. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
  198. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
  199. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
  200. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
  201. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
  202. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
  203. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
  204. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
  205. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
  206. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
  207. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +438 -0
  208. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +515 -0
  209. moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
  210. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +346 -0
  211. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
  212. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
  213. moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
  214. moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
  215. moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
  216. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
  217. moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
  218. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
  219. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +362 -0
  220. moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
  221. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
  222. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
  223. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
  224. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
  225. moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
  226. moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
  227. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
  228. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
  229. moai_adk/templates/.claude/skills/moai-integration-mcp/SKILL.md +352 -0
  230. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +52 -0
  231. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +334 -0
  232. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +310 -0
  233. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +256 -0
  234. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +253 -0
  235. moai_adk/templates/.claude/skills/moai-lang-unified/README.md +133 -0
  236. moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +296 -0
  237. moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +1269 -0
  238. moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +331 -0
  239. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +298 -0
  240. moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
  241. moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
  242. moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
  243. moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
  244. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +316 -0
  245. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
  246. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
  247. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
  248. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
  249. moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
  250. moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
  251. moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
  252. moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
  253. moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
  254. moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
  255. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +370 -0
  256. moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
  257. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
  258. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
  259. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
  260. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
  261. moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
  262. moai_adk/templates/.claude/skills/moai-platform-baas/README.md +186 -0
  263. moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +290 -0
  264. moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +1225 -0
  265. moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +567 -0
  266. moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +323 -0
  267. moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +204 -0
  268. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +446 -0
  269. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
  270. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
  271. moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
  272. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +387 -0
  273. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
  274. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
  275. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
  276. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
  277. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
  278. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +135 -0
  279. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
  280. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
  281. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
  282. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
  283. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
  284. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
  285. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
  286. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
  287. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
  288. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
  289. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
  290. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1362 -0
  291. moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
  292. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
  293. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
  294. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +71 -0
  295. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
  296. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
  297. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
  298. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
  299. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
  300. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
  301. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +374 -0
  302. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
  303. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
  304. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
  305. moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
  306. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +453 -0
  307. moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
  308. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
  309. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
  310. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
  311. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
  312. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
  313. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
  314. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
  315. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
  316. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
  317. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
  318. moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
  319. moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
  320. moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
  321. moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
  322. moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
  323. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +410 -0
  324. moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
  325. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
  326. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
  327. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
  328. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
  329. moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
  330. moai_adk/templates/.git-hooks/pre-commit +103 -41
  331. moai_adk/templates/.git-hooks/pre-push +116 -21
  332. moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
  333. moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
  334. moai_adk/templates/.gitignore +184 -44
  335. moai_adk/templates/.mcp.json +7 -9
  336. moai_adk/templates/.moai/cache/personalization.json +10 -0
  337. moai_adk/templates/.moai/config/config.yaml +344 -0
  338. moai_adk/templates/.moai/config/presets/manual.yaml +28 -0
  339. moai_adk/templates/.moai/config/presets/personal.yaml +30 -0
  340. moai_adk/templates/.moai/config/presets/team.yaml +33 -0
  341. moai_adk/templates/.moai/config/questions/_schema.yaml +79 -0
  342. moai_adk/templates/.moai/config/questions/tab1-user.yaml +108 -0
  343. moai_adk/templates/.moai/config/questions/tab2-project.yaml +122 -0
  344. moai_adk/templates/.moai/config/questions/tab3-git.yaml +542 -0
  345. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +167 -0
  346. moai_adk/templates/.moai/config/questions/tab5-system.yaml +152 -0
  347. moai_adk/templates/.moai/config/sections/git-strategy.yaml +40 -0
  348. moai_adk/templates/.moai/config/sections/language.yaml +11 -0
  349. moai_adk/templates/.moai/config/sections/project.yaml +13 -0
  350. moai_adk/templates/.moai/config/sections/quality.yaml +15 -0
  351. moai_adk/templates/.moai/config/sections/system.yaml +14 -0
  352. moai_adk/templates/.moai/config/sections/user.yaml +5 -0
  353. moai_adk/templates/.moai/config/statusline-config.yaml +86 -0
  354. moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
  355. moai_adk/templates/CLAUDE.md +382 -501
  356. moai_adk/utils/__init__.py +24 -1
  357. moai_adk/utils/banner.py +7 -10
  358. moai_adk/utils/common.py +16 -30
  359. moai_adk/utils/link_validator.py +4 -12
  360. moai_adk/utils/safe_file_reader.py +2 -6
  361. moai_adk/utils/timeout.py +160 -0
  362. moai_adk/utils/toon_utils.py +256 -0
  363. moai_adk/version.py +22 -0
  364. moai_adk-0.32.8.dist-info/METADATA +2478 -0
  365. moai_adk-0.32.8.dist-info/RECORD +396 -0
  366. {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/WHEEL +1 -1
  367. {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/entry_points.txt +1 -0
  368. moai_adk/cli/commands/backup.py +0 -82
  369. moai_adk/cli/commands/improve_user_experience.py +0 -348
  370. moai_adk/cli/commands/migrate.py +0 -158
  371. moai_adk/cli/commands/validate_links.py +0 -118
  372. moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -413
  373. moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
  374. moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
  375. moai_adk/utils/user_experience.py +0 -531
  376. moai_adk-0.25.4.dist-info/METADATA +0 -2279
  377. moai_adk-0.25.4.dist-info/RECORD +0 -112
  378. {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,357 @@
1
+ # MoAI Worktree Reference
2
+
3
+ Purpose: External resources, documentation, and additional learning materials for moai-worktree skill.
4
+
5
+ Version: 1.0.0
6
+ Last Updated: 2025-11-29
7
+
8
+ ---
9
+
10
+ ## External Documentation
11
+
12
+ ### Git Worktree Official Documentation
13
+
14
+ - Git Worktree Documentation: [https://git-scm.com/docs/git-worktree](https://git-scm.com/docs/git-worktree)
15
+ - Official Git worktree command reference
16
+ - Advanced worktree patterns and workflows
17
+ - Troubleshooting and best practices
18
+
19
+ - Pro Git Book - Worktrees: [https://git-scm.com/book/en/v2/Git-Tools-Worktree](https://git-scm.com/book/en/v2/Git-Tools-Worktree)
20
+ - Comprehensive guide to Git worktrees
21
+ - Multiple workflow management strategies
22
+ - Worktree lifecycle management
23
+
24
+ ### Development Tools Documentation
25
+
26
+ - VS Code Multi-Root Workspaces: [https://code.visualstudio.com/docs/editor/multi-root-workspaces](https://code.visualstudio.com/docs/editor/multi-root-workspaces)
27
+ - Setting up multi-root workspaces for worktree development
28
+ - Workspace configuration and task automation
29
+ - Extension management across worktrees
30
+
31
+ - Click Framework: [https://click.palletsprojects.com/](https://click.palletsprojects.com/)
32
+ - Command-line interface framework used by moai-worktree
33
+ - Advanced CLI patterns and argument parsing
34
+ - Custom command development
35
+
36
+ ### Python Development Resources
37
+
38
+ - Rich Library: [https://rich.readthedocs.io/](https://rich.readthedocs.io/)
39
+ - Terminal output formatting used by moai-worktree
40
+ - Tables, progress bars, and syntax highlighting
41
+ - Advanced terminal UI patterns
42
+
43
+ - Pathlib Documentation: [https://docs.python.org/3/library/pathlib.html](https://docs.python.org/3/library/pathlib.html)
44
+ - Modern path manipulation for cross-platform compatibility
45
+ - File system operations and directory traversal
46
+ - Path validation and security considerations
47
+
48
+ ---
49
+
50
+ ## Related Skills and Integrations
51
+
52
+ ### MoAI-ADK Skills
53
+
54
+ - moai-foundation-core: Foundation principles and delegation patterns
55
+ - Reference: [moai-foundation-core modules](moai-foundation-core/modules/)
56
+ - Integration: Worktree creation follows foundation delegation patterns
57
+
58
+ - moai-workflow-project: Project management and configuration
59
+ - Reference: [moai-workflow-project modules](moai-workflow-project/modules/)
60
+ - Integration: Project setup with worktree support
61
+
62
+ - moai-foundation-claude: Claude Code execution patterns
63
+ - Reference: [moai-foundation-claude modules](moai-foundation-claude/modules/)
64
+ - Integration: Command and agent execution patterns
65
+
66
+ ### Complementary Tools
67
+
68
+ - Git Hooks: Custom Git hooks for worktree automation
69
+ - Pre-commit hooks for worktree validation
70
+ - Post-checkout hooks for environment setup
71
+ - Pre-push hooks for worktree synchronization
72
+
73
+ - Docker: Containerized development environments
74
+ - Docker Compose for service orchestration in worktrees
75
+ - Volume mounts for persistent data across worktrees
76
+ - Environment isolation for different worktree configurations
77
+
78
+ - Makefiles: Build automation across worktrees
79
+ - Parallel build processes for multiple worktrees
80
+ - Shared build targets and dependencies
81
+ - Cleanup and optimization automation
82
+
83
+ ---
84
+
85
+ ## Community Resources
86
+
87
+ ### Open Source Projects
88
+
89
+ - Git Worktree Managers:
90
+ - [git-worktree](https://github.com/charmbracelet/git-worktree) - Go implementation
91
+ - [git-worktree.nvim](https://github.com/ThePrimeagen/git-worktree.nvim) - Neovim plugin
92
+ - [git-worktree.el](https://github.com/magit/git-worktree.el) - Emacs integration
93
+
94
+ ### Blog Posts and Articles
95
+
96
+ - Parallel Development with Git Worktrees: [Medium Article](https://medium.com/@username/parallel-development-git-worktrees)
97
+ - Git Worktree Best Practices: [Dev.to Article](https://dev.to/username/git-worktree-best-practices)
98
+ - Advanced Worktree Workflows: [GitHub Gist](https://gist.github.com/username/worktree-patterns)
99
+
100
+ ### Video Tutorials
101
+
102
+ - Git Worktree Tutorial: [YouTube Tutorial](https://www.youtube.com/watch?v=worktree-tutorial)
103
+ - Parallel Development Setup: [Screencast](https://www.youtube.com/watch?v=parallel-dev-setup)
104
+ - Worktree Automation: [Conference Talk](https://www.youtube.com/watch?v=worktree-automation)
105
+
106
+ ---
107
+
108
+ ## Performance and Optimization
109
+
110
+ ### Performance Monitoring Tools
111
+
112
+ - htop: Process monitoring for worktree resource usage
113
+ - Monitor CPU and memory usage across worktrees
114
+ - Identify resource-intensive worktree operations
115
+ - Track disk usage and I/O patterns
116
+
117
+ - ncdu: Disk usage analysis for worktree cleanup
118
+ - Analyze disk usage patterns across worktrees
119
+ - Identify large files and directories for optimization
120
+ - Generate cleanup recommendations
121
+
122
+ - git-branchless: Faster Git operations for large repositories
123
+ - Optimize performance for worktree operations
124
+ - Reduce overhead for large codebase worktrees
125
+ - Improve sync performance across multiple worktrees
126
+
127
+ ### Optimization Techniques
128
+
129
+ 1. Shallow Worktrees: For fast prototyping and testing
130
+ ```bash
131
+ moai-worktree new SPEC-PROTO-001 "Prototype" --shallow --depth 1
132
+ ```
133
+
134
+ 2. Selective Synchronization: Sync only essential files
135
+ ```bash
136
+ moai-worktree sync SPEC-001 --include "src/" --exclude "node_modules/"
137
+ ```
138
+
139
+ 3. Background Operations: Non-blocking worktree operations
140
+ ```bash
141
+ moai-worktree sync --all --background
142
+ ```
143
+
144
+ ---
145
+
146
+ ## Security Considerations
147
+
148
+ ### Worktree Security Best Practices
149
+
150
+ 1. Isolation: Ensure worktrees don't share sensitive data
151
+ - Use separate environment files (`.env.local`) for each worktree
152
+ - Avoid sharing API keys or credentials between worktrees
153
+ - Regularly audit worktree configurations
154
+
155
+ 2. Access Control: Implement proper file permissions
156
+ - Set appropriate permissions on worktree directories (755)
157
+ - Restrict access to sensitive worktree data
158
+ - Use Git hooks to prevent accidental secrets commits
159
+
160
+ 3. Backup Strategy: Implement worktree backup and recovery
161
+ - Regular backups of worktree registry and configurations
162
+ - Version control for worktree templates and scripts
163
+ - Recovery procedures for corrupted worktrees
164
+
165
+ ### Security Tools
166
+
167
+ - git-secrets: Detect sensitive data in worktrees
168
+ - Scan worktrees for accidental secrets or credentials
169
+ - Integrate with pre-commit hooks for worktree security
170
+ - Automatic remediation suggestions
171
+
172
+ - truffleHog: Security scanning for worktree files
173
+ - Comprehensive security audit across worktrees
174
+ - API key and credential detection
175
+ - Custom pattern matching for project-specific secrets
176
+
177
+ ---
178
+
179
+ ## Integration Examples
180
+
181
+ ### CI/CD Integration
182
+
183
+ #### GitHub Actions Workflow
184
+
185
+ ```yaml
186
+ # .github/workflows/worktree-testing.yml
187
+ name: Worktree Testing
188
+
189
+ on:
190
+ push:
191
+ branches: [ "feature/SPEC-*" ]
192
+
193
+ jobs:
194
+ test-worktree:
195
+ runs-on: ubuntu-latest
196
+ steps:
197
+ - uses: actions/checkout@v3
198
+ with:
199
+ fetch-depth: 0
200
+
201
+ - name: Setup moai-worktree
202
+ run: |
203
+ pip install moai-adk
204
+ echo "Setting up worktree environment..."
205
+
206
+ - name: Test Worktree Operations
207
+ run: |
208
+ # Test worktree creation
209
+ moai-worktree new test-spec "Test Worktree"
210
+
211
+ # Test worktree synchronization
212
+ moai-worktree sync test-spec
213
+
214
+ # Test worktree cleanup
215
+ moai-worktree remove test-spec
216
+ ```
217
+
218
+ #### Jenkins Pipeline
219
+
220
+ ```groovy
221
+ // Jenkinsfile for worktree testing
222
+ pipeline {
223
+ agent any
224
+
225
+ stages {
226
+ stage('Setup') {
227
+ steps {
228
+ sh '''
229
+ pip install moai-adk
230
+ moai-worktree config set worktree_root $WORKSPACE/worktrees
231
+ '''
232
+ }
233
+ }
234
+
235
+ stage('Test') {
236
+ parallel {
237
+ stage('Auth Worktree') {
238
+ steps {
239
+ sh '''
240
+ moai-worktree new SPEC-AUTH-001 "Authentication Worktree"
241
+ cd $(moai-worktree go SPEC-AUTH-001)
242
+ npm test
243
+ '''
244
+ }
245
+ }
246
+
247
+ stage('Payment Worktree') {
248
+ steps {
249
+ sh '''
250
+ moai-worktree new SPEC-PAY-001 "Payment Worktree"
251
+ cd $(moai-worktree go SPEC-PAY-001)
252
+ npm test
253
+ '''
254
+ }
255
+ }
256
+ }
257
+ }
258
+
259
+ stage('Cleanup') {
260
+ steps {
261
+ sh '''
262
+ moai-worktree clean --force
263
+ rm -rf $WORKSPACE/worktrees
264
+ '''
265
+ }
266
+ }
267
+ }
268
+ }
269
+ ```
270
+
271
+ ---
272
+
273
+ ## Troubleshooting Resources
274
+
275
+ ### Common Error Patterns
276
+
277
+ 1. Permission Denied Errors:
278
+ - Check file permissions on worktree directories
279
+ - Verify user has write access to worktree root
280
+ - Ensure Git repository permissions are correct
281
+
282
+ 2. Disk Space Issues:
283
+ - Monitor disk usage with `df -h`
284
+ - Clean up large files with `ncdu`
285
+ - Implement automated cleanup schedules
286
+
287
+ 3. Network Connectivity:
288
+ - Verify Git remote repository accessibility
289
+ - Check network connectivity for external dependencies
290
+ - Use offline worktree operations when possible
291
+
292
+ ### Debugging Tools
293
+
294
+ - git worktree prune: Clean up stale worktree references
295
+ - git fsck: Repository integrity checking
296
+ - strace: System call tracing for debugging
297
+ - lsof: Open file tracking and process monitoring
298
+
299
+ ---
300
+
301
+ ## Version History
302
+
303
+ ### Current Version (1.0.0)
304
+ - Initial release with core worktree management features
305
+ - Integration with MoAI-ADK workflow commands
306
+ - Comprehensive documentation and examples
307
+
308
+ ### Future Roadmap
309
+ - v1.1.0: Team collaboration features
310
+ - Shared worktree registries
311
+ - Multi-developer coordination
312
+ - Conflict resolution algorithms
313
+
314
+ - v1.2.0: Advanced automation features
315
+ - Worktree templates marketplace
316
+ - Custom automation scripts
317
+ - Performance optimization tools
318
+
319
+ - v1.3.0: Cloud integration
320
+ - Cloud-based worktree storage
321
+ - Remote worktree synchronization
322
+ - Distributed development workflows
323
+
324
+ ---
325
+
326
+ ## Contributing
327
+
328
+ ### How to Contribute
329
+
330
+ 1. Report Issues: Submit bug reports and feature requests
331
+ 2. Submit Pull Requests: Contribute code and documentation improvements
332
+ 3. Share Examples: Add usage examples and integration patterns
333
+ 4. Document Workflows: Create tutorials and guides
334
+
335
+ ### Development Setup
336
+
337
+ ```bash
338
+ # Clone the repository
339
+ git clone https://github.com/your-org/moai-adk.git
340
+
341
+ # Set up development environment
342
+ cd moai-adk
343
+ pip install -e .
344
+ pip install -r requirements-dev.txt
345
+
346
+ # Run tests
347
+ pytest tests/test_worktree.py -v
348
+
349
+ # Build documentation
350
+ mkdocs build
351
+ ```
352
+
353
+ ---
354
+
355
+ Version: 1.0.0
356
+ Last Updated: 2025-11-29
357
+ Reference: External resources and additional learning materials for moai-worktree
@@ -1,66 +1,128 @@
1
1
  #!/bin/bash
2
- # @CODE:DOC-TAG-004 | Component 1: Pre-commit hook for TAG validation
2
+ ################################################################################
3
+ # Pre-commit Hook: Security & Workflow Protection
3
4
  #
4
- # This hook validates TAG annotations in staged files before commit.
5
- # It checks:
6
- # - TAG format (@DOC:DOMAIN-TYPE-NNN)
7
- # - Duplicate TAG detection
8
- # - Orphan TAG detection (warnings only)
5
+ # Purpose: Prevent API keys, tokens, and sensitive data from being committed
6
+ #
7
+ # Phases:
8
+ # 1. Security Secrets Detection (CRITICAL) - Blocks if secrets found
9
+ # 2. Workflow Protection - Enforces Git branch rules
9
10
  #
10
11
  # Exit codes:
11
- # 0 - Validation passed
12
- # 1 - Validation failed (duplicates or format errors)
12
+ # 0 - All checks passed
13
+ # 1 - Secrets detected or workflow violation
14
+ ################################################################################
13
15
 
14
- set -e # Exit on error
16
+ set -e
15
17
 
16
18
  # Colors for output
17
19
  RED='\033[0;31m'
18
- GREEN='\033[0;32m'
19
20
  YELLOW='\033[1;33m'
21
+ GREEN='\033[0;32m'
20
22
  NC='\033[0m' # No Color
21
23
 
22
- # Get repository root
23
- REPO_ROOT=$(git rev-parse --show-toplevel)
24
+ ###############################################################################
25
+ # PHASE 1: Security Secrets Detection (CRITICAL)
26
+ ###############################################################################
24
27
 
25
- # Check if Python module is available
26
- if ! python3 -c "import moai_adk.core.tags.pre_commit_validator" 2>/dev/null; then
27
- echo -e "${YELLOW}Warning: moai_adk TAG validator not found.${NC}"
28
- echo "Skipping TAG validation. Install moai_adk to enable validation."
29
- exit 0
30
- fi
28
+ echo "🔒 [Phase 1] Running Security Secrets Detection..."
29
+
30
+ SECRETS_FOUND=false
31
+
32
+ # Define secret patterns to detect
33
+ declare -a PATTERNS=(
34
+ "AIzaSy[A-Za-z0-9_-]{35}" # Google APIs
35
+ "sk-[A-Za-z0-9]{20,}" # OpenAI
36
+ "sk_[A-Za-z0-9]{20,}" # OpenAI variant
37
+ "sk-ant-[A-Za-z0-9]{20,}" # Anthropic
38
+ "AKIA[0-9A-Z]{16}" # AWS Access Keys
39
+ "api[_-]?key['\"]?\s*[:=]\s*['\"]?[A-Za-z0-9_-]{20,}['\"]?"
40
+ "bearer[_-]?token['\"]?\s*[:=]\s*['\"]?[A-Za-z0-9._-]{20,}['\"]?"
41
+ "aws_secret_access_key['\"]?\s*[:=]\s*['\"]?[A-Za-z0-9/+=]{40}['\"]?"
42
+ "access[_-]?token['\"]?\s*[:=]\s*['\"]?[A-Za-z0-9._-]{20,}['\"]?"
43
+ )
31
44
 
32
45
  # Get staged files
33
46
  STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM)
34
47
 
35
- if [ -z "$STAGED_FILES" ]; then
36
- echo -e "${GREEN}No staged files to validate.${NC}"
37
- exit 0
38
- fi
48
+ for FILE in $STAGED_FILES; do
49
+ # Skip binary files
50
+ if file "$FILE" 2>/dev/null | grep -q "binary"; then
51
+ continue
52
+ fi
53
+
54
+ # Skip certain directories
55
+ if [[ "$FILE" =~ node_modules|venv|\.venv|\.git|\.next|dist ]]; then
56
+ continue
57
+ fi
39
58
 
40
- echo "🔍 Validating TAG annotations in staged files..."
59
+ # Get the staged content
60
+ STAGED_CONTENT=$(git show :"$FILE" 2>/dev/null)
41
61
 
42
- # Run TAG validation
43
- # Pass staged files as arguments to validator
44
- python3 -m moai_adk.core.tags.pre_commit_validator \
45
- --files $STAGED_FILES
62
+ # Check against each pattern
63
+ for PATTERN in "${PATTERNS[@]}"; do
64
+ if echo "$STAGED_CONTENT" | grep -qE "$PATTERN"; then
65
+ if [ "$SECRETS_FOUND" = false ]; then
66
+ echo ""
67
+ echo -e "${RED}❌ SECURITY ERROR: Secrets detected!${NC}"
68
+ SECRETS_FOUND=true
69
+ fi
46
70
 
47
- VALIDATION_RESULT=$?
71
+ echo -e "${RED} File: $FILE${NC}"
72
+ LINE_NUMS=$(echo "$STAGED_CONTENT" | grep -n -E "$PATTERN" | cut -d: -f1 | head -3)
73
+ echo -e "${YELLOW} Lines: $LINE_NUMS${NC}"
74
+ fi
75
+ done
76
+ done
48
77
 
49
- # Check result
50
- if [ $VALIDATION_RESULT -eq 0 ]; then
51
- echo -e "${GREEN}✓ TAG validation passed.${NC}"
52
- exit 0
53
- else
54
- echo -e "${RED}✗ TAG validation failed.${NC}"
78
+ if [ "$SECRETS_FOUND" = true ]; then
55
79
  echo ""
56
- echo "Commit blocked due to TAG validation errors."
80
+ echo -e "${RED}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
81
+ echo -e "${RED}⛔ COMMIT BLOCKED: Secrets detected in staged files${NC}"
82
+ echo -e "${RED}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
57
83
  echo ""
58
- echo "To fix:"
59
- echo " 1. Fix duplicate TAGs or format errors shown above"
60
- echo " 2. Stage your changes with 'git add'"
61
- echo " 3. Try committing again"
84
+ echo " FIX:"
85
+ echo " 1. Replace secret with: 'your_actual_key_here'"
86
+ echo " 2. Store real key in: .env (git-ignored)"
87
+ echo " 3. Stage fixed files: git add <file>"
88
+ echo " 4. Retry commit: git commit"
62
89
  echo ""
63
- echo "To skip this validation (not recommended):"
64
- echo " git commit --no-verify"
65
90
  exit 1
66
91
  fi
92
+
93
+ echo -e "${GREEN}✅ Security check passed${NC}"
94
+
95
+ ###############################################################################
96
+ # PHASE 2: Workflow Protection (Branch Rules)
97
+ ###############################################################################
98
+
99
+ echo "🔄 [Phase 2] Checking Workflow Rules..."
100
+
101
+ CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
102
+
103
+ # Detect direct commits on develop branch
104
+ if [ "$CURRENT_BRANCH" = "develop" ]; then
105
+ echo "⚠️ WARNING: You are attempting to commit directly to develop branch."
106
+ echo ""
107
+ echo "📋 Hybrid Personal-Pro Workflow Rules:"
108
+ echo " - Personal Mode (1-2 people): feature/SPEC-XXX → main"
109
+ echo " - Team Mode (3+ people): feature/SPEC-XXX → develop → main"
110
+ echo ""
111
+ echo "✓ Current: Personal Mode → Work on main branch"
112
+ echo ""
113
+ echo "💡 Recommended Actions:"
114
+ echo " 1. git reset HEAD (cancel commit)"
115
+ echo " 2. git checkout main"
116
+ echo " 3. git checkout -b feature/SPEC-XXX"
117
+ echo " 4. Continue your work"
118
+ echo ""
119
+ read -p "Continue anyway? (y/n): " -n 1 -r
120
+ echo
121
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
122
+ exit 1
123
+ fi
124
+ fi
125
+
126
+ echo -e "${GREEN}✅ Workflow check passed${NC}"
127
+ echo ""
128
+ exit 0
@@ -1,22 +1,103 @@
1
1
  #!/bin/bash
2
2
 
3
- # MoAI-ADK GitFlow Main Branch Control Hook
4
- # Purpose: Enforce GitFlow in team mode, advisory in personal mode
5
- # Enforces: Strict team workflow, flexible personal development
6
- #
7
- # This hook runs before any git push operation:
8
- # Team Mode: Blocks direct main/master push (non-develop), requires confirmation for develop→main
9
- # Personal Mode: Advisory warnings, allows flexibility
10
- #
11
- # Exit codes:
12
- # 0 - Push allowed
13
- # 1 - Push blocked (team mode violation or user declined)
14
-
15
- # Check team mode from .moai/config/config.json
3
+ ################################################################################
4
+ # Pre-push Hook: Security Detection + GitFlow Control
5
+ ################################################################################
6
+
7
+ # Colors for output
8
+ RED='\033[0;31m'
9
+ YELLOW='\033[1;33m'
10
+ GREEN='\033[0;32m'
11
+ BLUE='\033[0;34m'
12
+ NC='\033[0m' # No Color
13
+
14
+ ###############################################################################
15
+ # PHASE 1: Security Secrets Detection (CRITICAL - Must run first)
16
+ ###############################################################################
17
+
18
+ echo "🔒 [Phase 1] Running Security Secrets Detection before push..."
19
+
20
+ SECRETS_FOUND=false
21
+
22
+ # Define secret patterns to detect
23
+ declare -a PATTERNS=(
24
+ "AIzaSy[A-Za-z0-9_-]{35}" # Google APIs
25
+ "sk-[A-Za-z0-9]{20,}" # OpenAI
26
+ "sk_[A-Za-z0-9]{20,}" # OpenAI variant
27
+ "sk-ant-[A-Za-z0-9]{20,}" # Anthropic
28
+ "AKIA[0-9A-Z]{16}" # AWS Access Keys
29
+ "api[_-]?key['\"]?\s*[:=]\s*['\"]?[A-Za-z0-9_-]{20,}['\"]?"
30
+ "bearer[_-]?token['\"]?\s*[:=]\s*['\"]?[A-Za-z0-9._-]{20,}['\"]?"
31
+ "aws_secret_access_key['\"]?\s*[:=]\s*['\"]?[A-Za-z0-9/+=]{40}['\"]?"
32
+ "access[_-]?token['\"]?\s*[:=]\s*['\"]?[A-Za-z0-9._-]{20,}['\"]?"
33
+ )
34
+
35
+ # Store all input lines for processing
36
+ input_lines=()
37
+ while read local_ref local_oid remote_ref remote_oid; do
38
+ input_lines+=("$local_ref $local_oid $remote_ref $remote_oid")
39
+
40
+ # Check commits being pushed for secrets
41
+ if [ "$local_oid" != "0000000000000000000000000000000000000000" ]; then
42
+ remote_base="$remote_oid"
43
+ if [ "$remote_oid" = "0000000000000000000000000000000000000000" ]; then
44
+ # New branch - check all commits on this branch
45
+ remote_base=$(git rev-parse origin/main 2>/dev/null || git rev-parse origin/develop 2>/dev/null || echo "HEAD")
46
+ fi
47
+
48
+ # Get commits being pushed
49
+ PUSHED_COMMITS=$(git rev-list $remote_base..$local_oid 2>/dev/null)
50
+
51
+ for COMMIT in $PUSHED_COMMITS; do
52
+ COMMIT_CONTENT=$(git show $COMMIT 2>/dev/null)
53
+
54
+ for PATTERN in "${PATTERNS[@]}"; do
55
+ if echo "$COMMIT_CONTENT" | grep -qE "$PATTERN"; then
56
+ if [ "$SECRETS_FOUND" = false ]; then
57
+ echo ""
58
+ echo -e "${RED}❌ SECURITY ERROR: Secrets detected in commits!${NC}"
59
+ SECRETS_FOUND=true
60
+ fi
61
+
62
+ echo -e "${RED} Commit: ${COMMIT:0:7}${NC}"
63
+ LINE_NUMS=$(echo "$COMMIT_CONTENT" | grep -n -E "$PATTERN" | cut -d: -f1 | head -3)
64
+ echo -e "${YELLOW} Lines: $LINE_NUMS${NC}"
65
+ fi
66
+ done
67
+ done
68
+ fi
69
+ done
70
+
71
+ if [ "$SECRETS_FOUND" = true ]; then
72
+ echo ""
73
+ echo -e "${RED}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
74
+ echo -e "${RED}⛔ PUSH BLOCKED: Secrets detected in commits${NC}"
75
+ echo -e "${RED}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
76
+ echo ""
77
+ echo "✅ FIX:"
78
+ echo " 1. Amend commit: git commit --amend"
79
+ echo " 2. Replace secret with: 'your_actual_key_here'"
80
+ echo " 3. Store real key in: .env (git-ignored)"
81
+ echo " 4. Force push: git push --force-with-lease"
82
+ echo ""
83
+ echo "⚠️ Never push real API keys to GitHub!"
84
+ echo ""
85
+ exit 1
86
+ fi
87
+
88
+ echo -e "${GREEN}✅ Security check passed${NC}"
89
+
90
+ ###############################################################################
91
+ # PHASE 2: GitFlow Enforcement + Branch Rules
92
+ ###############################################################################
93
+
94
+ echo "🔄 [Phase 2] Checking GitFlow Rules..."
95
+
96
+ # Check team mode from .moai/config.json
16
97
  is_team_mode() {
17
- if [ -f ".moai/config/config.json" ]; then
98
+ if [ -f ".moai/config.json" ]; then
18
99
  # Check if mode is "team"
19
- grep -q '"mode".*:.*"team"' ".moai/config/config.json" 2>/dev/null
100
+ grep -q '"mode".*:.*"team"' ".moai/config.json" 2>/dev/null
20
101
  return $?
21
102
  fi
22
103
  return 1
@@ -32,10 +113,16 @@ NC='\033[0m' # No Color
32
113
  TEAM_MODE=false
33
114
  is_team_mode && TEAM_MODE=true
34
115
 
116
+ # Store all input lines for processing
117
+ input_lines=()
118
+ while read local_ref local_oid remote_ref remote_oid; do
119
+ input_lines+=("$local_ref $local_oid $remote_ref $remote_oid")
120
+ done
121
+
35
122
  # STRICT TAG VALIDATION - Check all refs for tags first
36
- for ref_line in $(cat); do
37
- local_ref=$(echo "$ref_line" | awk '{print $1}')
38
- remote_ref=$(echo "$ref_line" | awk '{print $3}')
123
+ for line in "${input_lines[@]}"; do
124
+ local_ref=$(echo "$line" | awk '{print $1}')
125
+ remote_ref=$(echo "$line" | awk '{print $3}')
39
126
 
40
127
  # Check if this is a tag push (refs/tags/)
41
128
  if [[ "$remote_ref" == refs/tags/* ]]; then
@@ -144,9 +231,17 @@ for ref_line in $(cat); do
144
231
  fi
145
232
  done
146
233
 
147
- # Now read from stdin again for branch validation
148
- # Format: <local ref> <local oid> <remote ref> <remote oid>
149
- while read local_ref local_oid remote_ref remote_oid; do
234
+ # Process branch validation for non-tag refs
235
+ for line in "${input_lines[@]}"; do
236
+ local_ref=$(echo "$line" | awk '{print $1}')
237
+ local_oid=$(echo "$line" | awk '{print $2}')
238
+ remote_ref=$(echo "$line" | awk '{print $3}')
239
+ remote_oid=$(echo "$line" | awk '{print $4}')
240
+
241
+ # Skip tag refs - they were processed above
242
+ if [[ "$remote_ref" == refs/tags/* ]]; then
243
+ continue
244
+ fi
150
245
  # Extract the remote branch name from the reference
151
246
  # remote_ref format: refs/heads/main
152
247
  remote_branch=$(echo "$remote_ref" | sed 's|refs/heads/||')