moai-adk 0.15.1__py3-none-any.whl → 0.25.4__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 (417) hide show
  1. moai_adk/__init__.py +1 -2
  2. moai_adk/__main__.py +85 -2
  3. moai_adk/cli/__init__.py +0 -1
  4. moai_adk/cli/commands/__init__.py +0 -1
  5. moai_adk/cli/commands/analyze.py +127 -0
  6. moai_adk/cli/commands/backup.py +5 -3
  7. moai_adk/cli/commands/doctor.py +35 -11
  8. moai_adk/cli/commands/improve_user_experience.py +348 -0
  9. moai_adk/cli/commands/init.py +150 -23
  10. moai_adk/cli/commands/language.py +269 -0
  11. moai_adk/cli/commands/migrate.py +158 -0
  12. moai_adk/cli/commands/status.py +13 -12
  13. moai_adk/cli/commands/update.py +364 -60
  14. moai_adk/cli/commands/validate_links.py +118 -0
  15. moai_adk/cli/main.py +3 -2
  16. moai_adk/cli/prompts/init_prompts.py +79 -82
  17. moai_adk/core/__init__.py +0 -1
  18. moai_adk/core/analysis/__init__.py +9 -0
  19. moai_adk/core/analysis/session_analyzer.py +439 -0
  20. moai_adk/core/claude_integration.py +421 -0
  21. moai_adk/core/command_helpers.py +270 -0
  22. moai_adk/core/config/__init__.py +6 -0
  23. moai_adk/core/config/auto_spec_config.py +346 -0
  24. moai_adk/core/config/migration.py +133 -12
  25. moai_adk/core/context_manager.py +279 -0
  26. moai_adk/core/diagnostics/slash_commands.py +0 -1
  27. moai_adk/core/error_recovery_system.py +1289 -0
  28. moai_adk/core/git/__init__.py +0 -1
  29. moai_adk/core/git/branch.py +0 -1
  30. moai_adk/core/git/branch_manager.py +4 -4
  31. moai_adk/core/git/checkpoint.py +1 -5
  32. moai_adk/core/git/commit.py +0 -1
  33. moai_adk/core/git/event_detector.py +3 -5
  34. moai_adk/core/git/manager.py +0 -1
  35. moai_adk/core/hooks/post_tool_auto_spec_completion.py +925 -0
  36. moai_adk/core/integration/__init__.py +22 -0
  37. moai_adk/core/integration/engine.py +169 -0
  38. moai_adk/core/integration/integration_tester.py +225 -0
  39. moai_adk/core/integration/models.py +88 -0
  40. moai_adk/core/integration/utils.py +211 -0
  41. moai_adk/core/issue_creator.py +28 -18
  42. moai_adk/core/language_config.py +202 -0
  43. moai_adk/core/language_validator.py +556 -0
  44. moai_adk/core/mcp/setup.py +113 -0
  45. moai_adk/core/migration/__init__.py +18 -0
  46. moai_adk/core/migration/backup_manager.py +208 -0
  47. moai_adk/core/migration/file_migrator.py +218 -0
  48. moai_adk/core/migration/version_detector.py +143 -0
  49. moai_adk/core/migration/version_migrator.py +228 -0
  50. moai_adk/core/performance/__init__.py +6 -0
  51. moai_adk/core/performance/cache_system.py +318 -0
  52. moai_adk/core/performance/parallel_processor.py +116 -0
  53. moai_adk/core/project/__init__.py +0 -1
  54. moai_adk/core/project/backup_utils.py +2 -7
  55. moai_adk/core/project/checker.py +3 -3
  56. moai_adk/core/project/detector.py +20 -40
  57. moai_adk/core/project/initializer.py +42 -17
  58. moai_adk/core/project/phase_executor.py +415 -58
  59. moai_adk/core/project/validator.py +6 -25
  60. moai_adk/core/quality/__init__.py +1 -1
  61. moai_adk/core/quality/trust_checker.py +64 -110
  62. moai_adk/core/quality/validators/__init__.py +1 -1
  63. moai_adk/core/quality/validators/base_validator.py +1 -1
  64. moai_adk/core/rollback_manager.py +993 -0
  65. moai_adk/core/session_manager.py +667 -0
  66. moai_adk/core/spec/confidence_scoring.py +749 -0
  67. moai_adk/core/spec/ears_template_engine.py +1182 -0
  68. moai_adk/core/spec/quality_validator.py +721 -0
  69. moai_adk/core/spec_status_manager.py +488 -0
  70. moai_adk/core/template/__init__.py +0 -1
  71. moai_adk/core/template/backup.py +41 -1
  72. moai_adk/core/template/config.py +11 -12
  73. moai_adk/core/template/languages.py +0 -1
  74. moai_adk/core/template/merger.py +79 -22
  75. moai_adk/core/template/processor.py +614 -40
  76. moai_adk/core/template_engine.py +36 -27
  77. moai_adk/foundation/git/commit_templates.py +565 -0
  78. moai_adk/foundation/trust/trust_principles.py +725 -0
  79. moai_adk/foundation/trust/validation_checklist.py +1678 -0
  80. moai_adk/statusline/__init__.py +38 -0
  81. moai_adk/statusline/alfred_detector.py +107 -0
  82. moai_adk/statusline/config.py +364 -0
  83. moai_adk/statusline/enhanced_output_style_detector.py +364 -0
  84. moai_adk/statusline/git_collector.py +190 -0
  85. moai_adk/statusline/main.py +228 -0
  86. moai_adk/statusline/metrics_tracker.py +78 -0
  87. moai_adk/statusline/renderer.py +327 -0
  88. moai_adk/statusline/update_checker.py +135 -0
  89. moai_adk/statusline/version_reader.py +647 -0
  90. moai_adk/templates/.git-hooks/pre-commit +66 -0
  91. moai_adk/templates/.git-hooks/pre-push +116 -4
  92. moai_adk/templates/.github/workflows/moai-gitflow.yml +1 -7
  93. moai_adk/templates/.github/workflows/spec-issue-sync.yml +0 -1
  94. moai_adk/templates/.gitignore +44 -0
  95. moai_adk/templates/.mcp.json +22 -0
  96. moai_adk/templates/CLAUDE.md +450 -1071
  97. moai_adk/utils/__init__.py +0 -1
  98. moai_adk/utils/banner.py +0 -1
  99. moai_adk/utils/common.py +308 -0
  100. moai_adk/utils/link_validator.py +249 -0
  101. moai_adk/utils/logger.py +4 -9
  102. moai_adk/utils/safe_file_reader.py +210 -0
  103. moai_adk/utils/user_experience.py +531 -0
  104. moai_adk-0.25.4.dist-info/METADATA +2279 -0
  105. moai_adk-0.25.4.dist-info/RECORD +112 -0
  106. moai_adk/core/tags/__init__.py +0 -86
  107. moai_adk/core/tags/ci_validator.py +0 -463
  108. moai_adk/core/tags/cli.py +0 -283
  109. moai_adk/core/tags/generator.py +0 -109
  110. moai_adk/core/tags/inserter.py +0 -99
  111. moai_adk/core/tags/mapper.py +0 -126
  112. moai_adk/core/tags/parser.py +0 -76
  113. moai_adk/core/tags/pre_commit_validator.py +0 -393
  114. moai_adk/core/tags/reporter.py +0 -956
  115. moai_adk/core/tags/tags.py +0 -149
  116. moai_adk/core/tags/validator.py +0 -897
  117. moai_adk/templates/.claude/agents/alfred/backend-expert.md +0 -319
  118. moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -316
  119. moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -208
  120. moai_adk/templates/.claude/agents/alfred/devops-expert.md +0 -464
  121. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -214
  122. moai_adk/templates/.claude/agents/alfred/frontend-expert.md +0 -357
  123. moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -406
  124. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -423
  125. moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -312
  126. moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -343
  127. moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -865
  128. moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -426
  129. moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -361
  130. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -428
  131. moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -375
  132. moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +0 -571
  133. moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1854
  134. moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -880
  135. moai_adk/templates/.claude/commands/alfred/2-run.md +0 -793
  136. moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -1084
  137. moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -149
  138. moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -748
  139. moai_adk/templates/.claude/hooks/alfred/core/timeout.py +0 -136
  140. moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +0 -108
  141. moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +0 -198
  142. moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +0 -29
  143. moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +0 -94
  144. moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +0 -100
  145. moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +0 -94
  146. moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +0 -94
  147. moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +0 -170
  148. moai_adk/templates/.claude/hooks/alfred/shared/core/checkpoint.py +0 -271
  149. moai_adk/templates/.claude/hooks/alfred/shared/core/context.py +0 -67
  150. moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +0 -749
  151. moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +0 -230
  152. moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +0 -198
  153. moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +0 -21
  154. moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +0 -154
  155. moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +0 -174
  156. moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +0 -87
  157. moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +0 -61
  158. moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +0 -112
  159. moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +0 -1
  160. moai_adk/templates/.claude/hooks/alfred/utils/timeout.py +0 -161
  161. moai_adk/templates/.claude/settings.json +0 -144
  162. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +0 -70
  163. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +0 -62
  164. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +0 -242
  165. moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +0 -56
  166. moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +0 -28
  167. moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +0 -444
  168. moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +0 -62
  169. moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +0 -28
  170. moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +0 -405
  171. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +0 -51
  172. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +0 -355
  173. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +0 -239
  174. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
  175. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
  176. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
  177. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +0 -323
  178. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +0 -286
  179. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +0 -126
  180. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
  181. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
  182. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
  183. moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/SKILL.md +0 -74
  184. moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/examples.md +0 -4
  185. moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/reference.md +0 -269
  186. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
  187. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
  188. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
  189. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +0 -19
  190. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +0 -4
  191. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +0 -150
  192. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
  193. moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
  194. moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
  195. moai_adk/templates/.claude/skills/moai-alfred-persona-roles/SKILL.md +0 -198
  196. moai_adk/templates/.claude/skills/moai-alfred-persona-roles/examples.md +0 -431
  197. moai_adk/templates/.claude/skills/moai-alfred-persona-roles/reference.md +0 -141
  198. moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +0 -89
  199. moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +0 -122
  200. moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +0 -369
  201. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +0 -508
  202. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +0 -481
  203. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +0 -100
  204. moai_adk/templates/.claude/skills/moai-alfred-reporting/SKILL.md +0 -273
  205. moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +0 -77
  206. moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +0 -265
  207. moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +0 -539
  208. moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +0 -19
  209. moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +0 -4
  210. moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +0 -84
  211. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +0 -137
  212. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +0 -219
  213. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +0 -161
  214. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +0 -541
  215. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +0 -622
  216. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/SKILL.md +0 -115
  217. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/examples.md +0 -4
  218. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/reference.md +0 -348
  219. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
  220. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
  221. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
  222. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
  223. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
  224. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
  225. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +0 -19
  226. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +0 -4
  227. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +0 -211
  228. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
  229. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
  230. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
  231. moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +0 -288
  232. moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
  233. moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
  234. moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
  235. moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
  236. moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
  237. moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
  238. moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
  239. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
  240. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
  241. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
  242. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
  243. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
  244. moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
  245. moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
  246. moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
  247. moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
  248. moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/SKILL.md +0 -19
  249. moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/examples.md +0 -4
  250. moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/reference.md +0 -218
  251. moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +0 -482
  252. moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +0 -278
  253. moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
  254. moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +0 -477
  255. moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
  256. moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
  257. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
  258. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
  259. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +0 -271
  260. moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
  261. moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +0 -583
  262. moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +0 -526
  263. moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +0 -465
  264. moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +0 -328
  265. moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +0 -312
  266. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
  267. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +0 -285
  268. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +0 -278
  269. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +0 -303
  270. moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
  271. moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
  272. moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +0 -802
  273. moai_adk/templates/.claude/skills/moai-design-systems/examples.md +0 -1238
  274. moai_adk/templates/.claude/skills/moai-design-systems/reference.md +0 -673
  275. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -290
  276. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -1633
  277. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -660
  278. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
  279. moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
  280. moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
  281. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
  282. moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
  283. moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
  284. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -123
  285. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -29
  286. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -30
  287. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
  288. moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
  289. moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
  290. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -128
  291. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -29
  292. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -31
  293. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
  294. moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
  295. moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
  296. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
  297. moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
  298. moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
  299. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
  300. moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
  301. moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
  302. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
  303. moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
  304. moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
  305. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
  306. moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
  307. moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
  308. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
  309. moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
  310. moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
  311. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
  312. moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
  313. moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
  314. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
  315. moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
  316. moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
  317. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -116
  318. moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
  319. moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
  320. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
  321. moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
  322. moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
  323. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
  324. moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
  325. moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
  326. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
  327. moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
  328. moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
  329. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
  330. moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
  331. moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
  332. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
  333. moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
  334. moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
  335. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
  336. moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
  337. moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
  338. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -124
  339. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
  340. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
  341. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -123
  342. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
  343. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
  344. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
  345. moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
  346. moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
  347. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -127
  348. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -29
  349. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -31
  350. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -126
  351. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -29
  352. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -31
  353. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
  354. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
  355. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
  356. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -124
  357. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -29
  358. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -31
  359. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -126
  360. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
  361. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
  362. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -433
  363. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -624
  364. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -316
  365. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -123
  366. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
  367. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
  368. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -124
  369. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
  370. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
  371. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -127
  372. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -29
  373. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -31
  374. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -125
  375. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -29
  376. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -30
  377. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
  378. moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
  379. moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
  380. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
  381. moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
  382. moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
  383. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -123
  384. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -29
  385. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -30
  386. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -133
  387. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -29
  388. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -34
  389. moai_adk/templates/.claude/skills/moai-project-documentation.md +0 -622
  390. moai_adk/templates/.github/workflows/c-tag-validation.yml +0 -11
  391. moai_adk/templates/.github/workflows/cpp-tag-validation.yml +0 -11
  392. moai_adk/templates/.github/workflows/csharp-tag-validation.yml +0 -11
  393. moai_adk/templates/.github/workflows/dart-tag-validation.yml +0 -11
  394. moai_adk/templates/.github/workflows/go-tag-validation.yml +0 -130
  395. moai_adk/templates/.github/workflows/java-tag-validation.yml +0 -11
  396. moai_adk/templates/.github/workflows/javascript-tag-validation.yml +0 -135
  397. moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +0 -11
  398. moai_adk/templates/.github/workflows/php-tag-validation.yml +0 -11
  399. moai_adk/templates/.github/workflows/python-tag-validation.yml +0 -118
  400. moai_adk/templates/.github/workflows/release.yml +0 -118
  401. moai_adk/templates/.github/workflows/ruby-tag-validation.yml +0 -11
  402. moai_adk/templates/.github/workflows/rust-tag-validation.yml +0 -11
  403. moai_adk/templates/.github/workflows/shell-tag-validation.yml +0 -11
  404. moai_adk/templates/.github/workflows/swift-tag-validation.yml +0 -11
  405. moai_adk/templates/.github/workflows/tag-report.yml +0 -269
  406. moai_adk/templates/.github/workflows/tag-validation.yml +0 -186
  407. moai_adk/templates/.github/workflows/typescript-tag-validation.yml +0 -154
  408. moai_adk/templates/.moai/config.json +0 -115
  409. moai_adk/templates/workflows/go-tag-validation.yml +0 -30
  410. moai_adk/templates/workflows/javascript-tag-validation.yml +0 -41
  411. moai_adk/templates/workflows/python-tag-validation.yml +0 -42
  412. moai_adk/templates/workflows/typescript-tag-validation.yml +0 -31
  413. moai_adk-0.15.1.dist-info/METADATA +0 -3094
  414. moai_adk-0.15.1.dist-info/RECORD +0 -365
  415. {moai_adk-0.15.1.dist-info → moai_adk-0.25.4.dist-info}/WHEEL +0 -0
  416. {moai_adk-0.15.1.dist-info → moai_adk-0.25.4.dist-info}/entry_points.txt +0 -0
  417. {moai_adk-0.15.1.dist-info → moai_adk-0.25.4.dist-info}/licenses/LICENSE +0 -0
@@ -1,1099 +0,0 @@
1
- # TRUST Validation Reference Guide
2
-
3
- ## Quick Reference
4
-
5
- This document provides comprehensive CLI commands, configuration templates, and tool setup instructions for implementing TRUST 5-principles validation across all supported languages.
6
-
7
- ---
8
-
9
- ## T - Test First: CLI Command Matrix
10
-
11
- ### Python (pytest 8.4.2)
12
-
13
- **Installation**:
14
- ```bash
15
- pip install pytest==8.4.2 pytest-cov==5.0.0 pytest-xdist==3.6.1
16
- ```
17
-
18
- **Basic Coverage**:
19
- ```bash
20
- pytest --cov=src --cov-report=term-missing
21
- ```
22
-
23
- **Coverage with Threshold**:
24
- ```bash
25
- pytest --cov=src --cov-report=term-missing --cov-fail-under=85
26
- ```
27
-
28
- **Coverage Reports (Multiple Formats)**:
29
- ```bash
30
- pytest --cov=src --cov-report=html --cov-report=xml --cov-report=term
31
- ```
32
-
33
- **Parallel Execution**:
34
- ```bash
35
- pytest -n auto --cov=src --cov-report=term-missing
36
- ```
37
-
38
- **Configuration** (`pyproject.toml`):
39
- ```toml
40
- [tool.pytest.ini_options]
41
- testpaths = ["tests"]
42
- python_files = ["test_*.py", "*_test.py"]
43
- addopts = [
44
- "--cov=src",
45
- "--cov-report=term-missing",
46
- "--cov-fail-under=85",
47
- "--strict-markers",
48
- "--disable-warnings"
49
- ]
50
-
51
- [tool.coverage.run]
52
- branch = true
53
- source = ["src"]
54
- omit = ["*/tests/*", "*/migrations/*", "*/__pycache__/*"]
55
-
56
- [tool.coverage.report]
57
- exclude_lines = [
58
- "pragma: no cover",
59
- "def __repr__",
60
- "raise AssertionError",
61
- "raise NotImplementedError",
62
- "if __name__ == .__main__.:",
63
- "if TYPE_CHECKING:",
64
- ]
65
- ```
66
-
67
- ---
68
-
69
- ### TypeScript/JavaScript (Vitest 2.0.5)
70
-
71
- **Installation**:
72
- ```bash
73
- npm install -D vitest@2.0.5 @vitest/coverage-v8@2.0.5
74
- ```
75
-
76
- **Basic Coverage**:
77
- ```bash
78
- vitest run --coverage
79
- ```
80
-
81
- **Coverage with Threshold**:
82
- ```bash
83
- vitest run --coverage --coverage.thresholds.lines=85 --coverage.thresholds.branches=80
84
- ```
85
-
86
- **Watch Mode**:
87
- ```bash
88
- vitest --coverage --watch
89
- ```
90
-
91
- **Configuration** (`vitest.config.ts`):
92
- ```typescript
93
- import { defineConfig } from 'vitest/config';
94
-
95
- export default defineConfig({
96
- test: {
97
- globals: true,
98
- environment: 'node',
99
- coverage: {
100
- provider: 'v8',
101
- reporter: ['text', 'html', 'lcov'],
102
- exclude: [
103
- 'node_modules/',
104
- 'dist/',
105
- '**/*.spec.ts',
106
- '**/*.test.ts',
107
- '**/types/**',
108
- ],
109
- thresholds: {
110
- lines: 85,
111
- branches: 80,
112
- functions: 85,
113
- statements: 85,
114
- },
115
- },
116
- },
117
- });
118
- ```
119
-
120
- ---
121
-
122
- ### JavaScript (Jest 29.x)
123
-
124
- **Installation**:
125
- ```bash
126
- npm install -D jest@29 @types/jest
127
- ```
128
-
129
- **Basic Coverage**:
130
- ```bash
131
- jest --coverage
132
- ```
133
-
134
- **Coverage with Threshold**:
135
- ```bash
136
- jest --coverage --coverageThreshold='{"global":{"lines":85,"branches":80}}'
137
- ```
138
-
139
- **Configuration** (`jest.config.js`):
140
- ```javascript
141
- module.exports = {
142
- testEnvironment: 'node',
143
- collectCoverageFrom: [
144
- 'src/**/*.{js,jsx}',
145
- '!src/**/*.test.{js,jsx}',
146
- '!src/**/__tests__/**',
147
- ],
148
- coverageThreshold: {
149
- global: {
150
- lines: 85,
151
- branches: 80,
152
- functions: 85,
153
- statements: 85,
154
- },
155
- },
156
- coverageReporters: ['text', 'html', 'lcov'],
157
- };
158
- ```
159
-
160
- ---
161
-
162
- ### Go (testing 1.23)
163
-
164
- **Basic Tests**:
165
- ```bash
166
- go test ./...
167
- ```
168
-
169
- **Coverage Report**:
170
- ```bash
171
- go test ./... -cover -coverprofile=coverage.out
172
- ```
173
-
174
- **Coverage by Package**:
175
- ```bash
176
- go test ./... -coverprofile=coverage.out -covermode=atomic
177
- go tool cover -html=coverage.out -o coverage.html
178
- ```
179
-
180
- **Coverage Threshold Check**:
181
- ```bash
182
- # Custom script for threshold enforcement
183
- go test ./... -coverprofile=coverage.out -covermode=atomic
184
- go tool cover -func=coverage.out | grep total | awk '{print $3}' | sed 's/%//' | awk '{if($1<85)exit 1}'
185
- ```
186
-
187
- **Makefile Example**:
188
- ```makefile
189
- .PHONY: test coverage
190
-
191
- test:
192
- go test -v ./...
193
-
194
- coverage:
195
- go test -coverprofile=coverage.out -covermode=atomic ./...
196
- go tool cover -html=coverage.out -o coverage.html
197
- @echo "Coverage report: coverage.html"
198
-
199
- coverage-check:
200
- @go test -coverprofile=coverage.out -covermode=atomic ./...
201
- @go tool cover -func=coverage.out | grep total | awk '{print "Total coverage: " $$3}'
202
- @go tool cover -func=coverage.out | grep total | awk '{print $$3}' | sed 's/%//' | \
203
- awk '{if($$1<85){print "FAIL: Coverage below 85%"; exit 1}else{print "PASS: Coverage >= 85%"}}'
204
- ```
205
-
206
- ---
207
-
208
- ### Rust (cargo test 1.82.0)
209
-
210
- **Basic Tests**:
211
- ```bash
212
- cargo test
213
- ```
214
-
215
- **Coverage with tarpaulin**:
216
- ```bash
217
- cargo install cargo-tarpaulin
218
- cargo tarpaulin --out Xml --output-dir coverage/ --fail-under 85
219
- ```
220
-
221
- **Coverage with HTML Report**:
222
- ```bash
223
- cargo tarpaulin --out Html --output-dir coverage/
224
- ```
225
-
226
- **Configuration** (`Cargo.toml`):
227
- ```toml
228
- [package]
229
- name = "my-project"
230
- version = "0.1.0"
231
-
232
- [dependencies]
233
-
234
- [dev-dependencies]
235
-
236
- [profile.test]
237
- opt-level = 0
238
-
239
- # Coverage configuration
240
- [package.metadata.tarpaulin]
241
- exclude-files = ["target/*", "tests/*"]
242
- out = ["Html", "Xml"]
243
- output-dir = "coverage/"
244
- fail-under = 85
245
- ```
246
-
247
- ---
248
-
249
- ### Java/Kotlin (JUnit 5.10.x + JaCoCo)
250
-
251
- **Gradle Configuration** (`build.gradle.kts`):
252
- ```kotlin
253
- plugins {
254
- kotlin("jvm") version "1.9.22"
255
- jacoco
256
- }
257
-
258
- jacoco {
259
- toolVersion = "0.8.11"
260
- }
261
-
262
- tasks.test {
263
- useJUnitPlatform()
264
- finalizedBy(tasks.jacocoTestReport)
265
- }
266
-
267
- tasks.jacocoTestReport {
268
- dependsOn(tasks.test)
269
- reports {
270
- xml.required.set(true)
271
- html.required.set(true)
272
- csv.required.set(false)
273
- }
274
- }
275
-
276
- tasks.jacocoTestCoverageVerification {
277
- violationRules {
278
- rule {
279
- limit {
280
- minimum = "0.85".toBigDecimal()
281
- }
282
- }
283
- }
284
- }
285
- ```
286
-
287
- **Commands**:
288
- ```bash
289
- ./gradlew test jacocoTestReport
290
- ./gradlew jacocoTestCoverageVerification
291
- ```
292
-
293
- ---
294
-
295
- ## R - Readable: Linting & Formatting
296
-
297
- ### Python (ruff 0.6.x)
298
-
299
- **Installation**:
300
- ```bash
301
- pip install ruff==0.6.8
302
- ```
303
-
304
- **Commands**:
305
- ```bash
306
- ruff check . # Check only
307
- ruff check . --fix # Auto-fix
308
- ruff format . # Format code
309
- ruff check . --statistics # Show statistics
310
- ```
311
-
312
- **Configuration** (`pyproject.toml`):
313
- ```toml
314
- [tool.ruff]
315
- line-length = 100
316
- target-version = "py311"
317
-
318
- [tool.ruff.lint]
319
- select = [
320
- "E", # pycodestyle errors
321
- "W", # pycodestyle warnings
322
- "F", # pyflakes
323
- "I", # isort
324
- "N", # pep8-naming
325
- "UP", # pyupgrade
326
- "B", # flake8-bugbear
327
- "C4", # flake8-comprehensions
328
- "SIM", # flake8-simplify
329
- ]
330
- ignore = ["E501"] # line too long (handled by formatter)
331
-
332
- [tool.ruff.lint.per-file-ignores]
333
- "__init__.py" = ["F401"] # unused imports
334
- "tests/**" = ["S101"] # allow assert in tests
335
-
336
- [tool.ruff.lint.mccabe]
337
- max-complexity = 10
338
- ```
339
-
340
- ---
341
-
342
- ### TypeScript/JavaScript (Biome 1.9.x)
343
-
344
- **Installation**:
345
- ```bash
346
- npm install -D @biomejs/biome@1.9.0
347
- ```
348
-
349
- **Commands**:
350
- ```bash
351
- biome check . # Check all
352
- biome check --apply . # Auto-fix
353
- biome format . # Format only
354
- biome lint . # Lint only
355
- ```
356
-
357
- **Configuration** (`biome.json`):
358
- ```json
359
- {
360
- "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json",
361
- "organizeImports": {
362
- "enabled": true
363
- },
364
- "linter": {
365
- "enabled": true,
366
- "rules": {
367
- "recommended": true,
368
- "complexity": {
369
- "noExtraBooleanCast": "error",
370
- "noMultipleSpacesInRegularExpressionLiterals": "error",
371
- "noUselessCatch": "error",
372
- "noUselessConstructor": "error"
373
- },
374
- "correctness": {
375
- "noUnusedVariables": "error",
376
- "useExhaustiveDependencies": "warn"
377
- },
378
- "suspicious": {
379
- "noExplicitAny": "warn"
380
- }
381
- }
382
- },
383
- "formatter": {
384
- "enabled": true,
385
- "formatWithErrors": false,
386
- "indentStyle": "space",
387
- "indentWidth": 2,
388
- "lineWidth": 100
389
- },
390
- "javascript": {
391
- "formatter": {
392
- "quoteStyle": "single",
393
- "semicolons": "always"
394
- }
395
- }
396
- }
397
- ```
398
-
399
- ---
400
-
401
- ### Go (golangci-lint 1.60.x)
402
-
403
- **Installation**:
404
- ```bash
405
- # Binary installation
406
- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.60.3
407
- ```
408
-
409
- **Commands**:
410
- ```bash
411
- golangci-lint run # Run all linters
412
- golangci-lint run --fix # Auto-fix
413
- golangci-lint run --enable-all # Enable all linters
414
- ```
415
-
416
- **Configuration** (`.golangci.yml`):
417
- ```yaml
418
- run:
419
- timeout: 5m
420
- tests: true
421
-
422
- linters:
423
- enable:
424
- - gofmt
425
- - goimports
426
- - govet
427
- - staticcheck
428
- - errcheck
429
- - gosimple
430
- - ineffassign
431
- - unused
432
- - misspell
433
- - gocyclo
434
- - dupl
435
- - goconst
436
- - gocognit
437
-
438
- linters-settings:
439
- gocyclo:
440
- min-complexity: 10
441
- dupl:
442
- threshold: 100
443
- goconst:
444
- min-len: 3
445
- min-occurrences: 3
446
- gocognit:
447
- min-complexity: 15
448
-
449
- issues:
450
- exclude-use-default: false
451
- max-issues-per-linter: 0
452
- max-same-issues: 0
453
- ```
454
-
455
- ---
456
-
457
- ### Rust (clippy 1.82.0)
458
-
459
- **Commands**:
460
- ```bash
461
- cargo clippy # Basic check
462
- cargo clippy -- -D warnings # Treat warnings as errors
463
- cargo clippy --all-targets # Check all targets
464
- cargo fmt # Format code
465
- cargo fmt -- --check # Check formatting
466
- ```
467
-
468
- **Configuration** (`clippy.toml`):
469
- ```toml
470
- # Clippy configuration
471
- disallowed-methods = [
472
- "std::env::set_var",
473
- ]
474
-
475
- cognitive-complexity-threshold = 10
476
- ```
477
-
478
- ---
479
-
480
- ## U - Unified: Type Checking
481
-
482
- ### Python (mypy 1.11.x)
483
-
484
- **Installation**:
485
- ```bash
486
- pip install mypy==1.11.2
487
- ```
488
-
489
- **Commands**:
490
- ```bash
491
- mypy src/ # Check src directory
492
- mypy src/ --strict # Strict mode
493
- mypy src/ --no-error-summary # Quiet mode
494
- mypy src/ --install-types # Install missing type stubs
495
- ```
496
-
497
- **Configuration** (`pyproject.toml`):
498
- ```toml
499
- [tool.mypy]
500
- python_version = "3.11"
501
- strict = true
502
- warn_return_any = true
503
- warn_unused_configs = true
504
- disallow_untyped_defs = true
505
- disallow_any_generics = true
506
- check_untyped_defs = true
507
- no_implicit_optional = true
508
- warn_redundant_casts = true
509
- warn_unused_ignores = true
510
- warn_no_return = true
511
- warn_unreachable = true
512
-
513
- [[tool.mypy.overrides]]
514
- module = "tests.*"
515
- disallow_untyped_defs = false
516
- ```
517
-
518
- ---
519
-
520
- ### TypeScript (tsc 5.6.x)
521
-
522
- **Commands**:
523
- ```bash
524
- tsc --noEmit # Type check only
525
- tsc --noEmit --strict # Strict mode
526
- tsc --noEmit --watch # Watch mode
527
- ```
528
-
529
- **Configuration** (`tsconfig.json`):
530
- ```json
531
- {
532
- "compilerOptions": {
533
- "target": "ES2022",
534
- "module": "ESNext",
535
- "lib": ["ES2022"],
536
- "strict": true,
537
- "noImplicitAny": true,
538
- "strictNullChecks": true,
539
- "strictFunctionTypes": true,
540
- "strictBindCallApply": true,
541
- "strictPropertyInitialization": true,
542
- "noImplicitThis": true,
543
- "alwaysStrict": true,
544
- "noUnusedLocals": true,
545
- "noUnusedParameters": true,
546
- "noImplicitReturns": true,
547
- "noFallthroughCasesInSwitch": true,
548
- "esModuleInterop": true,
549
- "skipLibCheck": true,
550
- "forceConsistentCasingInFileNames": true
551
- },
552
- "include": ["src/**/*"],
553
- "exclude": ["node_modules", "dist"]
554
- }
555
- ```
556
-
557
- ---
558
-
559
- ## S - Secured: SAST Tools
560
-
561
- ### detect-secrets 1.4.x
562
-
563
- **Installation**:
564
- ```bash
565
- pip install detect-secrets==1.4.0
566
- ```
567
-
568
- **Commands**:
569
- ```bash
570
- # Create baseline
571
- detect-secrets scan > .secrets.baseline
572
-
573
- # Scan against baseline
574
- detect-secrets scan --baseline .secrets.baseline
575
-
576
- # Audit findings
577
- detect-secrets audit .secrets.baseline
578
-
579
- # Update baseline
580
- detect-secrets scan --baseline .secrets.baseline --update
581
- ```
582
-
583
- **Pre-commit Hook** (`.pre-commit-config.yaml`):
584
- ```yaml
585
- repos:
586
- - repo: https://github.com/Yelp/detect-secrets
587
- rev: v1.4.0
588
- hooks:
589
- - id: detect-secrets
590
- args: ['--baseline', '.secrets.baseline']
591
- ```
592
-
593
- ---
594
-
595
- ### Trivy 0.56.x
596
-
597
- **Installation**:
598
- ```bash
599
- # macOS
600
- brew install aquasecurity/trivy/trivy
601
-
602
- # Linux
603
- wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
604
- echo "deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
605
- sudo apt-get update
606
- sudo apt-get install trivy
607
- ```
608
-
609
- **Commands**:
610
- ```bash
611
- # Filesystem scan
612
- trivy fs .
613
-
614
- # Scan with severity filter
615
- trivy fs --severity HIGH,CRITICAL .
616
-
617
- # Exit on vulnerabilities
618
- trivy fs --severity HIGH,CRITICAL --exit-code 1 .
619
-
620
- # Output formats
621
- trivy fs --format json --output result.json .
622
- trivy fs --format sarif --output result.sarif .
623
- ```
624
-
625
- **Configuration** (`trivy.yaml`):
626
- ```yaml
627
- severity: HIGH,CRITICAL
628
- exit-code: 1
629
- timeout: 5m
630
- cache:
631
- dir: .trivy-cache
632
- ```
633
-
634
- ---
635
-
636
- ### Semgrep 1.94.x
637
-
638
- **Installation**:
639
- ```bash
640
- pip install semgrep==1.94.0
641
- ```
642
-
643
- **Commands**:
644
- ```bash
645
- # Auto configuration (recommended)
646
- semgrep --config=auto .
647
-
648
- # Specific rulesets
649
- semgrep --config=p/owasp-top-ten .
650
- semgrep --config=p/security-audit .
651
-
652
- # Exit on findings
653
- semgrep --config=auto --error .
654
-
655
- # Output formats
656
- semgrep --config=auto --json --output=results.json .
657
- semgrep --config=auto --sarif --output=results.sarif .
658
- ```
659
-
660
- **Configuration** (`.semgrep.yml`):
661
- ```yaml
662
- rules:
663
- - id: hardcoded-secret
664
- pattern: |
665
- password = "..."
666
- message: Hardcoded password detected
667
- severity: ERROR
668
- languages: [python, javascript, typescript]
669
- ```
670
-
671
- ---
672
-
673
- ### Bandit 1.7.x (Python)
674
-
675
- **Installation**:
676
- ```bash
677
- pip install bandit==1.7.9
678
- ```
679
-
680
- **Commands**:
681
- ```bash
682
- bandit -r src/ # Scan src directory
683
- bandit -r src/ -ll # High severity only
684
- bandit -r src/ -f json # JSON output
685
- ```
686
-
687
- **Configuration** (`.bandit`):
688
- ```yaml
689
- exclude_dirs:
690
- - /tests
691
- - /venv
692
-
693
- tests:
694
- - B201 # flask_debug_true
695
- - B301 # pickle
696
- - B302 # marshal
697
- - B303 # md5
698
- - B304 # ciphers
699
- - B305 # cipher_modes
700
- - B306 # mktemp_q
701
- - B307 # eval
702
- - B308 # mark_safe
703
- - B309 # httpsconnection
704
- - B310 # urllib_urlopen
705
- ```
706
-
707
- ---
708
-
709
- ## T - Trackable: TAG Validation
710
-
711
- ### TAG Scanning Commands
712
-
713
- **Find all TAGs**:
714
- ```bash
715
- rg '@(SPEC|TEST|CODE|DOC):' -n .moai/specs/ tests/ src/ docs/
716
- ```
717
-
718
- **Find specific TAG**:
719
- ```bash
720
- rg '@CODE:AUTH-001' -n src/
721
- ```
722
-
723
- **Find orphaned TAGs** (CODE without SPEC):
724
- ```bash
725
- # 1. Extract all CODE TAGs
726
- rg '@CODE:([A-Z]+-\d+)' -or '$1' src/ | sort -u > code_tags.txt
727
-
728
- # 2. Extract all SPEC TAGs
729
- rg '@SPEC:([A-Z]+-\d+)' -or '$1' .moai/specs/ | sort -u > spec_tags.txt
730
-
731
- # 3. Find orphans (in CODE but not in SPEC)
732
- comm -23 code_tags.txt spec_tags.txt
733
- ```
734
-
735
- **TAG Chain Validation Script** (`scripts/validate-tags.sh`):
736
- ```bash
737
- #!/bin/bash
738
- set -e
739
-
740
- echo "Validating TAG chains..."
741
-
742
- # Find all TAGs
743
- ALL_TAGS=$(rg '@(SPEC|TEST|CODE|DOC):([A-Z]+-\d+)' -or '$2' .moai/specs/ tests/ src/ docs/ 2>/dev/null | sort -u)
744
-
745
- ERRORS=0
746
-
747
- for TAG in $ALL_TAGS; do
748
- SPEC_COUNT=$(rg "@SPEC:$TAG" -c .moai/specs/ 2>/dev/null | awk -F: '{sum+=$2} END {print sum}')
749
- CODE_COUNT=$(rg "@CODE:$TAG" -c src/ 2>/dev/null | awk -F: '{sum+=$2} END {print sum}')
750
- TEST_COUNT=$(rg "@TEST:$TAG" -c tests/ 2>/dev/null | awk -F: '{sum+=$2} END {print sum}')
751
-
752
- echo "TAG $TAG: SPEC=$SPEC_COUNT CODE=$CODE_COUNT TEST=$TEST_COUNT"
753
-
754
- if [ "$CODE_COUNT" -gt 0 ] && [ "$SPEC_COUNT" -eq 0 ]; then
755
- echo " ERROR: CODE exists but SPEC missing"
756
- ERRORS=$((ERRORS + 1))
757
- fi
758
-
759
- if [ "$CODE_COUNT" -gt 0 ] && [ "$TEST_COUNT" -eq 0 ]; then
760
- echo " WARNING: CODE exists but TEST missing"
761
- fi
762
- done
763
-
764
- if [ $ERRORS -gt 0 ]; then
765
- echo "TAG validation FAILED with $ERRORS errors"
766
- exit 1
767
- fi
768
-
769
- echo "TAG validation PASSED"
770
- ```
771
-
772
- ---
773
-
774
- ## CI/CD Integration Examples
775
-
776
- ### GitHub Actions (Python Project)
777
-
778
- **File**: `.github/workflows/trust-check.yml`
779
-
780
- ```yaml
781
- name: TRUST Validation
782
-
783
- on:
784
- pull_request:
785
- push:
786
- branches: [main, develop]
787
-
788
- jobs:
789
- trust-gate:
790
- runs-on: ubuntu-latest
791
-
792
- steps:
793
- - name: Checkout code
794
- uses: actions/checkout@v4
795
-
796
- - name: Set up Python
797
- uses: actions/setup-python@v5
798
- with:
799
- python-version: '3.11'
800
- cache: 'pip'
801
-
802
- - name: Install dependencies
803
- run: |
804
- pip install -r requirements.txt
805
- pip install pytest pytest-cov ruff mypy detect-secrets
806
-
807
- # T - Test First
808
- - name: Run tests with coverage
809
- run: |
810
- pytest --cov=src --cov-report=xml --cov-report=term --cov-fail-under=85
811
-
812
- - name: Upload coverage to Codecov
813
- uses: codecov/codecov-action@v4
814
- with:
815
- file: ./coverage.xml
816
- fail_ci_if_error: true
817
-
818
- # R - Readable
819
- - name: Lint with ruff
820
- run: ruff check .
821
-
822
- # U - Unified
823
- - name: Type check with mypy
824
- run: mypy src/ --strict
825
-
826
- # S - Secured
827
- - name: Scan for secrets
828
- run: detect-secrets scan --baseline .secrets.baseline
829
-
830
- - name: Security scan with Trivy
831
- uses: aquasecurity/trivy-action@master
832
- with:
833
- scan-type: 'fs'
834
- scan-ref: '.'
835
- severity: 'HIGH,CRITICAL'
836
- exit-code: '1'
837
-
838
- - name: SAST with Semgrep
839
- run: |
840
- pip install semgrep
841
- semgrep --config=auto --error .
842
-
843
- # T - Trackable
844
- - name: Validate TAG chains
845
- run: |
846
- chmod +x scripts/validate-tags.sh
847
- ./scripts/validate-tags.sh
848
-
849
- - name: TRUST gate summary
850
- if: always()
851
- run: |
852
- echo "## TRUST Validation Results" >> $GITHUB_STEP_SUMMARY
853
- echo "- Test coverage: $(grep -oP 'TOTAL.*\K\d+%' coverage.txt || echo 'N/A')" >> $GITHUB_STEP_SUMMARY
854
- echo "- Linting: $(ruff check . --statistics | tail -1)" >> $GITHUB_STEP_SUMMARY
855
- ```
856
-
857
- ---
858
-
859
- ### GitHub Actions (TypeScript Project)
860
-
861
- **File**: `.github/workflows/trust-check.yml`
862
-
863
- ```yaml
864
- name: TRUST Validation
865
-
866
- on:
867
- pull_request:
868
- push:
869
- branches: [main, develop]
870
-
871
- jobs:
872
- trust-gate:
873
- runs-on: ubuntu-latest
874
-
875
- steps:
876
- - name: Checkout code
877
- uses: actions/checkout@v4
878
-
879
- - name: Setup Node.js
880
- uses: actions/setup-node@v4
881
- with:
882
- node-version: '20'
883
- cache: 'npm'
884
-
885
- - name: Install dependencies
886
- run: npm ci
887
-
888
- # T - Test First
889
- - name: Run tests with coverage
890
- run: npm run test:coverage
891
-
892
- - name: Check coverage threshold
893
- run: |
894
- COVERAGE=$(npx vitest run --coverage --reporter=json | jq '.coverage.lines.pct')
895
- if (( $(echo "$COVERAGE < 85" | bc -l) )); then
896
- echo "Coverage $COVERAGE% is below 85%"
897
- exit 1
898
- fi
899
-
900
- # R - Readable
901
- - name: Lint with Biome
902
- run: npx biome check .
903
-
904
- # U - Unified
905
- - name: Type check
906
- run: npm run type-check
907
-
908
- # S - Secured
909
- - name: Audit dependencies
910
- run: npm audit --audit-level=high
911
-
912
- - name: Security scan with Trivy
913
- uses: aquasecurity/trivy-action@master
914
- with:
915
- scan-type: 'fs'
916
- scan-ref: '.'
917
- severity: 'HIGH,CRITICAL'
918
- exit-code: '1'
919
-
920
- # T - Trackable
921
- - name: Validate TAG chains
922
- run: |
923
- chmod +x scripts/validate-tags.sh
924
- ./scripts/validate-tags.sh
925
- ```
926
-
927
- ---
928
-
929
- ## Local Pre-commit Hooks
930
-
931
- ### Python Project (`.git/hooks/pre-commit`)
932
-
933
- ```bash
934
- #!/bin/bash
935
- set -e
936
-
937
- echo "Running TRUST validation..."
938
-
939
- # T - Test First
940
- echo "→ Running tests..."
941
- pytest --cov=src --cov-fail-under=85 --quiet || exit 1
942
-
943
- # R - Readable
944
- echo "→ Linting..."
945
- ruff check . || exit 1
946
-
947
- # U - Unified
948
- echo "→ Type checking..."
949
- mypy src/ --strict || exit 1
950
-
951
- # S - Secured
952
- echo "→ Checking for secrets..."
953
- detect-secrets scan --baseline .secrets.baseline || exit 1
954
-
955
- echo "✓ TRUST validation passed"
956
- ```
957
-
958
- ### TypeScript Project (`.git/hooks/pre-commit`)
959
-
960
- ```bash
961
- #!/bin/bash
962
- set -e
963
-
964
- echo "Running TRUST validation..."
965
-
966
- # T - Test First
967
- echo "→ Running tests..."
968
- npm run test:coverage || exit 1
969
-
970
- # R - Readable
971
- echo "→ Linting..."
972
- npx biome check . || exit 1
973
-
974
- # U - Unified
975
- echo "→ Type checking..."
976
- npm run type-check || exit 1
977
-
978
- # S - Secured
979
- echo "→ Auditing dependencies..."
980
- npm audit --audit-level=high || exit 1
981
-
982
- echo "✓ TRUST validation passed"
983
- ```
984
-
985
- ---
986
-
987
- ## Makefile Automation
988
-
989
- ### Universal TRUST Makefile
990
-
991
- ```makefile
992
- .PHONY: trust trust-test trust-lint trust-type trust-security trust-tags
993
-
994
- # Run all TRUST checks
995
- trust: trust-test trust-lint trust-type trust-security trust-tags
996
- @echo "✓ All TRUST principles validated"
997
-
998
- # T - Test First
999
- trust-test:
1000
- @echo "→ T - Test First (Coverage ≥85%)"
1001
- @pytest --cov=src --cov-fail-under=85 --quiet || exit 1
1002
- @echo "✓ Tests passed with adequate coverage"
1003
-
1004
- # R - Readable
1005
- trust-lint:
1006
- @echo "→ R - Readable (Linting)"
1007
- @ruff check . || exit 1
1008
- @echo "✓ Code is readable and well-formatted"
1009
-
1010
- # U - Unified
1011
- trust-type:
1012
- @echo "→ U - Unified (Type checking)"
1013
- @mypy src/ --strict || exit 1
1014
- @echo "✓ Type safety verified"
1015
-
1016
- # S - Secured
1017
- trust-security:
1018
- @echo "→ S - Secured (Security scans)"
1019
- @detect-secrets scan --baseline .secrets.baseline || exit 1
1020
- @trivy fs --severity HIGH,CRITICAL --exit-code 1 . || exit 1
1021
- @echo "✓ Security scans passed"
1022
-
1023
- # T - Trackable
1024
- trust-tags:
1025
- @echo "→ T - Trackable (TAG validation)"
1026
- @bash scripts/validate-tags.sh || exit 1
1027
- @echo "✓ TAG chains validated"
1028
-
1029
- # Quick check (fast subset)
1030
- trust-quick: trust-lint trust-type
1031
- @echo "✓ Quick TRUST check passed"
1032
- ```
1033
-
1034
- ---
1035
-
1036
- ## Tool Version Management
1037
-
1038
- ### Python (requirements-dev.txt)
1039
-
1040
- ```txt
1041
- # TRUST validation tools (2025-10-22)
1042
-
1043
- # T - Test First
1044
- pytest==8.4.2
1045
- pytest-cov==5.0.0
1046
- pytest-xdist==3.6.1
1047
-
1048
- # R - Readable
1049
- ruff==0.6.8
1050
-
1051
- # U - Unified
1052
- mypy==1.11.2
1053
-
1054
- # S - Secured
1055
- detect-secrets==1.4.0
1056
- bandit==1.7.9
1057
- semgrep==1.94.0
1058
- ```
1059
-
1060
- ### TypeScript (package.json)
1061
-
1062
- ```json
1063
- {
1064
- "devDependencies": {
1065
- "@biomejs/biome": "^1.9.0",
1066
- "@vitest/coverage-v8": "^2.0.5",
1067
- "vitest": "^2.0.5",
1068
- "typescript": "^5.6.0"
1069
- },
1070
- "scripts": {
1071
- "test": "vitest run",
1072
- "test:coverage": "vitest run --coverage",
1073
- "test:watch": "vitest --watch",
1074
- "lint": "biome check .",
1075
- "lint:fix": "biome check --apply .",
1076
- "type-check": "tsc --noEmit",
1077
- "trust": "npm run test:coverage && npm run lint && npm run type-check"
1078
- }
1079
- }
1080
- ```
1081
-
1082
- ---
1083
-
1084
- ## Additional Resources
1085
-
1086
- - **pytest**: https://docs.pytest.org/
1087
- - **Vitest**: https://vitest.dev/
1088
- - **Jest**: https://jestjs.io/
1089
- - **Go testing**: https://go.dev/doc/tutorial/add-a-test
1090
- - **Rust testing**: https://doc.rust-lang.org/book/ch11-00-testing.html
1091
- - **ruff**: https://docs.astral.sh/ruff/
1092
- - **Biome**: https://biomejs.dev/
1093
- - **golangci-lint**: https://golangci-lint.run/
1094
- - **clippy**: https://github.com/rust-lang/rust-clippy
1095
- - **mypy**: https://mypy.readthedocs.io/
1096
- - **TypeScript**: https://www.typescriptlang.org/
1097
- - **Trivy**: https://trivy.dev/
1098
- - **detect-secrets**: https://github.com/Yelp/detect-secrets
1099
- - **Semgrep**: https://semgrep.dev/