moai-adk 0.35.1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (502) hide show
  1. moai_adk/__init__.py +10 -0
  2. moai_adk/__main__.py +199 -0
  3. moai_adk/cli/__init__.py +6 -0
  4. moai_adk/cli/commands/__init__.py +17 -0
  5. moai_adk/cli/commands/analyze.py +116 -0
  6. moai_adk/cli/commands/doctor.py +272 -0
  7. moai_adk/cli/commands/init.py +372 -0
  8. moai_adk/cli/commands/language.py +248 -0
  9. moai_adk/cli/commands/status.py +104 -0
  10. moai_adk/cli/commands/update.py +2686 -0
  11. moai_adk/cli/main.py +13 -0
  12. moai_adk/cli/prompts/__init__.py +5 -0
  13. moai_adk/cli/prompts/init_prompts.py +219 -0
  14. moai_adk/cli/spec_status.py +263 -0
  15. moai_adk/cli/ui/__init__.py +44 -0
  16. moai_adk/cli/ui/progress.py +422 -0
  17. moai_adk/cli/ui/prompts.py +389 -0
  18. moai_adk/cli/ui/theme.py +129 -0
  19. moai_adk/cli/worktree/__init__.py +27 -0
  20. moai_adk/cli/worktree/__main__.py +31 -0
  21. moai_adk/cli/worktree/cli.py +683 -0
  22. moai_adk/cli/worktree/exceptions.py +89 -0
  23. moai_adk/cli/worktree/manager.py +493 -0
  24. moai_adk/cli/worktree/models.py +65 -0
  25. moai_adk/cli/worktree/registry.py +422 -0
  26. moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
  27. moai_adk/core/__init__.py +1 -0
  28. moai_adk/core/analysis/__init__.py +9 -0
  29. moai_adk/core/analysis/session_analyzer.py +400 -0
  30. moai_adk/core/claude_integration.py +393 -0
  31. moai_adk/core/command_helpers.py +270 -0
  32. moai_adk/core/comprehensive_monitoring_system.py +1183 -0
  33. moai_adk/core/config/__init__.py +19 -0
  34. moai_adk/core/config/auto_spec_config.py +340 -0
  35. moai_adk/core/config/migration.py +244 -0
  36. moai_adk/core/config/unified.py +436 -0
  37. moai_adk/core/context_manager.py +273 -0
  38. moai_adk/core/diagnostics/__init__.py +19 -0
  39. moai_adk/core/diagnostics/slash_commands.py +159 -0
  40. moai_adk/core/enterprise_features.py +1404 -0
  41. moai_adk/core/error_recovery_system.py +1902 -0
  42. moai_adk/core/event_driven_hook_system.py +1371 -0
  43. moai_adk/core/git/__init__.py +31 -0
  44. moai_adk/core/git/branch.py +25 -0
  45. moai_adk/core/git/branch_manager.py +129 -0
  46. moai_adk/core/git/checkpoint.py +134 -0
  47. moai_adk/core/git/commit.py +67 -0
  48. moai_adk/core/git/conflict_detector.py +413 -0
  49. moai_adk/core/git/event_detector.py +79 -0
  50. moai_adk/core/git/manager.py +216 -0
  51. moai_adk/core/hooks/post_tool_auto_spec_completion.py +901 -0
  52. moai_adk/core/input_validation_middleware.py +1006 -0
  53. moai_adk/core/integration/__init__.py +22 -0
  54. moai_adk/core/integration/engine.py +157 -0
  55. moai_adk/core/integration/integration_tester.py +226 -0
  56. moai_adk/core/integration/models.py +88 -0
  57. moai_adk/core/integration/utils.py +211 -0
  58. moai_adk/core/issue_creator.py +305 -0
  59. moai_adk/core/jit_context_loader.py +956 -0
  60. moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
  61. moai_adk/core/language_config.py +202 -0
  62. moai_adk/core/language_config_resolver.py +572 -0
  63. moai_adk/core/language_validator.py +543 -0
  64. moai_adk/core/mcp/setup.py +116 -0
  65. moai_adk/core/merge/__init__.py +9 -0
  66. moai_adk/core/merge/analyzer.py +605 -0
  67. moai_adk/core/migration/__init__.py +18 -0
  68. moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
  69. moai_adk/core/migration/backup_manager.py +277 -0
  70. moai_adk/core/migration/custom_element_scanner.py +358 -0
  71. moai_adk/core/migration/file_migrator.py +209 -0
  72. moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
  73. moai_adk/core/migration/selective_restorer.py +470 -0
  74. moai_adk/core/migration/template_utils.py +74 -0
  75. moai_adk/core/migration/user_selection_ui.py +338 -0
  76. moai_adk/core/migration/version_detector.py +139 -0
  77. moai_adk/core/migration/version_migrator.py +228 -0
  78. moai_adk/core/performance/__init__.py +6 -0
  79. moai_adk/core/performance/cache_system.py +316 -0
  80. moai_adk/core/performance/parallel_processor.py +116 -0
  81. moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
  82. moai_adk/core/project/__init__.py +1 -0
  83. moai_adk/core/project/backup_utils.py +70 -0
  84. moai_adk/core/project/checker.py +300 -0
  85. moai_adk/core/project/detector.py +293 -0
  86. moai_adk/core/project/initializer.py +387 -0
  87. moai_adk/core/project/phase_executor.py +716 -0
  88. moai_adk/core/project/validator.py +139 -0
  89. moai_adk/core/quality/__init__.py +6 -0
  90. moai_adk/core/quality/trust_checker.py +377 -0
  91. moai_adk/core/quality/validators/__init__.py +6 -0
  92. moai_adk/core/quality/validators/base_validator.py +19 -0
  93. moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
  94. moai_adk/core/robust_json_parser.py +611 -0
  95. moai_adk/core/rollback_manager.py +918 -0
  96. moai_adk/core/session_manager.py +651 -0
  97. moai_adk/core/skill_loading_system.py +579 -0
  98. moai_adk/core/spec/confidence_scoring.py +680 -0
  99. moai_adk/core/spec/ears_template_engine.py +1247 -0
  100. moai_adk/core/spec/quality_validator.py +687 -0
  101. moai_adk/core/spec_status_manager.py +478 -0
  102. moai_adk/core/template/__init__.py +7 -0
  103. moai_adk/core/template/backup.py +174 -0
  104. moai_adk/core/template/config.py +191 -0
  105. moai_adk/core/template/languages.py +43 -0
  106. moai_adk/core/template/merger.py +233 -0
  107. moai_adk/core/template/processor.py +1200 -0
  108. moai_adk/core/template_engine.py +310 -0
  109. moai_adk/core/template_variable_synchronizer.py +417 -0
  110. moai_adk/core/unified_permission_manager.py +745 -0
  111. moai_adk/core/user_behavior_analytics.py +851 -0
  112. moai_adk/core/version_sync.py +429 -0
  113. moai_adk/foundation/__init__.py +56 -0
  114. moai_adk/foundation/backend.py +1027 -0
  115. moai_adk/foundation/database.py +1115 -0
  116. moai_adk/foundation/devops.py +1585 -0
  117. moai_adk/foundation/ears.py +431 -0
  118. moai_adk/foundation/frontend.py +870 -0
  119. moai_adk/foundation/git/commit_templates.py +557 -0
  120. moai_adk/foundation/git.py +376 -0
  121. moai_adk/foundation/langs.py +484 -0
  122. moai_adk/foundation/ml_ops.py +1162 -0
  123. moai_adk/foundation/testing.py +1524 -0
  124. moai_adk/foundation/trust/trust_principles.py +676 -0
  125. moai_adk/foundation/trust/validation_checklist.py +1573 -0
  126. moai_adk/project/__init__.py +0 -0
  127. moai_adk/project/configuration.py +1084 -0
  128. moai_adk/project/documentation.py +566 -0
  129. moai_adk/project/schema.py +447 -0
  130. moai_adk/statusline/__init__.py +38 -0
  131. moai_adk/statusline/alfred_detector.py +105 -0
  132. moai_adk/statusline/config.py +376 -0
  133. moai_adk/statusline/enhanced_output_style_detector.py +372 -0
  134. moai_adk/statusline/git_collector.py +190 -0
  135. moai_adk/statusline/main.py +322 -0
  136. moai_adk/statusline/metrics_tracker.py +78 -0
  137. moai_adk/statusline/renderer.py +343 -0
  138. moai_adk/statusline/update_checker.py +129 -0
  139. moai_adk/statusline/version_reader.py +741 -0
  140. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +714 -0
  141. moai_adk/templates/.claude/agents/moai/builder-agent.md +474 -0
  142. moai_adk/templates/.claude/agents/moai/builder-command.md +1172 -0
  143. moai_adk/templates/.claude/agents/moai/builder-plugin.md +637 -0
  144. moai_adk/templates/.claude/agents/moai/builder-skill.md +666 -0
  145. moai_adk/templates/.claude/agents/moai/expert-backend.md +899 -0
  146. moai_adk/templates/.claude/agents/moai/expert-database.md +777 -0
  147. moai_adk/templates/.claude/agents/moai/expert-debug.md +401 -0
  148. moai_adk/templates/.claude/agents/moai/expert-devops.md +720 -0
  149. moai_adk/templates/.claude/agents/moai/expert-frontend.md +734 -0
  150. moai_adk/templates/.claude/agents/moai/expert-performance.md +657 -0
  151. moai_adk/templates/.claude/agents/moai/expert-security.md +513 -0
  152. moai_adk/templates/.claude/agents/moai/expert-testing.md +733 -0
  153. moai_adk/templates/.claude/agents/moai/expert-uiux.md +1041 -0
  154. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +432 -0
  155. moai_adk/templates/.claude/agents/moai/manager-docs.md +573 -0
  156. moai_adk/templates/.claude/agents/moai/manager-git.md +1060 -0
  157. moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
  158. moai_adk/templates/.claude/agents/moai/manager-quality.md +624 -0
  159. moai_adk/templates/.claude/agents/moai/manager-spec.md +809 -0
  160. moai_adk/templates/.claude/agents/moai/manager-strategy.md +780 -0
  161. moai_adk/templates/.claude/agents/moai/manager-tdd.md +784 -0
  162. moai_adk/templates/.claude/agents/moai/mcp-context7.md +458 -0
  163. moai_adk/templates/.claude/agents/moai/mcp-figma.md +1607 -0
  164. moai_adk/templates/.claude/agents/moai/mcp-notion.md +789 -0
  165. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +469 -0
  166. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1032 -0
  167. moai_adk/templates/.claude/commands/moai/0-project.md +1386 -0
  168. moai_adk/templates/.claude/commands/moai/1-plan.md +1427 -0
  169. moai_adk/templates/.claude/commands/moai/2-run.md +943 -0
  170. moai_adk/templates/.claude/commands/moai/3-sync.md +1324 -0
  171. moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
  172. moai_adk/templates/.claude/hooks/__init__.py +8 -0
  173. moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
  174. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
  175. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
  176. moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
  177. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
  178. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
  179. moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
  180. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
  181. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
  182. moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
  183. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
  184. moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
  185. moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
  186. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
  187. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
  188. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
  189. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +1083 -0
  190. moai_adk/templates/.claude/output-styles/moai/r2d2.md +560 -0
  191. moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
  192. moai_adk/templates/.claude/settings.json +172 -0
  193. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +307 -0
  194. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
  195. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
  196. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
  197. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +249 -0
  198. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +406 -0
  199. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
  200. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
  201. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
  202. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
  203. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
  204. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +328 -0
  205. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +320 -0
  206. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
  207. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
  208. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +323 -0
  209. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
  210. moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
  211. moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
  212. moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
  213. moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
  214. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
  215. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +497 -0
  216. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
  217. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
  218. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +455 -0
  219. moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
  220. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
  221. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
  222. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
  223. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
  224. moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
  225. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +492 -0
  226. moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
  227. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
  228. moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
  229. moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
  230. moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
  231. moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
  232. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
  233. moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
  234. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +202 -0
  235. moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
  236. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
  237. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
  238. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
  239. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
  240. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
  241. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
  242. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
  243. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
  244. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
  245. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
  246. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
  247. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
  248. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
  249. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
  250. moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
  251. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +441 -0
  252. moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
  253. moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
  254. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +420 -0
  255. moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
  256. moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
  257. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +359 -0
  258. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
  259. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
  260. moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
  261. moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
  262. moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
  263. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
  264. moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
  265. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
  266. moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
  267. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +315 -0
  268. moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
  269. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
  270. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
  271. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
  272. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
  273. moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
  274. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +364 -0
  275. moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
  276. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
  277. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
  278. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
  279. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
  280. moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
  281. moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
  282. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
  283. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
  284. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +649 -0
  285. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +478 -0
  286. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +612 -0
  287. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +477 -0
  288. moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
  289. moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
  290. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +376 -0
  291. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
  292. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
  293. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +385 -0
  294. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
  295. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
  296. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +382 -0
  297. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
  298. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
  299. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +644 -0
  300. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +481 -0
  301. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
  302. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
  303. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +579 -0
  304. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +687 -0
  305. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +372 -0
  306. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
  307. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
  308. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +497 -0
  309. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
  310. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
  311. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +497 -0
  312. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
  313. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
  314. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +368 -0
  315. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
  316. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
  317. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +300 -0
  318. moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
  319. moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
  320. moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
  321. moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
  322. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +319 -0
  323. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
  324. moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
  325. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
  326. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
  327. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
  328. moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
  329. moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
  330. moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
  331. moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
  332. moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
  333. moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
  334. moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
  335. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +372 -0
  336. moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
  337. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
  338. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
  339. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
  340. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
  341. moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
  342. moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +402 -0
  343. moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +607 -0
  344. moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +300 -0
  345. moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +537 -0
  346. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +291 -0
  347. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +390 -0
  348. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +398 -0
  349. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +379 -0
  350. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +358 -0
  351. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +467 -0
  352. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +377 -0
  353. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +466 -0
  354. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +482 -0
  355. moai_adk/templates/.claude/skills/moai-plugin-builder/SKILL.md +474 -0
  356. moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
  357. moai_adk/templates/.claude/skills/moai-plugin-builder/migration.md +341 -0
  358. moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +463 -0
  359. moai_adk/templates/.claude/skills/moai-plugin-builder/validation.md +373 -0
  360. moai_adk/templates/.claude/skills/moai-security-auth0/SKILL.md +275 -0
  361. moai_adk/templates/.claude/skills/moai-security-auth0/modules/adaptive-mfa.md +233 -0
  362. moai_adk/templates/.claude/skills/moai-security-auth0/modules/akamai-integration.md +215 -0
  363. moai_adk/templates/.claude/skills/moai-security-auth0/modules/application-credentials.md +280 -0
  364. moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-log-events.md +225 -0
  365. moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-overview.md +140 -0
  366. moai_adk/templates/.claude/skills/moai-security-auth0/modules/bot-detection.md +144 -0
  367. moai_adk/templates/.claude/skills/moai-security-auth0/modules/breached-password-detection.md +187 -0
  368. moai_adk/templates/.claude/skills/moai-security-auth0/modules/brute-force-protection.md +189 -0
  369. moai_adk/templates/.claude/skills/moai-security-auth0/modules/certifications.md +282 -0
  370. moai_adk/templates/.claude/skills/moai-security-auth0/modules/compliance-overview.md +263 -0
  371. moai_adk/templates/.claude/skills/moai-security-auth0/modules/continuous-session-protection.md +307 -0
  372. moai_adk/templates/.claude/skills/moai-security-auth0/modules/customize-mfa.md +178 -0
  373. moai_adk/templates/.claude/skills/moai-security-auth0/modules/dpop-implementation.md +283 -0
  374. moai_adk/templates/.claude/skills/moai-security-auth0/modules/fapi-implementation.md +259 -0
  375. moai_adk/templates/.claude/skills/moai-security-auth0/modules/gdpr-compliance.md +313 -0
  376. moai_adk/templates/.claude/skills/moai-security-auth0/modules/guardian-configuration.md +269 -0
  377. moai_adk/templates/.claude/skills/moai-security-auth0/modules/highly-regulated-identity.md +272 -0
  378. moai_adk/templates/.claude/skills/moai-security-auth0/modules/jwt-fundamentals.md +248 -0
  379. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mdl-verification.md +211 -0
  380. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-api-management.md +278 -0
  381. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-factors.md +226 -0
  382. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-overview.md +174 -0
  383. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mtls-sender-constraining.md +316 -0
  384. moai_adk/templates/.claude/skills/moai-security-auth0/modules/ropg-flow-mfa.md +217 -0
  385. moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-center.md +325 -0
  386. moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-guidance.md +277 -0
  387. moai_adk/templates/.claude/skills/moai-security-auth0/modules/state-parameters.md +178 -0
  388. moai_adk/templates/.claude/skills/moai-security-auth0/modules/step-up-authentication.md +251 -0
  389. moai_adk/templates/.claude/skills/moai-security-auth0/modules/suspicious-ip-throttling.md +240 -0
  390. moai_adk/templates/.claude/skills/moai-security-auth0/modules/tenant-access-control.md +180 -0
  391. moai_adk/templates/.claude/skills/moai-security-auth0/modules/webauthn-fido.md +235 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +449 -0
  393. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
  396. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
  397. moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
  398. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +390 -0
  399. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
  404. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +175 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
  407. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
  409. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
  410. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
  416. moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
  417. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
  418. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1434 -0
  419. moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
  420. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
  421. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
  422. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +92 -0
  423. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
  424. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
  425. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
  426. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
  427. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
  428. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
  429. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +534 -0
  430. moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
  431. moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
  432. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +377 -0
  433. moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
  434. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
  435. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
  436. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
  437. moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
  438. moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
  439. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +456 -0
  440. moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
  441. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
  442. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
  443. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
  444. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
  445. moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
  446. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
  447. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
  448. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
  449. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
  450. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
  451. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
  452. moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
  453. moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
  454. moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
  455. moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
  456. moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
  457. moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
  458. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +411 -0
  459. moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
  460. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
  461. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
  462. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
  463. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
  464. moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
  465. moai_adk/templates/.git-hooks/pre-commit +128 -0
  466. moai_adk/templates/.git-hooks/pre-push +365 -0
  467. moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
  468. moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
  469. moai_adk/templates/.github/workflows/spec-issue-sync.yml +337 -0
  470. moai_adk/templates/.gitignore +222 -0
  471. moai_adk/templates/.mcp.json +13 -0
  472. moai_adk/templates/.moai/config/config.yaml +58 -0
  473. moai_adk/templates/.moai/config/questions/_schema.yaml +174 -0
  474. moai_adk/templates/.moai/config/questions/tab0-init.yaml +251 -0
  475. moai_adk/templates/.moai/config/questions/tab1-user.yaml +107 -0
  476. moai_adk/templates/.moai/config/questions/tab2-project.yaml +79 -0
  477. moai_adk/templates/.moai/config/questions/tab3-git.yaml +632 -0
  478. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +182 -0
  479. moai_adk/templates/.moai/config/questions/tab5-system.yaml +96 -0
  480. moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -0
  481. moai_adk/templates/.moai/config/sections/language.yaml +11 -0
  482. moai_adk/templates/.moai/config/sections/project.yaml +13 -0
  483. moai_adk/templates/.moai/config/sections/quality.yaml +17 -0
  484. moai_adk/templates/.moai/config/sections/system.yaml +24 -0
  485. moai_adk/templates/.moai/config/sections/user.yaml +5 -0
  486. moai_adk/templates/.moai/config/statusline-config.yaml +92 -0
  487. moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
  488. moai_adk/templates/CLAUDE.md +642 -0
  489. moai_adk/utils/__init__.py +30 -0
  490. moai_adk/utils/banner.py +38 -0
  491. moai_adk/utils/common.py +294 -0
  492. moai_adk/utils/link_validator.py +241 -0
  493. moai_adk/utils/logger.py +147 -0
  494. moai_adk/utils/safe_file_reader.py +206 -0
  495. moai_adk/utils/timeout.py +160 -0
  496. moai_adk/utils/toon_utils.py +256 -0
  497. moai_adk/version.py +22 -0
  498. moai_adk-0.35.1.dist-info/METADATA +3018 -0
  499. moai_adk-0.35.1.dist-info/RECORD +502 -0
  500. moai_adk-0.35.1.dist-info/WHEEL +4 -0
  501. moai_adk-0.35.1.dist-info/entry_points.txt +3 -0
  502. moai_adk-0.35.1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,676 @@
1
+ """
2
+ TRUST 4 Principles Implementation
3
+
4
+ Comprehensive implementation of TRUST principles for MoAI-ADK:
5
+ - Test First: Comprehensive testing strategy
6
+ - Readable: Code clarity and maintainability
7
+ - Unified: Consistent architecture and patterns
8
+ - Secured: Security best practices and validation
9
+
10
+ Features:
11
+ - Automated principle scoring
12
+ - Validation checklists
13
+ - Quality gate enforcement
14
+ - Enterprise-grade security
15
+ - Complete audit trails
16
+ """
17
+
18
+ import re
19
+ from dataclasses import dataclass, field
20
+ from enum import Enum
21
+ from pathlib import Path
22
+ from typing import Any, Dict, List
23
+
24
+
25
+ class TrustPrinciple(Enum):
26
+ """TRUST 4 principles enumeration"""
27
+
28
+ TEST_FIRST = "test_first"
29
+ READABLE = "readable"
30
+ UNIFIED = "unified"
31
+ SECURED = "secured"
32
+
33
+
34
+ class ComplianceLevel(Enum):
35
+ """Compliance level enumeration"""
36
+
37
+ CRITICAL = "critical"
38
+ HIGH = "high"
39
+ MEDIUM = "medium"
40
+ LOW = "low"
41
+ NONE = "none"
42
+
43
+
44
+ @dataclass
45
+ class PrincipleScore:
46
+ """Individual principle scoring"""
47
+
48
+ principle: TrustPrinciple
49
+ score: float # 0.0 - 100.0
50
+ compliance_level: ComplianceLevel
51
+ issues: List[str] = field(default_factory=list)
52
+ recommendations: List[str] = field(default_factory=list)
53
+ metrics: Dict[str, Any] = field(default_factory=dict)
54
+
55
+
56
+ @dataclass
57
+ class TrustAssessment:
58
+ """Complete TRUST assessment"""
59
+
60
+ principle_scores: Dict[TrustPrinciple, PrincipleScore]
61
+ overall_score: float
62
+ compliance_level: ComplianceLevel
63
+ passed_checks: int
64
+ total_checks: int
65
+ audit_trail: List[Dict[str, Any]] = field(default_factory=list)
66
+ timestamp: str = field(default_factory=lambda: "2025-11-11")
67
+
68
+
69
+ class TrustPrinciplesValidator:
70
+ """TRUST 4 principles validator and analyzer"""
71
+
72
+ def __init__(self):
73
+ self.principle_weights = {
74
+ TrustPrinciple.TEST_FIRST: 0.30,
75
+ TrustPrinciple.READABLE: 0.25,
76
+ TrustPrinciple.UNIFIED: 0.25,
77
+ TrustPrinciple.SECURED: 0.20,
78
+ }
79
+
80
+ # Test First validation patterns
81
+ self.test_patterns = {
82
+ "unit_tests": r"def test_.*\(|class Test.*:",
83
+ "integration_tests": r"@integration_test|test_integration_",
84
+ "coverage_directive": r"# pragma: cover|@pytest\.mark\.cover",
85
+ "assertion_count": r"\bassert\b.*>=|\bshould_\w+\(",
86
+ "test_docstrings": r'def test_\w+.*\n\s*""".*?"""',
87
+ }
88
+
89
+ # Readability validation patterns
90
+ self.readability_patterns = {
91
+ "function_length": r"def \w+\([^)]*\):(.*\n){1,50}",
92
+ "class_length": r"class \w+:",
93
+ "variable_naming": r"\b[a-z_][a-z0-9_]*\b",
94
+ "constant_naming": r"\b[A-Z_][A-Z0-9_]*\b",
95
+ "docstrings": r'def \w+.*\n\s*""".*?"""',
96
+ "type_hints": r": \w+\[?\]?]|: Optional\[|: Dict\[|: List\[",
97
+ }
98
+
99
+ # Unified validation patterns
100
+ self.unified_patterns = {
101
+ "import_structure": r"^(import|from)\s+\w+",
102
+ "naming_convention": r"\b\w+(?:Error|Exception|Manager|Service|Handler|Validator)\b",
103
+ "file_structure": r"^(class|def)\s+",
104
+ "error_handling": r"except\s+\w+:|raise\s+\w+\(",
105
+ "logging_pattern": r"logger\.\w+|logging\.\w+",
106
+ }
107
+
108
+ # Security validation patterns
109
+ self.security_patterns = {
110
+ "sql_injection": r'(cursor\.execute|db\.query)\s*\(\s*["\'][^"\']*%[^"\']*["\']',
111
+ "xss_prevention": r"escape\(|sanitize\(|validate\(",
112
+ "auth_check": r"@login_required|@permission_required|is_authenticated",
113
+ "input_validation": r"re\.match\(|validator\.|form\.is_valid\(\)",
114
+ "secret_management": r"\.env|SECRET_KEY|API_KEY|PASSWORD",
115
+ "https_enforcement": r"https://|SECURE_SSL_REDIRECT|HSTS",
116
+ }
117
+
118
+ # Trackability validation patterns
119
+ self.trackability_patterns = {
120
+ "commit_messages": r"^(feat|fix|docs|style|refactor|test|chop)\(",
121
+ "issue_references": r"#\d+|closes #\d+|fixes #\d+",
122
+ "documentation_links": r"\[.*?\]\(.*?\.md\)",
123
+ "version_tracking": r"v\d+\.\d+\.\d+|\d+\.\d+\.\d+",
124
+ }
125
+
126
+ def validate_test_first(self, project_path: str) -> PrincipleScore:
127
+ """Validate Test First principle"""
128
+ issues = []
129
+ recommendations = []
130
+ metrics = {}
131
+
132
+ try:
133
+ project_dir = Path(project_path)
134
+ python_files = list(project_dir.rglob("*.py"))
135
+
136
+ test_files = [f for f in python_files if f.name.startswith("test_")]
137
+ source_files = [f for f in python_files if not f.name.startswith("test_")]
138
+
139
+ # Test file ratio
140
+ test_ratio = len(test_files) / max(len(source_files), 1)
141
+
142
+ # Analyze test coverage indicators
143
+ total_test_patterns = 0
144
+ found_test_patterns = 0
145
+
146
+ for file_path in python_files:
147
+ try:
148
+ content = file_path.read_text(encoding="utf-8")
149
+
150
+ for pattern_name, pattern in self.test_patterns.items():
151
+ total_test_patterns += 1
152
+ if re.search(pattern, content, re.MULTILINE | re.DOTALL):
153
+ found_test_patterns += 1
154
+ except Exception as e:
155
+ issues.append(f"Error analyzing {file_path}: {str(e)}")
156
+
157
+ pattern_coverage = found_test_patterns / max(total_test_patterns, 1)
158
+
159
+ # Calculate score
160
+ score = min(100, (test_ratio * 30) + (pattern_coverage * 70))
161
+
162
+ metrics = {
163
+ "test_files": len(test_files),
164
+ "source_files": len(source_files),
165
+ "test_ratio": round(test_ratio, 2),
166
+ "pattern_coverage": round(pattern_coverage, 2),
167
+ "total_patterns": total_test_patterns,
168
+ "found_patterns": found_test_patterns,
169
+ }
170
+
171
+ # Generate recommendations
172
+ if test_ratio < 0.5:
173
+ recommendations.append("Increase test file coverage (aim for 1:1 ratio with source files)")
174
+
175
+ if pattern_coverage < 0.7:
176
+ recommendations.append("Add comprehensive test patterns and assertions")
177
+
178
+ if not any("integration" in str(issue) for issue in issues):
179
+ recommendations.append("Add integration tests for critical workflows")
180
+
181
+ # Determine compliance level
182
+ if score >= 90:
183
+ compliance = ComplianceLevel.CRITICAL
184
+ elif score >= 75:
185
+ compliance = ComplianceLevel.HIGH
186
+ elif score >= 60:
187
+ compliance = ComplianceLevel.MEDIUM
188
+ elif score >= 40:
189
+ compliance = ComplianceLevel.LOW
190
+ else:
191
+ compliance = ComplianceLevel.NONE
192
+
193
+ except Exception as e:
194
+ issues.append(f"Error validating Test First principle: {str(e)}")
195
+ score = 0
196
+ compliance = ComplianceLevel.NONE
197
+
198
+ return PrincipleScore(
199
+ principle=TrustPrinciple.TEST_FIRST,
200
+ score=round(score, 2),
201
+ compliance_level=compliance,
202
+ issues=issues,
203
+ recommendations=recommendations,
204
+ metrics=metrics,
205
+ )
206
+
207
+ def validate_readable(self, project_path: str) -> PrincipleScore:
208
+ """Validate Readable principle"""
209
+ issues = []
210
+ recommendations = []
211
+ metrics = {}
212
+
213
+ try:
214
+ project_dir = Path(project_path)
215
+ python_files = list(project_dir.rglob("*.py"))
216
+
217
+ total_functions = 0
218
+ long_functions = 0
219
+ functions_with_docstrings = 0
220
+ functions_with_type_hints = 0
221
+ total_classes = 0
222
+ classes_with_docstrings = 0
223
+
224
+ for file_path in python_files:
225
+ try:
226
+ content = file_path.read_text(encoding="utf-8")
227
+ content.split("\n")
228
+
229
+ # Analyze functions
230
+ function_matches = re.finditer(r"def\s+(\w+)\([^)]*\):", content)
231
+ for match in function_matches:
232
+ total_functions += 1
233
+
234
+ # Count lines in function
235
+ func_start = match.start()
236
+ func_lines = 0
237
+ indent_level = None
238
+
239
+ for i, line in enumerate(content[func_start:].split("\n")[1:], 1):
240
+ if line.strip() == "":
241
+ continue
242
+
243
+ current_indent = len(line) - len(line.lstrip())
244
+ if indent_level is None:
245
+ indent_level = current_indent
246
+ elif current_indent <= indent_level and line.strip():
247
+ break
248
+ func_lines += 1
249
+
250
+ if func_lines > 50:
251
+ long_functions += 1
252
+ issues.append(f"Long function in {file_path.name}: {match.group(1)} ({func_lines} lines)")
253
+
254
+ # Check for docstring
255
+ func_content = content[func_start : func_start + 1000] # Check next 1000 chars
256
+ if '"""' in func_content.split("\n")[1:5]:
257
+ functions_with_docstrings += 1
258
+
259
+ # Check for type hints
260
+ if "->" in match.group(0) or ":" in match.group(0):
261
+ functions_with_type_hints += 1
262
+
263
+ # Analyze classes
264
+ class_matches = re.finditer(r"class\s+(\w+)[\(\:]:", content)
265
+ for match in class_matches:
266
+ total_classes += 1
267
+
268
+ # Check for docstring
269
+ class_start = match.start()
270
+ class_content = content[class_start : class_start + 500] # Check next 500 chars
271
+ if '"""' in class_content.split("\n")[1:3]:
272
+ classes_with_docstrings += 1
273
+
274
+ except Exception as e:
275
+ issues.append(f"Error analyzing {file_path}: {str(e)}")
276
+
277
+ # Calculate scores
278
+ docstring_ratio = functions_with_docstrings / max(total_functions, 1)
279
+ type_hint_ratio = functions_with_type_hints / max(total_functions, 1)
280
+ long_function_ratio = 1 - (long_functions / max(total_functions, 1))
281
+ class_docstring_ratio = classes_with_docstrings / max(total_classes, 1)
282
+
283
+ score = docstring_ratio * 30 + type_hint_ratio * 25 + long_function_ratio * 25 + class_docstring_ratio * 20
284
+
285
+ metrics = {
286
+ "total_functions": total_functions,
287
+ "functions_with_docstrings": functions_with_docstrings,
288
+ "functions_with_type_hints": functions_with_type_hints,
289
+ "long_functions": long_functions,
290
+ "total_classes": total_classes,
291
+ "classes_with_docstrings": classes_with_docstrings,
292
+ "docstring_ratio": round(docstring_ratio, 2),
293
+ "type_hint_ratio": round(type_hint_ratio, 2),
294
+ }
295
+
296
+ # Generate recommendations
297
+ if docstring_ratio < 0.8:
298
+ recommendations.append("Add docstrings to all functions and methods")
299
+
300
+ if type_hint_ratio < 0.8:
301
+ recommendations.append("Add type hints for better code clarity")
302
+
303
+ if long_function_ratio < 0.9:
304
+ recommendations.append("Refactor long functions (keep under 50 lines)")
305
+
306
+ # Determine compliance level
307
+ if score >= 90:
308
+ compliance = ComplianceLevel.CRITICAL
309
+ elif score >= 80:
310
+ compliance = ComplianceLevel.HIGH
311
+ elif score >= 70:
312
+ compliance = ComplianceLevel.MEDIUM
313
+ elif score >= 60:
314
+ compliance = ComplianceLevel.LOW
315
+ else:
316
+ compliance = ComplianceLevel.NONE
317
+
318
+ except Exception as e:
319
+ issues.append(f"Error validating Readable principle: {str(e)}")
320
+ score = 0
321
+ compliance = ComplianceLevel.NONE
322
+
323
+ return PrincipleScore(
324
+ principle=TrustPrinciple.READABLE,
325
+ score=round(score, 2),
326
+ compliance_level=compliance,
327
+ issues=issues,
328
+ recommendations=recommendations,
329
+ metrics=metrics,
330
+ )
331
+
332
+ def validate_unified(self, project_path: str) -> PrincipleScore:
333
+ """Validate Unified principle"""
334
+ issues = []
335
+ recommendations = []
336
+ metrics = {}
337
+
338
+ try:
339
+ project_dir = Path(project_path)
340
+ python_files = list(project_dir.rglob("*.py"))
341
+
342
+ unified_patterns_found = 0
343
+ total_patterns = len(self.unified_patterns)
344
+ file_count = len(python_files)
345
+
346
+ naming_violations = 0
347
+ error_handling_count = 0
348
+ logging_count = 0
349
+
350
+ for file_path in python_files:
351
+ try:
352
+ content = file_path.read_text(encoding="utf-8")
353
+
354
+ # Check unified patterns
355
+ for pattern_name, pattern in self.unified_patterns.items():
356
+ if re.search(pattern, content, re.MULTILINE):
357
+ unified_patterns_found += 1
358
+
359
+ # Check naming violations
360
+ if re.search(r"class\s+[a-z]", content): # Class starting with lowercase
361
+ naming_violations += 1
362
+
363
+ # Count error handling
364
+ error_matches = re.findall(r"except\s+\w+:", content)
365
+ error_handling_count += len(error_matches)
366
+
367
+ # Count logging usage
368
+ logging_matches = re.findall(r"logger\.\w+|logging\.\w+", content)
369
+ logging_count += len(logging_matches)
370
+
371
+ except Exception as e:
372
+ issues.append(f"Error analyzing {file_path}: {str(e)}")
373
+
374
+ # Calculate scores
375
+ pattern_coverage = unified_patterns_found / (total_patterns * file_count)
376
+ error_handling_ratio = error_handling_count / max(file_count, 1)
377
+ logging_ratio = logging_count / max(file_count, 1)
378
+ naming_quality = 1 - (naming_violations / max(file_count, 1))
379
+
380
+ score = pattern_coverage * 40 + error_handling_ratio * 25 + logging_ratio * 20 + naming_quality * 15
381
+
382
+ metrics = {
383
+ "files_analyzed": file_count,
384
+ "unified_patterns_found": unified_patterns_found,
385
+ "pattern_coverage": round(pattern_coverage, 2),
386
+ "error_handling_count": error_handling_count,
387
+ "logging_count": logging_count,
388
+ "naming_violations": naming_violations,
389
+ }
390
+
391
+ # Generate recommendations
392
+ if pattern_coverage < 0.7:
393
+ recommendations.append("Improve code structure consistency across files")
394
+
395
+ if error_handling_count < file_count * 0.5:
396
+ recommendations.append("Add comprehensive error handling")
397
+
398
+ if logging_count < file_count * 0.3:
399
+ recommendations.append("Add proper logging for better debugging")
400
+
401
+ # Determine compliance level
402
+ if score >= 85:
403
+ compliance = ComplianceLevel.CRITICAL
404
+ elif score >= 75:
405
+ compliance = ComplianceLevel.HIGH
406
+ elif score >= 65:
407
+ compliance = ComplianceLevel.MEDIUM
408
+ elif score >= 55:
409
+ compliance = ComplianceLevel.LOW
410
+ else:
411
+ compliance = ComplianceLevel.NONE
412
+
413
+ except Exception as e:
414
+ issues.append(f"Error validating Unified principle: {str(e)}")
415
+ score = 0
416
+ compliance = ComplianceLevel.NONE
417
+
418
+ return PrincipleScore(
419
+ principle=TrustPrinciple.UNIFIED,
420
+ score=round(score, 2),
421
+ compliance_level=compliance,
422
+ issues=issues,
423
+ recommendations=recommendations,
424
+ metrics=metrics,
425
+ )
426
+
427
+ def validate_secured(self, project_path: str) -> PrincipleScore:
428
+ """Validate Secured principle"""
429
+ issues = []
430
+ recommendations = []
431
+ metrics = {}
432
+
433
+ try:
434
+ project_dir = Path(project_path)
435
+ python_files = list(project_dir.rglob("*.py"))
436
+
437
+ security_issues = []
438
+ security_patterns_found = 0
439
+ high_risk_patterns = 0
440
+
441
+ for file_path in python_files:
442
+ try:
443
+ content = file_path.read_text(encoding="utf-8")
444
+
445
+ # Check for security patterns
446
+ for pattern_name, pattern in self.security_patterns.items():
447
+ matches = re.findall(pattern, content, re.MULTILINE | re.DOTALL)
448
+ if matches:
449
+ security_patterns_found += len(matches)
450
+
451
+ if pattern_name in ["sql_injection", "secret_management"]:
452
+ high_risk_patterns += len(matches)
453
+ for match in matches:
454
+ security_issues.append(f"High-risk pattern in {file_path.name}: {pattern_name}")
455
+
456
+ # Check for hardcoded secrets (basic pattern)
457
+ secret_patterns = [
458
+ r'password\s*=\s*["\'][^"\']+["\']',
459
+ r'api_key\s*=\s*["\'][^"\']+["\']',
460
+ r'secret\s*=\s*["\'][^"\']+["\']',
461
+ r'token\s*=\s*["\'][^"\']+["\']',
462
+ ]
463
+
464
+ for pattern in secret_patterns:
465
+ if re.search(pattern, content, re.IGNORECASE):
466
+ security_issues.append(f"Potential hardcoded secret in {file_path.name}")
467
+ high_risk_patterns += 1
468
+
469
+ except Exception as e:
470
+ issues.append(f"Error analyzing {file_path}: {str(e)}")
471
+
472
+ # Calculate security score
473
+ if high_risk_patterns > 0:
474
+ base_score = max(0, 100 - (high_risk_patterns * 20))
475
+ else:
476
+ base_score = 100
477
+
478
+ # Bonus points for security best practices
479
+ security_bonus = 0
480
+ if security_patterns_found > 0:
481
+ security_bonus = min(20, security_patterns_found * 2)
482
+
483
+ score = min(100, base_score + security_bonus)
484
+
485
+ metrics = {
486
+ "security_patterns_found": security_patterns_found,
487
+ "high_risk_patterns": high_risk_patterns,
488
+ "security_issues": len(security_issues),
489
+ "files_analyzed": len(python_files),
490
+ }
491
+
492
+ # Generate recommendations
493
+ if high_risk_patterns > 0:
494
+ recommendations.append("Address high-risk security patterns immediately")
495
+ issues.extend(security_issues[:5]) # Add first 5 issues
496
+
497
+ if security_patterns_found < 10:
498
+ recommendations.append("Implement more security validation patterns")
499
+
500
+ recommendations.extend(
501
+ [
502
+ "Use environment variables for secrets",
503
+ "Implement input validation and sanitization",
504
+ "Add authentication and authorization checks",
505
+ ]
506
+ )
507
+
508
+ # Determine compliance level
509
+ if score >= 95:
510
+ compliance = ComplianceLevel.CRITICAL
511
+ elif score >= 85:
512
+ compliance = ComplianceLevel.HIGH
513
+ elif score >= 75:
514
+ compliance = ComplianceLevel.MEDIUM
515
+ elif score >= 60:
516
+ compliance = ComplianceLevel.LOW
517
+ else:
518
+ compliance = ComplianceLevel.NONE
519
+
520
+ except Exception as e:
521
+ issues.append(f"Error validating Secured principle: {str(e)}")
522
+ score = 0
523
+ compliance = ComplianceLevel.NONE
524
+
525
+ return PrincipleScore(
526
+ principle=TrustPrinciple.SECURED,
527
+ score=round(score, 2),
528
+ compliance_level=compliance,
529
+ issues=issues,
530
+ recommendations=recommendations,
531
+ metrics=metrics,
532
+ )
533
+
534
+ def assess_project(self, project_path: str) -> TrustAssessment:
535
+ """Perform complete TRUST assessment"""
536
+ principle_scores = {}
537
+
538
+ # Validate each principle
539
+ principle_scores[TrustPrinciple.TEST_FIRST] = self.validate_test_first(project_path)
540
+ principle_scores[TrustPrinciple.READABLE] = self.validate_readable(project_path)
541
+ principle_scores[TrustPrinciple.UNIFIED] = self.validate_unified(project_path)
542
+ principle_scores[TrustPrinciple.SECURED] = self.validate_secured(project_path)
543
+
544
+ # Calculate overall score
545
+ overall_score = 0.0
546
+ for principle, score in principle_scores.items():
547
+ weight = self.principle_weights[principle]
548
+ overall_score += score.score * weight
549
+
550
+ # Calculate passed checks
551
+ total_checks = sum(len(score.metrics) for score in principle_scores.values())
552
+ passed_checks = sum(
553
+ sum(
554
+ 1
555
+ for metric_value in score.metrics.values()
556
+ if isinstance(metric_value, (int, float)) and metric_value > 0
557
+ )
558
+ for score in principle_scores.values()
559
+ )
560
+
561
+ # Determine overall compliance level
562
+ score_levels = [score.compliance_level for score in principle_scores.values()]
563
+ if all(level == ComplianceLevel.CRITICAL for level in score_levels):
564
+ overall_compliance = ComplianceLevel.CRITICAL
565
+ elif all(level in [ComplianceLevel.CRITICAL, ComplianceLevel.HIGH] for level in score_levels):
566
+ overall_compliance = ComplianceLevel.HIGH
567
+ elif all(
568
+ level in [ComplianceLevel.CRITICAL, ComplianceLevel.HIGH, ComplianceLevel.MEDIUM] for level in score_levels
569
+ ):
570
+ overall_compliance = ComplianceLevel.MEDIUM
571
+ elif all(level != ComplianceLevel.NONE for level in score_levels):
572
+ overall_compliance = ComplianceLevel.LOW
573
+ else:
574
+ overall_compliance = ComplianceLevel.NONE
575
+
576
+ # Create audit trail
577
+ audit_trail = []
578
+ for principle, score in principle_scores.items():
579
+ audit_trail.append(
580
+ {
581
+ "principle": principle.value,
582
+ "score": score.score,
583
+ "compliance_level": score.compliance_level.value,
584
+ "issues_count": len(score.issues),
585
+ "recommendations_count": len(score.recommendations),
586
+ "metrics": score.metrics,
587
+ }
588
+ )
589
+
590
+ return TrustAssessment(
591
+ principle_scores=principle_scores,
592
+ overall_score=round(overall_score, 2),
593
+ compliance_level=overall_compliance,
594
+ passed_checks=passed_checks,
595
+ total_checks=total_checks,
596
+ audit_trail=audit_trail,
597
+ )
598
+
599
+ def generate_report(self, assessment: TrustAssessment) -> str:
600
+ """Generate comprehensive TRUST assessment report"""
601
+ report = []
602
+ report.append("# TRUST 4 Principles Assessment Report")
603
+ report.append(f"Generated: {assessment.timestamp}")
604
+ report.append(f"Overall Score: {assessment.overall_score}/100")
605
+ report.append(f"Compliance Level: {assessment.compliance_level.value.upper()}")
606
+ report.append(f"Passed Checks: {assessment.passed_checks}/{assessment.total_checks}")
607
+ report.append("")
608
+
609
+ # Principle breakdown
610
+ report.append("## Principle Breakdown")
611
+ report.append("")
612
+
613
+ for principle, score in assessment.principle_scores.items():
614
+ report.append(f"### {principle.value.replace('_', ' ').title()}")
615
+ report.append(f"**Score**: {score.score}/100")
616
+ report.append(f"**Compliance**: {score.compliance_level.value.upper()}")
617
+
618
+ if score.issues:
619
+ report.append("**Issues**:")
620
+ for issue in score.issues[:5]: # Show first 5 issues
621
+ report.append(f"- {issue}")
622
+
623
+ if score.recommendations:
624
+ report.append("**Recommendations**:")
625
+ for rec in score.recommendations[:5]: # Show first 5 recommendations
626
+ report.append(f"- {rec}")
627
+
628
+ if score.metrics:
629
+ report.append("**Metrics**:")
630
+ for key, value in score.metrics.items():
631
+ report.append(f"- {key}: {value}")
632
+
633
+ report.append("")
634
+
635
+ # Summary and next steps
636
+ report.append("## Summary")
637
+ report.append("")
638
+
639
+ if assessment.overall_score >= 80:
640
+ report.append("✅ **EXCELLENT**: Project meets TRUST principles at a high level")
641
+ elif assessment.overall_score >= 70:
642
+ report.append("🟡 **GOOD**: Project mostly follows TRUST principles with some areas for improvement")
643
+ elif assessment.overall_score >= 60:
644
+ report.append("🟠 **NEEDS IMPROVEMENT**: Project has significant gaps in TRUST principles")
645
+ else:
646
+ report.append("❌ **CRITICAL**: Project requires immediate attention to TRUST principles")
647
+
648
+ report.append("")
649
+ report.append("## Next Steps")
650
+ report.append("")
651
+
652
+ # Collect all recommendations
653
+ all_recommendations = []
654
+ for score in assessment.principle_scores.values():
655
+ all_recommendations.extend(score.recommendations)
656
+
657
+ if all_recommendations:
658
+ report.append("### Priority Recommendations")
659
+ for i, rec in enumerate(set(all_recommendations[:10]), 1): # Top 10 unique recommendations
660
+ report.append(f"{i}. {rec}")
661
+
662
+ return "\n".join(report)
663
+
664
+
665
+ # Convenience functions for common use cases
666
+ def validate_project_trust(project_path: str = ".") -> TrustAssessment:
667
+ """Quick TRUST validation for a project"""
668
+ validator = TrustPrinciplesValidator()
669
+ return validator.assess_project(project_path)
670
+
671
+
672
+ def generate_trust_report(project_path: str = ".") -> str:
673
+ """Generate TRUST assessment report"""
674
+ validator = TrustPrinciplesValidator()
675
+ assessment = validator.assess_project(project_path)
676
+ return validator.generate_report(assessment)