moai-adk 0.4.5__py3-none-any.whl → 0.20.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (433) hide show
  1. moai_adk/__init__.py +1 -1
  2. moai_adk/__main__.py +74 -1
  3. moai_adk/cli/commands/__init__.py +1 -1
  4. moai_adk/cli/commands/analyze.py +119 -0
  5. moai_adk/cli/commands/backup.py +25 -1
  6. moai_adk/cli/commands/doctor.py +31 -5
  7. moai_adk/cli/commands/improve_user_experience.py +307 -0
  8. moai_adk/cli/commands/init.py +111 -10
  9. moai_adk/cli/commands/status.py +33 -3
  10. moai_adk/cli/commands/update.py +921 -130
  11. moai_adk/cli/commands/validate_links.py +120 -0
  12. moai_adk/cli/prompts/init_prompts.py +22 -87
  13. moai_adk/core/analysis/__init__.py +9 -0
  14. moai_adk/core/analysis/session_analyzer.py +388 -0
  15. moai_adk/core/analysis/tag_chain_analyzer.py +344 -0
  16. moai_adk/core/analysis/tag_chain_repair.py +879 -0
  17. moai_adk/core/config/__init__.py +19 -0
  18. moai_adk/core/config/migration.py +235 -0
  19. moai_adk/core/git/__init__.py +1 -1
  20. moai_adk/core/git/branch.py +1 -1
  21. moai_adk/core/git/commit.py +1 -1
  22. moai_adk/core/git/manager.py +1 -1
  23. moai_adk/core/issue_creator.py +313 -0
  24. moai_adk/core/mcp/setup.py +56 -0
  25. moai_adk/core/mcp/setup_old.py +296 -0
  26. moai_adk/core/project/backup_utils.py +1 -1
  27. moai_adk/core/project/checker.py +2 -2
  28. moai_adk/core/project/detector.py +211 -12
  29. moai_adk/core/project/initializer.py +85 -15
  30. moai_adk/core/project/phase_executor.py +76 -13
  31. moai_adk/core/project/validator.py +13 -13
  32. moai_adk/core/quality/__init__.py +1 -1
  33. moai_adk/core/quality/trust_checker.py +1 -1
  34. moai_adk/core/quality/validators/__init__.py +1 -1
  35. moai_adk/core/quality/validators/base_validator.py +1 -1
  36. moai_adk/core/tags/__init__.py +86 -0
  37. moai_adk/core/tags/auto_corrector.py +693 -0
  38. moai_adk/core/tags/ci_validator.py +463 -0
  39. moai_adk/core/tags/cli.py +283 -0
  40. moai_adk/core/tags/generator.py +109 -0
  41. moai_adk/core/tags/inserter.py +99 -0
  42. moai_adk/core/tags/mapper.py +126 -0
  43. moai_adk/core/tags/parser.py +76 -0
  44. moai_adk/core/tags/policy_validator.py +580 -0
  45. moai_adk/core/tags/pre_commit_validator.py +421 -0
  46. moai_adk/core/tags/reporter.py +956 -0
  47. moai_adk/core/tags/rollback_manager.py +525 -0
  48. moai_adk/core/tags/tags.py +149 -0
  49. moai_adk/core/tags/validator.py +897 -0
  50. moai_adk/core/template/__init__.py +1 -1
  51. moai_adk/core/template/backup.py +1 -1
  52. moai_adk/core/template/merger.py +50 -1
  53. moai_adk/core/template/processor.py +119 -13
  54. moai_adk/core/template_engine.py +268 -0
  55. moai_adk/templates/.claude/agents/alfred/backend-expert.md +348 -0
  56. moai_adk/templates/.claude/agents/alfred/cc-manager.md +209 -944
  57. moai_adk/templates/.claude/agents/alfred/database-expert.md +352 -0
  58. moai_adk/templates/.claude/agents/alfred/debug-helper.md +34 -5
  59. moai_adk/templates/.claude/agents/alfred/devops-expert.md +464 -0
  60. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +38 -8
  61. moai_adk/templates/.claude/agents/alfred/format-expert.md +469 -0
  62. moai_adk/templates/.claude/agents/alfred/frontend-expert.md +357 -0
  63. moai_adk/templates/.claude/agents/alfred/git-manager.md +128 -9
  64. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +104 -6
  65. moai_adk/templates/.claude/agents/alfred/project-manager.md +88 -16
  66. moai_adk/templates/.claude/agents/alfred/quality-gate.md +36 -9
  67. moai_adk/templates/.claude/agents/alfred/security-expert.md +270 -0
  68. moai_adk/templates/.claude/agents/alfred/skill-factory.md +865 -0
  69. moai_adk/templates/.claude/agents/alfred/spec-builder.md +214 -43
  70. moai_adk/templates/.claude/agents/alfred/tag-agent.md +111 -9
  71. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +309 -160
  72. moai_adk/templates/.claude/agents/alfred/trust-checker.md +36 -7
  73. moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +605 -0
  74. moai_adk/templates/.claude/commands/alfred/0-project.md +393 -966
  75. moai_adk/templates/.claude/commands/alfred/1-plan.md +651 -367
  76. moai_adk/templates/.claude/commands/alfred/2-run.md +388 -241
  77. moai_adk/templates/.claude/commands/alfred/3-sync.md +1921 -410
  78. moai_adk/templates/.claude/commands/alfred/9-feedback.md +153 -0
  79. moai_adk/templates/.claude/commands/alfred/release-new.md +3604 -0
  80. moai_adk/templates/.claude/hooks/alfred/core/project.py +484 -20
  81. moai_adk/templates/.claude/hooks/alfred/core/timeout.py +136 -0
  82. moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +108 -0
  83. moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +198 -0
  84. moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +14 -6
  85. moai_adk/templates/.claude/hooks/alfred/post_tool__enable_streaming_ui.py +50 -0
  86. moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +93 -0
  87. moai_adk/templates/.claude/hooks/alfred/post_tool__tag_auto_corrector.py +407 -0
  88. moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +99 -0
  89. moai_adk/templates/.claude/hooks/alfred/pre_tool__realtime_tag_monitor.py +335 -0
  90. moai_adk/templates/.claude/hooks/alfred/pre_tool__tag_policy_validator.py +325 -0
  91. moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +93 -0
  92. moai_adk/templates/.claude/hooks/alfred/session_start__auto_cleanup.py +580 -0
  93. moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +298 -0
  94. moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +170 -0
  95. moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/checkpoint.py +3 -3
  96. moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/context.py +5 -5
  97. moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +749 -0
  98. moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +230 -0
  99. moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +198 -0
  100. moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +21 -0
  101. moai_adk/templates/.claude/hooks/alfred/shared/handlers/daily_analysis.py +351 -0
  102. moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +154 -0
  103. moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +174 -0
  104. moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +87 -0
  105. moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +61 -0
  106. moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +111 -0
  107. moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +1 -0
  108. moai_adk/templates/.claude/hooks/alfred/utils/hook_config.py +94 -0
  109. moai_adk/templates/.claude/hooks/alfred/utils/timeout.py +161 -0
  110. moai_adk/templates/.claude/output-styles/alfred/alfred-moai-adk-beginner.md +267 -0
  111. moai_adk/templates/.claude/output-styles/alfred/keating-personal-tutor.md +440 -0
  112. moai_adk/templates/.claude/output-styles/alfred/r2d2-agentic-coding.md +583 -0
  113. moai_adk/templates/.claude/settings.json +96 -14
  114. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +70 -0
  115. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +62 -0
  116. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +242 -0
  117. moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/SKILL.md +237 -0
  118. moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/examples.md +871 -0
  119. moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/reference.md +653 -0
  120. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/README.md +162 -0
  121. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/SKILL.md +227 -0
  122. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/examples.md +354 -0
  123. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/reference.md +158 -0
  124. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +179 -79
  125. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/examples.md +117 -0
  126. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/scripts/pre-review-check.sh +62 -0
  127. moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +132 -0
  128. moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +28 -0
  129. moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +444 -0
  130. moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +62 -0
  131. moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +28 -0
  132. moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +405 -0
  133. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +51 -0
  134. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +355 -0
  135. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +239 -0
  136. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +323 -0
  137. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +286 -0
  138. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +126 -0
  139. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +229 -0
  140. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +4 -0
  141. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +150 -0
  142. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +87 -73
  143. moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +29 -0
  144. moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +28 -0
  145. moai_adk/templates/.claude/skills/moai-alfred-personas/README.md +42 -0
  146. moai_adk/templates/.claude/skills/moai-alfred-personas/SKILL.md +429 -0
  147. moai_adk/templates/.claude/skills/moai-alfred-personas/examples.md +520 -0
  148. moai_adk/templates/.claude/skills/moai-alfred-personas/reference.md +405 -0
  149. moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +89 -0
  150. moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +122 -0
  151. moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +369 -0
  152. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +508 -0
  153. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +481 -0
  154. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +100 -0
  155. moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +77 -0
  156. moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +265 -0
  157. moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +539 -0
  158. moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +320 -0
  159. moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +4 -0
  160. moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +84 -0
  161. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +137 -0
  162. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +219 -0
  163. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +161 -0
  164. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +541 -0
  165. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +622 -0
  166. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +19 -0
  167. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +4 -0
  168. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +211 -0
  169. moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +288 -0
  170. moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +269 -0
  171. moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +32 -0
  172. moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +298 -0
  173. moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +26 -0
  174. moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +307 -0
  175. moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +21 -0
  176. moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +252 -0
  177. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +19 -0
  178. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +19 -0
  179. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +24 -0
  180. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +199 -0
  181. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +39 -0
  182. moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +316 -0
  183. moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +18 -0
  184. moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +263 -0
  185. moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +30 -0
  186. moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +482 -0
  187. moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +303 -0
  188. moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +524 -0
  189. moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +477 -0
  190. moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +429 -0
  191. moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +391 -0
  192. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +431 -0
  193. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +577 -0
  194. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +273 -0
  195. moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +466 -0
  196. moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +583 -0
  197. moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +526 -0
  198. moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +608 -0
  199. moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +328 -0
  200. moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +312 -0
  201. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +245 -0
  202. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +285 -0
  203. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +278 -0
  204. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +303 -0
  205. moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +291 -0
  206. moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +15 -0
  207. moai_adk/templates/.claude/skills/moai-change-logger/SKILL.md +563 -0
  208. moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +802 -0
  209. moai_adk/templates/.claude/skills/moai-design-systems/examples.md +1238 -0
  210. moai_adk/templates/.claude/skills/moai-design-systems/reference.md +673 -0
  211. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +234 -43
  212. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +1633 -0
  213. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +660 -0
  214. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +97 -69
  215. moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +29 -0
  216. moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +30 -0
  217. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +97 -72
  218. moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +29 -0
  219. moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +30 -0
  220. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +97 -74
  221. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +29 -0
  222. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +30 -0
  223. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +98 -74
  224. moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +29 -0
  225. moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +31 -0
  226. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +102 -73
  227. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +29 -0
  228. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +31 -0
  229. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +97 -73
  230. moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +29 -0
  231. moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +30 -0
  232. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +97 -67
  233. moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +29 -0
  234. moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +30 -0
  235. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +97 -79
  236. moai_adk/templates/.claude/skills/moai-domain-security/examples.md +29 -0
  237. moai_adk/templates/.claude/skills/moai-domain-security/reference.md +30 -0
  238. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +97 -71
  239. moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +29 -0
  240. moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +30 -0
  241. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +265 -64
  242. moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +1064 -0
  243. moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +1047 -0
  244. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +87 -78
  245. moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +29 -0
  246. moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +28 -0
  247. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +87 -70
  248. moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +29 -0
  249. moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +28 -0
  250. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +87 -86
  251. moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +29 -0
  252. moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +28 -0
  253. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +80 -62
  254. moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +29 -0
  255. moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +28 -0
  256. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +207 -50
  257. moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +29 -0
  258. moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +29 -0
  259. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +90 -71
  260. moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +29 -0
  261. moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +28 -0
  262. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +78 -58
  263. moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +29 -0
  264. moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +28 -0
  265. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +78 -51
  266. moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +29 -0
  267. moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +28 -0
  268. moai_adk/templates/.claude/skills/moai-foundation-trust/.!11330!examples.md +0 -0
  269. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +253 -32
  270. moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
  271. moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +1099 -0
  272. moai_adk/templates/.claude/skills/moai-jit-docs-enhanced/SKILL.md +460 -0
  273. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +98 -74
  274. moai_adk/templates/.claude/skills/moai-lang-c/examples.md +29 -0
  275. moai_adk/templates/.claude/skills/moai-lang-c/reference.md +31 -0
  276. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +98 -76
  277. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +29 -0
  278. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +31 -0
  279. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +2358 -70
  280. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +29 -0
  281. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +30 -0
  282. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +2962 -68
  283. moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +29 -0
  284. moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +30 -0
  285. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +1898 -70
  286. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +29 -0
  287. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +31 -0
  288. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +1465 -68
  289. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +29 -0
  290. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +31 -0
  291. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +2364 -66
  292. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +29 -0
  293. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +32 -0
  294. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +1630 -69
  295. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +29 -0
  296. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +31 -0
  297. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +89 -61
  298. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +29 -0
  299. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +30 -0
  300. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +735 -66
  301. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +624 -0
  302. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +316 -0
  303. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +97 -73
  304. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +29 -0
  305. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +30 -0
  306. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +98 -73
  307. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +29 -0
  308. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +31 -0
  309. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +1834 -70
  310. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +29 -0
  311. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +31 -0
  312. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +99 -74
  313. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +29 -0
  314. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +30 -0
  315. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +97 -74
  316. moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +29 -0
  317. moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +30 -0
  318. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +98 -74
  319. moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +29 -0
  320. moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +31 -0
  321. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +1959 -69
  322. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +29 -0
  323. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +30 -0
  324. moai_adk/templates/.claude/skills/moai-lang-template/SKILL.md +348 -0
  325. moai_adk/templates/.claude/skills/moai-lang-template/VARIABLES.md +98 -0
  326. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +1230 -66
  327. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +29 -0
  328. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +34 -0
  329. moai_adk/templates/.claude/skills/moai-learning-optimizer/SKILL.md +575 -0
  330. moai_adk/templates/.claude/skills/moai-project-batch-questions/README.md +50 -0
  331. moai_adk/templates/.claude/skills/moai-project-batch-questions/SKILL.md +304 -0
  332. moai_adk/templates/.claude/skills/moai-project-batch-questions/examples.md +417 -0
  333. moai_adk/templates/.claude/skills/moai-project-batch-questions/reference.md +704 -0
  334. moai_adk/templates/.claude/skills/moai-project-config-manager/README.md +87 -0
  335. moai_adk/templates/.claude/skills/moai-project-config-manager/SKILL.md +552 -0
  336. moai_adk/templates/.claude/skills/moai-project-config-manager/examples.md +1109 -0
  337. moai_adk/templates/.claude/skills/moai-project-config-manager/reference.md +514 -0
  338. moai_adk/templates/.claude/skills/moai-project-config-manager/validate.py +106 -0
  339. moai_adk/templates/.claude/skills/moai-project-documentation/README.md +11 -0
  340. moai_adk/templates/.claude/skills/moai-project-documentation/SKILL.md +622 -0
  341. moai_adk/templates/.claude/skills/moai-project-documentation/examples.md +20 -0
  342. moai_adk/templates/.claude/skills/moai-project-documentation/reference.md +12 -0
  343. moai_adk/templates/.claude/skills/moai-project-language-initializer/README.md +152 -0
  344. moai_adk/templates/.claude/skills/moai-project-language-initializer/SKILL.md +285 -0
  345. moai_adk/templates/.claude/skills/moai-project-language-initializer/examples.md +333 -0
  346. moai_adk/templates/.claude/skills/moai-project-language-initializer/reference.md +386 -0
  347. moai_adk/templates/.claude/skills/moai-project-template-optimizer/README.md +49 -0
  348. moai_adk/templates/.claude/skills/moai-project-template-optimizer/SKILL.md +319 -0
  349. moai_adk/templates/.claude/skills/moai-project-template-optimizer/examples.md +58 -0
  350. moai_adk/templates/.claude/skills/moai-project-template-optimizer/reference.md +123 -0
  351. moai_adk/templates/.claude/skills/moai-session-info/SKILL.md +314 -0
  352. moai_adk/templates/.claude/skills/moai-streaming-ui/SKILL.md +552 -0
  353. moai_adk/templates/.claude/skills/moai-tag-policy-validator/SKILL.md +570 -0
  354. moai_adk/templates/.git-hooks/pre-commit +66 -0
  355. moai_adk/templates/.git-hooks/pre-push +255 -0
  356. moai_adk/templates/.github/workflows/c-tag-validation.yml +11 -0
  357. moai_adk/templates/.github/workflows/cpp-tag-validation.yml +11 -0
  358. moai_adk/templates/.github/workflows/csharp-tag-validation.yml +11 -0
  359. moai_adk/templates/.github/workflows/dart-tag-validation.yml +11 -0
  360. moai_adk/templates/.github/workflows/go-tag-validation.yml +130 -0
  361. moai_adk/templates/.github/workflows/java-tag-validation.yml +11 -0
  362. moai_adk/templates/.github/workflows/javascript-tag-validation.yml +135 -0
  363. moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +11 -0
  364. moai_adk/templates/.github/workflows/moai-gitflow.yml +166 -3
  365. moai_adk/templates/.github/workflows/moai-release-create.yml +100 -0
  366. moai_adk/templates/.github/workflows/moai-release-pipeline.yml +188 -0
  367. moai_adk/templates/.github/workflows/php-tag-validation.yml +11 -0
  368. moai_adk/templates/.github/workflows/python-tag-validation.yml +118 -0
  369. moai_adk/templates/.github/workflows/release.yml +118 -0
  370. moai_adk/templates/.github/workflows/ruby-tag-validation.yml +11 -0
  371. moai_adk/templates/.github/workflows/rust-tag-validation.yml +11 -0
  372. moai_adk/templates/.github/workflows/shell-tag-validation.yml +11 -0
  373. moai_adk/templates/.github/workflows/spec-issue-sync.yml +338 -0
  374. moai_adk/templates/.github/workflows/swift-tag-validation.yml +11 -0
  375. moai_adk/templates/.github/workflows/tag-report.yml +269 -0
  376. moai_adk/templates/.github/workflows/tag-validation.yml +186 -0
  377. moai_adk/templates/.github/workflows/typescript-tag-validation.yml +154 -0
  378. moai_adk/templates/.mcp.json +31 -0
  379. moai_adk/templates/.moai/config.json +80 -7
  380. moai_adk/templates/CLAUDE.md +562 -546
  381. moai_adk/utils/banner.py +5 -5
  382. moai_adk/utils/common.py +294 -0
  383. moai_adk/utils/link_validator.py +235 -0
  384. moai_adk/utils/logger.py +8 -8
  385. moai_adk/utils/user_experience.py +451 -0
  386. moai_adk-0.20.1.dist-info/METADATA +233 -0
  387. moai_adk-0.20.1.dist-info/RECORD +404 -0
  388. moai_adk/templates/.claude/hooks/alfred/README.md +0 -230
  389. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -156
  390. moai_adk/templates/.claude/hooks/alfred/core/__init__.py +0 -85
  391. moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +0 -25
  392. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +0 -92
  393. moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +0 -70
  394. moai_adk/templates/.claude/hooks/alfred/handlers/user.py +0 -41
  395. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -636
  396. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -692
  397. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -470
  398. moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +0 -103
  399. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -103
  400. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -95
  401. moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +0 -105
  402. moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +0 -97
  403. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -97
  404. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -90
  405. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -99
  406. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +0 -87
  407. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +0 -62
  408. moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +0 -94
  409. moai_adk/templates/.claude/skills/moai-claude-code/examples.md +0 -513
  410. moai_adk/templates/.claude/skills/moai-claude-code/reference.md +0 -433
  411. moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +0 -332
  412. moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +0 -384
  413. moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +0 -363
  414. moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +0 -595
  415. moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +0 -496
  416. moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +0 -100
  417. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +0 -99
  418. moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +0 -100
  419. moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +0 -98
  420. moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +0 -98
  421. moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -69
  422. moai_adk/templates/.moai/memory/development-guide.md +0 -344
  423. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -220
  424. moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
  425. moai_adk/templates/.moai/project/product.md +0 -161
  426. moai_adk/templates/.moai/project/structure.md +0 -156
  427. moai_adk/templates/.moai/project/tech.md +0 -227
  428. moai_adk/templates/__init__.py +0 -2
  429. moai_adk-0.4.5.dist-info/METADATA +0 -369
  430. moai_adk-0.4.5.dist-info/RECORD +0 -152
  431. {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/WHEEL +0 -0
  432. {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/entry_points.txt +0 -0
  433. {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,704 @@
1
+ # Project Batch Questions - API Reference
2
+
3
+ > **Main Skill**: [SKILL.md](SKILL.md)
4
+ > **Examples**: [examples.md](examples.md)
5
+
6
+ ---
7
+
8
+ ## Core API
9
+
10
+ ### BatchTemplate Interface
11
+
12
+ ```typescript
13
+ interface BatchTemplate {
14
+ name: string;
15
+ description: string;
16
+ questions: Question[];
17
+ conditional?: ConditionalLogic;
18
+ validation?: ValidationRules;
19
+ mapping?: ResponseMapping;
20
+ }
21
+ ```
22
+
23
+ ### Question Interface (Extended)
24
+
25
+ ```typescript
26
+ interface Question {
27
+ question: string; // The question text
28
+ header: string; // Column header (max 12 chars)
29
+ multiSelect: boolean; // true = multiple selections
30
+ options: Option[]; // 2-4 options recommended
31
+ conditional?: QuestionCondition; // Show/hide logic
32
+ validation?: QuestionValidation; // Input validation rules
33
+ }
34
+ ```
35
+
36
+ ### Option Interface (Extended)
37
+
38
+ ```typescript
39
+ interface Option {
40
+ label: string; // 1-5 words, displayed in TUI
41
+ description: string; // Rationale and context
42
+ value?: string; // Internal value (optional)
43
+ icon?: string; // Icon for visual distinction
44
+ warning?: string; // Warning text for risky options
45
+ recommended?: boolean; // Mark as recommended choice
46
+ }
47
+ ```
48
+
49
+ ---
50
+
51
+ ## Pre-built Batch Templates
52
+
53
+ ### LANGUAGE_BATCH_TEMPLATE
54
+
55
+ ```typescript
56
+ export const LANGUAGE_BATCH_TEMPLATE: BatchTemplate = {
57
+ name: 'language-batch',
58
+ description: 'Set language preferences for project initialization',
59
+ questions: [
60
+ {
61
+ question: "Which language would you like to use for project initialization and documentation?",
62
+ header: "Language",
63
+ multiSelect: false,
64
+ options: [
65
+ {
66
+ label: "English",
67
+ description: "All dialogs and documentation in English",
68
+ value: "en"
69
+ },
70
+ {
71
+ label: "한국어",
72
+ description: "All dialogs and documentation in Korean",
73
+ value: "ko"
74
+ },
75
+ {
76
+ label: "日本語",
77
+ description: "All dialogs and documentation in Japanese",
78
+ value: "ja"
79
+ },
80
+ {
81
+ label: "中文",
82
+ description: "All dialogs and documentation in Chinese",
83
+ value: "zh"
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ question: "In which language should Alfred's sub-agent prompts be written?",
89
+ header: "Agent Prompt",
90
+ multiSelect: false,
91
+ options: [
92
+ {
93
+ label: "English (Global Standard)",
94
+ description: "All sub-agent prompts in English. Reduces token usage by 15-20%",
95
+ value: "english",
96
+ recommended: true
97
+ },
98
+ {
99
+ label: "Selected Language (Localized)",
100
+ description: "All sub-agent prompts in your selected language for local efficiency",
101
+ value: "localized"
102
+ }
103
+ ]
104
+ },
105
+ {
106
+ question: "How would you like to be called in our conversations? (max 20 chars)",
107
+ header: "Nickname",
108
+ multiSelect: false,
109
+ options: [
110
+ {
111
+ label: "Enter custom nickname",
112
+ description: "Type your preferred name using the 'Other' option below",
113
+ value: "custom"
114
+ }
115
+ ],
116
+ validation: {
117
+ maxLength: 20,
118
+ required: true,
119
+ pattern: /^[a-zA-Z0-9가-힣ぁ-ゟ一-龯\s]{1,20}$/
120
+ }
121
+ }
122
+ ],
123
+ mapping: {
124
+ 'Language': 'language.conversation_language',
125
+ 'Agent Prompt': 'language.agent_prompt_language',
126
+ 'Nickname': 'user.nickname'
127
+ }
128
+ };
129
+ ```
130
+
131
+ ### TEAM_MODE_BATCH_TEMPLATE
132
+
133
+ ```typescript
134
+ export const TEAM_MODE_BATCH_TEMPLATE: BatchTemplate = {
135
+ name: 'team-mode-batch',
136
+ description: 'Configure team-specific GitHub and Git settings',
137
+ conditional: {
138
+ field: 'mode',
139
+ operator: 'equals',
140
+ value: 'team'
141
+ },
142
+ questions: [
143
+ {
144
+ question: "[Team Mode] Is 'Automatically delete head branches' enabled in your GitHub repository settings?",
145
+ header: "GitHub Settings",
146
+ multiSelect: false,
147
+ options: [
148
+ {
149
+ label: "Yes, already enabled",
150
+ description: "PR merge 후 자동으로 원격 브랜치 삭제됨",
151
+ value: "true"
152
+ },
153
+ {
154
+ label: "No, not enabled (Recommended: Enable)",
155
+ description: "Settings → General → '자동 삭제' 체크박스 확인 필요",
156
+ value: "false",
157
+ warning: "Recommended to enable for better repository hygiene"
158
+ },
159
+ {
160
+ label: "Not sure / Need to check",
161
+ description: "GitHub Settings → General 확인 후 다시 진행",
162
+ value: "null"
163
+ }
164
+ ]
165
+ },
166
+ {
167
+ question: "[Team Mode] Which Git workflow should we use when creating SPEC documents?",
168
+ header: "Git Workflow",
169
+ multiSelect: false,
170
+ options: [
171
+ {
172
+ label: "Feature Branch + PR",
173
+ description: "매 SPEC마다 feature 브랜치 생성 → PR 리뷰 → develop 병합",
174
+ value: "feature_branch",
175
+ recommended: true
176
+ },
177
+ {
178
+ label: "Direct Commit to Develop",
179
+ description: "브랜치 생성 없이 develop에 직접 커밋. 빠른 프로토타이핑에 최적",
180
+ value: "develop_direct"
181
+ },
182
+ {
183
+ label: "Decide per SPEC",
184
+ description: "SPEC 생성 시마다 매번 선택. 유연성이 높지만 결정 필요",
185
+ value: "per_spec"
186
+ }
187
+ ]
188
+ }
189
+ ],
190
+ mapping: {
191
+ 'GitHub Settings': 'github.auto_delete_branches',
192
+ 'Git Workflow': 'github.spec_git_workflow'
193
+ }
194
+ };
195
+ ```
196
+
197
+ ### REPORT_GENERATION_BATCH_TEMPLATE
198
+
199
+ ```typescript
200
+ export const REPORT_GENERATION_BATCH_TEMPLATE: BatchTemplate = {
201
+ name: 'report-generation-batch',
202
+ description: 'Configure report generation with token cost awareness',
203
+ questions: [
204
+ {
205
+ question: `Configure report generation for better performance and cost management:
206
+
207
+ ⚡ **Minimal (Recommended)**: Essential reports only (20-30 tokens/report)
208
+ 📊 **Enable**: Full analysis reports (50-60 tokens/report)
209
+ 🚫 **Disable**: No automatic reports (0 tokens)
210
+
211
+ Choice affects future /alfred:3-sync execution time and costs.`,
212
+ header: "Report Generation",
213
+ multiSelect: false,
214
+ options: [
215
+ {
216
+ label: "Minimal (Recommended)",
217
+ description: "80% token reduction, faster sync times",
218
+ value: "minimal",
219
+ recommended: true
220
+ },
221
+ {
222
+ label: "Enable",
223
+ description: "Complete analysis reports, higher token usage",
224
+ value: "enable"
225
+ },
226
+ {
227
+ label: "Disable",
228
+ description: "No automatic reports, zero token cost",
229
+ value: "disable",
230
+ warning: "You'll miss important project insights and metrics"
231
+ }
232
+ ]
233
+ }
234
+ ],
235
+ mapping: {
236
+ 'Report Generation': 'report_generation.enabled'
237
+ }
238
+ };
239
+ ```
240
+
241
+ ### DOMAIN_SELECTION_BATCH_TEMPLATE
242
+
243
+ ```typescript
244
+ export const DOMAIN_SELECTION_BATCH_TEMPLATE: BatchTemplate = {
245
+ name: 'domain-selection-batch',
246
+ description: 'Select project domains and technology areas',
247
+ questions: [
248
+ {
249
+ question: "Which domains and technology areas should be included in this project?",
250
+ header: "Domains",
251
+ multiSelect: true,
252
+ options: [
253
+ {
254
+ label: "Backend API",
255
+ description: "REST/GraphQL APIs, server-side logic, databases",
256
+ value: "backend"
257
+ },
258
+ {
259
+ label: "Frontend Web",
260
+ description: "React/Vue/Angular, UI components, client-side logic",
261
+ value: "frontend"
262
+ },
263
+ {
264
+ label: "Mobile App",
265
+ description: "iOS/Android apps, React Native, Flutter",
266
+ value: "mobile"
267
+ },
268
+ {
269
+ label: "DevOps/Infrastructure",
270
+ description: "CI/CD, Docker, Kubernetes, cloud deployment",
271
+ value: "devops"
272
+ },
273
+ {
274
+ label: "Data/Analytics",
275
+ description: "Data processing, ML pipelines, analytics dashboards",
276
+ value: "data"
277
+ }
278
+ ]
279
+ }
280
+ ],
281
+ mapping: {
282
+ 'Domains': 'project.domains'
283
+ },
284
+ validation: {
285
+ minSelections: 1,
286
+ maxSelections: 5
287
+ }
288
+ };
289
+ ```
290
+
291
+ ---
292
+
293
+ ## Template Execution API
294
+
295
+ ### executeBatchTemplate()
296
+
297
+ ```typescript
298
+ async function executeBatchTemplate(
299
+ template: BatchTemplate,
300
+ context?: ExecutionContext
301
+ ): Promise<BatchResult>
302
+
303
+ interface ExecutionContext {
304
+ currentConfig?: Partial<Config>;
305
+ language?: string;
306
+ mode?: string;
307
+ skipValidation?: boolean;
308
+ }
309
+
310
+ interface BatchResult {
311
+ success: boolean;
312
+ responses: Record<string, string | string[]>;
313
+ config: Partial<Config>;
314
+ errors?: string[];
315
+ warnings?: string[];
316
+ metrics?: {
317
+ executionTime: number;
318
+ questionCount: number;
319
+ tokenUsage: number;
320
+ };
321
+ }
322
+ ```
323
+
324
+ ### Usage Example
325
+
326
+ ```typescript
327
+ // Execute language batch with context
328
+ const result = await executeBatchTemplate(LANGUAGE_BATCH_TEMPLATE, {
329
+ language: 'ko', // Show questions in Korean
330
+ currentConfig: existingConfig
331
+ });
332
+
333
+ if (result.success) {
334
+ // Merge into existing config
335
+ const updatedConfig = { ...existingConfig, ...result.config };
336
+ await saveConfig('.moai/config.json', updatedConfig);
337
+
338
+ console.log(`✅ Batch completed in ${result.metrics.executionTime}ms`);
339
+ } else {
340
+ console.error('❌ Batch failed:', result.errors);
341
+ }
342
+ ```
343
+
344
+ ---
345
+
346
+ ## Template Builder API
347
+
348
+ ### createCustomBatch()
349
+
350
+ ```typescript
351
+ function createCustomBatch(config: CustomBatchConfig): BatchTemplate
352
+
353
+ interface CustomBatchConfig {
354
+ name: string;
355
+ description: string;
356
+ questions: QuestionConfig[];
357
+ conditional?: ConditionalConfig;
358
+ validation?: ValidationConfig;
359
+ }
360
+
361
+ interface QuestionConfig {
362
+ question: string;
363
+ header: string;
364
+ multiSelect: boolean;
365
+ options: OptionConfig[];
366
+ conditional?: string;
367
+ validation?: ValidationRuleConfig;
368
+ }
369
+ ```
370
+
371
+ ### Example
372
+
373
+ ```typescript
374
+ const customBatch = createCustomBatch({
375
+ name: 'database-selection',
376
+ description: 'Select database and migration strategy',
377
+ questions: [
378
+ {
379
+ question: "Which database should we use for this project?",
380
+ header: "Database",
381
+ multiSelect: false,
382
+ options: [
383
+ { label: "PostgreSQL", description: "Relational, ACID-compliant" },
384
+ { label: "MongoDB", description: "Document store, flexible schema" },
385
+ { label: "SQLite", description: "File-based, simple setup" }
386
+ ]
387
+ },
388
+ {
389
+ question: "How should we handle database migrations?",
390
+ header: "Migrations",
391
+ multiSelect: false,
392
+ conditional: "Database !== SQLite", // Only show if not SQLite
393
+ options: [
394
+ { label: "Alembic (Python)", description: "Version control for schema" },
395
+ { label: "Prisma Migrate", description: "Type-safe migrations" },
396
+ { label: "Manual SQL", description: "Custom migration scripts" }
397
+ ]
398
+ }
399
+ ]
400
+ });
401
+ ```
402
+
403
+ ---
404
+
405
+ ## Validation API
406
+
407
+ ### validateBatchResponses()
408
+
409
+ ```typescript
410
+ function validateBatchResponses(
411
+ responses: Record<string, string | string[]>,
412
+ template: BatchTemplate
413
+ ): ValidationResult
414
+
415
+ interface ValidationResult {
416
+ isValid: boolean;
417
+ errors: ValidationError[];
418
+ warnings: ValidationWarning[];
419
+ }
420
+
421
+ interface ValidationError {
422
+ field: string;
423
+ message: string;
424
+ code: string;
425
+ }
426
+
427
+ interface ValidationWarning {
428
+ field: string;
429
+ message: string;
430
+ code: string;
431
+ }
432
+ ```
433
+
434
+ ### Built-in Validation Rules
435
+
436
+ ```typescript
437
+ export const VALIDATION_RULES = {
438
+ REQUIRED: 'required',
439
+ MAX_LENGTH: 'max_length',
440
+ MIN_LENGTH: 'min_length',
441
+ PATTERN: 'pattern',
442
+ MIN_SELECTIONS: 'min_selections',
443
+ MAX_SELECTIONS: 'max_selections',
444
+ UNIQUE_VALUES: 'unique_values'
445
+ };
446
+ ```
447
+
448
+ ### Custom Validation Example
449
+
450
+ ```typescript
451
+ const templateWithValidation: BatchTemplate = {
452
+ name: 'project-settings',
453
+ questions: [
454
+ {
455
+ question: "Enter project name (3-50 chars, alphanumeric + spaces)",
456
+ header: "Project Name",
457
+ multiSelect: false,
458
+ options: [{ label: "Enter name", description: "Use 'Other' option" }],
459
+ validation: {
460
+ required: true,
461
+ minLength: 3,
462
+ maxLength: 50,
463
+ pattern: /^[a-zA-Z0-9\s]{3,50}$/,
464
+ errorMessage: "Project name must be 3-50 characters, alphanumeric and spaces only"
465
+ }
466
+ }
467
+ ]
468
+ };
469
+ ```
470
+
471
+ ---
472
+
473
+ ## Configuration Mapping API
474
+
475
+ ### mapResponsesToConfig()
476
+
477
+ ```typescript
478
+ function mapResponsesToConfig(
479
+ responses: Record<string, string | string[]>,
480
+ template: BatchTemplate
481
+ ): Partial<Config>
482
+
483
+ interface ConfigMapping {
484
+ [header: string]: string; // Maps question header to config path
485
+ }
486
+ ```
487
+
488
+ ### Advanced Mapping Example
489
+
490
+ ```typescript
491
+ const advancedTemplate: BatchTemplate = {
492
+ name: 'advanced-setup',
493
+ questions: [
494
+ {
495
+ question: "Select project deployment environments",
496
+ header: "Environments",
497
+ multiSelect: true,
498
+ options: [
499
+ { label: "Development", value: "dev" },
500
+ { label: "Staging", value: "staging" },
501
+ { label: "Production", value: "prod" }
502
+ ]
503
+ }
504
+ ],
505
+ mapping: {
506
+ 'Environments': 'deployment.environments'
507
+ },
508
+ postProcessors: {
509
+ 'Environments': (value: string[]) => ({
510
+ enabled: value,
511
+ default: value.includes('prod') ? 'staging' : value[0]
512
+ })
513
+ }
514
+ };
515
+ ```
516
+
517
+ ---
518
+
519
+ ## Multi-Language Support API
520
+
521
+ ### getLocalizedTemplate()
522
+
523
+ ```typescript
524
+ function getLocalizedTemplate(
525
+ templateName: string,
526
+ language: string
527
+ ): BatchTemplate
528
+ ```
529
+
530
+ ### Supported Languages
531
+
532
+ ```typescript
533
+ export const SUPPORTED_LANGUAGES = {
534
+ KO: 'ko', // Korean
535
+ EN: 'en', // English
536
+ JA: 'ja', // Japanese
537
+ ZH: 'zh' // Chinese
538
+ };
539
+ ```
540
+
541
+ ### Example
542
+
543
+ ```typescript
544
+ // Get Korean version of language batch
545
+ const koreanTemplate = getLocalizedTemplate('language-batch', 'ko');
546
+
547
+ // The template will have:
548
+ // - Korean question text
549
+ // - Korean option labels
550
+ // - Korean descriptions
551
+ // - Same validation rules
552
+ // - Same mapping logic
553
+ ```
554
+
555
+ ---
556
+
557
+ ## Error Handling API
558
+
559
+ ### BatchError Classes
560
+
561
+ ```typescript
562
+ class BatchValidationError extends Error {
563
+ constructor(
564
+ public validationErrors: ValidationError[],
565
+ message?: string
566
+ ) {
567
+ super(message || 'Batch validation failed');
568
+ }
569
+ }
570
+
571
+ class BatchExecutionError extends Error {
572
+ constructor(
573
+ public originalError: Error,
574
+ public templateName: string,
575
+ message?: string
576
+ ) {
577
+ super(message || `Batch execution failed: ${templateName}`);
578
+ }
579
+ }
580
+
581
+ class UserCancelledError extends Error {
582
+ constructor(public templateName: string) {
583
+ super(`User cancelled batch: ${templateName}`);
584
+ }
585
+ }
586
+ ```
587
+
588
+ ### Error Handling Pattern
589
+
590
+ ```typescript
591
+ try {
592
+ const result = await executeBatchTemplate(template, context);
593
+ // Process result...
594
+ } catch (error) {
595
+ if (error instanceof BatchValidationError) {
596
+ // Handle validation errors
597
+ console.error('Validation failed:', error.validationErrors);
598
+ await retryWithCorrections(error.validationErrors);
599
+ } else if (error instanceof UserCancelledError) {
600
+ // Handle user cancellation
601
+ console.log('User cancelled:', error.templateName);
602
+ await offerPartialSave();
603
+ } else {
604
+ // Handle other errors
605
+ console.error('Unexpected error:', error);
606
+ await fallbackToManualInput();
607
+ }
608
+ }
609
+ ```
610
+
611
+ ---
612
+
613
+ ## Performance Monitoring API
614
+
615
+ ### BatchMetrics Class
616
+
617
+ ```typescript
618
+ class BatchMetrics {
619
+ private metrics: MetricEntry[] = [];
620
+
621
+ recordExecution(entry: MetricEntry): void;
622
+ getMetrics(templateName?: string): MetricEntry[];
623
+ generateReport(): PerformanceReport;
624
+ exportMetrics(): string; // JSON export
625
+ }
626
+
627
+ interface MetricEntry {
628
+ templateName: string;
629
+ timestamp: Date;
630
+ executionTime: number;
631
+ questionCount: number;
632
+ interactionCount: number;
633
+ tokenUsage: number;
634
+ success: boolean;
635
+ errorType?: string;
636
+ }
637
+ ```
638
+
639
+ ### Usage Example
640
+
641
+ ```typescript
642
+ const metrics = new BatchMetrics();
643
+
644
+ // Track execution
645
+ const result = await metrics.trackExecution('language-batch', async () => {
646
+ return await executeBatchTemplate(LANGUAGE_BATCH_TEMPLATE);
647
+ });
648
+
649
+ // Generate report
650
+ const report = metrics.generateReport();
651
+ console.log(`Total interactions saved: ${report.interactionsSaved}`);
652
+ console.log(`Average execution time: ${report.avgExecutionTime}ms`);
653
+ ```
654
+
655
+ ---
656
+
657
+ ## Integration Points
658
+
659
+ ### Alfred Command Integration
660
+
661
+ ```typescript
662
+ // In 0-project.md
663
+ async function handleProjectInitialization() {
664
+ const context = {
665
+ language: detectUserLanguage(),
666
+ mode: detectProjectMode()
667
+ };
668
+
669
+ // Execute language batch
670
+ const langResult = await executeBatchTemplate(LANGUAGE_BATCH_TEMPLATE, context);
671
+
672
+ // Conditionally execute team batch
673
+ if (context.mode === 'team') {
674
+ const teamResult = await executeBatchTemplate(TEAM_MODE_BATCH_TEMPLATE, context);
675
+ }
676
+
677
+ // Continue with initialization...
678
+ }
679
+ ```
680
+
681
+ ### Sub-agent Integration
682
+
683
+ ```typescript
684
+ // In project-manager agent
685
+ async function conductProjectInterview() {
686
+ const batches = [
687
+ DOMAIN_SELECTION_BATCH_TEMPLATE,
688
+ LANGUAGE_BATCH_TEMPLATE,
689
+ REPORT_GENERATION_BATCH_TEMPLATE
690
+ ];
691
+
692
+ const results = {};
693
+ for (const batch of batches) {
694
+ const result = await executeBatchTemplate(batch);
695
+ Object.assign(results, result.config);
696
+ }
697
+
698
+ return results;
699
+ }
700
+ ```
701
+
702
+ ---
703
+
704
+ **End of Reference** | Created 2025-11-05 | Complete API documentation