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
@@ -0,0 +1,804 @@
1
+ # Data Format Examples
2
+
3
+ Multishot prompting examples demonstrating practical data format patterns covering TOON encoding, JSON/YAML optimization, serialization, and validation.
4
+
5
+ ---
6
+
7
+ ## Example 1: TOON Encoding for LLM Token Optimization
8
+
9
+ **Scenario**: Reduce token usage when sending structured data to LLMs.
10
+
11
+ **Input**:
12
+ ```python
13
+ # Original JSON data - high token count
14
+ user_data = {
15
+ "id": 12345,
16
+ "name": "John Doe",
17
+ "email": "john@example.com",
18
+ "active": True,
19
+ "balance": 1250.50,
20
+ "created_at": "2024-01-15T10:30:00Z",
21
+ "tags": ["premium", "verified", "developer"],
22
+ "metadata": None
23
+ }
24
+
25
+ # JSON representation: ~85 tokens
26
+ json_output = json.dumps(user_data)
27
+ ```
28
+
29
+ **Output**:
30
+ ```python
31
+ from moai_formats_data import TOONEncoder
32
+ from datetime import datetime
33
+
34
+ class TOONEncoder:
35
+ """Token-Optimized Object Notation encoder."""
36
+
37
+ TYPE_MARKERS = {
38
+ 'number': '#',
39
+ 'boolean': '!',
40
+ 'timestamp': '@',
41
+ 'null': '~'
42
+ }
43
+
44
+ def encode(self, data: dict) -> str:
45
+ """Encode data to TOON format."""
46
+ return self._encode_value(data)
47
+
48
+ def _encode_value(self, value) -> str:
49
+ if value is None:
50
+ return '~'
51
+ elif isinstance(value, bool):
52
+ return f"!{'1' if value else '0'}"
53
+ elif isinstance(value, (int, float)):
54
+ return f"#{value}"
55
+ elif isinstance(value, datetime):
56
+ return f"@{value.isoformat()}"
57
+ elif isinstance(value, str):
58
+ return value
59
+ elif isinstance(value, list):
60
+ items = [self._encode_value(item) for item in value]
61
+ return f"[{','.join(items)}]"
62
+ elif isinstance(value, dict):
63
+ pairs = [f"{k}:{self._encode_value(v)}" for k, v in value.items()]
64
+ return f"{{{','.join(pairs)}}}"
65
+ return str(value)
66
+
67
+ def decode(self, toon_string: str) -> dict:
68
+ """Decode TOON format back to Python dict."""
69
+ return self._parse_value(toon_string)
70
+
71
+ def _parse_value(self, s: str):
72
+ s = s.strip()
73
+
74
+ if s == '~':
75
+ return None
76
+ elif s.startswith('!'):
77
+ return s[1] == '1'
78
+ elif s.startswith('#'):
79
+ num_str = s[1:]
80
+ return float(num_str) if '.' in num_str else int(num_str)
81
+ elif s.startswith('@'):
82
+ return datetime.fromisoformat(s[1:])
83
+ elif s.startswith('{'):
84
+ return self._parse_object(s)
85
+ elif s.startswith('['):
86
+ return self._parse_array(s)
87
+ return s
88
+
89
+ # Usage example
90
+ encoder = TOONEncoder()
91
+
92
+ user_data = {
93
+ "id": 12345,
94
+ "name": "John Doe",
95
+ "email": "john@example.com",
96
+ "active": True,
97
+ "balance": 1250.50,
98
+ "created_at": datetime(2024, 1, 15, 10, 30, 0),
99
+ "tags": ["premium", "verified", "developer"],
100
+ "metadata": None
101
+ }
102
+
103
+ # Encode to TOON
104
+ toon_output = encoder.encode(user_data)
105
+ # Result: {id:#12345,name:John Doe,email:john@example.com,active:!1,balance:#1250.5,created_at:@2024-01-15T10:30:00,tags:[premium,verified,developer],metadata:~}
106
+
107
+ # Token comparison
108
+ import tiktoken
109
+ encoding = tiktoken.get_encoding("cl100k_base")
110
+
111
+ json_tokens = len(encoding.encode(json.dumps(user_data, default=str)))
112
+ toon_tokens = len(encoding.encode(toon_output))
113
+
114
+ print(f"JSON tokens: {json_tokens}") # ~85 tokens
115
+ print(f"TOON tokens: {toon_tokens}") # ~45 tokens
116
+ print(f"Reduction: {((json_tokens - toon_tokens) / json_tokens) * 100:.1f}%") # ~47% reduction
117
+
118
+ # Decode back to Python
119
+ decoded = encoder.decode(toon_output)
120
+ ```
121
+
122
+ **Explanation**: TOON encoding uses type markers and removes unnecessary syntax to achieve 40-60% token reduction while maintaining lossless round-trip conversion.
123
+
124
+ ---
125
+
126
+ ## Example 2: High-Performance JSON Processing
127
+
128
+ **Scenario**: Process large JSON files efficiently with streaming and optimization.
129
+
130
+ **Input**:
131
+ ```python
132
+ # Need to process a 500MB JSON file with millions of records
133
+ # Standard json.load() causes memory issues
134
+ import json
135
+
136
+ # This fails with large files
137
+ with open('large_dataset.json', 'r') as f:
138
+ data = json.load(f) # MemoryError on 500MB+ files
139
+ ```
140
+
141
+ **Output**:
142
+ ```python
143
+ from moai_formats_data import JSONOptimizer, StreamProcessor
144
+ import orjson
145
+ from typing import Iterator, Dict, Any, Callable
146
+ from pathlib import Path
147
+
148
+ class JSONOptimizer:
149
+ """High-performance JSON processing with orjson."""
150
+
151
+ def serialize_fast(self, data: Any) -> bytes:
152
+ """Ultra-fast JSON serialization (5x faster than json)."""
153
+ return orjson.dumps(
154
+ data,
155
+ option=orjson.OPT_SERIALIZE_NUMPY |
156
+ orjson.OPT_SERIALIZE_DATACLASS |
157
+ orjson.OPT_UTC_Z
158
+ )
159
+
160
+ def deserialize_fast(self, json_bytes: bytes) -> Any:
161
+ """Ultra-fast JSON deserialization."""
162
+ return orjson.loads(json_bytes)
163
+
164
+ def serialize_pretty(self, data: Any) -> bytes:
165
+ """Pretty-printed JSON for debugging."""
166
+ return orjson.dumps(
167
+ data,
168
+ option=orjson.OPT_INDENT_2 | orjson.OPT_SORT_KEYS
169
+ )
170
+
171
+
172
+ class StreamProcessor:
173
+ """Stream large JSON files without loading into memory."""
174
+
175
+ def __init__(self, chunk_size: int = 8192):
176
+ self.chunk_size = chunk_size
177
+
178
+ def process_json_array(
179
+ self,
180
+ file_path: str,
181
+ processor: Callable[[Dict], Any]
182
+ ) -> Iterator[Any]:
183
+ """Stream process JSON array file."""
184
+ import ijson
185
+
186
+ with open(file_path, 'rb') as f:
187
+ parser = ijson.items(f, 'item')
188
+ for item in parser:
189
+ yield processor(item)
190
+
191
+ def process_json_lines(
192
+ self,
193
+ file_path: str,
194
+ processor: Callable[[Dict], Any]
195
+ ) -> Iterator[Any]:
196
+ """Process JSON Lines (JSONL) format."""
197
+ with open(file_path, 'r') as f:
198
+ for line in f:
199
+ if line.strip():
200
+ item = orjson.loads(line)
201
+ yield processor(item)
202
+
203
+ def batch_process(
204
+ self,
205
+ file_path: str,
206
+ processor: Callable[[Dict], Any],
207
+ batch_size: int = 1000
208
+ ) -> Iterator[list]:
209
+ """Process items in batches for efficiency."""
210
+ batch = []
211
+
212
+ for item in self.process_json_array(file_path, lambda x: x):
213
+ batch.append(processor(item))
214
+
215
+ if len(batch) >= batch_size:
216
+ yield batch
217
+ batch = []
218
+
219
+ if batch:
220
+ yield batch
221
+
222
+
223
+ # Usage example
224
+ optimizer = JSONOptimizer()
225
+ stream_processor = StreamProcessor()
226
+
227
+ # Fast serialization
228
+ data = {"users": [{"id": i, "name": f"User {i}"} for i in range(10000)]}
229
+ fast_json = optimizer.serialize_fast(data)
230
+
231
+ # Process large file
232
+ def process_user(user: dict) -> dict:
233
+ return {
234
+ "id": user["id"],
235
+ "name_upper": user["name"].upper(),
236
+ "processed": True
237
+ }
238
+
239
+ # Stream process without memory issues
240
+ results = []
241
+ for batch in stream_processor.batch_process("large_users.json", process_user, batch_size=5000):
242
+ results.extend(batch)
243
+ print(f"Processed batch of {len(batch)} items")
244
+
245
+ # Memory-efficient aggregation
246
+ total = 0
247
+ for user in stream_processor.process_json_array("large_users.json", lambda x: x):
248
+ total += user.get("balance", 0)
249
+ print(f"Total balance: {total}")
250
+ ```
251
+
252
+ **Explanation**: This pattern uses orjson for 5x faster serialization and ijson for memory-efficient streaming of large files, enabling processing of gigabyte-scale JSON data.
253
+
254
+ ---
255
+
256
+ ## Example 3: Advanced Data Validation with Schema Evolution
257
+
258
+ **Scenario**: Implement robust data validation with support for schema versioning and migration.
259
+
260
+ **Input**:
261
+ ```python
262
+ # Need validation system that:
263
+ # - Validates complex nested data
264
+ # - Supports schema evolution
265
+ # - Provides clear error messages
266
+ # - Handles migrations between versions
267
+ ```
268
+
269
+ **Output**:
270
+ ```python
271
+ from moai_formats_data import DataValidator, SchemaEvolution
272
+ from typing import Dict, Any, List, Optional
273
+ from dataclasses import dataclass
274
+ import re
275
+
276
+ @dataclass
277
+ class ValidationResult:
278
+ valid: bool
279
+ errors: Dict[str, List[str]]
280
+ sanitized_data: Optional[Dict[str, Any]] = None
281
+ warnings: List[str] = None
282
+
283
+
284
+ class DataValidator:
285
+ """Advanced data validation with type coercion and custom rules."""
286
+
287
+ def __init__(self):
288
+ self.type_validators = {
289
+ 'string': self._validate_string,
290
+ 'integer': self._validate_integer,
291
+ 'float': self._validate_float,
292
+ 'boolean': self._validate_boolean,
293
+ 'email': self._validate_email,
294
+ 'url': self._validate_url,
295
+ 'array': self._validate_array,
296
+ 'object': self._validate_object
297
+ }
298
+
299
+ def create_schema(self, schema_dict: Dict) -> Dict:
300
+ """Create a compiled schema for efficient validation."""
301
+ compiled = {}
302
+ for field, rules in schema_dict.items():
303
+ compiled[field] = self._compile_field_rules(rules)
304
+ return compiled
305
+
306
+ def _compile_field_rules(self, rules: Dict) -> Dict:
307
+ """Pre-compile validation rules for performance."""
308
+ compiled = rules.copy()
309
+
310
+ # Pre-compile regex patterns
311
+ if 'pattern' in rules:
312
+ compiled['_compiled_pattern'] = re.compile(rules['pattern'])
313
+
314
+ return compiled
315
+
316
+ def validate(self, data: Dict, schema: Dict) -> ValidationResult:
317
+ """Validate data against schema."""
318
+ errors = {}
319
+ sanitized = {}
320
+ warnings = []
321
+
322
+ for field, rules in schema.items():
323
+ value = data.get(field)
324
+
325
+ # Check required
326
+ if rules.get('required', False) and value is None:
327
+ errors.setdefault(field, []).append(f"Field '{field}' is required")
328
+ continue
329
+
330
+ if value is None:
331
+ if 'default' in rules:
332
+ sanitized[field] = rules['default']
333
+ continue
334
+
335
+ # Type validation
336
+ field_type = rules.get('type', 'string')
337
+ validator = self.type_validators.get(field_type)
338
+
339
+ if validator:
340
+ is_valid, sanitized_value, error = validator(value, rules)
341
+ if not is_valid:
342
+ errors.setdefault(field, []).append(error)
343
+ else:
344
+ sanitized[field] = sanitized_value
345
+
346
+ return ValidationResult(
347
+ valid=len(errors) == 0,
348
+ errors=errors,
349
+ sanitized_data=sanitized if len(errors) == 0 else None,
350
+ warnings=warnings
351
+ )
352
+
353
+ def _validate_string(self, value, rules) -> tuple:
354
+ if not isinstance(value, str):
355
+ return False, None, "Must be a string"
356
+
357
+ if 'min_length' in rules and len(value) < rules['min_length']:
358
+ return False, None, f"Minimum length is {rules['min_length']}"
359
+
360
+ if 'max_length' in rules and len(value) > rules['max_length']:
361
+ return False, None, f"Maximum length is {rules['max_length']}"
362
+
363
+ if '_compiled_pattern' in rules:
364
+ if not rules['_compiled_pattern'].match(value):
365
+ return False, None, f"Does not match pattern"
366
+
367
+ return True, value.strip(), None
368
+
369
+ def _validate_integer(self, value, rules) -> tuple:
370
+ try:
371
+ int_value = int(value)
372
+ except (ValueError, TypeError):
373
+ return False, None, "Must be an integer"
374
+
375
+ if 'min_value' in rules and int_value < rules['min_value']:
376
+ return False, None, f"Minimum value is {rules['min_value']}"
377
+
378
+ if 'max_value' in rules and int_value > rules['max_value']:
379
+ return False, None, f"Maximum value is {rules['max_value']}"
380
+
381
+ return True, int_value, None
382
+
383
+ def _validate_email(self, value, rules) -> tuple:
384
+ if not isinstance(value, str):
385
+ return False, None, "Must be a string"
386
+
387
+ email_pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
388
+ if not re.match(email_pattern, value):
389
+ return False, None, "Invalid email format"
390
+
391
+ return True, value.lower().strip(), None
392
+
393
+ def _validate_float(self, value, rules) -> tuple:
394
+ try:
395
+ float_value = float(value)
396
+ except (ValueError, TypeError):
397
+ return False, None, "Must be a number"
398
+ return True, float_value, None
399
+
400
+ def _validate_boolean(self, value, rules) -> tuple:
401
+ if isinstance(value, bool):
402
+ return True, value, None
403
+ if value in ('true', 'True', '1', 1):
404
+ return True, True, None
405
+ if value in ('false', 'False', '0', 0):
406
+ return True, False, None
407
+ return False, None, "Must be a boolean"
408
+
409
+ def _validate_url(self, value, rules) -> tuple:
410
+ if not isinstance(value, str):
411
+ return False, None, "Must be a string"
412
+ url_pattern = r'^https?://[^\s/$.?#].[^\s]*$'
413
+ if not re.match(url_pattern, value):
414
+ return False, None, "Invalid URL format"
415
+ return True, value, None
416
+
417
+ def _validate_array(self, value, rules) -> tuple:
418
+ if not isinstance(value, list):
419
+ return False, None, "Must be an array"
420
+ return True, value, None
421
+
422
+ def _validate_object(self, value, rules) -> tuple:
423
+ if not isinstance(value, dict):
424
+ return False, None, "Must be an object"
425
+ return True, value, None
426
+
427
+
428
+ class SchemaEvolution:
429
+ """Handle schema versioning and data migration."""
430
+
431
+ def __init__(self):
432
+ self.schemas = {}
433
+ self.migrations = {}
434
+
435
+ def register_schema(self, version: str, schema: Dict):
436
+ """Register a schema version."""
437
+ self.schemas[version] = schema
438
+
439
+ def add_migration(
440
+ self,
441
+ from_version: str,
442
+ to_version: str,
443
+ migration_fn: callable
444
+ ):
445
+ """Add migration function between versions."""
446
+ key = f"{from_version}:{to_version}"
447
+ self.migrations[key] = migration_fn
448
+
449
+ def migrate_data(
450
+ self,
451
+ data: Dict,
452
+ from_version: str,
453
+ to_version: str
454
+ ) -> Dict:
455
+ """Migrate data between schema versions."""
456
+ key = f"{from_version}:{to_version}"
457
+
458
+ if key not in self.migrations:
459
+ raise ValueError(f"No migration path from {from_version} to {to_version}")
460
+
461
+ return self.migrations[key](data)
462
+
463
+
464
+ # Usage example
465
+ validator = DataValidator()
466
+
467
+ # Define schema
468
+ user_schema = validator.create_schema({
469
+ "username": {
470
+ "type": "string",
471
+ "required": True,
472
+ "min_length": 3,
473
+ "max_length": 50,
474
+ "pattern": r"^[a-zA-Z0-9_]+$"
475
+ },
476
+ "email": {
477
+ "type": "email",
478
+ "required": True
479
+ },
480
+ "age": {
481
+ "type": "integer",
482
+ "required": False,
483
+ "min_value": 13,
484
+ "max_value": 120
485
+ },
486
+ "website": {
487
+ "type": "url",
488
+ "required": False
489
+ }
490
+ })
491
+
492
+ # Validate data
493
+ user_data = {
494
+ "username": "john_doe",
495
+ "email": "JOHN@Example.COM",
496
+ "age": 25
497
+ }
498
+
499
+ result = validator.validate(user_data, user_schema)
500
+
501
+ if result.valid:
502
+ print("Valid data:", result.sanitized_data)
503
+ # {'username': 'john_doe', 'email': 'john@example.com', 'age': 25}
504
+ else:
505
+ print("Validation errors:", result.errors)
506
+
507
+
508
+ # Schema evolution example
509
+ evolution = SchemaEvolution()
510
+
511
+ v1_schema = {"name": {"type": "string"}, "age": {"type": "integer"}}
512
+ v2_schema = {"full_name": {"type": "string"}, "age": {"type": "integer"}, "email": {"type": "email"}}
513
+
514
+ evolution.register_schema("v1", v1_schema)
515
+ evolution.register_schema("v2", v2_schema)
516
+
517
+ def migrate_v1_to_v2(data: Dict) -> Dict:
518
+ return {
519
+ "full_name": data.get("name", ""),
520
+ "age": data.get("age", 0),
521
+ "email": None # New required field needs default
522
+ }
523
+
524
+ evolution.add_migration("v1", "v2", migrate_v1_to_v2)
525
+
526
+ # Migrate old data
527
+ old_data = {"name": "John Doe", "age": 30}
528
+ new_data = evolution.migrate_data(old_data, "v1", "v2")
529
+ # {'full_name': 'John Doe', 'age': 30, 'email': None}
530
+ ```
531
+
532
+ **Explanation**: This pattern provides comprehensive data validation with type coercion, pattern matching, and schema evolution support for backward compatibility.
533
+
534
+ ---
535
+
536
+ ## Common Patterns
537
+
538
+ ### Pattern 1: Intelligent Caching with Format Optimization
539
+
540
+ ```python
541
+ from functools import lru_cache
542
+ import hashlib
543
+ import time
544
+
545
+ class SmartCache:
546
+ """Memory-aware caching with format optimization."""
547
+
548
+ def __init__(self, max_memory_mb: int = 50, max_items: int = 10000):
549
+ self.max_memory = max_memory_mb * 1024 * 1024
550
+ self.max_items = max_items
551
+ self.cache = {}
552
+ self.access_times = {}
553
+ self.sizes = {}
554
+
555
+ def _generate_key(self, data: dict) -> str:
556
+ """Generate deterministic cache key."""
557
+ serialized = orjson.dumps(data, option=orjson.OPT_SORT_KEYS)
558
+ return hashlib.sha256(serialized).hexdigest()[:16]
559
+
560
+ def get(self, key: str) -> Any:
561
+ """Get from cache with access tracking."""
562
+ if key in self.cache:
563
+ self.access_times[key] = time.time()
564
+ return self.cache[key]
565
+ return None
566
+
567
+ def set(self, key: str, value: Any, ttl: int = 3600):
568
+ """Set cache with memory management."""
569
+ serialized = orjson.dumps(value)
570
+ size = len(serialized)
571
+
572
+ # Evict if needed
573
+ while self._total_size() + size > self.max_memory:
574
+ self._evict_lru()
575
+
576
+ self.cache[key] = value
577
+ self.sizes[key] = size
578
+ self.access_times[key] = time.time()
579
+
580
+ def _total_size(self) -> int:
581
+ return sum(self.sizes.values())
582
+
583
+ def _evict_lru(self):
584
+ """Evict least recently used item."""
585
+ if not self.access_times:
586
+ return
587
+
588
+ oldest_key = min(self.access_times, key=self.access_times.get)
589
+ del self.cache[oldest_key]
590
+ del self.sizes[oldest_key]
591
+ del self.access_times[oldest_key]
592
+
593
+ def cache_result(self, ttl: int = 3600):
594
+ """Decorator for caching function results."""
595
+ def decorator(func):
596
+ def wrapper(*args, **kwargs):
597
+ key = self._generate_key({"args": args, "kwargs": kwargs})
598
+ cached = self.get(key)
599
+ if cached is not None:
600
+ return cached
601
+
602
+ result = func(*args, **kwargs)
603
+ self.set(key, result, ttl)
604
+ return result
605
+ return wrapper
606
+ return decorator
607
+ ```
608
+
609
+ ### Pattern 2: Format Conversion Pipeline
610
+
611
+ ```python
612
+ class FormatConverter:
613
+ """Convert between different data formats."""
614
+
615
+ @staticmethod
616
+ def json_to_yaml(json_data: str) -> str:
617
+ """Convert JSON to YAML."""
618
+ import yaml
619
+ data = orjson.loads(json_data)
620
+ return yaml.dump(data, default_flow_style=False, allow_unicode=True)
621
+
622
+ @staticmethod
623
+ def yaml_to_json(yaml_data: str) -> str:
624
+ """Convert YAML to JSON."""
625
+ import yaml
626
+ data = yaml.safe_load(yaml_data)
627
+ return orjson.dumps(data).decode()
628
+
629
+ @staticmethod
630
+ def json_to_toon(json_data: str) -> str:
631
+ """Convert JSON to TOON."""
632
+ data = orjson.loads(json_data)
633
+ encoder = TOONEncoder()
634
+ return encoder.encode(data)
635
+
636
+ @staticmethod
637
+ def csv_to_json(csv_data: str) -> str:
638
+ """Convert CSV to JSON array."""
639
+ import csv
640
+ from io import StringIO
641
+
642
+ reader = csv.DictReader(StringIO(csv_data))
643
+ records = list(reader)
644
+ return orjson.dumps(records).decode()
645
+
646
+ # Usage
647
+ converter = FormatConverter()
648
+
649
+ json_data = '{"name": "John", "age": 30}'
650
+ yaml_output = converter.json_to_yaml(json_data)
651
+ toon_output = converter.json_to_toon(json_data)
652
+ ```
653
+
654
+ ### Pattern 3: Batch Validation with Error Aggregation
655
+
656
+ ```python
657
+ def validate_batch(
658
+ items: list,
659
+ schema: dict,
660
+ stop_on_first_error: bool = False
661
+ ) -> dict:
662
+ """Validate a batch of items with aggregated results."""
663
+ validator = DataValidator()
664
+ results = {
665
+ "total": len(items),
666
+ "valid": 0,
667
+ "invalid": 0,
668
+ "errors": []
669
+ }
670
+
671
+ for index, item in enumerate(items):
672
+ result = validator.validate(item, schema)
673
+
674
+ if result.valid:
675
+ results["valid"] += 1
676
+ else:
677
+ results["invalid"] += 1
678
+ results["errors"].append({
679
+ "index": index,
680
+ "item": item,
681
+ "errors": result.errors
682
+ })
683
+
684
+ if stop_on_first_error:
685
+ break
686
+
687
+ return results
688
+
689
+ # Usage
690
+ items = [
691
+ {"username": "john", "email": "john@example.com"},
692
+ {"username": "ab", "email": "invalid"}, # Both fields invalid
693
+ {"username": "jane_doe", "email": "jane@example.com"}
694
+ ]
695
+
696
+ batch_result = validate_batch(items, user_schema)
697
+ # {'total': 3, 'valid': 2, 'invalid': 1, 'errors': [...]}
698
+ ```
699
+
700
+ ---
701
+
702
+ ## Anti-Patterns (Patterns to Avoid)
703
+
704
+ ### Anti-Pattern 1: Loading Entire Files Into Memory
705
+
706
+ **Problem**: Loading large files completely causes memory exhaustion.
707
+
708
+ ```python
709
+ # Incorrect approach
710
+ with open('huge_file.json', 'r') as f:
711
+ data = json.load(f) # Loads entire file into memory
712
+ ```
713
+
714
+ **Solution**: Use streaming for large files.
715
+
716
+ ```python
717
+ # Correct approach
718
+ import ijson
719
+
720
+ with open('huge_file.json', 'rb') as f:
721
+ for item in ijson.items(f, 'item'):
722
+ process(item) # Process one item at a time
723
+ ```
724
+
725
+ ### Anti-Pattern 2: Inconsistent Serialization
726
+
727
+ **Problem**: Different serialization methods produce inconsistent output.
728
+
729
+ ```python
730
+ # Incorrect approach - inconsistent key ordering
731
+ json.dumps({"b": 2, "a": 1}) # '{"b": 2, "a": 1}' sometimes '{"a": 1, "b": 2}'
732
+ ```
733
+
734
+ **Solution**: Use consistent serialization options.
735
+
736
+ ```python
737
+ # Correct approach
738
+ orjson.dumps(data, option=orjson.OPT_SORT_KEYS)
739
+ # Always produces consistent, sorted output
740
+ ```
741
+
742
+ ### Anti-Pattern 3: No Validation Before Processing
743
+
744
+ **Problem**: Processing invalid data leads to runtime errors.
745
+
746
+ ```python
747
+ # Incorrect approach
748
+ def process_user(user_data: dict):
749
+ email = user_data['email'].lower() # KeyError if missing
750
+ age = int(user_data['age']) # ValueError if not numeric
751
+ ```
752
+
753
+ **Solution**: Validate before processing.
754
+
755
+ ```python
756
+ # Correct approach
757
+ def process_user(user_data: dict):
758
+ result = validator.validate(user_data, user_schema)
759
+ if not result.valid:
760
+ raise ValidationError(result.errors)
761
+
762
+ data = result.sanitized_data
763
+ email = data['email'] # Already validated and sanitized
764
+ age = data['age'] # Already converted to int
765
+ ```
766
+
767
+ ---
768
+
769
+ ## Performance Benchmarks
770
+
771
+ ```python
772
+ import time
773
+
774
+ def benchmark_serialization():
775
+ """Compare serialization performance."""
776
+ data = {"users": [{"id": i, "name": f"User {i}"} for i in range(10000)]}
777
+
778
+ # Standard json
779
+ start = time.time()
780
+ for _ in range(100):
781
+ json.dumps(data)
782
+ json_time = time.time() - start
783
+
784
+ # orjson
785
+ start = time.time()
786
+ for _ in range(100):
787
+ orjson.dumps(data)
788
+ orjson_time = time.time() - start
789
+
790
+ # TOON
791
+ encoder = TOONEncoder()
792
+ start = time.time()
793
+ for _ in range(100):
794
+ encoder.encode(data)
795
+ toon_time = time.time() - start
796
+
797
+ print(f"json: {json_time:.3f}s") # ~2.5s
798
+ print(f"orjson: {orjson_time:.3f}s") # ~0.5s (5x faster)
799
+ print(f"TOON: {toon_time:.3f}s") # ~0.8s (with 40% smaller output)
800
+ ```
801
+
802
+ ---
803
+
804
+ *For additional patterns and format-specific optimizations, see the `modules/` directory.*