moai-adk 0.34.0__py3-none-any.whl → 1.1.0__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.
Files changed (524) hide show
  1. moai_adk/__main__.py +136 -5
  2. moai_adk/astgrep/__init__.py +37 -0
  3. moai_adk/astgrep/analyzer.py +522 -0
  4. moai_adk/astgrep/models.py +124 -0
  5. moai_adk/astgrep/rules.py +179 -0
  6. moai_adk/cli/commands/analyze.py +11 -2
  7. moai_adk/cli/commands/doctor.py +7 -1
  8. moai_adk/cli/commands/init.py +321 -11
  9. moai_adk/cli/commands/language.py +7 -1
  10. moai_adk/cli/commands/rank.py +449 -0
  11. moai_adk/cli/commands/status.py +7 -1
  12. moai_adk/cli/commands/switch.py +325 -0
  13. moai_adk/cli/commands/update.py +296 -23
  14. moai_adk/cli/prompts/init_prompts.py +362 -66
  15. moai_adk/cli/prompts/translations/__init__.py +573 -0
  16. moai_adk/cli/ui/prompts.py +61 -2
  17. moai_adk/cli/worktree/cli.py +106 -1
  18. moai_adk/cli/worktree/manager.py +155 -0
  19. moai_adk/core/config/unified.py +244 -63
  20. moai_adk/core/credentials.py +264 -0
  21. moai_adk/core/error_recovery_system.py +22 -4
  22. moai_adk/core/git/conflict_detector.py +10 -1
  23. moai_adk/core/git/event_detector.py +16 -5
  24. moai_adk/core/integration/engine.py +2 -2
  25. moai_adk/core/integration/integration_tester.py +5 -5
  26. moai_adk/core/language_config_resolver.py +9 -3
  27. moai_adk/core/merge/analyzer.py +509 -324
  28. moai_adk/core/migration/alfred_to_moai_migrator.py +7 -1
  29. moai_adk/core/migration/backup_manager.py +54 -4
  30. moai_adk/core/migration/file_migrator.py +174 -2
  31. moai_adk/core/migration/interactive_checkbox_ui.py +42 -31
  32. moai_adk/core/migration/version_detector.py +123 -19
  33. moai_adk/core/migration/version_migrator.py +44 -9
  34. moai_adk/core/model_allocator.py +241 -0
  35. moai_adk/core/project/backup_utils.py +12 -2
  36. moai_adk/core/project/initializer.py +44 -87
  37. moai_adk/core/project/phase_executor.py +95 -33
  38. moai_adk/core/project/validator.py +16 -1
  39. moai_adk/core/quality/trust_checker.py +30 -10
  40. moai_adk/core/rollback_manager.py +60 -25
  41. moai_adk/core/template/backup.py +88 -6
  42. moai_adk/core/template/config.py +33 -9
  43. moai_adk/core/template/merger.py +34 -8
  44. moai_adk/core/template/processor.py +334 -11
  45. moai_adk/core/template_engine.py +10 -1
  46. moai_adk/core/template_variable_synchronizer.py +16 -2
  47. moai_adk/core/version_sync.py +54 -6
  48. moai_adk/foundation/__init__.py +1 -20
  49. moai_adk/foundation/testing.py +1 -1
  50. moai_adk/loop/__init__.py +54 -0
  51. moai_adk/loop/controller.py +305 -0
  52. moai_adk/loop/feedback.py +230 -0
  53. moai_adk/loop/state.py +209 -0
  54. moai_adk/loop/storage.py +220 -0
  55. moai_adk/lsp/__init__.py +70 -0
  56. moai_adk/lsp/client.py +320 -0
  57. moai_adk/lsp/models.py +261 -0
  58. moai_adk/lsp/protocol.py +404 -0
  59. moai_adk/lsp/server_manager.py +248 -0
  60. moai_adk/project/configuration.py +8 -1
  61. moai_adk/py.typed +0 -0
  62. moai_adk/ralph/__init__.py +37 -0
  63. moai_adk/ralph/engine.py +307 -0
  64. moai_adk/rank/__init__.py +21 -0
  65. moai_adk/rank/auth.py +425 -0
  66. moai_adk/rank/client.py +557 -0
  67. moai_adk/rank/config.py +147 -0
  68. moai_adk/rank/hook.py +1503 -0
  69. moai_adk/rank/py.typed +0 -0
  70. moai_adk/statusline/__init__.py +3 -0
  71. moai_adk/statusline/enhanced_output_style_detector.py +5 -5
  72. moai_adk/statusline/main.py +20 -1
  73. moai_adk/statusline/memory_collector.py +268 -0
  74. moai_adk/statusline/renderer.py +54 -38
  75. moai_adk/tag_system/__init__.py +48 -0
  76. moai_adk/tag_system/atomic_ops.py +117 -0
  77. moai_adk/tag_system/linkage.py +335 -0
  78. moai_adk/tag_system/parser.py +176 -0
  79. moai_adk/tag_system/validator.py +200 -0
  80. moai_adk/templates/.claude/agents/moai/builder-agent.md +19 -3
  81. moai_adk/templates/.claude/agents/moai/builder-command.md +62 -16
  82. moai_adk/templates/.claude/agents/moai/builder-plugin.md +763 -0
  83. moai_adk/templates/.claude/agents/moai/builder-skill.md +21 -5
  84. moai_adk/templates/.claude/agents/moai/expert-backend.md +103 -39
  85. moai_adk/templates/.claude/agents/moai/expert-debug.md +9 -3
  86. moai_adk/templates/.claude/agents/moai/expert-devops.md +16 -14
  87. moai_adk/templates/.claude/agents/moai/expert-frontend.md +45 -31
  88. moai_adk/templates/.claude/agents/moai/expert-performance.md +13 -9
  89. moai_adk/templates/.claude/agents/moai/expert-refactoring.md +228 -0
  90. moai_adk/templates/.claude/agents/moai/expert-security.md +19 -3
  91. moai_adk/templates/.claude/agents/moai/expert-testing.md +13 -9
  92. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +8 -2
  93. moai_adk/templates/.claude/agents/moai/manager-docs.md +10 -5
  94. moai_adk/templates/.claude/agents/moai/manager-git.md +99 -27
  95. moai_adk/templates/.claude/agents/moai/manager-project.md +87 -7
  96. moai_adk/templates/.claude/agents/moai/manager-quality.md +22 -5
  97. moai_adk/templates/.claude/agents/moai/manager-spec.md +8 -2
  98. moai_adk/templates/.claude/agents/moai/manager-strategy.md +45 -14
  99. moai_adk/templates/.claude/agents/moai/manager-tdd.md +16 -3
  100. moai_adk/templates/.claude/commands/moai/0-project.md +239 -1185
  101. moai_adk/templates/.claude/commands/moai/1-plan.md +383 -363
  102. moai_adk/templates/.claude/commands/moai/2-run.md +254 -347
  103. moai_adk/templates/.claude/commands/moai/3-sync.md +174 -100
  104. moai_adk/templates/.claude/commands/moai/9-feedback.md +49 -33
  105. moai_adk/templates/.claude/commands/moai/alfred.md +339 -0
  106. moai_adk/templates/.claude/commands/moai/cancel-loop.md +163 -0
  107. moai_adk/templates/.claude/commands/moai/fix.md +264 -0
  108. moai_adk/templates/.claude/commands/moai/loop.md +363 -0
  109. moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
  110. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +37 -81
  111. moai_adk/templates/.claude/hooks/moai/lib/alfred_detector.py +105 -0
  112. moai_adk/templates/.claude/hooks/moai/lib/atomic_write.py +122 -0
  113. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +4 -1
  114. moai_adk/templates/.claude/hooks/moai/lib/common.py +35 -5
  115. moai_adk/templates/.claude/hooks/moai/lib/config.py +376 -0
  116. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +24 -28
  117. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +14 -14
  118. moai_adk/templates/.claude/hooks/moai/lib/enhanced_output_style_detector.py +372 -0
  119. moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
  120. moai_adk/templates/.claude/hooks/moai/lib/file_utils.py +95 -0
  121. moai_adk/templates/.claude/hooks/moai/lib/git_collector.py +190 -0
  122. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +15 -13
  123. moai_adk/templates/.claude/hooks/moai/lib/language_detector.py +298 -0
  124. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +125 -25
  125. moai_adk/templates/.claude/hooks/moai/lib/main.py +341 -0
  126. moai_adk/templates/.claude/hooks/moai/lib/memory_collector.py +268 -0
  127. moai_adk/templates/.claude/hooks/moai/lib/metrics_tracker.py +78 -0
  128. moai_adk/templates/.claude/hooks/moai/lib/models.py +9 -7
  129. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +204 -13
  130. moai_adk/templates/.claude/hooks/moai/lib/project.py +23 -14
  131. moai_adk/templates/.claude/hooks/moai/lib/renderer.py +359 -0
  132. moai_adk/templates/.claude/hooks/moai/lib/tag_linkage.py +333 -0
  133. moai_adk/templates/.claude/hooks/moai/lib/tag_parser.py +176 -0
  134. moai_adk/templates/.claude/hooks/moai/lib/tag_validator.py +200 -0
  135. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +5 -5
  136. moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +896 -0
  137. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +30 -18
  138. moai_adk/templates/.claude/hooks/moai/lib/update_checker.py +129 -0
  139. moai_adk/templates/.claude/hooks/moai/lib/version_reader.py +741 -0
  140. moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +276 -0
  141. moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +255 -0
  142. moai_adk/templates/.claude/hooks/moai/post_tool__coverage_guard.py +325 -0
  143. moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +315 -0
  144. moai_adk/templates/.claude/hooks/moai/post_tool__lsp_diagnostic.py +508 -0
  145. moai_adk/templates/.claude/hooks/moai/pre_commit__tag_validator.py +287 -0
  146. moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +268 -0
  147. moai_adk/templates/.claude/hooks/moai/pre_tool__tdd_enforcer.py +208 -0
  148. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +93 -61
  149. moai_adk/templates/.claude/hooks/moai/session_end__rank_submit.py +69 -0
  150. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +165 -70
  151. moai_adk/templates/.claude/hooks/moai/shared/utils/announcement_translator.py +206 -0
  152. moai_adk/templates/.claude/hooks/moai/stop__loop_controller.py +621 -0
  153. moai_adk/templates/.claude/output-styles/moai/alfred.md +758 -0
  154. moai_adk/templates/.claude/output-styles/moai/r2d2.md +86 -3
  155. moai_adk/templates/.claude/output-styles/moai/yoda.md +2 -2
  156. moai_adk/templates/.claude/settings.json +154 -77
  157. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +252 -198
  158. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +169 -323
  159. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +39 -27
  160. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +115 -125
  161. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +150 -150
  162. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +182 -175
  163. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +198 -138
  164. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +226 -320
  165. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +43 -222
  166. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +75 -219
  167. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +103 -463
  168. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/component-architecture.md +723 -0
  169. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/nextjs16-patterns.md +713 -0
  170. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/performance-optimization.md +694 -0
  171. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/react19-patterns.md +591 -0
  172. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/state-management.md +680 -0
  173. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/vue35-patterns.md +802 -0
  174. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +118 -339
  175. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +74 -377
  176. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +299 -70
  177. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +205 -182
  178. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/advanced-agent-patterns.md +370 -0
  179. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-cli-reference-official.md +420 -0
  180. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +32 -22
  181. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-devcontainers-official.md +381 -0
  182. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-discover-plugins-official.md +379 -0
  183. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-headless-official.md +378 -0
  184. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +110 -0
  185. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugin-marketplaces-official.md +308 -0
  186. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugins-official.md +640 -0
  187. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sandboxing-official.md +282 -0
  188. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +425 -71
  189. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-statusline-official.md +293 -0
  190. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +325 -143
  191. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +96 -316
  192. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +116 -294
  193. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-advanced.md +279 -0
  194. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-implementation.md +267 -0
  195. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +121 -650
  196. moai_adk/templates/.claude/skills/moai-foundation-core/modules/patterns.md +22 -0
  197. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-ears-format.md +200 -0
  198. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +37 -730
  199. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-tdd-implementation.md +275 -0
  200. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +77 -819
  201. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-implementation.md +244 -0
  202. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-validation.md +219 -0
  203. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +14 -18
  204. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +86 -270
  205. moai_adk/templates/.claude/skills/moai-framework-electron/SKILL.md +288 -0
  206. moai_adk/templates/.claude/skills/moai-framework-electron/examples.md +2082 -0
  207. moai_adk/templates/.claude/skills/moai-framework-electron/reference.md +1649 -0
  208. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +76 -582
  209. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +1239 -0
  210. moai_adk/templates/.claude/skills/moai-lang-cpp/modules/advanced-patterns.md +401 -0
  211. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +1136 -0
  212. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +82 -436
  213. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +585 -0
  214. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/aspnet-core.md +627 -0
  215. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/blazor-components.md +767 -0
  216. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/cqrs-validation.md +626 -0
  217. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/csharp12-features.md +580 -0
  218. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/efcore-patterns.md +622 -0
  219. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +403 -0
  220. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +65 -542
  221. moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +1171 -0
  222. moai_adk/templates/.claude/skills/moai-lang-elixir/modules/advanced-patterns.md +531 -0
  223. moai_adk/templates/.claude/skills/moai-lang-elixir/reference.md +889 -0
  224. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +32 -405
  225. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +114 -293
  226. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +83 -307
  227. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +179 -0
  228. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +973 -0
  229. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +1543 -0
  230. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +42 -279
  231. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +94 -556
  232. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +1608 -0
  233. moai_adk/templates/.claude/skills/moai-lang-php/modules/advanced-patterns.md +538 -0
  234. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +1323 -0
  235. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +108 -358
  236. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +84 -482
  237. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +1154 -0
  238. moai_adk/templates/.claude/skills/moai-lang-r/modules/advanced-patterns.md +489 -0
  239. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +1087 -0
  240. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +106 -610
  241. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +1106 -0
  242. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/advanced-patterns.md +309 -0
  243. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/testing-patterns.md +306 -0
  244. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +1024 -0
  245. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +51 -265
  246. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +106 -442
  247. moai_adk/templates/.claude/skills/moai-lang-scala/modules/akka-actors.md +479 -0
  248. moai_adk/templates/.claude/skills/moai-lang-scala/modules/cats-effect.md +489 -0
  249. moai_adk/templates/.claude/skills/moai-lang-scala/modules/functional-programming.md +460 -0
  250. moai_adk/templates/.claude/skills/moai-lang-scala/modules/spark-data.md +498 -0
  251. moai_adk/templates/.claude/skills/moai-lang-scala/modules/zio-patterns.md +541 -0
  252. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +88 -457
  253. moai_adk/templates/.claude/skills/moai-lang-swift/modules/combine-reactive.md +256 -0
  254. moai_adk/templates/.claude/skills/moai-lang-swift/modules/concurrency.md +270 -0
  255. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swift6-features.md +265 -0
  256. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swiftui-patterns.md +314 -0
  257. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +75 -283
  258. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +97 -252
  259. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +64 -240
  260. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +331 -12
  261. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +330 -37
  262. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +90 -287
  263. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +200 -206
  264. moai_adk/templates/.claude/skills/moai-platform-auth0/examples.md +2446 -0
  265. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/adaptive-mfa.md +233 -0
  266. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/akamai-integration.md +214 -0
  267. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/application-credentials.md +280 -0
  268. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-log-events.md +224 -0
  269. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-overview.md +140 -0
  270. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/bot-detection.md +144 -0
  271. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/breached-password-detection.md +187 -0
  272. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/brute-force-protection.md +189 -0
  273. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/certifications.md +282 -0
  274. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/compliance-overview.md +263 -0
  275. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/continuous-session-protection.md +307 -0
  276. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/customize-mfa.md +177 -0
  277. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/dpop-implementation.md +283 -0
  278. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/fapi-implementation.md +259 -0
  279. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/gdpr-compliance.md +313 -0
  280. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/guardian-configuration.md +269 -0
  281. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/highly-regulated-identity.md +272 -0
  282. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/jwt-fundamentals.md +248 -0
  283. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mdl-verification.md +210 -0
  284. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-api-management.md +278 -0
  285. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-factors.md +226 -0
  286. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-overview.md +174 -0
  287. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mtls-sender-constraining.md +316 -0
  288. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/ropg-flow-mfa.md +216 -0
  289. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-center.md +325 -0
  290. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-guidance.md +277 -0
  291. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/state-parameters.md +177 -0
  292. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/step-up-authentication.md +251 -0
  293. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/suspicious-ip-throttling.md +240 -0
  294. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/tenant-access-control.md +179 -0
  295. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/webauthn-fido.md +235 -0
  296. moai_adk/templates/.claude/skills/moai-platform-auth0/reference.md +224 -0
  297. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +75 -330
  298. moai_adk/templates/.claude/skills/moai-platform-clerk/examples.md +1426 -0
  299. moai_adk/templates/.claude/skills/moai-platform-clerk/modules/advanced-patterns.md +417 -0
  300. moai_adk/templates/.claude/skills/moai-platform-clerk/reference.md +273 -0
  301. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +100 -340
  302. moai_adk/templates/.claude/skills/moai-platform-convex/examples.md +506 -0
  303. moai_adk/templates/.claude/skills/moai-platform-convex/modules/auth-integration.md +421 -0
  304. moai_adk/templates/.claude/skills/moai-platform-convex/modules/file-storage.md +474 -0
  305. moai_adk/templates/.claude/skills/moai-platform-convex/modules/reactive-queries.md +302 -0
  306. moai_adk/templates/.claude/skills/moai-platform-convex/modules/server-functions.md +452 -0
  307. moai_adk/templates/.claude/skills/moai-platform-convex/reference.md +385 -0
  308. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +113 -326
  309. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/examples.md +514 -0
  310. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/custom-claims.md +374 -0
  311. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/phone-auth.md +372 -0
  312. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/social-auth.md +339 -0
  313. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/reference.md +382 -0
  314. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +71 -302
  315. moai_adk/templates/.claude/skills/moai-platform-firestore/examples.md +445 -0
  316. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/offline-cache.md +392 -0
  317. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/realtime-listeners.md +441 -0
  318. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/security-rules.md +352 -0
  319. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/transactions.md +452 -0
  320. moai_adk/templates/.claude/skills/moai-platform-firestore/reference.md +322 -0
  321. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +101 -412
  322. moai_adk/templates/.claude/skills/moai-platform-neon/examples.md +470 -0
  323. moai_adk/templates/.claude/skills/moai-platform-neon/modules/auto-scaling.md +349 -0
  324. moai_adk/templates/.claude/skills/moai-platform-neon/modules/branching-workflows.md +354 -0
  325. moai_adk/templates/.claude/skills/moai-platform-neon/modules/connection-pooling.md +412 -0
  326. moai_adk/templates/.claude/skills/moai-platform-neon/modules/pitr-backups.md +458 -0
  327. moai_adk/templates/.claude/skills/moai-platform-neon/reference.md +272 -0
  328. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +96 -327
  329. moai_adk/templates/.claude/skills/moai-platform-railway/examples.md +539 -0
  330. moai_adk/templates/.claude/skills/moai-platform-railway/modules/docker-deployment.md +261 -0
  331. moai_adk/templates/.claude/skills/moai-platform-railway/modules/multi-service.md +291 -0
  332. moai_adk/templates/.claude/skills/moai-platform-railway/modules/networking-domains.md +338 -0
  333. moai_adk/templates/.claude/skills/moai-platform-railway/modules/volumes-storage.md +353 -0
  334. moai_adk/templates/.claude/skills/moai-platform-railway/reference.md +374 -0
  335. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +103 -428
  336. moai_adk/templates/.claude/skills/moai-platform-supabase/examples.md +502 -0
  337. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/auth-integration.md +384 -0
  338. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/edge-functions.md +371 -0
  339. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/postgresql-pgvector.md +231 -0
  340. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/realtime-presence.md +354 -0
  341. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/row-level-security.md +286 -0
  342. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/storage-cdn.md +319 -0
  343. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/typescript-patterns.md +453 -0
  344. moai_adk/templates/.claude/skills/moai-platform-supabase/reference.md +284 -0
  345. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +96 -446
  346. moai_adk/templates/.claude/skills/moai-platform-vercel/examples.md +502 -0
  347. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/analytics-speed.md +348 -0
  348. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/deployment-config.md +344 -0
  349. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/edge-functions.md +222 -0
  350. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/isr-caching.md +306 -0
  351. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/kv-storage.md +399 -0
  352. moai_adk/templates/.claude/skills/moai-platform-vercel/reference.md +360 -0
  353. moai_adk/templates/.claude/skills/moai-tool-ast-grep/SKILL.md +193 -0
  354. moai_adk/templates/.claude/skills/moai-tool-ast-grep/examples.md +1099 -0
  355. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/language-specific.md +307 -0
  356. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/pattern-syntax.md +237 -0
  357. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/refactoring-patterns.md +260 -0
  358. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/security-rules.md +239 -0
  359. moai_adk/templates/.claude/skills/moai-tool-ast-grep/reference.md +288 -0
  360. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/go.yml +90 -0
  361. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/python.yml +101 -0
  362. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/typescript.yml +83 -0
  363. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/complexity-check.yml +94 -0
  364. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/deprecated-apis.yml +84 -0
  365. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/secrets-detection.yml +89 -0
  366. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/sql-injection.yml +45 -0
  367. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/xss-prevention.yml +50 -0
  368. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml +54 -0
  369. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +225 -423
  370. moai_adk/templates/.claude/skills/moai-workflow-loop/SKILL.md +197 -0
  371. moai_adk/templates/.claude/skills/moai-workflow-loop/examples.md +1063 -0
  372. moai_adk/templates/.claude/skills/moai-workflow-loop/reference.md +1414 -0
  373. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +211 -314
  374. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +15 -43
  375. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +119 -316
  376. moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
  377. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +96 -203
  378. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +201 -388
  379. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +52 -3
  380. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +263 -806
  381. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/context7-integration.md +286 -0
  382. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/review-workflows.md +500 -0
  383. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/relevance-analysis.md +154 -0
  384. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/safety-analysis.md +148 -0
  385. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/scoring-algorithms.md +196 -0
  386. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/timeliness-analysis.md +168 -0
  387. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/truthfulness-analysis.md +136 -0
  388. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/usability-analysis.md +153 -0
  389. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework.md +257 -0
  390. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +191 -1344
  391. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/analysis-patterns.md +340 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/core-classes.md +299 -0
  393. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/tool-integration.md +380 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/debugging-workflows.md +451 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/error-analysis.md +442 -0
  396. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/optimization-patterns.md +473 -0
  397. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/profiling-techniques.md +481 -0
  398. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/ai-optimization.md +241 -0
  399. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/bottleneck-detection.md +397 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/optimization-plan.md +315 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/profiler-core.md +277 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/real-time-monitoring.md +187 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +287 -1194
  404. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/quality-metrics.md +415 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/ai-workflows.md +620 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/patterns.md +692 -0
  407. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/security-analysis.md +429 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +262 -1192
  409. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/static-analysis.md +438 -0
  410. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd/core-classes.md +397 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/advanced-features.md +494 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/red-green-refactor.md +316 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-generation.md +471 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-patterns.md +371 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +227 -1222
  416. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/trust5-validation.md +428 -0
  417. moai_adk/templates/.claude/skills/moai-workflow-worktree/SKILL.md +228 -0
  418. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/integration-patterns.md +149 -0
  419. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/moai-adk-integration.md +245 -0
  420. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-advanced.md +310 -0
  421. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-development.md +202 -0
  422. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-workflows.md +302 -0
  423. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/registry-architecture.md +271 -0
  424. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/resource-optimization.md +300 -0
  425. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/tools-integration.md +280 -0
  426. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/troubleshooting.md +397 -0
  427. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-commands.md +296 -0
  428. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-management.md +217 -0
  429. moai_adk/templates/.git-hooks/pre-push +162 -59
  430. moai_adk/templates/.github/workflows/ci-universal.yml +934 -133
  431. moai_adk/templates/.gitignore +65 -107
  432. moai_adk/templates/.lsp.json +152 -0
  433. moai_adk/templates/.mcp.json +2 -20
  434. moai_adk/templates/.moai/announcements/en.json +18 -0
  435. moai_adk/templates/.moai/announcements/ja.json +18 -0
  436. moai_adk/templates/.moai/announcements/ko.json +18 -0
  437. moai_adk/templates/.moai/announcements/zh.json +18 -0
  438. moai_adk/templates/.moai/config/config.yaml +8 -2
  439. moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
  440. moai_adk/templates/.moai/config/sections/language.yaml +2 -2
  441. moai_adk/templates/.moai/config/sections/llm.yaml +41 -0
  442. moai_adk/templates/.moai/config/sections/pricing.yaml +30 -0
  443. moai_adk/templates/.moai/config/sections/project.yaml +2 -2
  444. moai_adk/templates/.moai/config/sections/quality.yaml +43 -5
  445. moai_adk/templates/.moai/config/sections/ralph.yaml +55 -0
  446. moai_adk/templates/.moai/config/sections/system.yaml +46 -1
  447. moai_adk/templates/.moai/config/sections/user.yaml +1 -1
  448. moai_adk/templates/.moai/config/statusline-config.yaml +2 -2
  449. moai_adk/templates/.moai/llm-configs/glm.json +22 -0
  450. moai_adk/templates/CLAUDE.ja.md +343 -0
  451. moai_adk/templates/CLAUDE.ko.md +343 -0
  452. moai_adk/templates/CLAUDE.md +200 -499
  453. moai_adk/templates/CLAUDE.zh.md +343 -0
  454. moai_adk/utils/common.py +37 -0
  455. moai_adk/version.py +1 -1
  456. moai_adk-1.1.0.dist-info/METADATA +2443 -0
  457. moai_adk-1.1.0.dist-info/RECORD +701 -0
  458. {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/entry_points.txt +2 -0
  459. moai_adk-1.1.0.dist-info/licenses/LICENSE +99 -0
  460. moai_adk/core/config/auto_spec_config.py +0 -340
  461. moai_adk/core/hooks/post_tool_auto_spec_completion.py +0 -901
  462. moai_adk/core/spec/confidence_scoring.py +0 -680
  463. moai_adk/core/spec/ears_template_engine.py +0 -1247
  464. moai_adk/core/spec/quality_validator.py +0 -687
  465. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +0 -670
  466. moai_adk/templates/.claude/agents/moai/expert-database.md +0 -777
  467. moai_adk/templates/.claude/agents/moai/expert-uiux.md +0 -1041
  468. moai_adk/templates/.claude/agents/moai/mcp-context7.md +0 -458
  469. moai_adk/templates/.claude/agents/moai/mcp-figma.md +0 -1607
  470. moai_adk/templates/.claude/agents/moai/mcp-notion.md +0 -789
  471. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +0 -469
  472. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +0 -1032
  473. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +0 -438
  474. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +0 -431
  475. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +0 -405
  476. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +0 -336
  477. moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +0 -402
  478. moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +0 -607
  479. moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +0 -300
  480. moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +0 -537
  481. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +0 -520
  482. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +0 -574
  483. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +0 -317
  484. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +0 -663
  485. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +0 -190
  486. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +0 -175
  487. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +0 -196
  488. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +0 -17
  489. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +0 -158
  490. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +0 -340
  491. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +0 -713
  492. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +0 -538
  493. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +0 -1336
  494. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +0 -730
  495. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +0 -608
  496. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +0 -1005
  497. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +0 -436
  498. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +0 -411
  499. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +0 -982
  500. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +0 -778
  501. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +0 -646
  502. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +0 -782
  503. moai_adk/templates/.moai/config/questions/_schema.yaml +0 -151
  504. moai_adk/templates/.moai/config/questions/tab0-init.yaml +0 -251
  505. moai_adk/templates/.moai/config/questions/tab1-user.yaml +0 -108
  506. moai_adk/templates/.moai/config/questions/tab2-project.yaml +0 -81
  507. moai_adk/templates/.moai/config/questions/tab3-git.yaml +0 -634
  508. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +0 -170
  509. moai_adk/templates/.moai/config/questions/tab5-system.yaml +0 -87
  510. moai_adk/templates/.moai/scripts/setup-glm.py +0 -136
  511. moai_adk-0.34.0.dist-info/METADATA +0 -2999
  512. moai_adk-0.34.0.dist-info/RECORD +0 -463
  513. moai_adk-0.34.0.dist-info/licenses/LICENSE +0 -21
  514. /moai_adk/foundation/{git.py → git/__init__.py} +0 -0
  515. /moai_adk/templates/.claude/skills/moai-library-mermaid/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  516. /moai_adk/templates/.claude/skills/moai-library-mermaid/{optimization.md → modules/optimization.md} +0 -0
  517. /moai_adk/templates/.claude/skills/moai-library-nextra/{optimization.md → modules/optimization.md} +0 -0
  518. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  519. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{optimization.md → modules/optimization.md} +0 -0
  520. /moai_adk/templates/.claude/skills/moai-workflow-testing/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  521. /moai_adk/templates/.claude/skills/moai-workflow-testing/{optimization.md → modules/optimization.md} +0 -0
  522. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/examples.md +0 -0
  523. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/reference.md +0 -0
  524. {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/WHEEL +0 -0
@@ -2,8 +2,8 @@
2
2
 
3
3
  Purpose: Automated quality gates ensuring code quality, security, maintainability, and traceability through five core principles.
4
4
 
5
- Version: 1.0.0 (Updated from TRUST 4)
6
- Last Updated: 2025-11-25
5
+ Version: 2.0.0 (Modular Split)
6
+ Last Updated: 2026-01-06
7
7
 
8
8
  ---
9
9
 
@@ -18,22 +18,26 @@ TRUST 5 is MoAI-ADK's comprehensive quality assurance framework enforcing five p
18
18
  5. Trackable(T) - Clear commits, requirement traceability
19
19
 
20
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
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
25
 
26
26
  Quick Validation:
27
27
  ```python
28
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
29
+ test_coverage >= 85, # T
30
+ complexity <= 10, # R
31
+ consistency > 90, # U
32
+ security_score == 100, # S
33
+ has_clear_commits # T
34
34
  ]
35
35
  ```
36
36
 
37
+ Extended Documentation:
38
+ - [Implementation Details](trust-5-implementation.md) - Detailed patterns and code examples
39
+ - [Validation Framework](trust-5-validation.md) - CI/CD integration and metrics
40
+
37
41
  ---
38
42
 
39
43
  ## Implementation Guide (5 minutes)
@@ -44,67 +48,27 @@ RED-GREEN-REFACTOR Cycle:
44
48
 
45
49
  ```
46
50
  RED Phase: Write failing test
47
- Test defines requirement
48
- Code doesn't exist yet
49
- Test fails as expected
51
+ Test defines requirement
52
+ Code doesn't exist yet
53
+ Test fails as expected
50
54
 
51
55
  GREEN Phase: Write minimal code
52
- Simplest code to pass test
53
- Focus on making test pass
54
- Test now passes
56
+ Simplest code to pass test
57
+ Focus on making test pass
58
+ Test now passes
55
59
 
56
60
  REFACTOR Phase: Improve quality
57
- Extract functions/classes
58
- Optimize performance
59
- Add documentation
60
- Keep tests passing
61
+ Extract functions/classes
62
+ Optimize performance
63
+ Add documentation
64
+ Keep tests passing
61
65
  ```
62
66
 
63
67
  Test Coverage Requirements:
64
68
 
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
- ```
69
+ - Critical (≥85%): Required for merge
70
+ - Warning (70-84%): Review required
71
+ - Failing (<70%): Block merge, generate tests
108
72
 
109
73
  Validation Commands:
110
74
  ```bash
@@ -113,9 +77,6 @@ pytest --cov=src --cov-report=html --cov-fail-under=85
113
77
 
114
78
  # Generate coverage report
115
79
  coverage report -m
116
-
117
- # Show missing lines
118
- coverage html && open htmlcov/index.html
119
80
  ```
120
81
 
121
82
  ---
@@ -124,68 +85,21 @@ coverage html && open htmlcov/index.html
124
85
 
125
86
  Readability Metrics:
126
87
 
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% |
88
+ - Cyclomatic Complexity: ≤10 (max 15)
89
+ - Function Length: ≤50 lines (max 100)
90
+ - Nesting Depth:3 levels (max 5)
91
+ - Comment Ratio: 15-20% (min 10%)
92
+ - Type Hint Coverage: 100% (min 90%)
134
93
 
135
94
  Readability Checklist:
136
95
 
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
- ```
96
+ - Clear function/variable names (noun_verb pattern)
97
+ - Single responsibility principle
98
+ - Type hints on all parameters and returns
99
+ - Docstrings with examples (Google style)
100
+ - No magic numbers (use named constants)
101
+ - DRY principle applied (no code duplication)
102
+ - SOLID principles followed
189
103
 
190
104
  Validation Commands:
191
105
  ```bash
@@ -205,66 +119,29 @@ mypy src/ --strict
205
119
 
206
120
  Consistency Requirements:
207
121
 
208
- ```
209
122
  Architecture Consistency:
210
- Same pattern across all modules
211
- Same error handling approach
212
- Same logging strategy
213
- Same naming conventions
123
+ - Same pattern across all modules
124
+ - Same error handling approach
125
+ - Same logging strategy
126
+ - Same naming conventions
214
127
 
215
128
  Testing Consistency:
216
- Same test structure (Arrange-Act-Assert)
217
- Same fixtures/factories
218
- Same assertion patterns
219
- Same mock strategies
129
+ - Same test structure (Arrange-Act-Assert)
130
+ - Same fixtures/factories
131
+ - Same assertion patterns
132
+ - Same mock strategies
220
133
 
221
134
  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
- ```
135
+ - Same docstring format (Google style)
136
+ - Same README structure
137
+ - Same API documentation
138
+ - Same changelog format (conventional commits)
259
139
 
260
140
  Validation Tools:
261
141
  ```bash
262
142
  # Check architecture compliance
263
143
  python .moai/scripts/validate_architecture.py
264
144
 
265
- # Verify naming conventions
266
- grep -r "def [A-Z]" src/ && echo "Found camelCase functions!"
267
-
268
145
  # Check consistent imports
269
146
  isort --check-only src/
270
147
  ```
@@ -275,93 +152,16 @@ isort --check-only src/
275
152
 
276
153
  OWASP Top 10 (2024) Compliance:
277
154
 
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
- ```
155
+ 1. Broken Access Control - RBAC, permission checks
156
+ 2. Cryptographic Failures - bcrypt, proper encryption
157
+ 3. Injection - Parameterized queries
158
+ 4. Insecure Design - Threat modeling
159
+ 5. Security Misconfiguration - Environment variables
160
+ 6. Vulnerable Components - Dependency scanning
161
+ 7. Authentication Failures - MFA, secure sessions
162
+ 8. Data Integrity - Checksums, signatures
163
+ 9. Logging Failures - Comprehensive logging
164
+ 10. SSRF - URL validation
365
165
 
366
166
  Security Validation:
367
167
  ```bash
@@ -372,9 +172,6 @@ bandit -r src/ -ll
372
172
  pip-audit
373
173
  safety check
374
174
 
375
- # OWASP ZAP scan (for APIs)
376
- zap-cli quick-scan http://localhost:8000
377
-
378
175
  # Secret scanning
379
176
  detect-secrets scan
380
177
  ```
@@ -385,571 +182,37 @@ detect-secrets scan
385
182
 
386
183
  Traceability Requirements:
387
184
 
388
- ```
389
185
  Commit Traceability:
390
- Conventional commit format
391
- Link to SPEC or issue
392
- Clear description of changes
393
- Test evidence included
186
+ - Conventional commit format
187
+ - Link to SPEC or issue
188
+ - Clear description of changes
189
+ - Test evidence included
394
190
 
395
191
  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
- ```
192
+ - SPEC-XXX-REQ-YY mapping
193
+ - Implementation - Test linkage
194
+ - Test - Acceptance criteria
195
+ - Acceptance - User story
407
196
 
408
197
  Conventional Commit Format:
409
-
410
198
  ```bash
411
199
  # Format: <type>(<scope>): <subject>
412
- #
413
- # <body>
414
- #
415
- # <footer>
416
-
417
- # Examples:
418
200
  feat(auth): Add OAuth2 integration
419
201
 
420
202
  Implement OAuth2 authentication flow with Google provider.
421
203
  Addresses SPEC-001-REQ-02.
422
204
 
423
- - Add OAuth2 client configuration
424
- - Implement callback handling
425
- - Add token validation
426
- - Test coverage: 92%
427
-
428
205
  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
206
  ```
495
207
 
496
208
  ---
497
209
 
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:
210
+ ## Advanced Patterns
633
211
 
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
212
+ For comprehensive implementation patterns including CI/CD integration, validation frameworks, and metrics dashboards, see:
871
213
 
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
- ```
214
+ - [TRUST 5 Implementation](trust-5-implementation.md) - Detailed code patterns
215
+ - [TRUST 5 Validation](trust-5-validation.md) - CI/CD and metrics
953
216
 
954
217
  ---
955
218
 
@@ -962,20 +225,15 @@ Agents:
962
225
  - test-engineer - Test generation and coverage
963
226
 
964
227
  Skills:
965
- - moai-essentials-testing-integration - Test framework setup
228
+ - moai-workflow-testing - Test framework setup
966
229
  - moai-domain-security - Security patterns
967
- - moai-core-code-reviewer - Code quality analysis
968
230
 
969
231
  Commands:
970
232
  - /moai:2-run - Enforces ≥85% coverage requirement
971
233
  - /moai:9-feedback - Quality improvement suggestions
972
234
 
973
- Memory:
974
- - Skill("moai-foundation-core") modules/execution-rules.md - Quality gates
975
- - @.moai/config/config.yaml - constitution.test_coverage_target
976
-
977
235
  ---
978
236
 
979
- Version: 1.0.0
980
- Last Updated: 2025-11-25
237
+ Version: 2.0.0
238
+ Last Updated: 2026-01-06
981
239
  Status: Production Ready