moai-adk 0.25.4__py3-none-any.whl → 0.32.8__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (378) hide show
  1. moai_adk/__init__.py +2 -5
  2. moai_adk/__main__.py +114 -82
  3. moai_adk/cli/__init__.py +6 -1
  4. moai_adk/cli/commands/__init__.py +1 -3
  5. moai_adk/cli/commands/analyze.py +5 -16
  6. moai_adk/cli/commands/doctor.py +6 -18
  7. moai_adk/cli/commands/init.py +56 -125
  8. moai_adk/cli/commands/language.py +14 -35
  9. moai_adk/cli/commands/status.py +9 -15
  10. moai_adk/cli/commands/update.py +1555 -190
  11. moai_adk/cli/prompts/init_prompts.py +112 -56
  12. moai_adk/cli/spec_status.py +263 -0
  13. moai_adk/cli/ui/__init__.py +44 -0
  14. moai_adk/cli/ui/progress.py +422 -0
  15. moai_adk/cli/ui/prompts.py +389 -0
  16. moai_adk/cli/ui/theme.py +129 -0
  17. moai_adk/cli/worktree/__init__.py +27 -0
  18. moai_adk/cli/worktree/__main__.py +31 -0
  19. moai_adk/cli/worktree/cli.py +672 -0
  20. moai_adk/cli/worktree/exceptions.py +89 -0
  21. moai_adk/cli/worktree/manager.py +490 -0
  22. moai_adk/cli/worktree/models.py +65 -0
  23. moai_adk/cli/worktree/registry.py +128 -0
  24. moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
  25. moai_adk/core/analysis/session_analyzer.py +17 -56
  26. moai_adk/core/claude_integration.py +26 -54
  27. moai_adk/core/command_helpers.py +10 -10
  28. moai_adk/core/comprehensive_monitoring_system.py +1183 -0
  29. moai_adk/core/config/auto_spec_config.py +5 -11
  30. moai_adk/core/config/migration.py +19 -9
  31. moai_adk/core/config/unified.py +436 -0
  32. moai_adk/core/context_manager.py +6 -12
  33. moai_adk/core/enterprise_features.py +1404 -0
  34. moai_adk/core/error_recovery_system.py +725 -112
  35. moai_adk/core/event_driven_hook_system.py +1371 -0
  36. moai_adk/core/git/__init__.py +8 -0
  37. moai_adk/core/git/branch_manager.py +3 -11
  38. moai_adk/core/git/checkpoint.py +1 -3
  39. moai_adk/core/git/conflict_detector.py +413 -0
  40. moai_adk/core/git/manager.py +91 -1
  41. moai_adk/core/hooks/post_tool_auto_spec_completion.py +56 -80
  42. moai_adk/core/input_validation_middleware.py +1006 -0
  43. moai_adk/core/integration/engine.py +6 -18
  44. moai_adk/core/integration/integration_tester.py +10 -9
  45. moai_adk/core/integration/utils.py +1 -1
  46. moai_adk/core/issue_creator.py +10 -28
  47. moai_adk/core/jit_context_loader.py +956 -0
  48. moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
  49. moai_adk/core/language_config_resolver.py +485 -0
  50. moai_adk/core/language_validator.py +28 -41
  51. moai_adk/core/mcp/setup.py +15 -12
  52. moai_adk/core/merge/__init__.py +9 -0
  53. moai_adk/core/merge/analyzer.py +481 -0
  54. moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
  55. moai_adk/core/migration/backup_manager.py +78 -9
  56. moai_adk/core/migration/custom_element_scanner.py +358 -0
  57. moai_adk/core/migration/file_migrator.py +8 -17
  58. moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
  59. moai_adk/core/migration/selective_restorer.py +470 -0
  60. moai_adk/core/migration/template_utils.py +74 -0
  61. moai_adk/core/migration/user_selection_ui.py +338 -0
  62. moai_adk/core/migration/version_detector.py +6 -10
  63. moai_adk/core/migration/version_migrator.py +3 -3
  64. moai_adk/core/performance/cache_system.py +8 -10
  65. moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
  66. moai_adk/core/project/checker.py +2 -4
  67. moai_adk/core/project/detector.py +1 -3
  68. moai_adk/core/project/initializer.py +135 -23
  69. moai_adk/core/project/phase_executor.py +54 -81
  70. moai_adk/core/project/validator.py +6 -12
  71. moai_adk/core/quality/trust_checker.py +9 -27
  72. moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
  73. moai_adk/core/robust_json_parser.py +611 -0
  74. moai_adk/core/rollback_manager.py +73 -148
  75. moai_adk/core/session_manager.py +10 -26
  76. moai_adk/core/skill_loading_system.py +579 -0
  77. moai_adk/core/spec/confidence_scoring.py +31 -100
  78. moai_adk/core/spec/ears_template_engine.py +351 -286
  79. moai_adk/core/spec/quality_validator.py +35 -69
  80. moai_adk/core/spec_status_manager.py +64 -74
  81. moai_adk/core/template/backup.py +45 -20
  82. moai_adk/core/template/config.py +112 -39
  83. moai_adk/core/template/merger.py +11 -19
  84. moai_adk/core/template/processor.py +253 -149
  85. moai_adk/core/template_engine.py +73 -40
  86. moai_adk/core/template_variable_synchronizer.py +417 -0
  87. moai_adk/core/unified_permission_manager.py +745 -0
  88. moai_adk/core/user_behavior_analytics.py +851 -0
  89. moai_adk/core/version_sync.py +429 -0
  90. moai_adk/foundation/__init__.py +56 -0
  91. moai_adk/foundation/backend.py +1027 -0
  92. moai_adk/foundation/database.py +1115 -0
  93. moai_adk/foundation/devops.py +1585 -0
  94. moai_adk/foundation/ears.py +431 -0
  95. moai_adk/foundation/frontend.py +870 -0
  96. moai_adk/foundation/git/commit_templates.py +4 -12
  97. moai_adk/foundation/git.py +376 -0
  98. moai_adk/foundation/langs.py +484 -0
  99. moai_adk/foundation/ml_ops.py +1162 -0
  100. moai_adk/foundation/testing.py +1524 -0
  101. moai_adk/foundation/trust/trust_principles.py +23 -72
  102. moai_adk/foundation/trust/validation_checklist.py +57 -162
  103. moai_adk/project/__init__.py +0 -0
  104. moai_adk/project/configuration.py +1084 -0
  105. moai_adk/project/documentation.py +566 -0
  106. moai_adk/project/schema.py +447 -0
  107. moai_adk/statusline/alfred_detector.py +1 -3
  108. moai_adk/statusline/config.py +13 -4
  109. moai_adk/statusline/enhanced_output_style_detector.py +23 -15
  110. moai_adk/statusline/main.py +51 -15
  111. moai_adk/statusline/renderer.py +104 -48
  112. moai_adk/statusline/update_checker.py +3 -9
  113. moai_adk/statusline/version_reader.py +140 -46
  114. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +549 -0
  115. moai_adk/templates/.claude/agents/moai/builder-agent.md +445 -0
  116. moai_adk/templates/.claude/agents/moai/builder-command.md +1132 -0
  117. moai_adk/templates/.claude/agents/moai/builder-skill.md +601 -0
  118. moai_adk/templates/.claude/agents/moai/expert-backend.md +831 -0
  119. moai_adk/templates/.claude/agents/moai/expert-database.md +774 -0
  120. moai_adk/templates/.claude/agents/moai/expert-debug.md +396 -0
  121. moai_adk/templates/.claude/agents/moai/expert-devops.md +711 -0
  122. moai_adk/templates/.claude/agents/moai/expert-frontend.md +666 -0
  123. moai_adk/templates/.claude/agents/moai/expert-security.md +474 -0
  124. moai_adk/templates/.claude/agents/moai/expert-uiux.md +1038 -0
  125. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +429 -0
  126. moai_adk/templates/.claude/agents/moai/manager-docs.md +570 -0
  127. moai_adk/templates/.claude/agents/moai/manager-git.md +937 -0
  128. moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
  129. moai_adk/templates/.claude/agents/moai/manager-quality.md +598 -0
  130. moai_adk/templates/.claude/agents/moai/manager-spec.md +713 -0
  131. moai_adk/templates/.claude/agents/moai/manager-strategy.md +600 -0
  132. moai_adk/templates/.claude/agents/moai/manager-tdd.md +603 -0
  133. moai_adk/templates/.claude/agents/moai/mcp-context7.md +369 -0
  134. moai_adk/templates/.claude/agents/moai/mcp-figma.md +1567 -0
  135. moai_adk/templates/.claude/agents/moai/mcp-notion.md +749 -0
  136. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +427 -0
  137. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +994 -0
  138. moai_adk/templates/.claude/commands/moai/0-project.md +1143 -0
  139. moai_adk/templates/.claude/commands/moai/1-plan.md +1435 -0
  140. moai_adk/templates/.claude/commands/moai/2-run.md +883 -0
  141. moai_adk/templates/.claude/commands/moai/3-sync.md +993 -0
  142. moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
  143. moai_adk/templates/.claude/hooks/__init__.py +8 -0
  144. moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
  145. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
  146. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
  147. moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
  148. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
  149. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
  150. moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
  151. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
  152. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
  153. moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
  154. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
  155. moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
  156. moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
  157. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
  158. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
  159. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
  160. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +921 -0
  161. moai_adk/templates/.claude/output-styles/moai/r2d2.md +380 -0
  162. moai_adk/templates/.claude/output-styles/moai/yoda.md +338 -0
  163. moai_adk/templates/.claude/settings.json +172 -0
  164. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +247 -0
  165. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
  166. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
  167. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
  168. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
  169. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
  170. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +319 -0
  171. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +320 -0
  172. moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
  173. moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
  174. moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
  175. moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
  176. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +496 -0
  177. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +453 -0
  178. moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
  179. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
  180. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
  181. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +405 -0
  182. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
  183. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
  184. moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
  185. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +491 -0
  186. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
  187. moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
  188. moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
  189. moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
  190. moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
  191. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
  192. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +201 -0
  193. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
  194. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
  195. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
  196. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
  197. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
  198. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
  199. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
  200. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
  201. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
  202. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
  203. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
  204. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
  205. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
  206. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
  207. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +438 -0
  208. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +515 -0
  209. moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
  210. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +346 -0
  211. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
  212. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
  213. moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
  214. moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
  215. moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
  216. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
  217. moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
  218. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
  219. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +362 -0
  220. moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
  221. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
  222. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
  223. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
  224. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
  225. moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
  226. moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
  227. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
  228. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
  229. moai_adk/templates/.claude/skills/moai-integration-mcp/SKILL.md +352 -0
  230. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +52 -0
  231. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +334 -0
  232. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +310 -0
  233. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +256 -0
  234. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +253 -0
  235. moai_adk/templates/.claude/skills/moai-lang-unified/README.md +133 -0
  236. moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +296 -0
  237. moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +1269 -0
  238. moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +331 -0
  239. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +298 -0
  240. moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
  241. moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
  242. moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
  243. moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
  244. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +316 -0
  245. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
  246. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
  247. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
  248. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
  249. moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
  250. moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
  251. moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
  252. moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
  253. moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
  254. moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
  255. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +370 -0
  256. moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
  257. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
  258. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
  259. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
  260. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
  261. moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
  262. moai_adk/templates/.claude/skills/moai-platform-baas/README.md +186 -0
  263. moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +290 -0
  264. moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +1225 -0
  265. moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +567 -0
  266. moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +323 -0
  267. moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +204 -0
  268. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +446 -0
  269. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
  270. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
  271. moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
  272. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +387 -0
  273. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
  274. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
  275. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
  276. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
  277. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
  278. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +135 -0
  279. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
  280. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
  281. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
  282. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
  283. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
  284. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
  285. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
  286. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
  287. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
  288. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
  289. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
  290. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1362 -0
  291. moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
  292. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
  293. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
  294. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +71 -0
  295. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
  296. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
  297. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
  298. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
  299. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
  300. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
  301. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +374 -0
  302. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
  303. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
  304. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
  305. moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
  306. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +453 -0
  307. moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
  308. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
  309. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
  310. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
  311. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
  312. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
  313. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
  314. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
  315. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
  316. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
  317. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
  318. moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
  319. moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
  320. moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
  321. moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
  322. moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
  323. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +410 -0
  324. moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
  325. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
  326. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
  327. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
  328. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
  329. moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
  330. moai_adk/templates/.git-hooks/pre-commit +103 -41
  331. moai_adk/templates/.git-hooks/pre-push +116 -21
  332. moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
  333. moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
  334. moai_adk/templates/.gitignore +184 -44
  335. moai_adk/templates/.mcp.json +7 -9
  336. moai_adk/templates/.moai/cache/personalization.json +10 -0
  337. moai_adk/templates/.moai/config/config.yaml +344 -0
  338. moai_adk/templates/.moai/config/presets/manual.yaml +28 -0
  339. moai_adk/templates/.moai/config/presets/personal.yaml +30 -0
  340. moai_adk/templates/.moai/config/presets/team.yaml +33 -0
  341. moai_adk/templates/.moai/config/questions/_schema.yaml +79 -0
  342. moai_adk/templates/.moai/config/questions/tab1-user.yaml +108 -0
  343. moai_adk/templates/.moai/config/questions/tab2-project.yaml +122 -0
  344. moai_adk/templates/.moai/config/questions/tab3-git.yaml +542 -0
  345. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +167 -0
  346. moai_adk/templates/.moai/config/questions/tab5-system.yaml +152 -0
  347. moai_adk/templates/.moai/config/sections/git-strategy.yaml +40 -0
  348. moai_adk/templates/.moai/config/sections/language.yaml +11 -0
  349. moai_adk/templates/.moai/config/sections/project.yaml +13 -0
  350. moai_adk/templates/.moai/config/sections/quality.yaml +15 -0
  351. moai_adk/templates/.moai/config/sections/system.yaml +14 -0
  352. moai_adk/templates/.moai/config/sections/user.yaml +5 -0
  353. moai_adk/templates/.moai/config/statusline-config.yaml +86 -0
  354. moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
  355. moai_adk/templates/CLAUDE.md +382 -501
  356. moai_adk/utils/__init__.py +24 -1
  357. moai_adk/utils/banner.py +7 -10
  358. moai_adk/utils/common.py +16 -30
  359. moai_adk/utils/link_validator.py +4 -12
  360. moai_adk/utils/safe_file_reader.py +2 -6
  361. moai_adk/utils/timeout.py +160 -0
  362. moai_adk/utils/toon_utils.py +256 -0
  363. moai_adk/version.py +22 -0
  364. moai_adk-0.32.8.dist-info/METADATA +2478 -0
  365. moai_adk-0.32.8.dist-info/RECORD +396 -0
  366. {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/WHEEL +1 -1
  367. {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/entry_points.txt +1 -0
  368. moai_adk/cli/commands/backup.py +0 -82
  369. moai_adk/cli/commands/improve_user_experience.py +0 -348
  370. moai_adk/cli/commands/migrate.py +0 -158
  371. moai_adk/cli/commands/validate_links.py +0 -118
  372. moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -413
  373. moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
  374. moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
  375. moai_adk/utils/user_experience.py +0 -531
  376. moai_adk-0.25.4.dist-info/METADATA +0 -2279
  377. moai_adk-0.25.4.dist-info/RECORD +0 -112
  378. {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,261 @@
1
+ # Best Practices Enforcement
2
+
3
+ Context7-powered best practices validation and automated standards enforcement.
4
+
5
+ ## Overview
6
+
7
+ The Best Practices Engine validates coding standards and best practices using real-time documentation from Context7, ensuring code follows latest framework and language standards.
8
+
9
+ ## Best Practices Engine Implementation
10
+
11
+ ```python
12
+ class BestPracticesEngine:
13
+ """Context7-powered best practices validation and enforcement"""
14
+
15
+ def __init__(self, context7_client: Context7Client):
16
+ self.context7_client = context7_client
17
+ self.language_rules = self._load_language_rules()
18
+ self.practice_validators = self._initialize_validators()
19
+
20
+ async def validate(self, codebase: str, languages: List[str], context7_docs: bool = True) -> PracticesResult:
21
+ """Validate coding best practices with real-time documentation"""
22
+
23
+ validation_results = {}
24
+
25
+ for language in languages:
26
+ # Get latest best practices from Context7
27
+ if context7_docs:
28
+ try:
29
+ library_id = await self.context7_client.resolve_library_id(language)
30
+ latest_docs = await self.context7_client.get_library_docs(
31
+ context7CompatibleLibraryID=library_id,
32
+ topic="best-practices",
33
+ tokens=5000
34
+ )
35
+
36
+ # Validate against latest standards
37
+ validation_result = await self._validate_against_latest_standards(
38
+ codebase, language, latest_docs
39
+ )
40
+
41
+ except Exception as e:
42
+ logger.warning(f"Failed to get Context7 docs for {language}: {e}")
43
+ # Fallback to cached rules
44
+ validation_result = await self._validate_with_cached_rules(
45
+ codebase, language
46
+ )
47
+ else:
48
+ validation_result = await self._validate_with_cached_rules(
49
+ codebase, language
50
+ )
51
+
52
+ validation_results[language] = validation_result
53
+
54
+ # Cross-language best practices
55
+ cross_language_result = await self._validate_cross_language_practices(codebase)
56
+
57
+ # Calculate overall practices score
58
+ overall_score = sum(
59
+ result.score for result in validation_results.values()
60
+ ) / len(validation_results)
61
+
62
+ return PracticesResult(
63
+ language_results=validation_results,
64
+ cross_language_practices=cross_language_result,
65
+ overall_score=overall_score,
66
+ compliance_level=self._determine_compliance_level(overall_score),
67
+ improvement_roadmap=self._create_improvement_roadmap(validation_results)
68
+ )
69
+
70
+ async def _validate_against_latest_standards(
71
+ self,
72
+ codebase: str,
73
+ language: str,
74
+ latest_docs: str
75
+ ) -> LanguageValidationResult:
76
+ """Validate code against latest language standards from Context7"""
77
+
78
+ # Extract best practices from documentation
79
+ best_practices = await self._extract_best_practices_from_docs(latest_docs)
80
+
81
+ # Validate naming conventions
82
+ naming_result = await self._validate_naming_conventions(
83
+ codebase, language, best_practices.get("naming", {})
84
+ )
85
+
86
+ # Validate code structure
87
+ structure_result = await self._validate_code_structure(
88
+ codebase, language, best_practices.get("structure", {})
89
+ )
90
+
91
+ # Validate error handling
92
+ error_handling_result = await self._validate_error_handling(
93
+ codebase, language, best_practices.get("error_handling", {})
94
+ )
95
+
96
+ # Validate documentation
97
+ documentation_result = await self._validate_documentation(
98
+ codebase, language, best_practices.get("documentation", {})
99
+ )
100
+
101
+ # Validate testing patterns
102
+ testing_result = await self._validate_testing_patterns(
103
+ codebase, language, best_practices.get("testing", {})
104
+ )
105
+
106
+ # Calculate language-specific score
107
+ language_score = (
108
+ naming_result.score * 0.2 +
109
+ structure_result.score * 0.3 +
110
+ error_handling_result.score * 0.2 +
111
+ documentation_result.score * 0.15 +
112
+ testing_result.score * 0.15
113
+ )
114
+
115
+ return LanguageValidationResult(
116
+ language=language,
117
+ score=language_score,
118
+ validations={
119
+ "naming": naming_result,
120
+ "structure": structure_result,
121
+ "error_handling": error_handling_result,
122
+ "documentation": documentation_result,
123
+ "testing": testing_result
124
+ },
125
+ best_practices_version=await self._get_docs_version(latest_docs),
126
+ recommendations=self._generate_language_recommendations(
127
+ naming_result, structure_result, error_handling_result,
128
+ documentation_result, testing_result
129
+ )
130
+ )
131
+ ```
132
+
133
+ ## Configuration
134
+
135
+ ```yaml
136
+ best_practices:
137
+ enabled: true
138
+ context7_integration: true
139
+ auto_update_standards: true
140
+ compliance_target: 0.85
141
+
142
+ language_rules:
143
+ python:
144
+ style_guide: "pep8"
145
+ formatter: "black"
146
+ linter: "ruff"
147
+ type_checker: "mypy"
148
+
149
+ javascript:
150
+ style_guide: "airbnb"
151
+ formatter: "prettier"
152
+ linter: "eslint"
153
+
154
+ typescript:
155
+ style_guide: "google"
156
+ formatter: "prettier"
157
+ linter: "eslint"
158
+ ```
159
+
160
+ ## Context7 Library Mappings
161
+
162
+ ```python
163
+ QUALITY_LIBRARY_MAPPINGS = {
164
+ # Static Analysis Tools
165
+ "eslint": "/eslint/eslint",
166
+ "prettier": "/prettier/prettier",
167
+ "black": "/psf/black",
168
+ "ruff": "/astral-sh/ruff",
169
+ "mypy": "/python/mypy",
170
+ "pylint": "/pylint-dev/pylint",
171
+ "sonarqube": "/SonarSource/sonarqube",
172
+
173
+ # Testing Frameworks
174
+ "jest": "/facebook/jest",
175
+ "pytest": "/pytest-dev/pytest",
176
+ "mocha": "/mochajs/mocha",
177
+ "junit": "/junit-team/junit5",
178
+
179
+ # Security Tools
180
+ "bandit": "/PyCQA/bandit",
181
+ "snyk": "/snyk/snyk",
182
+ "owasp-zap": "/zaproxy/zaproxy",
183
+
184
+ # Performance Tools
185
+ "lighthouse": "/GoogleChrome/lighthouse",
186
+ "py-spy": "/benfred/py-spy",
187
+
188
+ # Documentation Standards
189
+ "openapi": "/OAI/OpenAPI-Specification",
190
+ "sphinx": "/sphinx-doc/sphinx",
191
+ "jsdoc": "/jsdoc/jsdoc"
192
+ }
193
+ ```
194
+
195
+ ## Custom Quality Rules
196
+
197
+ ```python
198
+ class CustomQualityRule:
199
+ """Define custom quality validation rules"""
200
+
201
+ def __init__(self, name: str, validator: Callable, severity: str = "medium"):
202
+ self.name = name
203
+ self.validator = validator
204
+ self.severity = severity
205
+
206
+ async def validate(self, codebase: str) -> RuleResult:
207
+ """Execute custom rule validation"""
208
+ try:
209
+ result = await self.validator(codebase)
210
+ return RuleResult(
211
+ rule_name=self.name,
212
+ passed=result.passed,
213
+ severity=self.severity,
214
+ details=result.details,
215
+ recommendations=result.recommendations
216
+ )
217
+ except Exception as e:
218
+ return RuleResult(
219
+ rule_name=self.name,
220
+ passed=False,
221
+ severity="error",
222
+ details={"error": str(e)},
223
+ recommendations=["Fix rule implementation"]
224
+ )
225
+
226
+ # Usage example
227
+ async def custom_naming_convention_rule(codebase: str):
228
+ """Custom rule: Enforce project-specific naming conventions"""
229
+
230
+ patterns = {
231
+ "api_endpoints": r"^[a-z]+_[a-z]+$",
232
+ "database_models": r"^[A-Z][a-zA-Z]*Model$",
233
+ "utility_functions": r"^util_[a-z_]+$"
234
+ }
235
+
236
+ violations = []
237
+ for pattern_name, pattern in patterns.items():
238
+ pattern_violations = await scan_for_pattern_violations(codebase, pattern, pattern_name)
239
+ violations.extend(pattern_violations)
240
+
241
+ return RuleValidationResult(
242
+ passed=len(violations) == 0,
243
+ details={"violations": violations, "total_violations": len(violations)},
244
+ recommendations=[f"Fix {len(violations)} naming convention violations"]
245
+ )
246
+
247
+ # Register custom rule
248
+ custom_rule = CustomQualityRule(
249
+ name="project_naming_conventions",
250
+ validator=custom_naming_convention_rule,
251
+ severity="medium"
252
+ )
253
+
254
+ quality_orchestrator.register_custom_rule(custom_rule)
255
+ ```
256
+
257
+ ## Related
258
+
259
+ - [TRUST 5 Validation](trust5-validation.md)
260
+ - [Proactive Analysis](proactive-analysis.md)
261
+ - [Integration Patterns](integration-patterns.md)
@@ -0,0 +1,194 @@
1
+ # Integration Patterns
2
+
3
+ Enterprise integration patterns for CI/CD pipelines, GitHub Actions, and Quality-as-Service APIs.
4
+
5
+ ## CI/CD Pipeline Integration
6
+
7
+ ```python
8
+ async def quality_gate_pipeline():
9
+ """Integrate quality validation into CI/CD pipeline"""
10
+
11
+ # Initialize quality orchestrator
12
+ quality_orchestrator = QualityOrchestrator.from_config("quality-config.yaml")
13
+
14
+ # Run comprehensive quality analysis
15
+ quality_result = await quality_orchestrator.analyze_codebase(
16
+ path="src/",
17
+ languages=["python", "typescript"],
18
+ quality_threshold=0.85
19
+ )
20
+
21
+ # Quality gate validation
22
+ if not quality_result.trust5_validation.passed:
23
+ print(" Quality gate failed!")
24
+ print(f"Overall score: {quality_result.overall_score:.2f}")
25
+
26
+ # Print failed principles
27
+ for principle, result in quality_result.trust5_validation.principles.items():
28
+ if not result.passed:
29
+ print(f" {principle}: {result.score:.2f} (threshold: 0.80)")
30
+
31
+ # Exit with error code
32
+ sys.exit(1)
33
+
34
+ # Check for critical security issues
35
+ critical_issues = [
36
+ issue for issue in quality_result.proactive_analysis.recommendations
37
+ if issue.severity == "critical" and issue.category == "security"
38
+ ]
39
+
40
+ if critical_issues:
41
+ print(f" Found {len(critical_issues)} critical security issues!")
42
+ for issue in critical_issues:
43
+ print(f" - {issue.description}")
44
+ sys.exit(1)
45
+
46
+ print(" Quality gate passed!")
47
+ print(f"Overall quality score: {quality_result.overall_score:.2f}")
48
+
49
+ # Generate quality report
50
+ await generate_quality_report(quality_result, output_path="quality-report.json")
51
+ ```
52
+
53
+ ## GitHub Actions Integration
54
+
55
+ ```python
56
+ async def github_actions_quality_check():
57
+ """Quality check for GitHub Actions workflow"""
58
+
59
+ # Parse inputs
60
+ github_token = os.getenv("GITHUB_TOKEN")
61
+ repo_path = os.getenv("GITHUB_WORKSPACE", ".")
62
+ pr_number = os.getenv("PR_NUMBER")
63
+
64
+ # Run quality analysis
65
+ quality_orchestrator = QualityOrchestrator()
66
+ quality_result = await quality_orchestrator.analyze_codebase(
67
+ path=repo_path,
68
+ languages=["python", "javascript", "typescript"]
69
+ )
70
+
71
+ # Post comment on PR if quality issues found
72
+ if pr_number and quality_result.overall_score < 0.85:
73
+ comment = generate_pr_quality_comment(quality_result)
74
+ await post_github_comment(github_token, pr_number, comment)
75
+
76
+ # Set output for GitHub Actions
77
+ print(f"::set-output name=quality_score::{quality_result.overall_score}")
78
+ print(f"::set-output name=quality_passed::{quality_result.trust5_validation.passed}")
79
+ ```
80
+
81
+ ## Quality-as-Service REST API
82
+
83
+ ```python
84
+ from fastapi import FastAPI, HTTPException
85
+ from pydantic import BaseModel
86
+
87
+ app = FastAPI(title="Code Quality Analysis API")
88
+
89
+ class QualityAnalysisRequest(BaseModel):
90
+ repository_url: str
91
+ languages: List[str]
92
+ quality_threshold: float = 0.85
93
+
94
+ class QualityAnalysisResponse(BaseModel):
95
+ analysis_id: str
96
+ overall_score: float
97
+ trust5_validation: Dict
98
+ recommendations: List[Dict]
99
+ analysis_completed_at: datetime
100
+
101
+ @app.post("/api/quality/analyze", response_model=QualityAnalysisResponse)
102
+ async def analyze_quality(request: QualityAnalysisRequest):
103
+ """API endpoint for quality analysis"""
104
+
105
+ try:
106
+ # Clone and analyze repository
107
+ with tempfile.TemporaryDirectory() as temp_dir:
108
+ await clone_repository(request.repository_url, temp_dir)
109
+
110
+ quality_orchestrator = QualityOrchestrator()
111
+ quality_result = await quality_orchestrator.analyze_codebase(
112
+ path=temp_dir,
113
+ languages=request.languages,
114
+ quality_threshold=request.quality_threshold
115
+ )
116
+
117
+ return QualityAnalysisResponse(
118
+ analysis_id=str(uuid.uuid4()),
119
+ overall_score=quality_result.overall_score,
120
+ trust5_validation=quality_result.trust5_validation.dict(),
121
+ recommendations=[rec.dict() for rec in quality_result.proactive_analysis.recommendations],
122
+ analysis_completed_at=datetime.now(UTC)
123
+ )
124
+
125
+ except Exception as e:
126
+ raise HTTPException(status_code=500, detail=str(e))
127
+ ```
128
+
129
+ ## Cross-Project Quality Benchmarking
130
+
131
+ ```python
132
+ class QualityBenchmarking:
133
+ """Cross-project quality benchmarking and comparison"""
134
+
135
+ def __init__(self, benchmark_database: str):
136
+ self.benchmark_db = benchmark_database
137
+ self.comparison_metrics = [
138
+ "code_coverage",
139
+ "security_score",
140
+ "maintainability_index",
141
+ "technical_debt_ratio",
142
+ "duplicate_code_percentage"
143
+ ]
144
+
145
+ async def benchmark_project(self, project_path: str, project_metadata: Dict) -> BenchmarkResult:
146
+ """Benchmark project quality against similar projects"""
147
+
148
+ # Analyze current project
149
+ current_metrics = await self._analyze_project_quality(project_path)
150
+
151
+ # Find comparable projects from database
152
+ comparable_projects = await self._find_comparable_projects(project_metadata)
153
+
154
+ # Calculate percentiles and rankings
155
+ benchmark_comparison = await self._calculate_benchmark_comparison(
156
+ current_metrics, comparable_projects
157
+ )
158
+
159
+ # Generate improvement recommendations based on top performers
160
+ improvement_recommendations = await self._generate_benchmark_recommendations(
161
+ current_metrics, benchmark_comparison
162
+ )
163
+
164
+ return BenchmarkResult(
165
+ project_metrics=current_metrics,
166
+ benchmark_comparison=benchmark_comparison,
167
+ industry_percentiles=benchmark_comparison.percentiles,
168
+ improvement_roadmap=improvement_recommendations,
169
+ competitive_analysis=self._analyze_competitive_position(
170
+ current_metrics, benchmark_comparison
171
+ )
172
+ )
173
+
174
+ async def _find_comparable_projects(self, project_metadata: Dict) -> List[ProjectMetrics]:
175
+ """Find projects with similar characteristics for comparison"""
176
+
177
+ query = {
178
+ "language": project_metadata.get("language"),
179
+ "project_type": project_metadata.get("type", "web_application"),
180
+ "team_size_range": self._get_team_size_range(project_metadata.get("team_size", 5)),
181
+ "industry": project_metadata.get("industry", "technology")
182
+ }
183
+
184
+ # Query benchmark database
185
+ comparable_projects = await self.benchmark_db.find_projects(query)
186
+
187
+ return comparable_projects[:50] # Limit to top 50 comparable projects
188
+ ```
189
+
190
+ ## Related
191
+
192
+ - [TRUST 5 Validation](trust5-validation.md)
193
+ - [Proactive Analysis](proactive-analysis.md)
194
+ - [Best Practices Engine](best-practices.md)
@@ -0,0 +1,229 @@
1
+ # Proactive Quality Analysis
2
+
3
+ Automated code quality issue detection and continuous improvement recommendations.
4
+
5
+ ## Overview
6
+
7
+ The Proactive Quality Scanner automatically detects code quality issues and provides improvement recommendations across multiple dimensions:
8
+ - Performance optimization opportunities
9
+ - Maintainability improvements
10
+ - Security vulnerabilities
11
+ - Code duplication
12
+ - Technical debt analysis
13
+ - Complexity reduction
14
+
15
+ ## Proactive Scanner Implementation
16
+
17
+ ```python
18
+ class ProactiveQualityScanner:
19
+ """Proactive code quality issue detection and analysis"""
20
+
21
+ def __init__(self, context7_client: Context7Client):
22
+ self.context7_client = context7_client
23
+ self.issue_detectors = self._initialize_detectors()
24
+ self.pattern_analyzer = CodePatternAnalyzer()
25
+
26
+ async def scan(self, codebase: str, focus_areas: List[str]) -> ProactiveResult:
27
+ """Comprehensive proactive quality scanning"""
28
+
29
+ scan_results = {}
30
+
31
+ # Performance analysis
32
+ if "performance" in focus_areas:
33
+ scan_results["performance"] = await self._scan_performance_issues(codebase)
34
+
35
+ # Maintainability analysis
36
+ if "maintainability" in focus_areas:
37
+ scan_results["maintainability"] = await self._scan_maintainability_issues(codebase)
38
+
39
+ # Security vulnerabilities
40
+ if "security" in focus_areas:
41
+ scan_results["security"] = await self._scan_security_issues(codebase)
42
+
43
+ # Code duplication
44
+ if "duplication" in focus_areas:
45
+ scan_results["duplication"] = await self._scan_code_duplication(codebase)
46
+
47
+ # Technical debt
48
+ if "technical_debt" in focus_areas:
49
+ scan_results["technical_debt"] = await self._analyze_technical_debt(codebase)
50
+
51
+ # Code complexity
52
+ if "complexity" in focus_areas:
53
+ scan_results["complexity"] = await self._analyze_complexity(codebase)
54
+
55
+ # Generate improvement recommendations
56
+ recommendations = await self._generate_improvement_recommendations(scan_results)
57
+
58
+ return ProactiveResult(
59
+ scan_results=scan_results,
60
+ recommendations=recommendations,
61
+ priority_issues=self._identify_priority_issues(scan_results),
62
+ estimated_effort=self._calculate_improvement_effort(recommendations)
63
+ )
64
+
65
+ async def _scan_performance_issues(self, codebase: str) -> PerformanceResult:
66
+ """Scan for performance-related issues"""
67
+
68
+ issues = []
69
+
70
+ # Get language-specific performance patterns from Context7
71
+ for language in self._detect_languages(codebase):
72
+ try:
73
+ # Resolve library ID
74
+ library_id = await self.context7_client.resolve_library_id(language)
75
+
76
+ # Get performance best practices
77
+ perf_docs = await self.context7_client.get_library_docs(
78
+ context7CompatibleLibraryID=library_id,
79
+ topic="performance",
80
+ tokens=3000
81
+ )
82
+
83
+ # Analyze code against performance patterns
84
+ language_issues = await self._analyze_performance_patterns(
85
+ codebase, language, perf_docs
86
+ )
87
+ issues.extend(language_issues)
88
+
89
+ except Exception as e:
90
+ logger.warning(f"Failed to get performance docs for {language}: {e}")
91
+
92
+ # Common performance issues
93
+ common_issues = await self._detect_common_performance_issues(codebase)
94
+ issues.extend(common_issues)
95
+
96
+ return PerformanceResult(
97
+ issues=issues,
98
+ score=self._calculate_performance_score(issues),
99
+ hotspots=self._identify_performance_hotspots(issues),
100
+ optimizations=self._suggest_optimizations(issues)
101
+ )
102
+ ```
103
+
104
+ ## Usage Examples
105
+
106
+ ```python
107
+ # Initialize proactive scanner
108
+ proactive_scanner = ProactiveQualityScanner(
109
+ context7_client=context7_client,
110
+ rule_engine=BestPracticesEngine()
111
+ )
112
+
113
+ # Scan for improvement opportunities
114
+ improvements = await proactive_scanner.scan_codebase(
115
+ path="src/",
116
+ scan_types=["security", "performance", "maintainability", "testing"]
117
+ )
118
+
119
+ # Generate improvement recommendations
120
+ recommendations = await proactive_scanner.generate_recommendations(
121
+ issues=improvements,
122
+ priority="high",
123
+ auto_fix=True
124
+ )
125
+ ```
126
+
127
+ ## Configuration
128
+
129
+ ```yaml
130
+ proactive_analysis:
131
+ enabled: true
132
+ scan_frequency: "daily"
133
+ focus_areas:
134
+ - "performance"
135
+ - "security"
136
+ - "maintainability"
137
+ - "technical_debt"
138
+
139
+ auto_fix:
140
+ enabled: true
141
+ severity_threshold: "medium"
142
+ confirmation_required: true
143
+ ```
144
+
145
+ ## Advanced Patterns
146
+
147
+ ### Machine Learning Quality Prediction
148
+
149
+ ```python
150
+ class QualityPredictionEngine:
151
+ """ML-powered quality issue prediction"""
152
+
153
+ def __init__(self, model_path: str):
154
+ self.model = self._load_model(model_path)
155
+ self.feature_extractor = CodeFeatureExtractor()
156
+
157
+ async def predict_quality_issues(self, codebase: str) -> PredictionResult:
158
+ """Predict potential quality issues using ML"""
159
+
160
+ # Extract code features
161
+ features = await self.feature_extractor.extract_features(codebase)
162
+
163
+ # Make predictions
164
+ predictions = self.model.predict(features)
165
+
166
+ # Analyze prediction confidence
167
+ confidence_scores = self.model.predict_proba(features)
168
+
169
+ # Group predictions by issue type
170
+ issue_predictions = self._group_predictions_by_type(
171
+ predictions, confidence_scores
172
+ )
173
+
174
+ return PredictionResult(
175
+ predictions=issue_predictions,
176
+ confidence_scores=confidence_scores,
177
+ high_risk_areas=self._identify_high_risk_areas(issue_predictions),
178
+ prevention_recommendations=self._generate_prevention_recommendations(
179
+ issue_predictions
180
+ )
181
+ )
182
+ ```
183
+
184
+ ### Real-time Quality Monitoring
185
+
186
+ ```python
187
+ class RealTimeQualityMonitor:
188
+ """Real-time code quality monitoring and alerting"""
189
+
190
+ def __init__(self, webhook_url: str, notification_config: Dict):
191
+ self.webhook_url = webhook_url
192
+ self.notification_config = notification_config
193
+ self.quality_history = deque(maxlen=1000)
194
+ self.alert_thresholds = notification_config.get("thresholds", {})
195
+
196
+ async def monitor_quality_changes(self, codebase: str):
197
+ """Continuously monitor quality changes"""
198
+
199
+ while True:
200
+ # Get current quality metrics
201
+ current_metrics = await self._get_current_quality_metrics(codebase)
202
+
203
+ # Compare with historical data
204
+ if self.quality_history:
205
+ previous_metrics = self.quality_history[-1]
206
+ quality_change = self._calculate_quality_change(
207
+ previous_metrics, current_metrics
208
+ )
209
+
210
+ # Check for quality degradation
211
+ if quality_change < -self.alert_thresholds.get("degradation", 0.1):
212
+ await self._send_quality_alert(
213
+ alert_type="quality_degradation",
214
+ metrics=current_metrics,
215
+ change=quality_change
216
+ )
217
+
218
+ # Store metrics
219
+ self.quality_history.append(current_metrics)
220
+
221
+ # Wait for next check
222
+ await asyncio.sleep(self.notification_config.get("check_interval", 300))
223
+ ```
224
+
225
+ ## Related
226
+
227
+ - [TRUST 5 Validation](trust5-validation.md)
228
+ - [Best Practices Engine](best-practices.md)
229
+ - [Integration Patterns](integration-patterns.md)