moai-adk 0.34.0__py3-none-any.whl → 1.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. moai_adk/__main__.py +136 -5
  2. moai_adk/astgrep/__init__.py +37 -0
  3. moai_adk/astgrep/analyzer.py +522 -0
  4. moai_adk/astgrep/models.py +124 -0
  5. moai_adk/astgrep/rules.py +179 -0
  6. moai_adk/cli/commands/analyze.py +11 -2
  7. moai_adk/cli/commands/doctor.py +7 -1
  8. moai_adk/cli/commands/init.py +321 -11
  9. moai_adk/cli/commands/language.py +7 -1
  10. moai_adk/cli/commands/rank.py +449 -0
  11. moai_adk/cli/commands/status.py +7 -1
  12. moai_adk/cli/commands/switch.py +325 -0
  13. moai_adk/cli/commands/update.py +296 -23
  14. moai_adk/cli/prompts/init_prompts.py +362 -66
  15. moai_adk/cli/prompts/translations/__init__.py +573 -0
  16. moai_adk/cli/ui/prompts.py +61 -2
  17. moai_adk/cli/worktree/cli.py +106 -1
  18. moai_adk/cli/worktree/manager.py +155 -0
  19. moai_adk/core/config/unified.py +244 -63
  20. moai_adk/core/credentials.py +264 -0
  21. moai_adk/core/error_recovery_system.py +22 -4
  22. moai_adk/core/git/conflict_detector.py +10 -1
  23. moai_adk/core/git/event_detector.py +16 -5
  24. moai_adk/core/integration/engine.py +2 -2
  25. moai_adk/core/integration/integration_tester.py +5 -5
  26. moai_adk/core/language_config_resolver.py +9 -3
  27. moai_adk/core/merge/analyzer.py +509 -324
  28. moai_adk/core/migration/alfred_to_moai_migrator.py +7 -1
  29. moai_adk/core/migration/backup_manager.py +54 -4
  30. moai_adk/core/migration/file_migrator.py +174 -2
  31. moai_adk/core/migration/interactive_checkbox_ui.py +42 -31
  32. moai_adk/core/migration/version_detector.py +123 -19
  33. moai_adk/core/migration/version_migrator.py +44 -9
  34. moai_adk/core/model_allocator.py +241 -0
  35. moai_adk/core/project/backup_utils.py +12 -2
  36. moai_adk/core/project/initializer.py +44 -87
  37. moai_adk/core/project/phase_executor.py +95 -33
  38. moai_adk/core/project/validator.py +16 -1
  39. moai_adk/core/quality/trust_checker.py +30 -10
  40. moai_adk/core/rollback_manager.py +60 -25
  41. moai_adk/core/template/backup.py +88 -6
  42. moai_adk/core/template/config.py +33 -9
  43. moai_adk/core/template/merger.py +34 -8
  44. moai_adk/core/template/processor.py +334 -11
  45. moai_adk/core/template_engine.py +10 -1
  46. moai_adk/core/template_variable_synchronizer.py +16 -2
  47. moai_adk/core/version_sync.py +54 -6
  48. moai_adk/foundation/__init__.py +1 -20
  49. moai_adk/foundation/testing.py +1 -1
  50. moai_adk/loop/__init__.py +54 -0
  51. moai_adk/loop/controller.py +305 -0
  52. moai_adk/loop/feedback.py +230 -0
  53. moai_adk/loop/state.py +209 -0
  54. moai_adk/loop/storage.py +220 -0
  55. moai_adk/lsp/__init__.py +70 -0
  56. moai_adk/lsp/client.py +320 -0
  57. moai_adk/lsp/models.py +261 -0
  58. moai_adk/lsp/protocol.py +404 -0
  59. moai_adk/lsp/server_manager.py +248 -0
  60. moai_adk/project/configuration.py +8 -1
  61. moai_adk/py.typed +0 -0
  62. moai_adk/ralph/__init__.py +37 -0
  63. moai_adk/ralph/engine.py +307 -0
  64. moai_adk/rank/__init__.py +21 -0
  65. moai_adk/rank/auth.py +425 -0
  66. moai_adk/rank/client.py +557 -0
  67. moai_adk/rank/config.py +147 -0
  68. moai_adk/rank/hook.py +1503 -0
  69. moai_adk/rank/py.typed +0 -0
  70. moai_adk/statusline/__init__.py +3 -0
  71. moai_adk/statusline/enhanced_output_style_detector.py +5 -5
  72. moai_adk/statusline/main.py +20 -1
  73. moai_adk/statusline/memory_collector.py +268 -0
  74. moai_adk/statusline/renderer.py +54 -38
  75. moai_adk/tag_system/__init__.py +48 -0
  76. moai_adk/tag_system/atomic_ops.py +117 -0
  77. moai_adk/tag_system/linkage.py +335 -0
  78. moai_adk/tag_system/parser.py +176 -0
  79. moai_adk/tag_system/validator.py +200 -0
  80. moai_adk/templates/.claude/agents/moai/builder-agent.md +19 -3
  81. moai_adk/templates/.claude/agents/moai/builder-command.md +62 -16
  82. moai_adk/templates/.claude/agents/moai/builder-plugin.md +763 -0
  83. moai_adk/templates/.claude/agents/moai/builder-skill.md +21 -5
  84. moai_adk/templates/.claude/agents/moai/expert-backend.md +103 -39
  85. moai_adk/templates/.claude/agents/moai/expert-debug.md +9 -3
  86. moai_adk/templates/.claude/agents/moai/expert-devops.md +16 -14
  87. moai_adk/templates/.claude/agents/moai/expert-frontend.md +45 -31
  88. moai_adk/templates/.claude/agents/moai/expert-performance.md +13 -9
  89. moai_adk/templates/.claude/agents/moai/expert-refactoring.md +228 -0
  90. moai_adk/templates/.claude/agents/moai/expert-security.md +19 -3
  91. moai_adk/templates/.claude/agents/moai/expert-testing.md +13 -9
  92. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +8 -2
  93. moai_adk/templates/.claude/agents/moai/manager-docs.md +10 -5
  94. moai_adk/templates/.claude/agents/moai/manager-git.md +99 -27
  95. moai_adk/templates/.claude/agents/moai/manager-project.md +87 -7
  96. moai_adk/templates/.claude/agents/moai/manager-quality.md +22 -5
  97. moai_adk/templates/.claude/agents/moai/manager-spec.md +8 -2
  98. moai_adk/templates/.claude/agents/moai/manager-strategy.md +45 -14
  99. moai_adk/templates/.claude/agents/moai/manager-tdd.md +16 -3
  100. moai_adk/templates/.claude/commands/moai/0-project.md +239 -1185
  101. moai_adk/templates/.claude/commands/moai/1-plan.md +383 -363
  102. moai_adk/templates/.claude/commands/moai/2-run.md +254 -347
  103. moai_adk/templates/.claude/commands/moai/3-sync.md +174 -100
  104. moai_adk/templates/.claude/commands/moai/9-feedback.md +49 -33
  105. moai_adk/templates/.claude/commands/moai/alfred.md +339 -0
  106. moai_adk/templates/.claude/commands/moai/cancel-loop.md +163 -0
  107. moai_adk/templates/.claude/commands/moai/fix.md +264 -0
  108. moai_adk/templates/.claude/commands/moai/loop.md +363 -0
  109. moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
  110. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +37 -81
  111. moai_adk/templates/.claude/hooks/moai/lib/alfred_detector.py +105 -0
  112. moai_adk/templates/.claude/hooks/moai/lib/atomic_write.py +122 -0
  113. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +4 -1
  114. moai_adk/templates/.claude/hooks/moai/lib/common.py +35 -5
  115. moai_adk/templates/.claude/hooks/moai/lib/config.py +376 -0
  116. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +24 -28
  117. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +14 -14
  118. moai_adk/templates/.claude/hooks/moai/lib/enhanced_output_style_detector.py +372 -0
  119. moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
  120. moai_adk/templates/.claude/hooks/moai/lib/file_utils.py +95 -0
  121. moai_adk/templates/.claude/hooks/moai/lib/git_collector.py +190 -0
  122. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +15 -13
  123. moai_adk/templates/.claude/hooks/moai/lib/language_detector.py +298 -0
  124. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +125 -25
  125. moai_adk/templates/.claude/hooks/moai/lib/main.py +341 -0
  126. moai_adk/templates/.claude/hooks/moai/lib/memory_collector.py +268 -0
  127. moai_adk/templates/.claude/hooks/moai/lib/metrics_tracker.py +78 -0
  128. moai_adk/templates/.claude/hooks/moai/lib/models.py +9 -7
  129. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +204 -13
  130. moai_adk/templates/.claude/hooks/moai/lib/project.py +23 -14
  131. moai_adk/templates/.claude/hooks/moai/lib/renderer.py +359 -0
  132. moai_adk/templates/.claude/hooks/moai/lib/tag_linkage.py +333 -0
  133. moai_adk/templates/.claude/hooks/moai/lib/tag_parser.py +176 -0
  134. moai_adk/templates/.claude/hooks/moai/lib/tag_validator.py +200 -0
  135. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +5 -5
  136. moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +896 -0
  137. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +30 -18
  138. moai_adk/templates/.claude/hooks/moai/lib/update_checker.py +129 -0
  139. moai_adk/templates/.claude/hooks/moai/lib/version_reader.py +741 -0
  140. moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +276 -0
  141. moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +255 -0
  142. moai_adk/templates/.claude/hooks/moai/post_tool__coverage_guard.py +325 -0
  143. moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +315 -0
  144. moai_adk/templates/.claude/hooks/moai/post_tool__lsp_diagnostic.py +508 -0
  145. moai_adk/templates/.claude/hooks/moai/pre_commit__tag_validator.py +287 -0
  146. moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +268 -0
  147. moai_adk/templates/.claude/hooks/moai/pre_tool__tdd_enforcer.py +208 -0
  148. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +93 -61
  149. moai_adk/templates/.claude/hooks/moai/session_end__rank_submit.py +69 -0
  150. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +165 -70
  151. moai_adk/templates/.claude/hooks/moai/shared/utils/announcement_translator.py +206 -0
  152. moai_adk/templates/.claude/hooks/moai/stop__loop_controller.py +621 -0
  153. moai_adk/templates/.claude/output-styles/moai/alfred.md +758 -0
  154. moai_adk/templates/.claude/output-styles/moai/r2d2.md +86 -3
  155. moai_adk/templates/.claude/output-styles/moai/yoda.md +2 -2
  156. moai_adk/templates/.claude/settings.json +154 -77
  157. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +252 -198
  158. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +169 -323
  159. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +39 -27
  160. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +115 -125
  161. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +150 -150
  162. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +182 -175
  163. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +198 -138
  164. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +226 -320
  165. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +43 -222
  166. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +75 -219
  167. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +103 -463
  168. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/component-architecture.md +723 -0
  169. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/nextjs16-patterns.md +713 -0
  170. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/performance-optimization.md +694 -0
  171. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/react19-patterns.md +591 -0
  172. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/state-management.md +680 -0
  173. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/vue35-patterns.md +802 -0
  174. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +118 -339
  175. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +74 -377
  176. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +299 -70
  177. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +205 -182
  178. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/advanced-agent-patterns.md +370 -0
  179. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-cli-reference-official.md +420 -0
  180. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +32 -22
  181. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-devcontainers-official.md +381 -0
  182. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-discover-plugins-official.md +379 -0
  183. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-headless-official.md +378 -0
  184. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +110 -0
  185. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugin-marketplaces-official.md +308 -0
  186. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugins-official.md +640 -0
  187. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sandboxing-official.md +282 -0
  188. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +425 -71
  189. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-statusline-official.md +293 -0
  190. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +325 -143
  191. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +96 -316
  192. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +116 -294
  193. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-advanced.md +279 -0
  194. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-implementation.md +267 -0
  195. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +121 -650
  196. moai_adk/templates/.claude/skills/moai-foundation-core/modules/patterns.md +22 -0
  197. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-ears-format.md +200 -0
  198. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +37 -730
  199. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-tdd-implementation.md +275 -0
  200. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +77 -819
  201. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-implementation.md +244 -0
  202. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-validation.md +219 -0
  203. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +14 -18
  204. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +86 -270
  205. moai_adk/templates/.claude/skills/moai-framework-electron/SKILL.md +288 -0
  206. moai_adk/templates/.claude/skills/moai-framework-electron/examples.md +2082 -0
  207. moai_adk/templates/.claude/skills/moai-framework-electron/reference.md +1649 -0
  208. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +76 -582
  209. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +1239 -0
  210. moai_adk/templates/.claude/skills/moai-lang-cpp/modules/advanced-patterns.md +401 -0
  211. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +1136 -0
  212. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +82 -436
  213. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +585 -0
  214. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/aspnet-core.md +627 -0
  215. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/blazor-components.md +767 -0
  216. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/cqrs-validation.md +626 -0
  217. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/csharp12-features.md +580 -0
  218. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/efcore-patterns.md +622 -0
  219. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +403 -0
  220. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +65 -542
  221. moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +1171 -0
  222. moai_adk/templates/.claude/skills/moai-lang-elixir/modules/advanced-patterns.md +531 -0
  223. moai_adk/templates/.claude/skills/moai-lang-elixir/reference.md +889 -0
  224. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +32 -405
  225. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +114 -293
  226. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +83 -307
  227. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +179 -0
  228. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +973 -0
  229. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +1543 -0
  230. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +42 -279
  231. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +94 -556
  232. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +1608 -0
  233. moai_adk/templates/.claude/skills/moai-lang-php/modules/advanced-patterns.md +538 -0
  234. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +1323 -0
  235. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +108 -358
  236. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +84 -482
  237. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +1154 -0
  238. moai_adk/templates/.claude/skills/moai-lang-r/modules/advanced-patterns.md +489 -0
  239. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +1087 -0
  240. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +106 -610
  241. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +1106 -0
  242. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/advanced-patterns.md +309 -0
  243. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/testing-patterns.md +306 -0
  244. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +1024 -0
  245. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +51 -265
  246. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +106 -442
  247. moai_adk/templates/.claude/skills/moai-lang-scala/modules/akka-actors.md +479 -0
  248. moai_adk/templates/.claude/skills/moai-lang-scala/modules/cats-effect.md +489 -0
  249. moai_adk/templates/.claude/skills/moai-lang-scala/modules/functional-programming.md +460 -0
  250. moai_adk/templates/.claude/skills/moai-lang-scala/modules/spark-data.md +498 -0
  251. moai_adk/templates/.claude/skills/moai-lang-scala/modules/zio-patterns.md +541 -0
  252. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +88 -457
  253. moai_adk/templates/.claude/skills/moai-lang-swift/modules/combine-reactive.md +256 -0
  254. moai_adk/templates/.claude/skills/moai-lang-swift/modules/concurrency.md +270 -0
  255. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swift6-features.md +265 -0
  256. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swiftui-patterns.md +314 -0
  257. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +75 -283
  258. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +97 -252
  259. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +64 -240
  260. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +331 -12
  261. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +330 -37
  262. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +90 -287
  263. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +200 -206
  264. moai_adk/templates/.claude/skills/moai-platform-auth0/examples.md +2446 -0
  265. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/adaptive-mfa.md +233 -0
  266. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/akamai-integration.md +214 -0
  267. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/application-credentials.md +280 -0
  268. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-log-events.md +224 -0
  269. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-overview.md +140 -0
  270. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/bot-detection.md +144 -0
  271. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/breached-password-detection.md +187 -0
  272. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/brute-force-protection.md +189 -0
  273. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/certifications.md +282 -0
  274. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/compliance-overview.md +263 -0
  275. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/continuous-session-protection.md +307 -0
  276. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/customize-mfa.md +177 -0
  277. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/dpop-implementation.md +283 -0
  278. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/fapi-implementation.md +259 -0
  279. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/gdpr-compliance.md +313 -0
  280. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/guardian-configuration.md +269 -0
  281. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/highly-regulated-identity.md +272 -0
  282. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/jwt-fundamentals.md +248 -0
  283. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mdl-verification.md +210 -0
  284. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-api-management.md +278 -0
  285. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-factors.md +226 -0
  286. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-overview.md +174 -0
  287. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mtls-sender-constraining.md +316 -0
  288. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/ropg-flow-mfa.md +216 -0
  289. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-center.md +325 -0
  290. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-guidance.md +277 -0
  291. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/state-parameters.md +177 -0
  292. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/step-up-authentication.md +251 -0
  293. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/suspicious-ip-throttling.md +240 -0
  294. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/tenant-access-control.md +179 -0
  295. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/webauthn-fido.md +235 -0
  296. moai_adk/templates/.claude/skills/moai-platform-auth0/reference.md +224 -0
  297. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +75 -330
  298. moai_adk/templates/.claude/skills/moai-platform-clerk/examples.md +1426 -0
  299. moai_adk/templates/.claude/skills/moai-platform-clerk/modules/advanced-patterns.md +417 -0
  300. moai_adk/templates/.claude/skills/moai-platform-clerk/reference.md +273 -0
  301. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +100 -340
  302. moai_adk/templates/.claude/skills/moai-platform-convex/examples.md +506 -0
  303. moai_adk/templates/.claude/skills/moai-platform-convex/modules/auth-integration.md +421 -0
  304. moai_adk/templates/.claude/skills/moai-platform-convex/modules/file-storage.md +474 -0
  305. moai_adk/templates/.claude/skills/moai-platform-convex/modules/reactive-queries.md +302 -0
  306. moai_adk/templates/.claude/skills/moai-platform-convex/modules/server-functions.md +452 -0
  307. moai_adk/templates/.claude/skills/moai-platform-convex/reference.md +385 -0
  308. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +113 -326
  309. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/examples.md +514 -0
  310. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/custom-claims.md +374 -0
  311. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/phone-auth.md +372 -0
  312. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/social-auth.md +339 -0
  313. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/reference.md +382 -0
  314. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +71 -302
  315. moai_adk/templates/.claude/skills/moai-platform-firestore/examples.md +445 -0
  316. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/offline-cache.md +392 -0
  317. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/realtime-listeners.md +441 -0
  318. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/security-rules.md +352 -0
  319. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/transactions.md +452 -0
  320. moai_adk/templates/.claude/skills/moai-platform-firestore/reference.md +322 -0
  321. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +101 -412
  322. moai_adk/templates/.claude/skills/moai-platform-neon/examples.md +470 -0
  323. moai_adk/templates/.claude/skills/moai-platform-neon/modules/auto-scaling.md +349 -0
  324. moai_adk/templates/.claude/skills/moai-platform-neon/modules/branching-workflows.md +354 -0
  325. moai_adk/templates/.claude/skills/moai-platform-neon/modules/connection-pooling.md +412 -0
  326. moai_adk/templates/.claude/skills/moai-platform-neon/modules/pitr-backups.md +458 -0
  327. moai_adk/templates/.claude/skills/moai-platform-neon/reference.md +272 -0
  328. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +96 -327
  329. moai_adk/templates/.claude/skills/moai-platform-railway/examples.md +539 -0
  330. moai_adk/templates/.claude/skills/moai-platform-railway/modules/docker-deployment.md +261 -0
  331. moai_adk/templates/.claude/skills/moai-platform-railway/modules/multi-service.md +291 -0
  332. moai_adk/templates/.claude/skills/moai-platform-railway/modules/networking-domains.md +338 -0
  333. moai_adk/templates/.claude/skills/moai-platform-railway/modules/volumes-storage.md +353 -0
  334. moai_adk/templates/.claude/skills/moai-platform-railway/reference.md +374 -0
  335. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +103 -428
  336. moai_adk/templates/.claude/skills/moai-platform-supabase/examples.md +502 -0
  337. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/auth-integration.md +384 -0
  338. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/edge-functions.md +371 -0
  339. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/postgresql-pgvector.md +231 -0
  340. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/realtime-presence.md +354 -0
  341. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/row-level-security.md +286 -0
  342. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/storage-cdn.md +319 -0
  343. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/typescript-patterns.md +453 -0
  344. moai_adk/templates/.claude/skills/moai-platform-supabase/reference.md +284 -0
  345. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +96 -446
  346. moai_adk/templates/.claude/skills/moai-platform-vercel/examples.md +502 -0
  347. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/analytics-speed.md +348 -0
  348. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/deployment-config.md +344 -0
  349. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/edge-functions.md +222 -0
  350. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/isr-caching.md +306 -0
  351. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/kv-storage.md +399 -0
  352. moai_adk/templates/.claude/skills/moai-platform-vercel/reference.md +360 -0
  353. moai_adk/templates/.claude/skills/moai-tool-ast-grep/SKILL.md +193 -0
  354. moai_adk/templates/.claude/skills/moai-tool-ast-grep/examples.md +1099 -0
  355. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/language-specific.md +307 -0
  356. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/pattern-syntax.md +237 -0
  357. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/refactoring-patterns.md +260 -0
  358. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/security-rules.md +239 -0
  359. moai_adk/templates/.claude/skills/moai-tool-ast-grep/reference.md +288 -0
  360. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/go.yml +90 -0
  361. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/python.yml +101 -0
  362. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/typescript.yml +83 -0
  363. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/complexity-check.yml +94 -0
  364. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/deprecated-apis.yml +84 -0
  365. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/secrets-detection.yml +89 -0
  366. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/sql-injection.yml +45 -0
  367. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/xss-prevention.yml +50 -0
  368. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml +54 -0
  369. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +225 -423
  370. moai_adk/templates/.claude/skills/moai-workflow-loop/SKILL.md +197 -0
  371. moai_adk/templates/.claude/skills/moai-workflow-loop/examples.md +1063 -0
  372. moai_adk/templates/.claude/skills/moai-workflow-loop/reference.md +1414 -0
  373. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +211 -314
  374. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +15 -43
  375. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +119 -316
  376. moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
  377. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +96 -203
  378. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +201 -388
  379. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +52 -3
  380. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +263 -806
  381. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/context7-integration.md +286 -0
  382. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/review-workflows.md +500 -0
  383. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/relevance-analysis.md +154 -0
  384. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/safety-analysis.md +148 -0
  385. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/scoring-algorithms.md +196 -0
  386. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/timeliness-analysis.md +168 -0
  387. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/truthfulness-analysis.md +136 -0
  388. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/usability-analysis.md +153 -0
  389. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework.md +257 -0
  390. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +191 -1344
  391. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/analysis-patterns.md +340 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/core-classes.md +299 -0
  393. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/tool-integration.md +380 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/debugging-workflows.md +451 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/error-analysis.md +442 -0
  396. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/optimization-patterns.md +473 -0
  397. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/profiling-techniques.md +481 -0
  398. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/ai-optimization.md +241 -0
  399. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/bottleneck-detection.md +397 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/optimization-plan.md +315 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/profiler-core.md +277 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/real-time-monitoring.md +187 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +287 -1194
  404. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/quality-metrics.md +415 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/ai-workflows.md +620 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/patterns.md +692 -0
  407. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/security-analysis.md +429 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +262 -1192
  409. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/static-analysis.md +438 -0
  410. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd/core-classes.md +397 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/advanced-features.md +494 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/red-green-refactor.md +316 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-generation.md +471 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-patterns.md +371 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +227 -1222
  416. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/trust5-validation.md +428 -0
  417. moai_adk/templates/.claude/skills/moai-workflow-worktree/SKILL.md +228 -0
  418. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/integration-patterns.md +149 -0
  419. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/moai-adk-integration.md +245 -0
  420. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-advanced.md +310 -0
  421. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-development.md +202 -0
  422. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-workflows.md +302 -0
  423. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/registry-architecture.md +271 -0
  424. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/resource-optimization.md +300 -0
  425. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/tools-integration.md +280 -0
  426. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/troubleshooting.md +397 -0
  427. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-commands.md +296 -0
  428. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-management.md +217 -0
  429. moai_adk/templates/.git-hooks/pre-push +162 -59
  430. moai_adk/templates/.github/workflows/ci-universal.yml +934 -133
  431. moai_adk/templates/.gitignore +65 -107
  432. moai_adk/templates/.lsp.json +152 -0
  433. moai_adk/templates/.mcp.json +2 -20
  434. moai_adk/templates/.moai/announcements/en.json +18 -0
  435. moai_adk/templates/.moai/announcements/ja.json +18 -0
  436. moai_adk/templates/.moai/announcements/ko.json +18 -0
  437. moai_adk/templates/.moai/announcements/zh.json +18 -0
  438. moai_adk/templates/.moai/config/config.yaml +8 -2
  439. moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
  440. moai_adk/templates/.moai/config/sections/language.yaml +2 -2
  441. moai_adk/templates/.moai/config/sections/llm.yaml +41 -0
  442. moai_adk/templates/.moai/config/sections/pricing.yaml +30 -0
  443. moai_adk/templates/.moai/config/sections/project.yaml +2 -2
  444. moai_adk/templates/.moai/config/sections/quality.yaml +43 -5
  445. moai_adk/templates/.moai/config/sections/ralph.yaml +55 -0
  446. moai_adk/templates/.moai/config/sections/system.yaml +46 -1
  447. moai_adk/templates/.moai/config/sections/user.yaml +1 -1
  448. moai_adk/templates/.moai/config/statusline-config.yaml +2 -2
  449. moai_adk/templates/.moai/llm-configs/glm.json +22 -0
  450. moai_adk/templates/CLAUDE.ja.md +343 -0
  451. moai_adk/templates/CLAUDE.ko.md +343 -0
  452. moai_adk/templates/CLAUDE.md +200 -499
  453. moai_adk/templates/CLAUDE.zh.md +343 -0
  454. moai_adk/utils/common.py +37 -0
  455. moai_adk/version.py +1 -1
  456. moai_adk-1.1.0.dist-info/METADATA +2443 -0
  457. moai_adk-1.1.0.dist-info/RECORD +701 -0
  458. {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/entry_points.txt +2 -0
  459. moai_adk-1.1.0.dist-info/licenses/LICENSE +99 -0
  460. moai_adk/core/config/auto_spec_config.py +0 -340
  461. moai_adk/core/hooks/post_tool_auto_spec_completion.py +0 -901
  462. moai_adk/core/spec/confidence_scoring.py +0 -680
  463. moai_adk/core/spec/ears_template_engine.py +0 -1247
  464. moai_adk/core/spec/quality_validator.py +0 -687
  465. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +0 -670
  466. moai_adk/templates/.claude/agents/moai/expert-database.md +0 -777
  467. moai_adk/templates/.claude/agents/moai/expert-uiux.md +0 -1041
  468. moai_adk/templates/.claude/agents/moai/mcp-context7.md +0 -458
  469. moai_adk/templates/.claude/agents/moai/mcp-figma.md +0 -1607
  470. moai_adk/templates/.claude/agents/moai/mcp-notion.md +0 -789
  471. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +0 -469
  472. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +0 -1032
  473. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +0 -438
  474. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +0 -431
  475. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +0 -405
  476. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +0 -336
  477. moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +0 -402
  478. moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +0 -607
  479. moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +0 -300
  480. moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +0 -537
  481. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +0 -520
  482. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +0 -574
  483. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +0 -317
  484. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +0 -663
  485. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +0 -190
  486. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +0 -175
  487. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +0 -196
  488. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +0 -17
  489. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +0 -158
  490. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +0 -340
  491. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +0 -713
  492. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +0 -538
  493. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +0 -1336
  494. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +0 -730
  495. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +0 -608
  496. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +0 -1005
  497. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +0 -436
  498. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +0 -411
  499. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +0 -982
  500. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +0 -778
  501. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +0 -646
  502. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +0 -782
  503. moai_adk/templates/.moai/config/questions/_schema.yaml +0 -151
  504. moai_adk/templates/.moai/config/questions/tab0-init.yaml +0 -251
  505. moai_adk/templates/.moai/config/questions/tab1-user.yaml +0 -108
  506. moai_adk/templates/.moai/config/questions/tab2-project.yaml +0 -81
  507. moai_adk/templates/.moai/config/questions/tab3-git.yaml +0 -634
  508. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +0 -170
  509. moai_adk/templates/.moai/config/questions/tab5-system.yaml +0 -87
  510. moai_adk/templates/.moai/scripts/setup-glm.py +0 -136
  511. moai_adk-0.34.0.dist-info/METADATA +0 -2999
  512. moai_adk-0.34.0.dist-info/RECORD +0 -463
  513. moai_adk-0.34.0.dist-info/licenses/LICENSE +0 -21
  514. /moai_adk/foundation/{git.py → git/__init__.py} +0 -0
  515. /moai_adk/templates/.claude/skills/moai-library-mermaid/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  516. /moai_adk/templates/.claude/skills/moai-library-mermaid/{optimization.md → modules/optimization.md} +0 -0
  517. /moai_adk/templates/.claude/skills/moai-library-nextra/{optimization.md → modules/optimization.md} +0 -0
  518. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  519. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{optimization.md → modules/optimization.md} +0 -0
  520. /moai_adk/templates/.claude/skills/moai-workflow-testing/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  521. /moai_adk/templates/.claude/skills/moai-workflow-testing/{optimization.md → modules/optimization.md} +0 -0
  522. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/examples.md +0 -0
  523. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/reference.md +0 -0
  524. {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/WHEEL +0 -0
@@ -1,1247 +0,0 @@
1
- """EARS Template Engine for Auto-Generated SPECs."""
2
-
3
- import logging
4
- import re
5
- import time
6
- from pathlib import Path
7
- from typing import Any, Dict
8
-
9
- from moai_adk.core.spec.confidence_scoring import ConfidenceScoringSystem
10
-
11
- # Configure logging
12
- logger = logging.getLogger(__name__)
13
-
14
-
15
- class EARSTemplateEngine:
16
- """
17
- EARS Template Engine for generating complete SPEC documents.
18
-
19
- This engine generates SPEC documents in EARS (Environment, Assumptions,
20
- Requirements, Specifications) format based on code analysis.
21
- """
22
-
23
- def __init__(self):
24
- self.confidence_scorer = ConfidenceScoringSystem()
25
- self.template_cache = {}
26
-
27
- # Domain-specific templates
28
- self.domain_templates = {
29
- "auth": {
30
- "description": "User authentication and security system",
31
- "common_features": [
32
- "Login",
33
- "Registration",
34
- "Password Reset",
35
- "Session Management",
36
- ],
37
- "security_requirements": [
38
- "Encryption",
39
- "Password Hashing",
40
- "Rate Limiting",
41
- ],
42
- "environment": "Web Application with User Management",
43
- },
44
- "api": {
45
- "description": "RESTful API service",
46
- "common_features": [
47
- "Endpoints",
48
- "Authentication",
49
- "Rate Limiting",
50
- "Caching",
51
- ],
52
- "technical_requirements": [
53
- "RESTful Design",
54
- "JSON Format",
55
- "HTTP Status Codes",
56
- ],
57
- "environment": "Microservice Architecture",
58
- },
59
- "data": {
60
- "description": "Data processing and storage system",
61
- "common_features": [
62
- "Data Validation",
63
- "Persistence",
64
- "Backup",
65
- "Migration",
66
- ],
67
- "technical_requirements": [
68
- "Data Integrity",
69
- "Performance",
70
- "Scalability",
71
- ],
72
- "environment": "Database System with Analytics",
73
- },
74
- "ui": {
75
- "description": "User interface and experience system",
76
- "common_features": ["Components", "Navigation", "Forms", "Validation"],
77
- "experience_requirements": [
78
- "Responsive Design",
79
- "Accessibility",
80
- "Performance",
81
- ],
82
- "environment": "Web Frontend with React/Angular/Vue",
83
- },
84
- "business": {
85
- "description": "Business logic and workflow system",
86
- "common_features": [
87
- "Process Management",
88
- "Rules Engine",
89
- "Notifications",
90
- ],
91
- "business_requirements": ["Compliance", "Audit Trail", "Reporting"],
92
- "environment": "Enterprise Application",
93
- },
94
- }
95
-
96
- # EARS section templates
97
- self.ears_templates = {
98
- "environment": {
99
- "template": """### Environment
100
-
101
- - **Project**: {project_name}
102
- - **Language**: {language}
103
- - **Framework**: {framework}
104
- - **Paradigm**: {paradigm}
105
- - **Platform**: {platform}
106
- - **Deployment**: {deployment}
107
- - **Status**: {status}
108
- - **Generation Method**: Auto-analysis based""",
109
- "required_fields": [
110
- "project_name",
111
- "language",
112
- "framework",
113
- "paradigm",
114
- ],
115
- },
116
- "assumptions": {
117
- "template": """### Assumptions
118
-
119
- 1. System follows standard development practices
120
- 2. Users have basic domain knowledge
121
- 3. System is designed with stable and scalable architecture
122
- 4. External dependencies operate normally
123
- 5. Security requirements comply with industry standards
124
- 6. Data integrity is maintained
125
- 7. User interface is intuitively designed
126
- 8. Performance requirements are met""",
127
- "required_fields": [],
128
- },
129
- "requirements": {
130
- "template": """### Requirements
131
-
132
- #### Ubiquitous Requirements
133
-
134
- - **REQ-001**: System SHALL perform {primary_function} functionality
135
- - **REQ-002**: Generated features SHALL be stable
136
- - **REQ-003**: Code SHALL be maintainable
137
- - **REQ-004**: Tests SHALL meet functional requirements
138
- - **REQ-005**: Code SHALL comply with project coding standards
139
- - **REQ-006**: System SHALL handle exceptional situations appropriately
140
- - **REQ-007**: User experience SHALL be optimized
141
-
142
- #### State-driven Requirements
143
-
144
- {state_requirements}
145
-
146
- #### Event-driven Requirements
147
-
148
- {event_requirements}
149
-
150
- #### Optional Requirements
151
-
152
- - **REQ-008**: System SHALL include performance monitoring features
153
- - **REQ-009**: Automatic backup and restore features MAY be required
154
- - **REQ-010**: User activity logging MAY be required
155
- - **REQ-011**: Multi-language support MAY be required
156
- - **REQ-012**: Mobile compatibility MAY be required""",
157
- "required_fields": ["primary_function"],
158
- },
159
- "specifications": {
160
- "template": """### Specifications
161
-
162
- {technical_specs}
163
-
164
- #### Technical Specifications
165
-
166
- {technical_details}
167
-
168
- #### Data Models
169
-
170
- {data_models}
171
-
172
- #### API Specifications
173
-
174
- {api_specs}
175
-
176
- #### Interface Specifications
177
-
178
- {interface_specs}
179
-
180
- #### Security Specifications
181
-
182
- {security_specs}
183
-
184
- #### Performance Specifications
185
-
186
- {performance_specs}
187
-
188
- #### Scalability Specifications
189
-
190
- {scalability_specs}""",
191
- "required_fields": [],
192
- },
193
- }
194
-
195
- def generate_complete_spec(
196
- self,
197
- code_analysis: Dict[str, Any],
198
- file_path: str,
199
- custom_config: Dict[str, Any] = None,
200
- ) -> Dict[str, str]:
201
- """
202
- Generate complete SPEC document in EARS format.
203
-
204
- Args:
205
- code_analysis: Code analysis result
206
- file_path: Path to the analyzed file
207
- custom_config: Custom configuration overrides
208
-
209
- Returns:
210
- Dictionary with spec.md, plan.md, and acceptance.md
211
- """
212
- start_time = time.time()
213
-
214
- # Extract information from code analysis
215
- extraction_result = self._extract_information_from_analysis(code_analysis, file_path)
216
-
217
- # Determine domain
218
- domain = self._determine_domain(extraction_result)
219
-
220
- # Generate SPEC ID
221
- spec_id = self._generate_spec_id(extraction_result, domain)
222
-
223
- # Generate content for each section
224
- spec_md_content = self._generate_spec_content(extraction_result, domain, spec_id, custom_config)
225
- plan_md_content = self._generate_plan_content(extraction_result, domain, spec_id, custom_config)
226
- acceptance_md_content = self._generate_acceptance_content(extraction_result, domain, spec_id, custom_config)
227
-
228
- # Validate content
229
- validation_result = self._validate_ears_compliance(
230
- {
231
- "spec_md": spec_md_content,
232
- "plan_md": plan_md_content,
233
- "acceptance_md": acceptance_md_content,
234
- }
235
- )
236
-
237
- # Create result
238
- result = {
239
- "spec_id": spec_id,
240
- "domain": domain,
241
- "spec_md": spec_md_content,
242
- "plan_md": plan_md_content,
243
- "acceptance_md": acceptance_md_content,
244
- "validation": validation_result,
245
- "generation_time": time.time() - start_time,
246
- "extraction": extraction_result,
247
- }
248
-
249
- return result # type: ignore[return-value]
250
-
251
- def _extract_information_from_analysis(self, code_analysis: Dict[str, Any], file_path: str) -> Dict[str, Any]:
252
- """Extract information from code analysis."""
253
- extraction = {
254
- "file_path": file_path,
255
- "file_name": Path(file_path).stem,
256
- "file_extension": Path(file_path).suffix,
257
- "language": self._detect_language(file_path),
258
- "classes": [],
259
- "functions": [],
260
- "imports": [],
261
- "domain_keywords": [],
262
- "technical_indicators": [],
263
- "complexity": "low",
264
- "architecture": "simple",
265
- }
266
-
267
- # Extract from code_analysis
268
- if "structure_info" in code_analysis:
269
- structure = code_analysis["structure_info"]
270
- extraction["classes"] = structure.get("classes", [])
271
- extraction["functions"] = structure.get("functions", [])
272
- extraction["imports"] = structure.get("imports", [])
273
-
274
- if "domain_keywords" in code_analysis:
275
- extraction["domain_keywords"] = code_analysis["domain_keywords"]
276
-
277
- # Extract from AST analysis if available
278
- if hasattr(code_analysis, "ast_info"):
279
- pass
280
- # Additional extraction logic here
281
-
282
- # Determine complexity and architecture
283
- extraction["complexity"] = self._analyze_complexity(extraction)
284
- extraction["architecture"] = self._analyze_architecture(extraction)
285
-
286
- return extraction
287
-
288
- def _detect_language(self, file_path: str) -> str:
289
- """Detect programming language from file path."""
290
- extension = Path(file_path).suffix.lower()
291
-
292
- language_map = {
293
- ".py": "Python",
294
- ".js": "JavaScript",
295
- ".jsx": "JavaScript",
296
- ".ts": "TypeScript",
297
- ".tsx": "TypeScript",
298
- ".go": "Go",
299
- ".java": "Java",
300
- ".cpp": "C++",
301
- ".c": "C",
302
- ".cs": "C#",
303
- ".rb": "Ruby",
304
- ".php": "PHP",
305
- ".swift": "Swift",
306
- ".kt": "Kotlin",
307
- }
308
-
309
- return language_map.get(extension, "Unknown")
310
-
311
- def _analyze_complexity(self, extraction: Dict[str, Any]) -> str:
312
- """Analyze code complexity."""
313
- class_count = len(extraction["classes"])
314
- function_count = len(extraction["functions"])
315
-
316
- if class_count > 5 or function_count > 20:
317
- return "high"
318
- elif class_count > 2 or function_count > 10:
319
- return "medium"
320
- else:
321
- return "low"
322
-
323
- def _analyze_architecture(self, extraction: Dict[str, Any]) -> str:
324
- """Analyze system architecture."""
325
- imports = extraction["imports"]
326
-
327
- # Check for architectural patterns
328
- if any("django" in imp.lower() for imp in imports):
329
- return "mvc"
330
- elif any("react" in imp.lower() or "vue" in imp.lower() for imp in imports):
331
- return "frontend"
332
- elif any("fastapi" in imp.lower() or "flask" in imp.lower() for imp in imports):
333
- return "api"
334
- elif any("sqlalchemy" in imp.lower() or "django" in imp.lower() for imp in imports):
335
- return "data"
336
- else:
337
- return "simple"
338
-
339
- def _determine_domain(self, extraction: Dict[str, Any]) -> str:
340
- """Determine the domain based on code analysis."""
341
- domain_keywords = extraction["domain_keywords"]
342
- extraction["imports"]
343
-
344
- # Check for domain indicators
345
- domain_indicators = {
346
- "auth": ["auth", "login", "password", "security", "bcrypt", "token"],
347
- "api": ["api", "endpoint", "route", "controller", "service"],
348
- "data": ["model", "entity", "schema", "database", "persistence"],
349
- "ui": ["ui", "interface", "component", "view", "template"],
350
- "business": ["business", "logic", "process", "workflow", "rule"],
351
- }
352
-
353
- domain_scores = {}
354
- for domain, keywords in domain_indicators.items():
355
- score = sum(1 for keyword in keywords if any(keyword in kw for kw in domain_keywords))
356
- domain_scores[domain] = score
357
-
358
- # Return domain with highest score
359
- if domain_scores:
360
- return max(domain_scores, key=domain_scores.get)
361
- else:
362
- return "general"
363
-
364
- def _generate_spec_id(self, extraction: Dict[str, Any], domain: str) -> str:
365
- """Generate unique SPEC ID."""
366
- file_name = extraction["file_name"]
367
- domain_upper = domain.upper()
368
-
369
- # Clean file name
370
- clean_name = re.sub(r"[^a-zA-Z0-9]", "", file_name)
371
-
372
- # Generate hash for uniqueness
373
- import hashlib
374
-
375
- file_hash = hashlib.md5(f"{file_name}{domain}{time.time()}".encode(), usedforsecurity=False).hexdigest()[:4]
376
-
377
- return f"{domain_upper}-{clean_name[:8]}-{file_hash}"
378
-
379
- def _generate_spec_content(
380
- self,
381
- extraction: Dict[str, Any],
382
- domain: str,
383
- spec_id: str,
384
- custom_config: Dict[str, Any] = None,
385
- ) -> str:
386
- """Generate main spec.md content."""
387
- config = custom_config or {}
388
-
389
- # Get domain template
390
- domain_info = self.domain_templates.get(
391
- domain,
392
- {
393
- "description": "General system",
394
- "common_features": ["Standard Features"],
395
- "environment": "General Purpose",
396
- },
397
- )
398
-
399
- # Extract information
400
- primary_function = self._extract_primary_function(extraction, domain)
401
- state_requirements = self._generate_state_requirements(extraction, domain)
402
- event_requirements = self._generate_event_requirements(extraction, domain)
403
- technical_specs = self._generate_technical_specs(extraction, domain)
404
-
405
- # Generate template content
406
- spec_content = self._render_template(
407
- self.ears_templates["environment"],
408
- {
409
- "project_name": config.get("project_name", f"{domain.capitalize()} System"),
410
- "language": extraction["language"],
411
- "framework": config.get("framework", self._detect_framework(extraction)),
412
- "paradigm": config.get("paradigm", "Object-Oriented"),
413
- "platform": config.get("platform", "Web/Server"),
414
- "deployment": config.get("deployment", "Cloud-based"),
415
- "status": config.get("status", "Development"),
416
- **extraction,
417
- },
418
- )
419
-
420
- # Add assumptions
421
- spec_content += "\n\n" + self._render_template(self.ears_templates["assumptions"], extraction)
422
-
423
- # Add requirements
424
- spec_content += "\n\n" + self._render_template(
425
- self.ears_templates["requirements"],
426
- {
427
- "primary_function": primary_function,
428
- "state_requirements": state_requirements,
429
- "event_requirements": event_requirements,
430
- **extraction,
431
- },
432
- )
433
-
434
- # Add specifications
435
- spec_content += "\n\n" + self._render_template(
436
- self.ears_templates["specifications"],
437
- {
438
- "technical_specs": technical_specs,
439
- **self._generate_technical_details(extraction, domain),
440
- **extraction,
441
- },
442
- )
443
-
444
- # Add traceability
445
- spec_content += self._generate_traceability(spec_id)
446
-
447
- # Add edit guide
448
- spec_content += self._generate_edit_guide(extraction, domain)
449
-
450
- # Add meta information
451
- spec_md = f"""---
452
- "id": "SPEC-{spec_id}",
453
- "title": "Auto-generated SPEC for {extraction["file_name"]}",
454
- "title_en": "Auto-generated SPEC for {extraction["file_name"]}",
455
- "version": "1.0.0",
456
- "status": "pending",
457
- "created": "{time.strftime("%Y-%m-%d")}",
458
- "author": "@alfred-auto",
459
- "reviewer": "",
460
- "category": "FEATURE",
461
- "priority": "MEDIUM",
462
- "tags": ["auto-generated", "{spec_id}", "{domain}"],
463
- "language": "en",
464
- "estimated_complexity": "{extraction["complexity"]}",
465
- "domain": "{domain}"
466
- }}
467
- ---
468
-
469
- ## Auto-generated SPEC for {extraction["file_name"]}
470
-
471
- ### Overview
472
-
473
- {domain_info["description"]}
474
-
475
- {spec_content}
476
- """
477
-
478
- return spec_md
479
-
480
- def _render_template(self, template: Dict[str, str], context: Dict[str, Any]) -> str:
481
- """Render template with context."""
482
- template_text = template["template"]
483
-
484
- # Replace placeholders
485
- for key, value in context.items():
486
- placeholder = f"{{{key}}}"
487
- # Handle both string and sequence values
488
- if isinstance(value, (list, tuple)):
489
- # Convert sequence to newline-separated string
490
- str_value = "\n".join(str(v) for v in value)
491
- else:
492
- str_value = str(value)
493
- template_text = template_text.replace(placeholder, str_value)
494
-
495
- return template_text
496
-
497
- def _extract_primary_function(self, extraction: Dict[str, Any], domain: str) -> str:
498
- """Extract primary function from code analysis."""
499
- classes = extraction["classes"]
500
- functions = extraction["functions"]
501
-
502
- if classes:
503
- return f"Manage {classes[0]} class and related operations"
504
- elif functions:
505
- return f"Execute {functions[0]} function and related operations"
506
- else:
507
- return f"Process data and perform {domain} operations"
508
-
509
- def _generate_state_requirements(self, extraction: Dict[str, Any], domain: str) -> str:
510
- """Generate state-based requirements."""
511
- base_requirements = [
512
- "- **REQ-006**: System SHALL transition from initial state to target state",
513
- "- **REQ-007**: State changes SHALL occur only under valid conditions",
514
- "- **REQ-008**: System SHALL maintain integrity of each state",
515
- "- **REQ-009**: State changes SHALL be logged and traceable",
516
- "- **REQ-010**: System SHALL provide recovery mechanism from error state",
517
- ]
518
-
519
- domain_specific = {
520
- "auth": [
521
- "- **AUTH-001**: User SHALL be able to transition from unauthenticated to authenticated state",
522
- "- **AUTH-002**: System SHALL be accessible in authenticated state",
523
- "- **AUTH-003**: System SHALL automatically transition to unauthenticated state on session expiry",
524
- ],
525
- "api": [
526
- "- **API-001**: API SHALL have ready, executing, and error states",
527
- "- **API-002**: System SHALL return appropriate error response in error state",
528
- "- **API-003**: State changes SHALL be notified as events",
529
- ],
530
- "data": [
531
- "- **DATA-001**: Data SHALL have create, update, and delete states",
532
- "- **DATA-002**: Data integrity SHALL be maintained at all times",
533
- "- **DATA-003**: Data backup state SHALL be monitored",
534
- ],
535
- }
536
-
537
- result = "\n".join(base_requirements)
538
- if domain in domain_specific:
539
- result += "\n\n" + "\n".join(domain_specific[domain])
540
-
541
- return result
542
-
543
- def _generate_event_requirements(self, extraction: Dict[str, Any], domain: str) -> str:
544
- """Generate event-based requirements."""
545
- base_events = [
546
- "- **EVT-001**: System SHALL respond to user input events",
547
- "- **EVT-002**: System SHALL handle internal system events",
548
- "- **EVT-003**: System SHALL receive external service events",
549
- "- **EVT-004**: Event processing errors SHALL be handled appropriately",
550
- "- **EVT-005**: Event logs SHALL be maintained",
551
- ]
552
-
553
- domain_specific = {
554
- "auth": [
555
- "- **AUTH-EVT-001**: System SHALL handle login events",
556
- "- **AUTH-EVT-002**: System SHALL handle logout events",
557
- "- **AUTH-EVT-003**: System SHALL handle password change events",
558
- ],
559
- "api": [
560
- "- **API-EVT-001**: System SHALL handle API request events",
561
- "- **API-EVT-002**: System SHALL handle authentication events",
562
- "- **API-EVT-003**: System SHALL handle rate limit events",
563
- ],
564
- "data": [
565
- "- **DATA-EVT-001**: System SHALL handle data save events",
566
- "- **DATA-EVT-002**: System SHALL handle data retrieval events",
567
- "- **DATA-EVT-003**: System SHALL handle data deletion events",
568
- ],
569
- }
570
-
571
- result = "\n".join(base_events)
572
- if domain in domain_specific:
573
- result += "\n\n" + "\n".join(domain_specific[domain])
574
-
575
- return result
576
-
577
- def _generate_technical_specs(self, extraction: Dict[str, Any], domain: str) -> str:
578
- """Generate technical specifications."""
579
- technical_specs = [
580
- "#### Core Implementation",
581
- f"- **SPEC-001**: {extraction['classes'][0] if extraction['classes'] else 'Main'} "
582
- "class SHALL be implemented",
583
- f"- **SPEC-002**: {extraction['functions'][0] if extraction['functions'] else 'Core'} "
584
- "function SHALL be implemented",
585
- "- **SPEC-003**: Input validation SHALL be implemented",
586
- "- **SPEC-004**: Error handling mechanism SHALL be implemented",
587
- "- **SPEC-005**: Logging system SHALL be implemented",
588
- "#### Extensibility",
589
- "- **SPEC-006**: Plugin architecture support",
590
- "- **SPEC-007**: Configuration-based feature enable/disable",
591
- "- **SPEC-008**: Testable design",
592
- "#### Maintainability",
593
- "- **SPEC-009**: Code documentation",
594
- "- **SPEC-010**: Unit test coverage",
595
- "- **SPEC-011**: Code quality validation",
596
- ]
597
-
598
- return "\n".join(technical_specs)
599
-
600
- def _generate_technical_details(self, extraction: Dict[str, Any], domain: str) -> Dict[str, str]:
601
- """Generate technical details for specifications."""
602
- return {
603
- "technical_details": f"""#### Technical Details
604
-
605
- - **Architecture**: {extraction["architecture"].title()} Architecture
606
- - **Complexity**: {extraction["complexity"].title()}
607
- - **Language**: {extraction["language"]}
608
- - **Module Count**: {len(extraction["classes"])} classes, {len(extraction["functions"])} functions
609
- - **Dependencies**: {len(extraction["imports"])} external dependencies
610
-
611
- #### Data Models
612
-
613
- {self._generate_data_models(extraction, domain)}
614
-
615
- #### API Specification
616
-
617
- {self._generate_api_specs(extraction, domain)}
618
-
619
- #### Interface Specification
620
-
621
- {self._generate_interface_specs(extraction, domain)}
622
-
623
- #### Security Specification
624
-
625
- {self._generate_security_specs(extraction, domain)}
626
-
627
- #### Performance Specification
628
-
629
- {self._generate_performance_specs(extraction, domain)}
630
-
631
- #### Scalability Specification
632
-
633
- {self._generate_scalability_specs(extraction, domain)}""",
634
- "data_models": self._generate_data_models(extraction, domain),
635
- "api_specs": self._generate_api_specs(extraction, domain),
636
- "interface_specs": self._generate_interface_specs(extraction, domain),
637
- "security_specs": self._generate_security_specs(extraction, domain),
638
- "performance_specs": self._generate_performance_specs(extraction, domain),
639
- "scalability_specs": self._generate_scalability_specs(extraction, domain),
640
- }
641
-
642
- def _generate_data_models(self, extraction: Dict[str, Any], domain: str) -> str:
643
- """Generate data models section."""
644
- if extraction["classes"]:
645
- models = []
646
- for class_name in extraction["classes"][:3]: # Limit to 3 models
647
- models.append(
648
- f"""
649
- **{class_name}**:
650
- - Attributes: ID, created_at, status
651
- - Methods: create, update, delete, retrieve
652
- - Relations: Relationships with other models"""
653
- )
654
- return "\n".join(models)
655
- else:
656
- return "Data models are not explicitly defined."
657
-
658
- def _generate_api_specs(self, extraction: Dict[str, Any], domain: str) -> str:
659
- """Generate API specifications."""
660
- if domain in ["api", "auth"]:
661
- return """
662
- **RESTful API Endpoints**:
663
- - `GET /api/{resource}`: Retrieve resource list
664
- - `POST /api/{resource}`: Create resource
665
- - `PUT /api/{resource}/{id}`: Update resource
666
- - `DELETE /api/{resource}/{id}`: Delete resource
667
- - `GET /api/{resource}/{id}`: Retrieve specific resource
668
-
669
- **Response Format**:
670
- - Success: `200 OK` + JSON data
671
- - Failure: `400 Bad Request`, `404 Not Found`, `500 Internal Server Error`"""
672
- else:
673
- return "API specification not applicable to this domain."
674
-
675
- def _generate_interface_specs(self, extraction: Dict[str, Any], domain: str) -> str:
676
- """Generate interface specifications."""
677
- if domain in ["ui", "api"]:
678
- return """
679
- **User Interface**:
680
- - Web Interface: Responsive design
681
- - Mobile Interface: Cross-platform compatible
682
- - API Interface: RESTful API
683
-
684
- **Interaction Patterns**:
685
- - User input handling
686
- - Real-time updates
687
- - Error state handling"""
688
- else:
689
- return "Interface specification not applicable to this domain."
690
-
691
- def _generate_security_specs(self, extraction: Dict[str, Any], domain: str) -> str:
692
- """Generate security specifications."""
693
- if domain in ["auth", "api"]:
694
- return """
695
- **Security Requirements**:
696
- - Authentication and authorization
697
- - Data encryption
698
- - Input validation
699
- - Access control
700
- - Logging and monitoring
701
-
702
- **Security Measures**:
703
- - Password hashing
704
- - Session management
705
- - CSRF prevention
706
- - XSS prevention
707
- - SQL injection prevention"""
708
- else:
709
- return "Security specifications apply by default."
710
-
711
- def _generate_performance_specs(self, extraction: Dict[str, Any], domain: str) -> str:
712
- """Generate performance specifications."""
713
- return """
714
- **Performance Requirements**:
715
- - Response time: Within 1 second
716
- - Concurrent processing: Maximum 1000 requests/second
717
- - Memory usage: Maximum 512MB
718
- - Throughput: 99.9% availability
719
-
720
- **Performance Monitoring**:
721
- - Response time monitoring
722
- - Resource usage monitoring
723
- - Error rate monitoring"""
724
-
725
- def _generate_scalability_specs(self, extraction: Dict[str, Any], domain: str) -> str:
726
- """Generate scalability specifications."""
727
- return """
728
- **Scalability Requirements**:
729
- - Horizontal scaling support
730
- - Load balancing
731
- - Caching strategy
732
- - Database sharding
733
-
734
- **Scalability Plan**:
735
- - Microservice architecture
736
- - Containerization
737
- - Orchestration
738
- - CDN integration"""
739
-
740
- def _generate_traceability(self, spec_id: str) -> str:
741
- """Generate traceability section."""
742
- return """
743
-
744
- ### Traceability
745
-
746
- **Requirements Traceability Matrix:**
747
- - Functional requirements → Design specifications → Test cases
748
- - Non-functional requirements → Architecture decisions → Validation tests
749
- - Business requirements → User stories → Acceptance criteria
750
-
751
- **Implementation Traceability:**
752
- - Design specifications → Code modules → Unit tests
753
- - API specifications → Endpoints → Integration tests
754
- - Database design → Schemas → Data validation tests
755
-
756
- **Change Management:**
757
- - All changes tracked with timestamps
758
- - Impact analysis documented
759
- - Stakeholder approvals recorded"""
760
-
761
- def _generate_edit_guide(self, extraction: Dict[str, Any], domain: str) -> str:
762
- """Generate edit guide section."""
763
- return f"""
764
-
765
- ### Edit Guide
766
-
767
- **User Review Checklist:**
768
- 1. [OK] Verify technical clarity
769
- 2. [OK] Specify requirements in detail
770
- 3. [OK] Review domain terminology
771
- 4. [OK] Define state and event requirements
772
- 5. [OK] Detail specifications
773
-
774
- **Quality Improvement Suggestions:**
775
- - Add domain-specific terminology
776
- - Specify user cases in detail
777
- - Define performance requirements
778
- - Add security requirements
779
-
780
- **Domain-Specific Review:**
781
- - **{domain.upper()}**: {self._get_domain_specific_review(domain)}"""
782
-
783
- def _get_domain_specific_review(self, domain: str) -> str:
784
- """Get domain-specific review guidance."""
785
- domain_reviews = {
786
- "auth": "Review security requirements, verify authentication flow, review session management",
787
- "api": "Review API design, review error handling, review performance",
788
- "data": "Review data integrity, review backup and restore",
789
- "ui": "Review user experience, review accessibility, review performance",
790
- "business": "Review business rules, review compliance",
791
- }
792
- return domain_reviews.get(domain, "Review general requirements")
793
-
794
- def _generate_plan_content(
795
- self,
796
- extraction: Dict[str, Any],
797
- domain: str,
798
- spec_id: str,
799
- custom_config: Dict[str, Any] = None,
800
- ) -> str:
801
- """Generate plan.md content."""
802
-
803
- # Generate implementation plan based on complexity and domain
804
- plan_content = f"""---
805
- id: "PLAN-{spec_id}"
806
- spec_id: "SPEC-{spec_id}"
807
- title: "Auto-generated Implementation Plan for {extraction["file_name"]}"
808
- version: "1.0.0"
809
- status: "pending"
810
- created: "{time.strftime("%Y-%m-%d")}"
811
- author: "@alfred-auto"
812
- domain: "{domain}"
813
- ---
814
- ## Auto-generated Implementation Plan for {extraction["file_name"]}
815
-
816
- ### Implementation Phases
817
-
818
- #### Phase 1: Requirements Analysis (Priority: High)
819
-
820
- - [ ] Detail functional requirements
821
- - [ ] Define non-functional requirements
822
- - [ ] Set performance requirements
823
- - [ ] Define security requirements
824
- - [ ] Write user stories
825
-
826
- #### Phase 2: Design (Priority: High)
827
-
828
- - [ ] Complete architecture design
829
- - [ ] Design data models
830
- - [ ] Complete API design
831
- - [ ] Design interfaces
832
- - [ ] Design database schema
833
-
834
- #### Phase 3: Development (Priority: Medium)
835
-
836
- - [ ] Develop core modules
837
- - [ ] Complete API development
838
- - [ ] Develop interfaces
839
- - [ ] Integrate database
840
- - [ ] Implement security features
841
-
842
- #### Phase 4: Testing (Priority: High)
843
-
844
- - [ ] Implement unit tests
845
- - [ ] Implement integration tests
846
- - [ ] Implement system tests
847
- - [ ] Performance testing
848
- - [ ] Security testing
849
-
850
- #### Phase 5: Deployment (Priority: Medium)
851
-
852
- - [ ] Deploy to staging environment
853
- - [ ] Implement deployment automation
854
- - [ ] Configure monitoring
855
- - [ ] Complete documentation
856
- - [ ] Write operational guide
857
-
858
- ### Technical Approach
859
-
860
- #### Architecture Design
861
-
862
- ```
863
- {self._generate_architecture_diagram(extraction, domain)}
864
- ```
865
-
866
- #### Core Components
867
-
868
- 1. **{self._get_main_component(extraction, domain)}**: Main business logic processing
869
- 2. **{self._get_service_component(extraction, domain)}**: External service integration
870
- 3. **{self._get_data_component(extraction, domain)}**: Data processing and storage
871
- 4. **{self._get_component_4(extraction, domain)}**: Validation and processing layer
872
-
873
- #### Dependency Management
874
-
875
- **Utilize Existing Modules:**
876
- - Utilize standard libraries
877
- - Utilize existing infrastructure
878
-
879
- **Add New Modules:**
880
- - {self._get_new_modules(extraction, domain)}
881
-
882
- ### Success Criteria
883
-
884
- #### Functional Criteria
885
-
886
- - ✅ All requirements implemented
887
- - ✅ Test coverage above 85%
888
- - ✅ Performance goals met
889
- - ✅ User requirements satisfied
890
-
891
- #### Performance Criteria
892
-
893
- - ✅ Response time within 1 second
894
- - ✅ Memory usage optimized
895
- - ✅ Parallel processing supported
896
- - ✅ Scalability verified
897
-
898
- #### Quality Criteria
899
-
900
- - ✅ Code quality validation passed
901
- - ✅ Security scanning passed
902
- - ✅ Documentation completeness verified
903
- - ✅ Maintainability verified
904
-
905
- ### Next Steps
906
-
907
- 1. **Immediate**: Requirements analysis (1-2 days)
908
- 2. **Weekly Goal**: Complete design (3-5 days)
909
- 3. **2-Week Goal**: Complete development (7-14 days)
910
- 4. **Deployment Prep**: Testing and verification (14-16 days)
911
- """
912
-
913
- return plan_content
914
-
915
- def _generate_architecture_diagram(self, extraction: Dict[str, Any], domain: str) -> str:
916
- """Generate architecture diagram."""
917
- if domain == "auth":
918
- return """
919
- Client → [API Gateway] → [Auth Service] → [Database]
920
- ↑ ↓ ↓
921
- [UI Layer] [Log Service] [Cache]
922
- """
923
- elif domain == "api":
924
- return """
925
- Client → [Load Balancer] → [API Gateway] → [Service 1]
926
-
927
- [Service 2]
928
-
929
- [Database]
930
- """
931
- elif domain == "data":
932
- return """
933
- [Application] → [Data Service] → [Database]
934
- ↑ ↓
935
- [Cache Layer] [Analytics]
936
- """
937
- else:
938
- return """
939
- [Client] → [Service] → [Database]
940
- ↑ ↓
941
- [UI] [Cache]
942
- """
943
-
944
- def _get_main_component(self, extraction: Dict[str, Any], domain: str) -> str:
945
- """Get main component name."""
946
- components = {
947
- "auth": "AuthService",
948
- "api": "APIController",
949
- "data": "DataService",
950
- "ui": "UIController",
951
- "business": "BusinessLogic",
952
- }
953
- return components.get(domain, "MainComponent")
954
-
955
- def _get_service_component(self, extraction: Dict[str, Any], domain: str) -> str:
956
- """Get service component name."""
957
- components = {
958
- "auth": "UserService",
959
- "api": "ExternalService",
960
- "data": "PersistenceService",
961
- "ui": "ClientService",
962
- "business": "WorkflowService",
963
- }
964
- return components.get(domain, "ServiceComponent")
965
-
966
- def _get_data_component(self, extraction: Dict[str, Any], domain: str) -> str:
967
- """Get data component name."""
968
- components = {
969
- "auth": "UserRepository",
970
- "api": "DataRepository",
971
- "data": "DataAccessLayer",
972
- "ui": "StateManagement",
973
- "business": "DataProcessor",
974
- }
975
- return components.get(domain, "DataComponent")
976
-
977
- def _get_component_4(self, extraction: Dict[str, Any], domain: str) -> str:
978
- """Get fourth component name."""
979
- components = {
980
- "auth": "SecurityManager",
981
- "api": "RateLimiter",
982
- "data": "DataValidator",
983
- "ui": "FormValidator",
984
- "business": "RuleEngine",
985
- }
986
- return components.get(domain, "ValidationComponent")
987
-
988
- def _get_new_modules(self, extraction: Dict[str, Any], domain: str) -> str:
989
- """Get new modules to be added."""
990
- modules = {
991
- "auth": "Authentication module, Security module, Session management module",
992
- "api": "Routing module, Middleware module, Authentication module",
993
- "data": "Database module, Cache module, Backup module",
994
- "ui": "Component library, State management module",
995
- "business": "Business rules module, Workflow module",
996
- }
997
- return modules.get(domain, "Standard modules")
998
-
999
- def _generate_acceptance_content(
1000
- self,
1001
- extraction: Dict[str, Any],
1002
- domain: str,
1003
- spec_id: str,
1004
- custom_config: Dict[str, Any] = None,
1005
- ) -> str:
1006
- """Generate acceptance.md content."""
1007
-
1008
- acceptance_content = f"""---
1009
- "id": "ACCEPT-{spec_id}",
1010
- "spec_id": "SPEC-{spec_id}",
1011
- "title": "Auto-generated Acceptance Criteria for {extraction["file_name"]}",
1012
- "version": "1.0.0",
1013
- "status": "pending",
1014
- "created": "{time.strftime("%Y-%m-%d")}",
1015
- "author": "@alfred-auto",
1016
- "domain": "{domain}"
1017
- }}
1018
- ---
1019
-
1020
- ## Auto-generated Acceptance Criteria for {extraction["file_name"]}
1021
-
1022
- ### Acceptance Criteria
1023
-
1024
- #### Basic Functionality
1025
-
1026
- **Must-have:**
1027
- - [ ] System SHALL operate normally
1028
- - [ ] User interface SHALL display correctly
1029
- - [ ] Data processing logic SHALL operate correctly
1030
- - [ ] Error situations SHALL be handled appropriately
1031
- - [ ] Logging SHALL operate correctly
1032
-
1033
- **Should-have:**
1034
- - [ ] User experience SHALL be smooth
1035
- - [ ] Performance goals SHALL be met
1036
- - [ ] Security requirements SHALL be met
1037
- - [ ] Accessibility standards SHALL be complied with
1038
-
1039
- #### {domain.upper()} Domain Specific
1040
-
1041
- {self._generate_domain_specific_acceptance(domain)}
1042
-
1043
- #### Performance Testing
1044
-
1045
- **Performance Requirements:**
1046
- - [ ] Response time: Within 1 second
1047
- - [ ] Concurrent users: Support 100+ users
1048
- - [ ] Memory usage: Under 100MB
1049
- - [ ] CPU usage: Under 50%
1050
-
1051
- **Load Testing:**
1052
- - [ ] Pass functional load tests
1053
- - [ ] Pass long-term stability tests
1054
- - [ ] Pass recovery tests
1055
-
1056
- #### Security Testing
1057
-
1058
- **Security Requirements:**
1059
- - [ ] Pass authentication and authorization validation
1060
- - [ ] Pass input validation
1061
- - [ ] Pass SQL injection defense
1062
- - [ ] Pass CSRF defense
1063
- - [ ] Pass XSS defense
1064
-
1065
- **Vulnerability Testing:**
1066
- - [ ] Pass OWASP Top 10 checks
1067
- - [ ] Pass security scanning
1068
- - [ ] Pass permission configuration validation
1069
-
1070
- ### Validation Process
1071
-
1072
- #### Phase 1: Unit Tests
1073
-
1074
- - [ ] Complete developer testing
1075
- - [ ] Pass code review
1076
- - [ ] Pass automated testing
1077
- - [ ] Code coverage above 85%
1078
-
1079
- #### Phase 2: Integration Tests
1080
-
1081
- - [ ] Inter-module integration testing
1082
- - [ ] API integration testing
1083
- - [ ] Database integration testing
1084
- - [ ] External service integration testing
1085
-
1086
- #### Phase 3: System Tests
1087
-
1088
- - [ ] Full system functionality testing
1089
- - [ ] Performance testing
1090
- - [ ] Security testing
1091
- - [ ] Stability testing
1092
-
1093
- #### Phase 4: User Tests
1094
-
1095
- - [ ] Internal user testing
1096
- - [ ] Actual user testing
1097
- - [ ] Feedback collection and incorporation
1098
- - [ ] Final validation approval
1099
-
1100
- ### Validation Templates
1101
-
1102
- #### Functional Validation Template
1103
-
1104
- | Function ID | Function Name | Expected Result | Actual Result | Status | Notes |
1105
- |-------------|---------------|-----------------|---------------|--------|-------|
1106
- | FUNC-001 | Feature 1 | Success | Testing | In Progress | Description |
1107
- | FUNC-002 | Feature 2 | Success | Success | Passed | Description |
1108
- | FUNC-003 | Feature 3 | Success | Failed | Failed | Description |
1109
-
1110
- #### Performance Validation Template
1111
-
1112
- | Test Item | Target | Measured | Status | Notes |
1113
- |-----------|--------|----------|--------|-------|
1114
- | Response Time | 1 sec | 0.8 sec | Passed | Description |
1115
- | Memory Usage | 100MB | 85MB | Passed | Description |
1116
- | CPU Usage | 50% | 45% | Passed | Description |
1117
-
1118
- ### Completion Criteria
1119
-
1120
- #### Pass Criteria
1121
-
1122
- - ✅ All essential functionality validation passed
1123
- - ✅ Performance requirements met
1124
- - ✅ Security testing passed
1125
- - ✅ User validation passed
1126
- - ✅ Documentation validation completed
1127
-
1128
- #### Reporting
1129
-
1130
- - [ ] Write validation report
1131
- - [ ] Organize discovered issues list
1132
- - [ ] Define improvements
1133
- - [ ] Write validation approval document
1134
-
1135
- **Validation Team:**
1136
- - Developer: @developer
1137
- - QA: @qa_engineer
1138
- - Product Owner: @product_owner
1139
- - Final Validator: @stakeholder
1140
- """
1141
-
1142
- return acceptance_content
1143
-
1144
- def _generate_domain_specific_acceptance(self, domain: str) -> str:
1145
- """Generate domain-specific acceptance criteria."""
1146
- domain_criteria = {
1147
- "auth": """
1148
- - **AUTH-001**: User login functionality validation
1149
- - SHALL allow login with user ID and password
1150
- - SHALL issue session token on success
1151
- - SHALL display appropriate error message on failure
1152
- - **AUTH-002**: User registration functionality validation
1153
- - SHALL allow new user registration
1154
- - SHALL check for duplicate IDs correctly
1155
- - MAY require email verification
1156
- - **AUTH-003**: Password change functionality validation
1157
- - SHALL allow password change after verification
1158
- - SHALL validate password complexity
1159
- - SHALL send notification on change""",
1160
- "api": """
1161
- - **API-001**: REST API functionality validation
1162
- - SHALL operate CRUD operations correctly
1163
- - SHALL return correct HTTP status codes
1164
- - SHALL manage API versioning
1165
- - **API-002**: Authentication functionality validation
1166
- - SHALL operate API key-based authentication
1167
- - SHALL process JWT tokens correctly
1168
- - SHALL implement permission-level access control
1169
- - **API-003**: Rate limiting functionality validation
1170
- - SHALL operate request limits correctly
1171
- - SHALL return appropriate errors when limit exceeded""",
1172
- "data": """
1173
- - **DATA-001**: Data storage functionality validation
1174
- - SHALL store data correctly
1175
- - SHALL maintain data integrity
1176
- - SHALL provide backup and restore functionality
1177
- - **DATA-002**: Data retrieval functionality validation
1178
- - SHALL retrieve data accurately
1179
- - SHALL meet query performance goals
1180
- - SHALL operate indexing correctly
1181
- - **DATA-003**: Data management functionality validation
1182
- - SHALL allow data modification
1183
- - SHALL handle data deletion safely
1184
- - MAY require data migration functionality""",
1185
- }
1186
- return domain_criteria.get(domain, "")
1187
-
1188
- def _validate_ears_compliance(self, spec_content: Dict[str, str]) -> Dict[str, Any]:
1189
- """Validate EARS format compliance."""
1190
- spec_md = spec_content.get("spec_md", "")
1191
-
1192
- # Check for required sections
1193
- required_sections = [
1194
- "Overview",
1195
- "Environment",
1196
- "Assumptions",
1197
- "Requirements",
1198
- "Specifications",
1199
- "Traceability",
1200
- ]
1201
-
1202
- section_scores = {}
1203
- for section in required_sections:
1204
- if section in spec_md:
1205
- section_scores[section] = 1.0
1206
- else:
1207
- section_scores[section] = 0.0
1208
-
1209
- # Calculate overall compliance
1210
- overall_compliance = sum(section_scores.values()) / len(required_sections)
1211
-
1212
- # Generate suggestions
1213
- suggestions = []
1214
- for section, score in section_scores.items():
1215
- if score < 1.0:
1216
- suggestions.append(f"Required: {section} section must be included")
1217
-
1218
- return {
1219
- "ears_compliance": round(overall_compliance, 2),
1220
- "section_scores": section_scores,
1221
- "suggestions": suggestions[:5], # Top 5 suggestions
1222
- "total_sections": len(required_sections),
1223
- "present_sections": sum(1 for score in section_scores.values() if score > 0),
1224
- }
1225
-
1226
- def _detect_framework(self, extraction: Dict[str, Any]) -> str:
1227
- """Detect framework from imports."""
1228
- imports = extraction["imports"]
1229
-
1230
- framework_indicators = {
1231
- "Django": ["django"],
1232
- "Flask": ["flask"],
1233
- "FastAPI": ["fastapi"],
1234
- "Spring": ["spring"],
1235
- "Express": ["express"],
1236
- "React": ["react"],
1237
- "Angular": ["angular"],
1238
- "Vue": ["vue"],
1239
- "Next.js": ["next"],
1240
- }
1241
-
1242
- for framework, indicators in framework_indicators.items():
1243
- for imp in imports:
1244
- if any(indicator in imp.lower() for indicator in indicators):
1245
- return framework
1246
-
1247
- return "Custom"