moai-adk 0.15.1__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 (699) hide show
  1. moai_adk/__init__.py +2 -6
  2. moai_adk/__main__.py +136 -21
  3. moai_adk/cli/__init__.py +6 -2
  4. moai_adk/cli/commands/__init__.py +1 -4
  5. moai_adk/cli/commands/analyze.py +116 -0
  6. moai_adk/cli/commands/doctor.py +17 -5
  7. moai_adk/cli/commands/init.py +105 -47
  8. moai_adk/cli/commands/language.py +248 -0
  9. moai_adk/cli/commands/status.py +8 -13
  10. moai_adk/cli/commands/update.py +1734 -65
  11. moai_adk/cli/main.py +3 -2
  12. moai_adk/cli/prompts/init_prompts.py +144 -91
  13. moai_adk/cli/spec_status.py +263 -0
  14. moai_adk/cli/ui/__init__.py +44 -0
  15. moai_adk/cli/ui/progress.py +422 -0
  16. moai_adk/cli/ui/prompts.py +389 -0
  17. moai_adk/cli/ui/theme.py +129 -0
  18. moai_adk/cli/worktree/__init__.py +27 -0
  19. moai_adk/cli/worktree/__main__.py +31 -0
  20. moai_adk/cli/worktree/cli.py +672 -0
  21. moai_adk/cli/worktree/exceptions.py +89 -0
  22. moai_adk/cli/worktree/manager.py +490 -0
  23. moai_adk/cli/worktree/models.py +65 -0
  24. moai_adk/cli/worktree/registry.py +128 -0
  25. moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
  26. moai_adk/core/__init__.py +0 -1
  27. moai_adk/core/analysis/__init__.py +9 -0
  28. moai_adk/core/analysis/session_analyzer.py +400 -0
  29. moai_adk/core/claude_integration.py +393 -0
  30. moai_adk/core/command_helpers.py +270 -0
  31. moai_adk/core/comprehensive_monitoring_system.py +1183 -0
  32. moai_adk/core/config/__init__.py +6 -0
  33. moai_adk/core/config/auto_spec_config.py +340 -0
  34. moai_adk/core/config/migration.py +147 -16
  35. moai_adk/core/config/unified.py +436 -0
  36. moai_adk/core/context_manager.py +273 -0
  37. moai_adk/core/diagnostics/slash_commands.py +0 -1
  38. moai_adk/core/enterprise_features.py +1404 -0
  39. moai_adk/core/error_recovery_system.py +1902 -0
  40. moai_adk/core/event_driven_hook_system.py +1371 -0
  41. moai_adk/core/git/__init__.py +8 -1
  42. moai_adk/core/git/branch.py +0 -1
  43. moai_adk/core/git/branch_manager.py +2 -10
  44. moai_adk/core/git/checkpoint.py +1 -7
  45. moai_adk/core/git/commit.py +0 -1
  46. moai_adk/core/git/conflict_detector.py +413 -0
  47. moai_adk/core/git/event_detector.py +3 -5
  48. moai_adk/core/git/manager.py +91 -2
  49. moai_adk/core/hooks/post_tool_auto_spec_completion.py +901 -0
  50. moai_adk/core/input_validation_middleware.py +1006 -0
  51. moai_adk/core/integration/__init__.py +22 -0
  52. moai_adk/core/integration/engine.py +157 -0
  53. moai_adk/core/integration/integration_tester.py +226 -0
  54. moai_adk/core/integration/models.py +88 -0
  55. moai_adk/core/integration/utils.py +211 -0
  56. moai_adk/core/issue_creator.py +20 -28
  57. moai_adk/core/jit_context_loader.py +956 -0
  58. moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
  59. moai_adk/core/language_config.py +202 -0
  60. moai_adk/core/language_config_resolver.py +485 -0
  61. moai_adk/core/language_validator.py +543 -0
  62. moai_adk/core/mcp/setup.py +116 -0
  63. moai_adk/core/merge/__init__.py +9 -0
  64. moai_adk/core/merge/analyzer.py +481 -0
  65. moai_adk/core/migration/__init__.py +18 -0
  66. moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
  67. moai_adk/core/migration/backup_manager.py +277 -0
  68. moai_adk/core/migration/custom_element_scanner.py +358 -0
  69. moai_adk/core/migration/file_migrator.py +209 -0
  70. moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
  71. moai_adk/core/migration/selective_restorer.py +470 -0
  72. moai_adk/core/migration/template_utils.py +74 -0
  73. moai_adk/core/migration/user_selection_ui.py +338 -0
  74. moai_adk/core/migration/version_detector.py +139 -0
  75. moai_adk/core/migration/version_migrator.py +228 -0
  76. moai_adk/core/performance/__init__.py +6 -0
  77. moai_adk/core/performance/cache_system.py +316 -0
  78. moai_adk/core/performance/parallel_processor.py +116 -0
  79. moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
  80. moai_adk/core/project/__init__.py +0 -1
  81. moai_adk/core/project/backup_utils.py +2 -7
  82. moai_adk/core/project/checker.py +2 -4
  83. moai_adk/core/project/detector.py +17 -39
  84. moai_adk/core/project/initializer.py +170 -33
  85. moai_adk/core/project/phase_executor.py +398 -68
  86. moai_adk/core/project/validator.py +7 -32
  87. moai_adk/core/quality/__init__.py +1 -1
  88. moai_adk/core/quality/trust_checker.py +37 -101
  89. moai_adk/core/quality/validators/__init__.py +1 -1
  90. moai_adk/core/quality/validators/base_validator.py +1 -1
  91. moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
  92. moai_adk/core/robust_json_parser.py +611 -0
  93. moai_adk/core/rollback_manager.py +918 -0
  94. moai_adk/core/session_manager.py +651 -0
  95. moai_adk/core/skill_loading_system.py +579 -0
  96. moai_adk/core/spec/confidence_scoring.py +680 -0
  97. moai_adk/core/spec/ears_template_engine.py +1247 -0
  98. moai_adk/core/spec/quality_validator.py +687 -0
  99. moai_adk/core/spec_status_manager.py +478 -0
  100. moai_adk/core/template/__init__.py +0 -1
  101. moai_adk/core/template/backup.py +82 -17
  102. moai_adk/core/template/config.py +112 -40
  103. moai_adk/core/template/languages.py +0 -1
  104. moai_adk/core/template/merger.py +75 -26
  105. moai_adk/core/template/processor.py +750 -72
  106. moai_adk/core/template_engine.py +90 -48
  107. moai_adk/core/template_variable_synchronizer.py +417 -0
  108. moai_adk/core/unified_permission_manager.py +745 -0
  109. moai_adk/core/user_behavior_analytics.py +851 -0
  110. moai_adk/core/version_sync.py +429 -0
  111. moai_adk/foundation/__init__.py +56 -0
  112. moai_adk/foundation/backend.py +1027 -0
  113. moai_adk/foundation/database.py +1115 -0
  114. moai_adk/foundation/devops.py +1585 -0
  115. moai_adk/foundation/ears.py +431 -0
  116. moai_adk/foundation/frontend.py +870 -0
  117. moai_adk/foundation/git/commit_templates.py +557 -0
  118. moai_adk/foundation/git.py +376 -0
  119. moai_adk/foundation/langs.py +484 -0
  120. moai_adk/foundation/ml_ops.py +1162 -0
  121. moai_adk/foundation/testing.py +1524 -0
  122. moai_adk/foundation/trust/trust_principles.py +676 -0
  123. moai_adk/foundation/trust/validation_checklist.py +1573 -0
  124. moai_adk/project/__init__.py +0 -0
  125. moai_adk/project/configuration.py +1084 -0
  126. moai_adk/project/documentation.py +566 -0
  127. moai_adk/project/schema.py +447 -0
  128. moai_adk/statusline/__init__.py +38 -0
  129. moai_adk/statusline/alfred_detector.py +105 -0
  130. moai_adk/statusline/config.py +373 -0
  131. moai_adk/statusline/enhanced_output_style_detector.py +372 -0
  132. moai_adk/statusline/git_collector.py +190 -0
  133. moai_adk/statusline/main.py +264 -0
  134. moai_adk/statusline/metrics_tracker.py +78 -0
  135. moai_adk/statusline/renderer.py +383 -0
  136. moai_adk/statusline/update_checker.py +129 -0
  137. moai_adk/statusline/version_reader.py +741 -0
  138. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +549 -0
  139. moai_adk/templates/.claude/agents/moai/builder-agent.md +445 -0
  140. moai_adk/templates/.claude/agents/moai/builder-command.md +1132 -0
  141. moai_adk/templates/.claude/agents/moai/builder-skill.md +601 -0
  142. moai_adk/templates/.claude/agents/moai/expert-backend.md +831 -0
  143. moai_adk/templates/.claude/agents/moai/expert-database.md +774 -0
  144. moai_adk/templates/.claude/agents/moai/expert-debug.md +396 -0
  145. moai_adk/templates/.claude/agents/moai/expert-devops.md +711 -0
  146. moai_adk/templates/.claude/agents/moai/expert-frontend.md +666 -0
  147. moai_adk/templates/.claude/agents/moai/expert-security.md +474 -0
  148. moai_adk/templates/.claude/agents/moai/expert-uiux.md +1038 -0
  149. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +429 -0
  150. moai_adk/templates/.claude/agents/moai/manager-docs.md +570 -0
  151. moai_adk/templates/.claude/agents/moai/manager-git.md +937 -0
  152. moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
  153. moai_adk/templates/.claude/agents/moai/manager-quality.md +598 -0
  154. moai_adk/templates/.claude/agents/moai/manager-spec.md +713 -0
  155. moai_adk/templates/.claude/agents/moai/manager-strategy.md +600 -0
  156. moai_adk/templates/.claude/agents/moai/manager-tdd.md +603 -0
  157. moai_adk/templates/.claude/agents/moai/mcp-context7.md +369 -0
  158. moai_adk/templates/.claude/agents/moai/mcp-figma.md +1567 -0
  159. moai_adk/templates/.claude/agents/moai/mcp-notion.md +749 -0
  160. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +427 -0
  161. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +994 -0
  162. moai_adk/templates/.claude/commands/moai/0-project.md +1143 -0
  163. moai_adk/templates/.claude/commands/moai/1-plan.md +1435 -0
  164. moai_adk/templates/.claude/commands/moai/2-run.md +883 -0
  165. moai_adk/templates/.claude/commands/moai/3-sync.md +993 -0
  166. moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
  167. moai_adk/templates/.claude/hooks/__init__.py +8 -0
  168. moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
  169. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
  170. moai_adk/templates/.claude/hooks/{alfred/shared/core → moai/lib}/checkpoint.py +9 -36
  171. moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
  172. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
  173. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
  174. moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
  175. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
  176. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
  177. moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
  178. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
  179. moai_adk/templates/.claude/hooks/{alfred/shared/core → moai/lib}/project.py +63 -44
  180. moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
  181. moai_adk/templates/.claude/hooks/{alfred/core → moai/lib}/timeout.py +40 -16
  182. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
  183. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
  184. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +921 -0
  185. moai_adk/templates/.claude/output-styles/moai/r2d2.md +380 -0
  186. moai_adk/templates/.claude/output-styles/moai/yoda.md +338 -0
  187. moai_adk/templates/.claude/settings.json +78 -50
  188. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +247 -0
  189. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
  190. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
  191. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
  192. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
  193. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
  194. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +312 -283
  195. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +291 -94
  196. moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
  197. moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
  198. moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
  199. moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
  200. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +469 -101
  201. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +453 -0
  202. moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
  203. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
  204. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
  205. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +405 -0
  206. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
  207. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
  208. moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
  209. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +491 -0
  210. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
  211. moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
  212. moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
  213. moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
  214. moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
  215. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
  216. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +201 -0
  217. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
  218. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
  219. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
  220. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
  221. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
  222. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
  223. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
  224. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
  225. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
  226. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
  227. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
  228. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
  229. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
  230. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
  231. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +438 -0
  232. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +515 -0
  233. moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
  234. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +346 -0
  235. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
  236. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
  237. moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
  238. moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
  239. moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
  240. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
  241. moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
  242. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
  243. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +362 -0
  244. moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
  245. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
  246. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
  247. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
  248. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
  249. moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
  250. moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
  251. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
  252. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
  253. moai_adk/templates/.claude/skills/moai-integration-mcp/SKILL.md +352 -0
  254. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +52 -0
  255. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +334 -0
  256. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +310 -0
  257. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +256 -0
  258. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +253 -0
  259. moai_adk/templates/.claude/skills/moai-lang-unified/README.md +133 -0
  260. moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +296 -0
  261. moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +1269 -0
  262. moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +331 -0
  263. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +298 -0
  264. moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
  265. moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
  266. moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
  267. moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
  268. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +316 -0
  269. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
  270. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
  271. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
  272. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
  273. moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
  274. moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
  275. moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
  276. moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
  277. moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
  278. moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
  279. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +370 -0
  280. moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
  281. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
  282. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
  283. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
  284. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
  285. moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
  286. moai_adk/templates/.claude/skills/moai-platform-baas/README.md +186 -0
  287. moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +290 -0
  288. moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +1225 -0
  289. moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +567 -0
  290. moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +323 -0
  291. moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +204 -0
  292. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +446 -0
  293. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
  294. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
  295. moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
  296. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +387 -0
  297. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
  298. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
  299. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
  300. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
  301. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
  302. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +135 -0
  303. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
  304. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
  305. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
  306. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
  307. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
  308. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
  309. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
  310. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
  311. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
  312. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
  313. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
  314. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1362 -0
  315. moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
  316. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
  317. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
  318. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +71 -0
  319. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
  320. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
  321. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
  322. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
  323. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
  324. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
  325. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +374 -0
  326. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
  327. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
  328. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
  329. moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
  330. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +453 -0
  331. moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
  332. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
  333. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
  334. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
  335. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
  336. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
  337. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
  338. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
  339. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
  340. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
  341. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
  342. moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
  343. moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
  344. moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
  345. moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
  346. moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
  347. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +410 -0
  348. moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
  349. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
  350. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
  351. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
  352. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
  353. moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
  354. moai_adk/templates/.git-hooks/pre-commit +128 -0
  355. moai_adk/templates/.git-hooks/pre-push +220 -13
  356. moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
  357. moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
  358. moai_adk/templates/.github/workflows/spec-issue-sync.yml +0 -1
  359. moai_adk/templates/.gitignore +197 -13
  360. moai_adk/templates/.mcp.json +20 -0
  361. moai_adk/templates/.moai/cache/personalization.json +10 -0
  362. moai_adk/templates/.moai/config/config.yaml +344 -0
  363. moai_adk/templates/.moai/config/presets/manual.yaml +28 -0
  364. moai_adk/templates/.moai/config/presets/personal.yaml +30 -0
  365. moai_adk/templates/.moai/config/presets/team.yaml +33 -0
  366. moai_adk/templates/.moai/config/questions/_schema.yaml +79 -0
  367. moai_adk/templates/.moai/config/questions/tab1-user.yaml +108 -0
  368. moai_adk/templates/.moai/config/questions/tab2-project.yaml +122 -0
  369. moai_adk/templates/.moai/config/questions/tab3-git.yaml +542 -0
  370. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +167 -0
  371. moai_adk/templates/.moai/config/questions/tab5-system.yaml +152 -0
  372. moai_adk/templates/.moai/config/sections/git-strategy.yaml +40 -0
  373. moai_adk/templates/.moai/config/sections/language.yaml +11 -0
  374. moai_adk/templates/.moai/config/sections/project.yaml +13 -0
  375. moai_adk/templates/.moai/config/sections/quality.yaml +15 -0
  376. moai_adk/templates/.moai/config/sections/system.yaml +14 -0
  377. moai_adk/templates/.moai/config/sections/user.yaml +5 -0
  378. moai_adk/templates/.moai/config/statusline-config.yaml +86 -0
  379. moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
  380. moai_adk/templates/CLAUDE.md +310 -1050
  381. moai_adk/utils/__init__.py +24 -2
  382. moai_adk/utils/banner.py +7 -11
  383. moai_adk/utils/common.py +294 -0
  384. moai_adk/utils/link_validator.py +241 -0
  385. moai_adk/utils/logger.py +4 -9
  386. moai_adk/utils/safe_file_reader.py +206 -0
  387. moai_adk/{templates/.claude/hooks/alfred/utils → utils}/timeout.py +8 -9
  388. moai_adk/utils/toon_utils.py +256 -0
  389. moai_adk/version.py +22 -0
  390. moai_adk-0.32.8.dist-info/METADATA +2478 -0
  391. moai_adk-0.32.8.dist-info/RECORD +396 -0
  392. {moai_adk-0.15.1.dist-info → moai_adk-0.32.8.dist-info}/WHEEL +1 -1
  393. {moai_adk-0.15.1.dist-info → moai_adk-0.32.8.dist-info}/entry_points.txt +1 -0
  394. moai_adk/cli/commands/backup.py +0 -80
  395. moai_adk/core/tags/__init__.py +0 -86
  396. moai_adk/core/tags/ci_validator.py +0 -463
  397. moai_adk/core/tags/cli.py +0 -283
  398. moai_adk/core/tags/generator.py +0 -109
  399. moai_adk/core/tags/inserter.py +0 -99
  400. moai_adk/core/tags/mapper.py +0 -126
  401. moai_adk/core/tags/parser.py +0 -76
  402. moai_adk/core/tags/pre_commit_validator.py +0 -393
  403. moai_adk/core/tags/reporter.py +0 -956
  404. moai_adk/core/tags/tags.py +0 -149
  405. moai_adk/core/tags/validator.py +0 -897
  406. moai_adk/templates/.claude/agents/alfred/backend-expert.md +0 -319
  407. moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -316
  408. moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -208
  409. moai_adk/templates/.claude/agents/alfred/devops-expert.md +0 -464
  410. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -214
  411. moai_adk/templates/.claude/agents/alfred/frontend-expert.md +0 -357
  412. moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -406
  413. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -423
  414. moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -312
  415. moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -343
  416. moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -865
  417. moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -426
  418. moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -361
  419. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -428
  420. moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -375
  421. moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +0 -571
  422. moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1854
  423. moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -880
  424. moai_adk/templates/.claude/commands/alfred/2-run.md +0 -793
  425. moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -1084
  426. moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -149
  427. moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -748
  428. moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +0 -108
  429. moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +0 -198
  430. moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +0 -29
  431. moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +0 -94
  432. moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +0 -100
  433. moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +0 -94
  434. moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +0 -94
  435. moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +0 -170
  436. moai_adk/templates/.claude/hooks/alfred/shared/core/context.py +0 -67
  437. moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +0 -230
  438. moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +0 -198
  439. moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +0 -21
  440. moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +0 -154
  441. moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +0 -174
  442. moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +0 -87
  443. moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +0 -61
  444. moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +0 -112
  445. moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +0 -1
  446. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +0 -70
  447. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +0 -62
  448. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +0 -242
  449. moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +0 -56
  450. moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +0 -28
  451. moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +0 -444
  452. moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +0 -62
  453. moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +0 -28
  454. moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +0 -405
  455. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +0 -51
  456. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +0 -355
  457. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +0 -239
  458. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
  459. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
  460. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
  461. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +0 -323
  462. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +0 -286
  463. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +0 -126
  464. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
  465. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
  466. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
  467. moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/SKILL.md +0 -74
  468. moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/examples.md +0 -4
  469. moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/reference.md +0 -269
  470. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
  471. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
  472. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
  473. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +0 -19
  474. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +0 -4
  475. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +0 -150
  476. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
  477. moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
  478. moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
  479. moai_adk/templates/.claude/skills/moai-alfred-persona-roles/SKILL.md +0 -198
  480. moai_adk/templates/.claude/skills/moai-alfred-persona-roles/examples.md +0 -431
  481. moai_adk/templates/.claude/skills/moai-alfred-persona-roles/reference.md +0 -141
  482. moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +0 -89
  483. moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +0 -122
  484. moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +0 -369
  485. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +0 -508
  486. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +0 -481
  487. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +0 -100
  488. moai_adk/templates/.claude/skills/moai-alfred-reporting/SKILL.md +0 -273
  489. moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +0 -77
  490. moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +0 -265
  491. moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +0 -539
  492. moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +0 -19
  493. moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +0 -4
  494. moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +0 -84
  495. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +0 -137
  496. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +0 -219
  497. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +0 -161
  498. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +0 -541
  499. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +0 -622
  500. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/SKILL.md +0 -115
  501. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/examples.md +0 -4
  502. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/reference.md +0 -348
  503. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
  504. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
  505. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
  506. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
  507. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
  508. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
  509. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +0 -19
  510. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +0 -4
  511. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +0 -211
  512. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
  513. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
  514. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
  515. moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +0 -288
  516. moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
  517. moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
  518. moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
  519. moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
  520. moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
  521. moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
  522. moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
  523. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
  524. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
  525. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
  526. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
  527. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
  528. moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
  529. moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
  530. moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
  531. moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
  532. moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/SKILL.md +0 -19
  533. moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/examples.md +0 -4
  534. moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/reference.md +0 -218
  535. moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +0 -482
  536. moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +0 -278
  537. moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
  538. moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +0 -477
  539. moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
  540. moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
  541. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
  542. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
  543. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +0 -271
  544. moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
  545. moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +0 -583
  546. moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +0 -526
  547. moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +0 -465
  548. moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +0 -328
  549. moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +0 -312
  550. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
  551. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +0 -285
  552. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +0 -278
  553. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +0 -303
  554. moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
  555. moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
  556. moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +0 -802
  557. moai_adk/templates/.claude/skills/moai-design-systems/examples.md +0 -1238
  558. moai_adk/templates/.claude/skills/moai-design-systems/reference.md +0 -673
  559. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -1633
  560. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -660
  561. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
  562. moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
  563. moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
  564. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
  565. moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
  566. moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
  567. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -29
  568. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -30
  569. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
  570. moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
  571. moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
  572. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -29
  573. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -31
  574. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
  575. moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
  576. moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
  577. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
  578. moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
  579. moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
  580. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
  581. moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
  582. moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
  583. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
  584. moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
  585. moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
  586. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
  587. moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
  588. moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
  589. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
  590. moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
  591. moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
  592. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
  593. moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
  594. moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
  595. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
  596. moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
  597. moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
  598. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -116
  599. moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
  600. moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
  601. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
  602. moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
  603. moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
  604. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
  605. moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
  606. moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
  607. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
  608. moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
  609. moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
  610. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
  611. moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
  612. moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
  613. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
  614. moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
  615. moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
  616. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
  617. moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
  618. moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
  619. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -124
  620. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
  621. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
  622. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -123
  623. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
  624. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
  625. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
  626. moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
  627. moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
  628. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -127
  629. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -29
  630. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -31
  631. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -126
  632. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -29
  633. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -31
  634. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
  635. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
  636. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
  637. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -124
  638. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -29
  639. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -31
  640. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -126
  641. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
  642. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
  643. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -433
  644. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -624
  645. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -316
  646. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -123
  647. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
  648. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
  649. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -124
  650. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
  651. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
  652. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -127
  653. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -29
  654. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -31
  655. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -125
  656. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -29
  657. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -30
  658. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
  659. moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
  660. moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
  661. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
  662. moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
  663. moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
  664. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -123
  665. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -29
  666. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -30
  667. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -133
  668. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -29
  669. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -34
  670. moai_adk/templates/.claude/skills/moai-project-documentation.md +0 -622
  671. moai_adk/templates/.github/workflows/c-tag-validation.yml +0 -11
  672. moai_adk/templates/.github/workflows/cpp-tag-validation.yml +0 -11
  673. moai_adk/templates/.github/workflows/csharp-tag-validation.yml +0 -11
  674. moai_adk/templates/.github/workflows/dart-tag-validation.yml +0 -11
  675. moai_adk/templates/.github/workflows/go-tag-validation.yml +0 -130
  676. moai_adk/templates/.github/workflows/java-tag-validation.yml +0 -11
  677. moai_adk/templates/.github/workflows/javascript-tag-validation.yml +0 -135
  678. moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +0 -11
  679. moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -419
  680. moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
  681. moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
  682. moai_adk/templates/.github/workflows/php-tag-validation.yml +0 -11
  683. moai_adk/templates/.github/workflows/python-tag-validation.yml +0 -118
  684. moai_adk/templates/.github/workflows/release.yml +0 -118
  685. moai_adk/templates/.github/workflows/ruby-tag-validation.yml +0 -11
  686. moai_adk/templates/.github/workflows/rust-tag-validation.yml +0 -11
  687. moai_adk/templates/.github/workflows/shell-tag-validation.yml +0 -11
  688. moai_adk/templates/.github/workflows/swift-tag-validation.yml +0 -11
  689. moai_adk/templates/.github/workflows/tag-report.yml +0 -269
  690. moai_adk/templates/.github/workflows/tag-validation.yml +0 -186
  691. moai_adk/templates/.github/workflows/typescript-tag-validation.yml +0 -154
  692. moai_adk/templates/.moai/config.json +0 -115
  693. moai_adk/templates/workflows/go-tag-validation.yml +0 -30
  694. moai_adk/templates/workflows/javascript-tag-validation.yml +0 -41
  695. moai_adk/templates/workflows/python-tag-validation.yml +0 -42
  696. moai_adk/templates/workflows/typescript-tag-validation.yml +0 -31
  697. moai_adk-0.15.1.dist-info/METADATA +0 -3094
  698. moai_adk-0.15.1.dist-info/RECORD +0 -365
  699. {moai_adk-0.15.1.dist-info → moai_adk-0.32.8.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,981 @@
1
+ # TRUST 5 Framework - Quality Assurance System
2
+
3
+ Purpose: Automated quality gates ensuring code quality, security, maintainability, and traceability through five core principles.
4
+
5
+ Version: 1.0.0 (Updated from TRUST 4)
6
+ Last Updated: 2025-11-25
7
+
8
+ ---
9
+
10
+ ## Quick Reference (30 seconds)
11
+
12
+ TRUST 5 is MoAI-ADK's comprehensive quality assurance framework enforcing five pillars:
13
+
14
+ 1. Test-first(T) - ≥85% coverage, RED-GREEN-REFACTOR cycle
15
+ 2. Readable(R) - Clear naming, ≤10 cyclomatic complexity
16
+ 3. Unified(U) - Consistent patterns, architecture compliance
17
+ 4. Secured(S) - OWASP Top 10 compliance, security validation
18
+ 5. Trackable(T) - Clear commits, requirement traceability
19
+
20
+ Integration Points:
21
+ - Pre-commit hooks → Automated validation
22
+ - CI/CD pipelines → Quality gate enforcement
23
+ - quality-gate agent → TRUST 5 validation
24
+ - /moai:2-run → Enforces ≥85% coverage
25
+
26
+ Quick Validation:
27
+ ```python
28
+ validations = [
29
+ test_coverage >= 85, # T
30
+ complexity <= 10, # R
31
+ consistency > 90, # U
32
+ security_score == 100,# S
33
+ has_clear_commits # T
34
+ ]
35
+ ```
36
+
37
+ ---
38
+
39
+ ## Implementation Guide (5 minutes)
40
+
41
+ ### Principle 1: Test-First (T)
42
+
43
+ RED-GREEN-REFACTOR Cycle:
44
+
45
+ ```
46
+ RED Phase: Write failing test
47
+ Test defines requirement
48
+ Code doesn't exist yet
49
+ Test fails as expected
50
+
51
+ GREEN Phase: Write minimal code
52
+ Simplest code to pass test
53
+ Focus on making test pass
54
+ Test now passes
55
+
56
+ REFACTOR Phase: Improve quality
57
+ Extract functions/classes
58
+ Optimize performance
59
+ Add documentation
60
+ Keep tests passing
61
+ ```
62
+
63
+ Test Coverage Requirements:
64
+
65
+ | Level | Coverage | Action |
66
+ |-------|----------|--------|
67
+ | Critical | ≥85% | Required for merge |
68
+ | Warning | 70-84% | Review required |
69
+ | Failing | <70% | Block merge, generate tests |
70
+
71
+ Implementation Pattern:
72
+
73
+ ```python
74
+ # RED: Write failing test first
75
+ def test_calculate_total_price_with_tax():
76
+ item = ShoppingItem(name="Widget", price=10.00)
77
+ total = calculate_total_with_tax(item, tax_rate=0.10)
78
+ assert total == 11.00 # Fails - function doesn't exist
79
+
80
+ # GREEN: Minimal implementation
81
+ def calculate_total_with_tax(item, tax_rate):
82
+ return item.price * (1 + tax_rate)
83
+
84
+ # REFACTOR: Improve code quality
85
+ def calculate_total_with_tax(item: ShoppingItem, tax_rate: float) -> float:
86
+ """Calculate total price including tax.
87
+
88
+ Args:
89
+ item: Shopping item with price
90
+ tax_rate: Tax rate as decimal (0.10 = 10%)
91
+
92
+ Returns:
93
+ Total price including tax
94
+
95
+ Raises:
96
+ ValueError: If tax_rate not between 0 and 1
97
+
98
+ Example:
99
+ >>> item = ShoppingItem("Widget", 10.00)
100
+ >>> calculate_total_with_tax(item, 0.10)
101
+ 11.0
102
+ """
103
+ if not 0 <= tax_rate <= 1:
104
+ raise ValueError("Tax rate must be between 0 and 1")
105
+
106
+ return item.price * (1 + tax_rate)
107
+ ```
108
+
109
+ Validation Commands:
110
+ ```bash
111
+ # Run tests with coverage
112
+ pytest --cov=src --cov-report=html --cov-fail-under=85
113
+
114
+ # Generate coverage report
115
+ coverage report -m
116
+
117
+ # Show missing lines
118
+ coverage html && open htmlcov/index.html
119
+ ```
120
+
121
+ ---
122
+
123
+ ### Principle 2: Readable (R)
124
+
125
+ Readability Metrics:
126
+
127
+ | Metric | Target | Tool | Max Threshold |
128
+ |--------|--------|------|---------------|
129
+ | Cyclomatic Complexity | ≤10 | pylint | 15 |
130
+ | Function Length | ≤50 lines | custom | 100 |
131
+ | Nesting Depth | ≤3 levels | pylint | 5 |
132
+ | Comment Ratio | 15-20% | custom | Min 10% |
133
+ | Type Hint Coverage | 100% | mypy | 90% |
134
+
135
+ Readability Checklist:
136
+
137
+ ```
138
+ Clear function/variable names (noun_verb pattern)
139
+ Single responsibility principle
140
+ Type hints on all parameters and returns
141
+ Docstrings with examples (Google style)
142
+ No magic numbers (use named constants)
143
+ DRY principle applied (no code duplication)
144
+ SOLID principles followed
145
+ ```
146
+
147
+ Example - Bad vs Good:
148
+
149
+ ```python
150
+ # BAD: Unreadable, no types, magic numbers
151
+ def calc(x, y):
152
+ if x > 0:
153
+ if y > 0:
154
+ if x + y < 100:
155
+ return x * 1.1 + y * 0.9
156
+ return 0
157
+
158
+ # GOOD: Readable, typed, constants
159
+ TAX_RATE = 0.10
160
+ DISCOUNT_RATE = 0.10
161
+ MAX_TOTAL = 100.00
162
+
163
+ def calculate_order_total(
164
+ base_amount: float,
165
+ discount_amount: float
166
+ ) -> float:
167
+ """Calculate order total with tax and discount.
168
+
169
+ Args:
170
+ base_amount: Base order amount before tax
171
+ discount_amount: Discount amount to apply
172
+
173
+ Returns:
174
+ Final order total with tax applied
175
+
176
+ Raises:
177
+ ValueError: If amounts are negative or exceed max
178
+ """
179
+ if base_amount < 0 or discount_amount < 0:
180
+ raise ValueError("Amounts must be non-negative")
181
+
182
+ subtotal = base_amount - discount_amount
183
+
184
+ if subtotal > MAX_TOTAL:
185
+ raise ValueError(f"Total exceeds maximum {MAX_TOTAL}")
186
+
187
+ return subtotal * (1 + TAX_RATE)
188
+ ```
189
+
190
+ Validation Commands:
191
+ ```bash
192
+ # Pylint complexity check
193
+ pylint src/ --fail-under=8.0
194
+
195
+ # Black format check
196
+ black --check src/
197
+
198
+ # MyPy type check
199
+ mypy src/ --strict
200
+ ```
201
+
202
+ ---
203
+
204
+ ### Principle 3: Unified (U)
205
+
206
+ Consistency Requirements:
207
+
208
+ ```
209
+ Architecture Consistency:
210
+ Same pattern across all modules
211
+ Same error handling approach
212
+ Same logging strategy
213
+ Same naming conventions
214
+
215
+ Testing Consistency:
216
+ Same test structure (Arrange-Act-Assert)
217
+ Same fixtures/factories
218
+ Same assertion patterns
219
+ Same mock strategies
220
+
221
+ Documentation Consistency:
222
+ Same docstring format (Google style)
223
+ Same README structure
224
+ Same API documentation
225
+ Same changelog format (conventional commits)
226
+ ```
227
+
228
+ Pattern Enforcement:
229
+
230
+ ```python
231
+ # Standard error handling pattern
232
+ class DomainError(Exception):
233
+ """Base error for domain-specific errors."""
234
+ pass
235
+
236
+ class ValidationError(DomainError):
237
+ """Validation failed."""
238
+ pass
239
+
240
+ def process_data(data: dict) -> Result:
241
+ """Standard processing pattern."""
242
+ try:
243
+ # 1. Validate input
244
+ validated = validate_input(data)
245
+
246
+ # 2. Process
247
+ result = perform_processing(validated)
248
+
249
+ # 3. Return result
250
+ return Result(success=True, data=result)
251
+
252
+ except ValidationError as e:
253
+ logger.error(f"Validation failed: {e}")
254
+ raise
255
+ except Exception as e:
256
+ logger.exception(f"Processing failed: {e}")
257
+ raise DomainError(f"Processing failed: {e}") from e
258
+ ```
259
+
260
+ Validation Tools:
261
+ ```bash
262
+ # Check architecture compliance
263
+ python .moai/scripts/validate_architecture.py
264
+
265
+ # Verify naming conventions
266
+ grep -r "def [A-Z]" src/ && echo "Found camelCase functions!"
267
+
268
+ # Check consistent imports
269
+ isort --check-only src/
270
+ ```
271
+
272
+ ---
273
+
274
+ ### Principle 4: Secured (S)
275
+
276
+ OWASP Top 10 (2024) Compliance:
277
+
278
+ | Risk | Mitigation | Validation |
279
+ |------|------------|------------|
280
+ | Broken Access Control | RBAC, permission checks | security-expert review |
281
+ | Cryptographic Failures | bcrypt, proper encryption | Bandit scan |
282
+ | Injection | Parameterized queries | SQLMap test |
283
+ | Insecure Design | Threat modeling | Architecture review |
284
+ | Security Misconfiguration | Environment variables | Config audit |
285
+ | Vulnerable Components | Dependency scanning | pip-audit, safety |
286
+ | Authentication Failures | MFA, secure sessions | Penetration test |
287
+ | Data Integrity | Checksums, signatures | Integrity validation |
288
+ | Logging Failures | Comprehensive logging | Log analysis |
289
+ | SSRF | URL validation | Security test |
290
+
291
+ Security Patterns:
292
+
293
+ ```python
294
+ # 1. Broken Access Control - RBAC implementation
295
+ from functools import wraps
296
+
297
+ def require_permission(permission: str):
298
+ """Decorator to enforce permission checks."""
299
+ def decorator(func):
300
+ @wraps(func)
301
+ def wrapper(user: User, *args, kwargs):
302
+ if not user.has_permission(permission):
303
+ raise UnauthorizedError(
304
+ f"User lacks permission: {permission}"
305
+ )
306
+ return func(user, *args, kwargs)
307
+ return wrapper
308
+ return decorator
309
+
310
+ @require_permission("user:update")
311
+ def update_user_profile(user: User, profile_data: dict) -> UserProfile:
312
+ """Update user profile (requires permission)."""
313
+ return user.update_profile(profile_data)
314
+
315
+ # 2. Cryptographic Failures - Secure password hashing
316
+ from bcrypt import hashpw, gensalt, checkpw
317
+
318
+ def hash_password(plaintext: str) -> str:
319
+ """Hash password securely with bcrypt."""
320
+ salt = gensalt(rounds=12) # Adaptive cost factor
321
+ return hashpw(plaintext.encode('utf-8'), salt).decode('utf-8')
322
+
323
+ def verify_password(plaintext: str, hashed: str) -> bool:
324
+ """Verify password against hash."""
325
+ return checkpw(
326
+ plaintext.encode('utf-8'),
327
+ hashed.encode('utf-8')
328
+ )
329
+
330
+ # 3. Injection Prevention - Parameterized queries
331
+ from sqlalchemy import text
332
+
333
+ def safe_user_query(username: str) -> List[User]:
334
+ """Query users safely with parameterized query."""
335
+ query = text("SELECT * FROM users WHERE username = :username")
336
+ return db.session.execute(
337
+ query,
338
+ {"username": username} # Parameterized, not concatenated
339
+ ).fetchall()
340
+
341
+ # 4. Security Misconfiguration - Environment-based config
342
+ import os
343
+ from pathlib import Path
344
+
345
+ def load_secure_config() -> dict:
346
+ """Load configuration from environment variables."""
347
+ config = {
348
+ 'DEBUG': os.getenv('DEBUG', 'false').lower() == 'true',
349
+ 'DATABASE_URL': os.getenv('DATABASE_URL'),
350
+ 'SECRET_KEY': os.getenv('SECRET_KEY'),
351
+ 'ALLOWED_HOSTS': os.getenv('ALLOWED_HOSTS', '').split(',')
352
+ }
353
+
354
+ # Validate required configs
355
+ required = ['DATABASE_URL', 'SECRET_KEY']
356
+ for key in required:
357
+ if not config.get(key):
358
+ raise ValueError(f"Required config missing: {key}")
359
+
360
+ # Never expose secrets in logs
361
+ logger.info(f"Config loaded (DEBUG={config['DEBUG']})")
362
+
363
+ return config
364
+ ```
365
+
366
+ Security Validation:
367
+ ```bash
368
+ # Bandit security scan
369
+ bandit -r src/ -ll
370
+
371
+ # Dependency audit
372
+ pip-audit
373
+ safety check
374
+
375
+ # OWASP ZAP scan (for APIs)
376
+ zap-cli quick-scan http://localhost:8000
377
+
378
+ # Secret scanning
379
+ detect-secrets scan
380
+ ```
381
+
382
+ ---
383
+
384
+ ### Principle 5: Trackable (T)
385
+
386
+ Traceability Requirements:
387
+
388
+ ```
389
+ Commit Traceability:
390
+ Conventional commit format
391
+ Link to SPEC or issue
392
+ Clear description of changes
393
+ Test evidence included
394
+
395
+ Requirement Traceability:
396
+ SPEC-XXX-REQ-YY mapping
397
+ Implementation → Test linkage
398
+ Test → Acceptance criteria
399
+ Acceptance → User story
400
+
401
+ Quality Traceability:
402
+ Coverage reports
403
+ Quality metrics dashboard
404
+ CI/CD pipeline results
405
+ Code review history
406
+ ```
407
+
408
+ Conventional Commit Format:
409
+
410
+ ```bash
411
+ # Format: <type>(<scope>): <subject>
412
+ #
413
+ # <body>
414
+ #
415
+ # <footer>
416
+
417
+ # Examples:
418
+ feat(auth): Add OAuth2 integration
419
+
420
+ Implement OAuth2 authentication flow with Google provider.
421
+ Addresses SPEC-001-REQ-02.
422
+
423
+ - Add OAuth2 client configuration
424
+ - Implement callback handling
425
+ - Add token validation
426
+ - Test coverage: 92%
427
+
428
+ Closes #42
429
+
430
+ ---
431
+
432
+ fix(api): Resolve JWT token expiry bug
433
+
434
+ JWT tokens were expiring 1 hour early due to timezone issue.
435
+ Fixes SPEC-001-REQ-03.
436
+
437
+ - Correct timezone handling in token generation
438
+ - Add expiry validation tests
439
+ - Update API documentation
440
+
441
+ Fixes #58
442
+
443
+ ---
444
+
445
+ refactor(database): Optimize query performance
446
+
447
+ Improve query performance by adding database indexes.
448
+ Related to SPEC-005-REQ-01.
449
+
450
+ - Add indexes on frequently queried columns
451
+ - Reduce query time by 70%
452
+ - Add performance benchmarks
453
+
454
+ Performance improvement from 500ms → 150ms average query time.
455
+ ```
456
+
457
+ Traceability Matrix:
458
+
459
+ ```yaml
460
+ # .moai/specs/traceability.yaml
461
+ requirements:
462
+ SPEC-001-REQ-01:
463
+ description: "User registration with email/password"
464
+ implementation:
465
+ - src/auth/registration.py::register_user
466
+ - src/models/user.py::User
467
+ tests:
468
+ - tests/auth/test_registration.py::test_register_user_success
469
+ - tests/auth/test_registration.py::test_register_user_duplicate
470
+ coverage: 95%
471
+ status: Implemented
472
+
473
+ SPEC-001-REQ-02:
474
+ description: "OAuth2 authentication"
475
+ implementation:
476
+ - src/auth/oauth2.py::OAuth2Handler
477
+ - src/auth/providers/google.py::GoogleOAuth2Provider
478
+ tests:
479
+ - tests/auth/test_oauth2.py::test_oauth2_flow
480
+ - tests/auth/test_oauth2.py::test_token_validation
481
+ coverage: 92%
482
+ status: Implemented
483
+
484
+ SPEC-001-REQ-03:
485
+ description: "JWT token generation and validation"
486
+ implementation:
487
+ - src/auth/jwt_manager.py::JWTManager
488
+ tests:
489
+ - tests/auth/test_jwt.py::test_token_generation
490
+ - tests/auth/test_jwt.py::test_token_validation
491
+ - tests/auth/test_jwt.py::test_token_expiry
492
+ coverage: 98%
493
+ status: Implemented
494
+ ```
495
+
496
+ ---
497
+
498
+ ## Advanced Implementation (10+ minutes)
499
+
500
+ ### TRUST 5 CI/CD Integration
501
+
502
+ Complete Quality Gate Pipeline:
503
+
504
+ ```yaml
505
+ # .github/workflows/trust-5-quality-gates.yml
506
+ name: TRUST 5 Quality Gates
507
+
508
+ on:
509
+ pull_request:
510
+ branches: [main, develop]
511
+ push:
512
+ branches: [main, develop]
513
+
514
+ jobs:
515
+ test-first:
516
+ name: "T1: Test Coverage ≥85%"
517
+ runs-on: ubuntu-latest
518
+ steps:
519
+ - uses: actions/checkout@v4
520
+
521
+ - name: Set up Python
522
+ uses: actions/setup-python@v4
523
+ with:
524
+ python-version: '3.13'
525
+
526
+ - name: Install dependencies
527
+ run: |
528
+ pip install -r requirements.txt
529
+ pip install pytest pytest-cov
530
+
531
+ - name: Run tests with coverage
532
+ run: |
533
+ pytest --cov=src --cov-report=xml --cov-fail-under=85
534
+
535
+ - name: Upload coverage to Codecov
536
+ uses: codecov/codecov-action@v3
537
+ with:
538
+ file: ./coverage.xml
539
+ fail_ci_if_error: true
540
+
541
+ readable:
542
+ name: "R: Code Quality ≥8.0"
543
+ runs-on: ubuntu-latest
544
+ steps:
545
+ - uses: actions/checkout@v4
546
+
547
+ - name: Pylint check
548
+ run: |
549
+ pip install pylint
550
+ pylint src/ --fail-under=8.0
551
+
552
+ - name: Black format check
553
+ run: |
554
+ pip install black
555
+ black --check src/
556
+
557
+ - name: MyPy type check
558
+ run: |
559
+ pip install mypy
560
+ mypy src/ --strict
561
+
562
+ unified:
563
+ name: "U: Consistency ≥90%"
564
+ runs-on: ubuntu-latest
565
+ steps:
566
+ - uses: actions/checkout@v4
567
+
568
+ - name: Architecture validation
569
+ run: |
570
+ python .moai/scripts/validate_architecture.py
571
+
572
+ - name: Import consistency
573
+ run: |
574
+ pip install isort
575
+ isort --check-only src/
576
+
577
+ - name: Naming convention check
578
+ run: |
579
+ python .moai/scripts/check_naming_conventions.py
580
+
581
+ secured:
582
+ name: "S: Security Score 100"
583
+ runs-on: ubuntu-latest
584
+ steps:
585
+ - uses: actions/checkout@v4
586
+
587
+ - name: Bandit security scan
588
+ run: |
589
+ pip install bandit
590
+ bandit -r src/ -ll
591
+
592
+ - name: Dependency audit
593
+ run: |
594
+ pip install pip-audit safety
595
+ pip-audit
596
+ safety check
597
+
598
+ - name: Secret scanning
599
+ run: |
600
+ pip install detect-secrets
601
+ detect-secrets scan --baseline .secrets.baseline
602
+
603
+ trackable:
604
+ name: "T2: Traceability Check"
605
+ runs-on: ubuntu-latest
606
+ steps:
607
+ - uses: actions/checkout@v4
608
+
609
+ - name: Validate commit messages
610
+ run: |
611
+ python .moai/scripts/validate_commits.py
612
+
613
+ - name: Check requirement traceability
614
+ run: |
615
+ python .moai/scripts/check_traceability.py
616
+
617
+ - name: Generate traceability report
618
+ run: |
619
+ python .moai/scripts/generate_traceability_report.py
620
+
621
+ quality-gate:
622
+ name: "Final Quality Gate"
623
+ needs: [test-first, readable, unified, secured, trackable]
624
+ runs-on: ubuntu-latest
625
+ steps:
626
+ - name: All gates passed
627
+ run: echo " TRUST 5 quality gates passed!"
628
+ ```
629
+
630
+ ### TRUST 5 Validation Framework
631
+
632
+ Comprehensive Validator Implementation:
633
+
634
+ ```python
635
+ from dataclasses import dataclass
636
+ from typing import List, Dict, Any
637
+ import subprocess
638
+ import re
639
+
640
+ @dataclass
641
+ class ValidationResult:
642
+ """Result of TRUST 5 validation."""
643
+ passed: bool
644
+ test_coverage: float
645
+ code_quality: float
646
+ consistency_score: float
647
+ security_score: int
648
+ traceability_score: float
649
+ issues: List[str]
650
+ warnings: List[str]
651
+
652
+ def overall_score(self) -> float:
653
+ """Calculate overall TRUST 5 score."""
654
+ weights = {
655
+ 'test': 0.20,
656
+ 'quality': 0.20,
657
+ 'consistency': 0.20,
658
+ 'security': 0.20,
659
+ 'traceability': 0.20
660
+ }
661
+ return (
662
+ self.test_coverage * weights['test'] +
663
+ self.code_quality * weights['quality'] +
664
+ self.consistency_score * weights['consistency'] +
665
+ self.security_score * weights['security'] +
666
+ self.traceability_score * weights['traceability']
667
+ )
668
+
669
+ class TRUST5Validator:
670
+ """Comprehensive TRUST 5 validation engine."""
671
+
672
+ def __init__(self, src_dir: str = "src/"):
673
+ self.src_dir = src_dir
674
+ self.result = ValidationResult(
675
+ passed=False,
676
+ test_coverage=0.0,
677
+ code_quality=0.0,
678
+ consistency_score=0.0,
679
+ security_score=0,
680
+ traceability_score=0.0,
681
+ issues=[],
682
+ warnings=[]
683
+ )
684
+
685
+ def validate_all(self) -> ValidationResult:
686
+ """Run all TRUST 5 validations."""
687
+ # T1: Test-first
688
+ self._validate_test_coverage()
689
+
690
+ # R: Readable
691
+ self._validate_readability()
692
+
693
+ # U: Unified
694
+ self._validate_consistency()
695
+
696
+ # S: Secured
697
+ self._validate_security()
698
+
699
+ # T2: Trackable
700
+ self._validate_traceability()
701
+
702
+ # Final gate
703
+ self.result.passed = all([
704
+ self.result.test_coverage >= 85,
705
+ self.result.code_quality >= 8.0,
706
+ self.result.consistency_score >= 90,
707
+ self.result.security_score == 100,
708
+ self.result.traceability_score >= 80
709
+ ])
710
+
711
+ return self.result
712
+
713
+ def _validate_test_coverage(self):
714
+ """Validate test coverage ≥85%."""
715
+ try:
716
+ result = subprocess.run(
717
+ ["pytest", "--cov", self.src_dir, "--cov-report=json"],
718
+ capture_output=True,
719
+ text=True,
720
+ check=False
721
+ )
722
+
723
+ import json
724
+ with open("coverage.json") as f:
725
+ coverage_data = json.load(f)
726
+
727
+ self.result.test_coverage = coverage_data['totals']['percent_covered']
728
+
729
+ if self.result.test_coverage < 85:
730
+ self.result.issues.append(
731
+ f"Test coverage {self.result.test_coverage:.1f}% < 85% required"
732
+ )
733
+
734
+ except Exception as e:
735
+ self.result.issues.append(f"Coverage validation failed: {e}")
736
+
737
+ def _validate_readability(self):
738
+ """Validate code quality with pylint."""
739
+ try:
740
+ result = subprocess.run(
741
+ ["pylint", self.src_dir, "--output-format=json"],
742
+ capture_output=True,
743
+ text=True,
744
+ check=False
745
+ )
746
+
747
+ import json
748
+ pylint_output = json.loads(result.stdout)
749
+
750
+ # Calculate score from pylint output
751
+ score_match = re.search(r"rated at ([\d.]+)/10", result.stdout)
752
+ if score_match:
753
+ self.result.code_quality = float(score_match.group(1))
754
+
755
+ if self.result.code_quality < 8.0:
756
+ self.result.issues.append(
757
+ f"Code quality {self.result.code_quality:.1f} < 8.0 required"
758
+ )
759
+
760
+ except Exception as e:
761
+ self.result.issues.append(f"Readability validation failed: {e}")
762
+
763
+ def _validate_consistency(self):
764
+ """Validate architectural consistency."""
765
+ try:
766
+ # Check import consistency
767
+ isort_result = subprocess.run(
768
+ ["isort", "--check-only", self.src_dir],
769
+ capture_output=True,
770
+ check=False
771
+ )
772
+
773
+ # Check formatting consistency
774
+ black_result = subprocess.run(
775
+ ["black", "--check", self.src_dir],
776
+ capture_output=True,
777
+ check=False
778
+ )
779
+
780
+ # Score based on checks passed
781
+ checks_passed = 0
782
+ if isort_result.returncode == 0:
783
+ checks_passed += 50
784
+ if black_result.returncode == 0:
785
+ checks_passed += 50
786
+
787
+ self.result.consistency_score = checks_passed
788
+
789
+ if self.result.consistency_score < 90:
790
+ self.result.issues.append(
791
+ f"Consistency {self.result.consistency_score}% < 90% required"
792
+ )
793
+
794
+ except Exception as e:
795
+ self.result.issues.append(f"Consistency validation failed: {e}")
796
+
797
+ def _validate_security(self):
798
+ """Validate security with Bandit."""
799
+ try:
800
+ result = subprocess.run(
801
+ ["bandit", "-r", self.src_dir, "-f", "json"],
802
+ capture_output=True,
803
+ text=True,
804
+ check=False
805
+ )
806
+
807
+ import json
808
+ bandit_output = json.loads(result.stdout)
809
+
810
+ # Count high/medium severity issues
811
+ issues = bandit_output.get('results', [])
812
+ critical_issues = [
813
+ i for i in issues
814
+ if i['issue_severity'] in ['HIGH', 'MEDIUM']
815
+ ]
816
+
817
+ if critical_issues:
818
+ self.result.security_score = 0
819
+ for issue in critical_issues:
820
+ self.result.issues.append(
821
+ f"Security: {issue['issue_text']} "
822
+ f"({issue['issue_severity']})"
823
+ )
824
+ else:
825
+ self.result.security_score = 100
826
+
827
+ except Exception as e:
828
+ self.result.issues.append(f"Security validation failed: {e}")
829
+
830
+ def _validate_traceability(self):
831
+ """Validate requirement traceability."""
832
+ try:
833
+ # Check commit message format
834
+ result = subprocess.run(
835
+ ["git", "log", "-1", "--pretty=%s"],
836
+ capture_output=True,
837
+ text=True,
838
+ check=True
839
+ )
840
+
841
+ commit_msg = result.stdout.strip()
842
+
843
+ # Conventional commit pattern
844
+ pattern = r'^(feat|fix|docs|style|refactor|test|chore)(\(.+\))?: .{1,50}'
845
+
846
+ if re.match(pattern, commit_msg):
847
+ self.result.traceability_score = 100
848
+ else:
849
+ self.result.traceability_score = 50
850
+ self.result.warnings.append(
851
+ f"Commit message doesn't follow conventional format: {commit_msg}"
852
+ )
853
+
854
+ except Exception as e:
855
+ self.result.warnings.append(f"Traceability validation failed: {e}")
856
+ self.result.traceability_score = 0
857
+
858
+ # Usage
859
+ validator = TRUST5Validator(src_dir="src/")
860
+ result = validator.validate_all()
861
+
862
+ if result.passed:
863
+ print(f" TRUST 5 validation passed! (Score: {result.overall_score():.1f})")
864
+ else:
865
+ print(f" TRUST 5 validation failed!")
866
+ for issue in result.issues:
867
+ print(f" - {issue}")
868
+ ```
869
+
870
+ ### TRUST 5 Metrics Dashboard
871
+
872
+ ```python
873
+ class TRUST5Metrics:
874
+ """Real-time TRUST 5 quality metrics."""
875
+
876
+ def __init__(self):
877
+ self.test_coverage = 0.0 # Target: ≥85%
878
+ self.code_quality = 0.0 # Target: ≥8.0
879
+ self.consistency_score = 0.0 # Target: ≥90%
880
+ self.security_score = 0 # Target: 100
881
+ self.traceability_score = 0.0 # Target: ≥80%
882
+
883
+ def update_metrics(self, validation_result: ValidationResult):
884
+ """Update metrics from validation result."""
885
+ self.test_coverage = validation_result.test_coverage
886
+ self.code_quality = validation_result.code_quality
887
+ self.consistency_score = validation_result.consistency_score
888
+ self.security_score = validation_result.security_score
889
+ self.traceability_score = validation_result.traceability_score
890
+
891
+ def get_dashboard_data(self) -> dict:
892
+ """Get metrics for dashboard display."""
893
+ return {
894
+ 'overall_score': self.get_overall_score(),
895
+ 'production_ready': self.is_production_ready(),
896
+ 'metrics': {
897
+ 'test_coverage': {
898
+ 'value': self.test_coverage,
899
+ 'target': 85,
900
+ 'status': 'pass' if self.test_coverage >= 85 else 'fail'
901
+ },
902
+ 'code_quality': {
903
+ 'value': self.code_quality,
904
+ 'target': 8.0,
905
+ 'status': 'pass' if self.code_quality >= 8.0 else 'fail'
906
+ },
907
+ 'consistency': {
908
+ 'value': self.consistency_score,
909
+ 'target': 90,
910
+ 'status': 'pass' if self.consistency_score >= 90 else 'fail'
911
+ },
912
+ 'security': {
913
+ 'value': self.security_score,
914
+ 'target': 100,
915
+ 'status': 'pass' if self.security_score == 100 else 'fail'
916
+ },
917
+ 'traceability': {
918
+ 'value': self.traceability_score,
919
+ 'target': 80,
920
+ 'status': 'pass' if self.traceability_score >= 80 else 'fail'
921
+ }
922
+ }
923
+ }
924
+
925
+ def get_overall_score(self) -> float:
926
+ """Calculate overall TRUST 5 score (0-100)."""
927
+ weights = {
928
+ 'test': 0.20,
929
+ 'quality': 0.20,
930
+ 'consistency': 0.20,
931
+ 'security': 0.20,
932
+ 'traceability': 0.20
933
+ }
934
+
935
+ return (
936
+ self.test_coverage * weights['test'] +
937
+ (self.code_quality * 10) * weights['quality'] +
938
+ self.consistency_score * weights['consistency'] +
939
+ self.security_score * weights['security'] +
940
+ self.traceability_score * weights['traceability']
941
+ )
942
+
943
+ def is_production_ready(self) -> bool:
944
+ """Check if code meets production standards."""
945
+ return (
946
+ self.test_coverage >= 85 and
947
+ self.code_quality >= 8.0 and
948
+ self.consistency_score >= 90 and
949
+ self.security_score == 100 and
950
+ self.traceability_score >= 80
951
+ )
952
+ ```
953
+
954
+ ---
955
+
956
+ ## Works Well With
957
+
958
+ Agents:
959
+ - quality-gate - Automated TRUST 5 validation
960
+ - tdd-implementer - RED-GREEN-REFACTOR enforcement
961
+ - security-expert - OWASP compliance checking
962
+ - test-engineer - Test generation and coverage
963
+
964
+ Skills:
965
+ - moai-essentials-testing-integration - Test framework setup
966
+ - moai-domain-security - Security patterns
967
+ - moai-core-code-reviewer - Code quality analysis
968
+
969
+ Commands:
970
+ - /moai:2-run - Enforces ≥85% coverage requirement
971
+ - /moai:9-feedback - Quality improvement suggestions
972
+
973
+ Memory:
974
+ - Skill("moai-foundation-core") modules/execution-rules.md - Quality gates
975
+ - @.moai/config/config.json - constitution.test_coverage_target
976
+
977
+ ---
978
+
979
+ Version: 1.0.0
980
+ Last Updated: 2025-11-25
981
+ Status: Production Ready