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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. moai_adk/__init__.py +2 -6
  2. moai_adk/__main__.py +136 -21
  3. moai_adk/cli/__init__.py +6 -2
  4. moai_adk/cli/commands/__init__.py +1 -4
  5. moai_adk/cli/commands/analyze.py +116 -0
  6. moai_adk/cli/commands/doctor.py +17 -5
  7. moai_adk/cli/commands/init.py +118 -48
  8. moai_adk/cli/commands/language.py +248 -0
  9. moai_adk/cli/commands/status.py +8 -13
  10. moai_adk/cli/commands/update.py +1978 -149
  11. moai_adk/cli/main.py +3 -2
  12. moai_adk/cli/prompts/init_prompts.py +144 -91
  13. moai_adk/cli/spec_status.py +263 -0
  14. moai_adk/cli/ui/__init__.py +44 -0
  15. moai_adk/cli/ui/progress.py +422 -0
  16. moai_adk/cli/ui/prompts.py +389 -0
  17. moai_adk/cli/ui/theme.py +129 -0
  18. moai_adk/cli/worktree/__init__.py +27 -0
  19. moai_adk/cli/worktree/__main__.py +31 -0
  20. moai_adk/cli/worktree/cli.py +683 -0
  21. moai_adk/cli/worktree/exceptions.py +89 -0
  22. moai_adk/cli/worktree/manager.py +493 -0
  23. moai_adk/cli/worktree/models.py +65 -0
  24. moai_adk/cli/worktree/registry.py +422 -0
  25. moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
  26. moai_adk/core/__init__.py +0 -1
  27. moai_adk/core/analysis/__init__.py +9 -0
  28. moai_adk/core/analysis/session_analyzer.py +400 -0
  29. moai_adk/core/claude_integration.py +393 -0
  30. moai_adk/core/command_helpers.py +270 -0
  31. moai_adk/core/comprehensive_monitoring_system.py +1183 -0
  32. moai_adk/core/config/__init__.py +6 -0
  33. moai_adk/core/config/auto_spec_config.py +340 -0
  34. moai_adk/core/config/migration.py +148 -17
  35. moai_adk/core/config/unified.py +436 -0
  36. moai_adk/core/context_manager.py +273 -0
  37. moai_adk/core/diagnostics/slash_commands.py +0 -1
  38. moai_adk/core/enterprise_features.py +1404 -0
  39. moai_adk/core/error_recovery_system.py +1902 -0
  40. moai_adk/core/event_driven_hook_system.py +1371 -0
  41. moai_adk/core/git/__init__.py +8 -1
  42. moai_adk/core/git/branch.py +0 -1
  43. moai_adk/core/git/branch_manager.py +2 -10
  44. moai_adk/core/git/checkpoint.py +1 -7
  45. moai_adk/core/git/commit.py +0 -1
  46. moai_adk/core/git/conflict_detector.py +413 -0
  47. moai_adk/core/git/event_detector.py +3 -5
  48. moai_adk/core/git/manager.py +91 -2
  49. moai_adk/core/hooks/post_tool_auto_spec_completion.py +901 -0
  50. moai_adk/core/input_validation_middleware.py +1006 -0
  51. moai_adk/core/integration/__init__.py +22 -0
  52. moai_adk/core/integration/engine.py +157 -0
  53. moai_adk/core/integration/integration_tester.py +226 -0
  54. moai_adk/core/integration/models.py +88 -0
  55. moai_adk/core/integration/utils.py +211 -0
  56. moai_adk/core/issue_creator.py +305 -0
  57. moai_adk/core/jit_context_loader.py +956 -0
  58. moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
  59. moai_adk/core/language_config.py +202 -0
  60. moai_adk/core/language_config_resolver.py +572 -0
  61. moai_adk/core/language_validator.py +543 -0
  62. moai_adk/core/mcp/setup.py +116 -0
  63. moai_adk/core/merge/__init__.py +9 -0
  64. moai_adk/core/merge/analyzer.py +481 -0
  65. moai_adk/core/migration/__init__.py +18 -0
  66. moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
  67. moai_adk/core/migration/backup_manager.py +277 -0
  68. moai_adk/core/migration/custom_element_scanner.py +358 -0
  69. moai_adk/core/migration/file_migrator.py +209 -0
  70. moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
  71. moai_adk/core/migration/selective_restorer.py +470 -0
  72. moai_adk/core/migration/template_utils.py +74 -0
  73. moai_adk/core/migration/user_selection_ui.py +338 -0
  74. moai_adk/core/migration/version_detector.py +139 -0
  75. moai_adk/core/migration/version_migrator.py +228 -0
  76. moai_adk/core/performance/__init__.py +6 -0
  77. moai_adk/core/performance/cache_system.py +316 -0
  78. moai_adk/core/performance/parallel_processor.py +116 -0
  79. moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
  80. moai_adk/core/project/__init__.py +0 -1
  81. moai_adk/core/project/backup_utils.py +2 -7
  82. moai_adk/core/project/checker.py +2 -4
  83. moai_adk/core/project/detector.py +189 -22
  84. moai_adk/core/project/initializer.py +218 -27
  85. moai_adk/core/project/phase_executor.py +416 -44
  86. moai_adk/core/project/validator.py +7 -32
  87. moai_adk/core/quality/__init__.py +1 -1
  88. moai_adk/core/quality/trust_checker.py +37 -101
  89. moai_adk/core/quality/validators/__init__.py +1 -1
  90. moai_adk/core/quality/validators/base_validator.py +1 -1
  91. moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
  92. moai_adk/core/robust_json_parser.py +611 -0
  93. moai_adk/core/rollback_manager.py +918 -0
  94. moai_adk/core/session_manager.py +651 -0
  95. moai_adk/core/skill_loading_system.py +579 -0
  96. moai_adk/core/spec/confidence_scoring.py +680 -0
  97. moai_adk/core/spec/ears_template_engine.py +1247 -0
  98. moai_adk/core/spec/quality_validator.py +687 -0
  99. moai_adk/core/spec_status_manager.py +478 -0
  100. moai_adk/core/template/__init__.py +0 -1
  101. moai_adk/core/template/backup.py +82 -17
  102. moai_adk/core/template/config.py +112 -40
  103. moai_adk/core/template/languages.py +0 -1
  104. moai_adk/core/template/merger.py +75 -26
  105. moai_adk/core/template/processor.py +750 -72
  106. moai_adk/core/template_engine.py +310 -0
  107. moai_adk/core/template_variable_synchronizer.py +417 -0
  108. moai_adk/core/unified_permission_manager.py +745 -0
  109. moai_adk/core/user_behavior_analytics.py +851 -0
  110. moai_adk/core/version_sync.py +429 -0
  111. moai_adk/foundation/__init__.py +56 -0
  112. moai_adk/foundation/backend.py +1027 -0
  113. moai_adk/foundation/database.py +1115 -0
  114. moai_adk/foundation/devops.py +1585 -0
  115. moai_adk/foundation/ears.py +431 -0
  116. moai_adk/foundation/frontend.py +870 -0
  117. moai_adk/foundation/git/commit_templates.py +557 -0
  118. moai_adk/foundation/git.py +376 -0
  119. moai_adk/foundation/langs.py +484 -0
  120. moai_adk/foundation/ml_ops.py +1162 -0
  121. moai_adk/foundation/testing.py +1524 -0
  122. moai_adk/foundation/trust/trust_principles.py +676 -0
  123. moai_adk/foundation/trust/validation_checklist.py +1573 -0
  124. moai_adk/project/__init__.py +0 -0
  125. moai_adk/project/configuration.py +1084 -0
  126. moai_adk/project/documentation.py +566 -0
  127. moai_adk/project/schema.py +447 -0
  128. moai_adk/statusline/__init__.py +38 -0
  129. moai_adk/statusline/alfred_detector.py +105 -0
  130. moai_adk/statusline/config.py +376 -0
  131. moai_adk/statusline/enhanced_output_style_detector.py +372 -0
  132. moai_adk/statusline/git_collector.py +190 -0
  133. moai_adk/statusline/main.py +322 -0
  134. moai_adk/statusline/metrics_tracker.py +78 -0
  135. moai_adk/statusline/renderer.py +343 -0
  136. moai_adk/statusline/update_checker.py +129 -0
  137. moai_adk/statusline/version_reader.py +741 -0
  138. moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +670 -0
  139. moai_adk/templates/.claude/agents/moai/builder-agent.md +474 -0
  140. moai_adk/templates/.claude/agents/moai/builder-command.md +1172 -0
  141. moai_adk/templates/.claude/agents/moai/builder-skill.md +666 -0
  142. moai_adk/templates/.claude/agents/moai/expert-backend.md +899 -0
  143. moai_adk/templates/.claude/agents/moai/expert-database.md +777 -0
  144. moai_adk/templates/.claude/agents/moai/expert-debug.md +401 -0
  145. moai_adk/templates/.claude/agents/moai/expert-devops.md +720 -0
  146. moai_adk/templates/.claude/agents/moai/expert-frontend.md +734 -0
  147. moai_adk/templates/.claude/agents/moai/expert-performance.md +657 -0
  148. moai_adk/templates/.claude/agents/moai/expert-security.md +509 -0
  149. moai_adk/templates/.claude/agents/moai/expert-testing.md +733 -0
  150. moai_adk/templates/.claude/agents/moai/expert-uiux.md +1041 -0
  151. moai_adk/templates/.claude/agents/moai/manager-claude-code.md +432 -0
  152. moai_adk/templates/.claude/agents/moai/manager-docs.md +573 -0
  153. moai_adk/templates/.claude/agents/moai/manager-git.md +1020 -0
  154. moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
  155. moai_adk/templates/.claude/agents/moai/manager-quality.md +624 -0
  156. moai_adk/templates/.claude/agents/moai/manager-spec.md +809 -0
  157. moai_adk/templates/.claude/agents/moai/manager-strategy.md +780 -0
  158. moai_adk/templates/.claude/agents/moai/manager-tdd.md +784 -0
  159. moai_adk/templates/.claude/agents/moai/mcp-context7.md +458 -0
  160. moai_adk/templates/.claude/agents/moai/mcp-figma.md +1607 -0
  161. moai_adk/templates/.claude/agents/moai/mcp-notion.md +789 -0
  162. moai_adk/templates/.claude/agents/moai/mcp-playwright.md +469 -0
  163. moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1032 -0
  164. moai_adk/templates/.claude/commands/moai/0-project.md +1384 -0
  165. moai_adk/templates/.claude/commands/moai/1-plan.md +1427 -0
  166. moai_adk/templates/.claude/commands/moai/2-run.md +943 -0
  167. moai_adk/templates/.claude/commands/moai/3-sync.md +1324 -0
  168. moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
  169. moai_adk/templates/.claude/hooks/__init__.py +8 -0
  170. moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
  171. moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
  172. moai_adk/templates/.claude/hooks/{alfred/core → moai/lib}/checkpoint.py +10 -37
  173. moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
  174. moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
  175. moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
  176. moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
  177. moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
  178. moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
  179. moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
  180. moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
  181. moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
  182. moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
  183. moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
  184. moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
  185. moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
  186. moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +1075 -0
  187. moai_adk/templates/.claude/output-styles/moai/r2d2.md +560 -0
  188. moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
  189. moai_adk/templates/.claude/settings.json +78 -50
  190. moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +438 -0
  191. moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
  192. moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +249 -0
  193. moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +406 -0
  194. moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
  195. moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
  196. moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
  197. moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
  198. moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
  199. moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +328 -0
  200. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +313 -283
  201. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +610 -1525
  202. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +423 -619
  203. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +295 -95
  204. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +817 -16
  205. moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
  206. moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
  207. moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
  208. moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
  209. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +532 -17
  210. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +470 -97
  211. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +955 -16
  212. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +651 -18
  213. moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +455 -0
  214. moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
  215. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
  216. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
  217. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +405 -0
  218. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
  219. moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
  220. moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
  221. moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +492 -0
  222. moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
  223. moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
  224. moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
  225. moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
  226. moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
  227. moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
  228. moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
  229. moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
  230. moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +202 -0
  231. moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
  232. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
  233. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
  234. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
  235. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
  236. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
  237. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
  238. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
  239. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
  240. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
  241. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
  242. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
  243. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
  244. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
  245. moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
  246. moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
  247. moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +441 -0
  248. moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
  249. moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
  250. moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +420 -0
  251. moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
  252. moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
  253. moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +359 -0
  254. moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
  255. moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
  256. moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
  257. moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
  258. moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
  259. moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
  260. moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
  261. moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
  262. moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
  263. moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +315 -0
  264. moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
  265. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
  266. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
  267. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
  268. moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
  269. moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
  270. moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +364 -0
  271. moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
  272. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
  273. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
  274. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
  275. moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
  276. moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
  277. moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
  278. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
  279. moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
  280. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +618 -93
  281. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +446 -91
  282. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +612 -0
  283. moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +477 -0
  284. moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
  285. moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
  286. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +346 -94
  287. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +906 -16
  288. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +721 -15
  289. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +352 -91
  290. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +851 -16
  291. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +278 -18
  292. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +344 -86
  293. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +993 -16
  294. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +549 -18
  295. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +617 -96
  296. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +364 -314
  297. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +849 -496
  298. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +731 -243
  299. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +545 -89
  300. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +650 -87
  301. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +341 -93
  302. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +646 -16
  303. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +491 -18
  304. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +463 -89
  305. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +620 -16
  306. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +410 -17
  307. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +486 -112
  308. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +905 -16
  309. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +659 -17
  310. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +333 -92
  311. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1076 -16
  312. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +718 -21
  313. moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +300 -0
  314. moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
  315. moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
  316. moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
  317. moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
  318. moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +319 -0
  319. moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
  320. moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
  321. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
  322. moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
  323. moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
  324. moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
  325. moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
  326. moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
  327. moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
  328. moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
  329. moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
  330. moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
  331. moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +372 -0
  332. moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
  333. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
  334. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
  335. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
  336. moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
  337. moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
  338. moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +402 -0
  339. moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +607 -0
  340. moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +300 -0
  341. moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +537 -0
  342. moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +290 -0
  343. moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +390 -0
  344. moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +398 -0
  345. moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +379 -0
  346. moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +358 -0
  347. moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +467 -0
  348. moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +377 -0
  349. moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +466 -0
  350. moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +482 -0
  351. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +449 -0
  352. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
  353. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
  354. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
  355. moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
  356. moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
  357. moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +390 -0
  358. moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
  359. moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
  360. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
  361. moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
  362. moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
  363. moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +175 -0
  364. moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
  365. moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
  366. moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
  367. moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
  368. moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
  369. moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
  370. moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
  371. moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
  372. moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
  373. moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
  374. moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
  375. moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
  376. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
  377. moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1462 -0
  378. moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
  379. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
  380. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
  381. moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +92 -0
  382. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
  383. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
  384. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
  385. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
  386. moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
  387. moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
  388. moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +534 -0
  389. moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
  390. moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
  391. moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +377 -0
  392. moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
  393. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
  394. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
  395. moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
  396. moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
  397. moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
  398. moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +456 -0
  399. moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
  400. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
  401. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
  402. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
  403. moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
  404. moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
  405. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
  406. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
  407. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
  408. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
  409. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
  410. moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
  411. moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
  412. moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
  413. moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
  414. moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
  415. moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
  416. moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
  417. moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +411 -0
  418. moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
  419. moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
  420. moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
  421. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
  422. moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
  423. moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
  424. moai_adk/templates/.git-hooks/pre-commit +128 -0
  425. moai_adk/templates/.git-hooks/pre-push +365 -0
  426. moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
  427. moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
  428. moai_adk/templates/.github/workflows/spec-issue-sync.yml +206 -36
  429. moai_adk/templates/.gitignore +194 -13
  430. moai_adk/templates/.mcp.json +31 -0
  431. moai_adk/templates/.moai/config/config.yaml +58 -0
  432. moai_adk/templates/.moai/config/questions/_schema.yaml +151 -0
  433. moai_adk/templates/.moai/config/questions/tab0-init.yaml +251 -0
  434. moai_adk/templates/.moai/config/questions/tab1-user.yaml +108 -0
  435. moai_adk/templates/.moai/config/questions/tab2-project.yaml +81 -0
  436. moai_adk/templates/.moai/config/questions/tab3-git.yaml +634 -0
  437. moai_adk/templates/.moai/config/questions/tab4-quality.yaml +170 -0
  438. moai_adk/templates/.moai/config/questions/tab5-system.yaml +87 -0
  439. moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -0
  440. moai_adk/templates/.moai/config/sections/language.yaml +11 -0
  441. moai_adk/templates/.moai/config/sections/project.yaml +13 -0
  442. moai_adk/templates/.moai/config/sections/quality.yaml +17 -0
  443. moai_adk/templates/.moai/config/sections/system.yaml +14 -0
  444. moai_adk/templates/.moai/config/sections/user.yaml +5 -0
  445. moai_adk/templates/.moai/config/statusline-config.yaml +92 -0
  446. moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
  447. moai_adk/templates/CLAUDE.md +571 -244
  448. moai_adk/utils/__init__.py +24 -2
  449. moai_adk/utils/banner.py +9 -13
  450. moai_adk/utils/common.py +294 -0
  451. moai_adk/utils/link_validator.py +241 -0
  452. moai_adk/utils/logger.py +4 -9
  453. moai_adk/utils/safe_file_reader.py +206 -0
  454. moai_adk/utils/timeout.py +160 -0
  455. moai_adk/utils/toon_utils.py +256 -0
  456. moai_adk/version.py +22 -0
  457. moai_adk-0.34.0.dist-info/METADATA +2999 -0
  458. moai_adk-0.34.0.dist-info/RECORD +463 -0
  459. {moai_adk-0.8.0.dist-info → moai_adk-0.34.0.dist-info}/WHEEL +1 -1
  460. {moai_adk-0.8.0.dist-info → moai_adk-0.34.0.dist-info}/entry_points.txt +1 -0
  461. moai_adk/cli/commands/backup.py +0 -80
  462. moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -293
  463. moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -196
  464. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -207
  465. moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -375
  466. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -343
  467. moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -246
  468. moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -320
  469. moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -837
  470. moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -272
  471. moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -265
  472. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -311
  473. moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -352
  474. moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1184
  475. moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -665
  476. moai_adk/templates/.claude/commands/alfred/2-run.md +0 -488
  477. moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -623
  478. moai_adk/templates/.claude/hooks/alfred/HOOK_SCHEMA_VALIDATION.md +0 -313
  479. moai_adk/templates/.claude/hooks/alfred/README.md +0 -230
  480. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -174
  481. moai_adk/templates/.claude/hooks/alfred/core/__init__.py +0 -170
  482. moai_adk/templates/.claude/hooks/alfred/core/context.py +0 -67
  483. moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -416
  484. moai_adk/templates/.claude/hooks/alfred/core/tags.py +0 -198
  485. moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +0 -21
  486. moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +0 -25
  487. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +0 -161
  488. moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +0 -90
  489. moai_adk/templates/.claude/hooks/alfred/handlers/user.py +0 -42
  490. moai_adk/templates/.claude/hooks/alfred/test_hook_output.py +0 -175
  491. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -640
  492. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -696
  493. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -474
  494. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
  495. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
  496. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
  497. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
  498. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
  499. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
  500. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
  501. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
  502. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
  503. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
  504. moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
  505. moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
  506. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
  507. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
  508. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
  509. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
  510. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
  511. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
  512. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
  513. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
  514. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
  515. moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
  516. moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
  517. moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
  518. moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
  519. moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
  520. moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
  521. moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
  522. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
  523. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
  524. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
  525. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
  526. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
  527. moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
  528. moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
  529. moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
  530. moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
  531. moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
  532. moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
  533. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
  534. moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
  535. moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
  536. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
  537. moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
  538. moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
  539. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
  540. moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
  541. moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
  542. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
  543. moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
  544. moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
  545. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
  546. moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
  547. moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
  548. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
  549. moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
  550. moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
  551. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
  552. moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
  553. moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
  554. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
  555. moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
  556. moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
  557. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
  558. moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
  559. moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
  560. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
  561. moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
  562. moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
  563. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
  564. moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
  565. moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
  566. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -113
  567. moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
  568. moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
  569. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
  570. moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
  571. moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
  572. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
  573. moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
  574. moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
  575. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
  576. moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
  577. moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
  578. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
  579. moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
  580. moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
  581. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
  582. moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
  583. moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
  584. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
  585. moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
  586. moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
  587. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
  588. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
  589. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
  590. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
  591. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
  592. moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
  593. moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
  594. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
  595. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
  596. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
  597. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
  598. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
  599. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
  600. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
  601. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
  602. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
  603. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
  604. moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
  605. moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
  606. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
  607. moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
  608. moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
  609. moai_adk/templates/.claude/skills/moai-skill-factory/CHECKLIST.md +0 -482
  610. moai_adk/templates/.claude/skills/moai-skill-factory/EXAMPLES.md +0 -278
  611. moai_adk/templates/.claude/skills/moai-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
  612. moai_adk/templates/.claude/skills/moai-skill-factory/METADATA.md +0 -477
  613. moai_adk/templates/.claude/skills/moai-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
  614. moai_adk/templates/.claude/skills/moai-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
  615. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
  616. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
  617. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +0 -271
  618. moai_adk/templates/.claude/skills/moai-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
  619. moai_adk/templates/.claude/skills/moai-skill-factory/STRUCTURE.md +0 -583
  620. moai_adk/templates/.claude/skills/moai-skill-factory/WEB-RESEARCH.md +0 -526
  621. moai_adk/templates/.claude/skills/moai-skill-factory/reference.md +0 -465
  622. moai_adk/templates/.claude/skills/moai-skill-factory/scripts/generate-structure.sh +0 -328
  623. moai_adk/templates/.claude/skills/moai-skill-factory/scripts/validate-skill.sh +0 -312
  624. moai_adk/templates/.claude/skills/moai-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
  625. moai_adk/templates/.claude/skills/moai-skill-factory/templates/examples-template.md +0 -285
  626. moai_adk/templates/.claude/skills/moai-skill-factory/templates/reference-template.md +0 -278
  627. moai_adk/templates/.claude/skills/moai-skill-factory/templates/scripts-template.sh +0 -303
  628. moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +0 -137
  629. moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +0 -218
  630. moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +0 -161
  631. moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +0 -541
  632. moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +0 -622
  633. moai_adk/templates/.github/ISSUE_TEMPLATE/spec.yml +0 -176
  634. moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -69
  635. moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -256
  636. moai_adk/templates/.moai/config.json +0 -96
  637. moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md +0 -208
  638. moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md +0 -369
  639. moai_adk/templates/.moai/memory/CLAUDE-RULES.md +0 -539
  640. moai_adk/templates/.moai/memory/CONFIG-SCHEMA.md +0 -444
  641. moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md +0 -344
  642. moai_adk/templates/.moai/memory/GITFLOW-PROTECTION-POLICY.md +0 -220
  643. moai_adk/templates/.moai/memory/SKILLS-DESCRIPTION-POLICY.md +0 -218
  644. moai_adk/templates/.moai/memory/SPEC-METADATA.md +0 -356
  645. moai_adk/templates/.moai/memory/config-schema.md +0 -444
  646. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -220
  647. moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
  648. moai_adk/templates/.moai/project/product.md +0 -161
  649. moai_adk/templates/.moai/project/structure.md +0 -156
  650. moai_adk/templates/.moai/project/tech.md +0 -227
  651. moai_adk/templates/__init__.py +0 -2
  652. moai_adk-0.8.0.dist-info/METADATA +0 -1722
  653. moai_adk-0.8.0.dist-info/RECORD +0 -282
  654. {moai_adk-0.8.0.dist-info → moai_adk-0.34.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,431 +1,481 @@
1
1
  ---
2
-
3
2
  name: moai-lang-python
4
- version: 2.0.0
5
- created: 2025-10-22
6
- updated: 2025-10-22
3
+ description: Python 3.13+ development specialist covering FastAPI, Django, async patterns, data science, testing with pytest, and modern Python features. Use when developing Python APIs, web applications, data pipelines, or writing tests.
4
+ version: 1.0.0
5
+ updated: 2025-12-07
7
6
  status: active
8
- description: Python 3.13+ best practices with pytest 8.4.2, mypy 1.8.0, ruff 0.13.1, and uv 0.9.3. Use when writing or reviewing Python code in project workflows.
9
- keywords: [python, testing, pytest, mypy, ruff, uv, async, fastapi, pydantic]
10
- allowed-tools:
11
- - Read
12
- - Bash
7
+ allowed-tools: Read, Grep, Glob, Bash, mcp__context7__resolve-library-id, mcp__context7__get-library-docs
13
8
  ---
14
9
 
15
- # Python 3.13 Expert Skill
16
-
17
- ## Skill Metadata
10
+ ## Quick Reference (30 seconds)
18
11
 
19
- | Field | Value |
20
- | ----- | ----- |
21
- | **Skill Name** | moai-lang-python |
22
- | **Version** | 2.0.0 (2025-10-22) |
23
- | **Python Support** | 3.13.1 (latest), 3.12.7 (LTS), 3.11.10 (maintenance) |
24
- | **Allowed tools** | Read (read_file), Bash (terminal) |
25
- | **Auto-load** | On demand when language keywords detected |
26
- | **Trigger cues** | `.py` files, Python frameworks, TDD discussions, async patterns |
27
- | **Tier** | Language / 23 (comprehensive coverage) |
12
+ Python 3.13+ Development Specialist - FastAPI, Django, async patterns, pytest, and modern Python features.
28
13
 
29
- ---
14
+ Auto-Triggers: `.py` files, `pyproject.toml`, `requirements.txt`, `pytest.ini`, FastAPI/Django discussions
30
15
 
31
- ## What It Does
16
+ Core Capabilities:
17
+ - Python 3.13 Features: JIT compiler (PEP 744), GIL-free mode (PEP 703), pattern matching
18
+ - Web Frameworks: FastAPI 0.115+, Django 5.2 LTS
19
+ - Data Validation: Pydantic v2.9 with model_validate patterns
20
+ - ORM: SQLAlchemy 2.0 async patterns
21
+ - Testing: pytest with fixtures, async testing, parametrize
22
+ - Package Management: poetry, uv, pip with pyproject.toml
23
+ - Type Hints: Protocol, TypeVar, ParamSpec, modern typing patterns
24
+ - Async: asyncio, async generators, task groups
25
+ - Data Science: numpy, pandas, polars basics
32
26
 
33
- Provides **Python 3.13+ expertise** for modern TDD development, including:
27
+ ### Quick Patterns
34
28
 
35
- - ✅ **Testing Framework**: pytest 8.4.2 (fixtures, asyncio, parametrization)
36
- - ✅ **Code Quality**: ruff 0.13.1 (unified linter + formatter, replaces black/pylint)
37
- - **Type Safety**: mypy 1.8.0 + Pydantic 2.7.0 (static + runtime validation)
38
- - **Package Management**: uv 0.9.3 (10x faster than pip)
39
- - ✅ **Python 3.13 Features**: PEP 695 (type params), PEP 701 (f-strings), PEP 698 (@override)
40
- - ✅ **Async/Await**: asyncio.TaskGroup, context variables, concurrent patterns
41
- - ✅ **Security**: Secrets module, secure hashing, SQLAlchemy 2.0.28
29
+ FastAPI Endpoint:
30
+ ```python
31
+ from fastapi import FastAPI, Depends
32
+ from pydantic import BaseModel
42
33
 
43
- ---
34
+ app = FastAPI()
44
35
 
45
- ## When to Use
36
+ class UserCreate(BaseModel):
37
+ name: str
38
+ email: str
46
39
 
47
- **Automatic triggers**:
48
- - Python code discussions, `.py` files, framework guidance
49
- - "Writing Python tests", "How to use pytest", "Python type hints"
50
- - Python SPEC implementation (`/alfred:2-run`)
51
- - Async pattern requests
40
+ @app.post("/users/")
41
+ async def create_user(user: UserCreate) -> User:
42
+ return await UserService.create(user)
43
+ ```
52
44
 
53
- **Manual invocation**:
54
- - Review Python code for TRUST 5 compliance
55
- - Design Python microservices (FastAPI 0.115.0 recommended)
56
- - Upgrade from Python 3.12 to 3.13
57
- - Refactor async code to use TaskGroup
45
+ Pydantic v2.9 Validation:
46
+ ```python
47
+ from pydantic import BaseModel, ConfigDict
58
48
 
59
- ---
49
+ class User(BaseModel):
50
+ model_config = ConfigDict(from_attributes=True, str_strip_whitespace=True)
60
51
 
61
- ## How It Works (Best Practices)
52
+ id: int
53
+ name: str
54
+ email: str
62
55
 
63
- ### 1. TDD Framework (pytest 8.4.2)
56
+ user = User.model_validate(orm_obj) # from ORM object
57
+ user = User.model_validate_json(json_data) # from JSON
58
+ ```
64
59
 
60
+ pytest Async Test:
65
61
  ```python
66
- # Test discovery & fixtures
67
62
  import pytest
68
- from src.calculator import add
69
-
70
- def test_add_positive_numbers():
71
- """Verify addition of positive integers."""
72
- assert add(2, 3) == 5
73
63
 
74
64
  @pytest.mark.asyncio
75
- async def test_async_operation():
76
- """Test async functions with pytest-asyncio."""
77
- result = await async_fetch_data()
78
- assert result is not None
65
+ async def test_create_user(async_client):
66
+ response = await async_client.post("/users/", json={"name": "Test"})
67
+ assert response.status_code == 201
79
68
  ```
80
69
 
81
- **Key Points**:
82
- - ✅ Use pytest 8.4.2+ (not unittest)
83
- - ✅ One assertion per test (clarity)
84
- - ✅ Fixtures for setup/teardown
85
- - ✅ `pytest.mark.asyncio` for async tests
86
- - ✅ `pytest-mock` for mocking (not mock.patch)
87
- - ✅ Coverage ≥85% enforced by quality gate
70
+ ---
88
71
 
89
- **CLI Commands**:
90
- ```bash
91
- pytest # Run all tests
92
- pytest -v # Verbose output
93
- pytest --cov=src --cov-report=term # Coverage report (≥85% required)
94
- pytest -k "pattern" # Run matching tests
95
- pytest -m asyncio # Run async tests only
96
- ```
72
+ ## Implementation Guide (5 minutes)
97
73
 
98
- ### 2. Code Quality (ruff 0.13.1 NEW STANDARD)
74
+ ### Python 3.13 New Features
99
75
 
100
- **⚠️ BREAKING CHANGE**: Ruff 0.13.1 replaces black + pylint + isort. Update workflows:
76
+ JIT Compiler (PEP 744):
77
+ - Experimental feature, disabled by default
78
+ - Enable: `PYTHON_JIT=1` environment variable
79
+ - Build option: `--enable-experimental-jit`
80
+ - Provides performance improvements for CPU-bound code
81
+ - Copy-and-patch JIT that translates specialized bytecode to machine code
101
82
 
102
- ```yaml
103
- # OLD (deprecated)
104
- - black . # Format
105
- - pylint src/ # Lint
106
- - isort . # Import sort
83
+ GIL-Free Mode (PEP 703):
84
+ - Experimental free-threaded build (python3.13t)
85
+ - Allows true parallel thread execution
86
+ - Available in official Windows/macOS installers
87
+ - Best for: CPU-intensive multi-threaded applications
88
+ - Not recommended for production yet
107
89
 
108
- # NEW (ruff 0.13.1)
109
- - ruff check . --fix # Lint + fix
110
- - ruff format . # Format (replaces black)
90
+ Pattern Matching (match/case):
91
+ ```python
92
+ def process_response(response: dict) -> str:
93
+ match response:
94
+ case {"status": "ok", "data": data}:
95
+ return f"Success: {data}"
96
+ case {"status": "error", "message": msg}:
97
+ return f"Error: {msg}"
98
+ case {"status": status} if status in ("pending", "processing"):
99
+ return "In progress..."
100
+ case _:
101
+ return "Unknown response"
111
102
  ```
112
103
 
113
- **Configuration** (`pyproject.toml`):
114
- ```toml
115
- [tool.ruff]
116
- line-length = 100
117
- target-version = "py313"
104
+ ### FastAPI 0.115+ Patterns
118
105
 
119
- [tool.ruff.lint]
120
- select = ["E", "F", "W"] # Errors, formatting, warnings
121
- extend-select = ["I"] # Import sorting (replaces isort)
106
+ Async Dependency Injection:
107
+ ```python
108
+ from fastapi import FastAPI, Depends
109
+ from sqlalchemy.ext.asyncio import AsyncSession
110
+ from contextlib import asynccontextmanager
111
+
112
+ @asynccontextmanager
113
+ async def lifespan(app: FastAPI):
114
+ # Startup
115
+ await init_db()
116
+ yield
117
+ # Shutdown
118
+ await cleanup()
119
+
120
+ app = FastAPI(lifespan=lifespan)
121
+
122
+ async def get_db() -> AsyncGenerator[AsyncSession, None]:
123
+ async with async_session() as session:
124
+ yield session
125
+
126
+ @app.get("/users/{user_id}")
127
+ async def get_user(
128
+ user_id: int,
129
+ db: AsyncSession = Depends(get_db)
130
+ ) -> UserResponse:
131
+ user = await get_user_by_id(db, user_id)
132
+ return UserResponse.model_validate(user)
122
133
  ```
123
134
 
124
- **CLI Commands**:
125
- ```bash
126
- ruff check . # Lint all files
127
- ruff format . # Format with auto-fix
128
- ruff check --show-fixes . # Show what would be fixed
129
- ruff check --select E501 . # Check specific rule (line length)
130
- ```
135
+ Class-Based Dependencies:
136
+ ```python
137
+ from fastapi import Depends
138
+
139
+ class Paginator:
140
+ def __init__(self, page: int = 1, size: int = 20):
141
+ self.page = max(1, page)
142
+ self.size = min(100, max(1, size))
143
+ self.offset = (self.page - 1) * self.size
131
144
 
132
- ### 3. Type Safety (mypy 1.8.0 + Pydantic 2.7.0)
145
+ @app.get("/items/")
146
+ async def list_items(pagination: Paginator = Depends()) -> list[Item]:
147
+ return await Item.get_page(pagination.offset, pagination.size)
148
+ ```
133
149
 
134
- **Static Type Checking** (mypy):
150
+ ### Django 5.2 LTS Features
135
151
 
152
+ Composite Primary Keys:
136
153
  ```python
137
- from typing import override
154
+ from django.db import models
138
155
 
139
- class Parent:
140
- def method(self, x: int) -> str: ...
156
+ class OrderItem(models.Model):
157
+ order = models.ForeignKey(Order, on_delete=models.CASCADE)
158
+ product = models.ForeignKey(Product, on_delete=models.CASCADE)
159
+ quantity = models.IntegerField()
141
160
 
142
- class Child(Parent):
143
- @override # NEW in Python 3.13 — mypy validates this
144
- def method(self, x: int) -> str:
145
- return str(x)
161
+ class Meta:
162
+ pk = models.CompositePrimaryKey("order", "product")
146
163
  ```
147
164
 
148
- **Runtime Validation** (Pydantic 2.7.0):
149
-
165
+ URL Reverse with Query Parameters:
150
166
  ```python
151
- from pydantic import BaseModel, Field
167
+ from django.urls import reverse
152
168
 
153
- class User(BaseModel):
154
- id: int = Field(gt=0) # Must be > 0
155
- name: str = Field(min_length=1)
156
- email: str # Auto-validated as email
169
+ url = reverse("search", query={"q": "django", "page": 1}, fragment="results")
170
+ # /search/?q=django&page=1#results
157
171
  ```
158
172
 
159
- **CLI Commands**:
173
+ Automatic Model Imports in Shell:
160
174
  ```bash
161
- mypy . # Run type checker
162
- mypy --strict . # Strict mode (recommended)
163
- mypy --show-column-numbers . # Precise error locations
175
+ python manage.py shell
176
+ # Models from all installed apps are automatically imported
164
177
  ```
165
178
 
166
- ### 4. Package Management (uv 0.9.3)
179
+ ### Pydantic v2.9 Deep Patterns
167
180
 
168
- **Why uv?**: 10x faster than pip, integrated with ruff + pytest
181
+ Reusable Validators with Annotated:
182
+ ```python
183
+ from typing import Annotated
184
+ from pydantic import AfterValidator, BaseModel
169
185
 
170
- ```bash
171
- # Create virtual environment
172
- uv venv # Create .venv/
173
- source .venv/bin/activate # Activate
186
+ def validate_positive(v: int) -> int:
187
+ if v <= 0:
188
+ raise ValueError("Must be positive")
189
+ return v
174
190
 
175
- # Install dependencies
176
- uv add pytest ruff mypy # Add to pyproject.toml
177
- uv add --dev pytest-asyncio # Add as dev dependency
178
- uv sync # Install all (from lock file)
191
+ PositiveInt = Annotated[int, AfterValidator(validate_positive)]
179
192
 
180
- # Publish
181
- uv publish # Push to PyPI
193
+ class Product(BaseModel):
194
+ price: PositiveInt
195
+ quantity: PositiveInt
182
196
  ```
183
197
 
184
- **pyproject.toml** (uv config):
185
- ```toml
186
- [project]
187
- name = "my-project"
188
- version = "2.0.0"
189
- requires-python = ">=3.13"
190
-
191
- [project.optional-dependencies]
192
- dev = ["pytest>=8.4.2", "ruff>=0.13.1", "mypy>=1.8.0"]
193
-
194
- [build-system]
195
- requires = ["hatchling"]
196
- build-backend = "hatchling.build"
198
+ Model Validator for Cross-Field Validation:
199
+ ```python
200
+ from pydantic import BaseModel, model_validator
201
+ from typing import Self
202
+
203
+ class DateRange(BaseModel):
204
+ start_date: date
205
+ end_date: date
206
+
207
+ @model_validator(mode="after")
208
+ def validate_dates(self) -> Self:
209
+ if self.end_date < self.start_date:
210
+ raise ValueError("end_date must be after start_date")
211
+ return self
197
212
  ```
198
213
 
199
- ### 5. Async Patterns (Python 3.13)
200
-
201
- **TaskGroup** (cleaner than `asyncio.gather`):
202
-
214
+ ConfigDict Best Practices:
203
215
  ```python
204
- import asyncio
205
-
206
- async def main():
207
- async with asyncio.TaskGroup() as tg:
208
- task1 = tg.create_task(fetch_user(1))
209
- task2 = tg.create_task(fetch_posts(1))
210
- # Tasks run concurrently
211
- # Exceptions propagate automatically (no need for gather)
212
-
213
- asyncio.run(main())
216
+ from pydantic import BaseModel, ConfigDict
217
+
218
+ class BaseSchema(BaseModel):
219
+ model_config = ConfigDict(
220
+ from_attributes=True, # ORM object support
221
+ populate_by_name=True, # Allow aliases
222
+ extra="forbid", # Fail on unknown fields
223
+ str_strip_whitespace=True, # Clean strings
224
+ )
214
225
  ```
215
226
 
216
- **Context Variables** (thread-safe in async):
227
+ ### SQLAlchemy 2.0 Async Patterns
217
228
 
229
+ Engine and Session Setup:
218
230
  ```python
219
- from contextvars import ContextVar
220
-
221
- request_id = ContextVar('request_id', default=None)
222
-
223
- async def handle_request(req_id):
224
- token = request_id.set(req_id)
225
- # All spawned tasks inherit this context var
226
- await process_async()
231
+ from sqlalchemy.ext.asyncio import (
232
+ create_async_engine,
233
+ async_sessionmaker,
234
+ AsyncSession,
235
+ )
236
+
237
+ engine = create_async_engine(
238
+ "postgresql+asyncpg://user:pass@localhost/db",
239
+ pool_pre_ping=True,
240
+ echo=True,
241
+ )
242
+
243
+ async_session = async_sessionmaker(
244
+ engine,
245
+ class_=AsyncSession,
246
+ expire_on_commit=False, # Prevent detached instance errors
247
+ )
227
248
  ```
228
249
 
229
- ### 6. Security Best Practices
230
-
231
- **Secrets Module** (token generation):
250
+ Repository Pattern:
232
251
  ```python
233
- import secrets
234
-
235
- api_key = secrets.token_urlsafe(32) # Safe random tokens
236
- nonce = secrets.token_bytes(16) # Cryptographic nonce
252
+ from sqlalchemy import select
253
+ from sqlalchemy.ext.asyncio import AsyncSession
254
+
255
+ class UserRepository:
256
+ def __init__(self, session: AsyncSession):
257
+ self.session = session
258
+
259
+ async def get_by_id(self, user_id: int) -> User | None:
260
+ result = await self.session.execute(
261
+ select(User).where(User.id == user_id)
262
+ )
263
+ return result.scalar_one_or_none()
264
+
265
+ async def create(self, user: UserCreate) -> User:
266
+ db_user = User(**user.model_dump())
267
+ self.session.add(db_user)
268
+ await self.session.commit()
269
+ await self.session.refresh(db_user)
270
+ return db_user
237
271
  ```
238
272
 
239
- **Secure Hashing** (sha256, not md5):
273
+ Streaming Large Results:
240
274
  ```python
241
- import hashlib
242
-
243
- # SECURE
244
- hash_obj = hashlib.sha256(b"password")
245
-
246
- # ❌ INSECURE (removed in Python 3.13)
247
- hash_obj = hashlib.md5(b"password") # ValueError!
275
+ async def stream_users(db: AsyncSession):
276
+ result = await db.stream(select(User))
277
+ async for user in result.scalars():
278
+ yield user
248
279
  ```
249
280
 
250
- ---
251
-
252
- ## Python 3.13 New Features
253
-
254
- ### PEP 695 — Type Parameter Syntax
281
+ ### pytest Advanced Patterns
255
282
 
283
+ Async Fixtures with pytest-asyncio:
256
284
  ```python
257
- # OLD (3.12)
258
- from typing import TypeVar, Generic
259
- T = TypeVar('T')
260
- class Stack(Generic[T]):
261
- def push(self, item: T) -> None: ...
262
-
263
- # NEW (3.13)
264
- class Stack[T]:
265
- def push(self, item: T) -> None: ...
285
+ import pytest
286
+ import pytest_asyncio
287
+ from httpx import AsyncClient
288
+
289
+ @pytest_asyncio.fixture
290
+ async def async_client(app) -> AsyncGenerator[AsyncClient, None]:
291
+ async with AsyncClient(app=app, base_url="http://test") as client:
292
+ yield client
293
+
294
+ @pytest_asyncio.fixture
295
+ async def db_session() -> AsyncGenerator[AsyncSession, None]:
296
+ async with async_session() as session:
297
+ async with session.begin():
298
+ yield session
299
+ await session.rollback()
266
300
  ```
267
301
 
268
- ### PEP 701 — Improved F-Strings
269
-
302
+ Parametrized Tests:
270
303
  ```python
271
- # NEW: Nested f-strings, arbitrary expressions
272
- user = {"name": "Alice", "age": 30}
273
- print(f"User: {user['name']}, Age: {user['age']}") # Works!
274
-
275
- # Nested f-strings
276
- x = 10
277
- print(f"Result: {f'{x:>10}'}") # Works in 3.13!
304
+ @pytest.mark.parametrize(
305
+ "input_data,expected_status",
306
+ [
307
+ ({"name": "Valid"}, 201),
308
+ ({"name": ""}, 422),
309
+ ({}, 422),
310
+ ],
311
+ ids=["valid", "empty_name", "missing_name"],
312
+ )
313
+ async def test_create_user(async_client, input_data, expected_status):
314
+ response = await async_client.post("/users/", json=input_data)
315
+ assert response.status_code == expected_status
278
316
  ```
279
317
 
280
- ### PEP 698 — Override Decorator
281
-
318
+ Fixture Factories:
282
319
  ```python
283
- from typing import override
284
-
285
- class Parent:
286
- def method(self) -> None: ...
287
-
288
- class Child(Parent):
289
- @override # mypy checks this is actually overriding
290
- def method(self) -> None: ...
320
+ @pytest.fixture
321
+ def user_factory():
322
+ async def _create_user(db: AsyncSession, **kwargs) -> User:
323
+ defaults = {"name": "Test User", "email": "test@example.com"}
324
+ user = User(**(defaults | kwargs))
325
+ db.add(user)
326
+ await db.commit()
327
+ return user
328
+ return _create_user
291
329
  ```
292
330
 
293
- ---
294
-
295
- ## Example Workflow
331
+ ### Type Hints Modern Patterns
296
332
 
297
- **Setup** (uv + Python 3.13):
298
- ```bash
299
- uv venv --python 3.13 # Create venv with Python 3.13
300
- source .venv/bin/activate
301
- uv add pytest ruff mypy fastapi pydantic
302
- ```
333
+ Protocol for Structural Typing:
334
+ ```python
335
+ from typing import Protocol, runtime_checkable
303
336
 
304
- **TDD Loop** (pytest):
305
- ```bash
306
- pytest # RED: Watch tests fail
307
- # [implement code]
308
- pytest # GREEN: Watch tests pass
309
- ruff check --fix . # REFACTOR: Fix code quality
337
+ @runtime_checkable
338
+ class Repository(Protocol[T]):
339
+ async def get(self, id: int) -> T | None: ...
340
+ async def create(self, data: dict) -> T: ...
341
+ async def delete(self, id: int) -> bool: ...
310
342
  ```
311
343
 
312
- **Quality Gate** (before commit):
313
- ```bash
314
- pytest --cov=src --cov-report=term # Coverage ≥85%?
315
- ruff check . # Lint pass?
316
- mypy --strict . # Type check pass?
344
+ ParamSpec for Decorators:
345
+ ```python
346
+ from typing import ParamSpec, TypeVar, Callable
347
+ from functools import wraps
348
+
349
+ P = ParamSpec("P")
350
+ R = TypeVar("R")
351
+
352
+ def retry(times: int = 3) -> Callable[[Callable[P, R]], Callable[P, R]]:
353
+ def decorator(func: Callable[P, R]) -> Callable[P, R]:
354
+ @wraps(func)
355
+ async def wrapper(*args: P.args, **kwargs: P.kwargs) -> R:
356
+ for attempt in range(times):
357
+ try:
358
+ return await func(*args, **kwargs)
359
+ except Exception:
360
+ if attempt == times - 1:
361
+ raise
362
+ return wrapper
363
+ return decorator
317
364
  ```
318
365
 
319
- ---
366
+ ### Package Management
320
367
 
321
- ## Tool Version Matrix (2025-10-22)
368
+ pyproject.toml (Poetry):
369
+ ```toml
370
+ [tool.poetry]
371
+ name = "my-project"
372
+ version = "1.0.0"
373
+ python = "^3.13"
322
374
 
323
- | Tool | Version | Purpose | Status |
324
- |------|---------|---------|--------|
325
- | **Python** | 3.13.1 | Runtime | ✅ Latest |
326
- | **pytest** | 8.4.2 | Testing | ✅ Current |
327
- | **ruff** | 0.13.1 | Lint/Format | ✅ New standard |
328
- | **mypy** | 1.8.0 | Type checking | ✅ Current |
329
- | **uv** | 0.9.3 | Package manager | ✅ Recommended |
330
- | **FastAPI** | 0.115.0 | Web framework | ✅ Latest |
331
- | **Pydantic** | 2.7.0 | Validation | ✅ Latest |
332
- | **SQLAlchemy** | 2.0.28 | ORM | ✅ Latest |
375
+ [tool.poetry.dependencies]
376
+ fastapi = "^0.115.0"
377
+ pydantic = "^2.9.0"
378
+ sqlalchemy = {extras = ["asyncio"], version = "^2.0.0"}
333
379
 
334
- ---
380
+ [tool.poetry.group.dev.dependencies]
381
+ pytest = "^8.0"
382
+ pytest-asyncio = "^0.24"
383
+ ruff = "^0.8"
335
384
 
336
- ## Inputs
385
+ [tool.ruff]
386
+ line-length = 100
387
+ target-version = "py313"
337
388
 
338
- - Python source directories (e.g., `src/`, `app/`)
339
- - Configuration files (`pyproject.toml`, `pytest.ini`)
340
- - Test suites and sample data
341
- - Existing CI/CD workflows
389
+ [tool.pytest.ini_options]
390
+ asyncio_mode = "auto"
391
+ ```
342
392
 
343
- ## Outputs
393
+ uv (Fast Package Manager):
394
+ ```bash
395
+ # Install uv
396
+ curl -LsSf https://astral.sh/uv/install.sh | sh
344
397
 
345
- - Test/lint execution plan for Python 3.13
346
- - Code review checklist (TRUST 5 principles)
347
- - Migration guide (3.12 → 3.13)
348
- - Performance optimization recommendations
398
+ # Create virtual environment
399
+ uv venv
349
400
 
350
- ## Failure Modes
401
+ # Install dependencies
402
+ uv pip install -r requirements.txt
351
403
 
352
- - Python 3.13 not installed → Recommend `uv venv --python 3.13`
353
- - Dependencies missing → Run `uv sync`
354
- - ❌ Tests fail → Use `debug-helper` agent for triage
404
+ # Add dependency
405
+ uv add fastapi
406
+ ```
355
407
 
356
408
  ---
357
409
 
358
- ## Inputs
359
-
360
- - Language-specific source directories (e.g. `src/`, `app/`).
361
- - Language-specific build/test configuration files (e.g. `pyproject.toml`).
362
- - Relevant test suites and sample data.
363
-
364
- ## Outputs
410
+ ## Advanced Implementation (10+ minutes)
365
411
 
366
- - Test/lint execution plan tailored to Python 3.13+.
367
- - TRUST 5 review checkpoints (coverage, linting, types, security, tags).
368
- - Migration path from older Python versions.
412
+ For comprehensive coverage including:
413
+ - Production deployment patterns (Docker, Kubernetes)
414
+ - Advanced async patterns (task groups, semaphores)
415
+ - Data science integration (numpy, pandas, polars)
416
+ - Performance optimization techniques
417
+ - Security best practices (OWASP patterns)
418
+ - CI/CD integration patterns
369
419
 
370
- ## Failure Modes
420
+ See:
421
+ - [reference.md](reference.md) - Complete reference documentation
422
+ - [examples.md](examples.md) - Production-ready code examples
371
423
 
372
- - When Python 3.13 runtime is not installed.
373
- - When project dependencies are not in pyproject.toml.
374
- - When test coverage falls below 85%.
424
+ ---
375
425
 
376
- ## Dependencies
426
+ ## Context7 Library Mappings
377
427
 
378
- - Access to the project file is required using the Read/Bash tools.
379
- - Integration with `moai-foundation-langs` for language detection.
380
- - Integration with `moai-foundation-trust` for quality gate enforcement.
428
+ ```
429
+ /tiangolo/fastapi - FastAPI async web framework
430
+ /django/django - Django web framework
431
+ /pydantic/pydantic - Data validation with type annotations
432
+ /sqlalchemy/sqlalchemy - SQL toolkit and ORM
433
+ /pytest-dev/pytest - Testing framework
434
+ /numpy/numpy - Numerical computing
435
+ /pandas-dev/pandas - Data analysis library
436
+ /pola-rs/polars - Fast DataFrame library
437
+ ```
381
438
 
382
439
  ---
383
440
 
384
- ## References (Latest Documentation)
441
+ ## Works Well With
385
442
 
386
- - **Python 3.13**: https://docs.python.org/3.13/ (accessed 2025-10-22)
387
- - **pytest 8.4.2**: https://docs.pytest.org/en/stable/ (accessed 2025-10-22)
388
- - **ruff 0.13.1**: https://docs.astral.sh/ruff/ (accessed 2025-10-22)
389
- - **mypy 1.8.0**: https://mypy.readthedocs.io/ (accessed 2025-10-22)
390
- - **uv 0.9.3**: https://docs.astral.sh/uv/ (accessed 2025-10-22)
391
- - **FastAPI 0.115.0**: https://fastapi.tiangolo.com/ (accessed 2025-10-22)
392
- - **Pydantic 2.7.0**: https://docs.pydantic.dev/ (accessed 2025-10-22)
443
+ - `moai-domain-backend` - REST API and microservices architecture
444
+ - `moai-domain-database` - SQL patterns and ORM optimization
445
+ - `moai-quality-testing` - TDD and testing strategies
446
+ - `moai-essentials-debug` - AI-powered debugging
447
+ - `moai-foundation-trust` - TRUST 5 quality principles
393
448
 
394
449
  ---
395
450
 
396
- ## Changelog
451
+ ## Troubleshooting
397
452
 
398
- - **v2.0.0** (2025-10-22): Major update with Python 3.13 support, ruff 0.13.1 standard, uv 0.9.3 package manager, async/await TaskGroup patterns, security best practices, PEP 695/701/698 features
399
- - **v1.0.0** (2025-03-29): Initial Skill with pytest, mypy, ruff, black, uv coverage
453
+ Common Issues:
400
454
 
401
- ---
455
+ Python Version Check:
456
+ ```bash
457
+ python --version # Should be 3.13+
458
+ python -c "import sys; print(sys.version_info)"
459
+ ```
402
460
 
403
- ## Works Well With
461
+ Async Session Detached Error:
462
+ - Solution: Set `expire_on_commit=False` in session config
463
+ - Or: Use `await session.refresh(obj)` after commit
464
+
465
+ pytest asyncio Mode Warning:
466
+ ```toml
467
+ # pyproject.toml
468
+ [tool.pytest.ini_options]
469
+ asyncio_mode = "auto"
470
+ asyncio_default_fixture_loop_scope = "function"
471
+ ```
404
472
 
405
- - `moai-foundation-trust` (coverage verification, quality gates)
406
- - `moai-alfred-code-reviewer` (Python-specific code review)
407
- - `moai-alfred-debugger-pro` (Python debugging with pdb, pudb)
408
- - `moai-lang-sql` (SQLAlchemy integration)
409
- - `moai-domain-backend` (FastAPI microservices)
473
+ Pydantic v2 Migration:
474
+ - `parse_obj()` is now `model_validate()`
475
+ - `parse_raw()` is now `model_validate_json()`
476
+ - `from_orm()` requires `from_attributes=True` in ConfigDict
410
477
 
411
478
  ---
412
479
 
413
- ## Best Practices
414
-
415
- ✅ **DO**:
416
- - Use ruff 0.13.1 as linter + formatter (not black + pylint)
417
- - Specify exact Python version: `requires-python = "^3.13"`
418
- - Use pytest 8.4.2 for all tests
419
- - Enable type checking: mypy --strict
420
- - Run quality gate before each commit
421
- - Use uv for package management (10x faster)
422
- - Add docstrings to public APIs
423
- - Use f-strings (PEP 701 supports nested expressions)
424
-
425
- ❌ **DON'T**:
426
- - Use black + pylint (deprecated, use ruff instead)
427
- - Use md5 hashing (removed in Python 3.13)
428
- - Mix pytest with unittest
429
- - Ignore coverage requirements (<85% fails)
430
- - Use old type hint syntax (use PEP 695 `class Foo[T]:`)
431
- - Use `asyncio.gather` without error handling (use TaskGroup instead)
480
+ Last Updated: 2025-12-07
481
+ Status: Active (v1.0.0)