@zeyue0329/xiaoma-cli 1.0.48 → 6.0.0-alpha.13

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 (914) hide show
  1. package/README.md +0 -2
  2. package/custom/src/agents/commit-poet/commit-poet.agent.yaml +129 -0
  3. package/custom/src/agents/commit-poet/installation-guide.md +36 -0
  4. package/custom/src/agents/toolsmith/installation-guide.md +36 -0
  5. package/custom/src/agents/toolsmith/toolsmith-sidecar/instructions.md +70 -0
  6. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +111 -0
  7. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +70 -0
  8. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +114 -0
  9. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +134 -0
  10. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +160 -0
  11. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +103 -0
  12. package/custom/src/agents/toolsmith/toolsmith-sidecar/memories.md +17 -0
  13. package/custom/src/agents/toolsmith/toolsmith.agent.yaml +108 -0
  14. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  15. package/docs/agent-customization-guide.md +208 -0
  16. package/docs/custom-agent-installation.md +183 -0
  17. package/docs/document-sharding-guide.md +449 -0
  18. package/docs/ide-info/auggie.md +31 -0
  19. package/docs/ide-info/claude-code.md +25 -0
  20. package/docs/ide-info/cline.md +31 -0
  21. package/docs/ide-info/codex.md +21 -0
  22. package/docs/ide-info/crush.md +30 -0
  23. package/docs/ide-info/cursor.md +25 -0
  24. package/docs/ide-info/gemini.md +25 -0
  25. package/docs/ide-info/github-copilot.md +26 -0
  26. package/docs/ide-info/iflow.md +33 -0
  27. package/docs/ide-info/kilo.md +24 -0
  28. package/docs/ide-info/opencode.md +24 -0
  29. package/docs/ide-info/qwen.md +25 -0
  30. package/docs/ide-info/roo.md +27 -0
  31. package/docs/ide-info/rovo-dev.md +388 -0
  32. package/docs/ide-info/trae.md +25 -0
  33. package/docs/ide-info/windsurf.md +22 -0
  34. package/docs/index.md +144 -0
  35. package/docs/installers-bundlers/ide-injections.md +186 -0
  36. package/docs/installers-bundlers/installers-modules-platforms-reference.md +379 -0
  37. package/docs/rag/rag.md +812 -0
  38. package/docs/v4-to-v6-upgrade.md +220 -0
  39. package/docs/v6-open-items.md +17 -0
  40. package/docs/web-bundles-gemini-gpt-guide.md +468 -0
  41. package/eslint.config.mjs +133 -0
  42. package/package.json +41 -51
  43. package/prettier.config.mjs +32 -0
  44. package/src/core/_module-installer/install-config.yaml +29 -0
  45. package/src/core/_module-installer/installer.js +60 -0
  46. package/src/core/agents/xiaoma-master.agent.yaml +39 -0
  47. package/src/core/agents/xiaoma-web-orchestrator.agent.xml +113 -0
  48. package/src/core/resources/excalidraw/README.md +160 -0
  49. package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  50. package/src/core/resources/excalidraw/library-loader.md +50 -0
  51. package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
  52. package/src/core/tasks/advanced-elicitation-methods.csv +51 -0
  53. package/src/core/tasks/advanced-elicitation.xml +116 -0
  54. package/src/core/tasks/index-docs.xml +65 -0
  55. package/src/core/tasks/validate-workflow.xml +89 -0
  56. package/src/core/tasks/workflow.xml +235 -0
  57. package/src/core/tools/shard-doc.xml +109 -0
  58. package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
  59. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +196 -0
  60. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +121 -0
  61. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +224 -0
  62. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +236 -0
  63. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +208 -0
  64. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +263 -0
  65. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +339 -0
  66. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +302 -0
  67. package/src/core/workflows/brainstorming/template.md +15 -0
  68. package/src/core/workflows/brainstorming/workflow.md +51 -0
  69. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  70. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +203 -0
  71. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +159 -0
  72. package/src/core/workflows/party-mode/workflow.md +207 -0
  73. package/src/modules/cis/_module-installer/install-config.yaml +16 -0
  74. package/src/modules/cis/_module-installer/installer.js +92 -0
  75. package/src/modules/cis/agents/README.md +104 -0
  76. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +29 -0
  77. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +29 -0
  78. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +29 -0
  79. package/src/modules/cis/agents/innovation-strategist.agent.yaml +29 -0
  80. package/src/modules/cis/agents/presentation-master.agent.yaml +61 -0
  81. package/src/modules/cis/agents/storyteller.agent.yaml +29 -0
  82. package/src/modules/cis/readme.md +153 -0
  83. package/src/modules/cis/teams/creative-squad.yaml +7 -0
  84. package/src/modules/cis/teams/default-party.csv +12 -0
  85. package/src/modules/cis/workflows/README.md +139 -0
  86. package/src/modules/cis/workflows/design-thinking/README.md +56 -0
  87. package/src/modules/cis/workflows/design-thinking/design-methods.csv +31 -0
  88. package/src/modules/cis/workflows/design-thinking/instructions.md +202 -0
  89. package/src/modules/cis/workflows/design-thinking/template.md +111 -0
  90. package/src/modules/cis/workflows/design-thinking/workflow.yaml +38 -0
  91. package/src/modules/cis/workflows/innovation-strategy/README.md +56 -0
  92. package/src/modules/cis/workflows/innovation-strategy/innovation-frameworks.csv +31 -0
  93. package/src/modules/cis/workflows/innovation-strategy/instructions.md +276 -0
  94. package/src/modules/cis/workflows/innovation-strategy/template.md +189 -0
  95. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +38 -0
  96. package/src/modules/cis/workflows/problem-solving/README.md +56 -0
  97. package/src/modules/cis/workflows/problem-solving/instructions.md +252 -0
  98. package/src/modules/cis/workflows/problem-solving/solving-methods.csv +31 -0
  99. package/src/modules/cis/workflows/problem-solving/template.md +165 -0
  100. package/src/modules/cis/workflows/problem-solving/workflow.yaml +38 -0
  101. package/src/modules/cis/workflows/storytelling/README.md +58 -0
  102. package/src/modules/cis/workflows/storytelling/instructions.md +293 -0
  103. package/src/modules/cis/workflows/storytelling/story-types.csv +26 -0
  104. package/src/modules/cis/workflows/storytelling/template.md +113 -0
  105. package/src/modules/cis/workflows/storytelling/workflow.yaml +38 -0
  106. package/src/modules/xmb/README.md +261 -0
  107. package/src/modules/xmb/_module-installer/install-config.yaml +28 -0
  108. package/src/modules/xmb/agents/xiaoma-builder.agent.yaml +71 -0
  109. package/src/modules/xmb/docs/agents/agent-compilation.md +340 -0
  110. package/src/modules/xmb/docs/agents/agent-menu-patterns.md +524 -0
  111. package/src/modules/xmb/docs/agents/expert-agent-architecture.md +364 -0
  112. package/src/modules/xmb/docs/agents/index.md +55 -0
  113. package/src/modules/xmb/docs/agents/kb.csv +0 -0
  114. package/src/modules/xmb/docs/agents/module-agent-architecture.md +367 -0
  115. package/src/modules/xmb/docs/agents/simple-agent-architecture.md +288 -0
  116. package/src/modules/xmb/docs/agents/understanding-agent-types.md +184 -0
  117. package/src/modules/xmb/docs/workflows/architecture.md +220 -0
  118. package/src/modules/xmb/docs/workflows/common-workflow-tools.csv +19 -0
  119. package/src/modules/xmb/docs/workflows/csv-data-file-standards.md +206 -0
  120. package/src/modules/xmb/docs/workflows/index.md +45 -0
  121. package/src/modules/xmb/docs/workflows/intent-vs-prescriptive-spectrum.md +220 -0
  122. package/src/modules/xmb/docs/workflows/kb.csv +0 -0
  123. package/src/modules/xmb/docs/workflows/step-template.md +283 -0
  124. package/src/modules/xmb/docs/workflows/terms.md +97 -0
  125. package/src/modules/xmb/docs/workflows/workflow-template.md +152 -0
  126. package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/README.md +242 -0
  127. package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
  128. package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
  129. package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
  130. package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
  131. package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
  132. package/src/modules/xmb/reference/agents/module-examples/README.md +50 -0
  133. package/src/modules/xmb/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
  134. package/src/modules/xmb/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
  135. package/src/modules/xmb/reference/agents/simple-examples/README.md +223 -0
  136. package/src/modules/xmb/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
  137. package/src/modules/xmb/reference/readme.md +3 -0
  138. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  139. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  140. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  141. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
  142. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
  143. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  144. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
  145. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  146. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  147. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  148. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  149. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  150. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  151. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  152. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  153. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  154. package/src/modules/xmb/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  155. package/src/modules/xmb/workflows/create-agent/data/agent-validation-checklist.md +174 -0
  156. package/src/modules/xmb/workflows/create-agent/data/brainstorm-context.md +153 -0
  157. package/src/modules/xmb/workflows/create-agent/data/communication-presets.csv +61 -0
  158. package/src/modules/xmb/workflows/create-agent/data/info-and-installation-guide.md +17 -0
  159. package/src/modules/xmb/workflows/create-agent/data/reference/README.md +3 -0
  160. package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/README.md +242 -0
  161. package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
  162. package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
  163. package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
  164. package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
  165. package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
  166. package/src/modules/xmb/workflows/create-agent/data/reference/agents/module-examples/README.md +50 -0
  167. package/src/modules/xmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
  168. package/src/modules/xmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
  169. package/src/modules/xmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +223 -0
  170. package/src/modules/xmb/workflows/create-agent/data/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
  171. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  172. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  173. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  174. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
  175. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
  176. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  177. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
  178. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  179. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  180. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  181. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  182. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  183. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  184. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  185. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  186. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  187. package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  188. package/src/modules/xmb/workflows/create-agent/data/validation-complete.md +305 -0
  189. package/src/modules/xmb/workflows/create-agent/steps/step-01-brainstorm.md +145 -0
  190. package/src/modules/xmb/workflows/create-agent/steps/step-02-discover.md +210 -0
  191. package/src/modules/xmb/workflows/create-agent/steps/step-03-persona.md +260 -0
  192. package/src/modules/xmb/workflows/create-agent/steps/step-04-commands.md +237 -0
  193. package/src/modules/xmb/workflows/create-agent/steps/step-05-name.md +231 -0
  194. package/src/modules/xmb/workflows/create-agent/steps/step-06-build.md +224 -0
  195. package/src/modules/xmb/workflows/create-agent/steps/step-07-validate.md +234 -0
  196. package/src/modules/xmb/workflows/create-agent/steps/step-08-setup.md +179 -0
  197. package/src/modules/xmb/workflows/create-agent/steps/step-09-customize.md +197 -0
  198. package/src/modules/xmb/workflows/create-agent/steps/step-10-build-tools.md +180 -0
  199. package/src/modules/xmb/workflows/create-agent/steps/step-11-celebrate.md +222 -0
  200. package/src/modules/xmb/workflows/create-agent/templates/agent_commands.md +21 -0
  201. package/src/modules/xmb/workflows/create-agent/templates/agent_persona.md +25 -0
  202. package/src/modules/xmb/workflows/create-agent/templates/agent_purpose_and_type.md +23 -0
  203. package/src/modules/xmb/workflows/create-agent/workflow.md +91 -0
  204. package/src/modules/xmb/workflows/create-workflow/steps/step-01-init.md +168 -0
  205. package/src/modules/xmb/workflows/create-workflow/steps/step-02-gather.md +233 -0
  206. package/src/modules/xmb/workflows/create-workflow/steps/step-03-tools-overview.md +127 -0
  207. package/src/modules/xmb/workflows/create-workflow/steps/step-04-core-tools.md +145 -0
  208. package/src/modules/xmb/workflows/create-workflow/steps/step-05-memory-requirements.md +136 -0
  209. package/src/modules/xmb/workflows/create-workflow/steps/step-06-external-tools.md +154 -0
  210. package/src/modules/xmb/workflows/create-workflow/steps/step-07-installation-guidance.md +159 -0
  211. package/src/modules/xmb/workflows/create-workflow/steps/step-08-tools-summary.md +167 -0
  212. package/src/modules/xmb/workflows/create-workflow/steps/step-09-design.md +239 -0
  213. package/src/modules/xmb/workflows/create-workflow/steps/step-10-plan-review.md +215 -0
  214. package/src/modules/xmb/workflows/create-workflow/steps/step-11-build.md +262 -0
  215. package/src/modules/xmb/workflows/create-workflow/steps/step-12-review.md +270 -0
  216. package/src/modules/xmb/workflows/create-workflow/templates/build-summary.md +36 -0
  217. package/src/modules/xmb/workflows/create-workflow/templates/completion-section.md +39 -0
  218. package/src/modules/xmb/workflows/create-workflow/templates/content-template.md +21 -0
  219. package/src/modules/xmb/workflows/create-workflow/templates/design-section.md +53 -0
  220. package/src/modules/xmb/workflows/create-workflow/templates/project-info.md +18 -0
  221. package/src/modules/xmb/workflows/create-workflow/templates/requirements-section.md +47 -0
  222. package/src/modules/xmb/workflows/create-workflow/templates/review-section.md +56 -0
  223. package/src/modules/xmb/workflows/create-workflow/templates/step-file.md +139 -0
  224. package/src/modules/xmb/workflows/create-workflow/templates/workflow-plan.md +54 -0
  225. package/src/modules/xmb/workflows/create-workflow/templates/workflow.md +58 -0
  226. package/src/modules/xmb/workflows/create-workflow/workflow.md +58 -0
  227. package/src/modules/xmb/workflows/edit-agent/steps/step-01-discover-intent.md +134 -0
  228. package/src/modules/xmb/workflows/edit-agent/steps/step-02-analyze-agent.md +202 -0
  229. package/src/modules/xmb/workflows/edit-agent/steps/step-03-propose-changes.md +157 -0
  230. package/src/modules/xmb/workflows/edit-agent/steps/step-04-apply-changes.md +150 -0
  231. package/src/modules/xmb/workflows/edit-agent/steps/step-05-validate.md +150 -0
  232. package/src/modules/xmb/workflows/edit-agent/workflow.md +58 -0
  233. package/src/modules/xmb/workflows/edit-workflow/steps/step-01-analyze.md +221 -0
  234. package/src/modules/xmb/workflows/edit-workflow/steps/step-02-discover.md +253 -0
  235. package/src/modules/xmb/workflows/edit-workflow/steps/step-03-improve.md +217 -0
  236. package/src/modules/xmb/workflows/edit-workflow/steps/step-04-validate.md +193 -0
  237. package/src/modules/xmb/workflows/edit-workflow/steps/step-05-compliance-check.md +245 -0
  238. package/src/modules/xmb/workflows/edit-workflow/templates/completion-summary.md +75 -0
  239. package/src/modules/xmb/workflows/edit-workflow/templates/improvement-goals.md +68 -0
  240. package/src/modules/xmb/workflows/edit-workflow/templates/improvement-log.md +40 -0
  241. package/src/modules/xmb/workflows/edit-workflow/templates/validation-results.md +51 -0
  242. package/src/modules/xmb/workflows/edit-workflow/templates/workflow-analysis.md +56 -0
  243. package/src/modules/xmb/workflows/edit-workflow/workflow.md +58 -0
  244. package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +152 -0
  245. package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +243 -0
  246. package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +274 -0
  247. package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +295 -0
  248. package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +264 -0
  249. package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +360 -0
  250. package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +258 -0
  251. package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +301 -0
  252. package/src/modules/xmb/workflows/workflow-compliance-check/templates/compliance-report.md +140 -0
  253. package/src/modules/xmb/workflows/workflow-compliance-check/workflow.md +58 -0
  254. package/src/modules/xmb/workflows-legacy/create-module/README.md +229 -0
  255. package/src/modules/xmb/workflows-legacy/create-module/brainstorm-context.md +137 -0
  256. package/src/modules/xmb/workflows-legacy/create-module/checklist.md +235 -0
  257. package/src/modules/xmb/workflows-legacy/create-module/installer-templates/install-config.yaml +92 -0
  258. package/src/modules/xmb/workflows-legacy/create-module/installer-templates/installer.js +231 -0
  259. package/src/modules/xmb/workflows-legacy/create-module/instructions.md +577 -0
  260. package/src/modules/xmb/workflows-legacy/create-module/module-structure.md +400 -0
  261. package/src/modules/xmb/workflows-legacy/create-module/workflow.yaml +52 -0
  262. package/src/modules/xmb/workflows-legacy/edit-module/README.md +187 -0
  263. package/src/modules/xmb/workflows-legacy/edit-module/checklist.md +165 -0
  264. package/src/modules/xmb/workflows-legacy/edit-module/instructions.md +341 -0
  265. package/src/modules/xmb/workflows-legacy/edit-module/workflow.yaml +34 -0
  266. package/src/modules/xmb/workflows-legacy/module-brief/README.md +264 -0
  267. package/src/modules/xmb/workflows-legacy/module-brief/checklist.md +116 -0
  268. package/src/modules/xmb/workflows-legacy/module-brief/instructions.md +268 -0
  269. package/src/modules/xmb/workflows-legacy/module-brief/template.md +275 -0
  270. package/src/modules/xmb/workflows-legacy/module-brief/workflow.yaml +36 -0
  271. package/src/modules/xmc/README.md +128 -0
  272. package/src/modules/xmc/_module-installer/install-config.yaml +53 -0
  273. package/src/modules/xmc/_module-installer/installer.js +131 -0
  274. package/src/modules/xmc/_module-installer/platform-specifics/claude-code.js +35 -0
  275. package/src/modules/xmc/_module-installer/platform-specifics/windsurf.js +32 -0
  276. package/src/modules/xmc/agents/analyst.agent.yaml +49 -0
  277. package/src/modules/xmc/agents/architect.agent.yaml +52 -0
  278. package/src/modules/xmc/agents/auto-iteration-orchestrator.agent.yaml +115 -0
  279. package/src/modules/xmc/agents/dev.agent.yaml +44 -0
  280. package/src/modules/xmc/agents/pm.agent.yaml +50 -0
  281. package/src/modules/xmc/agents/quick-flow-solo-dev.agent.yaml +36 -0
  282. package/src/modules/xmc/agents/sm.agent.yaml +55 -0
  283. package/src/modules/xmc/agents/tea.agent.yaml +70 -0
  284. package/src/modules/xmc/agents/tech-writer.agent.yaml +67 -0
  285. package/src/modules/xmc/agents/ux-designer.agent.yaml +45 -0
  286. package/src/modules/xmc/data/README.md +29 -0
  287. package/src/modules/xmc/data/documentation-standards.md +262 -0
  288. package/src/modules/xmc/data/project-context-template.md +40 -0
  289. package/src/modules/xmc/docs/README.md +252 -0
  290. package/src/modules/xmc/docs/agents-guide.md +952 -0
  291. package/src/modules/xmc/docs/brownfield-guide.md +750 -0
  292. package/src/modules/xmc/docs/enterprise-agentic-development.md +686 -0
  293. package/src/modules/xmc/docs/faq.md +561 -0
  294. package/src/modules/xmc/docs/glossary.md +303 -0
  295. package/src/modules/xmc/docs/images/workflow-method-greenfield.excalidraw +5174 -0
  296. package/src/modules/xmc/docs/images/workflow-method-greenfield.svg +2 -0
  297. package/src/modules/xmc/docs/iteration-development-guide.md +752 -0
  298. package/src/modules/xmc/docs/party-mode.md +224 -0
  299. package/src/modules/xmc/docs/quick-flow-solo-dev.md +337 -0
  300. package/src/modules/xmc/docs/quick-start.md +367 -0
  301. package/src/modules/xmc/docs/scale-adaptive-system.md +618 -0
  302. package/src/modules/xmc/docs/test-architecture.md +462 -0
  303. package/src/modules/xmc/docs/workflow-architecture-reference.md +366 -0
  304. package/src/modules/xmc/docs/workflow-document-project-reference.md +489 -0
  305. package/src/modules/xmc/docs/workflows-analysis.md +266 -0
  306. package/src/modules/xmc/docs/workflows-implementation.md +171 -0
  307. package/src/modules/xmc/docs/workflows-planning.md +451 -0
  308. package/src/modules/xmc/docs/workflows-solutioning.md +509 -0
  309. package/src/modules/xmc/docs/xiaoma-quick-flow.md +528 -0
  310. package/src/modules/xmc/sub-modules/claude-code/config.yaml +5 -0
  311. package/src/modules/xmc/sub-modules/claude-code/injections.yaml +242 -0
  312. package/src/modules/xmc/sub-modules/claude-code/readme.md +87 -0
  313. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-analysis/api-documenter.md +102 -0
  314. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md +82 -0
  315. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md +101 -0
  316. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md +84 -0
  317. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md +83 -0
  318. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md +81 -0
  319. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md +61 -0
  320. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md +168 -0
  321. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md +115 -0
  322. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md +123 -0
  323. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md +72 -0
  324. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md +51 -0
  325. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md +106 -0
  326. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md +102 -0
  327. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md +68 -0
  328. package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md +108 -0
  329. package/src/modules/xmc/teams/default-party.csv +21 -0
  330. package/src/modules/xmc/teams/team-fullstack.yaml +12 -0
  331. package/src/modules/xmc/testarch/knowledge/api-request.md +303 -0
  332. package/src/modules/xmc/testarch/knowledge/auth-session.md +356 -0
  333. package/src/modules/xmc/testarch/knowledge/burn-in.md +273 -0
  334. package/src/modules/xmc/testarch/knowledge/ci-burn-in.md +675 -0
  335. package/src/modules/xmc/testarch/knowledge/component-tdd.md +486 -0
  336. package/src/modules/xmc/testarch/knowledge/contract-testing.md +957 -0
  337. package/src/modules/xmc/testarch/knowledge/data-factories.md +500 -0
  338. package/src/modules/xmc/testarch/knowledge/email-auth.md +721 -0
  339. package/src/modules/xmc/testarch/knowledge/error-handling.md +725 -0
  340. package/src/modules/xmc/testarch/knowledge/feature-flags.md +750 -0
  341. package/src/modules/xmc/testarch/knowledge/file-utils.md +260 -0
  342. package/src/modules/xmc/testarch/knowledge/fixture-architecture.md +401 -0
  343. package/src/modules/xmc/testarch/knowledge/fixtures-composition.md +382 -0
  344. package/src/modules/xmc/testarch/knowledge/intercept-network-call.md +280 -0
  345. package/src/modules/xmc/testarch/knowledge/log.md +294 -0
  346. package/src/modules/xmc/testarch/knowledge/network-error-monitor.md +272 -0
  347. package/src/modules/xmc/testarch/knowledge/network-first.md +486 -0
  348. package/src/modules/xmc/testarch/knowledge/network-recorder.md +265 -0
  349. package/src/modules/xmc/testarch/knowledge/nfr-criteria.md +670 -0
  350. package/src/modules/xmc/testarch/knowledge/overview.md +284 -0
  351. package/src/modules/xmc/testarch/knowledge/playwright-config.md +730 -0
  352. package/src/modules/xmc/testarch/knowledge/probability-impact.md +601 -0
  353. package/src/modules/xmc/testarch/knowledge/recurse.md +296 -0
  354. package/src/modules/xmc/testarch/knowledge/risk-governance.md +615 -0
  355. package/src/modules/xmc/testarch/knowledge/selective-testing.md +732 -0
  356. package/src/modules/xmc/testarch/knowledge/selector-resilience.md +527 -0
  357. package/src/modules/xmc/testarch/knowledge/test-healing-patterns.md +644 -0
  358. package/src/modules/xmc/testarch/knowledge/test-levels-framework.md +473 -0
  359. package/src/modules/xmc/testarch/knowledge/test-priorities-matrix.md +373 -0
  360. package/src/modules/xmc/testarch/knowledge/test-quality.md +664 -0
  361. package/src/modules/xmc/testarch/knowledge/timing-debugging.md +372 -0
  362. package/src/modules/xmc/testarch/knowledge/visual-debugging.md +524 -0
  363. package/src/modules/xmc/testarch/tea-index.csv +33 -0
  364. package/src/modules/xmc/workflows/1-analysis/product-brief/product-brief.template.md +8 -0
  365. package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-01-init.md +192 -0
  366. package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-01b-continue.md +167 -0
  367. package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-02-vision.md +203 -0
  368. package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-03-users.md +206 -0
  369. package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-04-metrics.md +209 -0
  370. package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-05-scope.md +223 -0
  371. package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-06-complete.md +199 -0
  372. package/src/modules/xmc/workflows/1-analysis/product-brief/workflow.md +58 -0
  373. package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-01-init.md +136 -0
  374. package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +228 -0
  375. package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +237 -0
  376. package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +205 -0
  377. package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +233 -0
  378. package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  379. package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  380. package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +235 -0
  381. package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +198 -0
  382. package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +247 -0
  383. package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +257 -0
  384. package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +175 -0
  385. package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  386. package/src/modules/xmc/workflows/1-analysis/research/research.template.md +16 -0
  387. package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-01-init.md +136 -0
  388. package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +237 -0
  389. package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +246 -0
  390. package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +200 -0
  391. package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +237 -0
  392. package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  393. package/src/modules/xmc/workflows/1-analysis/research/workflow.md +198 -0
  394. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +159 -0
  395. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +126 -0
  396. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +209 -0
  397. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +215 -0
  398. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +218 -0
  399. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +233 -0
  400. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +251 -0
  401. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +253 -0
  402. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +223 -0
  403. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +223 -0
  404. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +240 -0
  405. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +247 -0
  406. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +236 -0
  407. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +263 -0
  408. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +226 -0
  409. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  410. package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/workflow.md +53 -0
  411. package/src/modules/xmc/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  412. package/src/modules/xmc/workflows/2-plan-workflows/prd/prd-template.md +9 -0
  413. package/src/modules/xmc/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  414. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-01-init.md +161 -0
  415. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +123 -0
  416. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +275 -0
  417. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-03-success.md +271 -0
  418. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +272 -0
  419. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-05-domain.md +249 -0
  420. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +240 -0
  421. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +236 -0
  422. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +280 -0
  423. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-09-functional.md +251 -0
  424. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +275 -0
  425. package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-11-complete.md +210 -0
  426. package/src/modules/xmc/workflows/2-plan-workflows/prd/workflow.md +61 -0
  427. package/src/modules/xmc/workflows/3-solutioning/architecture/architecture-decision-template.md +13 -0
  428. package/src/modules/xmc/workflows/3-solutioning/architecture/data/domain-complexity.csv +11 -0
  429. package/src/modules/xmc/workflows/3-solutioning/architecture/data/project-types.csv +7 -0
  430. package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-01-init.md +194 -0
  431. package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-01b-continue.md +163 -0
  432. package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-02-context.md +223 -0
  433. package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-03-starter.md +330 -0
  434. package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-04-decisions.md +317 -0
  435. package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-05-patterns.md +358 -0
  436. package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-06-structure.md +378 -0
  437. package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-07-validation.md +358 -0
  438. package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-08-complete.md +351 -0
  439. package/src/modules/xmc/workflows/3-solutioning/architecture/workflow.md +48 -0
  440. package/src/modules/xmc/workflows/3-solutioning/create-epics-and-stories/epics-template.md +80 -0
  441. package/src/modules/xmc/workflows/3-solutioning/create-epics-and-stories/instructions.md +387 -0
  442. package/src/modules/xmc/workflows/3-solutioning/create-epics-and-stories/workflow.yaml +53 -0
  443. package/src/modules/xmc/workflows/3-solutioning/implementation-readiness/checklist.md +169 -0
  444. package/src/modules/xmc/workflows/3-solutioning/implementation-readiness/instructions.md +332 -0
  445. package/src/modules/xmc/workflows/3-solutioning/implementation-readiness/template.md +146 -0
  446. package/src/modules/xmc/workflows/3-solutioning/implementation-readiness/workflow.yaml +64 -0
  447. package/src/modules/xmc/workflows/4-implementation/code-review/instructions.xml +176 -0
  448. package/src/modules/xmc/workflows/4-implementation/code-review/workflow.yaml +54 -0
  449. package/src/modules/xmc/workflows/4-implementation/correct-course/checklist.md +279 -0
  450. package/src/modules/xmc/workflows/4-implementation/correct-course/instructions.md +206 -0
  451. package/src/modules/xmc/workflows/4-implementation/correct-course/workflow.yaml +58 -0
  452. package/src/modules/xmc/workflows/4-implementation/create-story/checklist.md +358 -0
  453. package/src/modules/xmc/workflows/4-implementation/create-story/instructions.xml +354 -0
  454. package/src/modules/xmc/workflows/4-implementation/create-story/template.md +51 -0
  455. package/src/modules/xmc/workflows/4-implementation/create-story/workflow.yaml +60 -0
  456. package/src/modules/xmc/workflows/4-implementation/dev-story/checklist.md +80 -0
  457. package/src/modules/xmc/workflows/4-implementation/dev-story/instructions.xml +406 -0
  458. package/src/modules/xmc/workflows/4-implementation/dev-story/workflow.yaml +27 -0
  459. package/src/modules/xmc/workflows/4-implementation/retrospective/instructions.md +1443 -0
  460. package/src/modules/xmc/workflows/4-implementation/retrospective/workflow.yaml +57 -0
  461. package/src/modules/xmc/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  462. package/src/modules/xmc/workflows/4-implementation/sprint-planning/instructions.md +232 -0
  463. package/src/modules/xmc/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +56 -0
  464. package/src/modules/xmc/workflows/4-implementation/sprint-planning/workflow.yaml +53 -0
  465. package/src/modules/xmc/workflows/auto-iteration/full-auto-workflow.md +692 -0
  466. package/src/modules/xmc/workflows/auto-iteration/knowledge-base/kb-call-points.md +595 -0
  467. package/src/modules/xmc/workflows/auto-iteration/knowledge-base/kb-interface.md +347 -0
  468. package/src/modules/xmc/workflows/auto-iteration/knowledge-base/kb-query.md +368 -0
  469. package/src/modules/xmc/workflows/auto-iteration/knowledge-base/kb-setup.md +343 -0
  470. package/src/modules/xmc/workflows/auto-iteration/phases/phase-1-analyze.md +406 -0
  471. package/src/modules/xmc/workflows/auto-iteration/phases/phase-2-plan.md +574 -0
  472. package/src/modules/xmc/workflows/auto-iteration/phases/phase-3-design.md +628 -0
  473. package/src/modules/xmc/workflows/auto-iteration/phases/phase-4-develop.md +622 -0
  474. package/src/modules/xmc/workflows/auto-iteration/phases/phase-5-test.md +538 -0
  475. package/src/modules/xmc/workflows/auto-iteration/resume.md +254 -0
  476. package/src/modules/xmc/workflows/auto-iteration/status.md +194 -0
  477. package/src/modules/xmc/workflows/auto-iteration/templates/auto-iteration-status.template.yaml +142 -0
  478. package/src/modules/xmc/workflows/bmad-quick-flow/create-tech-spec/instructions.md +115 -0
  479. package/src/modules/xmc/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +26 -0
  480. package/src/modules/xmc/workflows/bmad-quick-flow/quick-dev/checklist.md +25 -0
  481. package/src/modules/xmc/workflows/bmad-quick-flow/quick-dev/instructions.md +105 -0
  482. package/src/modules/xmc/workflows/bmad-quick-flow/quick-dev/workflow.yaml +29 -0
  483. package/src/modules/xmc/workflows/diagrams/_shared/excalidraw-library.json +90 -0
  484. package/src/modules/xmc/workflows/diagrams/_shared/excalidraw-templates.yaml +127 -0
  485. package/src/modules/xmc/workflows/diagrams/create-dataflow/checklist.md +39 -0
  486. package/src/modules/xmc/workflows/diagrams/create-dataflow/instructions.md +130 -0
  487. package/src/modules/xmc/workflows/diagrams/create-dataflow/workflow.yaml +27 -0
  488. package/src/modules/xmc/workflows/diagrams/create-diagram/checklist.md +43 -0
  489. package/src/modules/xmc/workflows/diagrams/create-diagram/instructions.md +141 -0
  490. package/src/modules/xmc/workflows/diagrams/create-diagram/workflow.yaml +27 -0
  491. package/src/modules/xmc/workflows/diagrams/create-flowchart/checklist.md +49 -0
  492. package/src/modules/xmc/workflows/diagrams/create-flowchart/instructions.md +241 -0
  493. package/src/modules/xmc/workflows/diagrams/create-flowchart/workflow.yaml +27 -0
  494. package/src/modules/xmc/workflows/diagrams/create-wireframe/checklist.md +38 -0
  495. package/src/modules/xmc/workflows/diagrams/create-wireframe/instructions.md +133 -0
  496. package/src/modules/xmc/workflows/diagrams/create-wireframe/workflow.yaml +27 -0
  497. package/src/modules/xmc/workflows/document-project/checklist.md +245 -0
  498. package/src/modules/xmc/workflows/document-project/documentation-requirements.csv +12 -0
  499. package/src/modules/xmc/workflows/document-project/instructions.md +222 -0
  500. package/src/modules/xmc/workflows/document-project/templates/deep-dive-template.md +345 -0
  501. package/src/modules/xmc/workflows/document-project/templates/index-template.md +169 -0
  502. package/src/modules/xmc/workflows/document-project/templates/project-overview-template.md +103 -0
  503. package/src/modules/xmc/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  504. package/src/modules/xmc/workflows/document-project/templates/source-tree-template.md +135 -0
  505. package/src/modules/xmc/workflows/document-project/workflow.yaml +31 -0
  506. package/src/modules/xmc/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  507. package/src/modules/xmc/workflows/document-project/workflows/deep-dive.yaml +31 -0
  508. package/src/modules/xmc/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  509. package/src/modules/xmc/workflows/document-project/workflows/full-scan.yaml +31 -0
  510. package/src/modules/xmc/workflows/generate-project-context/project-context-template.md +20 -0
  511. package/src/modules/xmc/workflows/generate-project-context/steps/step-01-discover.md +193 -0
  512. package/src/modules/xmc/workflows/generate-project-context/steps/step-02-generate.md +317 -0
  513. package/src/modules/xmc/workflows/generate-project-context/steps/step-03-complete.md +277 -0
  514. package/src/modules/xmc/workflows/generate-project-context/workflow.md +48 -0
  515. package/src/modules/xmc/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  516. package/src/modules/xmc/workflows/testarch/atdd/checklist.md +373 -0
  517. package/src/modules/xmc/workflows/testarch/atdd/instructions.md +805 -0
  518. package/src/modules/xmc/workflows/testarch/atdd/workflow.yaml +47 -0
  519. package/src/modules/xmc/workflows/testarch/automate/checklist.md +580 -0
  520. package/src/modules/xmc/workflows/testarch/automate/instructions.md +1324 -0
  521. package/src/modules/xmc/workflows/testarch/automate/workflow.yaml +54 -0
  522. package/src/modules/xmc/workflows/testarch/ci/checklist.md +246 -0
  523. package/src/modules/xmc/workflows/testarch/ci/github-actions-template.yaml +165 -0
  524. package/src/modules/xmc/workflows/testarch/ci/gitlab-ci-template.yaml +128 -0
  525. package/src/modules/xmc/workflows/testarch/ci/instructions.md +534 -0
  526. package/src/modules/xmc/workflows/testarch/ci/workflow.yaml +47 -0
  527. package/src/modules/xmc/workflows/testarch/framework/checklist.md +321 -0
  528. package/src/modules/xmc/workflows/testarch/framework/instructions.md +481 -0
  529. package/src/modules/xmc/workflows/testarch/framework/workflow.yaml +49 -0
  530. package/src/modules/xmc/workflows/testarch/nfr-assess/checklist.md +405 -0
  531. package/src/modules/xmc/workflows/testarch/nfr-assess/instructions.md +722 -0
  532. package/src/modules/xmc/workflows/testarch/nfr-assess/nfr-report-template.md +443 -0
  533. package/src/modules/xmc/workflows/testarch/nfr-assess/workflow.yaml +49 -0
  534. package/src/modules/xmc/workflows/testarch/test-design/checklist.md +234 -0
  535. package/src/modules/xmc/workflows/testarch/test-design/instructions.md +788 -0
  536. package/src/modules/xmc/workflows/testarch/test-design/test-design-template.md +285 -0
  537. package/src/modules/xmc/workflows/testarch/test-design/workflow.yaml +50 -0
  538. package/src/modules/xmc/workflows/testarch/test-review/checklist.md +470 -0
  539. package/src/modules/xmc/workflows/testarch/test-review/instructions.md +628 -0
  540. package/src/modules/xmc/workflows/testarch/test-review/test-review-template.md +388 -0
  541. package/src/modules/xmc/workflows/testarch/test-review/workflow.yaml +48 -0
  542. package/src/modules/xmc/workflows/testarch/trace/checklist.md +654 -0
  543. package/src/modules/xmc/workflows/testarch/trace/instructions.md +1045 -0
  544. package/src/modules/xmc/workflows/testarch/trace/trace-template.md +673 -0
  545. package/src/modules/xmc/workflows/testarch/trace/workflow.yaml +57 -0
  546. package/src/modules/xmc/workflows/workflow-status/init/instructions.md +331 -0
  547. package/src/modules/xmc/workflows/workflow-status/init/workflow.yaml +29 -0
  548. package/src/modules/xmc/workflows/workflow-status/instructions.md +395 -0
  549. package/src/modules/xmc/workflows/workflow-status/paths/enterprise-brownfield.yaml +127 -0
  550. package/src/modules/xmc/workflows/workflow-status/paths/enterprise-greenfield.yaml +115 -0
  551. package/src/modules/xmc/workflows/workflow-status/paths/method-brownfield.yaml +111 -0
  552. package/src/modules/xmc/workflows/workflow-status/paths/method-greenfield.yaml +102 -0
  553. package/src/modules/xmc/workflows/workflow-status/project-levels.yaml +59 -0
  554. package/src/modules/xmc/workflows/workflow-status/workflow-status-template.yaml +24 -0
  555. package/src/modules/xmc/workflows/workflow-status/workflow.yaml +30 -0
  556. package/src/utility/models/action-command-header.md +0 -0
  557. package/src/utility/models/agent-activation-ide.xml +51 -0
  558. package/src/utility/models/agent-activation-web.xml +50 -0
  559. package/src/utility/models/agent-command-header.md +1 -0
  560. package/src/utility/models/agent-config-template.md +23 -0
  561. package/src/utility/models/agent-in-team-activation.xml +3 -0
  562. package/src/utility/models/fragments/activation-rules.xml +7 -0
  563. package/src/utility/models/fragments/activation-steps.xml +16 -0
  564. package/src/utility/models/fragments/handler-action.xml +4 -0
  565. package/src/utility/models/fragments/handler-data.xml +5 -0
  566. package/src/utility/models/fragments/handler-exec.xml +6 -0
  567. package/src/utility/models/fragments/handler-multi.xml +14 -0
  568. package/src/utility/models/fragments/handler-tmpl.xml +5 -0
  569. package/src/utility/models/fragments/handler-validate-workflow.xml +7 -0
  570. package/src/utility/models/fragments/handler-workflow.xml +9 -0
  571. package/src/utility/models/fragments/menu-handlers.xml +6 -0
  572. package/src/utility/models/fragments/web-bundle-activation-steps.xml +32 -0
  573. package/src/utility/templates/agent.customize.template.yaml +42 -0
  574. package/test/README.md +295 -0
  575. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +26 -0
  576. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +29 -0
  577. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +21 -0
  578. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +19 -0
  579. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +24 -0
  580. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +23 -0
  581. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +24 -0
  582. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +30 -0
  583. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +24 -0
  584. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +24 -0
  585. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +24 -0
  586. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +24 -0
  587. package/test/fixtures/agent-schema/invalid/metadata/core-agent-with-module.agent.yaml +26 -0
  588. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
  589. package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
  590. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +26 -0
  591. package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
  592. package/test/fixtures/agent-schema/invalid/metadata/module-agent-missing-module.agent.yaml +25 -0
  593. package/test/fixtures/agent-schema/invalid/metadata/wrong-module-value.agent.yaml +26 -0
  594. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +23 -0
  595. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +26 -0
  596. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +26 -0
  597. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +23 -0
  598. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +28 -0
  599. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +30 -0
  600. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +27 -0
  601. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +27 -0
  602. package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
  603. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +27 -0
  604. package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
  605. package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
  606. package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
  607. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +23 -0
  608. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +21 -0
  609. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +26 -0
  610. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +30 -0
  611. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +21 -0
  612. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +37 -0
  613. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +23 -0
  614. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +33 -0
  615. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +23 -0
  616. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +23 -0
  617. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +23 -0
  618. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +23 -0
  619. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +23 -0
  620. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +21 -0
  621. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +27 -0
  622. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +29 -0
  623. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +23 -0
  624. package/test/test-agent-schema.js +387 -0
  625. package/test/test-cli-integration.sh +159 -0
  626. package/test/test-installation-components.js +214 -0
  627. package/test/unit-test-schema.js +133 -0
  628. package/tools/cli/README.md +609 -0
  629. package/tools/cli/bundlers/bundle-web.js +179 -0
  630. package/tools/cli/bundlers/test-analyst.js +28 -0
  631. package/tools/cli/bundlers/test-bundler.js +119 -0
  632. package/tools/cli/bundlers/web-bundler.js +1764 -0
  633. package/tools/cli/commands/agent-install.js +409 -0
  634. package/tools/cli/commands/build.js +458 -0
  635. package/tools/cli/commands/cleanup.js +141 -0
  636. package/tools/cli/commands/install.js +124 -0
  637. package/tools/cli/commands/list.js +28 -0
  638. package/tools/cli/commands/status.js +47 -0
  639. package/tools/cli/commands/uninstall.js +44 -0
  640. package/tools/cli/commands/update.js +28 -0
  641. package/tools/cli/installers/lib/core/config-collector.js +876 -0
  642. package/tools/cli/installers/lib/core/dependency-resolver.js +725 -0
  643. package/tools/cli/installers/lib/core/detector.js +329 -0
  644. package/tools/cli/installers/lib/core/ide-config-manager.js +154 -0
  645. package/tools/cli/installers/lib/core/installer.js +2956 -0
  646. package/tools/cli/installers/lib/core/manifest-generator.js +692 -0
  647. package/tools/cli/installers/lib/core/manifest.js +540 -0
  648. package/tools/cli/installers/lib/ide/_base-ide.js +651 -0
  649. package/tools/cli/installers/lib/ide/antigravity.js +510 -0
  650. package/tools/cli/installers/lib/ide/auggie.js +232 -0
  651. package/tools/cli/installers/lib/ide/claude-code.js +512 -0
  652. package/tools/cli/installers/lib/ide/cline.js +269 -0
  653. package/tools/cli/installers/lib/ide/codex.js +388 -0
  654. package/tools/cli/installers/lib/ide/crush.js +287 -0
  655. package/tools/cli/installers/lib/ide/cursor.js +400 -0
  656. package/tools/cli/installers/lib/ide/gemini.js +253 -0
  657. package/tools/cli/installers/lib/ide/github-copilot.js +387 -0
  658. package/tools/cli/installers/lib/ide/iflow.js +172 -0
  659. package/tools/cli/installers/lib/ide/kilo.js +249 -0
  660. package/tools/cli/installers/lib/ide/manager.js +245 -0
  661. package/tools/cli/installers/lib/ide/opencode.js +257 -0
  662. package/tools/cli/installers/lib/ide/qwen.js +372 -0
  663. package/tools/cli/installers/lib/ide/roo.js +324 -0
  664. package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
  665. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +90 -0
  666. package/tools/cli/installers/lib/ide/shared/module-injections.js +133 -0
  667. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +119 -0
  668. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +237 -0
  669. package/tools/cli/installers/lib/ide/shared/xiaoma-artifacts.js +143 -0
  670. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  671. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  672. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  673. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +13 -0
  674. package/tools/cli/installers/lib/ide/trae.js +313 -0
  675. package/tools/cli/installers/lib/ide/windsurf.js +258 -0
  676. package/tools/cli/installers/lib/modules/manager.js +751 -0
  677. package/tools/cli/lib/activation-builder.js +168 -0
  678. package/tools/cli/lib/agent/compiler.js +524 -0
  679. package/tools/cli/lib/agent/installer.js +735 -0
  680. package/tools/cli/lib/agent/template-engine.js +152 -0
  681. package/tools/cli/lib/agent-analyzer.js +109 -0
  682. package/tools/cli/lib/agent-party-generator.js +206 -0
  683. package/tools/cli/lib/cli-utils.js +210 -0
  684. package/tools/cli/lib/config.js +212 -0
  685. package/tools/cli/lib/file-ops.js +204 -0
  686. package/tools/cli/lib/platform-codes.js +116 -0
  687. package/tools/cli/lib/project-root.js +71 -0
  688. package/tools/cli/lib/replace-project-root.js +239 -0
  689. package/tools/cli/lib/ui.js +769 -0
  690. package/tools/cli/lib/xml-handler.js +229 -0
  691. package/tools/cli/lib/xml-to-markdown.js +82 -0
  692. package/tools/{yaml-format.js → cli/lib/yaml-format.js} +36 -66
  693. package/tools/cli/lib/yaml-xml-builder.js +606 -0
  694. package/tools/cli/regenerate-manifests.js +28 -0
  695. package/tools/cli/test-yaml-builder.js +43 -0
  696. package/tools/cli/xiaoma-cli.js +40 -0
  697. package/tools/flattener/aggregate.js +12 -30
  698. package/tools/flattener/binary.js +43 -46
  699. package/tools/flattener/discovery.js +15 -23
  700. package/tools/flattener/files.js +6 -6
  701. package/tools/flattener/ignoreRules.js +122 -127
  702. package/tools/flattener/main.js +140 -330
  703. package/tools/flattener/projectRoot.js +71 -81
  704. package/tools/flattener/prompts.js +10 -12
  705. package/tools/flattener/stats.helpers.js +63 -119
  706. package/tools/flattener/stats.js +2 -7
  707. package/tools/flattener/test-matrix.js +169 -228
  708. package/tools/flattener/xml.js +23 -31
  709. package/tools/format-workflow-md.js +263 -0
  710. package/tools/platform-codes.yaml +145 -0
  711. package/tools/schema/agent.js +389 -0
  712. package/tools/validate-agent-schema.js +110 -0
  713. package/tools/validate-bundles.js +87 -0
  714. package/tools/xiaoma-npx-wrapper.js +18 -24
  715. package/.claude/agents/tech-translator.md +0 -124
  716. package/.claude/settings.local.json +0 -37
  717. package/.idea/XiaoMa-Cli.iml +0 -9
  718. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  719. package/.idea/misc.xml +0 -6
  720. package/.idea/modules.xml +0 -8
  721. package/.idea/prettier.xml +0 -6
  722. package/.idea/vcs.xml +0 -7
  723. package/.idea/workspace.xml +0 -114
  724. package/.xiaoma-core/.coordinator-state.json +0 -19
  725. package/CLAUDE.md +0 -283
  726. package/JAVA-BACKEND-COMMANDS-REFERENCE.md +0 -300
  727. package/JAVA-BACKEND-ITERATION-GUIDE.md +0 -2116
  728. package/common/tasks/create-doc.md +0 -103
  729. package/common/tasks/execute-checklist.md +0 -88
  730. package/common/utils/bmad-doc-template.md +0 -327
  731. package/common/utils/workflow-management.md +0 -71
  732. package/dist/agents/analyst.txt +0 -6308
  733. package/dist/agents/architect.txt +0 -3911
  734. package/dist/agents/automation-orchestrator.txt +0 -396
  735. package/dist/agents/dev.txt +0 -576
  736. package/dist/agents/full-requirement-orchestrator.txt +0 -505
  737. package/dist/agents/pm.txt +0 -2224
  738. package/dist/agents/po.txt +0 -1358
  739. package/dist/agents/qa.txt +0 -2002
  740. package/dist/agents/sm.txt +0 -2061
  741. package/dist/agents/ux-expert.txt +0 -707
  742. package/dist/agents/workflow-executor.txt +0 -1029
  743. package/dist/agents/workflow-helper.txt +0 -93
  744. package/dist/agents/xiaoma-master.txt +0 -9008
  745. package/dist/agents/xiaoma-orchestrator.txt +0 -1523
  746. package/dist/teams/team-all.txt +0 -19525
  747. package/dist/teams/team-fullstack-with-database.txt +0 -21500
  748. package/dist/teams/team-fullstack.txt +0 -13831
  749. package/dist/teams/team-ide-minimal.txt +0 -6698
  750. package/dist/teams/team-no-ui.txt +0 -12379
  751. package/docs/GUIDING-PRINCIPLES.md +0 -91
  752. package/docs/architecture/workflow-coordinator-implementation.md +0 -1188
  753. package/docs/architecture-sharding-modification.md +0 -623
  754. package/docs/automated-requirements-analysis-outputs.md +0 -896
  755. package/docs/core-architecture.md +0 -219
  756. package/docs/enhanced-ide-development-workflow.md +0 -248
  757. package/docs/prd/workflow-coordinator-prd.md +0 -1214
  758. package/docs/user-guide.md +0 -530
  759. package/docs/versioning-and-releases.md +0 -155
  760. package/docs/versions.md +0 -48
  761. package/docs/working-in-the-brownfield.md +0 -597
  762. package/tools/api-server.js +0 -367
  763. package/tools/builders/web-builder.js +0 -830
  764. package/tools/bump-all-versions.js +0 -133
  765. package/tools/cli.js +0 -157
  766. package/tools/installer/README.md +0 -8
  767. package/tools/installer/bin/xiaoma.js +0 -477
  768. package/tools/installer/config/ide-agent-config.yaml +0 -58
  769. package/tools/installer/config/install.config.yaml +0 -164
  770. package/tools/installer/lib/config-loader.js +0 -286
  771. package/tools/installer/lib/file-manager.js +0 -446
  772. package/tools/installer/lib/ide-base-setup.js +0 -238
  773. package/tools/installer/lib/ide-setup.js +0 -2027
  774. package/tools/installer/lib/installer.js +0 -2333
  775. package/tools/installer/lib/memory-profiler.js +0 -235
  776. package/tools/installer/lib/module-manager.js +0 -116
  777. package/tools/installer/lib/resource-locator.js +0 -334
  778. package/tools/installer/package-lock.json +0 -715
  779. package/tools/installer/package.json +0 -44
  780. package/tools/lib/dependency-resolver.js +0 -186
  781. package/tools/lib/yaml-utils.js +0 -34
  782. package/tools/md-assets/web-agent-startup-instructions.md +0 -39
  783. package/tools/preview-release-notes.js +0 -74
  784. package/tools/setup-hooks.sh +0 -37
  785. package/tools/shared/bannerArt.js +0 -105
  786. package/tools/sync-installer-version.js +0 -41
  787. package/tools/sync-version.sh +0 -23
  788. package/tools/upgraders/v3-to-v4-upgrader.js +0 -753
  789. package/tools/version-bump.js +0 -100
  790. package/tools/workflow-coordinator/README.md +0 -38
  791. package/tools/workflow-coordinator/USAGE.md +0 -548
  792. package/tools/workflow-coordinator/package-lock.json +0 -4868
  793. package/tools/workflow-coordinator/package.json +0 -35
  794. package/tools/workflow-coordinator/src/api/server.js +0 -207
  795. package/tools/workflow-coordinator/src/controller/workflow-controller.js +0 -263
  796. package/tools/workflow-coordinator/src/index.js +0 -113
  797. package/tools/workflow-coordinator/src/parser/workflow-parser.js +0 -144
  798. package/tools/workflow-coordinator/src/utils/state-manager.js +0 -59
  799. package/tools/workflow-coordinator/src/utils/validator.js +0 -86
  800. package/tools/workflow-coordinator/test/integration-test.js +0 -266
  801. package/tools/workflow-coordinator/test/quick-test.js +0 -127
  802. package/xiaoma-core/agent-teams/team-all.yaml +0 -15
  803. package/xiaoma-core/agent-teams/team-fullstack-with-database.yaml +0 -27
  804. package/xiaoma-core/agent-teams/team-fullstack.yaml +0 -19
  805. package/xiaoma-core/agent-teams/team-ide-minimal.yaml +0 -11
  806. package/xiaoma-core/agent-teams/team-no-ui.yaml +0 -14
  807. package/xiaoma-core/agents/analyst.md +0 -91
  808. package/xiaoma-core/agents/architect.md +0 -85
  809. package/xiaoma-core/agents/automated-fix-validator.yaml +0 -579
  810. package/xiaoma-core/agents/automated-quality-validator.yaml +0 -549
  811. package/xiaoma-core/agents/automation-orchestrator.md +0 -353
  812. package/xiaoma-core/agents/dev.md +0 -79
  813. package/xiaoma-core/agents/enhanced-workflow-orchestrator.yaml +0 -304
  814. package/xiaoma-core/agents/full-requirement-orchestrator.md +0 -462
  815. package/xiaoma-core/agents/global-requirements-auditor.yaml +0 -520
  816. package/xiaoma-core/agents/intelligent-template-adapter.yaml +0 -389
  817. package/xiaoma-core/agents/issue-dispatcher.yaml +0 -627
  818. package/xiaoma-core/agents/master-execution-engine.yaml +0 -543
  819. package/xiaoma-core/agents/pm.md +0 -82
  820. package/xiaoma-core/agents/po.md +0 -77
  821. package/xiaoma-core/agents/qa.md +0 -88
  822. package/xiaoma-core/agents/requirements-coverage-auditor.yaml +0 -373
  823. package/xiaoma-core/agents/sm.md +0 -67
  824. package/xiaoma-core/agents/ux-expert.md +0 -67
  825. package/xiaoma-core/agents/workflow-executor.md +0 -1031
  826. package/xiaoma-core/agents/workflow-helper.md +0 -481
  827. package/xiaoma-core/agents/xiaoma-master.md +0 -108
  828. package/xiaoma-core/agents/xiaoma-orchestrator.md +0 -145
  829. package/xiaoma-core/checklists/architect-checklist.md +0 -440
  830. package/xiaoma-core/checklists/change-checklist.md +0 -184
  831. package/xiaoma-core/checklists/dev-completion-checklist.md +0 -324
  832. package/xiaoma-core/checklists/pm-checklist.md +0 -372
  833. package/xiaoma-core/checklists/po-master-checklist.md +0 -434
  834. package/xiaoma-core/checklists/po-story-validation-checklist.md +0 -219
  835. package/xiaoma-core/checklists/qa-approval-checklist.md +0 -393
  836. package/xiaoma-core/checklists/story-dod-checklist.md +0 -96
  837. package/xiaoma-core/checklists/story-draft-checklist.md +0 -155
  838. package/xiaoma-core/core-config.yaml +0 -23
  839. package/xiaoma-core/data/bmad-kb.md +0 -809
  840. package/xiaoma-core/data/brainstorming-techniques.md +0 -38
  841. package/xiaoma-core/data/elicitation-methods.md +0 -156
  842. package/xiaoma-core/data/technical-preferences.md +0 -5
  843. package/xiaoma-core/data/test-levels-framework.md +0 -148
  844. package/xiaoma-core/data/test-priorities-matrix.md +0 -174
  845. package/xiaoma-core/scripts/build-validation/pre-dev-validation.sh +0 -71
  846. package/xiaoma-core/scripts/build-validation/progressive-validation.sh +0 -88
  847. package/xiaoma-core/scripts/build-validation/quick-check.sh +0 -69
  848. package/xiaoma-core/tasks/advanced-elicitation.md +0 -119
  849. package/xiaoma-core/tasks/analyze-existing-database.md +0 -155
  850. package/xiaoma-core/tasks/apply-qa-fixes.md +0 -150
  851. package/xiaoma-core/tasks/automated-story-cycle.md +0 -370
  852. package/xiaoma-core/tasks/batch-story-generation.md +0 -354
  853. package/xiaoma-core/tasks/brownfield-create-epic.md +0 -162
  854. package/xiaoma-core/tasks/brownfield-create-story.md +0 -149
  855. package/xiaoma-core/tasks/correct-course.md +0 -72
  856. package/xiaoma-core/tasks/create-brownfield-story.md +0 -314
  857. package/xiaoma-core/tasks/create-database-design.md +0 -161
  858. package/xiaoma-core/tasks/create-deep-research-prompt.md +0 -280
  859. package/xiaoma-core/tasks/create-enhanced-story-with-database.md +0 -250
  860. package/xiaoma-core/tasks/create-next-story.md +0 -114
  861. package/xiaoma-core/tasks/document-project.md +0 -345
  862. package/xiaoma-core/tasks/facilitate-brainstorming-session.md +0 -138
  863. package/xiaoma-core/tasks/generate-ai-frontend-prompt.md +0 -53
  864. package/xiaoma-core/tasks/generate-database-ddl.md +0 -240
  865. package/xiaoma-core/tasks/generate-database-entities.md +0 -501
  866. package/xiaoma-core/tasks/generate-rag-questions.md +0 -312
  867. package/xiaoma-core/tasks/index-docs.md +0 -175
  868. package/xiaoma-core/tasks/kb-mode-interaction.md +0 -77
  869. package/xiaoma-core/tasks/nfr-assess.md +0 -345
  870. package/xiaoma-core/tasks/project-integration-testing.md +0 -477
  871. package/xiaoma-core/tasks/qa-gate.md +0 -163
  872. package/xiaoma-core/tasks/requirement-analysis-with-rag.md +0 -1318
  873. package/xiaoma-core/tasks/requirements-coverage-audit.md +0 -198
  874. package/xiaoma-core/tasks/review-story.md +0 -316
  875. package/xiaoma-core/tasks/risk-profile.md +0 -355
  876. package/xiaoma-core/tasks/serial-development-orchestration.md +0 -426
  877. package/xiaoma-core/tasks/shard-doc.md +0 -187
  878. package/xiaoma-core/tasks/test-design.md +0 -176
  879. package/xiaoma-core/tasks/trace-requirements.md +0 -266
  880. package/xiaoma-core/tasks/validate-next-story.md +0 -136
  881. package/xiaoma-core/templates/api-design-tmpl.yaml +0 -704
  882. package/xiaoma-core/templates/architecture-tmpl.yaml +0 -650
  883. package/xiaoma-core/templates/brainstorming-output-tmpl.yaml +0 -156
  884. package/xiaoma-core/templates/brownfield-architecture-tmpl.yaml +0 -476
  885. package/xiaoma-core/templates/brownfield-prd-tmpl.yaml +0 -280
  886. package/xiaoma-core/templates/competitor-analysis-tmpl.yaml +0 -336
  887. package/xiaoma-core/templates/database-design-tmpl.yaml +0 -266
  888. package/xiaoma-core/templates/enhanced-story-with-database-tmpl.yaml +0 -428
  889. package/xiaoma-core/templates/front-end-architecture-tmpl.yaml +0 -272
  890. package/xiaoma-core/templates/front-end-spec-tmpl.yaml +0 -354
  891. package/xiaoma-core/templates/fullstack-architecture-tmpl.yaml +0 -925
  892. package/xiaoma-core/templates/global-qa-monitoring-tmpl.yaml +0 -443
  893. package/xiaoma-core/templates/market-research-tmpl.yaml +0 -252
  894. package/xiaoma-core/templates/maven-lombok-template.xml +0 -111
  895. package/xiaoma-core/templates/prd-tmpl.yaml +0 -202
  896. package/xiaoma-core/templates/project-brief-tmpl.yaml +0 -221
  897. package/xiaoma-core/templates/qa-gate-tmpl.yaml +0 -102
  898. package/xiaoma-core/templates/rag-knowledge-tmpl.yaml +0 -569
  899. package/xiaoma-core/templates/rag-questions-tmpl.yaml +0 -949
  900. package/xiaoma-core/templates/requirements-coverage-audit.yaml +0 -330
  901. package/xiaoma-core/templates/start-enhanced-workflow.yaml +0 -347
  902. package/xiaoma-core/templates/story-tmpl.yaml +0 -137
  903. package/xiaoma-core/workflows/automated-requirements-analysis.yaml +0 -2149
  904. package/xiaoma-core/workflows/automated-requirements-development.yaml +0 -739
  905. package/xiaoma-core/workflows/automated-story-development.yaml +0 -1264
  906. package/xiaoma-core/workflows/brownfield-fullstack.yaml +0 -298
  907. package/xiaoma-core/workflows/brownfield-service.yaml +0 -188
  908. package/xiaoma-core/workflows/brownfield-ui.yaml +0 -198
  909. package/xiaoma-core/workflows/enhanced-fullstack-with-database.yaml +0 -427
  910. package/xiaoma-core/workflows/enhanced-fullstack-with-qa-loop.yaml +0 -766
  911. package/xiaoma-core/workflows/full-requirement-automation.yaml +0 -1305
  912. package/xiaoma-core/workflows/greenfield-fullstack.yaml +0 -241
  913. package/xiaoma-core/workflows/greenfield-service.yaml +0 -207
  914. package/xiaoma-core/workflows/greenfield-ui.yaml +0 -236
@@ -0,0 +1,751 @@
1
+ const path = require('node:path');
2
+ const fs = require('fs-extra');
3
+ const yaml = require('js-yaml');
4
+ const chalk = require('chalk');
5
+ const { XmlHandler } = require('../../../lib/xml-handler');
6
+ const { getProjectRoot, getSourcePath, getModulePath } = require('../../../lib/project-root');
7
+
8
+ /**
9
+ * Manages the installation, updating, and removal of XIAOMA modules.
10
+ * Handles module discovery, dependency resolution, configuration processing,
11
+ * and agent file management including XML activation block injection.
12
+ *
13
+ * @class ModuleManager
14
+ * @requires fs-extra
15
+ * @requires js-yaml
16
+ * @requires chalk
17
+ * @requires XmlHandler
18
+ *
19
+ * @example
20
+ * const manager = new ModuleManager();
21
+ * const modules = await manager.listAvailable();
22
+ * await manager.install('core-module', '/path/to/xiaoma');
23
+ */
24
+ class ModuleManager {
25
+ constructor() {
26
+ // Path to source modules directory
27
+ this.modulesSourcePath = getSourcePath('modules');
28
+ this.xmlHandler = new XmlHandler();
29
+ this.xiaomaFolderName = 'xiaoma'; // Default, can be overridden
30
+ }
31
+
32
+ /**
33
+ * Set the xiaoma folder name for placeholder replacement
34
+ * @param {string} xiaomaFolderName - The xiaoma folder name
35
+ */
36
+ setBmadFolderName(xiaomaFolderName) {
37
+ this.xiaomaFolderName = xiaomaFolderName;
38
+ }
39
+
40
+ /**
41
+ * Copy a file and replace {xiaoma_folder} placeholder with actual folder name
42
+ * @param {string} sourcePath - Source file path
43
+ * @param {string} targetPath - Target file path
44
+ */
45
+ async copyFileWithPlaceholderReplacement(sourcePath, targetPath) {
46
+ // List of text file extensions that should have placeholder replacement
47
+ const textExtensions = ['.md', '.yaml', '.yml', '.txt', '.json', '.js', '.ts', '.html', '.css', '.sh', '.bat', '.csv'];
48
+ const ext = path.extname(sourcePath).toLowerCase();
49
+
50
+ // Check if this is a text file that might contain placeholders
51
+ if (textExtensions.includes(ext)) {
52
+ try {
53
+ // Read the file content
54
+ let content = await fs.readFile(sourcePath, 'utf8');
55
+
56
+ // Replace {xiaoma_folder} placeholder with actual folder name
57
+ if (content.includes('{xiaoma_folder}')) {
58
+ content = content.replaceAll('{xiaoma_folder}', this.xiaomaFolderName);
59
+ }
60
+
61
+ // Write to target with replaced content
62
+ await fs.ensureDir(path.dirname(targetPath));
63
+ await fs.writeFile(targetPath, content, 'utf8');
64
+ } catch {
65
+ // If reading as text fails (might be binary despite extension), fall back to regular copy
66
+ await fs.copy(sourcePath, targetPath, { overwrite: true });
67
+ }
68
+ } else {
69
+ // Binary file or other file type - just copy directly
70
+ await fs.copy(sourcePath, targetPath, { overwrite: true });
71
+ }
72
+ }
73
+
74
+ /**
75
+ * Copy a directory recursively with placeholder replacement
76
+ * @param {string} sourceDir - Source directory path
77
+ * @param {string} targetDir - Target directory path
78
+ */
79
+ async copyDirectoryWithPlaceholderReplacement(sourceDir, targetDir) {
80
+ await fs.ensureDir(targetDir);
81
+ const entries = await fs.readdir(sourceDir, { withFileTypes: true });
82
+
83
+ for (const entry of entries) {
84
+ const sourcePath = path.join(sourceDir, entry.name);
85
+ const targetPath = path.join(targetDir, entry.name);
86
+
87
+ if (entry.isDirectory()) {
88
+ await this.copyDirectoryWithPlaceholderReplacement(sourcePath, targetPath);
89
+ } else {
90
+ await this.copyFileWithPlaceholderReplacement(sourcePath, targetPath);
91
+ }
92
+ }
93
+ }
94
+
95
+ /**
96
+ * List all available modules
97
+ * @returns {Array} List of available modules with metadata
98
+ */
99
+ async listAvailable() {
100
+ const modules = [];
101
+
102
+ if (!(await fs.pathExists(this.modulesSourcePath))) {
103
+ console.warn(chalk.yellow('Warning: src/modules directory not found'));
104
+ return modules;
105
+ }
106
+
107
+ const entries = await fs.readdir(this.modulesSourcePath, { withFileTypes: true });
108
+
109
+ for (const entry of entries) {
110
+ if (entry.isDirectory()) {
111
+ const modulePath = path.join(this.modulesSourcePath, entry.name);
112
+ // Check for new structure first
113
+ const installerConfigPath = path.join(modulePath, '_module-installer', 'install-config.yaml');
114
+ // Fallback to old structure
115
+ const configPath = path.join(modulePath, 'config.yaml');
116
+
117
+ const moduleInfo = {
118
+ id: entry.name,
119
+ path: modulePath,
120
+ name: entry.name.toUpperCase(),
121
+ description: 'XIAOMA Module',
122
+ version: '5.0.0',
123
+ };
124
+
125
+ // Try to read module config for metadata (prefer new location)
126
+ const configToRead = (await fs.pathExists(installerConfigPath)) ? installerConfigPath : configPath;
127
+ if (await fs.pathExists(configToRead)) {
128
+ try {
129
+ const configContent = await fs.readFile(configToRead, 'utf8');
130
+ const config = yaml.load(configContent);
131
+
132
+ // Use the code property as the id if available
133
+ if (config.code) {
134
+ moduleInfo.id = config.code;
135
+ }
136
+
137
+ moduleInfo.name = config.name || moduleInfo.name;
138
+ moduleInfo.description = config.description || moduleInfo.description;
139
+ moduleInfo.version = config.version || moduleInfo.version;
140
+ moduleInfo.dependencies = config.dependencies || [];
141
+ moduleInfo.defaultSelected = config.default_selected === undefined ? false : config.default_selected;
142
+ } catch (error) {
143
+ console.warn(`Failed to read config for ${entry.name}:`, error.message);
144
+ }
145
+ }
146
+
147
+ modules.push(moduleInfo);
148
+ }
149
+ }
150
+
151
+ return modules;
152
+ }
153
+
154
+ /**
155
+ * Install a module
156
+ * @param {string} moduleName - Name of the module to install
157
+ * @param {string} xiaomaDir - Target xiaoma directory
158
+ * @param {Function} fileTrackingCallback - Optional callback to track installed files
159
+ * @param {Object} options - Additional installation options
160
+ * @param {Array<string>} options.installedIDEs - Array of IDE codes that were installed
161
+ * @param {Object} options.moduleConfig - Module configuration from config collector
162
+ * @param {Object} options.logger - Logger instance for output
163
+ */
164
+ async install(moduleName, xiaomaDir, fileTrackingCallback = null, options = {}) {
165
+ const sourcePath = path.join(this.modulesSourcePath, moduleName);
166
+ const targetPath = path.join(xiaomaDir, moduleName);
167
+
168
+ // Check if source module exists
169
+ if (!(await fs.pathExists(sourcePath))) {
170
+ throw new Error(`Module '${moduleName}' not found in ${this.modulesSourcePath}`);
171
+ }
172
+
173
+ // Check if already installed
174
+ if (await fs.pathExists(targetPath)) {
175
+ console.log(chalk.yellow(`Module '${moduleName}' already installed, updating...`));
176
+ await fs.remove(targetPath);
177
+ }
178
+
179
+ // Vendor cross-module workflows BEFORE copying
180
+ // This reads source agent.yaml files and copies referenced workflows
181
+ await this.vendorCrossModuleWorkflows(sourcePath, targetPath, moduleName);
182
+
183
+ // Copy module files with filtering
184
+ await this.copyModuleWithFiltering(sourcePath, targetPath, fileTrackingCallback, options.moduleConfig);
185
+
186
+ // Process agent files to inject activation block
187
+ await this.processAgentFiles(targetPath, moduleName);
188
+
189
+ // Call module-specific installer if it exists (unless explicitly skipped)
190
+ if (!options.skipModuleInstaller) {
191
+ await this.runModuleInstaller(moduleName, xiaomaDir, options);
192
+ }
193
+
194
+ return {
195
+ success: true,
196
+ module: moduleName,
197
+ path: targetPath,
198
+ };
199
+ }
200
+
201
+ /**
202
+ * Update an existing module
203
+ * @param {string} moduleName - Name of the module to update
204
+ * @param {string} xiaomaDir - Target xiaoma directory
205
+ * @param {boolean} force - Force update (overwrite modifications)
206
+ */
207
+ async update(moduleName, xiaomaDir, force = false) {
208
+ const sourcePath = path.join(this.modulesSourcePath, moduleName);
209
+ const targetPath = path.join(xiaomaDir, moduleName);
210
+
211
+ // Check if source module exists
212
+ if (!(await fs.pathExists(sourcePath))) {
213
+ throw new Error(`Module '${moduleName}' not found in source`);
214
+ }
215
+
216
+ // Check if module is installed
217
+ if (!(await fs.pathExists(targetPath))) {
218
+ throw new Error(`Module '${moduleName}' is not installed`);
219
+ }
220
+
221
+ if (force) {
222
+ // Force update - remove and reinstall
223
+ await fs.remove(targetPath);
224
+ return await this.install(moduleName, xiaomaDir);
225
+ } else {
226
+ // Selective update - preserve user modifications
227
+ await this.syncModule(sourcePath, targetPath);
228
+ }
229
+
230
+ return {
231
+ success: true,
232
+ module: moduleName,
233
+ path: targetPath,
234
+ };
235
+ }
236
+
237
+ /**
238
+ * Remove a module
239
+ * @param {string} moduleName - Name of the module to remove
240
+ * @param {string} xiaomaDir - Target xiaoma directory
241
+ */
242
+ async remove(moduleName, xiaomaDir) {
243
+ const targetPath = path.join(xiaomaDir, moduleName);
244
+
245
+ if (!(await fs.pathExists(targetPath))) {
246
+ throw new Error(`Module '${moduleName}' is not installed`);
247
+ }
248
+
249
+ await fs.remove(targetPath);
250
+
251
+ return {
252
+ success: true,
253
+ module: moduleName,
254
+ };
255
+ }
256
+
257
+ /**
258
+ * Check if a module is installed
259
+ * @param {string} moduleName - Name of the module
260
+ * @param {string} xiaomaDir - Target xiaoma directory
261
+ * @returns {boolean} True if module is installed
262
+ */
263
+ async isInstalled(moduleName, xiaomaDir) {
264
+ const targetPath = path.join(xiaomaDir, moduleName);
265
+ return await fs.pathExists(targetPath);
266
+ }
267
+
268
+ /**
269
+ * Get installed module info
270
+ * @param {string} moduleName - Name of the module
271
+ * @param {string} xiaomaDir - Target xiaoma directory
272
+ * @returns {Object|null} Module info or null if not installed
273
+ */
274
+ async getInstalledInfo(moduleName, xiaomaDir) {
275
+ const targetPath = path.join(xiaomaDir, moduleName);
276
+
277
+ if (!(await fs.pathExists(targetPath))) {
278
+ return null;
279
+ }
280
+
281
+ const configPath = path.join(targetPath, 'config.yaml');
282
+ const moduleInfo = {
283
+ id: moduleName,
284
+ path: targetPath,
285
+ installed: true,
286
+ };
287
+
288
+ if (await fs.pathExists(configPath)) {
289
+ try {
290
+ const configContent = await fs.readFile(configPath, 'utf8');
291
+ const config = yaml.load(configContent);
292
+ Object.assign(moduleInfo, config);
293
+ } catch (error) {
294
+ console.warn(`Failed to read installed module config:`, error.message);
295
+ }
296
+ }
297
+
298
+ return moduleInfo;
299
+ }
300
+
301
+ /**
302
+ * Copy module with filtering for localskip agents and conditional content
303
+ * @param {string} sourcePath - Source module path
304
+ * @param {string} targetPath - Target module path
305
+ * @param {Function} fileTrackingCallback - Optional callback to track installed files
306
+ * @param {Object} moduleConfig - Module configuration with conditional flags
307
+ */
308
+ async copyModuleWithFiltering(sourcePath, targetPath, fileTrackingCallback = null, moduleConfig = {}) {
309
+ // Get all files in source
310
+ const sourceFiles = await this.getFileList(sourcePath);
311
+
312
+ for (const file of sourceFiles) {
313
+ // Skip sub-modules directory - these are IDE-specific and handled separately
314
+ if (file.startsWith('sub-modules/')) {
315
+ continue;
316
+ }
317
+
318
+ // Skip _module-installer directory - it's only needed at install time
319
+ if (file.startsWith('_module-installer/')) {
320
+ continue;
321
+ }
322
+
323
+ // Skip config.yaml templates - we'll generate clean ones with actual values
324
+ if (file === 'config.yaml' || file.endsWith('/config.yaml')) {
325
+ continue;
326
+ }
327
+
328
+ // Skip user documentation if install_user_docs is false
329
+ if (moduleConfig.install_user_docs === false && (file.startsWith('docs/') || file.startsWith('docs\\'))) {
330
+ console.log(chalk.dim(` Skipping user documentation: ${file}`));
331
+ continue;
332
+ }
333
+
334
+ const sourceFile = path.join(sourcePath, file);
335
+ const targetFile = path.join(targetPath, file);
336
+
337
+ // Check if this is an agent file
338
+ if (file.startsWith('agents/') && file.endsWith('.md')) {
339
+ // Read the file to check for localskip
340
+ const content = await fs.readFile(sourceFile, 'utf8');
341
+
342
+ // Check for localskip="true" in the agent tag
343
+ const agentMatch = content.match(/<agent[^>]*\slocalskip="true"[^>]*>/);
344
+ if (agentMatch) {
345
+ console.log(chalk.dim(` Skipping web-only agent: ${path.basename(file)}`));
346
+ continue; // Skip this agent
347
+ }
348
+ }
349
+
350
+ // Check if this is a workflow.yaml file
351
+ if (file.endsWith('workflow.yaml')) {
352
+ await fs.ensureDir(path.dirname(targetFile));
353
+ await this.copyWorkflowYamlStripped(sourceFile, targetFile);
354
+ } else {
355
+ // Copy the file with placeholder replacement
356
+ await this.copyFileWithPlaceholderReplacement(sourceFile, targetFile);
357
+ }
358
+
359
+ // Track the file if callback provided
360
+ if (fileTrackingCallback) {
361
+ fileTrackingCallback(targetFile);
362
+ }
363
+ }
364
+ }
365
+
366
+ /**
367
+ * Copy workflow.yaml file with web_bundle section stripped
368
+ * Preserves comments, formatting, and line breaks
369
+ * @param {string} sourceFile - Source workflow.yaml file path
370
+ * @param {string} targetFile - Target workflow.yaml file path
371
+ */
372
+ async copyWorkflowYamlStripped(sourceFile, targetFile) {
373
+ // Read the source YAML file
374
+ let yamlContent = await fs.readFile(sourceFile, 'utf8');
375
+
376
+ // IMPORTANT: Replace {xiaoma_folder} BEFORE parsing YAML
377
+ // Otherwise parsing will fail on the placeholder
378
+ yamlContent = yamlContent.replaceAll('{xiaoma_folder}', this.xiaomaFolderName);
379
+
380
+ try {
381
+ // First check if web_bundle exists by parsing
382
+ const workflowConfig = yaml.load(yamlContent);
383
+
384
+ if (workflowConfig.web_bundle === undefined) {
385
+ // No web_bundle section, just write (placeholders already replaced above)
386
+ await fs.writeFile(targetFile, yamlContent, 'utf8');
387
+ return;
388
+ }
389
+
390
+ // Remove web_bundle section using regex to preserve formatting
391
+ // Match the web_bundle key and all its content (including nested items)
392
+ // This handles both web_bundle: false and web_bundle: {...}
393
+
394
+ // Find the line that starts web_bundle
395
+ const lines = yamlContent.split('\n');
396
+ let startIdx = -1;
397
+ let endIdx = -1;
398
+ let baseIndent = 0;
399
+
400
+ // Find the start of web_bundle section
401
+ for (const [i, line] of lines.entries()) {
402
+ const match = line.match(/^(\s*)web_bundle:/);
403
+ if (match) {
404
+ startIdx = i;
405
+ baseIndent = match[1].length;
406
+ break;
407
+ }
408
+ }
409
+
410
+ if (startIdx === -1) {
411
+ // web_bundle not found in text (shouldn't happen), copy as-is
412
+ await fs.writeFile(targetFile, yamlContent, 'utf8');
413
+ return;
414
+ }
415
+
416
+ // Find the end of web_bundle section
417
+ // It ends when we find a line with same or less indentation that's not empty/comment
418
+ endIdx = startIdx;
419
+ for (let i = startIdx + 1; i < lines.length; i++) {
420
+ const line = lines[i];
421
+
422
+ // Skip empty lines and comments
423
+ if (line.trim() === '' || line.trim().startsWith('#')) {
424
+ continue;
425
+ }
426
+
427
+ // Check indentation
428
+ const indent = line.match(/^(\s*)/)[1].length;
429
+ if (indent <= baseIndent) {
430
+ // Found next section at same or lower indentation
431
+ endIdx = i - 1;
432
+ break;
433
+ }
434
+ }
435
+
436
+ // If we didn't find an end, it goes to end of file
437
+ if (endIdx === startIdx) {
438
+ endIdx = lines.length - 1;
439
+ }
440
+
441
+ // Remove the web_bundle section (including the line before if it's just a blank line)
442
+ const newLines = [...lines.slice(0, startIdx), ...lines.slice(endIdx + 1)];
443
+
444
+ // Clean up any double blank lines that might result
445
+ const strippedYaml = newLines.join('\n').replaceAll(/\n\n\n+/g, '\n\n');
446
+
447
+ // Placeholders already replaced at the beginning of this function
448
+ await fs.writeFile(targetFile, strippedYaml, 'utf8');
449
+ } catch {
450
+ // If anything fails, just copy the file as-is
451
+ console.warn(chalk.yellow(` Warning: Could not process ${path.basename(sourceFile)}, copying as-is`));
452
+ await fs.copy(sourceFile, targetFile, { overwrite: true });
453
+ }
454
+ }
455
+
456
+ /**
457
+ * Process agent files to inject activation block
458
+ * @param {string} modulePath - Path to installed module
459
+ * @param {string} moduleName - Module name
460
+ */
461
+ async processAgentFiles(modulePath, moduleName) {
462
+ const agentsPath = path.join(modulePath, 'agents');
463
+
464
+ // Check if agents directory exists
465
+ if (!(await fs.pathExists(agentsPath))) {
466
+ return; // No agents to process
467
+ }
468
+
469
+ // Get all agent files
470
+ const agentFiles = await fs.readdir(agentsPath);
471
+
472
+ for (const agentFile of agentFiles) {
473
+ if (!agentFile.endsWith('.md')) continue;
474
+
475
+ const agentPath = path.join(agentsPath, agentFile);
476
+ let content = await fs.readFile(agentPath, 'utf8');
477
+
478
+ // Check if content has agent XML and no activation block
479
+ if (content.includes('<agent') && !content.includes('<activation')) {
480
+ // Inject the activation block using XML handler
481
+ content = this.xmlHandler.injectActivationSimple(content);
482
+ await fs.writeFile(agentPath, content, 'utf8');
483
+ }
484
+ }
485
+ }
486
+
487
+ /**
488
+ * Vendor cross-module workflows referenced in agent files
489
+ * Scans SOURCE agent.yaml files for workflow-install and copies workflows to destination
490
+ * @param {string} sourcePath - Source module path
491
+ * @param {string} targetPath - Target module path (destination)
492
+ * @param {string} moduleName - Module name being installed
493
+ */
494
+ async vendorCrossModuleWorkflows(sourcePath, targetPath, moduleName) {
495
+ const sourceAgentsPath = path.join(sourcePath, 'agents');
496
+
497
+ // Check if source agents directory exists
498
+ if (!(await fs.pathExists(sourceAgentsPath))) {
499
+ return; // No agents to process
500
+ }
501
+
502
+ // Get all agent YAML files from source
503
+ const agentFiles = await fs.readdir(sourceAgentsPath);
504
+ const yamlFiles = agentFiles.filter((f) => f.endsWith('.agent.yaml') || f.endsWith('.yaml'));
505
+
506
+ if (yamlFiles.length === 0) {
507
+ return; // No YAML agent files
508
+ }
509
+
510
+ let workflowsVendored = false;
511
+
512
+ for (const agentFile of yamlFiles) {
513
+ const agentPath = path.join(sourceAgentsPath, agentFile);
514
+ const agentYaml = yaml.load(await fs.readFile(agentPath, 'utf8'));
515
+
516
+ // Check if agent has menu items with workflow-install
517
+ const menuItems = agentYaml?.agent?.menu || [];
518
+ const workflowInstallItems = menuItems.filter((item) => item['workflow-install']);
519
+
520
+ if (workflowInstallItems.length === 0) {
521
+ continue; // No workflow-install in this agent
522
+ }
523
+
524
+ if (!workflowsVendored) {
525
+ console.log(chalk.cyan(`\n Vendoring cross-module workflows for ${moduleName}...`));
526
+ workflowsVendored = true;
527
+ }
528
+
529
+ console.log(chalk.dim(` Processing: ${agentFile}`));
530
+
531
+ for (const item of workflowInstallItems) {
532
+ const sourceWorkflowPath = item.workflow; // Where to copy FROM
533
+ const installWorkflowPath = item['workflow-install']; // Where to copy TO
534
+
535
+ // Parse SOURCE workflow path
536
+ // Handle both {xiaoma_folder} placeholder and hardcoded 'xiaoma'
537
+ // Example: {project-root}/{xiaoma_folder}/xmc/workflows/4-implementation/create-story/workflow.yaml
538
+ // Or: {project-root}/xiaoma/xmc/workflows/4-implementation/create-story/workflow.yaml
539
+ const sourceMatch = sourceWorkflowPath.match(/\{project-root\}\/(?:\{xiaoma_folder\}|xiaoma)\/([^/]+)\/workflows\/(.+)/);
540
+ if (!sourceMatch) {
541
+ console.warn(chalk.yellow(` Could not parse workflow path: ${sourceWorkflowPath}`));
542
+ continue;
543
+ }
544
+
545
+ const [, sourceModule, sourceWorkflowSubPath] = sourceMatch;
546
+
547
+ // Parse INSTALL workflow path
548
+ // Handle both {xiaoma_folder} placeholder and hardcoded 'xiaoma'
549
+ // Example: {project-root}/{xiaoma_folder}/xmc/workflows/4-implementation/create-story/workflow.yaml
550
+ const installMatch = installWorkflowPath.match(/\{project-root\}\/(?:\{xiaoma_folder\}|xiaoma)\/([^/]+)\/workflows\/(.+)/);
551
+ if (!installMatch) {
552
+ console.warn(chalk.yellow(` Could not parse workflow-install path: ${installWorkflowPath}`));
553
+ continue;
554
+ }
555
+
556
+ const installWorkflowSubPath = installMatch[2];
557
+
558
+ // Determine actual filesystem paths
559
+ const sourceModulePath = path.join(this.modulesSourcePath, sourceModule);
560
+ const actualSourceWorkflowPath = path.join(sourceModulePath, 'workflows', sourceWorkflowSubPath.replace(/\/workflow\.yaml$/, ''));
561
+
562
+ const actualDestWorkflowPath = path.join(targetPath, 'workflows', installWorkflowSubPath.replace(/\/workflow\.yaml$/, ''));
563
+
564
+ // Check if source workflow exists
565
+ if (!(await fs.pathExists(actualSourceWorkflowPath))) {
566
+ console.warn(chalk.yellow(` Source workflow not found: ${actualSourceWorkflowPath}`));
567
+ continue;
568
+ }
569
+
570
+ // Copy the entire workflow folder
571
+ console.log(
572
+ chalk.dim(
573
+ ` Vendoring: ${sourceModule}/workflows/${sourceWorkflowSubPath.replace(/\/workflow\.yaml$/, '')} → ${moduleName}/workflows/${installWorkflowSubPath.replace(/\/workflow\.yaml$/, '')}`,
574
+ ),
575
+ );
576
+
577
+ await fs.ensureDir(path.dirname(actualDestWorkflowPath));
578
+ // Copy the workflow directory recursively with placeholder replacement
579
+ await this.copyDirectoryWithPlaceholderReplacement(actualSourceWorkflowPath, actualDestWorkflowPath);
580
+
581
+ // Update the workflow.yaml config_source reference
582
+ const workflowYamlPath = path.join(actualDestWorkflowPath, 'workflow.yaml');
583
+ if (await fs.pathExists(workflowYamlPath)) {
584
+ await this.updateWorkflowConfigSource(workflowYamlPath, moduleName);
585
+ }
586
+ }
587
+ }
588
+
589
+ if (workflowsVendored) {
590
+ console.log(chalk.green(` ✓ Workflow vendoring complete\n`));
591
+ }
592
+ }
593
+
594
+ /**
595
+ * Update workflow.yaml config_source to point to new module
596
+ * @param {string} workflowYamlPath - Path to workflow.yaml file
597
+ * @param {string} newModuleName - New module name to reference
598
+ */
599
+ async updateWorkflowConfigSource(workflowYamlPath, newModuleName) {
600
+ let yamlContent = await fs.readFile(workflowYamlPath, 'utf8');
601
+
602
+ // Replace config_source: "{project-root}/{xiaoma_folder}/OLD_MODULE/config.yaml"
603
+ // with config_source: "{project-root}/{xiaoma_folder}/NEW_MODULE/config.yaml"
604
+ // Note: At this point {xiaoma_folder} has already been replaced with actual folder name
605
+ const configSourcePattern = /config_source:\s*["']?\{project-root\}\/[^/]+\/[^/]+\/config\.yaml["']?/g;
606
+ const newConfigSource = `config_source: "{project-root}/${this.xiaomaFolderName}/${newModuleName}/config.yaml"`;
607
+
608
+ const updatedYaml = yamlContent.replaceAll(configSourcePattern, newConfigSource);
609
+
610
+ if (updatedYaml !== yamlContent) {
611
+ await fs.writeFile(workflowYamlPath, updatedYaml, 'utf8');
612
+ console.log(chalk.dim(` Updated config_source to: ${this.xiaomaFolderName}/${newModuleName}/config.yaml`));
613
+ }
614
+ }
615
+
616
+ /**
617
+ * Run module-specific installer if it exists
618
+ * @param {string} moduleName - Name of the module
619
+ * @param {string} xiaomaDir - Target xiaoma directory
620
+ * @param {Object} options - Installation options
621
+ */
622
+ async runModuleInstaller(moduleName, xiaomaDir, options = {}) {
623
+ // Special handling for core module - it's in src/core not src/modules
624
+ let sourcePath;
625
+ if (moduleName === 'core') {
626
+ sourcePath = getSourcePath('core');
627
+ } else {
628
+ sourcePath = path.join(this.modulesSourcePath, moduleName);
629
+ }
630
+
631
+ const installerPath = path.join(sourcePath, '_module-installer', 'installer.js');
632
+
633
+ // Check if module has a custom installer
634
+ if (!(await fs.pathExists(installerPath))) {
635
+ return; // No custom installer
636
+ }
637
+
638
+ try {
639
+ // Load the module installer
640
+ const moduleInstaller = require(installerPath);
641
+
642
+ if (typeof moduleInstaller.install === 'function') {
643
+ // Get project root (parent of xiaoma directory)
644
+ const projectRoot = path.dirname(xiaomaDir);
645
+
646
+ // Prepare logger (use console if not provided)
647
+ const logger = options.logger || {
648
+ log: console.log,
649
+ error: console.error,
650
+ warn: console.warn,
651
+ };
652
+
653
+ // Call the module installer
654
+ const result = await moduleInstaller.install({
655
+ projectRoot,
656
+ config: options.moduleConfig || {},
657
+ installedIDEs: options.installedIDEs || [],
658
+ logger,
659
+ });
660
+
661
+ if (!result) {
662
+ console.warn(chalk.yellow(`Module installer for ${moduleName} returned false`));
663
+ }
664
+ }
665
+ } catch (error) {
666
+ console.error(chalk.red(`Error running module installer for ${moduleName}: ${error.message}`));
667
+ }
668
+ }
669
+
670
+ /**
671
+ * Private: Process module configuration
672
+ * @param {string} modulePath - Path to installed module
673
+ * @param {string} moduleName - Module name
674
+ */
675
+ async processModuleConfig(modulePath, moduleName) {
676
+ const configPath = path.join(modulePath, 'config.yaml');
677
+
678
+ if (await fs.pathExists(configPath)) {
679
+ try {
680
+ let configContent = await fs.readFile(configPath, 'utf8');
681
+
682
+ // Replace path placeholders
683
+ configContent = configContent.replaceAll('{project-root}', `xiaoma/${moduleName}`);
684
+ configContent = configContent.replaceAll('{module}', moduleName);
685
+
686
+ await fs.writeFile(configPath, configContent, 'utf8');
687
+ } catch (error) {
688
+ console.warn(`Failed to process module config:`, error.message);
689
+ }
690
+ }
691
+ }
692
+
693
+ /**
694
+ * Private: Sync module files (preserving user modifications)
695
+ * @param {string} sourcePath - Source module path
696
+ * @param {string} targetPath - Target module path
697
+ */
698
+ async syncModule(sourcePath, targetPath) {
699
+ // Get list of all source files
700
+ const sourceFiles = await this.getFileList(sourcePath);
701
+
702
+ for (const file of sourceFiles) {
703
+ const sourceFile = path.join(sourcePath, file);
704
+ const targetFile = path.join(targetPath, file);
705
+
706
+ // Check if target file exists and has been modified
707
+ if (await fs.pathExists(targetFile)) {
708
+ const sourceStats = await fs.stat(sourceFile);
709
+ const targetStats = await fs.stat(targetFile);
710
+
711
+ // Skip if target is newer (user modified)
712
+ if (targetStats.mtime > sourceStats.mtime) {
713
+ continue;
714
+ }
715
+ }
716
+
717
+ // Copy file with placeholder replacement
718
+ await this.copyFileWithPlaceholderReplacement(sourceFile, targetFile);
719
+ }
720
+ }
721
+
722
+ /**
723
+ * Private: Get list of all files in a directory
724
+ * @param {string} dir - Directory path
725
+ * @param {string} baseDir - Base directory for relative paths
726
+ * @returns {Array} List of relative file paths
727
+ */
728
+ async getFileList(dir, baseDir = dir) {
729
+ const files = [];
730
+ const entries = await fs.readdir(dir, { withFileTypes: true });
731
+
732
+ for (const entry of entries) {
733
+ const fullPath = path.join(dir, entry.name);
734
+
735
+ if (entry.isDirectory()) {
736
+ // Skip _module-installer directories
737
+ if (entry.name === '_module-installer') {
738
+ continue;
739
+ }
740
+ const subFiles = await this.getFileList(fullPath, baseDir);
741
+ files.push(...subFiles);
742
+ } else {
743
+ files.push(path.relative(baseDir, fullPath));
744
+ }
745
+ }
746
+
747
+ return files;
748
+ }
749
+ }
750
+
751
+ module.exports = { ModuleManager };