moai-adk 0.35.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of moai-adk might be problematic. Click here for more details.

Files changed (502) hide show
  1. moai_adk/__init__.py +10 -0
  2. moai_adk/__main__.py +199 -0
  3. moai_adk/cli/__init__.py +6 -0
  4. moai_adk/cli/commands/__init__.py +17 -0
  5. moai_adk/cli/commands/analyze.py +116 -0
  6. moai_adk/cli/commands/doctor.py +272 -0
  7. moai_adk/cli/commands/init.py +372 -0
  8. moai_adk/cli/commands/language.py +248 -0
  9. moai_adk/cli/commands/status.py +104 -0
  10. moai_adk/cli/commands/update.py +2686 -0
  11. moai_adk/cli/main.py +13 -0
  12. moai_adk/cli/prompts/__init__.py +5 -0
  13. moai_adk/cli/prompts/init_prompts.py +219 -0
  14. moai_adk/cli/spec_status.py +263 -0
  15. moai_adk/cli/ui/__init__.py +44 -0
  16. moai_adk/cli/ui/progress.py +422 -0
  17. moai_adk/cli/ui/prompts.py +389 -0
  18. moai_adk/cli/ui/theme.py +129 -0
  19. moai_adk/cli/worktree/__init__.py +27 -0
  20. moai_adk/cli/worktree/__main__.py +31 -0
  21. moai_adk/cli/worktree/cli.py +683 -0
  22. moai_adk/cli/worktree/exceptions.py +89 -0
  23. moai_adk/cli/worktree/manager.py +493 -0
  24. moai_adk/cli/worktree/models.py +65 -0
  25. moai_adk/cli/worktree/registry.py +422 -0
  26. moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
  27. moai_adk/core/__init__.py +1 -0
  28. moai_adk/core/analysis/__init__.py +9 -0
  29. moai_adk/core/analysis/session_analyzer.py +400 -0
  30. moai_adk/core/claude_integration.py +393 -0
  31. moai_adk/core/command_helpers.py +270 -0
  32. moai_adk/core/comprehensive_monitoring_system.py +1183 -0
  33. moai_adk/core/config/__init__.py +19 -0
  34. moai_adk/core/config/auto_spec_config.py +340 -0
  35. moai_adk/core/config/migration.py +244 -0
  36. moai_adk/core/config/unified.py +436 -0
  37. moai_adk/core/context_manager.py +273 -0
  38. moai_adk/core/diagnostics/__init__.py +19 -0
  39. moai_adk/core/diagnostics/slash_commands.py +159 -0
  40. moai_adk/core/enterprise_features.py +1404 -0
  41. moai_adk/core/error_recovery_system.py +1902 -0
  42. moai_adk/core/event_driven_hook_system.py +1371 -0
  43. moai_adk/core/git/__init__.py +31 -0
  44. moai_adk/core/git/branch.py +25 -0
  45. moai_adk/core/git/branch_manager.py +129 -0
  46. moai_adk/core/git/checkpoint.py +134 -0
  47. moai_adk/core/git/commit.py +67 -0
  48. moai_adk/core/git/conflict_detector.py +413 -0
  49. moai_adk/core/git/event_detector.py +79 -0
  50. moai_adk/core/git/manager.py +216 -0
  51. moai_adk/core/hooks/post_tool_auto_spec_completion.py +901 -0
  52. moai_adk/core/input_validation_middleware.py +1006 -0
  53. moai_adk/core/integration/__init__.py +22 -0
  54. moai_adk/core/integration/engine.py +157 -0
  55. moai_adk/core/integration/integration_tester.py +226 -0
  56. moai_adk/core/integration/models.py +88 -0
  57. moai_adk/core/integration/utils.py +211 -0
  58. moai_adk/core/issue_creator.py +305 -0
  59. moai_adk/core/jit_context_loader.py +956 -0
  60. moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
  61. moai_adk/core/language_config.py +202 -0
  62. moai_adk/core/language_config_resolver.py +572 -0
  63. moai_adk/core/language_validator.py +543 -0
  64. moai_adk/core/mcp/setup.py +116 -0
  65. moai_adk/core/merge/__init__.py +9 -0
  66. moai_adk/core/merge/analyzer.py +605 -0
  67. moai_adk/core/migration/__init__.py +18 -0
  68. moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
  69. moai_adk/core/migration/backup_manager.py +277 -0
  70. moai_adk/core/migration/custom_element_scanner.py +358 -0
  71. moai_adk/core/migration/file_migrator.py +209 -0
  72. moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
  73. moai_adk/core/migration/selective_restorer.py +470 -0
  74. moai_adk/core/migration/template_utils.py +74 -0
  75. moai_adk/core/migration/user_selection_ui.py +338 -0
  76. moai_adk/core/migration/version_detector.py +139 -0
  77. moai_adk/core/migration/version_migrator.py +228 -0
  78. moai_adk/core/performance/__init__.py +6 -0
  79. moai_adk/core/performance/cache_system.py +316 -0
  80. moai_adk/core/performance/parallel_processor.py +116 -0
  81. moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
  82. moai_adk/core/project/__init__.py +1 -0
  83. moai_adk/core/project/backup_utils.py +70 -0
  84. moai_adk/core/project/checker.py +300 -0
  85. moai_adk/core/project/detector.py +293 -0
  86. moai_adk/core/project/initializer.py +387 -0
  87. moai_adk/core/project/phase_executor.py +716 -0
  88. moai_adk/core/project/validator.py +139 -0
  89. moai_adk/core/quality/__init__.py +6 -0
  90. moai_adk/core/quality/trust_checker.py +377 -0
  91. moai_adk/core/quality/validators/__init__.py +6 -0
  92. moai_adk/core/quality/validators/base_validator.py +19 -0
  93. moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
  94. moai_adk/core/robust_json_parser.py +611 -0
  95. moai_adk/core/rollback_manager.py +918 -0
  96. moai_adk/core/session_manager.py +651 -0
  97. moai_adk/core/skill_loading_system.py +579 -0
  98. moai_adk/core/spec/confidence_scoring.py +680 -0
  99. moai_adk/core/spec/ears_template_engine.py +1247 -0
  100. moai_adk/core/spec/quality_validator.py +687 -0
  101. moai_adk/core/spec_status_manager.py +478 -0
  102. moai_adk/core/template/__init__.py +7 -0
  103. moai_adk/core/template/backup.py +174 -0
  104. moai_adk/core/template/config.py +191 -0
  105. moai_adk/core/template/languages.py +43 -0
  106. moai_adk/core/template/merger.py +233 -0
  107. moai_adk/core/template/processor.py +1200 -0
  108. moai_adk/core/template_engine.py +310 -0
  109. moai_adk/core/template_variable_synchronizer.py +417 -0
  110. moai_adk/core/unified_permission_manager.py +745 -0
  111. moai_adk/core/user_behavior_analytics.py +851 -0
  112. moai_adk/core/version_sync.py +429 -0
  113. moai_adk/foundation/__init__.py +56 -0
  114. moai_adk/foundation/backend.py +1027 -0
  115. moai_adk/foundation/database.py +1115 -0
  116. moai_adk/foundation/devops.py +1585 -0
  117. moai_adk/foundation/ears.py +431 -0
  118. moai_adk/foundation/frontend.py +870 -0
  119. moai_adk/foundation/git/commit_templates.py +557 -0
  120. moai_adk/foundation/git.py +376 -0
  121. moai_adk/foundation/langs.py +484 -0
  122. moai_adk/foundation/ml_ops.py +1162 -0
  123. moai_adk/foundation/testing.py +1524 -0
  124. moai_adk/foundation/trust/trust_principles.py +676 -0
  125. moai_adk/foundation/trust/validation_checklist.py +1573 -0
  126. moai_adk/project/__init__.py +0 -0
  127. moai_adk/project/configuration.py +1084 -0
  128. moai_adk/project/documentation.py +566 -0
  129. moai_adk/project/schema.py +447 -0
  130. moai_adk/statusline/__init__.py +38 -0
  131. moai_adk/statusline/alfred_detector.py +105 -0
  132. moai_adk/statusline/config.py +376 -0
  133. moai_adk/statusline/enhanced_output_style_detector.py +372 -0
  134. moai_adk/statusline/git_collector.py +190 -0
  135. moai_adk/statusline/main.py +322 -0
  136. moai_adk/statusline/metrics_tracker.py +78 -0
  137. moai_adk/statusline/renderer.py +343 -0
  138. moai_adk/statusline/update_checker.py +129 -0
  139. moai_adk/statusline/version_reader.py +741 -0
  140. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +714 -0
  141. moai_adk/templates/.claude/agents/moai/builder-agent.md +474 -0
  142. moai_adk/templates/.claude/agents/moai/builder-command.md +1172 -0
  143. moai_adk/templates/.claude/agents/moai/builder-plugin.md +637 -0
  144. moai_adk/templates/.claude/agents/moai/builder-skill.md +666 -0
  145. moai_adk/templates/.claude/agents/moai/expert-backend.md +899 -0
  146. moai_adk/templates/.claude/agents/moai/expert-database.md +777 -0
  147. moai_adk/templates/.claude/agents/moai/expert-debug.md +401 -0
  148. moai_adk/templates/.claude/agents/moai/expert-devops.md +720 -0
  149. moai_adk/templates/.claude/agents/moai/expert-frontend.md +734 -0
  150. moai_adk/templates/.claude/agents/moai/expert-performance.md +657 -0
  151. moai_adk/templates/.claude/agents/moai/expert-security.md +513 -0
  152. moai_adk/templates/.claude/agents/moai/expert-testing.md +733 -0
  153. moai_adk/templates/.claude/agents/moai/expert-uiux.md +1041 -0
  154. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +432 -0
  155. moai_adk/templates/.claude/agents/moai/manager-docs.md +573 -0
  156. moai_adk/templates/.claude/agents/moai/manager-git.md +1060 -0
  157. moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
  158. moai_adk/templates/.claude/agents/moai/manager-quality.md +624 -0
  159. moai_adk/templates/.claude/agents/moai/manager-spec.md +809 -0
  160. moai_adk/templates/.claude/agents/moai/manager-strategy.md +780 -0
  161. moai_adk/templates/.claude/agents/moai/manager-tdd.md +784 -0
  162. moai_adk/templates/.claude/agents/moai/mcp-context7.md +458 -0
  163. moai_adk/templates/.claude/agents/moai/mcp-figma.md +1607 -0
  164. moai_adk/templates/.claude/agents/moai/mcp-notion.md +789 -0
  165. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +469 -0
  166. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1032 -0
  167. moai_adk/templates/.claude/commands/moai/0-project.md +1386 -0
  168. moai_adk/templates/.claude/commands/moai/1-plan.md +1427 -0
  169. moai_adk/templates/.claude/commands/moai/2-run.md +943 -0
  170. moai_adk/templates/.claude/commands/moai/3-sync.md +1324 -0
  171. moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
  172. moai_adk/templates/.claude/hooks/__init__.py +8 -0
  173. moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
  174. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
  175. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
  176. moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
  177. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
  178. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
  179. moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
  180. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
  181. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
  182. moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
  183. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
  184. moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
  185. moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
  186. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
  187. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
  188. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
  189. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +1083 -0
  190. moai_adk/templates/.claude/output-styles/moai/r2d2.md +560 -0
  191. moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
  192. moai_adk/templates/.claude/settings.json +172 -0
  193. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +307 -0
  194. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
  195. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
  196. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
  197. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +249 -0
  198. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +406 -0
  199. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
  200. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
  201. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
  202. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
  203. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
  204. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +328 -0
  205. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +320 -0
  206. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
  207. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
  208. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +323 -0
  209. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
  210. moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
  211. moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
  212. moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
  213. moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
  214. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
  215. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +497 -0
  216. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
  217. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
  218. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +455 -0
  219. moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
  220. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
  221. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
  222. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
  223. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
  224. moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
  225. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +492 -0
  226. moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
  227. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
  228. moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
  229. moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
  230. moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
  231. moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
  232. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
  233. moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
  234. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +202 -0
  235. moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
  236. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
  237. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
  238. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
  239. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
  240. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
  241. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
  242. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
  243. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
  244. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
  245. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
  246. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
  247. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
  248. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
  249. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
  250. moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
  251. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +441 -0
  252. moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
  253. moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
  254. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +420 -0
  255. moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
  256. moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
  257. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +359 -0
  258. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
  259. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
  260. moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
  261. moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
  262. moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
  263. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
  264. moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
  265. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
  266. moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
  267. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +315 -0
  268. moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
  269. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
  270. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
  271. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
  272. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
  273. moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
  274. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +364 -0
  275. moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
  276. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
  277. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
  278. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
  279. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
  280. moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
  281. moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
  282. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
  283. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
  284. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +649 -0
  285. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +478 -0
  286. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +612 -0
  287. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +477 -0
  288. moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
  289. moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
  290. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +376 -0
  291. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
  292. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
  293. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +385 -0
  294. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
  295. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
  296. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +382 -0
  297. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
  298. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
  299. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +644 -0
  300. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +481 -0
  301. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
  302. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
  303. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +579 -0
  304. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +687 -0
  305. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +372 -0
  306. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
  307. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
  308. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +497 -0
  309. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
  310. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
  311. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +497 -0
  312. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
  313. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
  314. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +368 -0
  315. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
  316. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
  317. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +300 -0
  318. moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
  319. moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
  320. moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
  321. moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
  322. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +319 -0
  323. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
  324. moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
  325. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
  326. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
  327. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
  328. moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
  329. moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
  330. moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
  331. moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
  332. moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
  333. moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
  334. moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
  335. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +372 -0
  336. moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
  337. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
  338. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
  339. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
  340. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
  341. moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
  342. moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +402 -0
  343. moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +607 -0
  344. moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +300 -0
  345. moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +537 -0
  346. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +291 -0
  347. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +390 -0
  348. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +398 -0
  349. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +379 -0
  350. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +358 -0
  351. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +467 -0
  352. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +377 -0
  353. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +466 -0
  354. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +482 -0
  355. moai_adk/templates/.claude/skills/moai-plugin-builder/SKILL.md +474 -0
  356. moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
  357. moai_adk/templates/.claude/skills/moai-plugin-builder/migration.md +341 -0
  358. moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +463 -0
  359. moai_adk/templates/.claude/skills/moai-plugin-builder/validation.md +373 -0
  360. moai_adk/templates/.claude/skills/moai-security-auth0/SKILL.md +275 -0
  361. moai_adk/templates/.claude/skills/moai-security-auth0/modules/adaptive-mfa.md +233 -0
  362. moai_adk/templates/.claude/skills/moai-security-auth0/modules/akamai-integration.md +215 -0
  363. moai_adk/templates/.claude/skills/moai-security-auth0/modules/application-credentials.md +280 -0
  364. moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-log-events.md +225 -0
  365. moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-overview.md +140 -0
  366. moai_adk/templates/.claude/skills/moai-security-auth0/modules/bot-detection.md +144 -0
  367. moai_adk/templates/.claude/skills/moai-security-auth0/modules/breached-password-detection.md +187 -0
  368. moai_adk/templates/.claude/skills/moai-security-auth0/modules/brute-force-protection.md +189 -0
  369. moai_adk/templates/.claude/skills/moai-security-auth0/modules/certifications.md +282 -0
  370. moai_adk/templates/.claude/skills/moai-security-auth0/modules/compliance-overview.md +263 -0
  371. moai_adk/templates/.claude/skills/moai-security-auth0/modules/continuous-session-protection.md +307 -0
  372. moai_adk/templates/.claude/skills/moai-security-auth0/modules/customize-mfa.md +178 -0
  373. moai_adk/templates/.claude/skills/moai-security-auth0/modules/dpop-implementation.md +283 -0
  374. moai_adk/templates/.claude/skills/moai-security-auth0/modules/fapi-implementation.md +259 -0
  375. moai_adk/templates/.claude/skills/moai-security-auth0/modules/gdpr-compliance.md +313 -0
  376. moai_adk/templates/.claude/skills/moai-security-auth0/modules/guardian-configuration.md +269 -0
  377. moai_adk/templates/.claude/skills/moai-security-auth0/modules/highly-regulated-identity.md +272 -0
  378. moai_adk/templates/.claude/skills/moai-security-auth0/modules/jwt-fundamentals.md +248 -0
  379. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mdl-verification.md +211 -0
  380. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-api-management.md +278 -0
  381. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-factors.md +226 -0
  382. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-overview.md +174 -0
  383. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mtls-sender-constraining.md +316 -0
  384. moai_adk/templates/.claude/skills/moai-security-auth0/modules/ropg-flow-mfa.md +217 -0
  385. moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-center.md +325 -0
  386. moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-guidance.md +277 -0
  387. moai_adk/templates/.claude/skills/moai-security-auth0/modules/state-parameters.md +178 -0
  388. moai_adk/templates/.claude/skills/moai-security-auth0/modules/step-up-authentication.md +251 -0
  389. moai_adk/templates/.claude/skills/moai-security-auth0/modules/suspicious-ip-throttling.md +240 -0
  390. moai_adk/templates/.claude/skills/moai-security-auth0/modules/tenant-access-control.md +180 -0
  391. moai_adk/templates/.claude/skills/moai-security-auth0/modules/webauthn-fido.md +235 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +449 -0
  393. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
  396. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
  397. moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
  398. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +390 -0
  399. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
  404. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +175 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
  407. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
  409. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
  410. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
  416. moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
  417. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
  418. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1434 -0
  419. moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
  420. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
  421. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
  422. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +92 -0
  423. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
  424. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
  425. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
  426. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
  427. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
  428. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
  429. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +534 -0
  430. moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
  431. moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
  432. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +377 -0
  433. moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
  434. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
  435. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
  436. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
  437. moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
  438. moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
  439. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +456 -0
  440. moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
  441. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
  442. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
  443. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
  444. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
  445. moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
  446. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
  447. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
  448. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
  449. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
  450. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
  451. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
  452. moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
  453. moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
  454. moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
  455. moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
  456. moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
  457. moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
  458. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +411 -0
  459. moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
  460. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
  461. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
  462. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
  463. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
  464. moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
  465. moai_adk/templates/.git-hooks/pre-commit +128 -0
  466. moai_adk/templates/.git-hooks/pre-push +365 -0
  467. moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
  468. moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
  469. moai_adk/templates/.github/workflows/spec-issue-sync.yml +337 -0
  470. moai_adk/templates/.gitignore +222 -0
  471. moai_adk/templates/.mcp.json +13 -0
  472. moai_adk/templates/.moai/config/config.yaml +58 -0
  473. moai_adk/templates/.moai/config/questions/_schema.yaml +174 -0
  474. moai_adk/templates/.moai/config/questions/tab0-init.yaml +251 -0
  475. moai_adk/templates/.moai/config/questions/tab1-user.yaml +107 -0
  476. moai_adk/templates/.moai/config/questions/tab2-project.yaml +79 -0
  477. moai_adk/templates/.moai/config/questions/tab3-git.yaml +632 -0
  478. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +182 -0
  479. moai_adk/templates/.moai/config/questions/tab5-system.yaml +96 -0
  480. moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -0
  481. moai_adk/templates/.moai/config/sections/language.yaml +11 -0
  482. moai_adk/templates/.moai/config/sections/project.yaml +13 -0
  483. moai_adk/templates/.moai/config/sections/quality.yaml +17 -0
  484. moai_adk/templates/.moai/config/sections/system.yaml +24 -0
  485. moai_adk/templates/.moai/config/sections/user.yaml +5 -0
  486. moai_adk/templates/.moai/config/statusline-config.yaml +92 -0
  487. moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
  488. moai_adk/templates/CLAUDE.md +642 -0
  489. moai_adk/utils/__init__.py +30 -0
  490. moai_adk/utils/banner.py +38 -0
  491. moai_adk/utils/common.py +294 -0
  492. moai_adk/utils/link_validator.py +241 -0
  493. moai_adk/utils/logger.py +147 -0
  494. moai_adk/utils/safe_file_reader.py +206 -0
  495. moai_adk/utils/timeout.py +160 -0
  496. moai_adk/utils/toon_utils.py +256 -0
  497. moai_adk/version.py +22 -0
  498. moai_adk-0.35.1.dist-info/METADATA +3018 -0
  499. moai_adk-0.35.1.dist-info/RECORD +502 -0
  500. moai_adk-0.35.1.dist-info/WHEEL +4 -0
  501. moai_adk-0.35.1.dist-info/entry_points.txt +3 -0
  502. moai_adk-0.35.1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,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.yaml - constitution.test_coverage_target
976
+
977
+ ---
978
+
979
+ Version: 1.0.0
980
+ Last Updated: 2025-11-25
981
+ Status: Production Ready