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
@@ -85,7 +85,8 @@ class TemplateProcessor:
85
85
  ".moai/specs/", # User SPEC documents
86
86
  ".moai/reports/", # User reports
87
87
  ".moai/project/", # User project documents (product/structure/tech.md)
88
- # config.json is now FORCE OVERWRITTEN (backup in .moai-backups/)
88
+ ".moai/config/sections/", # User configuration section files (YAML)
89
+ # config.json/config.yaml is now FORCE OVERWRITTEN (backup in .moai-backups/)
89
90
  # Merge via /moai:0-project when optimized=false
90
91
  ]
91
92
 
@@ -107,6 +108,7 @@ class TemplateProcessor:
107
108
  "MOAI_VERSION_SOURCE": "Version source information",
108
109
  "MOAI_VERSION_CACHE_AGE": "Cache age for debugging",
109
110
  "CREATION_TIMESTAMP": "Project creation timestamp",
111
+ "STATUSLINE_COMMAND": "Cross-platform statusline command (OS-specific)",
110
112
  }
111
113
 
112
114
  def __init__(self, target_path: Path, config: Optional[TemplateProcessorConfig] = None) -> None:
@@ -173,6 +175,31 @@ class TemplateProcessor:
173
175
  self.logger.info("VersionReader created with enhanced configuration")
174
176
  return self._version_reader
175
177
 
178
+ def _get_current_version(self) -> Optional[str]:
179
+ """
180
+ Get the current MoAI-ADK package version.
181
+
182
+ Returns:
183
+ Current version string, or None if version cannot be determined
184
+ """
185
+ try:
186
+ version_reader = self._get_version_reader()
187
+ version = version_reader.get_version()
188
+ if version and version != "unknown":
189
+ return version
190
+ except Exception as e:
191
+ self.logger.warning(f"Failed to get current version: {e}")
192
+
193
+ # Fallback: try direct import
194
+ try:
195
+ from moai_adk import __version__
196
+
197
+ return __version__
198
+ except ImportError:
199
+ pass
200
+
201
+ return None
202
+
176
203
  def _validate_template_variables(self, context: Dict[str, str]) -> None:
177
204
  """
178
205
  Validate template variables with comprehensive checking.
@@ -718,6 +745,7 @@ class TemplateProcessor:
718
745
 
719
746
  self._copy_claude(silent)
720
747
  self._copy_moai(silent)
748
+ self._sync_new_section_files(silent) # Add new section files from template
721
749
  self._copy_github(silent)
722
750
  self._copy_claude_md(silent)
723
751
  self._copy_gitignore(silent)
@@ -800,7 +828,7 @@ class TemplateProcessor:
800
828
  "output-styles/moai",
801
829
  "agents/alfred",
802
830
  "agents/moai",
803
- "skills", # NEW: Complete replacement for skills folder
831
+ # NOTE: "skills" handled by _sync_skills_selective() to preserve custom skills
804
832
  ]
805
833
 
806
834
  # 1. Copy Alfred and Moai folders wholesale (backup before delete & overwrite)
@@ -847,6 +875,9 @@ class TemplateProcessor:
847
875
  if not silent:
848
876
  console.print(f" ✅ .claude/{rel_subdir}/ copied")
849
877
 
878
+ # 1.6 Sync skills selectively (preserve custom skills, update moai-* skills)
879
+ self._sync_skills_selective(src, dst, silent)
880
+
850
881
  # 2. Copy other files/folders individually (smart merge for settings.json and config.json)
851
882
  all_warnings = []
852
883
  for item in src.iterdir():
@@ -854,11 +885,13 @@ class TemplateProcessor:
854
885
  dst_item = dst / rel_path
855
886
 
856
887
  # Skip Alfred parent folders (already handled above)
888
+ # Also skip "skills" - handled by _sync_skills_selective()
857
889
  if item.is_dir() and item.name in [
858
890
  "hooks",
859
891
  "commands",
860
892
  "output-styles",
861
893
  "agents",
894
+ "skills", # Handled by _sync_skills_selective() to preserve custom skills
862
895
  ]:
863
896
  continue
864
897
 
@@ -896,6 +929,54 @@ class TemplateProcessor:
896
929
  if not silent:
897
930
  console.print(" ✅ .claude/ copy complete (variables substituted)")
898
931
 
932
+ def _sync_skills_selective(self, src: Path, dst: Path, silent: bool = False) -> None:
933
+ """Sync only moai-* template skills, preserve custom skills.
934
+
935
+ This method ensures that:
936
+ - Template skills (moai-* prefix) are updated from source
937
+ - Custom skills (any other prefix) are preserved untouched
938
+
939
+ Args:
940
+ src: Source .claude directory from template
941
+ dst: Destination .claude directory in project
942
+ silent: Suppress console output if True
943
+ """
944
+ skills_src = src / "skills"
945
+ skills_dst = dst / "skills"
946
+
947
+ if not skills_src.exists():
948
+ return
949
+
950
+ skills_dst.mkdir(parents=True, exist_ok=True)
951
+
952
+ # Step 1: Identify template skills in source (moai-* prefix)
953
+ template_skills = {d.name for d in skills_src.iterdir() if d.is_dir() and d.name.startswith("moai-")}
954
+
955
+ # Step 2: Delete only template skills in destination
956
+ if skills_dst.exists():
957
+ for skill_dir in list(skills_dst.iterdir()):
958
+ if skill_dir.is_dir() and skill_dir.name.startswith("moai-"):
959
+ shutil.rmtree(skill_dir)
960
+ if not silent:
961
+ console.print(f" [dim]Updating template skill: {skill_dir.name}[/dim]")
962
+
963
+ # Step 3: Copy template skills from source
964
+ for skill_name in sorted(template_skills):
965
+ src_skill = skills_src / skill_name
966
+ dst_skill = skills_dst / skill_name
967
+ shutil.copytree(src_skill, dst_skill)
968
+
969
+ if not silent and template_skills:
970
+ console.print(f" ✅ Synced {len(template_skills)} template skill(s)")
971
+
972
+ # Step 4: Report preserved custom skills
973
+ if skills_dst.exists():
974
+ custom_skills = [d.name for d in skills_dst.iterdir() if d.is_dir() and not d.name.startswith("moai-")]
975
+ if custom_skills and not silent:
976
+ preview = ", ".join(sorted(custom_skills)[:3])
977
+ suffix = "..." if len(custom_skills) > 3 else ""
978
+ console.print(f" ✅ Preserved {len(custom_skills)} custom skill(s): {preview}{suffix}")
979
+
899
980
  def _copy_moai(self, silent: bool = False) -> None:
900
981
  """.moai/ directory copy with variable substitution (excludes protected paths)."""
901
982
  src = self.template_root / ".moai"
@@ -906,11 +987,11 @@ class TemplateProcessor:
906
987
  console.print("⚠️ .moai/ template not found")
907
988
  return
908
989
 
909
- # Paths excluded from template copying (specs/, reports/, .moai/config/config.json)
990
+ # Paths excluded from template copying (specs/, reports/, sections/)
910
991
  template_protected_paths = [
911
992
  "specs",
912
993
  "reports",
913
- ".moai/config/config.json",
994
+ "config/sections", # User section YAML files
914
995
  ]
915
996
 
916
997
  all_warnings = []
@@ -943,6 +1024,132 @@ class TemplateProcessor:
943
1024
  if not silent:
944
1025
  console.print(" ✅ .moai/ copy complete (variables substituted)")
945
1026
 
1027
+ def _deep_merge_dicts(self, base: dict, overlay: dict) -> tuple[dict, list[str]]:
1028
+ """Deep merge two dictionaries, preserving base values and adding new keys from overlay.
1029
+
1030
+ Args:
1031
+ base: User's existing configuration (values to preserve)
1032
+ overlay: Template configuration (new keys to add)
1033
+
1034
+ Returns:
1035
+ Tuple of (merged dict, list of new keys added)
1036
+ """
1037
+ result = base.copy()
1038
+ new_keys = []
1039
+
1040
+ for key, value in overlay.items():
1041
+ if key not in result:
1042
+ # New key: add from template
1043
+ result[key] = value
1044
+ new_keys.append(key)
1045
+ elif isinstance(value, dict) and isinstance(result.get(key), dict):
1046
+ # Both are dicts: recurse
1047
+ merged, nested_new = self._deep_merge_dicts(result[key], value)
1048
+ result[key] = merged
1049
+ new_keys.extend([f"{key}.{k}" for k in nested_new])
1050
+ # else: key exists in base, preserve user's value
1051
+
1052
+ return result, new_keys
1053
+
1054
+ def _sync_new_section_files(self, silent: bool = False) -> None:
1055
+ """Sync section files from template to project with smart merge.
1056
+
1057
+ This method handles section file synchronization with the following logic:
1058
+ - New files (template has, project doesn't): Copy from template
1059
+ - Existing files: Smart merge (preserve user values, add new fields)
1060
+ - system.yaml: Always update moai.version to current package version
1061
+
1062
+ Smart Merge Behavior:
1063
+ - User values are NEVER overwritten
1064
+ - Only new keys/fields from template are added
1065
+ - Nested structures are recursively merged
1066
+ """
1067
+ template_sections = self.template_root / ".moai" / "config" / "sections"
1068
+ project_sections = self.target_path / ".moai" / "config" / "sections"
1069
+
1070
+ if not template_sections.exists():
1071
+ return
1072
+
1073
+ # Ensure project sections directory exists
1074
+ project_sections.mkdir(parents=True, exist_ok=True)
1075
+
1076
+ # Get current package version
1077
+ try:
1078
+ from moai_adk import __version__
1079
+
1080
+ current_version = __version__
1081
+ except ImportError:
1082
+ current_version = None
1083
+
1084
+ new_files_added = []
1085
+ files_updated = []
1086
+
1087
+ import yaml
1088
+
1089
+ for template_file in template_sections.glob("*.yaml"):
1090
+ project_file = project_sections / template_file.name
1091
+
1092
+ if not project_file.exists():
1093
+ # New file: copy with variable substitution
1094
+ self._copy_file_with_substitution(template_file, project_file)
1095
+ new_files_added.append(template_file.name)
1096
+ else:
1097
+ # Existing file: smart merge (add new fields only)
1098
+ try:
1099
+ # Load template data
1100
+ template_content = template_file.read_text(encoding="utf-8")
1101
+ template_data = yaml.safe_load(template_content) or {}
1102
+
1103
+ # Load project data (user's current values)
1104
+ project_content = project_file.read_text(encoding="utf-8")
1105
+ project_data = yaml.safe_load(project_content) or {}
1106
+
1107
+ # Deep merge: preserve user values, add new template keys
1108
+ merged_data, new_keys = self._deep_merge_dicts(project_data, template_data)
1109
+
1110
+ if new_keys:
1111
+ # Write merged data back
1112
+ with open(project_file, "w", encoding="utf-8") as f:
1113
+ yaml.dump(
1114
+ merged_data,
1115
+ f,
1116
+ default_flow_style=False,
1117
+ allow_unicode=True,
1118
+ sort_keys=False,
1119
+ )
1120
+ files_updated.append(f"{template_file.name} (+{len(new_keys)} fields)")
1121
+
1122
+ except Exception:
1123
+ pass # Silently ignore yaml errors for individual files
1124
+
1125
+ # Update system.yaml version (special case: always update version)
1126
+ system_yaml = project_sections / "system.yaml"
1127
+ if system_yaml.exists() and current_version:
1128
+ try:
1129
+ content = system_yaml.read_text(encoding="utf-8")
1130
+ data = yaml.safe_load(content) or {}
1131
+
1132
+ # Update moai.version
1133
+ if "moai" not in data:
1134
+ data["moai"] = {}
1135
+ if data.get("moai", {}).get("version") != current_version:
1136
+ data["moai"]["version"] = current_version
1137
+
1138
+ # Write back
1139
+ with open(system_yaml, "w", encoding="utf-8") as f:
1140
+ yaml.dump(data, f, default_flow_style=False, allow_unicode=True, sort_keys=False)
1141
+
1142
+ if not silent:
1143
+ console.print(f" 🔄 system.yaml version updated to {current_version}")
1144
+ except Exception:
1145
+ pass # Silently ignore yaml errors
1146
+
1147
+ if new_files_added and not silent:
1148
+ console.print(f" ✨ New section files added: {', '.join(new_files_added)}")
1149
+
1150
+ if files_updated and not silent:
1151
+ console.print(f" 🔀 Section files updated: {', '.join(files_updated)}")
1152
+
946
1153
  def _copy_github(self, silent: bool = False) -> None:
947
1154
  """.github/ directory copy with smart merge (preserves user workflows)."""
948
1155
  src = self.template_root / ".github"
@@ -964,8 +1171,28 @@ class TemplateProcessor:
964
1171
  console.print(" 🔄 .github/ merged (user workflows preserved, variables substituted)")
965
1172
 
966
1173
  def _copy_claude_md(self, silent: bool = False) -> None:
967
- """Copy CLAUDE.md with complete replacement (no merge)."""
968
- src = self.template_root / "CLAUDE.md"
1174
+ """Copy CLAUDE.md with complete replacement (no merge).
1175
+
1176
+ Selects language-specific CLAUDE.md based on conversation_language setting:
1177
+ - CLAUDE.ko.md for Korean
1178
+ - CLAUDE.ja.md for Japanese
1179
+ - CLAUDE.zh.md for Chinese
1180
+ - CLAUDE.md for English (default)
1181
+ """
1182
+ # Get language from context (set by set_context())
1183
+ language = self.context.get("CONVERSATION_LANGUAGE", "en") if self.context else "en"
1184
+
1185
+ # Select language-specific file
1186
+ if language and language != "en":
1187
+ lang_specific_src = self.template_root / f"CLAUDE.{language}.md"
1188
+ if lang_specific_src.exists():
1189
+ src = lang_specific_src
1190
+ else:
1191
+ # Fallback to English if language-specific file doesn't exist
1192
+ src = self.template_root / "CLAUDE.md"
1193
+ else:
1194
+ src = self.template_root / "CLAUDE.md"
1195
+
969
1196
  dst = self.target_path / "CLAUDE.md"
970
1197
 
971
1198
  if not src.exists():
@@ -1015,14 +1242,34 @@ class TemplateProcessor:
1015
1242
  self.merger.merge_settings_json(src, dst, backup_path)
1016
1243
 
1017
1244
  def _merge_config_json(self, src: Path, dst: Path) -> None:
1018
- """Smart merge for config.json using LanguageConfigResolver priority system.
1245
+ """Smart merge for config using section YAML files with JSON fallback.
1246
+
1247
+ Supports both new section-based YAML files and legacy config.json.
1248
+ Priority: Section YAML files > config.json fallback
1019
1249
 
1020
1250
  Args:
1021
- src: Template config.json.
1022
- dst: Project config.json.
1251
+ src: Template config file (config.json for legacy projects).
1252
+ dst: Project config file destination.
1023
1253
  """
1024
1254
  import json
1255
+ import os
1025
1256
 
1257
+ try:
1258
+ import yaml # noqa: F401 # pyright: ignore[reportUnusedImport]
1259
+
1260
+ yaml_available = True
1261
+ except ImportError:
1262
+ yaml_available = False
1263
+
1264
+ # Check for section-based YAML configuration (new approach)
1265
+ sections_dir = self.target_path / ".moai" / "config" / "sections"
1266
+
1267
+ if yaml_available and sections_dir.exists() and sections_dir.is_dir():
1268
+ # Use section YAML files - merge each section individually
1269
+ self._merge_section_yaml_files(sections_dir)
1270
+ return
1271
+
1272
+ # Fallback to legacy config.json merging
1026
1273
  # Load template config
1027
1274
  try:
1028
1275
  template_config = json.loads(src.read_text(encoding="utf-8"))
@@ -1071,8 +1318,6 @@ class TemplateProcessor:
1071
1318
  merged_config[key] = value
1072
1319
 
1073
1320
  # Apply environment variables (highest priority)
1074
- import os
1075
-
1076
1321
  env_mappings = {
1077
1322
  "MOAI_USER_NAME": ("user", "name"),
1078
1323
  "MOAI_CONVERSATION_LANG": ("language", "conversation_language"),
@@ -1119,6 +1364,84 @@ class TemplateProcessor:
1119
1364
  )
1120
1365
  console.print(" ⚠️ Warning: Using simple merge (LanguageConfigResolver not available)")
1121
1366
 
1367
+ def _merge_section_yaml_files(self, sections_dir: Path) -> None:
1368
+ """Merge section YAML files with user-specific values preserved.
1369
+
1370
+ Args:
1371
+ sections_dir: Path to sections directory (.moai/config/sections/)
1372
+ """
1373
+ import os
1374
+
1375
+ try:
1376
+ import yaml
1377
+ except ImportError:
1378
+ console.print("⚠️ Warning: PyYAML not available, skipping section merge")
1379
+ return
1380
+
1381
+ # Get current package version for system.yaml update
1382
+ current_version = self._get_current_version()
1383
+
1384
+ # Environment variable mappings for each section
1385
+ env_mappings = {
1386
+ "language.yaml": {
1387
+ "MOAI_CONVERSATION_LANG": ["language", "conversation_language"],
1388
+ "MOAI_AGENT_PROMPT_LANG": ["language", "agent_prompt_language"],
1389
+ "MOAI_CONVERSATION_LANG_NAME": ["language", "conversation_language_name"],
1390
+ "MOAI_GIT_COMMIT_MESSAGES_LANG": ["language", "git_commit_messages"],
1391
+ "MOAI_CODE_COMMENTS_LANG": ["language", "code_comments"],
1392
+ "MOAI_DOCUMENTATION_LANG": ["language", "documentation"],
1393
+ "MOAI_ERROR_MESSAGES_LANG": ["language", "error_messages"],
1394
+ },
1395
+ "user.yaml": {
1396
+ "MOAI_USER_NAME": ["user", "name"],
1397
+ },
1398
+ }
1399
+
1400
+ for section_file in sections_dir.glob("*.yaml"):
1401
+ try:
1402
+ # Read existing section content
1403
+ with open(section_file, "r", encoding="utf-8") as f:
1404
+ section_data = yaml.safe_load(f) or {}
1405
+
1406
+ modified = False
1407
+
1408
+ # Update system.yaml version to current package version
1409
+ if section_file.name == "system.yaml" and current_version:
1410
+ if "moai" not in section_data:
1411
+ section_data["moai"] = {}
1412
+ if section_data.get("moai", {}).get("version") != current_version:
1413
+ section_data["moai"]["version"] = current_version
1414
+ modified = True
1415
+
1416
+ # Apply environment variable overrides if applicable
1417
+ if section_file.name in env_mappings:
1418
+ for env_var, path in env_mappings[section_file.name].items():
1419
+ env_value = os.getenv(env_var)
1420
+ if env_value:
1421
+ # Navigate to the correct nested location
1422
+ current = section_data
1423
+ for key in path[:-1]:
1424
+ if key not in current:
1425
+ current[key] = {}
1426
+ current = current[key]
1427
+ if current.get(path[-1]) != env_value:
1428
+ current[path[-1]] = env_value
1429
+ modified = True
1430
+
1431
+ # Write back only if modifications were made
1432
+ if modified or section_file.name in env_mappings:
1433
+ with open(section_file, "w", encoding="utf-8") as f:
1434
+ yaml.safe_dump(
1435
+ section_data,
1436
+ f,
1437
+ default_flow_style=False,
1438
+ allow_unicode=True,
1439
+ sort_keys=False,
1440
+ )
1441
+
1442
+ except Exception as e:
1443
+ console.print(f"⚠️ Warning: Failed to merge {section_file.name}: {e}")
1444
+
1122
1445
  def _copy_gitignore(self, silent: bool = False) -> None:
1123
1446
  """.gitignore copy (optional)."""
1124
1447
  src = self.template_root / ".gitignore"
@@ -209,7 +209,16 @@ class TemplateEngine:
209
209
  Extract template variables from project configuration.
210
210
 
211
211
  Args:
212
- config: Project configuration dictionary (from .moai/config/config.json)
212
+ config: Project configuration dictionary (from section YAML files
213
+ or legacy .moai/config/config.json)
214
+
215
+ Configuration sources (in priority order):
216
+ 1. Section YAML files: .moai/config/sections/*.yaml
217
+ - project.yaml: Project settings (name, description, owner)
218
+ - language.yaml: Language settings
219
+ - user.yaml: User settings
220
+ - system.yaml: MoAI/GitHub settings
221
+ 2. Legacy: .moai/config/config.json
213
222
 
214
223
  Returns:
215
224
  Dictionary of template variables
@@ -41,7 +41,8 @@ class TemplateVariableSynchronizer:
41
41
  TEMPLATE_TRACKING_PATTERNS = [
42
42
  ".claude/settings.json",
43
43
  ".claude/settings.local.json",
44
- ".moai/config/config.json",
44
+ ".moai/config/sections/*.yaml", # Section YAML files (new)
45
+ ".moai/config/config.json", # Legacy config.json (fallback)
45
46
  ".claude/output-styles/**/*.md",
46
47
  ".claude/hooks/**/*.py",
47
48
  ".claude/commands/**/*.md",
@@ -126,12 +127,25 @@ class TemplateVariableSynchronizer:
126
127
  # If a specific config file changed, prioritize files that depend on it
127
128
  if changed_config_path:
128
129
  dependency_map = {
130
+ # Section YAML file dependencies (new approach)
131
+ ".moai/config/sections/language.yaml": [
132
+ ".claude/settings.json",
133
+ ".claude/settings.local.json",
134
+ ".claude/output-styles",
135
+ ".claude/hooks",
136
+ ],
137
+ ".moai/config/sections/user.yaml": [
138
+ ".claude/settings.json",
139
+ ".claude/settings.local.json",
140
+ ".claude/output-styles",
141
+ ],
142
+ # Legacy config.json dependencies (fallback)
129
143
  ".moai/config/config.json": [
130
144
  ".claude/settings.json",
131
145
  ".claude/settings.local.json",
132
146
  ".claude/output-styles",
133
147
  ".claude/hooks",
134
- ]
148
+ ],
135
149
  }
136
150
 
137
151
  config_key = str(changed_config_path.relative_to(self.project_root))
@@ -5,11 +5,15 @@ Ensures version consistency across multiple configuration files and provides
5
5
  automatic synchronization capabilities.
6
6
 
7
7
  Key Features:
8
- - Version consistency validation across pyproject.toml, __init__.py, and config.json
8
+ - Version consistency validation across pyproject.toml, __init__.py, and config
9
9
  - Automatic synchronization when inconsistencies detected
10
10
  - Cache invalidation for statusline version readers
11
11
  - Version change detection and notification system
12
12
  - Fallback strategies for version resolution
13
+
14
+ Configuration sources (in priority order):
15
+ 1. Section YAML: .moai/config/sections/system.yaml (moai.version)
16
+ 2. Legacy: .moai/config/config.json (moai.version)
13
17
  """
14
18
 
15
19
  import json
@@ -28,7 +32,8 @@ class VersionSource(Enum):
28
32
  """Enum for version source tracking"""
29
33
 
30
34
  PYPROJECT_TOML = "pyproject_toml"
31
- CONFIG_JSON = "config_json"
35
+ SECTION_YAML = "section_yaml" # New: system.yaml
36
+ CONFIG_JSON = "config_json" # Legacy fallback
32
37
  PACKAGE_METADATA = "package_metadata"
33
38
  FALLBACK = "fallback"
34
39
 
@@ -74,14 +79,17 @@ class VersionSynchronizer:
74
79
 
75
80
  self.working_dir = working_dir
76
81
  self.pyproject_path = working_dir / "pyproject.toml"
82
+ self.system_yaml_path = working_dir / ".moai" / "config" / "sections" / "system.yaml"
77
83
  self.config_path = working_dir / ".moai" / "config" / "config.json"
78
84
  self.init_path = working_dir / "src" / "moai_adk" / "__init__.py"
79
85
 
80
86
  # Version file paths in order of priority
81
87
  # Note: __init__.py reads version dynamically, so we don't synchronize it
88
+ # Priority: pyproject.toml > system.yaml (new) > config.json (legacy)
82
89
  self.version_files = [
83
90
  (self.pyproject_path, VersionSource.PYPROJECT_TOML),
84
- (self.config_path, VersionSource.CONFIG_JSON),
91
+ (self.system_yaml_path, VersionSource.SECTION_YAML), # New: section YAML
92
+ (self.config_path, VersionSource.CONFIG_JSON), # Legacy fallback
85
93
  ]
86
94
 
87
95
  # Statusline cache directories to invalidate
@@ -200,6 +208,8 @@ class VersionSynchronizer:
200
208
 
201
209
  if source == VersionSource.PYPROJECT_TOML:
202
210
  version = self._extract_from_pyproject(content)
211
+ elif source == VersionSource.SECTION_YAML:
212
+ version = self._extract_from_section_yaml(content)
203
213
  elif source == VersionSource.CONFIG_JSON:
204
214
  version = self._extract_from_config(content)
205
215
  elif source == VersionSource.PACKAGE_METADATA:
@@ -226,8 +236,23 @@ class VersionSynchronizer:
226
236
  match = re.search(pattern, content, re.MULTILINE)
227
237
  return match.group(1) if match else None
228
238
 
239
+ def _extract_from_section_yaml(self, content: str) -> Optional[str]:
240
+ """Extract version from .moai/config/sections/system.yaml"""
241
+ try:
242
+ import yaml
243
+
244
+ yaml_data = yaml.safe_load(content)
245
+ moai_config = yaml_data.get("moai", {})
246
+ return moai_config.get("version")
247
+ except ImportError:
248
+ logger.warning("PyYAML not available for section YAML parsing")
249
+ return None
250
+ except Exception as e:
251
+ logger.error(f"Invalid YAML in system.yaml: {e}")
252
+ return None
253
+
229
254
  def _extract_from_config(self, content: str) -> Optional[str]:
230
- """Extract version from .moai/config/config.json"""
255
+ """Extract version from .moai/config/config.json (legacy)"""
231
256
  try:
232
257
  config_data = json.loads(content)
233
258
  moai_config = config_data.get("moai", {})
@@ -270,8 +295,31 @@ class VersionSynchronizer:
270
295
 
271
296
  def _update_version_in_content(self, content: str, source: VersionSource, target_version: str) -> str:
272
297
  """Update version in content based on source type"""
273
- if source == VersionSource.CONFIG_JSON:
274
- # Update moai.version in JSON
298
+ if source == VersionSource.SECTION_YAML:
299
+ # Update moai.version in section YAML
300
+ try:
301
+ import yaml
302
+
303
+ yaml_data = yaml.safe_load(content) or {}
304
+ if "moai" not in yaml_data:
305
+ yaml_data["moai"] = {}
306
+ yaml_data["moai"]["version"] = target_version
307
+ return yaml.safe_dump(
308
+ yaml_data,
309
+ default_flow_style=False,
310
+ allow_unicode=True,
311
+ sort_keys=False,
312
+ )
313
+ except ImportError:
314
+ logger.warning("PyYAML not available for section YAML update")
315
+ return content
316
+ except Exception:
317
+ # Fallback: regex replacement for version line
318
+ pattern = r'(version:\s*["\']?)[\d.]+(["\']?)'
319
+ return re.sub(pattern, f"\\g<1>{target_version}\\g<2>", content)
320
+
321
+ elif source == VersionSource.CONFIG_JSON:
322
+ # Update moai.version in JSON (legacy)
275
323
  try:
276
324
  config_data = json.loads(content)
277
325
  if "moai" not in config_data:
@@ -1,19 +1,9 @@
1
1
  """
2
2
  MoAI Foundation module - Core foundation-level implementations.
3
- Includes: EARS methodology, programming language ecosystem, Git workflows.
3
+ Includes: EARS methodology, programming language ecosystem, testing framework.
4
4
  """
5
5
 
6
6
  from .ears import EARSAnalyzer, EARSParser, EARSValidator
7
- from .git import (
8
- BranchingStrategySelector,
9
- ConventionalCommitValidator,
10
- GitInfo,
11
- GitPerformanceOptimizer,
12
- GitVersionDetector,
13
- GitWorkflowManager,
14
- TDDCommitPhase,
15
- ValidateResult,
16
- )
17
7
  from .langs import (
18
8
  AntiPatternDetector,
19
9
  EcosystemAnalyzer,
@@ -40,17 +30,8 @@ __all__ = [
40
30
  "EcosystemAnalyzer",
41
31
  "PerformanceOptimizer",
42
32
  "TestingStrategyAdvisor",
43
- # Git Workflow
44
- "GitVersionDetector",
45
- "ConventionalCommitValidator",
46
- "BranchingStrategySelector",
47
- "GitWorkflowManager",
48
- "GitPerformanceOptimizer",
49
33
  # Data structures
50
34
  "LanguageInfo",
51
35
  "Pattern",
52
36
  "TestingStrategy",
53
- "GitInfo",
54
- "ValidateResult",
55
- "TDDCommitPhase",
56
37
  ]
@@ -1498,7 +1498,7 @@ def main():
1498
1498
 
1499
1499
  print("\n4. CI Pipeline Configuration:")
1500
1500
  ci_config = automation_orchestrator.setup_ci_pipeline()
1501
- print(f"CI pipeline: {len(ci_config['stages'])} stages configured")
1501
+ print(f"CI pipeline: {len(ci_config['pipeline_config']['stages'])} stages configured")
1502
1502
 
1503
1503
  print("\n5. Test Reporting:")
1504
1504
  test_report = reporting_specialist.generate_test_reports()