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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. moai_adk/__main__.py +136 -5
  2. moai_adk/astgrep/__init__.py +37 -0
  3. moai_adk/astgrep/analyzer.py +522 -0
  4. moai_adk/astgrep/models.py +124 -0
  5. moai_adk/astgrep/rules.py +179 -0
  6. moai_adk/cli/commands/analyze.py +11 -2
  7. moai_adk/cli/commands/doctor.py +7 -1
  8. moai_adk/cli/commands/init.py +321 -11
  9. moai_adk/cli/commands/language.py +7 -1
  10. moai_adk/cli/commands/rank.py +449 -0
  11. moai_adk/cli/commands/status.py +7 -1
  12. moai_adk/cli/commands/switch.py +325 -0
  13. moai_adk/cli/commands/update.py +296 -23
  14. moai_adk/cli/prompts/init_prompts.py +362 -66
  15. moai_adk/cli/prompts/translations/__init__.py +573 -0
  16. moai_adk/cli/ui/prompts.py +61 -2
  17. moai_adk/cli/worktree/cli.py +106 -1
  18. moai_adk/cli/worktree/manager.py +155 -0
  19. moai_adk/core/config/unified.py +244 -63
  20. moai_adk/core/credentials.py +264 -0
  21. moai_adk/core/error_recovery_system.py +22 -4
  22. moai_adk/core/git/conflict_detector.py +10 -1
  23. moai_adk/core/git/event_detector.py +16 -5
  24. moai_adk/core/integration/engine.py +2 -2
  25. moai_adk/core/integration/integration_tester.py +5 -5
  26. moai_adk/core/language_config_resolver.py +9 -3
  27. moai_adk/core/merge/analyzer.py +509 -324
  28. moai_adk/core/migration/alfred_to_moai_migrator.py +7 -1
  29. moai_adk/core/migration/backup_manager.py +54 -4
  30. moai_adk/core/migration/file_migrator.py +174 -2
  31. moai_adk/core/migration/interactive_checkbox_ui.py +42 -31
  32. moai_adk/core/migration/version_detector.py +123 -19
  33. moai_adk/core/migration/version_migrator.py +44 -9
  34. moai_adk/core/model_allocator.py +241 -0
  35. moai_adk/core/project/backup_utils.py +12 -2
  36. moai_adk/core/project/initializer.py +44 -87
  37. moai_adk/core/project/phase_executor.py +95 -33
  38. moai_adk/core/project/validator.py +16 -1
  39. moai_adk/core/quality/trust_checker.py +30 -10
  40. moai_adk/core/rollback_manager.py +60 -25
  41. moai_adk/core/template/backup.py +88 -6
  42. moai_adk/core/template/config.py +33 -9
  43. moai_adk/core/template/merger.py +34 -8
  44. moai_adk/core/template/processor.py +334 -11
  45. moai_adk/core/template_engine.py +10 -1
  46. moai_adk/core/template_variable_synchronizer.py +16 -2
  47. moai_adk/core/version_sync.py +54 -6
  48. moai_adk/foundation/__init__.py +1 -20
  49. moai_adk/foundation/testing.py +1 -1
  50. moai_adk/loop/__init__.py +54 -0
  51. moai_adk/loop/controller.py +305 -0
  52. moai_adk/loop/feedback.py +230 -0
  53. moai_adk/loop/state.py +209 -0
  54. moai_adk/loop/storage.py +220 -0
  55. moai_adk/lsp/__init__.py +70 -0
  56. moai_adk/lsp/client.py +320 -0
  57. moai_adk/lsp/models.py +261 -0
  58. moai_adk/lsp/protocol.py +404 -0
  59. moai_adk/lsp/server_manager.py +248 -0
  60. moai_adk/project/configuration.py +8 -1
  61. moai_adk/py.typed +0 -0
  62. moai_adk/ralph/__init__.py +37 -0
  63. moai_adk/ralph/engine.py +307 -0
  64. moai_adk/rank/__init__.py +21 -0
  65. moai_adk/rank/auth.py +425 -0
  66. moai_adk/rank/client.py +557 -0
  67. moai_adk/rank/config.py +147 -0
  68. moai_adk/rank/hook.py +1503 -0
  69. moai_adk/rank/py.typed +0 -0
  70. moai_adk/statusline/__init__.py +3 -0
  71. moai_adk/statusline/enhanced_output_style_detector.py +5 -5
  72. moai_adk/statusline/main.py +20 -1
  73. moai_adk/statusline/memory_collector.py +268 -0
  74. moai_adk/statusline/renderer.py +54 -38
  75. moai_adk/tag_system/__init__.py +48 -0
  76. moai_adk/tag_system/atomic_ops.py +117 -0
  77. moai_adk/tag_system/linkage.py +335 -0
  78. moai_adk/tag_system/parser.py +176 -0
  79. moai_adk/tag_system/validator.py +200 -0
  80. moai_adk/templates/.claude/agents/moai/builder-agent.md +19 -3
  81. moai_adk/templates/.claude/agents/moai/builder-command.md +62 -16
  82. moai_adk/templates/.claude/agents/moai/builder-plugin.md +763 -0
  83. moai_adk/templates/.claude/agents/moai/builder-skill.md +21 -5
  84. moai_adk/templates/.claude/agents/moai/expert-backend.md +103 -39
  85. moai_adk/templates/.claude/agents/moai/expert-debug.md +9 -3
  86. moai_adk/templates/.claude/agents/moai/expert-devops.md +16 -14
  87. moai_adk/templates/.claude/agents/moai/expert-frontend.md +45 -31
  88. moai_adk/templates/.claude/agents/moai/expert-performance.md +13 -9
  89. moai_adk/templates/.claude/agents/moai/expert-refactoring.md +228 -0
  90. moai_adk/templates/.claude/agents/moai/expert-security.md +19 -3
  91. moai_adk/templates/.claude/agents/moai/expert-testing.md +13 -9
  92. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +8 -2
  93. moai_adk/templates/.claude/agents/moai/manager-docs.md +10 -5
  94. moai_adk/templates/.claude/agents/moai/manager-git.md +99 -27
  95. moai_adk/templates/.claude/agents/moai/manager-project.md +87 -7
  96. moai_adk/templates/.claude/agents/moai/manager-quality.md +22 -5
  97. moai_adk/templates/.claude/agents/moai/manager-spec.md +8 -2
  98. moai_adk/templates/.claude/agents/moai/manager-strategy.md +45 -14
  99. moai_adk/templates/.claude/agents/moai/manager-tdd.md +16 -3
  100. moai_adk/templates/.claude/commands/moai/0-project.md +239 -1185
  101. moai_adk/templates/.claude/commands/moai/1-plan.md +383 -363
  102. moai_adk/templates/.claude/commands/moai/2-run.md +254 -347
  103. moai_adk/templates/.claude/commands/moai/3-sync.md +174 -100
  104. moai_adk/templates/.claude/commands/moai/9-feedback.md +49 -33
  105. moai_adk/templates/.claude/commands/moai/alfred.md +339 -0
  106. moai_adk/templates/.claude/commands/moai/cancel-loop.md +163 -0
  107. moai_adk/templates/.claude/commands/moai/fix.md +264 -0
  108. moai_adk/templates/.claude/commands/moai/loop.md +363 -0
  109. moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
  110. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +37 -81
  111. moai_adk/templates/.claude/hooks/moai/lib/alfred_detector.py +105 -0
  112. moai_adk/templates/.claude/hooks/moai/lib/atomic_write.py +122 -0
  113. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +4 -1
  114. moai_adk/templates/.claude/hooks/moai/lib/common.py +35 -5
  115. moai_adk/templates/.claude/hooks/moai/lib/config.py +376 -0
  116. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +24 -28
  117. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +14 -14
  118. moai_adk/templates/.claude/hooks/moai/lib/enhanced_output_style_detector.py +372 -0
  119. moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
  120. moai_adk/templates/.claude/hooks/moai/lib/file_utils.py +95 -0
  121. moai_adk/templates/.claude/hooks/moai/lib/git_collector.py +190 -0
  122. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +15 -13
  123. moai_adk/templates/.claude/hooks/moai/lib/language_detector.py +298 -0
  124. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +125 -25
  125. moai_adk/templates/.claude/hooks/moai/lib/main.py +341 -0
  126. moai_adk/templates/.claude/hooks/moai/lib/memory_collector.py +268 -0
  127. moai_adk/templates/.claude/hooks/moai/lib/metrics_tracker.py +78 -0
  128. moai_adk/templates/.claude/hooks/moai/lib/models.py +9 -7
  129. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +204 -13
  130. moai_adk/templates/.claude/hooks/moai/lib/project.py +23 -14
  131. moai_adk/templates/.claude/hooks/moai/lib/renderer.py +359 -0
  132. moai_adk/templates/.claude/hooks/moai/lib/tag_linkage.py +333 -0
  133. moai_adk/templates/.claude/hooks/moai/lib/tag_parser.py +176 -0
  134. moai_adk/templates/.claude/hooks/moai/lib/tag_validator.py +200 -0
  135. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +5 -5
  136. moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +896 -0
  137. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +30 -18
  138. moai_adk/templates/.claude/hooks/moai/lib/update_checker.py +129 -0
  139. moai_adk/templates/.claude/hooks/moai/lib/version_reader.py +741 -0
  140. moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +276 -0
  141. moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +255 -0
  142. moai_adk/templates/.claude/hooks/moai/post_tool__coverage_guard.py +325 -0
  143. moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +315 -0
  144. moai_adk/templates/.claude/hooks/moai/post_tool__lsp_diagnostic.py +508 -0
  145. moai_adk/templates/.claude/hooks/moai/pre_commit__tag_validator.py +287 -0
  146. moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +268 -0
  147. moai_adk/templates/.claude/hooks/moai/pre_tool__tdd_enforcer.py +208 -0
  148. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +93 -61
  149. moai_adk/templates/.claude/hooks/moai/session_end__rank_submit.py +69 -0
  150. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +165 -70
  151. moai_adk/templates/.claude/hooks/moai/shared/utils/announcement_translator.py +206 -0
  152. moai_adk/templates/.claude/hooks/moai/stop__loop_controller.py +621 -0
  153. moai_adk/templates/.claude/output-styles/moai/alfred.md +758 -0
  154. moai_adk/templates/.claude/output-styles/moai/r2d2.md +86 -3
  155. moai_adk/templates/.claude/output-styles/moai/yoda.md +2 -2
  156. moai_adk/templates/.claude/settings.json +154 -77
  157. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +252 -198
  158. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +169 -323
  159. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +39 -27
  160. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +115 -125
  161. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +150 -150
  162. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +182 -175
  163. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +198 -138
  164. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +226 -320
  165. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +43 -222
  166. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +75 -219
  167. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +103 -463
  168. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/component-architecture.md +723 -0
  169. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/nextjs16-patterns.md +713 -0
  170. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/performance-optimization.md +694 -0
  171. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/react19-patterns.md +591 -0
  172. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/state-management.md +680 -0
  173. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/vue35-patterns.md +802 -0
  174. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +118 -339
  175. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +74 -377
  176. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +299 -70
  177. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +205 -182
  178. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/advanced-agent-patterns.md +370 -0
  179. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-cli-reference-official.md +420 -0
  180. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +32 -22
  181. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-devcontainers-official.md +381 -0
  182. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-discover-plugins-official.md +379 -0
  183. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-headless-official.md +378 -0
  184. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +110 -0
  185. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugin-marketplaces-official.md +308 -0
  186. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugins-official.md +640 -0
  187. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sandboxing-official.md +282 -0
  188. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +425 -71
  189. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-statusline-official.md +293 -0
  190. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +325 -143
  191. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +96 -316
  192. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +116 -294
  193. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-advanced.md +279 -0
  194. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-implementation.md +267 -0
  195. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +121 -650
  196. moai_adk/templates/.claude/skills/moai-foundation-core/modules/patterns.md +22 -0
  197. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-ears-format.md +200 -0
  198. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +37 -730
  199. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-tdd-implementation.md +275 -0
  200. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +77 -819
  201. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-implementation.md +244 -0
  202. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-validation.md +219 -0
  203. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +14 -18
  204. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +86 -270
  205. moai_adk/templates/.claude/skills/moai-framework-electron/SKILL.md +288 -0
  206. moai_adk/templates/.claude/skills/moai-framework-electron/examples.md +2082 -0
  207. moai_adk/templates/.claude/skills/moai-framework-electron/reference.md +1649 -0
  208. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +76 -582
  209. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +1239 -0
  210. moai_adk/templates/.claude/skills/moai-lang-cpp/modules/advanced-patterns.md +401 -0
  211. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +1136 -0
  212. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +82 -436
  213. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +585 -0
  214. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/aspnet-core.md +627 -0
  215. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/blazor-components.md +767 -0
  216. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/cqrs-validation.md +626 -0
  217. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/csharp12-features.md +580 -0
  218. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/efcore-patterns.md +622 -0
  219. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +403 -0
  220. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +65 -542
  221. moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +1171 -0
  222. moai_adk/templates/.claude/skills/moai-lang-elixir/modules/advanced-patterns.md +531 -0
  223. moai_adk/templates/.claude/skills/moai-lang-elixir/reference.md +889 -0
  224. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +32 -405
  225. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +114 -293
  226. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +83 -307
  227. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +179 -0
  228. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +973 -0
  229. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +1543 -0
  230. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +42 -279
  231. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +94 -556
  232. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +1608 -0
  233. moai_adk/templates/.claude/skills/moai-lang-php/modules/advanced-patterns.md +538 -0
  234. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +1323 -0
  235. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +108 -358
  236. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +84 -482
  237. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +1154 -0
  238. moai_adk/templates/.claude/skills/moai-lang-r/modules/advanced-patterns.md +489 -0
  239. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +1087 -0
  240. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +106 -610
  241. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +1106 -0
  242. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/advanced-patterns.md +309 -0
  243. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/testing-patterns.md +306 -0
  244. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +1024 -0
  245. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +51 -265
  246. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +106 -442
  247. moai_adk/templates/.claude/skills/moai-lang-scala/modules/akka-actors.md +479 -0
  248. moai_adk/templates/.claude/skills/moai-lang-scala/modules/cats-effect.md +489 -0
  249. moai_adk/templates/.claude/skills/moai-lang-scala/modules/functional-programming.md +460 -0
  250. moai_adk/templates/.claude/skills/moai-lang-scala/modules/spark-data.md +498 -0
  251. moai_adk/templates/.claude/skills/moai-lang-scala/modules/zio-patterns.md +541 -0
  252. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +88 -457
  253. moai_adk/templates/.claude/skills/moai-lang-swift/modules/combine-reactive.md +256 -0
  254. moai_adk/templates/.claude/skills/moai-lang-swift/modules/concurrency.md +270 -0
  255. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swift6-features.md +265 -0
  256. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swiftui-patterns.md +314 -0
  257. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +75 -283
  258. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +97 -252
  259. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +64 -240
  260. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +331 -12
  261. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +330 -37
  262. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +90 -287
  263. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +200 -206
  264. moai_adk/templates/.claude/skills/moai-platform-auth0/examples.md +2446 -0
  265. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/adaptive-mfa.md +233 -0
  266. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/akamai-integration.md +214 -0
  267. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/application-credentials.md +280 -0
  268. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-log-events.md +224 -0
  269. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-overview.md +140 -0
  270. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/bot-detection.md +144 -0
  271. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/breached-password-detection.md +187 -0
  272. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/brute-force-protection.md +189 -0
  273. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/certifications.md +282 -0
  274. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/compliance-overview.md +263 -0
  275. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/continuous-session-protection.md +307 -0
  276. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/customize-mfa.md +177 -0
  277. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/dpop-implementation.md +283 -0
  278. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/fapi-implementation.md +259 -0
  279. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/gdpr-compliance.md +313 -0
  280. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/guardian-configuration.md +269 -0
  281. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/highly-regulated-identity.md +272 -0
  282. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/jwt-fundamentals.md +248 -0
  283. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mdl-verification.md +210 -0
  284. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-api-management.md +278 -0
  285. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-factors.md +226 -0
  286. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-overview.md +174 -0
  287. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mtls-sender-constraining.md +316 -0
  288. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/ropg-flow-mfa.md +216 -0
  289. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-center.md +325 -0
  290. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-guidance.md +277 -0
  291. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/state-parameters.md +177 -0
  292. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/step-up-authentication.md +251 -0
  293. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/suspicious-ip-throttling.md +240 -0
  294. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/tenant-access-control.md +179 -0
  295. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/webauthn-fido.md +235 -0
  296. moai_adk/templates/.claude/skills/moai-platform-auth0/reference.md +224 -0
  297. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +75 -330
  298. moai_adk/templates/.claude/skills/moai-platform-clerk/examples.md +1426 -0
  299. moai_adk/templates/.claude/skills/moai-platform-clerk/modules/advanced-patterns.md +417 -0
  300. moai_adk/templates/.claude/skills/moai-platform-clerk/reference.md +273 -0
  301. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +100 -340
  302. moai_adk/templates/.claude/skills/moai-platform-convex/examples.md +506 -0
  303. moai_adk/templates/.claude/skills/moai-platform-convex/modules/auth-integration.md +421 -0
  304. moai_adk/templates/.claude/skills/moai-platform-convex/modules/file-storage.md +474 -0
  305. moai_adk/templates/.claude/skills/moai-platform-convex/modules/reactive-queries.md +302 -0
  306. moai_adk/templates/.claude/skills/moai-platform-convex/modules/server-functions.md +452 -0
  307. moai_adk/templates/.claude/skills/moai-platform-convex/reference.md +385 -0
  308. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +113 -326
  309. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/examples.md +514 -0
  310. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/custom-claims.md +374 -0
  311. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/phone-auth.md +372 -0
  312. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/social-auth.md +339 -0
  313. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/reference.md +382 -0
  314. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +71 -302
  315. moai_adk/templates/.claude/skills/moai-platform-firestore/examples.md +445 -0
  316. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/offline-cache.md +392 -0
  317. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/realtime-listeners.md +441 -0
  318. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/security-rules.md +352 -0
  319. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/transactions.md +452 -0
  320. moai_adk/templates/.claude/skills/moai-platform-firestore/reference.md +322 -0
  321. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +101 -412
  322. moai_adk/templates/.claude/skills/moai-platform-neon/examples.md +470 -0
  323. moai_adk/templates/.claude/skills/moai-platform-neon/modules/auto-scaling.md +349 -0
  324. moai_adk/templates/.claude/skills/moai-platform-neon/modules/branching-workflows.md +354 -0
  325. moai_adk/templates/.claude/skills/moai-platform-neon/modules/connection-pooling.md +412 -0
  326. moai_adk/templates/.claude/skills/moai-platform-neon/modules/pitr-backups.md +458 -0
  327. moai_adk/templates/.claude/skills/moai-platform-neon/reference.md +272 -0
  328. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +96 -327
  329. moai_adk/templates/.claude/skills/moai-platform-railway/examples.md +539 -0
  330. moai_adk/templates/.claude/skills/moai-platform-railway/modules/docker-deployment.md +261 -0
  331. moai_adk/templates/.claude/skills/moai-platform-railway/modules/multi-service.md +291 -0
  332. moai_adk/templates/.claude/skills/moai-platform-railway/modules/networking-domains.md +338 -0
  333. moai_adk/templates/.claude/skills/moai-platform-railway/modules/volumes-storage.md +353 -0
  334. moai_adk/templates/.claude/skills/moai-platform-railway/reference.md +374 -0
  335. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +103 -428
  336. moai_adk/templates/.claude/skills/moai-platform-supabase/examples.md +502 -0
  337. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/auth-integration.md +384 -0
  338. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/edge-functions.md +371 -0
  339. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/postgresql-pgvector.md +231 -0
  340. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/realtime-presence.md +354 -0
  341. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/row-level-security.md +286 -0
  342. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/storage-cdn.md +319 -0
  343. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/typescript-patterns.md +453 -0
  344. moai_adk/templates/.claude/skills/moai-platform-supabase/reference.md +284 -0
  345. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +96 -446
  346. moai_adk/templates/.claude/skills/moai-platform-vercel/examples.md +502 -0
  347. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/analytics-speed.md +348 -0
  348. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/deployment-config.md +344 -0
  349. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/edge-functions.md +222 -0
  350. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/isr-caching.md +306 -0
  351. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/kv-storage.md +399 -0
  352. moai_adk/templates/.claude/skills/moai-platform-vercel/reference.md +360 -0
  353. moai_adk/templates/.claude/skills/moai-tool-ast-grep/SKILL.md +193 -0
  354. moai_adk/templates/.claude/skills/moai-tool-ast-grep/examples.md +1099 -0
  355. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/language-specific.md +307 -0
  356. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/pattern-syntax.md +237 -0
  357. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/refactoring-patterns.md +260 -0
  358. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/security-rules.md +239 -0
  359. moai_adk/templates/.claude/skills/moai-tool-ast-grep/reference.md +288 -0
  360. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/go.yml +90 -0
  361. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/python.yml +101 -0
  362. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/typescript.yml +83 -0
  363. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/complexity-check.yml +94 -0
  364. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/deprecated-apis.yml +84 -0
  365. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/secrets-detection.yml +89 -0
  366. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/sql-injection.yml +45 -0
  367. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/xss-prevention.yml +50 -0
  368. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml +54 -0
  369. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +225 -423
  370. moai_adk/templates/.claude/skills/moai-workflow-loop/SKILL.md +197 -0
  371. moai_adk/templates/.claude/skills/moai-workflow-loop/examples.md +1063 -0
  372. moai_adk/templates/.claude/skills/moai-workflow-loop/reference.md +1414 -0
  373. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +211 -314
  374. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +15 -43
  375. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +119 -316
  376. moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
  377. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +96 -203
  378. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +201 -388
  379. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +52 -3
  380. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +263 -806
  381. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/context7-integration.md +286 -0
  382. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/review-workflows.md +500 -0
  383. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/relevance-analysis.md +154 -0
  384. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/safety-analysis.md +148 -0
  385. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/scoring-algorithms.md +196 -0
  386. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/timeliness-analysis.md +168 -0
  387. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/truthfulness-analysis.md +136 -0
  388. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/usability-analysis.md +153 -0
  389. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework.md +257 -0
  390. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +191 -1344
  391. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/analysis-patterns.md +340 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/core-classes.md +299 -0
  393. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/tool-integration.md +380 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/debugging-workflows.md +451 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/error-analysis.md +442 -0
  396. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/optimization-patterns.md +473 -0
  397. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/profiling-techniques.md +481 -0
  398. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/ai-optimization.md +241 -0
  399. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/bottleneck-detection.md +397 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/optimization-plan.md +315 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/profiler-core.md +277 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/real-time-monitoring.md +187 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +287 -1194
  404. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/quality-metrics.md +415 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/ai-workflows.md +620 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/patterns.md +692 -0
  407. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/security-analysis.md +429 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +262 -1192
  409. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/static-analysis.md +438 -0
  410. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd/core-classes.md +397 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/advanced-features.md +494 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/red-green-refactor.md +316 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-generation.md +471 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-patterns.md +371 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +227 -1222
  416. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/trust5-validation.md +428 -0
  417. moai_adk/templates/.claude/skills/moai-workflow-worktree/SKILL.md +228 -0
  418. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/integration-patterns.md +149 -0
  419. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/moai-adk-integration.md +245 -0
  420. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-advanced.md +310 -0
  421. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-development.md +202 -0
  422. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-workflows.md +302 -0
  423. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/registry-architecture.md +271 -0
  424. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/resource-optimization.md +300 -0
  425. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/tools-integration.md +280 -0
  426. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/troubleshooting.md +397 -0
  427. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-commands.md +296 -0
  428. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-management.md +217 -0
  429. moai_adk/templates/.git-hooks/pre-push +162 -59
  430. moai_adk/templates/.github/workflows/ci-universal.yml +934 -133
  431. moai_adk/templates/.gitignore +65 -107
  432. moai_adk/templates/.lsp.json +152 -0
  433. moai_adk/templates/.mcp.json +2 -20
  434. moai_adk/templates/.moai/announcements/en.json +18 -0
  435. moai_adk/templates/.moai/announcements/ja.json +18 -0
  436. moai_adk/templates/.moai/announcements/ko.json +18 -0
  437. moai_adk/templates/.moai/announcements/zh.json +18 -0
  438. moai_adk/templates/.moai/config/config.yaml +8 -2
  439. moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
  440. moai_adk/templates/.moai/config/sections/language.yaml +2 -2
  441. moai_adk/templates/.moai/config/sections/llm.yaml +41 -0
  442. moai_adk/templates/.moai/config/sections/pricing.yaml +30 -0
  443. moai_adk/templates/.moai/config/sections/project.yaml +2 -2
  444. moai_adk/templates/.moai/config/sections/quality.yaml +43 -5
  445. moai_adk/templates/.moai/config/sections/ralph.yaml +55 -0
  446. moai_adk/templates/.moai/config/sections/system.yaml +46 -1
  447. moai_adk/templates/.moai/config/sections/user.yaml +1 -1
  448. moai_adk/templates/.moai/config/statusline-config.yaml +2 -2
  449. moai_adk/templates/.moai/llm-configs/glm.json +22 -0
  450. moai_adk/templates/CLAUDE.ja.md +343 -0
  451. moai_adk/templates/CLAUDE.ko.md +343 -0
  452. moai_adk/templates/CLAUDE.md +200 -499
  453. moai_adk/templates/CLAUDE.zh.md +343 -0
  454. moai_adk/utils/common.py +37 -0
  455. moai_adk/version.py +1 -1
  456. moai_adk-1.1.0.dist-info/METADATA +2443 -0
  457. moai_adk-1.1.0.dist-info/RECORD +701 -0
  458. {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/entry_points.txt +2 -0
  459. moai_adk-1.1.0.dist-info/licenses/LICENSE +99 -0
  460. moai_adk/core/config/auto_spec_config.py +0 -340
  461. moai_adk/core/hooks/post_tool_auto_spec_completion.py +0 -901
  462. moai_adk/core/spec/confidence_scoring.py +0 -680
  463. moai_adk/core/spec/ears_template_engine.py +0 -1247
  464. moai_adk/core/spec/quality_validator.py +0 -687
  465. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +0 -670
  466. moai_adk/templates/.claude/agents/moai/expert-database.md +0 -777
  467. moai_adk/templates/.claude/agents/moai/expert-uiux.md +0 -1041
  468. moai_adk/templates/.claude/agents/moai/mcp-context7.md +0 -458
  469. moai_adk/templates/.claude/agents/moai/mcp-figma.md +0 -1607
  470. moai_adk/templates/.claude/agents/moai/mcp-notion.md +0 -789
  471. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +0 -469
  472. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +0 -1032
  473. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +0 -438
  474. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +0 -431
  475. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +0 -405
  476. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +0 -336
  477. moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +0 -402
  478. moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +0 -607
  479. moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +0 -300
  480. moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +0 -537
  481. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +0 -520
  482. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +0 -574
  483. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +0 -317
  484. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +0 -663
  485. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +0 -190
  486. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +0 -175
  487. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +0 -196
  488. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +0 -17
  489. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +0 -158
  490. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +0 -340
  491. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +0 -713
  492. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +0 -538
  493. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +0 -1336
  494. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +0 -730
  495. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +0 -608
  496. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +0 -1005
  497. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +0 -436
  498. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +0 -411
  499. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +0 -982
  500. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +0 -778
  501. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +0 -646
  502. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +0 -782
  503. moai_adk/templates/.moai/config/questions/_schema.yaml +0 -151
  504. moai_adk/templates/.moai/config/questions/tab0-init.yaml +0 -251
  505. moai_adk/templates/.moai/config/questions/tab1-user.yaml +0 -108
  506. moai_adk/templates/.moai/config/questions/tab2-project.yaml +0 -81
  507. moai_adk/templates/.moai/config/questions/tab3-git.yaml +0 -634
  508. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +0 -170
  509. moai_adk/templates/.moai/config/questions/tab5-system.yaml +0 -87
  510. moai_adk/templates/.moai/scripts/setup-glm.py +0 -136
  511. moai_adk-0.34.0.dist-info/METADATA +0 -2999
  512. moai_adk-0.34.0.dist-info/RECORD +0 -463
  513. moai_adk-0.34.0.dist-info/licenses/LICENSE +0 -21
  514. /moai_adk/foundation/{git.py → git/__init__.py} +0 -0
  515. /moai_adk/templates/.claude/skills/moai-library-mermaid/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  516. /moai_adk/templates/.claude/skills/moai-library-mermaid/{optimization.md → modules/optimization.md} +0 -0
  517. /moai_adk/templates/.claude/skills/moai-library-nextra/{optimization.md → modules/optimization.md} +0 -0
  518. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  519. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{optimization.md → modules/optimization.md} +0 -0
  520. /moai_adk/templates/.claude/skills/moai-workflow-testing/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  521. /moai_adk/templates/.claude/skills/moai-workflow-testing/{optimization.md → modules/optimization.md} +0 -0
  522. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/examples.md +0 -0
  523. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/reference.md +0 -0
  524. {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,349 @@
1
+ # Auto-Scaling and Compute Management
2
+
3
+ ## Overview
4
+
5
+ Neon auto-scaling automatically adjusts compute resources based on workload demand, with scale-to-zero capability for cost optimization during idle periods.
6
+
7
+ ---
8
+
9
+ ## Compute Unit Specifications
10
+
11
+ ### Available Compute Sizes
12
+
13
+ 0.25 CU Specifications:
14
+ - vCPU: 0.25
15
+ - RAM: 1 GB
16
+ - Use Case: Development, testing, low-traffic applications
17
+
18
+ 0.5 CU Specifications:
19
+ - vCPU: 0.5
20
+ - RAM: 2 GB
21
+ - Use Case: Light production workloads, staging environments
22
+
23
+ 1 CU Specifications:
24
+ - vCPU: 1
25
+ - RAM: 4 GB
26
+ - Use Case: Standard production applications
27
+
28
+ 2 CU Specifications:
29
+ - vCPU: 2
30
+ - RAM: 8 GB
31
+ - Use Case: Medium workloads, moderate traffic
32
+
33
+ 4 CU Specifications:
34
+ - vCPU: 4
35
+ - RAM: 16 GB
36
+ - Use Case: Heavy workloads, high traffic applications
37
+
38
+ 8 CU Specifications:
39
+ - vCPU: 8
40
+ - RAM: 32 GB
41
+ - Use Case: High-performance requirements, data processing
42
+
43
+ ---
44
+
45
+ ## Auto-Scaling Configuration
46
+
47
+ ### Configuration via API
48
+
49
+ ```typescript
50
+ interface AutoScalingConfig {
51
+ minCu: number // Minimum compute units (0.25 for scale-to-zero)
52
+ maxCu: number // Maximum compute units
53
+ suspendTimeout: number // Seconds before suspension (0 to disable)
54
+ }
55
+
56
+ async function configureAutoScaling(endpointId: string, config: AutoScalingConfig) {
57
+ const response = await fetch(
58
+ `https://console.neon.tech/api/v2/projects/${process.env.NEON_PROJECT_ID}/endpoints/${endpointId}`,
59
+ {
60
+ method: 'PATCH',
61
+ headers: {
62
+ 'Authorization': `Bearer ${process.env.NEON_API_KEY}`,
63
+ 'Content-Type': 'application/json'
64
+ },
65
+ body: JSON.stringify({
66
+ endpoint: {
67
+ autoscaling_limit_min_cu: config.minCu,
68
+ autoscaling_limit_max_cu: config.maxCu,
69
+ suspend_timeout_seconds: config.suspendTimeout
70
+ }
71
+ })
72
+ }
73
+ )
74
+
75
+ if (!response.ok) {
76
+ throw new Error(`Failed to configure auto-scaling: ${response.statusText}`)
77
+ }
78
+
79
+ return response.json()
80
+ }
81
+ ```
82
+
83
+ ### Environment-Specific Configurations
84
+
85
+ Development Configuration:
86
+ ```typescript
87
+ const devConfig: AutoScalingConfig = {
88
+ minCu: 0.25, // Scale to zero when idle
89
+ maxCu: 0.5, // Limited compute for development
90
+ suspendTimeout: 300 // Suspend after 5 minutes idle
91
+ }
92
+ ```
93
+
94
+ Staging Configuration:
95
+ ```typescript
96
+ const stagingConfig: AutoScalingConfig = {
97
+ minCu: 0.25, // Scale to zero during off-hours
98
+ maxCu: 1, // Moderate compute for testing
99
+ suspendTimeout: 600 // Suspend after 10 minutes idle
100
+ }
101
+ ```
102
+
103
+ Production Configuration:
104
+ ```typescript
105
+ const productionConfig: AutoScalingConfig = {
106
+ minCu: 0.5, // Always-on minimum for faster response
107
+ maxCu: 4, // Scale up for peak traffic
108
+ suspendTimeout: 3600 // Suspend after 1 hour idle (or 0 to disable)
109
+ }
110
+ ```
111
+
112
+ High-Traffic Production Configuration:
113
+ ```typescript
114
+ const highTrafficConfig: AutoScalingConfig = {
115
+ minCu: 1, // Higher baseline for consistent performance
116
+ maxCu: 8, // Maximum scale for peak loads
117
+ suspendTimeout: 0 // Never suspend (always-on)
118
+ }
119
+ ```
120
+
121
+ ---
122
+
123
+ ## Scale-to-Zero Behavior
124
+
125
+ ### How Scale-to-Zero Works
126
+
127
+ Idle Detection: Neon monitors connection activity and query execution
128
+ Suspension: After suspend_timeout seconds of inactivity, compute suspends
129
+ Wake-Up: First connection request triggers automatic wake-up
130
+ Cold Start: Typical wake-up time is 500ms to 2 seconds
131
+
132
+ ### Cold Start Optimization
133
+
134
+ Connection Pooling Impact:
135
+ - Use pooled connections to reduce cold start frequency
136
+ - Pooler maintains connection state during suspension
137
+ - First query after wake-up experiences latency
138
+
139
+ Warming Strategies:
140
+ ```typescript
141
+ // Health check endpoint to keep database warm
142
+ async function warmDatabase() {
143
+ const sql = neon(process.env.DATABASE_URL_POOLED!)
144
+
145
+ // Simple query to prevent suspension
146
+ await sql`SELECT 1`
147
+ }
148
+
149
+ // Schedule periodic warming (every 4 minutes for 5-minute timeout)
150
+ setInterval(warmDatabase, 4 * 60 * 1000)
151
+ ```
152
+
153
+ ### Cost Implications
154
+
155
+ Scale-to-Zero Benefits:
156
+ - Zero compute charges during idle periods
157
+ - Ideal for development and low-traffic applications
158
+ - Automatic cost optimization without manual intervention
159
+
160
+ Trade-offs:
161
+ - Cold start latency on first request after suspension
162
+ - Not suitable for latency-sensitive applications
163
+ - Consider always-on minimum for production workloads
164
+
165
+ ---
166
+
167
+ ## Endpoint Management
168
+
169
+ ### Get Current Endpoint Configuration
170
+
171
+ ```typescript
172
+ async function getEndpointConfig(endpointId: string) {
173
+ const response = await fetch(
174
+ `https://console.neon.tech/api/v2/projects/${process.env.NEON_PROJECT_ID}/endpoints/${endpointId}`,
175
+ {
176
+ headers: {
177
+ 'Authorization': `Bearer ${process.env.NEON_API_KEY}`
178
+ }
179
+ }
180
+ )
181
+
182
+ return response.json()
183
+ }
184
+ ```
185
+
186
+ ### List All Endpoints
187
+
188
+ ```typescript
189
+ async function listEndpoints() {
190
+ const response = await fetch(
191
+ `https://console.neon.tech/api/v2/projects/${process.env.NEON_PROJECT_ID}/endpoints`,
192
+ {
193
+ headers: {
194
+ 'Authorization': `Bearer ${process.env.NEON_API_KEY}`
195
+ }
196
+ }
197
+ )
198
+
199
+ return response.json()
200
+ }
201
+ ```
202
+
203
+ ### Monitor Endpoint Status
204
+
205
+ ```typescript
206
+ interface EndpointStatus {
207
+ id: string
208
+ state: 'active' | 'idle' | 'suspended'
209
+ currentCu: number
210
+ lastActiveAt: string
211
+ }
212
+
213
+ async function getEndpointStatus(endpointId: string): Promise<EndpointStatus> {
214
+ const { endpoint } = await getEndpointConfig(endpointId)
215
+
216
+ return {
217
+ id: endpoint.id,
218
+ state: endpoint.current_state,
219
+ currentCu: endpoint.autoscaling_limit_min_cu,
220
+ lastActiveAt: endpoint.last_active
221
+ }
222
+ }
223
+ ```
224
+
225
+ ---
226
+
227
+ ## Cost Optimization Strategies
228
+
229
+ ### Development Environments
230
+
231
+ Strategy: Aggressive scale-to-zero with low maximum compute
232
+
233
+ ```typescript
234
+ // Minimize costs for development databases
235
+ await configureAutoScaling(devEndpointId, {
236
+ minCu: 0.25,
237
+ maxCu: 0.5,
238
+ suspendTimeout: 180 // 3 minutes - quick suspension
239
+ })
240
+ ```
241
+
242
+ ### Staging Environments
243
+
244
+ Strategy: Balance between cost and performance for testing
245
+
246
+ ```typescript
247
+ // Cost-effective staging with reasonable performance
248
+ await configureAutoScaling(stagingEndpointId, {
249
+ minCu: 0.25,
250
+ maxCu: 2,
251
+ suspendTimeout: 600 // 10 minutes
252
+ })
253
+ ```
254
+
255
+ ### Production Environments
256
+
257
+ Strategy: Prioritize performance with cost awareness
258
+
259
+ ```typescript
260
+ // Production with always-on minimum
261
+ await configureAutoScaling(prodEndpointId, {
262
+ minCu: 0.5, // Avoid cold starts
263
+ maxCu: 4, // Handle traffic spikes
264
+ suspendTimeout: 0 // Never suspend
265
+ })
266
+ ```
267
+
268
+ ### Off-Hours Optimization
269
+
270
+ ```typescript
271
+ // Reduce compute during off-peak hours
272
+ async function adjustForOffHours(endpointId: string, isOffHours: boolean) {
273
+ const config = isOffHours
274
+ ? { minCu: 0.25, maxCu: 1, suspendTimeout: 300 }
275
+ : { minCu: 0.5, maxCu: 4, suspendTimeout: 0 }
276
+
277
+ await configureAutoScaling(endpointId, config)
278
+ }
279
+
280
+ // Schedule-based adjustment
281
+ const hour = new Date().getUTCHours()
282
+ const isOffHours = hour >= 2 && hour < 8 // 2 AM - 8 AM UTC
283
+ await adjustForOffHours(productionEndpointId, isOffHours)
284
+ ```
285
+
286
+ ---
287
+
288
+ ## Monitoring and Alerts
289
+
290
+ ### Compute Usage Tracking
291
+
292
+ ```typescript
293
+ interface ComputeMetrics {
294
+ currentCu: number
295
+ avgCu: number
296
+ peakCu: number
297
+ suspendedMinutes: number
298
+ activeMinutes: number
299
+ }
300
+
301
+ async function getComputeMetrics(endpointId: string): Promise<ComputeMetrics> {
302
+ // Fetch from Neon console API or monitoring integration
303
+ const { endpoint } = await getEndpointConfig(endpointId)
304
+
305
+ return {
306
+ currentCu: endpoint.current_state === 'active' ? endpoint.autoscaling_limit_min_cu : 0,
307
+ avgCu: 0, // Calculate from historical data
308
+ peakCu: endpoint.autoscaling_limit_max_cu,
309
+ suspendedMinutes: 0, // Calculate from suspension logs
310
+ activeMinutes: 0 // Calculate from activity logs
311
+ }
312
+ }
313
+ ```
314
+
315
+ ### Alert Thresholds
316
+
317
+ High Compute Alert: Notify when consistently at max CU
318
+ Frequent Suspensions: Alert if cold starts affecting performance
319
+ Cost Threshold: Alert when monthly compute exceeds budget
320
+
321
+ ---
322
+
323
+ ## Best Practices
324
+
325
+ ### Configuration Guidelines
326
+
327
+ Development: Use 0.25-0.5 CU range with short suspension timeout
328
+ Staging: Use 0.25-2 CU range with moderate suspension timeout
329
+ Production: Use 0.5-4 CU range, consider disabling suspension for critical apps
330
+ High-Traffic: Use 1-8 CU range with suspension disabled
331
+
332
+ ### Performance Considerations
333
+
334
+ Connection Pooling: Always use pooled connections with auto-scaling
335
+ Query Optimization: Optimize queries to reduce compute time
336
+ Indexing: Proper indexes reduce CPU usage and allow smaller compute
337
+ Caching: Implement application-level caching to reduce database load
338
+
339
+ ### Cost Management
340
+
341
+ Monitor Usage: Track compute hours and identify optimization opportunities
342
+ Right-Size: Adjust max CU based on actual peak usage
343
+ Schedule Scaling: Reduce compute during known low-traffic periods
344
+ Branch Cleanup: Delete unused branches to avoid dormant compute costs
345
+
346
+ ---
347
+
348
+ Version: 2.0.0
349
+ Last Updated: 2026-01-06
@@ -0,0 +1,354 @@
1
+ # Database Branching Workflows
2
+
3
+ ## Overview
4
+
5
+ Neon database branching creates instant copy-on-write clones of your database, enabling isolated development environments, preview deployments, and safe testing with production data.
6
+
7
+ ---
8
+
9
+ ## Core Concepts
10
+
11
+ ### Copy-on-Write Architecture
12
+
13
+ Branch Creation: Instant creation with no data copying
14
+ Storage Efficiency: Branches share unchanged data with parent
15
+ Write Isolation: Changes in branch do not affect parent
16
+ Inheritance: New data in parent does not propagate to existing branches
17
+
18
+ ### Branch Types
19
+
20
+ Main Branch: Primary production database
21
+ Development Branch: Long-lived branch for development work
22
+ Feature Branch: Short-lived branch for specific features
23
+ Preview Branch: Ephemeral branch for PR preview environments
24
+ Restore Branch: Branch created for point-in-time recovery
25
+
26
+ ---
27
+
28
+ ## Branch Management API
29
+
30
+ ### NeonBranchManager Implementation
31
+
32
+ ```typescript
33
+ class NeonBranchManager {
34
+ private apiKey: string
35
+ private projectId: string
36
+ private baseUrl = 'https://console.neon.tech/api/v2'
37
+
38
+ constructor(apiKey: string, projectId: string) {
39
+ this.apiKey = apiKey
40
+ this.projectId = projectId
41
+ }
42
+
43
+ private async request(path: string, options: RequestInit = {}) {
44
+ const response = await fetch(`${this.baseUrl}${path}`, {
45
+ ...options,
46
+ headers: {
47
+ 'Authorization': `Bearer ${this.apiKey}`,
48
+ 'Content-Type': 'application/json',
49
+ ...options.headers
50
+ }
51
+ })
52
+ if (!response.ok) throw new Error(`Neon API error: ${response.statusText}`)
53
+ return response.json()
54
+ }
55
+
56
+ async createBranch(name: string, parentId: string = 'main') {
57
+ return this.request(`/projects/${this.projectId}/branches`, {
58
+ method: 'POST',
59
+ body: JSON.stringify({
60
+ branch: { name, parent_id: parentId }
61
+ })
62
+ })
63
+ }
64
+
65
+ async deleteBranch(branchId: string) {
66
+ return this.request(`/projects/${this.projectId}/branches/${branchId}`, {
67
+ method: 'DELETE'
68
+ })
69
+ }
70
+
71
+ async listBranches() {
72
+ return this.request(`/projects/${this.projectId}/branches`)
73
+ }
74
+
75
+ async getBranchConnectionString(branchId: string) {
76
+ const endpoints = await this.request(
77
+ `/projects/${this.projectId}/branches/${branchId}/endpoints`
78
+ )
79
+ return endpoints.endpoints[0]?.connection_uri
80
+ }
81
+ }
82
+ ```
83
+
84
+ ---
85
+
86
+ ## Preview Environment Pattern
87
+
88
+ ### Per-PR Database Branches
89
+
90
+ ```typescript
91
+ async function createPreviewEnvironment(prNumber: number) {
92
+ const branchManager = new NeonBranchManager(
93
+ process.env.NEON_API_KEY!,
94
+ process.env.NEON_PROJECT_ID!
95
+ )
96
+
97
+ // Create branch from main with PR identifier
98
+ const branch = await branchManager.createBranch(`pr-${prNumber}`, 'main')
99
+
100
+ // Get connection string for the new branch
101
+ const connectionString = await branchManager.getBranchConnectionString(branch.branch.id)
102
+
103
+ return {
104
+ branchId: branch.branch.id,
105
+ branchName: branch.branch.name,
106
+ connectionString,
107
+ createdAt: new Date().toISOString()
108
+ }
109
+ }
110
+
111
+ async function cleanupPreviewEnvironment(prNumber: number) {
112
+ const branchManager = new NeonBranchManager(
113
+ process.env.NEON_API_KEY!,
114
+ process.env.NEON_PROJECT_ID!
115
+ )
116
+
117
+ // Find and delete the PR branch
118
+ const { branches } = await branchManager.listBranches()
119
+ const prBranch = branches.find(b => b.name === `pr-${prNumber}`)
120
+
121
+ if (prBranch) {
122
+ await branchManager.deleteBranch(prBranch.id)
123
+ }
124
+ }
125
+ ```
126
+
127
+ ---
128
+
129
+ ## GitHub Actions Integration
130
+
131
+ ### Preview Environment Workflow
132
+
133
+ ```yaml
134
+ name: Preview Environment
135
+
136
+ on:
137
+ pull_request:
138
+ types: [opened, synchronize, closed]
139
+
140
+ env:
141
+ NEON_API_KEY: ${{ secrets.NEON_API_KEY }}
142
+ NEON_PROJECT_ID: ${{ secrets.NEON_PROJECT_ID }}
143
+
144
+ jobs:
145
+ create-preview:
146
+ if: github.event.action != 'closed'
147
+ runs-on: ubuntu-latest
148
+ outputs:
149
+ branch_id: ${{ steps.create-branch.outputs.branch_id }}
150
+ database_url: ${{ steps.create-branch.outputs.database_url }}
151
+ steps:
152
+ - name: Create Neon Branch
153
+ id: create-branch
154
+ run: |
155
+ RESPONSE=$(curl -s -X POST \
156
+ -H "Authorization: Bearer $NEON_API_KEY" \
157
+ -H "Content-Type: application/json" \
158
+ -d '{"branch":{"name":"pr-${{ github.event.number }}"}}' \
159
+ "https://console.neon.tech/api/v2/projects/$NEON_PROJECT_ID/branches")
160
+
161
+ BRANCH_ID=$(echo $RESPONSE | jq -r '.branch.id')
162
+ echo "branch_id=$BRANCH_ID" >> $GITHUB_OUTPUT
163
+
164
+ # Get connection string
165
+ ENDPOINTS=$(curl -s \
166
+ -H "Authorization: Bearer $NEON_API_KEY" \
167
+ "https://console.neon.tech/api/v2/projects/$NEON_PROJECT_ID/branches/$BRANCH_ID/endpoints")
168
+
169
+ DATABASE_URL=$(echo $ENDPOINTS | jq -r '.endpoints[0].connection_uri')
170
+ echo "database_url=$DATABASE_URL" >> $GITHUB_OUTPUT
171
+
172
+ - name: Comment PR with Database URL
173
+ uses: actions/github-script@v7
174
+ with:
175
+ script: |
176
+ github.rest.issues.createComment({
177
+ issue_number: context.issue.number,
178
+ owner: context.repo.owner,
179
+ repo: context.repo.repo,
180
+ body: `Preview database created: \`pr-${{ github.event.number }}\`\n\nBranch ID: \`${{ steps.create-branch.outputs.branch_id }}\``
181
+ })
182
+
183
+ deploy-preview:
184
+ needs: create-preview
185
+ runs-on: ubuntu-latest
186
+ steps:
187
+ - uses: actions/checkout@v4
188
+
189
+ - name: Run Migrations
190
+ env:
191
+ DATABASE_URL: ${{ needs.create-preview.outputs.database_url }}
192
+ run: |
193
+ npm ci
194
+ npm run db:migrate
195
+
196
+ - name: Deploy Preview
197
+ env:
198
+ DATABASE_URL: ${{ needs.create-preview.outputs.database_url }}
199
+ run: |
200
+ # Deploy to preview environment (Vercel, Netlify, etc.)
201
+ echo "Deploying with preview database..."
202
+
203
+ cleanup-preview:
204
+ if: github.event.action == 'closed'
205
+ runs-on: ubuntu-latest
206
+ steps:
207
+ - name: Find Branch ID
208
+ id: find-branch
209
+ run: |
210
+ BRANCHES=$(curl -s \
211
+ -H "Authorization: Bearer $NEON_API_KEY" \
212
+ "https://console.neon.tech/api/v2/projects/$NEON_PROJECT_ID/branches")
213
+
214
+ BRANCH_ID=$(echo $BRANCHES | jq -r '.branches[] | select(.name == "pr-${{ github.event.number }}") | .id')
215
+ echo "branch_id=$BRANCH_ID" >> $GITHUB_OUTPUT
216
+
217
+ - name: Delete Neon Branch
218
+ if: steps.find-branch.outputs.branch_id != ''
219
+ run: |
220
+ curl -X DELETE \
221
+ -H "Authorization: Bearer $NEON_API_KEY" \
222
+ "https://console.neon.tech/api/v2/projects/$NEON_PROJECT_ID/branches/${{ steps.find-branch.outputs.branch_id }}"
223
+ ```
224
+
225
+ ---
226
+
227
+ ## Development Workflow Pattern
228
+
229
+ ### Feature Branch Database
230
+
231
+ ```typescript
232
+ interface FeatureBranchConfig {
233
+ featureName: string
234
+ baseBranch?: string
235
+ autoCleanupDays?: number
236
+ }
237
+
238
+ async function createFeatureBranch(config: FeatureBranchConfig) {
239
+ const { featureName, baseBranch = 'main', autoCleanupDays = 7 } = config
240
+
241
+ const branchManager = new NeonBranchManager(
242
+ process.env.NEON_API_KEY!,
243
+ process.env.NEON_PROJECT_ID!
244
+ )
245
+
246
+ // Create branch with feature prefix
247
+ const branchName = `feature-${featureName}-${Date.now()}`
248
+ const branch = await branchManager.createBranch(branchName, baseBranch)
249
+
250
+ // Store cleanup metadata
251
+ const metadata = {
252
+ branchId: branch.branch.id,
253
+ branchName,
254
+ featureName,
255
+ createdAt: new Date().toISOString(),
256
+ expiresAt: new Date(Date.now() + autoCleanupDays * 24 * 60 * 60 * 1000).toISOString()
257
+ }
258
+
259
+ return {
260
+ ...metadata,
261
+ connectionString: await branchManager.getBranchConnectionString(branch.branch.id)
262
+ }
263
+ }
264
+
265
+ async function cleanupExpiredBranches() {
266
+ const branchManager = new NeonBranchManager(
267
+ process.env.NEON_API_KEY!,
268
+ process.env.NEON_PROJECT_ID!
269
+ )
270
+
271
+ const { branches } = await branchManager.listBranches()
272
+ const now = new Date()
273
+
274
+ for (const branch of branches) {
275
+ // Check if branch is a feature branch and expired
276
+ if (branch.name.startsWith('feature-')) {
277
+ const createdAt = new Date(branch.created_at)
278
+ const ageInDays = (now.getTime() - createdAt.getTime()) / (24 * 60 * 60 * 1000)
279
+
280
+ if (ageInDays > 7) {
281
+ console.log(`Cleaning up expired branch: ${branch.name}`)
282
+ await branchManager.deleteBranch(branch.id)
283
+ }
284
+ }
285
+ }
286
+ }
287
+ ```
288
+
289
+ ---
290
+
291
+ ## Branch Reset Pattern
292
+
293
+ ### Reset Branch to Parent State
294
+
295
+ ```typescript
296
+ async function resetBranchToParent(branchName: string) {
297
+ const branchManager = new NeonBranchManager(
298
+ process.env.NEON_API_KEY!,
299
+ process.env.NEON_PROJECT_ID!
300
+ )
301
+
302
+ // Find the current branch
303
+ const { branches } = await branchManager.listBranches()
304
+ const currentBranch = branches.find(b => b.name === branchName)
305
+
306
+ if (!currentBranch) {
307
+ throw new Error(`Branch ${branchName} not found`)
308
+ }
309
+
310
+ const parentId = currentBranch.parent_id
311
+
312
+ // Delete current branch
313
+ await branchManager.deleteBranch(currentBranch.id)
314
+
315
+ // Recreate with same name from parent
316
+ const newBranch = await branchManager.createBranch(branchName, parentId)
317
+
318
+ return {
319
+ branchId: newBranch.branch.id,
320
+ connectionString: await branchManager.getBranchConnectionString(newBranch.branch.id),
321
+ resetAt: new Date().toISOString()
322
+ }
323
+ }
324
+ ```
325
+
326
+ ---
327
+
328
+ ## Best Practices
329
+
330
+ ### Branch Naming Conventions
331
+
332
+ Preview Branches: pr-{number} for pull request previews
333
+ Feature Branches: feature-{name}-{timestamp} for development
334
+ Staging Branches: staging or staging-{version} for staging environments
335
+ Restore Branches: restore-{timestamp} for point-in-time recovery
336
+
337
+ ### Lifecycle Management
338
+
339
+ Automatic Cleanup: Configure scheduled cleanup for expired branches
340
+ Branch Limits: Monitor branch count against project limits
341
+ Connection Management: Use pooled connections for branch databases
342
+ Cost Awareness: Branches consume compute when active
343
+
344
+ ### Security Considerations
345
+
346
+ Sensitive Data: Consider data masking for non-production branches
347
+ Access Control: Limit API key permissions for branch operations
348
+ Audit Trail: Log branch creation and deletion operations
349
+ Credential Rotation: Rotate branch credentials on schedule
350
+
351
+ ---
352
+
353
+ Version: 2.0.0
354
+ Last Updated: 2026-01-06