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
@@ -0,0 +1,1414 @@
1
+ # Ralph Engine Complete Reference
2
+
3
+ ## Configuration Reference
4
+
5
+ ### Complete ralph.yaml Options
6
+
7
+ | Option | Type | Default | Description |
8
+ | --------------------------------------------------- | ------- | ------------------------------------------------------ | --------------------------------------------------------- |
9
+ | `ralph.enabled` | boolean | `true` | Enable/disable Ralph Engine globally |
10
+ | `ralph.lsp.auto_start` | boolean | `true` | Auto-start LSP servers when needed |
11
+ | `ralph.lsp.timeout_seconds` | integer | `30` | Timeout for LSP operations (seconds) |
12
+ | `ralph.lsp.poll_interval_ms` | integer | `500` | Polling interval for diagnostics (milliseconds) |
13
+ | `ralph.lsp.graceful_degradation` | boolean | `true` | Continue if LSP unavailable (fallback to linters) |
14
+ | `ralph.ast_grep.enabled` | boolean | `true` | Enable AST-grep security scanning |
15
+ | `ralph.ast_grep.config_path` | string | `.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml` | Path to AST-grep configuration |
16
+ | `ralph.ast_grep.security_scan` | boolean | `true` | Enable security vulnerability scanning |
17
+ | `ralph.ast_grep.quality_scan` | boolean | `true` | Enable code quality pattern scanning |
18
+ | `ralph.ast_grep.auto_fix` | boolean | `false` | Auto-fix without confirmation (dangerous) |
19
+ | `ralph.loop.max_iterations` | integer | `10` | Maximum feedback loop iterations |
20
+ | `ralph.loop.auto_fix` | boolean | `false` | Require confirmation before auto-fixing |
21
+ | `ralph.loop.require_confirmation` | boolean | `true` | Ask user before applying fixes |
22
+ | `ralph.loop.cooldown_seconds` | integer | `2` | Minimum time between loop iterations |
23
+ | `ralph.loop.completion.zero_errors` | boolean | `true` | Require zero LSP errors to complete |
24
+ | `ralph.loop.completion.zero_warnings` | boolean | `false` | Require zero LSP warnings to complete |
25
+ | `ralph.loop.completion.tests_pass` | boolean | `true` | Require all tests to pass |
26
+ | `ralph.loop.completion.coverage_threshold` | integer | `85` | Minimum test coverage percentage (0 to disable) |
27
+ | `ralph.git.auto_branch` | boolean | `false` | Auto-create git branches (use git-strategy.yaml instead) |
28
+ | `ralph.git.auto_pr` | boolean | `false` | Auto-create pull requests (use git-strategy.yaml instead) |
29
+ | `ralph.hooks.post_tool_lsp.enabled` | boolean | `true` | Enable LSP diagnostic hook |
30
+ | `ralph.hooks.post_tool_lsp.trigger_on` | list | `["Write", "Edit"]` | Tools that trigger LSP diagnostics |
31
+ | `ralph.hooks.post_tool_lsp.severity_threshold` | string | `"error"` | Minimum severity to report: error, warning, info |
32
+ | `ralph.hooks.stop_loop_controller.enabled` | boolean | `true` | Enable loop controller hook |
33
+ | `ralph.hooks.stop_loop_controller.check_completion` | boolean | `true` | Check completion conditions on each response |
34
+
35
+ ### Example Configuration
36
+
37
+ ```yaml
38
+ ralph:
39
+ enabled: true
40
+
41
+ lsp:
42
+ auto_start: true
43
+ timeout_seconds: 30
44
+ poll_interval_ms: 500
45
+ graceful_degradation: true
46
+
47
+ ast_grep:
48
+ enabled: true
49
+ security_scan: true
50
+ quality_scan: true
51
+ auto_fix: false
52
+
53
+ loop:
54
+ max_iterations: 10
55
+ auto_fix: false
56
+ require_confirmation: true
57
+ cooldown_seconds: 2
58
+
59
+ completion:
60
+ zero_errors: true
61
+ zero_warnings: false
62
+ tests_pass: true
63
+ coverage_threshold: 85
64
+
65
+ hooks:
66
+ post_tool_lsp:
67
+ enabled: true
68
+ trigger_on: ["Write", "Edit"]
69
+ severity_threshold: "error"
70
+
71
+ stop_loop_controller:
72
+ enabled: true
73
+ check_completion: true
74
+ ```
75
+
76
+ ---
77
+
78
+ ## Environment Variables Reference
79
+
80
+ | Variable | Type | Description | Example |
81
+ | ------------------------------ | ------- | -------------------------------------- | -------------------------------- |
82
+ | `MOAI_DISABLE_LSP_DIAGNOSTIC` | boolean | Disable LSP diagnostic hook | `MOAI_DISABLE_LSP_DIAGNOSTIC=1` |
83
+ | `MOAI_DISABLE_LOOP_CONTROLLER` | boolean | Disable loop controller hook | `MOAI_DISABLE_LOOP_CONTROLLER=1` |
84
+ | `MOAI_LOOP_ACTIVE` | boolean | Loop active flag (set by commands) | `MOAI_LOOP_ACTIVE=1` |
85
+ | `MOAI_LOOP_ITERATION` | integer | Current iteration number | `MOAI_LOOP_ITERATION=3` |
86
+ | `CLAUDE_PROJECT_DIR` | string | Project root path (set by Claude Code) | `/path/to/project` |
87
+
88
+ ### Environment Variable Usage
89
+
90
+ Enable/Disable Hooks:
91
+
92
+ ```bash
93
+ # Disable LSP diagnostics temporarily
94
+ export MOAI_DISABLE_LSP_DIAGNOSTIC=1
95
+ claude -p "Make changes"
96
+
97
+ # Disable loop controller
98
+ export MOAI_DISABLE_LOOP_CONTROLLER=1
99
+ claude -p "Single run only"
100
+ ```
101
+
102
+ Set Loop State (for CI/CD):
103
+
104
+ ```bash
105
+ # Start loop with iteration count
106
+ export MOAI_LOOP_ACTIVE=1
107
+ export MOAI_LOOP_ITERATION=0
108
+ claude -p "/moai:loop --max-iterations 5"
109
+ ```
110
+
111
+ ---
112
+
113
+ ## API Reference
114
+
115
+ ### MoAILSPClient
116
+
117
+ High-level LSP client interface for getting diagnostics, finding references, renaming symbols, and other LSP operations.
118
+
119
+ #### Constructor
120
+
121
+ ```python
122
+ MoAILSPClient(project_root: str | Path)
123
+ ```
124
+
125
+ Initialize the LSP client.
126
+
127
+ **Parameters:**
128
+
129
+ - `project_root`: Path to the project root directory
130
+
131
+ **Raises:**
132
+
133
+ - `LSPClientError`: If initialization fails
134
+
135
+ **Example:**
136
+
137
+ ```python
138
+ from moai_adk.lsp.client import MoAILSPClient
139
+
140
+ client = MoAILSPClient(project_root="/path/to/project")
141
+ ```
142
+
143
+ #### Methods
144
+
145
+ ##### get_diagnostics
146
+
147
+ ```python
148
+ async def get_diagnostics(file_path: str) -> list[Diagnostic]
149
+ ```
150
+
151
+ Get diagnostics for a file.
152
+
153
+ **Parameters:**
154
+
155
+ - `file_path`: Path to the file (relative or absolute)
156
+
157
+ **Returns:**
158
+
159
+ - List of `Diagnostic` objects
160
+
161
+ **Example:**
162
+
163
+ ```python
164
+ diagnostics = await client.get_diagnostics("src/auth.py")
165
+
166
+ for diag in diagnostics:
167
+ if diag.is_error():
168
+ print(f"Error at line {diag.range.start.line}: {diag.message}")
169
+ ```
170
+
171
+ ##### find_references
172
+
173
+ ```python
174
+ async def find_references(file_path: str, position: Position) -> list[Location]
175
+ ```
176
+
177
+ Find all references to the symbol at position.
178
+
179
+ **Parameters:**
180
+
181
+ - `file_path`: Path to the file
182
+ - `position`: Position of the symbol (`Position(line, character)`)
183
+
184
+ **Returns:**
185
+
186
+ - List of `Location` objects
187
+
188
+ **Example:**
189
+
190
+ ```python
191
+ from moai_adk.lsp.models import Position
192
+
193
+ position = Position(line=45, character=10)
194
+ references = await client.find_references("src/user.py", position)
195
+
196
+ for ref in references:
197
+ print(f"Found in {ref.uri} at line {ref.range.start.line}")
198
+ ```
199
+
200
+ ##### rename_symbol
201
+
202
+ ```python
203
+ async def rename_symbol(file_path: str, position: Position, new_name: str) -> WorkspaceEdit
204
+ ```
205
+
206
+ Rename the symbol at position across the project.
207
+
208
+ **Parameters:**
209
+
210
+ - `file_path`: Path to the file
211
+ - `position`: Position of the symbol
212
+ - `new_name`: New name for the symbol
213
+
214
+ **Returns:**
215
+
216
+ - `WorkspaceEdit` with all changes
217
+
218
+ **Example:**
219
+
220
+ ```python
221
+ position = Position(line=10, character=5)
222
+ edit = await client.rename_symbol("src/user.py", position, "new_name")
223
+
224
+ print(f"Will modify {edit.file_count()} file(s)")
225
+ for uri, text_edits in edit.changes.items():
226
+ print(f" {uri}: {len(text_edits)} edit(s)")
227
+ ```
228
+
229
+ ##### get_hover_info
230
+
231
+ ```python
232
+ async def get_hover_info(file_path: str, position: Position) -> HoverInfo | None
233
+ ```
234
+
235
+ Get hover information for position.
236
+
237
+ **Parameters:**
238
+
239
+ - `file_path`: Path to the file
240
+ - `position`: Position to get hover info for
241
+
242
+ **Returns:**
243
+
244
+ - `HoverInfo` or `None` if not available
245
+
246
+ **Example:**
247
+
248
+ ```python
249
+ position = Position(line=20, character=15)
250
+ hover = await client.get_hover_info("src/utils.py", position)
251
+
252
+ if hover:
253
+ print(f"Documentation: {hover.contents}")
254
+ ```
255
+
256
+ ##### get_language_for_file
257
+
258
+ ```python
259
+ def get_language_for_file(file_path: str) -> str | None
260
+ ```
261
+
262
+ Get the language identifier for a file.
263
+
264
+ **Parameters:**
265
+
266
+ - `file_path`: Path to the file
267
+
268
+ **Returns:**
269
+
270
+ - Language identifier (e.g., "python", "typescript") or `None`
271
+
272
+ **Example:**
273
+
274
+ ```python
275
+ language = client.get_language_for_file("src/app.py")
276
+ # Returns: "python"
277
+ ```
278
+
279
+ ##### ensure_server_running
280
+
281
+ ```python
282
+ async def ensure_server_running(language: str) -> None
283
+ ```
284
+
285
+ Ensure an LSP server is running for a language.
286
+
287
+ **Parameters:**
288
+
289
+ - `language`: Language identifier (e.g., "python", "typescript")
290
+
291
+ **Example:**
292
+
293
+ ```python
294
+ await client.ensure_server_running("python")
295
+ ```
296
+
297
+ ##### cleanup
298
+
299
+ ```python
300
+ async def cleanup() -> None
301
+ ```
302
+
303
+ Clean up by stopping all LSP servers.
304
+
305
+ **Example:**
306
+
307
+ ```python
308
+ await client.cleanup()
309
+ ```
310
+
311
+ ---
312
+
313
+ ### Diagnostic Models
314
+
315
+ #### DiagnosticSeverity
316
+
317
+ Enum for diagnostic severity levels (LSP 3.17 specification).
318
+
319
+ | Value | Integer | Description |
320
+ | ------------- | ------- | ---------------------- |
321
+ | `ERROR` | 1 | Reports an error |
322
+ | `WARNING` | 2 | Reports a warning |
323
+ | `INFORMATION` | 3 | Reports an information |
324
+ | `HINT` | 4 | Reports a hint |
325
+
326
+ **Example:**
327
+
328
+ ```python
329
+ from moai_adk.lsp.models import DiagnosticSeverity
330
+
331
+ if diagnostic.severity == DiagnosticSeverity.ERROR:
332
+ print("Critical error found")
333
+ ```
334
+
335
+ #### Position
336
+
337
+ Zero-based line and character position in a text document.
338
+
339
+ **Attributes:**
340
+
341
+ - `line`: Line position (zero-based)
342
+ - `character`: Character offset on a line (zero-based)
343
+
344
+ **Example:**
345
+
346
+ ```python
347
+ from moai_adk.lsp.models import Position
348
+
349
+ # Line 45, character 10 (like an editor cursor)
350
+ pos = Position(line=44, character=10)
351
+ ```
352
+
353
+ #### Range
354
+
355
+ Range in a text document expressed as start and end positions.
356
+
357
+ **Attributes:**
358
+
359
+ - `start`: Range's start position (inclusive)
360
+ - `end`: Range's end position (exclusive)
361
+
362
+ **Methods:**
363
+
364
+ - `contains(position: Position) -> bool`: Check if position is within range
365
+ - `is_single_line() -> bool`: Check if range spans only one line
366
+
367
+ **Example:**
368
+
369
+ ```python
370
+ from moai_adk.lsp.models import Range, Position
371
+
372
+ range = Range(
373
+ start=Position(line=10, character=0),
374
+ end=Position(line=10, character=20)
375
+ )
376
+
377
+ if range.contains(Position(line=10, character=5)):
378
+ print("Position is in range")
379
+
380
+ if range.is_single_line():
381
+ print("Single-line range")
382
+ ```
383
+
384
+ #### Diagnostic
385
+
386
+ Represents a diagnostic issue (error, warning, etc.) in source code.
387
+
388
+ **Attributes:**
389
+
390
+ - `range`: Range where the message applies
391
+ - `severity`: Diagnostic severity (`DiagnosticSeverity`)
392
+ - `code`: Diagnostic code (string, int, or None)
393
+ - `source`: Diagnostic source (e.g., "pyright", "mypy")
394
+ - `message`: Diagnostic message
395
+
396
+ **Methods:**
397
+
398
+ - `is_error() -> bool`: Check if severity is ERROR
399
+
400
+ **Example:**
401
+
402
+ ```python
403
+ from moai_adk.lsp.models import Diagnostic, DiagnosticSeverity, Range, Position
404
+
405
+ diagnostic = Diagnostic(
406
+ range=Range(Position(45, 0), Position(45, 10)),
407
+ severity=DiagnosticSeverity.ERROR,
408
+ code="E0602",
409
+ source="pyright",
410
+ message="Undefined name 'x'"
411
+ )
412
+
413
+ if diagnostic.is_error():
414
+ print(f"Error: {diagnostic.message}")
415
+ ```
416
+
417
+ #### Location
418
+
419
+ Location inside a resource (file path + range).
420
+
421
+ **Attributes:**
422
+
423
+ - `uri`: Resource URI (e.g., "file:///path/to/file.py")
424
+ - `range`: Range within the resource
425
+
426
+ **Example:**
427
+
428
+ ```python
429
+ from moai_adk.lsp.models import Location, Range, Position
430
+
431
+ location = Location(
432
+ uri="file:///home/user/project/src/main.py",
433
+ range=Range(Position(10, 0), Position(10, 20))
434
+ )
435
+ ```
436
+
437
+ #### TextEdit
438
+
439
+ Text edit applicable to a text document.
440
+
441
+ **Attributes:**
442
+
443
+ - `range`: Range to be manipulated
444
+ - `new_text`: String to be inserted (empty for delete)
445
+
446
+ **Methods:**
447
+
448
+ - `is_delete() -> bool`: Check if edit is a deletion
449
+ - `is_insert() -> bool`: Check if edit is an insertion
450
+
451
+ **Example:**
452
+
453
+ ```python
454
+ from moai_adk.lsp.models import TextEdit, Range, Position
455
+
456
+ # Replace text
457
+ edit = TextEdit(
458
+ range=Range(Position(5, 0), Position(5, 10)),
459
+ new_text="new_value"
460
+ )
461
+
462
+ # Delete text
463
+ delete_edit = TextEdit(
464
+ range=Range(Position(10, 0), Position(11, 0)),
465
+ new_text=""
466
+ )
467
+
468
+ if delete_edit.is_delete():
469
+ print("This is a deletion")
470
+ ```
471
+
472
+ #### WorkspaceEdit
473
+
474
+ Workspace edit represents changes to many resources.
475
+
476
+ **Attributes:**
477
+
478
+ - `changes`: Dict mapping URI to list of `TextEdit` objects
479
+
480
+ **Methods:**
481
+
482
+ - `file_count() -> int`: Get number of files affected
483
+
484
+ **Example:**
485
+
486
+ ```python
487
+ from moai_adk.lsp.models import WorkspaceEdit, TextEdit, Range, Position
488
+
489
+ edit = WorkspaceEdit(changes={
490
+ "file:///path/to/file1.py": [
491
+ TextEdit(Range(Position(10, 0), Position(10, 5)), "new_name")
492
+ ],
493
+ "file:///path/to/file2.py": [
494
+ TextEdit(Range(Position(20, 0), Position(20, 5)), "new_name")
495
+ ]
496
+ })
497
+
498
+ print(f"Editing {edit.file_count()} file(s)")
499
+ ```
500
+
501
+ #### HoverInfo
502
+
503
+ Hover information for a symbol.
504
+
505
+ **Attributes:**
506
+
507
+ - `contents`: Hover content (can be markdown)
508
+ - `range`: Optional range for the symbol
509
+
510
+ **Example:**
511
+
512
+ ```python
513
+ from moai_adk.lsp.models import HoverInfo, Range, Position
514
+
515
+ hover = HoverInfo(
516
+ contents="**my_function**\n\nCalculates the sum of two numbers.",
517
+ range=Range(Position(10, 0), Position(10, 11))
518
+ )
519
+ ```
520
+
521
+ ---
522
+
523
+ ## Hook Specifications
524
+
525
+ ### PostToolUse Hook (post_tool\_\_lsp_diagnostic.py)
526
+
527
+ Triggered after Write/Edit operations to check for LSP diagnostics.
528
+
529
+ #### Input Format
530
+
531
+ ```json
532
+ {
533
+ "tool_name": "Write",
534
+ "tool_input": {
535
+ "file_path": "/path/to/file.py",
536
+ "content": "..."
537
+ }
538
+ }
539
+ ```
540
+
541
+ #### Output Format
542
+
543
+ ```json
544
+ {
545
+ "hookSpecificOutput": {
546
+ "hookEventName": "PostToolUse",
547
+ "additionalContext": "LSP: 2 error(s), 3 warning(s) in file.py\n - [ERROR] Line 45: undefined name 'x'\n - [ERROR] Line 52: type mismatch\n - [WARNING] Line 30: unused variable"
548
+ }
549
+ }
550
+ ```
551
+
552
+ #### Exit Codes
553
+
554
+ | Code | Meaning | Effect |
555
+ | ---- | ------------------------------- | -------------------------------------- |
556
+ | 0 | No action needed | Hook completes normally |
557
+ | 2 | Attention needed (errors found) | Claude Code displays diagnostic output |
558
+
559
+ #### Configuration
560
+
561
+ Controlled by `ralph.hooks.post_tool_lsp` in ralph.yaml:
562
+
563
+ ```yaml
564
+ hooks:
565
+ post_tool_lsp:
566
+ enabled: true
567
+ trigger_on: ["Write", "Edit"]
568
+ severity_threshold: "error" # error, warning, info
569
+ ```
570
+
571
+ #### Disable Hook
572
+
573
+ ```bash
574
+ export MOAI_DISABLE_LSP_DIAGNOSTIC=1
575
+ ```
576
+
577
+ ---
578
+
579
+ ### Stop Hook (stop\_\_loop_controller.py)
580
+
581
+ Triggered after each Claude response to control feedback loop.
582
+
583
+ #### Input Format
584
+
585
+ ```json
586
+ {
587
+ "conversation_context": {
588
+ "messages": [...],
589
+ "current_task": "..."
590
+ }
591
+ }
592
+ ```
593
+
594
+ Note: Input is consumed but not currently used. Reserved for future enhancements.
595
+
596
+ #### Output Format
597
+
598
+ ```json
599
+ {
600
+ "hookSpecificOutput": {
601
+ "hookEventName": "Stop",
602
+ "additionalContext": "Ralph Loop: CONTINUE | Iteration: 3/10 | Errors: 2 | Warnings: 5 | Tests: FAIL | Coverage: 78.5%\nNext actions: Fix 2 error(s), Fix failing tests, Increase coverage from 78.5% to 85%"
603
+ }
604
+ }
605
+ ```
606
+
607
+ #### Exit Codes
608
+
609
+ | Code | Meaning | Effect |
610
+ | ---- | -------------------------------- | ----------------------------------------- |
611
+ | 0 | Loop complete or inactive | Claude Code stops processing |
612
+ | 1 | Continue loop (more work needed) | Claude Code continues with next iteration |
613
+
614
+ #### Configuration
615
+
616
+ Controlled by `ralph.hooks.stop_loop_controller` in ralph.yaml:
617
+
618
+ ```yaml
619
+ hooks:
620
+ stop_loop_controller:
621
+ enabled: true
622
+ check_completion: true
623
+ ```
624
+
625
+ #### Disable Hook
626
+
627
+ ```bash
628
+ export MOAI_DISABLE_LOOP_CONTROLLER=1
629
+ ```
630
+
631
+ ---
632
+
633
+ ## State File Format
634
+
635
+ ### Loop State File (.moai_loop_state.json)
636
+
637
+ Location: `.moai/cache/.moai_loop_state.json`
638
+
639
+ #### Schema
640
+
641
+ ```json
642
+ {
643
+ "active": true,
644
+ "iteration": 3,
645
+ "max_iterations": 10,
646
+ "last_error_count": 2,
647
+ "last_warning_count": 5,
648
+ "files_modified": ["src/auth.py", "src/user.py"],
649
+ "start_time": 1704380400.0,
650
+ "completion_reason": null
651
+ }
652
+ ```
653
+
654
+ #### Field Descriptions
655
+
656
+ | Field | Type | Description |
657
+ | -------------------- | -------------- | ------------------------------------------------------------------------------- |
658
+ | `active` | boolean | Whether the loop is currently active |
659
+ | `iteration` | integer | Current iteration number (1-based) |
660
+ | `max_iterations` | integer | Maximum allowed iterations |
661
+ | `last_error_count` | integer | Number of errors from last check |
662
+ | `last_warning_count` | integer | Number of warnings from last check |
663
+ | `files_modified` | array | List of files modified during loop |
664
+ | `start_time` | float | Unix timestamp when loop started |
665
+ | `completion_reason` | string or null | Reason for completion ("All conditions met", "Max iterations reached", or null) |
666
+
667
+ #### State Transitions
668
+
669
+ ```
670
+ Initial State:
671
+ {
672
+ "active": false,
673
+ "iteration": 0,
674
+ ...
675
+ }
676
+
677
+ After /moai:loop:
678
+ {
679
+ "active": true,
680
+ "iteration": 1,
681
+ "start_time": <current_timestamp>,
682
+ ...
683
+ }
684
+
685
+ During Loop (errors found):
686
+ {
687
+ "active": true,
688
+ "iteration": 2,
689
+ "last_error_count": 3,
690
+ ...
691
+ }
692
+
693
+ Completion (success):
694
+ {
695
+ "active": false,
696
+ "completion_reason": "All conditions met"
697
+ }
698
+
699
+ Completion (max iterations):
700
+ {
701
+ "active": false,
702
+ "iteration": 10,
703
+ "completion_reason": "Max iterations reached"
704
+ }
705
+ ```
706
+
707
+ ---
708
+
709
+ ## LSP Configuration
710
+
711
+ ### .lsp.json Format
712
+
713
+ Location: `.lsp.json` (project root)
714
+
715
+ #### Schema
716
+
717
+ ```json
718
+ {
719
+ "servers": {
720
+ "python": {
721
+ "command": "pyright-langserver",
722
+ "args": ["--stdio"],
723
+ "file_extensions": [".py"],
724
+ "initialization_options": {}
725
+ },
726
+ "typescript": {
727
+ "command": "typescript-language-server",
728
+ "args": ["--stdio"],
729
+ "file_extensions": [".ts", ".tsx", ".js", ".jsx"]
730
+ },
731
+ "go": {
732
+ "command": "gopls",
733
+ "args": ["serve"],
734
+ "file_extensions": [".go"]
735
+ }
736
+ },
737
+ "global_settings": {
738
+ "timeout_seconds": 30,
739
+ "retry_attempts": 3
740
+ }
741
+ }
742
+ ```
743
+
744
+ #### Field Descriptions
745
+
746
+ **Server Configuration:**
747
+
748
+ - `command`: LSP server command (must be in PATH)
749
+ - `args`: Command-line arguments
750
+ - `file_extensions`: File extensions this server handles
751
+ - `initialization_options`: Server-specific initialization options (optional)
752
+
753
+ **Global Settings:**
754
+
755
+ - `timeout_seconds`: Default timeout for LSP operations
756
+ - `retry_attempts`: Number of retry attempts on failure
757
+
758
+ #### Supported Language Servers
759
+
760
+ | Language | Server | Command | Installation |
761
+ | --------------------- | ------------- | ------------------------------------ | -------------------------------------------- |
762
+ | Python | Pyright | `pyright-langserver --stdio` | `npm install -g pyright` |
763
+ | Python | pylsp | `pylsp` | `pip install python-lsp-server` |
764
+ | TypeScript/JavaScript | tsserver | `typescript-language-server --stdio` | `npm install -g typescript-language-server` |
765
+ | Go | gopls | `gopls serve` | `go install golang.org/x/tools/gopls@latest` |
766
+ | Rust | rust-analyzer | `rust-analyzer` | Via rustup |
767
+ | Java | jdtls | `jdtls` | Via Eclipse JDT LS |
768
+ | C/C++ | clangd | `clangd` | Via LLVM |
769
+
770
+ ---
771
+
772
+ ## AST-grep Configuration
773
+
774
+ ### sgconfig.yml Format
775
+
776
+ Location: `.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml`
777
+
778
+ #### Schema
779
+
780
+ ```yaml
781
+ ruleDirs:
782
+ - rules/security
783
+ - rules/quality
784
+
785
+ rules:
786
+ - id: sql-injection
787
+ language: python
788
+ message: Potential SQL injection vulnerability
789
+ severity: error
790
+ pattern: execute($SQL)
791
+ constraints:
792
+ SQL:
793
+ kind: string
794
+ not:
795
+ has:
796
+ kind: identifier
797
+
798
+ - id: xss-vulnerability
799
+ language: typescript
800
+ message: Potential XSS vulnerability
801
+ severity: error
802
+ pattern: innerHTML = $VAR
803
+ constraints:
804
+ VAR:
805
+ not:
806
+ matches: sanitize.*
807
+
808
+ - id: unused-import
809
+ language: python
810
+ message: Unused import statement
811
+ severity: warning
812
+ pattern: import $MODULE
813
+ fix: ""
814
+ ```
815
+
816
+ #### Field Descriptions
817
+
818
+ **Top-Level:**
819
+
820
+ - `ruleDirs`: Directories containing additional rule files
821
+ - `rules`: List of rule definitions
822
+
823
+ **Rule Definition:**
824
+
825
+ - `id`: Unique rule identifier
826
+ - `language`: Target language (python, typescript, go, rust, etc.)
827
+ - `message`: Diagnostic message
828
+ - `severity`: Severity level (error, warning, info)
829
+ - `pattern`: AST-grep search pattern
830
+ - `constraints`: Pattern constraints (optional)
831
+ - `fix`: Auto-fix template (optional)
832
+
833
+ #### Pattern Syntax
834
+
835
+ Metavariables:
836
+
837
+ - `$VAR`: Matches any expression
838
+ - `$STMT`: Matches any statement
839
+ - `$FUNC`: Matches function names
840
+
841
+ Constraints:
842
+
843
+ ```yaml
844
+ constraints:
845
+ VAR:
846
+ kind: identifier # Match specific AST node type
847
+ matches: ^[A-Z].* # Regex pattern
848
+ has: # Contains pattern
849
+ kind: string
850
+ not: # Negation
851
+ matches: sanitize.*
852
+ ```
853
+
854
+ ---
855
+
856
+ ## Troubleshooting
857
+
858
+ ### Common Issues and Solutions
859
+
860
+ #### Loop Not Starting
861
+
862
+ **Symptoms:**
863
+
864
+ - `/moai:loop` command does nothing
865
+ - No loop state file created
866
+
867
+ **Solutions:**
868
+
869
+ 1. Check if Ralph is enabled:
870
+
871
+ ```yaml
872
+ # .moai/config/sections/ralph.yaml
873
+ ralph:
874
+ enabled: true
875
+ ```
876
+
877
+ 2. Verify loop controller hook is enabled:
878
+
879
+ ```yaml
880
+ ralph:
881
+ hooks:
882
+ stop_loop_controller:
883
+ enabled: true
884
+ ```
885
+
886
+ 3. Check environment variable:
887
+
888
+ ```bash
889
+ unset MOAI_DISABLE_LOOP_CONTROLLER
890
+ ```
891
+
892
+ 4. Verify state file is writable:
893
+ ```bash
894
+ mkdir -p .moai/cache
895
+ chmod 755 .moai/cache
896
+ ```
897
+
898
+ ---
899
+
900
+ #### LSP Diagnostics Missing
901
+
902
+ **Symptoms:**
903
+
904
+ - No diagnostics after Write/Edit
905
+ - Hook exits with code 0 immediately
906
+
907
+ **Solutions:**
908
+
909
+ 1. Check if LSP hook is enabled:
910
+
911
+ ```yaml
912
+ ralph:
913
+ hooks:
914
+ post_tool_lsp:
915
+ enabled: true
916
+ ```
917
+
918
+ 2. Verify language server is installed:
919
+
920
+ ```bash
921
+ # Python
922
+ which pyright-langserver
923
+ pip install pyright
924
+
925
+ # TypeScript
926
+ which typescript-language-server
927
+ npm install -g typescript-language-server
928
+ ```
929
+
930
+ 3. Check .lsp.json configuration:
931
+
932
+ ```json
933
+ {
934
+ "servers": {
935
+ "python": {
936
+ "command": "pyright-langserver",
937
+ "args": ["--stdio"]
938
+ }
939
+ }
940
+ }
941
+ ```
942
+
943
+ 4. Check environment variable:
944
+
945
+ ```bash
946
+ unset MOAI_DISABLE_LSP_DIAGNOSTIC
947
+ ```
948
+
949
+ 5. Enable graceful degradation to use fallback linters:
950
+ ```yaml
951
+ ralph:
952
+ lsp:
953
+ graceful_degradation: true
954
+ ```
955
+
956
+ ---
957
+
958
+ #### Loop Stuck/Infinite Loop
959
+
960
+ **Symptoms:**
961
+
962
+ - Loop continues past max_iterations
963
+ - Never reaches completion
964
+
965
+ **Solutions:**
966
+
967
+ 1. Check max_iterations setting:
968
+
969
+ ```yaml
970
+ ralph:
971
+ loop:
972
+ max_iterations: 10 # Increase if needed
973
+ ```
974
+
975
+ 2. Review completion conditions:
976
+
977
+ ```yaml
978
+ ralph:
979
+ loop:
980
+ completion:
981
+ zero_errors: true
982
+ zero_warnings: false # Set to false to allow warnings
983
+ tests_pass: true
984
+ coverage_threshold: 85 # Set to 0 to disable
985
+ ```
986
+
987
+ 3. Manually cancel loop:
988
+
989
+ ```bash
990
+ /moai:cancel-loop
991
+ ```
992
+
993
+ 4. Delete state file:
994
+ ```bash
995
+ rm .moai/cache/.moai_loop_state.json
996
+ ```
997
+
998
+ ---
999
+
1000
+ #### Tests Not Detected
1001
+
1002
+ **Symptoms:**
1003
+
1004
+ - "No test framework detected" message
1005
+ - tests_pass always true
1006
+
1007
+ **Solutions:**
1008
+
1009
+ 1. Ensure test framework is installed:
1010
+
1011
+ ```bash
1012
+ # Python
1013
+ pip install pytest
1014
+
1015
+ # JavaScript/TypeScript
1016
+ npm install --save-dev jest
1017
+ ```
1018
+
1019
+ 2. Verify test configuration exists:
1020
+
1021
+ ```bash
1022
+ # Python
1023
+ ls pyproject.toml pytest.ini
1024
+
1025
+ # JavaScript
1026
+ ls package.json
1027
+ ```
1028
+
1029
+ 3. Check if tests can run manually:
1030
+
1031
+ ```bash
1032
+ # Python
1033
+ pytest
1034
+
1035
+ # JavaScript
1036
+ npm test
1037
+ ```
1038
+
1039
+ ---
1040
+
1041
+ #### Coverage Not Reported
1042
+
1043
+ **Symptoms:**
1044
+
1045
+ - Coverage shows -1.0 or missing
1046
+ - coverage_met always true
1047
+
1048
+ **Solutions:**
1049
+
1050
+ 1. Install coverage tool:
1051
+
1052
+ ```bash
1053
+ # Python
1054
+ pip install pytest-cov
1055
+
1056
+ # JavaScript
1057
+ npm install --save-dev @coverage/jest
1058
+ ```
1059
+
1060
+ 2. Generate coverage report:
1061
+
1062
+ ```bash
1063
+ # Python
1064
+ pytest --cov --cov-report=json
1065
+
1066
+ # JavaScript
1067
+ npm test -- --coverage --coverageReporters=json
1068
+ ```
1069
+
1070
+ 3. Verify coverage file exists:
1071
+
1072
+ ```bash
1073
+ ls coverage.json coverage.xml
1074
+ ```
1075
+
1076
+ 4. Disable coverage requirement:
1077
+ ```yaml
1078
+ ralph:
1079
+ loop:
1080
+ completion:
1081
+ coverage_threshold: 0
1082
+ ```
1083
+
1084
+ ---
1085
+
1086
+ #### AST-grep Not Running
1087
+
1088
+ **Symptoms:**
1089
+
1090
+ - No security/quality warnings
1091
+ - ast_grep diagnostics missing
1092
+
1093
+ **Solutions:**
1094
+
1095
+ 1. Check if AST-grep is enabled:
1096
+
1097
+ ```yaml
1098
+ ralph:
1099
+ ast_grep:
1100
+ enabled: true
1101
+ ```
1102
+
1103
+ 2. Verify ast-grep is installed:
1104
+
1105
+ ```bash
1106
+ which sg
1107
+ cargo install ast-grep
1108
+ ```
1109
+
1110
+ 3. Check configuration file exists:
1111
+
1112
+ ```bash
1113
+ ls .claude/skills/moai-tool-ast-grep/rules/sgconfig.yml
1114
+ ```
1115
+
1116
+ 4. Test ast-grep manually:
1117
+ ```bash
1118
+ sg scan --config sgconfig.yml
1119
+ ```
1120
+
1121
+ ---
1122
+
1123
+ #### Graceful Degradation Not Working
1124
+
1125
+ **Symptoms:**
1126
+
1127
+ - Hook fails when LSP unavailable
1128
+ - No fallback to linters
1129
+
1130
+ **Solutions:**
1131
+
1132
+ 1. Enable graceful degradation:
1133
+
1134
+ ```yaml
1135
+ ralph:
1136
+ lsp:
1137
+ graceful_degradation: true
1138
+ ```
1139
+
1140
+ 2. Ensure fallback linters are installed:
1141
+
1142
+ ```bash
1143
+ # Python
1144
+ pip install ruff
1145
+
1146
+ # JavaScript
1147
+ npm install -g eslint
1148
+
1149
+ # Go
1150
+ go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
1151
+ ```
1152
+
1153
+ 3. Check linter configuration:
1154
+
1155
+ ```bash
1156
+ # Python
1157
+ ls ruff.toml pyproject.toml
1158
+
1159
+ # JavaScript
1160
+ ls .eslintrc.js .eslintrc.json
1161
+ ```
1162
+
1163
+ ---
1164
+
1165
+ ### Performance Optimization
1166
+
1167
+ #### Reduce LSP Timeout
1168
+
1169
+ For faster feedback in CI/CD:
1170
+
1171
+ ```yaml
1172
+ ralph:
1173
+ lsp:
1174
+ timeout_seconds: 15
1175
+ poll_interval_ms: 250
1176
+ ```
1177
+
1178
+ #### Disable Expensive Checks
1179
+
1180
+ For rapid iteration:
1181
+
1182
+ ```yaml
1183
+ ralph:
1184
+ loop:
1185
+ completion:
1186
+ zero_errors: true
1187
+ zero_warnings: false
1188
+ tests_pass: false # Disable for faster loops
1189
+ coverage_threshold: 0 # Disable coverage check
1190
+ ```
1191
+
1192
+ #### Use Specific Severity Threshold
1193
+
1194
+ Only report errors, not warnings:
1195
+
1196
+ ```yaml
1197
+ ralph:
1198
+ hooks:
1199
+ post_tool_lsp:
1200
+ severity_threshold: "error"
1201
+ ```
1202
+
1203
+ ---
1204
+
1205
+ ## Advanced Configuration Examples
1206
+
1207
+ ### CI/CD Integration
1208
+
1209
+ GitHub Actions workflow with Ralph:
1210
+
1211
+ ```yaml
1212
+ name: Ralph Auto-Fix
1213
+
1214
+ on:
1215
+ pull_request:
1216
+ types: [opened, synchronize]
1217
+
1218
+ jobs:
1219
+ ralph-fix:
1220
+ runs-on: ubuntu-latest
1221
+ steps:
1222
+ - uses: actions/checkout@v4
1223
+
1224
+ - name: Setup Python
1225
+ uses: actions/setup-python@v4
1226
+ with:
1227
+ python-version: "3.13"
1228
+
1229
+ - name: Install dependencies
1230
+ run: |
1231
+ pip install -r requirements.txt
1232
+ npm install -g pyright
1233
+
1234
+ - name: Run Ralph Loop
1235
+ run: |
1236
+ export MOAI_LOOP_ACTIVE=1
1237
+ export MOAI_LOOP_ITERATION=0
1238
+ claude -p "/moai:loop --max-iterations 5" \
1239
+ --allowedTools "Read,Write,Edit,Bash,Grep,Glob"
1240
+
1241
+ - name: Commit fixes
1242
+ if: success()
1243
+ run: |
1244
+ git config user.name "Ralph Bot"
1245
+ git config user.email "ralph@moai-adk.dev"
1246
+ git add .
1247
+ git commit -m "fix: Auto-fixes from Ralph Engine" || true
1248
+ git push
1249
+ ```
1250
+
1251
+ ---
1252
+
1253
+ ### Multi-Language Project
1254
+
1255
+ Configuration for projects with multiple languages:
1256
+
1257
+ ```json
1258
+ {
1259
+ "servers": {
1260
+ "python": {
1261
+ "command": "pyright-langserver",
1262
+ "args": ["--stdio"],
1263
+ "file_extensions": [".py"]
1264
+ },
1265
+ "typescript": {
1266
+ "command": "typescript-language-server",
1267
+ "args": ["--stdio"],
1268
+ "file_extensions": [".ts", ".tsx", ".js", ".jsx"]
1269
+ },
1270
+ "go": {
1271
+ "command": "gopls",
1272
+ "args": ["serve"],
1273
+ "file_extensions": [".go"]
1274
+ },
1275
+ "rust": {
1276
+ "command": "rust-analyzer",
1277
+ "args": [],
1278
+ "file_extensions": [".rs"]
1279
+ }
1280
+ }
1281
+ }
1282
+ ```
1283
+
1284
+ ---
1285
+
1286
+ ### Custom Completion Conditions
1287
+
1288
+ Extend the loop controller for project-specific checks:
1289
+
1290
+ ```python
1291
+ # .claude/hooks/moai/custom_completion_check.py
1292
+ def check_custom_conditions() -> bool:
1293
+ """Add project-specific completion checks."""
1294
+ # Example 1: Check for TODO comments
1295
+ todos = count_todo_comments()
1296
+ if todos > 0:
1297
+ return False
1298
+
1299
+ # Example 2: Check for print statements in production code
1300
+ prints = find_debug_prints()
1301
+ if prints:
1302
+ return False
1303
+
1304
+ # Example 3: Verify API schema validity
1305
+ if not validate_openapi_schema():
1306
+ return False
1307
+
1308
+ return True
1309
+ ```
1310
+
1311
+ Register in ralph.yaml:
1312
+
1313
+ ```yaml
1314
+ ralph:
1315
+ loop:
1316
+ completion:
1317
+ custom_checks:
1318
+ - .claude/hooks/moai/custom_completion_check.py
1319
+ ```
1320
+
1321
+ ---
1322
+
1323
+ ### Language-Specific AST-grep Rules
1324
+
1325
+ Python security rules:
1326
+
1327
+ ```yaml
1328
+ # rules/python-security.yml
1329
+ rules:
1330
+ - id: eval-usage
1331
+ language: python
1332
+ message: Use of eval() is dangerous
1333
+ severity: error
1334
+ pattern: eval($EXPR)
1335
+ fix: "ast.literal_eval($EXPR)"
1336
+
1337
+ - id: pickle-load
1338
+ language: python
1339
+ message: Pickle deserialization vulnerability
1340
+ severity: error
1341
+ pattern: pickle.load($FILE)
1342
+ note: "Use safer serialization formats like JSON"
1343
+
1344
+ - id: hardcoded-password
1345
+ language: python
1346
+ message: Hardcoded password detected
1347
+ severity: error
1348
+ pattern: password = $VALUE
1349
+ constraints:
1350
+ VALUE:
1351
+ kind: string
1352
+ matches: ".{8,}"
1353
+ ```
1354
+
1355
+ TypeScript security rules:
1356
+
1357
+ ```yaml
1358
+ # rules/typescript-security.yml
1359
+ rules:
1360
+ - id: dangerous-html
1361
+ language: typescript
1362
+ message: Dangerous innerHTML assignment
1363
+ severity: error
1364
+ pattern: $EL.innerHTML = $VAR
1365
+ constraints:
1366
+ VAR:
1367
+ not:
1368
+ matches: sanitize.*
1369
+
1370
+ - id: eval-usage
1371
+ language: typescript
1372
+ message: Use of eval() is dangerous
1373
+ severity: error
1374
+ pattern: eval($CODE)
1375
+
1376
+ - id: weak-crypto
1377
+ language: typescript
1378
+ message: Weak cryptographic algorithm
1379
+ severity: warning
1380
+ pattern: crypto.createHash($ALG)
1381
+ constraints:
1382
+ ALG:
1383
+ kind: string
1384
+ matches: (md5|sha1)
1385
+ ```
1386
+
1387
+ ---
1388
+
1389
+ ## Performance Metrics
1390
+
1391
+ ### Typical Operation Times
1392
+
1393
+ | Operation | Average Time | Notes |
1394
+ | ----------------------------- | ------------ | ------------------------------- |
1395
+ | LSP diagnostics (single file) | 100-500ms | Depends on file size and server |
1396
+ | AST-grep scan (project) | 500ms-2s | Depends on project size |
1397
+ | Test execution | 2-30s | Depends on test count |
1398
+ | Coverage generation | 3-15s | Depends on project size |
1399
+ | Loop iteration (complete) | 5-60s | Sum of all checks |
1400
+
1401
+ ### Resource Usage
1402
+
1403
+ | Component | Memory | CPU | Disk |
1404
+ | -------------------- | ---------- | ------ | ------------------ |
1405
+ | LSP Client | ~50MB | Low | None |
1406
+ | LSP Server (pyright) | ~100-300MB | Medium | None |
1407
+ | AST-grep | ~20-50MB | Medium | None |
1408
+ | Loop Controller | ~10MB | Low | < 1KB (state file) |
1409
+
1410
+ ---
1411
+
1412
+ Last Updated: 2026-01-10
1413
+ Version: 1.0.0
1414
+ Specification: LSP 3.17, AST-grep 0.20+