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
@@ -44,8 +44,10 @@ from __future__ import annotations
44
44
 
45
45
  import json
46
46
  import logging
47
+ import os
47
48
  import shutil
48
49
  import subprocess
50
+ import sys
49
51
  from datetime import datetime
50
52
  from pathlib import Path
51
53
  from typing import Any, Union, cast
@@ -65,8 +67,14 @@ from moai_adk.core.migration.custom_element_scanner import create_custom_element
65
67
  from moai_adk.core.migration.selective_restorer import create_selective_restorer
66
68
  from moai_adk.core.migration.user_selection_ui import create_user_selection_ui
67
69
  from moai_adk.core.template.processor import TemplateProcessor
68
-
69
- console = Console()
70
+ from moai_adk.utils.common import reset_stdin
71
+
72
+ # Force UTF-8 encoding for Windows compatibility
73
+ # Windows PowerShell/Console uses 'charmap' by default, which can't encode emojis
74
+ if sys.platform == "win32":
75
+ console = Console(force_terminal=True, legacy_windows=False)
76
+ else:
77
+ console = Console()
70
78
  logger = logging.getLogger(__name__)
71
79
 
72
80
  # Constants for tool detection
@@ -263,10 +271,10 @@ def _get_latest_version() -> str:
263
271
  Raises:
264
272
  RuntimeError: If PyPI API unavailable or parsing fails
265
273
  """
266
- try:
267
- import urllib.error
268
- import urllib.request
274
+ import urllib.error
275
+ import urllib.request
269
276
 
277
+ try:
270
278
  url = "https://pypi.org/pypi/moai-adk/json"
271
279
  with urllib.request.urlopen(url, timeout=5) as response: # nosec B310 - URL is hardcoded HTTPS to PyPI API, no user input
272
280
  data = json.loads(response.read().decode("utf-8"))
@@ -983,9 +991,9 @@ def _restore_user_settings(project_path: Path, preserved: dict[str, Path | None]
983
991
  success = True
984
992
 
985
993
  # Restore settings.local.json
986
- if preserved.get("settings.local.json"):
994
+ backup_path = preserved.get("settings.local.json")
995
+ if backup_path is not None:
987
996
  try:
988
- backup_path = preserved["settings.local.json"]
989
997
  settings_local = claude_dir / "settings.local.json"
990
998
  settings_local.write_text(backup_path.read_text(encoding="utf-8"))
991
999
  console.print(" [cyan]✓ Restored user settings[/cyan]")
@@ -1445,18 +1453,13 @@ def _restore_selected_skills(skills: list[str], backup_path: Path, project_path:
1445
1453
 
1446
1454
 
1447
1455
  def _show_post_update_guidance(backup_path: Path) -> None:
1448
- """Show post-update guidance for running /moai:0-project update.
1456
+ """Show post-update completion message.
1449
1457
 
1450
1458
  Args:
1451
1459
  backup_path: Backup directory path for reference
1452
1460
  """
1453
1461
  console.print("\n" + "[cyan]" + "=" * 60 + "[/cyan]")
1454
1462
  console.print("[green]✅ Update complete![/green]")
1455
- console.print("\n[yellow]📝 IMPORTANT - Next step:[/yellow]")
1456
- console.print(" Run [cyan]/moai:0-project update[/cyan] in Claude Code")
1457
- console.print("\n This will:")
1458
- console.print(" • Merge your settings with new templates")
1459
- console.print(" • Validate configuration compatibility")
1460
1463
  console.print("\n[dim]💡 Personal instructions should go in CLAUDE.local.md[/dim]")
1461
1464
  console.print(f"[dim]📂 Backup location: {backup_path}[/dim]")
1462
1465
  console.print("[cyan]" + "=" * 60 + "[/cyan]\n")
@@ -1500,15 +1503,14 @@ def _sync_templates(project_path: Path, force: bool = False, yes: bool = False)
1500
1503
  backup_path = backup.create_backup()
1501
1504
  console.print(f"💾 Created backup: {backup_path.name}")
1502
1505
 
1503
- # Merge analysis using Claude Code headless mode
1506
+ # Merge analysis using Pure Python semantic heuristics
1504
1507
  try:
1505
1508
  analyzer = MergeAnalyzer(project_path)
1506
1509
  # Template source path from installed package
1507
1510
  template_path = Path(__file__).parent.parent.parent / "templates"
1508
1511
 
1509
- console.print("\n[cyan]🔍 Starting merge analysis (max 2 mins)...[/cyan]")
1510
- console.print("[dim] Analyzing intelligent merge with Claude Code.[/dim]")
1511
- console.print("[dim] Please wait...[/dim]\n")
1512
+ console.print("\n[cyan]🔍 Starting merge analysis...[/cyan]")
1513
+ console.print("[dim] Analyzing templates with semantic heuristics.[/dim]\n")
1512
1514
  analysis = analyzer.analyze_merge(backup_path, template_path)
1513
1515
 
1514
1516
  # Ask user confirmation
@@ -1556,6 +1558,7 @@ def _sync_templates(project_path: Path, force: bool = False, yes: bool = False)
1556
1558
  if not validation_passed:
1557
1559
  if backup_path:
1558
1560
  console.print(f"[yellow]🔄 Rolling back to backup: {backup_path.name}[/yellow]")
1561
+ backup = TemplateBackup(project_path)
1559
1562
  backup.restore_backup(backup_path)
1560
1563
  return False
1561
1564
 
@@ -1577,7 +1580,7 @@ def _sync_templates(project_path: Path, force: bool = False, yes: bool = False)
1577
1580
  if utils_dir.exists():
1578
1581
  sys.path.insert(0, str(utils_dir))
1579
1582
  try:
1580
- from announcement_translator import auto_translate_and_update
1583
+ from announcement_translator import auto_translate_and_update # type: ignore[import-not-found]
1581
1584
 
1582
1585
  console.print("[cyan]Updating announcements...[/cyan]")
1583
1586
  auto_translate_and_update(project_path)
@@ -1601,6 +1604,9 @@ def _sync_templates(project_path: Path, force: bool = False, yes: bool = False)
1601
1604
  # Clean up legacy presets directory
1602
1605
  _cleanup_legacy_presets(project_path)
1603
1606
 
1607
+ # Clean up CLI redesign obsolete files (v0.41+)
1608
+ _cleanup_cli_redesign_obsolete_files(project_path)
1609
+
1604
1610
  # NEW: Show post-update guidance
1605
1611
  if backup_path:
1606
1612
  _show_post_update_guidance(backup_path)
@@ -1733,6 +1739,14 @@ def _build_template_context(
1733
1739
  # Detect OS for cross-platform Hook path configuration
1734
1740
  hook_project_dir = "%CLAUDE_PROJECT_DIR%" if platform.system() == "Windows" else "$CLAUDE_PROJECT_DIR"
1735
1741
 
1742
+ # Detect OS for cross-platform statusline command
1743
+ # Windows: Use python -m for better PATH compatibility
1744
+ # Unix: Use moai-adk directly (assumes installed via uv tool)
1745
+ if platform.system() == "Windows":
1746
+ statusline_command = "python -m moai_adk statusline"
1747
+ else:
1748
+ statusline_command = "moai-adk statusline"
1749
+
1736
1750
  # Extract and resolve language configuration using centralized resolver
1737
1751
  try:
1738
1752
  from moai_adk.core.language_config_resolver import get_resolver
@@ -1830,6 +1844,7 @@ def _build_template_context(
1830
1844
  "CODEBASE_LANGUAGE": project_section.get("language", "generic"),
1831
1845
  "PROJECT_OWNER": project_section.get("author", "@user"),
1832
1846
  "AUTHOR": project_section.get("author", "@user"),
1847
+ "STATUSLINE_COMMAND": statusline_command,
1833
1848
  }
1834
1849
 
1835
1850
 
@@ -1932,7 +1947,7 @@ def _validate_template_substitution(project_path: Path) -> None:
1932
1947
  console.print("[red]✗ Template substitution validation failed:[/red]")
1933
1948
  for issue in issues_found:
1934
1949
  console.print(f" {issue}")
1935
- console.print("[yellow]💡 Run '/moai:0-project' to fix template variables[/yellow]")
1950
+ console.print("[yellow]💡 Check .moai/config/ files for missing variable values[/yellow]")
1936
1951
  else:
1937
1952
  console.print("[green]✅ Template substitution validation passed[/green]")
1938
1953
 
@@ -1975,7 +1990,7 @@ def _validate_template_substitution_with_rollback(project_path: Path, backup_pat
1975
1990
  if backup_path:
1976
1991
  console.print("[yellow]🔄 Rolling back due to validation failure...[/yellow]")
1977
1992
  else:
1978
- console.print("[yellow]💡 Run '/moai:0-project' to fix template variables[/yellow]")
1993
+ console.print("[yellow]💡 Check .moai/config/ files for missing variable values[/yellow]")
1979
1994
  console.print("[red]⚠️ No backup available - manual fix required[/red]")
1980
1995
 
1981
1996
  return False
@@ -2082,6 +2097,7 @@ def _execute_migration_if_needed(project_path: Path, yes: bool = False) -> bool:
2082
2097
 
2083
2098
  # Confirm with user (unless --yes)
2084
2099
  if not yes:
2100
+ reset_stdin() # Reset stdin before interactive prompt
2085
2101
  if not click.confirm("Do you want to proceed with migration?", default=True):
2086
2102
  console.print("[yellow]⚠️ Migration skipped. Some features may not work correctly.[/yellow]")
2087
2103
  console.print("[cyan]💡 Run 'moai-adk migrate' manually when ready[/cyan]")
@@ -2116,6 +2132,13 @@ def _execute_migration_if_needed(project_path: Path, yes: bool = False) -> bool:
2116
2132
  @click.option("--check", is_flag=True, help="Only check version (do not update)")
2117
2133
  @click.option("--templates-only", is_flag=True, help="Skip package upgrade, sync templates only")
2118
2134
  @click.option("--yes", is_flag=True, help="Auto-confirm all prompts (CI/CD mode)")
2135
+ @click.option(
2136
+ "-c",
2137
+ "--config",
2138
+ "edit_config",
2139
+ is_flag=True,
2140
+ help="Edit project configuration (same as init wizard)",
2141
+ )
2119
2142
  @click.option(
2120
2143
  "--merge",
2121
2144
  "merge_strategy",
@@ -2134,6 +2157,7 @@ def update(
2134
2157
  check: bool,
2135
2158
  templates_only: bool,
2136
2159
  yes: bool,
2160
+ edit_config: bool,
2137
2161
  merge_strategy: str | None,
2138
2162
  ) -> None:
2139
2163
  """Update command with 3-stage workflow + merge strategy selection (v0.26.0+).
@@ -2178,15 +2202,27 @@ def update(
2178
2202
  - Guide: .moai/guides/merge-guide.md (manual merge only)
2179
2203
  """
2180
2204
  try:
2181
- project_path = Path(path).resolve()
2205
+ # Use os.getcwd() for consistent path resolution in test environments
2206
+ if path == ".":
2207
+ project_path = Path(os.getcwd()).resolve()
2208
+ else:
2209
+ project_path = Path(path).resolve()
2182
2210
 
2183
2211
  # Verify the project is initialized
2184
2212
  if not (project_path / ".moai").exists():
2185
2213
  console.print("[yellow]⚠ Project not initialized[/yellow]")
2186
2214
  raise click.Abort()
2187
2215
 
2216
+ # Handle --config / -c mode (edit configuration only, no template updates)
2217
+ if edit_config:
2218
+ _edit_configuration(project_path)
2219
+ return
2220
+
2188
2221
  # Get versions (needed for --check and normal workflow, but not for --templates-only alone)
2189
2222
  # Note: If --check is used, always fetch versions even if --templates-only is also present
2223
+ # Initialize with defaults to satisfy type checker (will be set in the block below if needed)
2224
+ current: str = __version__
2225
+ latest: str = __version__
2190
2226
  if check or not templates_only:
2191
2227
  try:
2192
2228
  # Try to use new spinner UI
@@ -2265,6 +2301,7 @@ def update(
2265
2301
 
2266
2302
  # Confirm upgrade (unless --yes)
2267
2303
  if not yes:
2304
+ reset_stdin() # Reset stdin before interactive prompt
2268
2305
  if not click.confirm(f"Upgrade {current} → {latest}?", default=True):
2269
2306
  console.print("Cancelled")
2270
2307
  return
@@ -2394,6 +2431,14 @@ def update(
2394
2431
  processor = TemplateProcessor(project_path)
2395
2432
  backup_path = processor.create_backup()
2396
2433
  console.print(f" [green]✓ Backup: {backup_path.relative_to(project_path)}/[/green]")
2434
+
2435
+ # Clean up old backups (keep last 5)
2436
+ from moai_adk.core.template.backup import TemplateBackup
2437
+
2438
+ template_backup = TemplateBackup(project_path)
2439
+ deleted_count = template_backup.cleanup_old_backups(keep_count=5)
2440
+ if deleted_count > 0:
2441
+ console.print(f" [cyan]🧹 Cleaned up {deleted_count} old backup(s)[/cyan]")
2397
2442
  except Exception as e:
2398
2443
  console.print(f" [yellow]⚠ Backup failed: {e}[/yellow]")
2399
2444
  console.print(" [yellow]⚠ Continuing without backup...[/yellow]")
@@ -2424,7 +2469,14 @@ def update(
2424
2469
  console.print(" [yellow]⚙️ Set optimized=false (optimization needed)[/yellow]")
2425
2470
 
2426
2471
  console.print("\n[green]✓ Update complete![/green]")
2427
- console.print("[cyan]ℹ️ Next step: Run /moai:0-project update to optimize template changes[/cyan]")
2472
+
2473
+ # Prompt for MoAI Rank hook installation if eligible
2474
+ try:
2475
+ from moai_adk.rank.hook import prompt_hook_installation
2476
+
2477
+ prompt_hook_installation(console=console)
2478
+ except ImportError:
2479
+ pass # rank module not available
2428
2480
 
2429
2481
  except Exception as e:
2430
2482
  console.print(f"[red]✗ Update failed: {e}[/red]")
@@ -2465,7 +2517,10 @@ def _handle_custom_element_restoration(project_path: Path, backup_path: Path | N
2465
2517
  return
2466
2518
 
2467
2519
  # Create enhanced user selection UI
2468
- ui = create_user_selection_ui(project_path)
2520
+ # IMPORTANT: Use backup_path, not project_path!
2521
+ # At this point, custom elements in project have been deleted by copy_templates().
2522
+ # The UI must scan the BACKUP to find elements available for restoration.
2523
+ ui = create_user_selection_ui(backup_path)
2469
2524
 
2470
2525
  console.print(f"\n[cyan]🔍 Found {backup_element_count} custom elements in backup[/cyan]")
2471
2526
 
@@ -2548,6 +2603,69 @@ def _cleanup_legacy_presets(project_path: Path) -> None:
2548
2603
  logger.warning(f"Failed to remove legacy presets directory {presets_dir}: {e}")
2549
2604
 
2550
2605
 
2606
+ def _cleanup_cli_redesign_obsolete_files(project_path: Path, dry_run: bool = False) -> int:
2607
+ """
2608
+ Remove obsolete files from CLI redesign migration (v0.41+).
2609
+
2610
+ Cleans up:
2611
+ - .moai/scripts/setup-glm.py (replaced by moai init CLI)
2612
+ - .moai/config/questions/ (replaced by moai init CLI prompts)
2613
+ - .moai/scripts/ (if empty after cleanup)
2614
+
2615
+ Args:
2616
+ project_path: Project directory path
2617
+ dry_run: If True, only simulate cleanup
2618
+
2619
+ Returns:
2620
+ Number of items cleaned up
2621
+ """
2622
+ obsolete_items = [
2623
+ ".moai/scripts/setup-glm.py",
2624
+ ".moai/config/questions",
2625
+ ]
2626
+
2627
+ cleaned_count = 0
2628
+
2629
+ for relative_path in obsolete_items:
2630
+ full_path = project_path / relative_path
2631
+
2632
+ if not full_path.exists():
2633
+ continue
2634
+
2635
+ try:
2636
+ if dry_run:
2637
+ console.print(f" [dim]Would remove: {relative_path}[/dim]")
2638
+ cleaned_count += 1
2639
+ else:
2640
+ if full_path.is_dir():
2641
+ shutil.rmtree(full_path)
2642
+ console.print(f" [cyan]Removed obsolete directory: {relative_path}[/cyan]")
2643
+ else:
2644
+ full_path.unlink()
2645
+ console.print(f" [cyan]Removed obsolete file: {relative_path}[/cyan]")
2646
+ logger.info(f"Cleaned up obsolete: {relative_path}")
2647
+ cleaned_count += 1
2648
+ except Exception as e:
2649
+ logger.warning(f"Failed to clean up {relative_path}: {e}")
2650
+
2651
+ # Remove .moai/scripts/ if empty
2652
+ scripts_dir = project_path / ".moai" / "scripts"
2653
+ if scripts_dir.exists() and scripts_dir.is_dir():
2654
+ try:
2655
+ if not any(scripts_dir.iterdir()):
2656
+ if dry_run:
2657
+ console.print(" [dim]Would remove: .moai/scripts (empty)[/dim]")
2658
+ else:
2659
+ shutil.rmtree(scripts_dir)
2660
+ console.print(" [cyan]Removed empty .moai/scripts directory[/cyan]")
2661
+ logger.info("Removed empty .moai/scripts directory")
2662
+ cleaned_count += 1
2663
+ except Exception as e:
2664
+ logger.warning(f"Failed to remove empty scripts directory: {e}")
2665
+
2666
+ return cleaned_count
2667
+
2668
+
2551
2669
  def _migrate_config_json_to_yaml(project_path: Path) -> bool:
2552
2670
  """Migrate legacy config.json to config.yaml format.
2553
2671
 
@@ -2675,3 +2793,158 @@ def _migrate_preset_files_to_yaml(config_dir: Path) -> None:
2675
2793
  if migrated_count > 0:
2676
2794
  console.print(f" [cyan]🔄 Migrated {migrated_count} preset file(s) to YAML[/cyan]")
2677
2795
  logger.info(f"Migrated {migrated_count} preset files to YAML")
2796
+
2797
+
2798
+ def _load_current_settings(project_path: Path) -> dict[str, Any]:
2799
+ """Load current settings from section YAML files.
2800
+
2801
+ Args:
2802
+ project_path: Project directory path
2803
+
2804
+ Returns:
2805
+ Dictionary with current settings from all section files
2806
+ """
2807
+ sections_dir = project_path / ".moai" / "config" / "sections"
2808
+ settings: dict[str, Any] = {}
2809
+
2810
+ section_files = [
2811
+ ("language", "language.yaml"),
2812
+ ("project", "project.yaml"),
2813
+ ("pricing", "pricing.yaml"),
2814
+ ("git_strategy", "git-strategy.yaml"),
2815
+ ("user", "user.yaml"),
2816
+ ("llm", "llm.yaml"),
2817
+ ]
2818
+
2819
+ for key, filename in section_files:
2820
+ file_path = sections_dir / filename
2821
+ if file_path.exists():
2822
+ try:
2823
+ data = yaml.safe_load(file_path.read_text(encoding="utf-8"))
2824
+ if data:
2825
+ settings[key] = data
2826
+ except yaml.YAMLError:
2827
+ pass
2828
+
2829
+ return settings
2830
+
2831
+
2832
+ def _show_current_config(project_path: Path) -> None:
2833
+ """Display current configuration summary in a panel.
2834
+
2835
+ Args:
2836
+ project_path: Project directory path
2837
+ """
2838
+ from rich.panel import Panel
2839
+
2840
+ settings = _load_current_settings(project_path)
2841
+
2842
+ # Extract values with defaults
2843
+ project_name = settings.get("project", {}).get("project", {}).get("name", project_path.name)
2844
+ if isinstance(settings.get("project", {}).get("project"), dict):
2845
+ project_name = settings["project"]["project"].get("name", project_path.name)
2846
+ elif "project" in settings and "name" in settings.get("project", {}).get("project", {}):
2847
+ project_name = settings["project"]["project"]["name"]
2848
+ else:
2849
+ # Try alternative structure
2850
+ project_name = settings.get("project", {}).get("name", project_path.name)
2851
+
2852
+ user_name = settings.get("user", {}).get("user", {}).get("name", "")
2853
+ if not user_name and isinstance(settings.get("user"), dict):
2854
+ user_name = settings.get("user", {}).get("name", "")
2855
+
2856
+ conv_lang = settings.get("language", {}).get("language", {}).get("conversation_language", "en")
2857
+ conv_lang_name = settings.get("language", {}).get("language", {}).get("conversation_language_name", "English")
2858
+
2859
+ # GLM-only simplified flow - service is always GLM
2860
+ glm_pricing_plan = settings.get("pricing", {}).get("service", {}).get("glm_pricing_plan", "basic")
2861
+
2862
+ git_mode = settings.get("git_strategy", {}).get("git_strategy", {}).get("mode", "personal")
2863
+
2864
+ llm_mode = settings.get("llm", {}).get("llm", {}).get("mode", "claude-only")
2865
+
2866
+ # Build display content
2867
+ lines = [
2868
+ f"📁 Project: [cyan]{project_name}[/cyan]",
2869
+ ]
2870
+ if user_name:
2871
+ lines.append(f"👤 User: [cyan]{user_name}[/cyan]")
2872
+
2873
+ lines.append("")
2874
+ lines.append(f"🌐 Language: [green]{conv_lang}[/green] ({conv_lang_name})")
2875
+ lines.append("🔧 Service: [green]GLM CodePlan[/green]" + (f" ({glm_pricing_plan})" if glm_pricing_plan else ""))
2876
+ lines.append(f"🔀 Git: [green]{git_mode}[/green]")
2877
+ lines.append(f"🤖 LLM Mode: [green]{llm_mode}[/green]")
2878
+
2879
+ content = "\n".join(lines)
2880
+ console.print(Panel(content, title="[yellow]Current Configuration[/yellow]", border_style="cyan"))
2881
+
2882
+
2883
+ def _edit_configuration(project_path: Path) -> None:
2884
+ """Interactive configuration editing using init prompts.
2885
+
2886
+ Args:
2887
+ project_path: Project directory path
2888
+ """
2889
+ from moai_adk.cli.commands.init import _save_additional_config
2890
+ from moai_adk.cli.prompts.init_prompts import prompt_project_setup
2891
+
2892
+ console.print("\n[cyan]⚙️ Configuration Edit Mode[/cyan]")
2893
+ console.print("[dim]Edit your project settings (same as init wizard)[/dim]\n")
2894
+
2895
+ # Show current config
2896
+ _show_current_config(project_path)
2897
+ console.print()
2898
+
2899
+ # Load current settings to pre-fill
2900
+ settings = _load_current_settings(project_path)
2901
+
2902
+ # Extract current locale for pre-fill
2903
+ current_locale = settings.get("language", {}).get("language", {}).get("conversation_language", "en")
2904
+ project_name = project_path.name
2905
+
2906
+ # Try to get project name from settings
2907
+ project_data = settings.get("project", {})
2908
+ if isinstance(project_data.get("project"), dict):
2909
+ project_name = project_data["project"].get("name", project_path.name)
2910
+ elif "name" in project_data:
2911
+ project_name = project_data.get("name", project_path.name)
2912
+
2913
+ # Run interactive prompt
2914
+ try:
2915
+ answers = prompt_project_setup(
2916
+ project_name=project_name,
2917
+ is_current_dir=True,
2918
+ project_path=project_path,
2919
+ initial_locale=current_locale,
2920
+ )
2921
+ except KeyboardInterrupt:
2922
+ console.print("\n[yellow]Configuration edit cancelled.[/yellow]")
2923
+ return
2924
+
2925
+ if not answers:
2926
+ console.print("[yellow]No changes made.[/yellow]")
2927
+ return
2928
+
2929
+ # Save configuration to section files
2930
+ # Note: API keys are not modified in config edit mode (pass None to preserve existing)
2931
+ # GLM-only flow: service_type is always "glm", glm_pricing_plan defaults to "basic"
2932
+ _save_additional_config(
2933
+ project_path=project_path,
2934
+ project_name=answers.get("project_name", project_name),
2935
+ locale=answers.get("locale", current_locale),
2936
+ user_name=answers.get("user_name", ""),
2937
+ service_type="glm", # Always GLM in simplified flow
2938
+ pricing_plan=None, # Not used in GLM-only flow
2939
+ glm_pricing_plan="basic", # Default GLM pricing plan
2940
+ anthropic_api_key=None, # Not used in GLM-only flow
2941
+ glm_api_key=None, # Preserve existing key
2942
+ git_mode=answers.get("git_mode", "personal"),
2943
+ github_username=answers.get("github_username"),
2944
+ git_commit_lang=answers.get("git_commit_lang", "en"),
2945
+ code_comment_lang=answers.get("code_comment_lang", "en"),
2946
+ doc_lang=answers.get("doc_lang", "en"),
2947
+ )
2948
+
2949
+ console.print("\n[green]✓ Configuration updated successfully![/green]")
2950
+ console.print("[dim]Changes saved to .moai/config/sections/[/dim]")