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,1048 @@
1
+ # Context & Session Management Examples
2
+
3
+ Multishot prompting examples demonstrating practical context management patterns covering 200K token budget optimization, session persistence, multi-agent handoffs, and progressive disclosure.
4
+
5
+ ---
6
+
7
+ ## Example 1: Token Budget Monitoring and Management
8
+
9
+ **Scenario**: Implement real-time token budget monitoring with automatic actions.
10
+
11
+ **Input**:
12
+ ```python
13
+ # Need: Token budget management that:
14
+ # - Tracks usage against 200K limit
15
+ # - Warns at critical thresholds
16
+ # - Triggers automatic compression
17
+ # - Prevents context overflow
18
+ ```
19
+
20
+ **Output**:
21
+ ```python
22
+ from dataclasses import dataclass
23
+ from typing import Optional, Callable
24
+ from datetime import datetime
25
+ import logging
26
+
27
+ logger = logging.getLogger(__name__)
28
+
29
+ @dataclass
30
+ class TokenBudgetState:
31
+ total_budget: int = 200000
32
+ used_tokens: int = 0
33
+ system_reserved: int = 15000 # System prompt, instructions
34
+ emergency_reserve: int = 55000 # Last 27.5% for recovery
35
+
36
+ @property
37
+ def available(self) -> int:
38
+ return self.total_budget - self.used_tokens
39
+
40
+ @property
41
+ def usage_percent(self) -> float:
42
+ return (self.used_tokens / self.total_budget) * 100
43
+
44
+ @property
45
+ def is_critical(self) -> bool:
46
+ return self.usage_percent >= 85
47
+
48
+ @property
49
+ def is_warning(self) -> bool:
50
+ return self.usage_percent >= 75
51
+
52
+
53
+ class TokenBudgetManager:
54
+ """Manages 200K token budget with automatic optimization."""
55
+
56
+ # Budget allocation (recommended breakdown)
57
+ ALLOCATION = {
58
+ "system": 15000, # 7.5% - System prompt, instructions
59
+ "conversation": 80000, # 40% - Active conversation
60
+ "reference": 50000, # 25% - Reference context
61
+ "reserve": 55000 # 27.5% - Emergency reserve
62
+ }
63
+
64
+ THRESHOLDS = {
65
+ "normal": 60,
66
+ "warning": 75,
67
+ "critical": 85,
68
+ "emergency": 95
69
+ }
70
+
71
+ def __init__(self):
72
+ self.state = TokenBudgetState()
73
+ self.callbacks: dict[str, Callable] = {}
74
+ self.checkpoints: list[dict] = []
75
+
76
+ def register_callback(self, event: str, callback: Callable):
77
+ """Register callback for budget events."""
78
+ self.callbacks[event] = callback
79
+
80
+ def update_usage(self, tokens_used: int, source: str = "unknown"):
81
+ """Update token usage and trigger appropriate actions."""
82
+ self.state.used_tokens = tokens_used
83
+
84
+ logger.info(
85
+ f"Token update: {tokens_used:,}/{self.state.total_budget:,} "
86
+ f"({self.state.usage_percent:.1f}%) from {source}"
87
+ )
88
+
89
+ # Check thresholds and trigger actions
90
+ if self.state.usage_percent >= self.THRESHOLDS["emergency"]:
91
+ self._handle_emergency()
92
+ elif self.state.usage_percent >= self.THRESHOLDS["critical"]:
93
+ self._handle_critical()
94
+ elif self.state.usage_percent >= self.THRESHOLDS["warning"]:
95
+ self._handle_warning()
96
+
97
+ def _handle_warning(self):
98
+ """Handle warning threshold (75%)."""
99
+ logger.warning(
100
+ f"Token usage at {self.state.usage_percent:.1f}% - "
101
+ "Starting context optimization"
102
+ )
103
+
104
+ # Defer non-critical context
105
+ if "on_warning" in self.callbacks:
106
+ self.callbacks["on_warning"](self.state)
107
+
108
+ def _handle_critical(self):
109
+ """Handle critical threshold (85%)."""
110
+ logger.error(
111
+ f"Token usage CRITICAL at {self.state.usage_percent:.1f}% - "
112
+ "Triggering context compression"
113
+ )
114
+
115
+ # Create checkpoint before compression
116
+ self.create_checkpoint("pre_compression")
117
+
118
+ if "on_critical" in self.callbacks:
119
+ self.callbacks["on_critical"](self.state)
120
+
121
+ def _handle_emergency(self):
122
+ """Handle emergency threshold (95%)."""
123
+ logger.critical(
124
+ f"Token usage EMERGENCY at {self.state.usage_percent:.1f}% - "
125
+ "Forcing context clear"
126
+ )
127
+
128
+ # Force immediate action
129
+ if "on_emergency" in self.callbacks:
130
+ self.callbacks["on_emergency"](self.state)
131
+
132
+ def create_checkpoint(self, name: str):
133
+ """Create a checkpoint for potential recovery."""
134
+ checkpoint = {
135
+ "name": name,
136
+ "timestamp": datetime.utcnow().isoformat(),
137
+ "tokens_used": self.state.used_tokens,
138
+ "usage_percent": self.state.usage_percent
139
+ }
140
+ self.checkpoints.append(checkpoint)
141
+ logger.info(f"Checkpoint created: {name}")
142
+ return checkpoint
143
+
144
+ def get_optimization_suggestions(self) -> list[str]:
145
+ """Get suggestions for reducing token usage."""
146
+ suggestions = []
147
+
148
+ if self.state.usage_percent > 50:
149
+ suggestions.append("Consider using /clear to reset context")
150
+
151
+ if self.state.usage_percent > 60:
152
+ suggestions.append("Defer non-critical reference documentation")
153
+
154
+ if self.state.usage_percent > 75:
155
+ suggestions.append("Apply progressive summarization to conversation")
156
+
157
+ if self.state.usage_percent > 85:
158
+ suggestions.append("URGENT: Execute context compression immediately")
159
+
160
+ return suggestions
161
+
162
+
163
+ # Usage example
164
+ manager = TokenBudgetManager()
165
+
166
+ def on_warning(state: TokenBudgetState):
167
+ print(f"Warning: {state.available:,} tokens remaining")
168
+
169
+ def on_critical(state: TokenBudgetState):
170
+ print("Critical: Compressing context...")
171
+ # Execute compression logic
172
+
173
+ def on_emergency(state: TokenBudgetState):
174
+ print("Emergency: Forcing /clear command")
175
+ # Execute /clear
176
+
177
+ manager.register_callback("on_warning", on_warning)
178
+ manager.register_callback("on_critical", on_critical)
179
+ manager.register_callback("on_emergency", on_emergency)
180
+
181
+ # Simulate usage updates
182
+ manager.update_usage(120000, source="conversation") # 60% - normal
183
+ manager.update_usage(155000, source="file_loading") # 77.5% - warning triggered
184
+ manager.update_usage(175000, source="agent_output") # 87.5% - critical triggered
185
+ ```
186
+
187
+ **Explanation**: This pattern implements comprehensive token budget monitoring with threshold-based callbacks, checkpointing, and optimization suggestions.
188
+
189
+ ---
190
+
191
+ ## Example 2: Session State Persistence
192
+
193
+ **Scenario**: Implement session state persistence for resumable workflows.
194
+
195
+ **Input**:
196
+ ```python
197
+ # Need: Session management that:
198
+ # - Persists state across interruptions
199
+ # - Supports workflow resumption
200
+ # - Tracks SPEC progress
201
+ # - Handles model switches
202
+ ```
203
+
204
+ **Output**:
205
+ ```python
206
+ import json
207
+ from pathlib import Path
208
+ from dataclasses import dataclass, asdict, field
209
+ from datetime import datetime
210
+ from typing import Optional, List, Dict, Any
211
+ from enum import Enum
212
+
213
+ class SessionPhase(Enum):
214
+ INIT = "initialization"
215
+ PLANNING = "planning"
216
+ IMPLEMENTATION = "implementation"
217
+ TESTING = "testing"
218
+ DOCUMENTATION = "documentation"
219
+ REVIEW = "review"
220
+ COMPLETED = "completed"
221
+
222
+
223
+ @dataclass
224
+ class WorkState:
225
+ current_spec: Optional[str] = None
226
+ phase: SessionPhase = SessionPhase.INIT
227
+ completed_steps: List[str] = field(default_factory=list)
228
+ pending_steps: List[str] = field(default_factory=list)
229
+ artifacts: Dict[str, str] = field(default_factory=dict)
230
+
231
+
232
+ @dataclass
233
+ class ContextWindow:
234
+ total: int = 200000
235
+ used: int = 0
236
+ available: int = 200000
237
+ position_percent: float = 0.0
238
+
239
+
240
+ @dataclass
241
+ class SessionState:
242
+ session_id: str
243
+ model: str
244
+ created_at: str
245
+ last_updated: str
246
+ context_window: ContextWindow
247
+ work_state: WorkState
248
+ user_context: Dict[str, Any] = field(default_factory=dict)
249
+ persistence: Dict[str, Any] = field(default_factory=dict)
250
+
251
+
252
+ class SessionManager:
253
+ """Manages session state with persistence and recovery."""
254
+
255
+ def __init__(self, storage_path: str = ".moai/sessions"):
256
+ self.storage_path = Path(storage_path)
257
+ self.storage_path.mkdir(parents=True, exist_ok=True)
258
+ self.current_session: Optional[SessionState] = None
259
+
260
+ def create_session(
261
+ self,
262
+ model: str = "claude-sonnet-4-5-20250929",
263
+ user_context: Optional[Dict] = None
264
+ ) -> SessionState:
265
+ """Create a new session."""
266
+ import uuid
267
+
268
+ session_id = f"sess_{uuid.uuid4().hex[:12]}"
269
+ now = datetime.utcnow().isoformat()
270
+
271
+ session = SessionState(
272
+ session_id=session_id,
273
+ model=model,
274
+ created_at=now,
275
+ last_updated=now,
276
+ context_window=ContextWindow(),
277
+ work_state=WorkState(),
278
+ user_context=user_context or {},
279
+ persistence={
280
+ "auto_save": True,
281
+ "save_interval_seconds": 60,
282
+ "context_preservation": "critical_only"
283
+ }
284
+ )
285
+
286
+ self.current_session = session
287
+ self._save_session(session)
288
+ return session
289
+
290
+ def load_session(self, session_id: str) -> Optional[SessionState]:
291
+ """Load an existing session."""
292
+ file_path = self.storage_path / f"{session_id}.json"
293
+
294
+ if not file_path.exists():
295
+ return None
296
+
297
+ with open(file_path, 'r') as f:
298
+ data = json.load(f)
299
+
300
+ # Reconstruct dataclasses
301
+ session = SessionState(
302
+ session_id=data["session_id"],
303
+ model=data["model"],
304
+ created_at=data["created_at"],
305
+ last_updated=data["last_updated"],
306
+ context_window=ContextWindow(**data["context_window"]),
307
+ work_state=WorkState(
308
+ current_spec=data["work_state"]["current_spec"],
309
+ phase=SessionPhase(data["work_state"]["phase"]),
310
+ completed_steps=data["work_state"]["completed_steps"],
311
+ pending_steps=data["work_state"]["pending_steps"],
312
+ artifacts=data["work_state"]["artifacts"]
313
+ ),
314
+ user_context=data.get("user_context", {}),
315
+ persistence=data.get("persistence", {})
316
+ )
317
+
318
+ self.current_session = session
319
+ return session
320
+
321
+ def update_work_state(
322
+ self,
323
+ spec_id: Optional[str] = None,
324
+ phase: Optional[SessionPhase] = None,
325
+ completed_step: Optional[str] = None,
326
+ artifact: Optional[tuple[str, str]] = None
327
+ ):
328
+ """Update work state with automatic persistence."""
329
+ if not self.current_session:
330
+ raise ValueError("No active session")
331
+
332
+ work = self.current_session.work_state
333
+
334
+ if spec_id:
335
+ work.current_spec = spec_id
336
+ if phase:
337
+ work.phase = phase
338
+ if completed_step:
339
+ work.completed_steps.append(completed_step)
340
+ if completed_step in work.pending_steps:
341
+ work.pending_steps.remove(completed_step)
342
+ if artifact:
343
+ work.artifacts[artifact[0]] = artifact[1]
344
+
345
+ self.current_session.last_updated = datetime.utcnow().isoformat()
346
+ self._save_session(self.current_session)
347
+
348
+ def update_context_usage(self, tokens_used: int):
349
+ """Update context window usage."""
350
+ if not self.current_session:
351
+ return
352
+
353
+ ctx = self.current_session.context_window
354
+ ctx.used = tokens_used
355
+ ctx.available = ctx.total - tokens_used
356
+ ctx.position_percent = (tokens_used / ctx.total) * 100
357
+
358
+ self.current_session.last_updated = datetime.utcnow().isoformat()
359
+ self._save_session(self.current_session)
360
+
361
+ def get_resumption_context(self) -> Dict[str, Any]:
362
+ """Get context for resuming interrupted work."""
363
+ if not self.current_session:
364
+ return {}
365
+
366
+ return {
367
+ "spec_id": self.current_session.work_state.current_spec,
368
+ "phase": self.current_session.work_state.phase.value,
369
+ "completed": self.current_session.work_state.completed_steps,
370
+ "pending": self.current_session.work_state.pending_steps,
371
+ "last_update": self.current_session.last_updated,
372
+ "context_usage": self.current_session.context_window.position_percent
373
+ }
374
+
375
+ def prepare_for_clear(self) -> Dict[str, Any]:
376
+ """Prepare essential context before /clear."""
377
+ if not self.current_session:
378
+ return {}
379
+
380
+ # Save current state
381
+ self._save_session(self.current_session)
382
+
383
+ # Return minimal context to reload after clear
384
+ return {
385
+ "session_id": self.current_session.session_id,
386
+ "spec_id": self.current_session.work_state.current_spec,
387
+ "phase": self.current_session.work_state.phase.value,
388
+ "reload_files": [
389
+ "CLAUDE.md",
390
+ f".moai/specs/{self.current_session.work_state.current_spec}.md"
391
+ ]
392
+ }
393
+
394
+ def _save_session(self, session: SessionState):
395
+ """Save session to storage."""
396
+ file_path = self.storage_path / f"{session.session_id}.json"
397
+
398
+ # Convert to dict with enum handling
399
+ data = {
400
+ "session_id": session.session_id,
401
+ "model": session.model,
402
+ "created_at": session.created_at,
403
+ "last_updated": session.last_updated,
404
+ "context_window": asdict(session.context_window),
405
+ "work_state": {
406
+ **asdict(session.work_state),
407
+ "phase": session.work_state.phase.value
408
+ },
409
+ "user_context": session.user_context,
410
+ "persistence": session.persistence
411
+ }
412
+
413
+ with open(file_path, 'w') as f:
414
+ json.dump(data, f, indent=2)
415
+
416
+
417
+ # Usage example
418
+ manager = SessionManager()
419
+
420
+ # Create new session
421
+ session = manager.create_session(
422
+ model="claude-sonnet-4-5-20250929",
423
+ user_context={"language": "ko", "user_name": "Developer"}
424
+ )
425
+ print(f"Created session: {session.session_id}")
426
+
427
+ # Update work progress
428
+ manager.update_work_state(
429
+ spec_id="SPEC-001",
430
+ phase=SessionPhase.IMPLEMENTATION
431
+ )
432
+ manager.update_work_state(completed_step="spec_complete")
433
+ manager.update_work_state(completed_step="architecture_defined")
434
+ manager.update_work_state(artifact=("api_schema", "schemas/user.json"))
435
+
436
+ # Before /clear
437
+ clear_context = manager.prepare_for_clear()
438
+ print(f"Context to reload after clear: {clear_context}")
439
+
440
+ # After interruption - resume
441
+ # resumed = manager.load_session(session.session_id)
442
+ # print(f"Resumed at phase: {resumed.work_state.phase.value}")
443
+ ```
444
+
445
+ **Explanation**: This pattern provides comprehensive session state management with persistence, work progress tracking, and seamless resumption after interruptions or /clear commands.
446
+
447
+ ---
448
+
449
+ ## Example 3: Multi-Agent Handoff Protocol
450
+
451
+ **Scenario**: Implement efficient context handoff between agents.
452
+
453
+ **Input**:
454
+ ```python
455
+ # Need: Multi-agent handoff that:
456
+ # - Minimizes token overhead
457
+ # - Validates handoff integrity
458
+ # - Supports context compression
459
+ # - Handles agent compatibility
460
+ ```
461
+
462
+ **Output**:
463
+ ```python
464
+ from dataclasses import dataclass, field
465
+ from typing import Dict, Any, List, Optional
466
+ from datetime import datetime
467
+ from enum import Enum
468
+ import hashlib
469
+
470
+ class AgentType(Enum):
471
+ SPEC_BUILDER = "spec-builder"
472
+ TDD_IMPLEMENTER = "tdd-implementer"
473
+ BACKEND_EXPERT = "backend-expert"
474
+ FRONTEND_EXPERT = "frontend-expert"
475
+ DOCS_MANAGER = "docs-manager"
476
+ QUALITY_GATE = "quality-gate"
477
+
478
+
479
+ # Agent compatibility matrix
480
+ AGENT_COMPATIBILITY = {
481
+ AgentType.SPEC_BUILDER: [
482
+ AgentType.TDD_IMPLEMENTER,
483
+ AgentType.BACKEND_EXPERT,
484
+ AgentType.FRONTEND_EXPERT
485
+ ],
486
+ AgentType.TDD_IMPLEMENTER: [
487
+ AgentType.QUALITY_GATE,
488
+ AgentType.DOCS_MANAGER
489
+ ],
490
+ AgentType.BACKEND_EXPERT: [
491
+ AgentType.FRONTEND_EXPERT,
492
+ AgentType.QUALITY_GATE,
493
+ AgentType.DOCS_MANAGER
494
+ ],
495
+ AgentType.FRONTEND_EXPERT: [
496
+ AgentType.QUALITY_GATE,
497
+ AgentType.DOCS_MANAGER
498
+ ],
499
+ AgentType.QUALITY_GATE: [
500
+ AgentType.DOCS_MANAGER
501
+ ]
502
+ }
503
+
504
+
505
+ @dataclass
506
+ class SessionContext:
507
+ session_id: str
508
+ model: str
509
+ context_position: float
510
+ available_tokens: int
511
+ user_language: str = "en"
512
+
513
+
514
+ @dataclass
515
+ class TaskContext:
516
+ spec_id: str
517
+ current_phase: str
518
+ completed_steps: List[str]
519
+ next_step: str
520
+ key_artifacts: Dict[str, str] = field(default_factory=dict)
521
+
522
+
523
+ @dataclass
524
+ class RecoveryInfo:
525
+ last_checkpoint: str
526
+ recovery_tokens_reserved: int
527
+ session_fork_available: bool = True
528
+
529
+
530
+ @dataclass
531
+ class HandoffPackage:
532
+ handoff_id: str
533
+ from_agent: AgentType
534
+ to_agent: AgentType
535
+ session_context: SessionContext
536
+ task_context: TaskContext
537
+ recovery_info: RecoveryInfo
538
+ created_at: str = field(default_factory=lambda: datetime.utcnow().isoformat())
539
+ checksum: str = ""
540
+
541
+ def __post_init__(self):
542
+ if not self.checksum:
543
+ self.checksum = self._calculate_checksum()
544
+
545
+ def _calculate_checksum(self) -> str:
546
+ """Calculate checksum for integrity verification."""
547
+ content = f"{self.handoff_id}{self.from_agent.value}{self.to_agent.value}"
548
+ content += f"{self.task_context.spec_id}{self.created_at}"
549
+ return hashlib.sha256(content.encode()).hexdigest()[:16]
550
+
551
+
552
+ class HandoffError(Exception):
553
+ """Base exception for handoff errors."""
554
+ pass
555
+
556
+
557
+ class AgentCompatibilityError(HandoffError):
558
+ """Raised when agents cannot cooperate."""
559
+ pass
560
+
561
+
562
+ class TokenBudgetError(HandoffError):
563
+ """Raised when token budget is insufficient."""
564
+ pass
565
+
566
+
567
+ class IntegrityError(HandoffError):
568
+ """Raised when handoff integrity check fails."""
569
+ pass
570
+
571
+
572
+ class HandoffManager:
573
+ """Manages multi-agent handoff with validation."""
574
+
575
+ MINIMUM_SAFE_TOKENS = 30000
576
+
577
+ def __init__(self):
578
+ self.handoff_history: List[HandoffPackage] = []
579
+
580
+ def can_agents_cooperate(
581
+ self,
582
+ from_agent: AgentType,
583
+ to_agent: AgentType
584
+ ) -> bool:
585
+ """Check if agents can cooperate based on compatibility matrix."""
586
+ compatible = AGENT_COMPATIBILITY.get(from_agent, [])
587
+ return to_agent in compatible
588
+
589
+ def create_handoff(
590
+ self,
591
+ from_agent: AgentType,
592
+ to_agent: AgentType,
593
+ session_context: SessionContext,
594
+ task_context: TaskContext,
595
+ recovery_info: RecoveryInfo
596
+ ) -> HandoffPackage:
597
+ """Create a validated handoff package."""
598
+ import uuid
599
+
600
+ # Validate compatibility
601
+ if not self.can_agents_cooperate(from_agent, to_agent):
602
+ raise AgentCompatibilityError(
603
+ f"Agent {from_agent.value} cannot hand off to {to_agent.value}"
604
+ )
605
+
606
+ # Validate token budget
607
+ if session_context.available_tokens < self.MINIMUM_SAFE_TOKENS:
608
+ raise TokenBudgetError(
609
+ f"Insufficient tokens: {session_context.available_tokens} < "
610
+ f"{self.MINIMUM_SAFE_TOKENS} required"
611
+ )
612
+
613
+ handoff = HandoffPackage(
614
+ handoff_id=f"hoff_{uuid.uuid4().hex[:8]}",
615
+ from_agent=from_agent,
616
+ to_agent=to_agent,
617
+ session_context=session_context,
618
+ task_context=task_context,
619
+ recovery_info=recovery_info
620
+ )
621
+
622
+ self.handoff_history.append(handoff)
623
+ return handoff
624
+
625
+ def validate_handoff(self, package: HandoffPackage) -> bool:
626
+ """Validate handoff package integrity."""
627
+ # Verify checksum
628
+ expected_checksum = package._calculate_checksum()
629
+ if package.checksum != expected_checksum:
630
+ raise IntegrityError("Handoff checksum mismatch")
631
+
632
+ # Verify agent compatibility
633
+ if not self.can_agents_cooperate(package.from_agent, package.to_agent):
634
+ raise AgentCompatibilityError("Agents cannot cooperate")
635
+
636
+ # Verify token budget
637
+ if package.session_context.available_tokens < self.MINIMUM_SAFE_TOKENS:
638
+ # Trigger compression instead of failing
639
+ return self._trigger_context_compression(package)
640
+
641
+ return True
642
+
643
+ def _trigger_context_compression(self, package: HandoffPackage) -> bool:
644
+ """Compress context when token budget is low."""
645
+ print(f"Compressing context for handoff {package.handoff_id}")
646
+
647
+ # Apply progressive summarization
648
+ # In practice, this would compress task_context.key_artifacts
649
+
650
+ return True
651
+
652
+ def extract_minimal_context(
653
+ self,
654
+ full_context: Dict[str, Any]
655
+ ) -> Dict[str, Any]:
656
+ """Extract only critical context for handoff."""
657
+ priority_fields = [
658
+ "spec_id",
659
+ "current_phase",
660
+ "next_step",
661
+ "critical_decisions",
662
+ "blocking_issues"
663
+ ]
664
+
665
+ return {k: v for k, v in full_context.items() if k in priority_fields}
666
+
667
+ def get_handoff_summary(self) -> Dict[str, Any]:
668
+ """Get summary of all handoffs in session."""
669
+ return {
670
+ "total_handoffs": len(self.handoff_history),
671
+ "handoffs": [
672
+ {
673
+ "id": h.handoff_id,
674
+ "from": h.from_agent.value,
675
+ "to": h.to_agent.value,
676
+ "spec": h.task_context.spec_id,
677
+ "timestamp": h.created_at
678
+ }
679
+ for h in self.handoff_history
680
+ ]
681
+ }
682
+
683
+
684
+ # Usage example
685
+ manager = HandoffManager()
686
+
687
+ # Create handoff from spec-builder to tdd-implementer
688
+ session_ctx = SessionContext(
689
+ session_id="sess_abc123",
690
+ model="claude-sonnet-4-5-20250929",
691
+ context_position=42.5,
692
+ available_tokens=115000,
693
+ user_language="ko"
694
+ )
695
+
696
+ task_ctx = TaskContext(
697
+ spec_id="SPEC-001",
698
+ current_phase="planning_complete",
699
+ completed_steps=["requirement_analysis", "spec_creation", "architecture_design"],
700
+ next_step="write_tests",
701
+ key_artifacts={
702
+ "spec_document": ".moai/specs/SPEC-001.md",
703
+ "architecture": ".moai/architecture/SPEC-001.mermaid"
704
+ }
705
+ )
706
+
707
+ recovery = RecoveryInfo(
708
+ last_checkpoint=datetime.utcnow().isoformat(),
709
+ recovery_tokens_reserved=55000,
710
+ session_fork_available=True
711
+ )
712
+
713
+ try:
714
+ handoff = manager.create_handoff(
715
+ from_agent=AgentType.SPEC_BUILDER,
716
+ to_agent=AgentType.TDD_IMPLEMENTER,
717
+ session_context=session_ctx,
718
+ task_context=task_ctx,
719
+ recovery_info=recovery
720
+ )
721
+
722
+ print(f"Handoff created: {handoff.handoff_id}")
723
+ print(f"Checksum: {handoff.checksum}")
724
+
725
+ # Validate before sending to next agent
726
+ is_valid = manager.validate_handoff(handoff)
727
+ print(f"Handoff valid: {is_valid}")
728
+
729
+ except HandoffError as e:
730
+ print(f"Handoff failed: {e}")
731
+ ```
732
+
733
+ **Explanation**: This pattern implements robust multi-agent handoffs with compatibility checking, token budget validation, integrity verification, and context compression for efficient agent coordination.
734
+
735
+ ---
736
+
737
+ ## Common Patterns
738
+
739
+ ### Pattern 1: Aggressive /clear Strategy
740
+
741
+ Execute /clear at strategic checkpoints:
742
+
743
+ ```python
744
+ class ClearStrategy:
745
+ """Strategy for executing /clear at optimal points."""
746
+
747
+ CLEAR_TRIGGERS = {
748
+ "post_spec_creation": True,
749
+ "token_threshold_150k": True,
750
+ "message_count_50": True,
751
+ "phase_transition": True,
752
+ "model_switch": True
753
+ }
754
+
755
+ def should_clear(self, context: Dict[str, Any]) -> tuple[bool, str]:
756
+ """Determine if /clear should be executed."""
757
+
758
+ # Check token threshold
759
+ if context.get("token_usage", 0) > 150000:
760
+ return True, "Token threshold exceeded (>150K)"
761
+
762
+ # Check message count
763
+ if context.get("message_count", 0) > 50:
764
+ return True, "Message count exceeded (>50)"
765
+
766
+ # Check phase transition
767
+ if context.get("phase_changed", False):
768
+ return True, "Phase transition detected"
769
+
770
+ # Check post-SPEC creation
771
+ if context.get("spec_just_created", False):
772
+ return True, "SPEC creation completed"
773
+
774
+ return False, "No clear needed"
775
+
776
+ def prepare_clear_context(
777
+ self,
778
+ session: SessionState
779
+ ) -> Dict[str, Any]:
780
+ """Prepare minimal context to preserve across /clear."""
781
+ return {
782
+ "session_id": session.session_id,
783
+ "spec_id": session.work_state.current_spec,
784
+ "phase": session.work_state.phase.value,
785
+ "reload_sequence": [
786
+ "CLAUDE.md",
787
+ f".moai/specs/{session.work_state.current_spec}.md",
788
+ "src/main.py" # Current working file
789
+ ],
790
+ "preserved_decisions": session.work_state.artifacts.get("decisions", [])
791
+ }
792
+ ```
793
+
794
+ ### Pattern 2: Progressive Summarization
795
+
796
+ Compress context while preserving key information:
797
+
798
+ ```python
799
+ class ProgressiveSummarizer:
800
+ """Compress context progressively to save tokens."""
801
+
802
+ def summarize_conversation(
803
+ self,
804
+ messages: List[Dict],
805
+ target_ratio: float = 0.3
806
+ ) -> str:
807
+ """Summarize conversation to target ratio."""
808
+
809
+ # Extract key information
810
+ decisions = self._extract_decisions(messages)
811
+ code_changes = self._extract_code_changes(messages)
812
+ issues = self._extract_issues(messages)
813
+
814
+ # Create compressed summary
815
+ summary = f"""
816
+ ## Conversation Summary
817
+
818
+ ### Key Decisions
819
+ {self._format_list(decisions)}
820
+
821
+ ### Code Changes
822
+ {self._format_list(code_changes)}
823
+
824
+ ### Open Issues
825
+ {self._format_list(issues)}
826
+
827
+ ### Reference
828
+ Original conversation: {len(messages)} messages
829
+ Compression ratio: {target_ratio * 100:.0f}%
830
+ """
831
+ return summary
832
+
833
+ def _extract_decisions(self, messages: List[Dict]) -> List[str]:
834
+ """Extract decision points from conversation."""
835
+ decisions = []
836
+ decision_markers = ["decided", "agreed", "will use", "chosen"]
837
+
838
+ for msg in messages:
839
+ content = msg.get("content", "").lower()
840
+ if any(marker in content for marker in decision_markers):
841
+ decisions.append(self._extract_sentence(msg["content"]))
842
+
843
+ return decisions[:5] # Top 5 decisions
844
+
845
+ def _extract_code_changes(self, messages: List[Dict]) -> List[str]:
846
+ """Extract code change summaries."""
847
+ changes = []
848
+ for msg in messages:
849
+ if "```" in msg.get("content", ""):
850
+ # Has code block - likely a change
851
+ changes.append(f"Modified: {msg.get('file', 'unknown')}")
852
+ return changes
853
+
854
+ def _extract_issues(self, messages: List[Dict]) -> List[str]:
855
+ """Extract open issues."""
856
+ issues = []
857
+ issue_markers = ["todo", "fixme", "issue", "problem", "bug"]
858
+
859
+ for msg in messages:
860
+ content = msg.get("content", "").lower()
861
+ if any(marker in content for marker in issue_markers):
862
+ issues.append(self._extract_sentence(msg["content"]))
863
+
864
+ return issues
865
+
866
+ def _extract_sentence(self, text: str) -> str:
867
+ """Extract first meaningful sentence."""
868
+ sentences = text.split('.')
869
+ return sentences[0][:100] if sentences else text[:100]
870
+
871
+ def _format_list(self, items: List[str]) -> str:
872
+ """Format items as bullet list."""
873
+ if not items:
874
+ return "- None"
875
+ return "\n".join(f"- {item}" for item in items)
876
+ ```
877
+
878
+ ### Pattern 3: Context Tag References
879
+
880
+ Use efficient references instead of inline content:
881
+
882
+ ```python
883
+ class ContextTagManager:
884
+ """Manage context with efficient tag references."""
885
+
886
+ def __init__(self):
887
+ self.tags: Dict[str, str] = {}
888
+
889
+ def register_tag(self, tag_id: str, content: str) -> str:
890
+ """Register content with a tag reference."""
891
+ self.tags[tag_id] = content
892
+ return f"@{tag_id}"
893
+
894
+ def resolve_tag(self, tag_ref: str) -> Optional[str]:
895
+ """Resolve a tag reference to content."""
896
+ if tag_ref.startswith("@"):
897
+ tag_id = tag_ref[1:]
898
+ return self.tags.get(tag_id)
899
+ return None
900
+
901
+ def create_minimal_reference(
902
+ self,
903
+ full_context: Dict[str, Any]
904
+ ) -> Dict[str, str]:
905
+ """Create minimal references to full context."""
906
+ references = {}
907
+
908
+ for key, value in full_context.items():
909
+ if isinstance(value, str) and len(value) > 200:
910
+ # Store full content, return reference
911
+ tag_id = f"{key.upper()}-001"
912
+ self.register_tag(tag_id, value)
913
+ references[key] = f"@{tag_id}"
914
+ else:
915
+ references[key] = value
916
+
917
+ return references
918
+
919
+
920
+ # Usage
921
+ tag_manager = ContextTagManager()
922
+
923
+ # Instead of inline content (high token cost)
924
+ # "The user configuration from the previous 20 messages..."
925
+
926
+ # Use efficient reference (low token cost)
927
+ tag_manager.register_tag("CONFIG-001", full_config_content)
928
+ reference = "@CONFIG-001" # 10 tokens vs 500+ tokens
929
+ ```
930
+
931
+ ---
932
+
933
+ ## Anti-Patterns (Patterns to Avoid)
934
+
935
+ ### Anti-Pattern 1: Ignoring Token Warnings
936
+
937
+ **Problem**: Continuing work without addressing token warnings.
938
+
939
+ ```python
940
+ # Incorrect approach
941
+ if token_usage > 150000:
942
+ print("Warning: High token usage")
943
+ # Continue working anyway - leads to context overflow
944
+ continue_work()
945
+ ```
946
+
947
+ **Solution**: Take immediate action on warnings.
948
+
949
+ ```python
950
+ # Correct approach
951
+ if token_usage > 150000:
952
+ logger.warning("Token warning triggered")
953
+ # Create checkpoint and clear
954
+ checkpoint = save_current_state()
955
+ execute_clear()
956
+ restore_essential_context(checkpoint)
957
+ ```
958
+
959
+ ### Anti-Pattern 2: Full Context in Handoffs
960
+
961
+ **Problem**: Passing complete context between agents wastes tokens.
962
+
963
+ ```python
964
+ # Incorrect approach
965
+ handoff = {
966
+ "full_conversation": all_messages, # 50K tokens
967
+ "all_files_content": file_contents, # 100K tokens
968
+ "complete_history": history # 30K tokens
969
+ }
970
+ ```
971
+
972
+ **Solution**: Pass only critical context.
973
+
974
+ ```python
975
+ # Correct approach
976
+ handoff = {
977
+ "spec_id": "SPEC-001",
978
+ "current_phase": "implementation",
979
+ "next_step": "write_tests",
980
+ "key_decisions": ["Use JWT", "PostgreSQL"],
981
+ "file_references": ["@API-SCHEMA", "@DB-MODEL"]
982
+ }
983
+ ```
984
+
985
+ ### Anti-Pattern 3: No Session Persistence
986
+
987
+ **Problem**: Losing work progress on interruption.
988
+
989
+ ```python
990
+ # Incorrect approach
991
+ # No state saved - all progress lost on /clear or interruption
992
+ work_in_progress = process_spec(spec_id)
993
+ # Connection lost - work lost
994
+ ```
995
+
996
+ **Solution**: Persist state continuously.
997
+
998
+ ```python
999
+ # Correct approach
1000
+ session = SessionManager()
1001
+ session.create_checkpoint("pre_processing")
1002
+
1003
+ work_in_progress = process_spec(spec_id)
1004
+ session.update_work_state(completed_step="processing_done")
1005
+ session.save() # State preserved
1006
+
1007
+ # After interruption
1008
+ resumed = session.load_session(session_id)
1009
+ # Continue from checkpoint
1010
+ ```
1011
+
1012
+ ---
1013
+
1014
+ ## Workflow Integration
1015
+
1016
+ ### SPEC-First Workflow with Context Management
1017
+
1018
+ ```python
1019
+ # Complete workflow with context optimization
1020
+
1021
+ # Phase 1: Planning (uses ~40K tokens)
1022
+ analysis = Task(subagent_type="spec-builder", prompt="Analyze: user auth")
1023
+ session.update_work_state(phase=SessionPhase.PLANNING)
1024
+
1025
+ # Mandatory /clear after planning (saves 45-50K tokens)
1026
+ clear_context = session.prepare_for_clear()
1027
+ execute_clear()
1028
+ restore_from_checkpoint(clear_context)
1029
+
1030
+ # Phase 2: Implementation (fresh 200K budget)
1031
+ implementation = Task(
1032
+ subagent_type="tdd-implementer",
1033
+ prompt=f"Implement: {clear_context['spec_id']}"
1034
+ )
1035
+ session.update_work_state(phase=SessionPhase.IMPLEMENTATION)
1036
+
1037
+ # Monitor and clear if needed
1038
+ if token_usage > 150000:
1039
+ clear_and_resume()
1040
+
1041
+ # Phase 3: Documentation
1042
+ docs = Task(subagent_type="docs-manager", prompt="Generate docs")
1043
+ session.update_work_state(phase=SessionPhase.DOCUMENTATION)
1044
+ ```
1045
+
1046
+ ---
1047
+
1048
+ *For detailed implementation patterns and module references, see the `modules/` directory.*