moai-adk 0.35.1__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 (502) hide show
  1. moai_adk/__init__.py +10 -0
  2. moai_adk/__main__.py +199 -0
  3. moai_adk/cli/__init__.py +6 -0
  4. moai_adk/cli/commands/__init__.py +17 -0
  5. moai_adk/cli/commands/analyze.py +116 -0
  6. moai_adk/cli/commands/doctor.py +272 -0
  7. moai_adk/cli/commands/init.py +372 -0
  8. moai_adk/cli/commands/language.py +248 -0
  9. moai_adk/cli/commands/status.py +104 -0
  10. moai_adk/cli/commands/update.py +2686 -0
  11. moai_adk/cli/main.py +13 -0
  12. moai_adk/cli/prompts/__init__.py +5 -0
  13. moai_adk/cli/prompts/init_prompts.py +219 -0
  14. moai_adk/cli/spec_status.py +263 -0
  15. moai_adk/cli/ui/__init__.py +44 -0
  16. moai_adk/cli/ui/progress.py +422 -0
  17. moai_adk/cli/ui/prompts.py +389 -0
  18. moai_adk/cli/ui/theme.py +129 -0
  19. moai_adk/cli/worktree/__init__.py +27 -0
  20. moai_adk/cli/worktree/__main__.py +31 -0
  21. moai_adk/cli/worktree/cli.py +683 -0
  22. moai_adk/cli/worktree/exceptions.py +89 -0
  23. moai_adk/cli/worktree/manager.py +493 -0
  24. moai_adk/cli/worktree/models.py +65 -0
  25. moai_adk/cli/worktree/registry.py +422 -0
  26. moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
  27. moai_adk/core/__init__.py +1 -0
  28. moai_adk/core/analysis/__init__.py +9 -0
  29. moai_adk/core/analysis/session_analyzer.py +400 -0
  30. moai_adk/core/claude_integration.py +393 -0
  31. moai_adk/core/command_helpers.py +270 -0
  32. moai_adk/core/comprehensive_monitoring_system.py +1183 -0
  33. moai_adk/core/config/__init__.py +19 -0
  34. moai_adk/core/config/auto_spec_config.py +340 -0
  35. moai_adk/core/config/migration.py +244 -0
  36. moai_adk/core/config/unified.py +436 -0
  37. moai_adk/core/context_manager.py +273 -0
  38. moai_adk/core/diagnostics/__init__.py +19 -0
  39. moai_adk/core/diagnostics/slash_commands.py +159 -0
  40. moai_adk/core/enterprise_features.py +1404 -0
  41. moai_adk/core/error_recovery_system.py +1902 -0
  42. moai_adk/core/event_driven_hook_system.py +1371 -0
  43. moai_adk/core/git/__init__.py +31 -0
  44. moai_adk/core/git/branch.py +25 -0
  45. moai_adk/core/git/branch_manager.py +129 -0
  46. moai_adk/core/git/checkpoint.py +134 -0
  47. moai_adk/core/git/commit.py +67 -0
  48. moai_adk/core/git/conflict_detector.py +413 -0
  49. moai_adk/core/git/event_detector.py +79 -0
  50. moai_adk/core/git/manager.py +216 -0
  51. moai_adk/core/hooks/post_tool_auto_spec_completion.py +901 -0
  52. moai_adk/core/input_validation_middleware.py +1006 -0
  53. moai_adk/core/integration/__init__.py +22 -0
  54. moai_adk/core/integration/engine.py +157 -0
  55. moai_adk/core/integration/integration_tester.py +226 -0
  56. moai_adk/core/integration/models.py +88 -0
  57. moai_adk/core/integration/utils.py +211 -0
  58. moai_adk/core/issue_creator.py +305 -0
  59. moai_adk/core/jit_context_loader.py +956 -0
  60. moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
  61. moai_adk/core/language_config.py +202 -0
  62. moai_adk/core/language_config_resolver.py +572 -0
  63. moai_adk/core/language_validator.py +543 -0
  64. moai_adk/core/mcp/setup.py +116 -0
  65. moai_adk/core/merge/__init__.py +9 -0
  66. moai_adk/core/merge/analyzer.py +605 -0
  67. moai_adk/core/migration/__init__.py +18 -0
  68. moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
  69. moai_adk/core/migration/backup_manager.py +277 -0
  70. moai_adk/core/migration/custom_element_scanner.py +358 -0
  71. moai_adk/core/migration/file_migrator.py +209 -0
  72. moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
  73. moai_adk/core/migration/selective_restorer.py +470 -0
  74. moai_adk/core/migration/template_utils.py +74 -0
  75. moai_adk/core/migration/user_selection_ui.py +338 -0
  76. moai_adk/core/migration/version_detector.py +139 -0
  77. moai_adk/core/migration/version_migrator.py +228 -0
  78. moai_adk/core/performance/__init__.py +6 -0
  79. moai_adk/core/performance/cache_system.py +316 -0
  80. moai_adk/core/performance/parallel_processor.py +116 -0
  81. moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
  82. moai_adk/core/project/__init__.py +1 -0
  83. moai_adk/core/project/backup_utils.py +70 -0
  84. moai_adk/core/project/checker.py +300 -0
  85. moai_adk/core/project/detector.py +293 -0
  86. moai_adk/core/project/initializer.py +387 -0
  87. moai_adk/core/project/phase_executor.py +716 -0
  88. moai_adk/core/project/validator.py +139 -0
  89. moai_adk/core/quality/__init__.py +6 -0
  90. moai_adk/core/quality/trust_checker.py +377 -0
  91. moai_adk/core/quality/validators/__init__.py +6 -0
  92. moai_adk/core/quality/validators/base_validator.py +19 -0
  93. moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
  94. moai_adk/core/robust_json_parser.py +611 -0
  95. moai_adk/core/rollback_manager.py +918 -0
  96. moai_adk/core/session_manager.py +651 -0
  97. moai_adk/core/skill_loading_system.py +579 -0
  98. moai_adk/core/spec/confidence_scoring.py +680 -0
  99. moai_adk/core/spec/ears_template_engine.py +1247 -0
  100. moai_adk/core/spec/quality_validator.py +687 -0
  101. moai_adk/core/spec_status_manager.py +478 -0
  102. moai_adk/core/template/__init__.py +7 -0
  103. moai_adk/core/template/backup.py +174 -0
  104. moai_adk/core/template/config.py +191 -0
  105. moai_adk/core/template/languages.py +43 -0
  106. moai_adk/core/template/merger.py +233 -0
  107. moai_adk/core/template/processor.py +1200 -0
  108. moai_adk/core/template_engine.py +310 -0
  109. moai_adk/core/template_variable_synchronizer.py +417 -0
  110. moai_adk/core/unified_permission_manager.py +745 -0
  111. moai_adk/core/user_behavior_analytics.py +851 -0
  112. moai_adk/core/version_sync.py +429 -0
  113. moai_adk/foundation/__init__.py +56 -0
  114. moai_adk/foundation/backend.py +1027 -0
  115. moai_adk/foundation/database.py +1115 -0
  116. moai_adk/foundation/devops.py +1585 -0
  117. moai_adk/foundation/ears.py +431 -0
  118. moai_adk/foundation/frontend.py +870 -0
  119. moai_adk/foundation/git/commit_templates.py +557 -0
  120. moai_adk/foundation/git.py +376 -0
  121. moai_adk/foundation/langs.py +484 -0
  122. moai_adk/foundation/ml_ops.py +1162 -0
  123. moai_adk/foundation/testing.py +1524 -0
  124. moai_adk/foundation/trust/trust_principles.py +676 -0
  125. moai_adk/foundation/trust/validation_checklist.py +1573 -0
  126. moai_adk/project/__init__.py +0 -0
  127. moai_adk/project/configuration.py +1084 -0
  128. moai_adk/project/documentation.py +566 -0
  129. moai_adk/project/schema.py +447 -0
  130. moai_adk/statusline/__init__.py +38 -0
  131. moai_adk/statusline/alfred_detector.py +105 -0
  132. moai_adk/statusline/config.py +376 -0
  133. moai_adk/statusline/enhanced_output_style_detector.py +372 -0
  134. moai_adk/statusline/git_collector.py +190 -0
  135. moai_adk/statusline/main.py +322 -0
  136. moai_adk/statusline/metrics_tracker.py +78 -0
  137. moai_adk/statusline/renderer.py +343 -0
  138. moai_adk/statusline/update_checker.py +129 -0
  139. moai_adk/statusline/version_reader.py +741 -0
  140. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +714 -0
  141. moai_adk/templates/.claude/agents/moai/builder-agent.md +474 -0
  142. moai_adk/templates/.claude/agents/moai/builder-command.md +1172 -0
  143. moai_adk/templates/.claude/agents/moai/builder-plugin.md +637 -0
  144. moai_adk/templates/.claude/agents/moai/builder-skill.md +666 -0
  145. moai_adk/templates/.claude/agents/moai/expert-backend.md +899 -0
  146. moai_adk/templates/.claude/agents/moai/expert-database.md +777 -0
  147. moai_adk/templates/.claude/agents/moai/expert-debug.md +401 -0
  148. moai_adk/templates/.claude/agents/moai/expert-devops.md +720 -0
  149. moai_adk/templates/.claude/agents/moai/expert-frontend.md +734 -0
  150. moai_adk/templates/.claude/agents/moai/expert-performance.md +657 -0
  151. moai_adk/templates/.claude/agents/moai/expert-security.md +513 -0
  152. moai_adk/templates/.claude/agents/moai/expert-testing.md +733 -0
  153. moai_adk/templates/.claude/agents/moai/expert-uiux.md +1041 -0
  154. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +432 -0
  155. moai_adk/templates/.claude/agents/moai/manager-docs.md +573 -0
  156. moai_adk/templates/.claude/agents/moai/manager-git.md +1060 -0
  157. moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
  158. moai_adk/templates/.claude/agents/moai/manager-quality.md +624 -0
  159. moai_adk/templates/.claude/agents/moai/manager-spec.md +809 -0
  160. moai_adk/templates/.claude/agents/moai/manager-strategy.md +780 -0
  161. moai_adk/templates/.claude/agents/moai/manager-tdd.md +784 -0
  162. moai_adk/templates/.claude/agents/moai/mcp-context7.md +458 -0
  163. moai_adk/templates/.claude/agents/moai/mcp-figma.md +1607 -0
  164. moai_adk/templates/.claude/agents/moai/mcp-notion.md +789 -0
  165. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +469 -0
  166. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1032 -0
  167. moai_adk/templates/.claude/commands/moai/0-project.md +1386 -0
  168. moai_adk/templates/.claude/commands/moai/1-plan.md +1427 -0
  169. moai_adk/templates/.claude/commands/moai/2-run.md +943 -0
  170. moai_adk/templates/.claude/commands/moai/3-sync.md +1324 -0
  171. moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
  172. moai_adk/templates/.claude/hooks/__init__.py +8 -0
  173. moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
  174. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
  175. moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
  176. moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
  177. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
  178. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
  179. moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
  180. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
  181. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
  182. moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
  183. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
  184. moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
  185. moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
  186. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
  187. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
  188. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
  189. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +1083 -0
  190. moai_adk/templates/.claude/output-styles/moai/r2d2.md +560 -0
  191. moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
  192. moai_adk/templates/.claude/settings.json +172 -0
  193. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +307 -0
  194. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
  195. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
  196. moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
  197. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +249 -0
  198. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +406 -0
  199. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
  200. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
  201. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
  202. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
  203. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
  204. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +328 -0
  205. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +320 -0
  206. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
  207. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
  208. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +323 -0
  209. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
  210. moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
  211. moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
  212. moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
  213. moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
  214. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
  215. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +497 -0
  216. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
  217. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
  218. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +455 -0
  219. moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
  220. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
  221. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
  222. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
  223. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
  224. moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
  225. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +492 -0
  226. moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
  227. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
  228. moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
  229. moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
  230. moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
  231. moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
  232. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
  233. moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
  234. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +202 -0
  235. moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
  236. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
  237. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
  238. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
  239. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
  240. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
  241. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
  242. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
  243. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
  244. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
  245. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
  246. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
  247. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
  248. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
  249. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
  250. moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
  251. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +441 -0
  252. moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
  253. moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
  254. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +420 -0
  255. moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
  256. moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
  257. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +359 -0
  258. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
  259. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
  260. moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
  261. moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
  262. moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
  263. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
  264. moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
  265. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
  266. moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
  267. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +315 -0
  268. moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
  269. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
  270. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
  271. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
  272. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
  273. moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
  274. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +364 -0
  275. moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
  276. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
  277. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
  278. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
  279. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
  280. moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
  281. moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
  282. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
  283. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
  284. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +649 -0
  285. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +478 -0
  286. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +612 -0
  287. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +477 -0
  288. moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
  289. moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
  290. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +376 -0
  291. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
  292. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
  293. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +385 -0
  294. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
  295. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
  296. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +382 -0
  297. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
  298. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
  299. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +644 -0
  300. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +481 -0
  301. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
  302. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
  303. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +579 -0
  304. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +687 -0
  305. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +372 -0
  306. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
  307. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
  308. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +497 -0
  309. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
  310. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
  311. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +497 -0
  312. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
  313. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
  314. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +368 -0
  315. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
  316. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
  317. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +300 -0
  318. moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
  319. moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
  320. moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
  321. moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
  322. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +319 -0
  323. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
  324. moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
  325. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
  326. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
  327. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
  328. moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
  329. moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
  330. moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
  331. moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
  332. moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
  333. moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
  334. moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
  335. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +372 -0
  336. moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
  337. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
  338. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
  339. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
  340. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
  341. moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
  342. moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +402 -0
  343. moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +607 -0
  344. moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +300 -0
  345. moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +537 -0
  346. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +291 -0
  347. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +390 -0
  348. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +398 -0
  349. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +379 -0
  350. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +358 -0
  351. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +467 -0
  352. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +377 -0
  353. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +466 -0
  354. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +482 -0
  355. moai_adk/templates/.claude/skills/moai-plugin-builder/SKILL.md +474 -0
  356. moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
  357. moai_adk/templates/.claude/skills/moai-plugin-builder/migration.md +341 -0
  358. moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +463 -0
  359. moai_adk/templates/.claude/skills/moai-plugin-builder/validation.md +373 -0
  360. moai_adk/templates/.claude/skills/moai-security-auth0/SKILL.md +275 -0
  361. moai_adk/templates/.claude/skills/moai-security-auth0/modules/adaptive-mfa.md +233 -0
  362. moai_adk/templates/.claude/skills/moai-security-auth0/modules/akamai-integration.md +215 -0
  363. moai_adk/templates/.claude/skills/moai-security-auth0/modules/application-credentials.md +280 -0
  364. moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-log-events.md +225 -0
  365. moai_adk/templates/.claude/skills/moai-security-auth0/modules/attack-protection-overview.md +140 -0
  366. moai_adk/templates/.claude/skills/moai-security-auth0/modules/bot-detection.md +144 -0
  367. moai_adk/templates/.claude/skills/moai-security-auth0/modules/breached-password-detection.md +187 -0
  368. moai_adk/templates/.claude/skills/moai-security-auth0/modules/brute-force-protection.md +189 -0
  369. moai_adk/templates/.claude/skills/moai-security-auth0/modules/certifications.md +282 -0
  370. moai_adk/templates/.claude/skills/moai-security-auth0/modules/compliance-overview.md +263 -0
  371. moai_adk/templates/.claude/skills/moai-security-auth0/modules/continuous-session-protection.md +307 -0
  372. moai_adk/templates/.claude/skills/moai-security-auth0/modules/customize-mfa.md +178 -0
  373. moai_adk/templates/.claude/skills/moai-security-auth0/modules/dpop-implementation.md +283 -0
  374. moai_adk/templates/.claude/skills/moai-security-auth0/modules/fapi-implementation.md +259 -0
  375. moai_adk/templates/.claude/skills/moai-security-auth0/modules/gdpr-compliance.md +313 -0
  376. moai_adk/templates/.claude/skills/moai-security-auth0/modules/guardian-configuration.md +269 -0
  377. moai_adk/templates/.claude/skills/moai-security-auth0/modules/highly-regulated-identity.md +272 -0
  378. moai_adk/templates/.claude/skills/moai-security-auth0/modules/jwt-fundamentals.md +248 -0
  379. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mdl-verification.md +211 -0
  380. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-api-management.md +278 -0
  381. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-factors.md +226 -0
  382. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mfa-overview.md +174 -0
  383. moai_adk/templates/.claude/skills/moai-security-auth0/modules/mtls-sender-constraining.md +316 -0
  384. moai_adk/templates/.claude/skills/moai-security-auth0/modules/ropg-flow-mfa.md +217 -0
  385. moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-center.md +325 -0
  386. moai_adk/templates/.claude/skills/moai-security-auth0/modules/security-guidance.md +277 -0
  387. moai_adk/templates/.claude/skills/moai-security-auth0/modules/state-parameters.md +178 -0
  388. moai_adk/templates/.claude/skills/moai-security-auth0/modules/step-up-authentication.md +251 -0
  389. moai_adk/templates/.claude/skills/moai-security-auth0/modules/suspicious-ip-throttling.md +240 -0
  390. moai_adk/templates/.claude/skills/moai-security-auth0/modules/tenant-access-control.md +180 -0
  391. moai_adk/templates/.claude/skills/moai-security-auth0/modules/webauthn-fido.md +235 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +449 -0
  393. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
  396. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
  397. moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
  398. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +390 -0
  399. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
  404. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +175 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
  407. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
  409. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
  410. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
  416. moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
  417. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
  418. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1434 -0
  419. moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
  420. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
  421. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
  422. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +92 -0
  423. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
  424. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
  425. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
  426. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
  427. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
  428. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
  429. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +534 -0
  430. moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
  431. moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
  432. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +377 -0
  433. moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
  434. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
  435. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
  436. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
  437. moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
  438. moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
  439. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +456 -0
  440. moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
  441. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
  442. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
  443. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
  444. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
  445. moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
  446. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
  447. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
  448. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
  449. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
  450. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
  451. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
  452. moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
  453. moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
  454. moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
  455. moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
  456. moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
  457. moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
  458. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +411 -0
  459. moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
  460. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
  461. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
  462. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
  463. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
  464. moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
  465. moai_adk/templates/.git-hooks/pre-commit +128 -0
  466. moai_adk/templates/.git-hooks/pre-push +365 -0
  467. moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
  468. moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
  469. moai_adk/templates/.github/workflows/spec-issue-sync.yml +337 -0
  470. moai_adk/templates/.gitignore +222 -0
  471. moai_adk/templates/.mcp.json +13 -0
  472. moai_adk/templates/.moai/config/config.yaml +58 -0
  473. moai_adk/templates/.moai/config/questions/_schema.yaml +174 -0
  474. moai_adk/templates/.moai/config/questions/tab0-init.yaml +251 -0
  475. moai_adk/templates/.moai/config/questions/tab1-user.yaml +107 -0
  476. moai_adk/templates/.moai/config/questions/tab2-project.yaml +79 -0
  477. moai_adk/templates/.moai/config/questions/tab3-git.yaml +632 -0
  478. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +182 -0
  479. moai_adk/templates/.moai/config/questions/tab5-system.yaml +96 -0
  480. moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -0
  481. moai_adk/templates/.moai/config/sections/language.yaml +11 -0
  482. moai_adk/templates/.moai/config/sections/project.yaml +13 -0
  483. moai_adk/templates/.moai/config/sections/quality.yaml +17 -0
  484. moai_adk/templates/.moai/config/sections/system.yaml +24 -0
  485. moai_adk/templates/.moai/config/sections/user.yaml +5 -0
  486. moai_adk/templates/.moai/config/statusline-config.yaml +92 -0
  487. moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
  488. moai_adk/templates/CLAUDE.md +642 -0
  489. moai_adk/utils/__init__.py +30 -0
  490. moai_adk/utils/banner.py +38 -0
  491. moai_adk/utils/common.py +294 -0
  492. moai_adk/utils/link_validator.py +241 -0
  493. moai_adk/utils/logger.py +147 -0
  494. moai_adk/utils/safe_file_reader.py +206 -0
  495. moai_adk/utils/timeout.py +160 -0
  496. moai_adk/utils/toon_utils.py +256 -0
  497. moai_adk/version.py +22 -0
  498. moai_adk-0.35.1.dist-info/METADATA +3018 -0
  499. moai_adk-0.35.1.dist-info/RECORD +502 -0
  500. moai_adk-0.35.1.dist-info/WHEEL +4 -0
  501. moai_adk-0.35.1.dist-info/entry_points.txt +3 -0
  502. moai_adk-0.35.1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,804 @@
1
+ # Python 3.13+ Complete Reference
2
+
3
+ ## Language Features Reference
4
+
5
+ ### Python 3.13 Feature Matrix
6
+
7
+ | Feature | Status | PEP | Production Ready |
8
+ |---------|--------|-----|------------------|
9
+ | JIT Compiler | Experimental | PEP 744 | No |
10
+ | Free Threading (GIL-free) | Experimental | PEP 703 | No |
11
+ | Pattern Matching | Stable | PEP 634-636 | Yes |
12
+ | Type Parameter Syntax | Stable | PEP 695 | Yes |
13
+ | Exception Groups | Stable | PEP 654 | Yes |
14
+
15
+ ### JIT Compiler Details (PEP 744)
16
+
17
+ Build Configuration:
18
+ ```bash
19
+ # Build Python with JIT support
20
+ ./configure --enable-experimental-jit
21
+ make
22
+
23
+ # Or with "disabled by default" mode
24
+ ./configure --enable-experimental-jit=yes-off
25
+ make
26
+ ```
27
+
28
+ Runtime Activation:
29
+ ```bash
30
+ # Enable JIT at runtime
31
+ PYTHON_JIT=1 python my_script.py
32
+
33
+ # With debugging info
34
+ PYTHON_JIT=1 PYTHON_JIT_DEBUG=1 python my_script.py
35
+ ```
36
+
37
+ Expected Benefits:
38
+ - 5-10% performance improvement for CPU-bound code
39
+ - Better optimization for hot loops
40
+ - Future foundation for more aggressive optimizations
41
+
42
+ ### Free Threading (PEP 703)
43
+
44
+ Installation:
45
+ ```bash
46
+ # macOS/Windows: Use official installers with free-threaded option
47
+ # Linux: Build from source
48
+ ./configure --disable-gil
49
+ make
50
+
51
+ # Verify installation
52
+ python3.13t -c "import sys; print(sys._is_gil_enabled())"
53
+ ```
54
+
55
+ Thread-Safe Patterns:
56
+ ```python
57
+ import threading
58
+ from queue import Queue
59
+
60
+ def parallel_processing(items: list[str], workers: int = 4) -> list[str]:
61
+ results = Queue()
62
+ threads = []
63
+
64
+ def worker(chunk: list[str]):
65
+ for item in chunk:
66
+ processed = heavy_computation(item)
67
+ results.put(processed)
68
+
69
+ chunk_size = len(items) // workers
70
+ for i in range(workers):
71
+ start = i * chunk_size
72
+ end = start + chunk_size if i < workers - 1 else len(items)
73
+ t = threading.Thread(target=worker, args=(items[start:end],))
74
+ threads.append(t)
75
+ t.start()
76
+
77
+ for t in threads:
78
+ t.join()
79
+
80
+ return [results.get() for _ in range(results.qsize())]
81
+ ```
82
+
83
+ ### Pattern Matching Complete Guide
84
+
85
+ Literal Patterns:
86
+ ```python
87
+ def http_status(status: int) -> str:
88
+ match status:
89
+ case 200:
90
+ return "OK"
91
+ case 201:
92
+ return "Created"
93
+ case 400:
94
+ return "Bad Request"
95
+ case 404:
96
+ return "Not Found"
97
+ case 500:
98
+ return "Internal Server Error"
99
+ case _:
100
+ return f"Unknown status: {status}"
101
+ ```
102
+
103
+ Structural Patterns:
104
+ ```python
105
+ def process_event(event: dict) -> None:
106
+ match event:
107
+ case {"type": "click", "x": x, "y": y}:
108
+ handle_click(x, y)
109
+ case {"type": "keypress", "key": key, "modifiers": [*mods]}:
110
+ handle_keypress(key, mods)
111
+ case {"type": "scroll", "delta": delta, **rest}:
112
+ handle_scroll(delta, rest)
113
+ ```
114
+
115
+ Class Patterns:
116
+ ```python
117
+ from dataclasses import dataclass
118
+
119
+ @dataclass
120
+ class Point:
121
+ x: float
122
+ y: float
123
+
124
+ @dataclass
125
+ class Circle:
126
+ center: Point
127
+ radius: float
128
+
129
+ @dataclass
130
+ class Rectangle:
131
+ top_left: Point
132
+ width: float
133
+ height: float
134
+
135
+ def area(shape) -> float:
136
+ match shape:
137
+ case Circle(center=_, radius=r):
138
+ return 3.14159 * r ** 2
139
+ case Rectangle(width=w, height=h):
140
+ return w * h
141
+ case Point():
142
+ return 0.0
143
+ ```
144
+
145
+ Guard Clauses:
146
+ ```python
147
+ def validate_user(user: dict) -> str:
148
+ match user:
149
+ case {"age": age} if age < 0:
150
+ return "Invalid age"
151
+ case {"age": age} if age < 18:
152
+ return "Minor"
153
+ case {"age": age, "verified": True} if age >= 18:
154
+ return "Verified adult"
155
+ case {"age": age} if age >= 18:
156
+ return "Unverified adult"
157
+ case _:
158
+ return "Invalid user data"
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Web Framework Reference
164
+
165
+ ### FastAPI 0.115+ Complete Reference
166
+
167
+ Application Structure:
168
+ ```
169
+ project/
170
+ ├── app/
171
+ │ ├── __init__.py
172
+ │ ├── main.py # Application entry point
173
+ │ ├── config.py # Settings and configuration
174
+ │ ├── dependencies.py # Shared dependencies
175
+ │ ├── api/
176
+ │ │ ├── __init__.py
177
+ │ │ ├── v1/
178
+ │ │ │ ├── __init__.py
179
+ │ │ │ ├── router.py # API router
180
+ │ │ │ └── endpoints/
181
+ │ │ │ ├── users.py
182
+ │ │ │ └── items.py
183
+ │ ├── core/
184
+ │ │ ├── security.py # Auth and security
185
+ │ │ └── exceptions.py # Custom exceptions
186
+ │ ├── models/
187
+ │ │ ├── __init__.py
188
+ │ │ ├── user.py # SQLAlchemy models
189
+ │ │ └── item.py
190
+ │ ├── schemas/
191
+ │ │ ├── __init__.py
192
+ │ │ ├── user.py # Pydantic schemas
193
+ │ │ └── item.py
194
+ │ ├── services/
195
+ │ │ ├── __init__.py
196
+ │ │ └── user_service.py # Business logic
197
+ │ └── repositories/
198
+ │ ├── __init__.py
199
+ │ └── user_repo.py # Data access
200
+ ├── tests/
201
+ ├── pyproject.toml
202
+ └── Dockerfile
203
+ ```
204
+
205
+ Configuration with Pydantic Settings:
206
+ ```python
207
+ # app/config.py
208
+ from pydantic_settings import BaseSettings, SettingsConfigDict
209
+ from functools import lru_cache
210
+
211
+ class Settings(BaseSettings):
212
+ model_config = SettingsConfigDict(
213
+ env_file=".env",
214
+ env_file_encoding="utf-8",
215
+ case_sensitive=False,
216
+ )
217
+
218
+ # Application
219
+ app_name: str = "My API"
220
+ debug: bool = False
221
+ api_v1_prefix: str = "/api/v1"
222
+
223
+ # Database
224
+ database_url: str
225
+ db_pool_size: int = 5
226
+ db_max_overflow: int = 10
227
+
228
+ # Security
229
+ secret_key: str
230
+ access_token_expire_minutes: int = 30
231
+ algorithm: str = "HS256"
232
+
233
+ # External Services
234
+ redis_url: str | None = None
235
+
236
+ @lru_cache
237
+ def get_settings() -> Settings:
238
+ return Settings()
239
+ ```
240
+
241
+ Advanced Dependency Injection:
242
+ ```python
243
+ # app/dependencies.py
244
+ from fastapi import Depends, HTTPException, status
245
+ from fastapi.security import OAuth2PasswordBearer
246
+ from sqlalchemy.ext.asyncio import AsyncSession
247
+ from jose import jwt, JWTError
248
+
249
+ oauth2_scheme = OAuth2PasswordBearer(tokenUrl="auth/token")
250
+
251
+ async def get_db() -> AsyncGenerator[AsyncSession, None]:
252
+ async with async_session() as session:
253
+ try:
254
+ yield session
255
+ await session.commit()
256
+ except Exception:
257
+ await session.rollback()
258
+ raise
259
+
260
+ async def get_current_user(
261
+ token: str = Depends(oauth2_scheme),
262
+ db: AsyncSession = Depends(get_db),
263
+ ) -> User:
264
+ credentials_exception = HTTPException(
265
+ status_code=status.HTTP_401_UNAUTHORIZED,
266
+ detail="Could not validate credentials",
267
+ headers={"WWW-Authenticate": "Bearer"},
268
+ )
269
+ try:
270
+ payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
271
+ user_id: int = payload.get("sub")
272
+ if user_id is None:
273
+ raise credentials_exception
274
+ except JWTError:
275
+ raise credentials_exception
276
+
277
+ user = await UserRepository(db).get_by_id(user_id)
278
+ if user is None:
279
+ raise credentials_exception
280
+ return user
281
+
282
+ async def get_current_active_user(
283
+ current_user: User = Depends(get_current_user),
284
+ ) -> User:
285
+ if not current_user.is_active:
286
+ raise HTTPException(status_code=400, detail="Inactive user")
287
+ return current_user
288
+
289
+ def require_role(required_role: str):
290
+ async def role_checker(
291
+ current_user: User = Depends(get_current_active_user),
292
+ ) -> User:
293
+ if current_user.role != required_role:
294
+ raise HTTPException(
295
+ status_code=status.HTTP_403_FORBIDDEN,
296
+ detail="Insufficient permissions",
297
+ )
298
+ return current_user
299
+ return role_checker
300
+ ```
301
+
302
+ Background Tasks:
303
+ ```python
304
+ from fastapi import BackgroundTasks
305
+
306
+ async def send_notification(email: str, message: str):
307
+ # Simulate email sending
308
+ await asyncio.sleep(1)
309
+ print(f"Sent to {email}: {message}")
310
+
311
+ @app.post("/users/")
312
+ async def create_user(
313
+ user: UserCreate,
314
+ background_tasks: BackgroundTasks,
315
+ db: AsyncSession = Depends(get_db),
316
+ ) -> User:
317
+ db_user = await UserRepository(db).create(user)
318
+ background_tasks.add_task(
319
+ send_notification,
320
+ db_user.email,
321
+ "Welcome to our platform!",
322
+ )
323
+ return db_user
324
+ ```
325
+
326
+ ### Django 5.2 LTS Reference
327
+
328
+ Composite Primary Keys:
329
+ ```python
330
+ # models.py
331
+ from django.db import models
332
+
333
+ class Enrollment(models.Model):
334
+ student = models.ForeignKey("Student", on_delete=models.CASCADE)
335
+ course = models.ForeignKey("Course", on_delete=models.CASCADE)
336
+ enrolled_at = models.DateTimeField(auto_now_add=True)
337
+ grade = models.CharField(max_length=2, blank=True)
338
+
339
+ class Meta:
340
+ pk = models.CompositePrimaryKey("student", "course")
341
+ verbose_name = "Enrollment"
342
+ verbose_name_plural = "Enrollments"
343
+
344
+ # Usage
345
+ enrollment = Enrollment.objects.get(pk=(student_id, course_id))
346
+ ```
347
+
348
+ Async Views and ORM:
349
+ ```python
350
+ # views.py
351
+ from django.http import JsonResponse
352
+ from asgiref.sync import sync_to_async
353
+
354
+ async def async_user_list(request):
355
+ users = await sync_to_async(list)(User.objects.all()[:100])
356
+ return JsonResponse({"users": [u.to_dict() for u in users]})
357
+
358
+ # With Django 5.2 async ORM support
359
+ async def async_user_detail(request, user_id):
360
+ user = await User.objects.aget(pk=user_id)
361
+ return JsonResponse(user.to_dict())
362
+ ```
363
+
364
+ Custom Form Rendering:
365
+ ```python
366
+ # forms.py
367
+ from django import forms
368
+
369
+ class CustomBoundField(forms.BoundField):
370
+ def label_tag(self, contents=None, attrs=None, label_suffix=None):
371
+ attrs = attrs or {}
372
+ attrs["class"] = attrs.get("class", "") + " custom-label"
373
+ return super().label_tag(contents, attrs, label_suffix)
374
+
375
+ class CustomFormMixin:
376
+ def get_bound_field(self, field, field_name):
377
+ return CustomBoundField(self, field, field_name)
378
+
379
+ class UserForm(CustomFormMixin, forms.ModelForm):
380
+ class Meta:
381
+ model = User
382
+ fields = ["name", "email"]
383
+ ```
384
+
385
+ ---
386
+
387
+ ## Data Validation Reference
388
+
389
+ ### Pydantic v2.9 Complete Patterns
390
+
391
+ Discriminated Unions:
392
+ ```python
393
+ from typing import Literal, Union
394
+ from pydantic import BaseModel, Field
395
+
396
+ class EmailNotification(BaseModel):
397
+ type: Literal["email"] = "email"
398
+ recipient: str
399
+ subject: str
400
+ body: str
401
+
402
+ class SMSNotification(BaseModel):
403
+ type: Literal["sms"] = "sms"
404
+ phone_number: str
405
+ message: str
406
+
407
+ class PushNotification(BaseModel):
408
+ type: Literal["push"] = "push"
409
+ device_token: str
410
+ title: str
411
+ body: str
412
+
413
+ Notification = Union[EmailNotification, SMSNotification, PushNotification]
414
+
415
+ class NotificationRequest(BaseModel):
416
+ notification: Notification = Field(discriminator="type")
417
+ ```
418
+
419
+ Computed Fields:
420
+ ```python
421
+ from pydantic import BaseModel, computed_field
422
+
423
+ class Product(BaseModel):
424
+ name: str
425
+ price: float
426
+ quantity: int
427
+ tax_rate: float = 0.1
428
+
429
+ @computed_field
430
+ @property
431
+ def subtotal(self) -> float:
432
+ return self.price * self.quantity
433
+
434
+ @computed_field
435
+ @property
436
+ def tax(self) -> float:
437
+ return self.subtotal * self.tax_rate
438
+
439
+ @computed_field
440
+ @property
441
+ def total(self) -> float:
442
+ return self.subtotal + self.tax
443
+ ```
444
+
445
+ Custom JSON Serialization:
446
+ ```python
447
+ from pydantic import BaseModel, field_serializer
448
+ from datetime import datetime
449
+ from decimal import Decimal
450
+
451
+ class Transaction(BaseModel):
452
+ id: int
453
+ amount: Decimal
454
+ created_at: datetime
455
+
456
+ @field_serializer("amount")
457
+ def serialize_amount(self, amount: Decimal) -> str:
458
+ return f"${amount:.2f}"
459
+
460
+ @field_serializer("created_at")
461
+ def serialize_datetime(self, dt: datetime) -> str:
462
+ return dt.isoformat()
463
+ ```
464
+
465
+ TypeAdapter for Dynamic Validation:
466
+ ```python
467
+ from pydantic import TypeAdapter
468
+ from typing import Any
469
+
470
+ # Validate arbitrary data without a model
471
+ int_adapter = TypeAdapter(int)
472
+ validated_int = int_adapter.validate_python("42") # Returns 42
473
+
474
+ # Validate complex types
475
+ list_adapter = TypeAdapter(list[dict[str, int]])
476
+ validated_list = list_adapter.validate_json('[{"a": 1}, {"b": 2}]')
477
+
478
+ # Validate with custom types
479
+ UserListAdapter = TypeAdapter(list[User])
480
+ users = UserListAdapter.validate_python(raw_data)
481
+ ```
482
+
483
+ ---
484
+
485
+ ## ORM Reference
486
+
487
+ ### SQLAlchemy 2.0 Complete Patterns
488
+
489
+ Declarative Models with Type Hints:
490
+ ```python
491
+ from sqlalchemy import String, ForeignKey
492
+ from sqlalchemy.orm import (
493
+ DeclarativeBase,
494
+ Mapped,
495
+ mapped_column,
496
+ relationship,
497
+ )
498
+ from datetime import datetime
499
+
500
+ class Base(DeclarativeBase):
501
+ pass
502
+
503
+ class User(Base):
504
+ __tablename__ = "users"
505
+
506
+ id: Mapped[int] = mapped_column(primary_key=True)
507
+ email: Mapped[str] = mapped_column(String(255), unique=True, index=True)
508
+ name: Mapped[str] = mapped_column(String(100))
509
+ created_at: Mapped[datetime] = mapped_column(default=datetime.utcnow)
510
+
511
+ # Relationships
512
+ posts: Mapped[list["Post"]] = relationship(back_populates="author")
513
+
514
+ class Post(Base):
515
+ __tablename__ = "posts"
516
+
517
+ id: Mapped[int] = mapped_column(primary_key=True)
518
+ title: Mapped[str] = mapped_column(String(200))
519
+ content: Mapped[str]
520
+ author_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
521
+
522
+ author: Mapped["User"] = relationship(back_populates="posts")
523
+ ```
524
+
525
+ Advanced Queries:
526
+ ```python
527
+ from sqlalchemy import select, func, and_, or_
528
+ from sqlalchemy.orm import selectinload, joinedload
529
+
530
+ # Eager loading
531
+ async def get_user_with_posts(db: AsyncSession, user_id: int) -> User | None:
532
+ result = await db.execute(
533
+ select(User)
534
+ .options(selectinload(User.posts))
535
+ .where(User.id == user_id)
536
+ )
537
+ return result.scalar_one_or_none()
538
+
539
+ # Aggregations
540
+ async def get_post_counts_by_user(db: AsyncSession) -> list[tuple[str, int]]:
541
+ result = await db.execute(
542
+ select(User.name, func.count(Post.id).label("post_count"))
543
+ .join(Post, isouter=True)
544
+ .group_by(User.id)
545
+ .order_by(func.count(Post.id).desc())
546
+ )
547
+ return result.all()
548
+
549
+ # Complex filtering
550
+ async def search_posts(
551
+ db: AsyncSession,
552
+ search: str | None = None,
553
+ author_id: int | None = None,
554
+ limit: int = 20,
555
+ ) -> list[Post]:
556
+ query = select(Post).options(joinedload(Post.author))
557
+
558
+ conditions = []
559
+ if search:
560
+ conditions.append(
561
+ or_(
562
+ Post.title.ilike(f"%{search}%"),
563
+ Post.content.ilike(f"%{search}%"),
564
+ )
565
+ )
566
+ if author_id:
567
+ conditions.append(Post.author_id == author_id)
568
+
569
+ if conditions:
570
+ query = query.where(and_(*conditions))
571
+
572
+ result = await db.execute(query.limit(limit))
573
+ return result.scalars().unique().all()
574
+ ```
575
+
576
+ Upsert (Insert or Update):
577
+ ```python
578
+ from sqlalchemy.dialects.postgresql import insert
579
+
580
+ async def upsert_user(db: AsyncSession, user_data: dict) -> User:
581
+ stmt = insert(User).values(**user_data)
582
+ stmt = stmt.on_conflict_do_update(
583
+ index_elements=[User.email],
584
+ set_={
585
+ "name": stmt.excluded.name,
586
+ "updated_at": datetime.utcnow(),
587
+ },
588
+ )
589
+ await db.execute(stmt)
590
+ await db.commit()
591
+
592
+ return await db.execute(
593
+ select(User).where(User.email == user_data["email"])
594
+ ).scalar_one()
595
+ ```
596
+
597
+ ---
598
+
599
+ ## Testing Reference
600
+
601
+ ### pytest Complete Patterns
602
+
603
+ Conftest Configuration:
604
+ ```python
605
+ # conftest.py
606
+ import pytest
607
+ import pytest_asyncio
608
+ from httpx import AsyncClient, ASGITransport
609
+ from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
610
+ from sqlalchemy.orm import sessionmaker
611
+
612
+ @pytest.fixture(scope="session")
613
+ def event_loop():
614
+ """Create event loop for async tests."""
615
+ import asyncio
616
+ loop = asyncio.new_event_loop()
617
+ yield loop
618
+ loop.close()
619
+
620
+ @pytest_asyncio.fixture(scope="session")
621
+ async def engine():
622
+ """Create test database engine."""
623
+ engine = create_async_engine(
624
+ "sqlite+aiosqlite:///:memory:",
625
+ echo=True,
626
+ )
627
+ async with engine.begin() as conn:
628
+ await conn.run_sync(Base.metadata.create_all)
629
+ yield engine
630
+ await engine.dispose()
631
+
632
+ @pytest_asyncio.fixture
633
+ async def db_session(engine) -> AsyncGenerator[AsyncSession, None]:
634
+ """Create isolated database session for each test."""
635
+ async_session = sessionmaker(
636
+ engine, class_=AsyncSession, expire_on_commit=False
637
+ )
638
+ async with async_session() as session:
639
+ async with session.begin():
640
+ yield session
641
+ await session.rollback()
642
+
643
+ @pytest_asyncio.fixture
644
+ async def async_client(db_session) -> AsyncGenerator[AsyncClient, None]:
645
+ """Create async HTTP client for API testing."""
646
+ def get_db_override():
647
+ return db_session
648
+
649
+ app.dependency_overrides[get_db] = get_db_override
650
+
651
+ async with AsyncClient(
652
+ transport=ASGITransport(app=app),
653
+ base_url="http://test",
654
+ ) as client:
655
+ yield client
656
+
657
+ app.dependency_overrides.clear()
658
+ ```
659
+
660
+ Advanced Fixtures:
661
+ ```python
662
+ @pytest.fixture
663
+ def user_factory(db_session):
664
+ """Factory for creating test users."""
665
+ created_users = []
666
+
667
+ async def _create(**kwargs) -> User:
668
+ defaults = {
669
+ "name": f"User {len(created_users)}",
670
+ "email": f"user{len(created_users)}@test.com",
671
+ }
672
+ user = User(**(defaults | kwargs))
673
+ db_session.add(user)
674
+ await db_session.flush()
675
+ created_users.append(user)
676
+ return user
677
+
678
+ return _create
679
+
680
+ @pytest.fixture
681
+ def mock_external_api(mocker):
682
+ """Mock external API calls."""
683
+ return mocker.patch(
684
+ "app.services.external_api.fetch_data",
685
+ return_value={"status": "ok", "data": []},
686
+ )
687
+ ```
688
+
689
+ Hypothesis Property-Based Testing:
690
+ ```python
691
+ from hypothesis import given, strategies as st
692
+ from hypothesis.extra.pydantic import from_model
693
+
694
+ @given(from_model(UserCreate))
695
+ def test_user_create_validation(user_data: UserCreate):
696
+ """Test that any valid UserCreate can be processed."""
697
+ assert user_data.name
698
+ assert "@" in user_data.email
699
+
700
+ @given(st.lists(st.integers(min_value=0, max_value=100), min_size=1))
701
+ def test_calculate_average(numbers: list[int]):
702
+ """Property: average is always between min and max."""
703
+ avg = calculate_average(numbers)
704
+ assert min(numbers) <= avg <= max(numbers)
705
+ ```
706
+
707
+ ---
708
+
709
+ ## Type Hints Reference
710
+
711
+ ### Modern Type Patterns
712
+
713
+ Generic Classes:
714
+ ```python
715
+ from typing import Generic, TypeVar
716
+
717
+ T = TypeVar("T")
718
+ K = TypeVar("K")
719
+
720
+ class Cache(Generic[K, T]):
721
+ def __init__(self, max_size: int = 100):
722
+ self._cache: dict[K, T] = {}
723
+ self._max_size = max_size
724
+
725
+ def get(self, key: K) -> T | None:
726
+ return self._cache.get(key)
727
+
728
+ def set(self, key: K, value: T) -> None:
729
+ if len(self._cache) >= self._max_size:
730
+ oldest_key = next(iter(self._cache))
731
+ del self._cache[oldest_key]
732
+ self._cache[key] = value
733
+
734
+ # Usage
735
+ user_cache: Cache[int, User] = Cache(max_size=1000)
736
+ ```
737
+
738
+ TypeVar with Bounds:
739
+ ```python
740
+ from typing import TypeVar
741
+ from pydantic import BaseModel
742
+
743
+ ModelT = TypeVar("ModelT", bound=BaseModel)
744
+
745
+ def validate_and_create(model_class: type[ModelT], data: dict) -> ModelT:
746
+ return model_class.model_validate(data)
747
+ ```
748
+
749
+ Self Type:
750
+ ```python
751
+ from typing import Self
752
+
753
+ class Builder:
754
+ def __init__(self):
755
+ self._config: dict = {}
756
+
757
+ def with_option(self, key: str, value: str) -> Self:
758
+ self._config[key] = value
759
+ return self
760
+
761
+ def build(self) -> dict:
762
+ return self._config.copy()
763
+
764
+ # Subclassing works correctly
765
+ class AdvancedBuilder(Builder):
766
+ def with_advanced_option(self, value: int) -> Self:
767
+ self._config["advanced"] = value
768
+ return self
769
+ ```
770
+
771
+ ---
772
+
773
+ ## Context7 Integration
774
+
775
+ Library ID Resolution:
776
+ ```python
777
+ # Step 1: Resolve library ID
778
+ library_id = await mcp__context7__resolve_library_id("fastapi")
779
+ # Returns: /tiangolo/fastapi
780
+
781
+ # Step 2: Get documentation
782
+ docs = await mcp__context7__get_library_docs(
783
+ context7CompatibleLibraryID="/tiangolo/fastapi",
784
+ topic="dependency injection async",
785
+ tokens=5000,
786
+ )
787
+ ```
788
+
789
+ Available Libraries:
790
+ | Library | Context7 ID | Topics |
791
+ |---------|-------------|--------|
792
+ | FastAPI | /tiangolo/fastapi | async, dependencies, security, websockets |
793
+ | Django | /django/django | views, models, forms, admin |
794
+ | Pydantic | /pydantic/pydantic | validation, serialization, settings |
795
+ | SQLAlchemy | /sqlalchemy/sqlalchemy | orm, async, queries, migrations |
796
+ | pytest | /pytest-dev/pytest | fixtures, markers, plugins |
797
+ | numpy | /numpy/numpy | arrays, broadcasting, ufuncs |
798
+ | pandas | /pandas-dev/pandas | dataframe, series, io |
799
+ | polars | /pola-rs/polars | lazy, expressions, streaming |
800
+
801
+ ---
802
+
803
+ Last Updated: 2025-12-07
804
+ Version: 1.0.0