moai-adk 0.32.8__py3-none-any.whl → 0.41.2__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.

Potentially problematic release.


This version of moai-adk might be problematic. Click here for more details.

Files changed (545) hide show
  1. moai_adk/cli/commands/init.py +4 -1
  2. moai_adk/cli/commands/update.py +31 -26
  3. moai_adk/cli/worktree/cli.py +54 -43
  4. moai_adk/cli/worktree/manager.py +17 -14
  5. moai_adk/cli/worktree/registry.py +313 -19
  6. moai_adk/core/config/unified.py +237 -63
  7. moai_adk/core/error_recovery_system.py +22 -4
  8. moai_adk/core/git/conflict_detector.py +10 -1
  9. moai_adk/core/git/event_detector.py +16 -5
  10. moai_adk/core/language_config_resolver.py +96 -3
  11. moai_adk/core/merge/analyzer.py +509 -324
  12. moai_adk/core/migration/alfred_to_moai_migrator.py +7 -1
  13. moai_adk/core/migration/backup_manager.py +54 -4
  14. moai_adk/core/migration/file_migrator.py +174 -2
  15. moai_adk/core/migration/interactive_checkbox_ui.py +42 -31
  16. moai_adk/core/migration/version_detector.py +123 -19
  17. moai_adk/core/migration/version_migrator.py +44 -9
  18. moai_adk/core/project/backup_utils.py +9 -1
  19. moai_adk/core/project/initializer.py +33 -96
  20. moai_adk/core/project/phase_executor.py +79 -33
  21. moai_adk/core/quality/trust_checker.py +30 -10
  22. moai_adk/core/realtime_monitoring_dashboard.py +3 -3
  23. moai_adk/core/rollback_manager.py +46 -19
  24. moai_adk/core/template/backup.py +4 -3
  25. moai_adk/core/template/config.py +33 -9
  26. moai_adk/core/template/merger.py +34 -8
  27. moai_adk/core/template/processor.py +144 -9
  28. moai_adk/core/template_engine.py +10 -1
  29. moai_adk/core/template_variable_synchronizer.py +16 -2
  30. moai_adk/core/version_sync.py +54 -6
  31. moai_adk/project/configuration.py +1 -1
  32. moai_adk/statusline/config.py +5 -2
  33. moai_adk/statusline/main.py +58 -0
  34. moai_adk/statusline/renderer.py +56 -84
  35. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +218 -51
  36. moai_adk/templates/.claude/agents/moai/builder-agent.md +46 -11
  37. moai_adk/templates/.claude/agents/moai/builder-command.md +88 -26
  38. moai_adk/templates/.claude/agents/moai/builder-plugin.md +753 -0
  39. moai_adk/templates/.claude/agents/moai/builder-skill.md +79 -8
  40. moai_adk/templates/.claude/agents/moai/expert-backend.md +100 -28
  41. moai_adk/templates/.claude/agents/moai/expert-database.md +20 -12
  42. moai_adk/templates/.claude/agents/moai/expert-debug.md +19 -8
  43. moai_adk/templates/.claude/agents/moai/expert-devops.md +36 -25
  44. moai_adk/templates/.claude/agents/moai/expert-frontend.md +99 -38
  45. moai_adk/templates/.claude/agents/moai/expert-performance.md +661 -0
  46. moai_adk/templates/.claude/agents/moai/expert-refactoring.md +218 -0
  47. moai_adk/templates/.claude/agents/moai/expert-security.md +55 -4
  48. moai_adk/templates/.claude/agents/moai/expert-testing.md +737 -0
  49. moai_adk/templates/.claude/agents/moai/expert-uiux.md +20 -11
  50. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +13 -4
  51. moai_adk/templates/.claude/agents/moai/manager-docs.md +15 -7
  52. moai_adk/templates/.claude/agents/moai/manager-git.md +192 -37
  53. moai_adk/templates/.claude/agents/moai/manager-project.md +13 -7
  54. moai_adk/templates/.claude/agents/moai/manager-quality.md +48 -6
  55. moai_adk/templates/.claude/agents/moai/manager-spec.md +110 -8
  56. moai_adk/templates/.claude/agents/moai/manager-strategy.md +203 -17
  57. moai_adk/templates/.claude/agents/moai/manager-tdd.md +217 -23
  58. moai_adk/templates/.claude/agents/moai/mcp-context7.md +102 -7
  59. moai_adk/templates/.claude/agents/moai/mcp-figma.md +107 -86
  60. moai_adk/templates/.claude/agents/moai/mcp-notion.md +50 -4
  61. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +52 -4
  62. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +49 -5
  63. moai_adk/templates/.claude/commands/moai/0-project.md +503 -307
  64. moai_adk/templates/.claude/commands/moai/1-plan.md +255 -323
  65. moai_adk/templates/.claude/commands/moai/2-run.md +257 -315
  66. moai_adk/templates/.claude/commands/moai/3-sync.md +421 -56
  67. moai_adk/templates/.claude/commands/moai/9-feedback.md +40 -34
  68. moai_adk/templates/.claude/hooks/moai/__init__.py +0 -0
  69. moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
  70. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +19 -0
  71. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +4 -1
  72. moai_adk/templates/.claude/hooks/moai/lib/common.py +35 -5
  73. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +12 -14
  74. moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
  75. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +1 -1
  76. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +104 -14
  77. moai_adk/templates/.claude/hooks/moai/lib/models.py +9 -7
  78. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +204 -13
  79. moai_adk/templates/.claude/hooks/moai/lib/project.py +23 -14
  80. moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +804 -0
  81. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +14 -2
  82. moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +256 -0
  83. moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +253 -0
  84. moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +307 -0
  85. moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +231 -0
  86. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +40 -24
  87. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +248 -32
  88. moai_adk/templates/.claude/output-styles/moai/r2d2.md +265 -2
  89. moai_adk/templates/.claude/output-styles/moai/yoda.md +23 -2
  90. moai_adk/templates/.claude/settings.json +44 -6
  91. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +303 -0
  92. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
  93. moai_adk/templates/.claude/skills/moai-ai-nano-banana/reference.md +139 -0
  94. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
  95. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
  96. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +252 -196
  97. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +252 -0
  98. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +39 -27
  99. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +115 -125
  100. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +150 -150
  101. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +182 -175
  102. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +198 -138
  103. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +234 -0
  104. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +19 -13
  105. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
  106. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
  107. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +21 -14
  108. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
  109. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
  110. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +124 -425
  111. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
  112. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/component-architecture.md +723 -0
  113. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/nextjs16-patterns.md +713 -0
  114. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/performance-optimization.md +694 -0
  115. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/react19-patterns.md +591 -0
  116. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/state-management.md +680 -0
  117. moai_adk/templates/.claude/skills/moai-domain-frontend/modules/vue35-patterns.md +802 -0
  118. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
  119. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +17 -15
  120. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +105 -315
  121. moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
  122. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +299 -70
  123. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +6 -6
  124. moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
  125. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +197 -154
  126. moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
  127. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/advanced-agent-patterns.md +370 -0
  128. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-cli-reference-official.md +420 -0
  129. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-devcontainers-official.md +381 -0
  130. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-discover-plugins-official.md +379 -0
  131. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-headless-official.md +378 -0
  132. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +110 -0
  133. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +2 -2
  134. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugin-marketplaces-official.md +308 -0
  135. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugins-official.md +432 -0
  136. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sandboxing-official.md +282 -0
  137. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +425 -71
  138. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-statusline-official.md +293 -0
  139. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +325 -143
  140. moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
  141. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +12 -1
  142. moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
  143. moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
  144. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +33 -134
  145. moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
  146. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +31 -18
  147. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +30 -30
  148. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-advanced.md +279 -0
  149. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-implementation.md +267 -0
  150. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +121 -650
  151. moai_adk/templates/.claude/skills/moai-foundation-core/modules/patterns.md +22 -0
  152. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-ears-format.md +200 -0
  153. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +37 -730
  154. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-tdd-implementation.md +275 -0
  155. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +77 -819
  156. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-implementation.md +244 -0
  157. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-validation.md +219 -0
  158. moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
  159. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +311 -0
  160. moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
  161. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
  162. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
  163. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
  164. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
  165. moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
  166. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +17 -16
  167. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +431 -0
  168. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +17 -0
  169. moai_adk/templates/.claude/skills/moai-lang-cpp/modules/advanced-patterns.md +401 -0
  170. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +17 -0
  171. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +194 -0
  172. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +585 -0
  173. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/aspnet-core.md +627 -0
  174. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/blazor-components.md +767 -0
  175. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/cqrs-validation.md +626 -0
  176. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/csharp12-features.md +580 -0
  177. moai_adk/templates/.claude/skills/moai-lang-csharp/modules/efcore-patterns.md +622 -0
  178. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +403 -0
  179. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +395 -0
  180. moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +17 -0
  181. moai_adk/templates/.claude/skills/moai-lang-elixir/modules/advanced-patterns.md +531 -0
  182. moai_adk/templates/.claude/skills/moai-lang-elixir/reference.md +17 -0
  183. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +473 -0
  184. moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
  185. moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
  186. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +378 -0
  187. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
  188. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
  189. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +387 -0
  190. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
  191. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
  192. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +419 -0
  193. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +973 -0
  194. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +1543 -0
  195. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +384 -0
  196. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
  197. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
  198. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +505 -0
  199. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +17 -0
  200. moai_adk/templates/.claude/skills/moai-lang-php/modules/advanced-patterns.md +538 -0
  201. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +17 -0
  202. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +490 -0
  203. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
  204. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
  205. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +390 -0
  206. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +17 -0
  207. moai_adk/templates/.claude/skills/moai-lang-r/modules/advanced-patterns.md +489 -0
  208. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +17 -0
  209. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +433 -0
  210. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +17 -0
  211. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/advanced-patterns.md +309 -0
  212. moai_adk/templates/.claude/skills/moai-lang-ruby/modules/testing-patterns.md +306 -0
  213. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +17 -0
  214. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +378 -0
  215. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
  216. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
  217. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +212 -0
  218. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
  219. moai_adk/templates/.claude/skills/moai-lang-scala/modules/akka-actors.md +479 -0
  220. moai_adk/templates/.claude/skills/moai-lang-scala/modules/cats-effect.md +489 -0
  221. moai_adk/templates/.claude/skills/moai-lang-scala/modules/functional-programming.md +460 -0
  222. moai_adk/templates/.claude/skills/moai-lang-scala/modules/spark-data.md +498 -0
  223. moai_adk/templates/.claude/skills/moai-lang-scala/modules/zio-patterns.md +541 -0
  224. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
  225. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +192 -0
  226. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
  227. moai_adk/templates/.claude/skills/moai-lang-swift/modules/combine-reactive.md +256 -0
  228. moai_adk/templates/.claude/skills/moai-lang-swift/modules/concurrency.md +270 -0
  229. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swift6-features.md +265 -0
  230. moai_adk/templates/.claude/skills/moai-lang-swift/modules/swiftui-patterns.md +314 -0
  231. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
  232. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +365 -0
  233. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
  234. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
  235. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +94 -227
  236. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +26 -6
  237. moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
  238. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +331 -12
  239. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +330 -37
  240. moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
  241. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +17 -13
  242. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +1 -1
  243. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +284 -0
  244. moai_adk/templates/.claude/skills/moai-platform-auth0/examples.md +2446 -0
  245. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/adaptive-mfa.md +233 -0
  246. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/akamai-integration.md +214 -0
  247. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/application-credentials.md +280 -0
  248. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-log-events.md +224 -0
  249. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-overview.md +140 -0
  250. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/bot-detection.md +144 -0
  251. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/breached-password-detection.md +187 -0
  252. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/brute-force-protection.md +189 -0
  253. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/certifications.md +282 -0
  254. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/compliance-overview.md +263 -0
  255. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/continuous-session-protection.md +307 -0
  256. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/customize-mfa.md +177 -0
  257. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/dpop-implementation.md +283 -0
  258. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/fapi-implementation.md +259 -0
  259. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/gdpr-compliance.md +313 -0
  260. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/guardian-configuration.md +269 -0
  261. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/highly-regulated-identity.md +272 -0
  262. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/jwt-fundamentals.md +248 -0
  263. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mdl-verification.md +210 -0
  264. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-api-management.md +278 -0
  265. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-factors.md +226 -0
  266. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-overview.md +174 -0
  267. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mtls-sender-constraining.md +316 -0
  268. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/ropg-flow-mfa.md +216 -0
  269. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-center.md +325 -0
  270. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-guidance.md +277 -0
  271. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/state-parameters.md +177 -0
  272. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/step-up-authentication.md +251 -0
  273. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/suspicious-ip-throttling.md +240 -0
  274. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/tenant-access-control.md +179 -0
  275. moai_adk/templates/.claude/skills/moai-platform-auth0/modules/webauthn-fido.md +235 -0
  276. moai_adk/templates/.claude/skills/moai-platform-auth0/reference.md +224 -0
  277. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +426 -0
  278. moai_adk/templates/.claude/skills/moai-platform-clerk/modules/advanced-patterns.md +417 -0
  279. moai_adk/templates/.claude/skills/moai-platform-clerk/reference.md +273 -0
  280. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +229 -0
  281. moai_adk/templates/.claude/skills/moai-platform-convex/examples.md +506 -0
  282. moai_adk/templates/.claude/skills/moai-platform-convex/modules/auth-integration.md +421 -0
  283. moai_adk/templates/.claude/skills/moai-platform-convex/modules/file-storage.md +474 -0
  284. moai_adk/templates/.claude/skills/moai-platform-convex/modules/reactive-queries.md +302 -0
  285. moai_adk/templates/.claude/skills/moai-platform-convex/modules/server-functions.md +452 -0
  286. moai_adk/templates/.claude/skills/moai-platform-convex/reference.md +385 -0
  287. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +250 -0
  288. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/examples.md +514 -0
  289. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/custom-claims.md +374 -0
  290. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/phone-auth.md +372 -0
  291. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/social-auth.md +339 -0
  292. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/reference.md +382 -0
  293. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +231 -0
  294. moai_adk/templates/.claude/skills/moai-platform-firestore/examples.md +445 -0
  295. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/offline-cache.md +392 -0
  296. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/realtime-listeners.md +441 -0
  297. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/security-rules.md +352 -0
  298. moai_adk/templates/.claude/skills/moai-platform-firestore/modules/transactions.md +452 -0
  299. moai_adk/templates/.claude/skills/moai-platform-firestore/reference.md +322 -0
  300. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +206 -0
  301. moai_adk/templates/.claude/skills/moai-platform-neon/examples.md +470 -0
  302. moai_adk/templates/.claude/skills/moai-platform-neon/modules/auto-scaling.md +349 -0
  303. moai_adk/templates/.claude/skills/moai-platform-neon/modules/branching-workflows.md +354 -0
  304. moai_adk/templates/.claude/skills/moai-platform-neon/modules/connection-pooling.md +412 -0
  305. moai_adk/templates/.claude/skills/moai-platform-neon/modules/pitr-backups.md +458 -0
  306. moai_adk/templates/.claude/skills/moai-platform-neon/reference.md +272 -0
  307. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +224 -0
  308. moai_adk/templates/.claude/skills/moai-platform-railway/examples.md +539 -0
  309. moai_adk/templates/.claude/skills/moai-platform-railway/modules/docker-deployment.md +261 -0
  310. moai_adk/templates/.claude/skills/moai-platform-railway/modules/multi-service.md +291 -0
  311. moai_adk/templates/.claude/skills/moai-platform-railway/modules/networking-domains.md +338 -0
  312. moai_adk/templates/.claude/skills/moai-platform-railway/modules/volumes-storage.md +353 -0
  313. moai_adk/templates/.claude/skills/moai-platform-railway/reference.md +374 -0
  314. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +207 -0
  315. moai_adk/templates/.claude/skills/moai-platform-supabase/examples.md +502 -0
  316. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/auth-integration.md +384 -0
  317. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/edge-functions.md +371 -0
  318. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/postgresql-pgvector.md +231 -0
  319. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/realtime-presence.md +354 -0
  320. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/row-level-security.md +286 -0
  321. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/storage-cdn.md +319 -0
  322. moai_adk/templates/.claude/skills/moai-platform-supabase/modules/typescript-patterns.md +453 -0
  323. moai_adk/templates/.claude/skills/moai-platform-supabase/reference.md +284 -0
  324. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +210 -0
  325. moai_adk/templates/.claude/skills/moai-platform-vercel/examples.md +502 -0
  326. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/analytics-speed.md +348 -0
  327. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/deployment-config.md +344 -0
  328. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/edge-functions.md +222 -0
  329. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/isr-caching.md +306 -0
  330. moai_adk/templates/.claude/skills/moai-platform-vercel/modules/kv-storage.md +399 -0
  331. moai_adk/templates/.claude/skills/moai-platform-vercel/reference.md +360 -0
  332. moai_adk/templates/.claude/skills/moai-plugin-builder/SKILL.md +474 -0
  333. moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
  334. moai_adk/templates/.claude/skills/moai-plugin-builder/modules/migration.md +341 -0
  335. moai_adk/templates/.claude/skills/moai-plugin-builder/modules/validation.md +373 -0
  336. moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +464 -0
  337. moai_adk/templates/.claude/skills/moai-tool-ast-grep/SKILL.md +307 -0
  338. moai_adk/templates/.claude/skills/moai-tool-ast-grep/examples.md +1099 -0
  339. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/language-specific.md +307 -0
  340. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/pattern-syntax.md +237 -0
  341. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/refactoring-patterns.md +260 -0
  342. moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/security-rules.md +239 -0
  343. moai_adk/templates/.claude/skills/moai-tool-ast-grep/reference.md +288 -0
  344. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/go.yml +90 -0
  345. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/python.yml +101 -0
  346. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/typescript.yml +83 -0
  347. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/complexity-check.yml +94 -0
  348. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/deprecated-apis.yml +84 -0
  349. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/secrets-detection.yml +89 -0
  350. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/sql-injection.yml +45 -0
  351. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/xss-prevention.yml +50 -0
  352. moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml +54 -0
  353. moai_adk/templates/.claude/skills/moai-tool-opencode/SKILL.md +215 -0
  354. moai_adk/templates/.claude/skills/moai-tool-opencode/examples.md +697 -0
  355. moai_adk/templates/.claude/skills/moai-tool-opencode/index.md +96 -0
  356. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/acp.md +115 -0
  357. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/agents.md +241 -0
  358. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/commands.md +197 -0
  359. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/custom-tools.md +197 -0
  360. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/formatters.md +164 -0
  361. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/keybinds.md +150 -0
  362. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/lsp-servers.md +156 -0
  363. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/mcp-servers.md +214 -0
  364. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/models.md +197 -0
  365. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/permissions.md +162 -0
  366. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/rules.md +129 -0
  367. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/skills.md +192 -0
  368. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/themes.md +200 -0
  369. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/tools.md +169 -0
  370. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/config.md +211 -0
  371. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/enterprise.md +68 -0
  372. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/intro.md +127 -0
  373. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/migration-1.0.md +82 -0
  374. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/network.md +72 -0
  375. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/providers.md +310 -0
  376. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/troubleshooting.md +124 -0
  377. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/ecosystem.md +75 -0
  378. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/plugins.md +218 -0
  379. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/sdk.md +266 -0
  380. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/server.md +207 -0
  381. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/cli.md +159 -0
  382. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/github.md +181 -0
  383. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/gitlab.md +122 -0
  384. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/ide.md +74 -0
  385. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/share.md +106 -0
  386. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/tui.md +129 -0
  387. moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/zen.md +118 -0
  388. moai_adk/templates/.claude/skills/moai-tool-opencode/reference.md +790 -0
  389. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +190 -424
  390. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
  391. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +188 -314
  393. moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +284 -212
  396. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +2 -2
  397. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +1 -1
  398. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +22 -1
  399. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +337 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +13 -0
  404. moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +222 -367
  407. moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +52 -3
  409. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +263 -806
  410. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/context7-integration.md +286 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/review-workflows.md +500 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/relevance-analysis.md +154 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/safety-analysis.md +148 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/scoring-algorithms.md +196 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/timeliness-analysis.md +168 -0
  416. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/truthfulness-analysis.md +136 -0
  417. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/usability-analysis.md +153 -0
  418. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework.md +257 -0
  419. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +191 -1344
  420. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/analysis-patterns.md +340 -0
  421. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/core-classes.md +299 -0
  422. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/tool-integration.md +380 -0
  423. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/debugging-workflows.md +451 -0
  424. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/error-analysis.md +442 -0
  425. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/optimization-patterns.md +473 -0
  426. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/profiling-techniques.md +481 -0
  427. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/ai-optimization.md +241 -0
  428. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/bottleneck-detection.md +397 -0
  429. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/optimization-plan.md +315 -0
  430. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/profiler-core.md +277 -0
  431. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/real-time-monitoring.md +187 -0
  432. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +287 -1194
  433. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/quality-metrics.md +415 -0
  434. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/ai-workflows.md +620 -0
  435. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/patterns.md +692 -0
  436. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/security-analysis.md +429 -0
  437. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +262 -1192
  438. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/static-analysis.md +438 -0
  439. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd/core-classes.md +397 -0
  440. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/advanced-features.md +494 -0
  441. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/red-green-refactor.md +316 -0
  442. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-generation.md +471 -0
  443. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-patterns.md +371 -0
  444. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +227 -1222
  445. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/trust5-validation.md +428 -0
  446. moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
  447. moai_adk/templates/.claude/skills/moai-workflow-worktree/SKILL.md +228 -0
  448. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/integration-patterns.md +149 -0
  449. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/moai-adk-integration.md +245 -0
  450. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-advanced.md +310 -0
  451. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-development.md +202 -0
  452. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-workflows.md +302 -0
  453. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/registry-architecture.md +271 -0
  454. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/resource-optimization.md +300 -0
  455. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/tools-integration.md +280 -0
  456. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/troubleshooting.md +397 -0
  457. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-commands.md +296 -0
  458. moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-management.md +217 -0
  459. moai_adk/templates/.git-hooks/pre-push +168 -50
  460. moai_adk/templates/.gitignore +0 -3
  461. moai_adk/templates/.lsp.json +152 -0
  462. moai_adk/templates/.mcp.json +5 -12
  463. moai_adk/templates/.moai/config/config.yaml +20 -306
  464. moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
  465. moai_adk/templates/.moai/config/questions/_schema.yaml +105 -10
  466. moai_adk/templates/.moai/config/questions/tab0-init.yaml +259 -0
  467. moai_adk/templates/.moai/config/questions/tab1-user.yaml +4 -5
  468. moai_adk/templates/.moai/config/questions/tab2-project.yaml +12 -55
  469. moai_adk/templates/.moai/config/questions/tab3-git.yaml +111 -21
  470. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +34 -18
  471. moai_adk/templates/.moai/config/questions/tab5-system.yaml +19 -75
  472. moai_adk/templates/.moai/config/sections/git-strategy.yaml +83 -7
  473. moai_adk/templates/.moai/config/sections/language.yaml +7 -7
  474. moai_adk/templates/.moai/config/sections/project.yaml +1 -1
  475. moai_adk/templates/.moai/config/sections/quality.yaml +7 -4
  476. moai_adk/templates/.moai/config/sections/system.yaml +11 -1
  477. moai_adk/templates/.moai/config/statusline-config.yaml +19 -13
  478. moai_adk/templates/.moai/scripts/setup-glm.py +4 -4
  479. moai_adk/templates/CLAUDE.md +578 -154
  480. moai_adk/utils/common.py +33 -0
  481. moai_adk/version.py +1 -1
  482. {moai_adk-0.32.8.dist-info → moai_adk-0.41.2.dist-info}/METADATA +905 -109
  483. moai_adk-0.41.2.dist-info/RECORD +683 -0
  484. moai_adk/core/config/auto_spec_config.py +0 -340
  485. moai_adk/core/hooks/post_tool_auto_spec_completion.py +0 -901
  486. moai_adk/core/spec/confidence_scoring.py +0 -680
  487. moai_adk/core/spec/ears_template_engine.py +0 -1247
  488. moai_adk/core/spec/quality_validator.py +0 -687
  489. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +0 -405
  490. moai_adk/templates/.claude/skills/moai-integration-mcp/SKILL.md +0 -352
  491. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +0 -52
  492. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +0 -334
  493. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +0 -310
  494. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +0 -256
  495. moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +0 -253
  496. moai_adk/templates/.claude/skills/moai-lang-unified/README.md +0 -133
  497. moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +0 -296
  498. moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +0 -1269
  499. moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +0 -331
  500. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +0 -336
  501. moai_adk/templates/.claude/skills/moai-platform-baas/README.md +0 -186
  502. moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +0 -290
  503. moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +0 -1225
  504. moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +0 -567
  505. moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +0 -323
  506. moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +0 -204
  507. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +0 -520
  508. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +0 -574
  509. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +0 -317
  510. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +0 -663
  511. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +0 -190
  512. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +0 -135
  513. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +0 -196
  514. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +0 -17
  515. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +0 -158
  516. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +0 -340
  517. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +0 -713
  518. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +0 -538
  519. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +0 -1336
  520. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +0 -730
  521. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +0 -608
  522. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +0 -1005
  523. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +0 -436
  524. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +0 -410
  525. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +0 -982
  526. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +0 -778
  527. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +0 -646
  528. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +0 -782
  529. moai_adk/templates/.moai/cache/personalization.json +0 -10
  530. moai_adk/templates/.moai/config/presets/manual.yaml +0 -28
  531. moai_adk/templates/.moai/config/presets/personal.yaml +0 -30
  532. moai_adk/templates/.moai/config/presets/team.yaml +0 -33
  533. moai_adk-0.32.8.dist-info/RECORD +0 -396
  534. /moai_adk/templates/.claude/skills/moai-library-mermaid/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  535. /moai_adk/templates/.claude/skills/moai-library-mermaid/{optimization.md → modules/optimization.md} +0 -0
  536. /moai_adk/templates/.claude/skills/moai-library-nextra/{optimization.md → modules/optimization.md} +0 -0
  537. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  538. /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{optimization.md → modules/optimization.md} +0 -0
  539. /moai_adk/templates/.claude/skills/moai-workflow-testing/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
  540. /moai_adk/templates/.claude/skills/moai-workflow-testing/{optimization.md → modules/optimization.md} +0 -0
  541. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/examples.md +0 -0
  542. /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/reference.md +0 -0
  543. {moai_adk-0.32.8.dist-info → moai_adk-0.41.2.dist-info}/WHEEL +0 -0
  544. {moai_adk-0.32.8.dist-info → moai_adk-0.41.2.dist-info}/entry_points.txt +0 -0
  545. {moai_adk-0.32.8.dist-info → moai_adk-0.41.2.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,622 @@
1
+ # Entity Framework Core 8 Patterns
2
+
3
+ Comprehensive guide to Entity Framework Core 8 including DbContext, Repository pattern, Migrations, and Query optimization.
4
+
5
+ ---
6
+
7
+ ## DbContext Configuration
8
+
9
+ ### Basic DbContext
10
+
11
+ ```csharp
12
+ public class AppDbContext(DbContextOptions<AppDbContext> options) : DbContext(options)
13
+ {
14
+ public DbSet<User> Users => Set<User>();
15
+ public DbSet<Post> Posts => Set<Post>();
16
+ public DbSet<Tag> Tags => Set<Tag>();
17
+ public DbSet<Comment> Comments => Set<Comment>();
18
+
19
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
20
+ {
21
+ // Apply all configurations from assembly
22
+ modelBuilder.ApplyConfigurationsFromAssembly(typeof(AppDbContext).Assembly);
23
+
24
+ // Global query filters
25
+ modelBuilder.Entity<User>().HasQueryFilter(u => !u.IsDeleted);
26
+ modelBuilder.Entity<Post>().HasQueryFilter(p => !p.IsDeleted);
27
+ }
28
+
29
+ public override Task<int> SaveChangesAsync(CancellationToken cancellationToken = default)
30
+ {
31
+ // Automatic audit tracking
32
+ foreach (var entry in ChangeTracker.Entries<IAuditable>())
33
+ {
34
+ switch (entry.State)
35
+ {
36
+ case EntityState.Added:
37
+ entry.Entity.CreatedAt = DateTime.UtcNow;
38
+ break;
39
+ case EntityState.Modified:
40
+ entry.Entity.UpdatedAt = DateTime.UtcNow;
41
+ break;
42
+ }
43
+ }
44
+
45
+ return base.SaveChangesAsync(cancellationToken);
46
+ }
47
+ }
48
+ ```
49
+
50
+ ### Service Registration
51
+
52
+ ```csharp
53
+ // Program.cs
54
+ builder.Services.AddDbContext<AppDbContext>(options =>
55
+ {
56
+ options.UseSqlServer(
57
+ builder.Configuration.GetConnectionString("Default"),
58
+ sqlOptions =>
59
+ {
60
+ sqlOptions.EnableRetryOnFailure(
61
+ maxRetryCount: 5,
62
+ maxRetryDelay: TimeSpan.FromSeconds(30),
63
+ errorNumbersToAdd: null);
64
+ sqlOptions.CommandTimeout(30);
65
+ sqlOptions.MigrationsAssembly("MyApp.Infrastructure");
66
+ });
67
+
68
+ if (builder.Environment.IsDevelopment())
69
+ {
70
+ options.EnableSensitiveDataLogging();
71
+ options.EnableDetailedErrors();
72
+ }
73
+ });
74
+
75
+ // For read replicas
76
+ builder.Services.AddDbContext<ReadOnlyDbContext>(options =>
77
+ options.UseSqlServer(builder.Configuration.GetConnectionString("ReadReplica"))
78
+ .UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking));
79
+ ```
80
+
81
+ ---
82
+
83
+ ## Entity Configuration
84
+
85
+ ### Fluent API Configuration
86
+
87
+ ```csharp
88
+ public class UserConfiguration : IEntityTypeConfiguration<User>
89
+ {
90
+ public void Configure(EntityTypeBuilder<User> builder)
91
+ {
92
+ builder.ToTable("Users");
93
+
94
+ // Primary key
95
+ builder.HasKey(u => u.Id);
96
+ builder.Property(u => u.Id)
97
+ .HasDefaultValueSql("NEWSEQUENTIALID()");
98
+
99
+ // Properties
100
+ builder.Property(u => u.Name)
101
+ .HasMaxLength(100)
102
+ .IsRequired();
103
+
104
+ builder.Property(u => u.Email)
105
+ .HasMaxLength(256)
106
+ .IsRequired();
107
+
108
+ builder.Property(u => u.PasswordHash)
109
+ .HasMaxLength(256)
110
+ .IsRequired();
111
+
112
+ // Indexes
113
+ builder.HasIndex(u => u.Email)
114
+ .IsUnique()
115
+ .HasDatabaseName("IX_Users_Email");
116
+
117
+ builder.HasIndex(u => u.Name)
118
+ .HasDatabaseName("IX_Users_Name");
119
+
120
+ // Relationships
121
+ builder.HasMany(u => u.Posts)
122
+ .WithOne(p => p.Author)
123
+ .HasForeignKey(p => p.AuthorId)
124
+ .OnDelete(DeleteBehavior.Cascade);
125
+
126
+ builder.HasMany(u => u.Comments)
127
+ .WithOne(c => c.Author)
128
+ .HasForeignKey(c => c.AuthorId)
129
+ .OnDelete(DeleteBehavior.Restrict);
130
+ }
131
+ }
132
+
133
+ public class PostConfiguration : IEntityTypeConfiguration<Post>
134
+ {
135
+ public void Configure(EntityTypeBuilder<Post> builder)
136
+ {
137
+ builder.ToTable("Posts");
138
+
139
+ builder.HasKey(p => p.Id);
140
+
141
+ builder.Property(p => p.Title)
142
+ .HasMaxLength(200)
143
+ .IsRequired();
144
+
145
+ builder.Property(p => p.Content)
146
+ .HasColumnType("nvarchar(max)")
147
+ .IsRequired();
148
+
149
+ builder.Property(p => p.Status)
150
+ .HasConversion<string>()
151
+ .HasMaxLength(20);
152
+
153
+ // Many-to-many relationship
154
+ builder.HasMany(p => p.Tags)
155
+ .WithMany(t => t.Posts)
156
+ .UsingEntity<PostTag>(
157
+ j => j.HasOne(pt => pt.Tag).WithMany().HasForeignKey(pt => pt.TagId),
158
+ j => j.HasOne(pt => pt.Post).WithMany().HasForeignKey(pt => pt.PostId),
159
+ j =>
160
+ {
161
+ j.HasKey(pt => new { pt.PostId, pt.TagId });
162
+ j.ToTable("PostTags");
163
+ });
164
+ }
165
+ }
166
+ ```
167
+
168
+ ### Value Objects and Owned Types
169
+
170
+ ```csharp
171
+ public class Address
172
+ {
173
+ public string Street { get; private set; } = string.Empty;
174
+ public string City { get; private set; } = string.Empty;
175
+ public string PostalCode { get; private set; } = string.Empty;
176
+ public string Country { get; private set; } = string.Empty;
177
+ }
178
+
179
+ public class AddressConfiguration : IEntityTypeConfiguration<User>
180
+ {
181
+ public void Configure(EntityTypeBuilder<User> builder)
182
+ {
183
+ builder.OwnsOne(u => u.Address, address =>
184
+ {
185
+ address.Property(a => a.Street).HasMaxLength(200);
186
+ address.Property(a => a.City).HasMaxLength(100);
187
+ address.Property(a => a.PostalCode).HasMaxLength(20);
188
+ address.Property(a => a.Country).HasMaxLength(100);
189
+ });
190
+ }
191
+ }
192
+ ```
193
+
194
+ ---
195
+
196
+ ## Repository Pattern
197
+
198
+ ### Generic Repository Interface
199
+
200
+ ```csharp
201
+ public interface IRepository<T> where T : class
202
+ {
203
+ Task<T?> GetByIdAsync(Guid id, CancellationToken ct = default);
204
+ Task<IReadOnlyList<T>> GetAllAsync(CancellationToken ct = default);
205
+ Task<IReadOnlyList<T>> FindAsync(
206
+ Expression<Func<T, bool>> predicate,
207
+ CancellationToken ct = default);
208
+ Task<T> AddAsync(T entity, CancellationToken ct = default);
209
+ Task AddRangeAsync(IEnumerable<T> entities, CancellationToken ct = default);
210
+ Task UpdateAsync(T entity, CancellationToken ct = default);
211
+ Task DeleteAsync(T entity, CancellationToken ct = default);
212
+ Task<bool> ExistsAsync(Guid id, CancellationToken ct = default);
213
+ Task<int> CountAsync(CancellationToken ct = default);
214
+ Task<int> CountAsync(Expression<Func<T, bool>> predicate, CancellationToken ct = default);
215
+ }
216
+
217
+ public interface IUnitOfWork : IDisposable
218
+ {
219
+ IRepository<User> Users { get; }
220
+ IRepository<Post> Posts { get; }
221
+ Task<int> SaveChangesAsync(CancellationToken ct = default);
222
+ Task BeginTransactionAsync(CancellationToken ct = default);
223
+ Task CommitAsync(CancellationToken ct = default);
224
+ Task RollbackAsync(CancellationToken ct = default);
225
+ }
226
+ ```
227
+
228
+ ### Repository Implementation
229
+
230
+ ```csharp
231
+ public class EfRepository<T>(AppDbContext context) : IRepository<T> where T : class
232
+ {
233
+ protected readonly AppDbContext Context = context;
234
+ protected readonly DbSet<T> DbSet = context.Set<T>();
235
+
236
+ public virtual async Task<T?> GetByIdAsync(Guid id, CancellationToken ct = default)
237
+ => await DbSet.FindAsync([id], ct);
238
+
239
+ public virtual async Task<IReadOnlyList<T>> GetAllAsync(CancellationToken ct = default)
240
+ => await DbSet.ToListAsync(ct);
241
+
242
+ public virtual async Task<IReadOnlyList<T>> FindAsync(
243
+ Expression<Func<T, bool>> predicate,
244
+ CancellationToken ct = default)
245
+ => await DbSet.Where(predicate).ToListAsync(ct);
246
+
247
+ public virtual async Task<T> AddAsync(T entity, CancellationToken ct = default)
248
+ {
249
+ await DbSet.AddAsync(entity, ct);
250
+ await Context.SaveChangesAsync(ct);
251
+ return entity;
252
+ }
253
+
254
+ public virtual async Task AddRangeAsync(IEnumerable<T> entities, CancellationToken ct = default)
255
+ {
256
+ await DbSet.AddRangeAsync(entities, ct);
257
+ await Context.SaveChangesAsync(ct);
258
+ }
259
+
260
+ public virtual async Task UpdateAsync(T entity, CancellationToken ct = default)
261
+ {
262
+ DbSet.Update(entity);
263
+ await Context.SaveChangesAsync(ct);
264
+ }
265
+
266
+ public virtual async Task DeleteAsync(T entity, CancellationToken ct = default)
267
+ {
268
+ DbSet.Remove(entity);
269
+ await Context.SaveChangesAsync(ct);
270
+ }
271
+
272
+ public virtual async Task<bool> ExistsAsync(Guid id, CancellationToken ct = default)
273
+ => await DbSet.FindAsync([id], ct) is not null;
274
+
275
+ public virtual async Task<int> CountAsync(CancellationToken ct = default)
276
+ => await DbSet.CountAsync(ct);
277
+
278
+ public virtual async Task<int> CountAsync(
279
+ Expression<Func<T, bool>> predicate,
280
+ CancellationToken ct = default)
281
+ => await DbSet.CountAsync(predicate, ct);
282
+ }
283
+ ```
284
+
285
+ ### Unit of Work Implementation
286
+
287
+ ```csharp
288
+ public class UnitOfWork(AppDbContext context) : IUnitOfWork
289
+ {
290
+ private IDbContextTransaction? _transaction;
291
+ private IRepository<User>? _users;
292
+ private IRepository<Post>? _posts;
293
+
294
+ public IRepository<User> Users => _users ??= new EfRepository<User>(context);
295
+ public IRepository<Post> Posts => _posts ??= new EfRepository<Post>(context);
296
+
297
+ public async Task<int> SaveChangesAsync(CancellationToken ct = default)
298
+ => await context.SaveChangesAsync(ct);
299
+
300
+ public async Task BeginTransactionAsync(CancellationToken ct = default)
301
+ {
302
+ _transaction = await context.Database.BeginTransactionAsync(ct);
303
+ }
304
+
305
+ public async Task CommitAsync(CancellationToken ct = default)
306
+ {
307
+ if (_transaction is not null)
308
+ {
309
+ await _transaction.CommitAsync(ct);
310
+ await _transaction.DisposeAsync();
311
+ _transaction = null;
312
+ }
313
+ }
314
+
315
+ public async Task RollbackAsync(CancellationToken ct = default)
316
+ {
317
+ if (_transaction is not null)
318
+ {
319
+ await _transaction.RollbackAsync(ct);
320
+ await _transaction.DisposeAsync();
321
+ _transaction = null;
322
+ }
323
+ }
324
+
325
+ public void Dispose()
326
+ {
327
+ _transaction?.Dispose();
328
+ context.Dispose();
329
+ }
330
+ }
331
+ ```
332
+
333
+ ---
334
+
335
+ ## Migrations
336
+
337
+ ### Creating Migrations
338
+
339
+ ```bash
340
+ # Add migration
341
+ dotnet ef migrations add InitialCreate
342
+
343
+ # Add migration with specific context
344
+ dotnet ef migrations add AddUserTable --context AppDbContext
345
+
346
+ # Add migration to specific project
347
+ dotnet ef migrations add AddUserTable --project src/MyApp.Infrastructure --startup-project src/MyApp.Api
348
+
349
+ # Apply migrations
350
+ dotnet ef database update
351
+
352
+ # Update to specific migration
353
+ dotnet ef database update InitialCreate
354
+
355
+ # Rollback (update to previous migration)
356
+ dotnet ef database update PreviousMigration
357
+
358
+ # Generate SQL script
359
+ dotnet ef migrations script
360
+
361
+ # Generate idempotent script (safe to run multiple times)
362
+ dotnet ef migrations script --idempotent
363
+
364
+ # Remove last migration
365
+ dotnet ef migrations remove
366
+ ```
367
+
368
+ ### Migration Best Practices
369
+
370
+ ```csharp
371
+ public partial class AddUserTable : Migration
372
+ {
373
+ protected override void Up(MigrationBuilder migrationBuilder)
374
+ {
375
+ migrationBuilder.CreateTable(
376
+ name: "Users",
377
+ columns: table => new
378
+ {
379
+ Id = table.Column<Guid>(nullable: false, defaultValueSql: "NEWSEQUENTIALID()"),
380
+ Name = table.Column<string>(maxLength: 100, nullable: false),
381
+ Email = table.Column<string>(maxLength: 256, nullable: false),
382
+ CreatedAt = table.Column<DateTime>(nullable: false)
383
+ },
384
+ constraints: table =>
385
+ {
386
+ table.PrimaryKey("PK_Users", x => x.Id);
387
+ });
388
+
389
+ migrationBuilder.CreateIndex(
390
+ name: "IX_Users_Email",
391
+ table: "Users",
392
+ column: "Email",
393
+ unique: true);
394
+ }
395
+
396
+ protected override void Down(MigrationBuilder migrationBuilder)
397
+ {
398
+ migrationBuilder.DropTable(name: "Users");
399
+ }
400
+ }
401
+
402
+ // Data migration
403
+ public partial class SeedDefaultRoles : Migration
404
+ {
405
+ protected override void Up(MigrationBuilder migrationBuilder)
406
+ {
407
+ migrationBuilder.InsertData(
408
+ table: "Roles",
409
+ columns: new[] { "Id", "Name" },
410
+ values: new object[,]
411
+ {
412
+ { Guid.NewGuid(), "Admin" },
413
+ { Guid.NewGuid(), "User" },
414
+ { Guid.NewGuid(), "Guest" }
415
+ });
416
+ }
417
+
418
+ protected override void Down(MigrationBuilder migrationBuilder)
419
+ {
420
+ migrationBuilder.Sql("DELETE FROM Roles WHERE Name IN ('Admin', 'User', 'Guest')");
421
+ }
422
+ }
423
+ ```
424
+
425
+ ---
426
+
427
+ ## Query Optimization
428
+
429
+ ### Efficient Querying
430
+
431
+ ```csharp
432
+ // Use AsNoTracking for read-only queries
433
+ public async Task<IReadOnlyList<UserDto>> GetAllUsersAsync(CancellationToken ct)
434
+ => await context.Users
435
+ .AsNoTracking()
436
+ .Select(u => new UserDto(u.Id, u.Name, u.Email))
437
+ .ToListAsync(ct);
438
+
439
+ // Use projection to load only needed data
440
+ public async Task<UserDto?> GetUserByIdAsync(Guid id, CancellationToken ct)
441
+ => await context.Users
442
+ .AsNoTracking()
443
+ .Where(u => u.Id == id)
444
+ .Select(u => new UserDto(u.Id, u.Name, u.Email))
445
+ .FirstOrDefaultAsync(ct);
446
+
447
+ // Eager loading with Include
448
+ public async Task<User?> GetUserWithPostsAsync(Guid id, CancellationToken ct)
449
+ => await context.Users
450
+ .Include(u => u.Posts)
451
+ .ThenInclude(p => p.Tags)
452
+ .FirstOrDefaultAsync(u => u.Id == id, ct);
453
+
454
+ // Filtered include
455
+ public async Task<User?> GetUserWithRecentPostsAsync(Guid id, CancellationToken ct)
456
+ => await context.Users
457
+ .Include(u => u.Posts.Where(p => p.CreatedAt > DateTime.UtcNow.AddDays(-30)))
458
+ .FirstOrDefaultAsync(u => u.Id == id, ct);
459
+ ```
460
+
461
+ ### Pagination
462
+
463
+ ```csharp
464
+ public async Task<PagedResult<UserDto>> GetPagedUsersAsync(
465
+ int page,
466
+ int pageSize,
467
+ string? searchTerm,
468
+ CancellationToken ct)
469
+ {
470
+ var query = context.Users.AsNoTracking();
471
+
472
+ if (!string.IsNullOrEmpty(searchTerm))
473
+ {
474
+ query = query.Where(u =>
475
+ u.Name.Contains(searchTerm) ||
476
+ u.Email.Contains(searchTerm));
477
+ }
478
+
479
+ var totalCount = await query.CountAsync(ct);
480
+
481
+ var items = await query
482
+ .OrderBy(u => u.Name)
483
+ .Skip((page - 1) * pageSize)
484
+ .Take(pageSize)
485
+ .Select(u => new UserDto(u.Id, u.Name, u.Email))
486
+ .ToListAsync(ct);
487
+
488
+ return new PagedResult<UserDto>(items, totalCount, page, pageSize);
489
+ }
490
+ ```
491
+
492
+ ### Compiled Queries
493
+
494
+ ```csharp
495
+ public class UserRepository(AppDbContext context) : IUserRepository
496
+ {
497
+ // Compiled query for hot paths
498
+ private static readonly Func<AppDbContext, Guid, Task<User?>> GetUserByIdCompiled =
499
+ EF.CompileAsyncQuery((AppDbContext ctx, Guid id) =>
500
+ ctx.Users.FirstOrDefault(u => u.Id == id));
501
+
502
+ private static readonly Func<AppDbContext, string, Task<User?>> GetUserByEmailCompiled =
503
+ EF.CompileAsyncQuery((AppDbContext ctx, string email) =>
504
+ ctx.Users.FirstOrDefault(u => u.Email == email));
505
+
506
+ public Task<User?> GetByIdAsync(Guid id)
507
+ => GetUserByIdCompiled(context, id);
508
+
509
+ public Task<User?> GetByEmailAsync(string email)
510
+ => GetUserByEmailCompiled(context, email);
511
+ }
512
+ ```
513
+
514
+ ### Bulk Operations
515
+
516
+ ```csharp
517
+ // EF Core 7+ bulk operations
518
+ public async Task DeleteInactiveUsersAsync(CancellationToken ct)
519
+ {
520
+ await context.Users
521
+ .Where(u => u.LastLoginAt < DateTime.UtcNow.AddYears(-1))
522
+ .ExecuteDeleteAsync(ct);
523
+ }
524
+
525
+ public async Task UpdateUserRolesAsync(string oldRole, string newRole, CancellationToken ct)
526
+ {
527
+ await context.Users
528
+ .Where(u => u.Role == oldRole)
529
+ .ExecuteUpdateAsync(s => s
530
+ .SetProperty(u => u.Role, newRole)
531
+ .SetProperty(u => u.UpdatedAt, DateTime.UtcNow), ct);
532
+ }
533
+ ```
534
+
535
+ ### Raw SQL Queries
536
+
537
+ ```csharp
538
+ // FromSqlInterpolated for parameterized queries
539
+ public async Task<List<User>> SearchUsersAsync(string searchTerm, CancellationToken ct)
540
+ => await context.Users
541
+ .FromSqlInterpolated($@"
542
+ SELECT * FROM Users
543
+ WHERE Name LIKE {'%' + searchTerm + '%'}
544
+ OR Email LIKE {'%' + searchTerm + '%'}")
545
+ .ToListAsync(ct);
546
+
547
+ // For non-entity results
548
+ public async Task<List<UserStatistics>> GetUserStatisticsAsync(CancellationToken ct)
549
+ {
550
+ var connection = context.Database.GetDbConnection();
551
+ await connection.OpenAsync(ct);
552
+
553
+ await using var command = connection.CreateCommand();
554
+ command.CommandText = @"
555
+ SELECT u.Id, u.Name, COUNT(p.Id) as PostCount
556
+ FROM Users u
557
+ LEFT JOIN Posts p ON u.Id = p.AuthorId
558
+ GROUP BY u.Id, u.Name";
559
+
560
+ var results = new List<UserStatistics>();
561
+ await using var reader = await command.ExecuteReaderAsync(ct);
562
+ while (await reader.ReadAsync(ct))
563
+ {
564
+ results.Add(new UserStatistics(
565
+ reader.GetGuid(0),
566
+ reader.GetString(1),
567
+ reader.GetInt32(2)));
568
+ }
569
+
570
+ return results;
571
+ }
572
+ ```
573
+
574
+ ---
575
+
576
+ ## Performance Tips
577
+
578
+ ### Query Best Practices
579
+
580
+ 1. Always use `AsNoTracking()` for read-only queries
581
+ 2. Use projections (`Select`) instead of loading full entities
582
+ 3. Use `Include` sparingly - prefer explicit joins for complex queries
583
+ 4. Use compiled queries for frequently executed queries
584
+ 5. Use pagination for large result sets
585
+ 6. Use `AsSplitQuery()` for queries with multiple collections
586
+
587
+ ### Index Recommendations
588
+
589
+ ```csharp
590
+ // Create indexes for frequently queried columns
591
+ builder.HasIndex(u => u.Email).IsUnique();
592
+ builder.HasIndex(u => u.CreatedAt);
593
+
594
+ // Composite indexes for multi-column queries
595
+ builder.HasIndex(u => new { u.Status, u.CreatedAt });
596
+
597
+ // Filtered indexes for soft delete
598
+ builder.HasIndex(u => u.Email)
599
+ .HasFilter("[IsDeleted] = 0");
600
+ ```
601
+
602
+ ### Connection Pooling
603
+
604
+ ```csharp
605
+ builder.Services.AddDbContext<AppDbContext>(options =>
606
+ {
607
+ options.UseSqlServer(connectionString, sql =>
608
+ {
609
+ sql.MinBatchSize(1);
610
+ sql.MaxBatchSize(100);
611
+ });
612
+ });
613
+
614
+ // Or use DbContextPooling for high-throughput
615
+ builder.Services.AddDbContextPool<AppDbContext>(options =>
616
+ options.UseSqlServer(connectionString), poolSize: 128);
617
+ ```
618
+
619
+ ---
620
+
621
+ Version: 2.0.0
622
+ Last Updated: 2026-01-06