@zeyue0329/xiaoma-cli 1.0.49 → 1.6.4

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 (895) hide show
  1. package/.github/workflows/quality.yaml +116 -0
  2. package/.husky/pre-commit +26 -0
  3. package/.idea/codeStyles/Project.xml +60 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  5. package/.idea/jsLibraryMappings.xml +6 -0
  6. package/.idea/modules.xml +1 -1
  7. package/.idea/vcs.xml +0 -1
  8. package/.idea/workspace.xml +40 -24
  9. package/.markdownlint-cli2.yaml +41 -0
  10. package/.prettierignore +12 -0
  11. package/.vscode/settings.json +96 -0
  12. package/LICENSE +30 -0
  13. package/README.md +108 -2
  14. package/XIAOMA-CLI-GUIDE.md +512 -0
  15. package/{.idea/XiaoMa-Cli.iml → XiaoMa-Cli.iml} +1 -1
  16. package/custom/src/agents/commit-poet/commit-poet.agent.yaml +129 -0
  17. package/custom/src/agents/commit-poet/installation-guide.md +36 -0
  18. package/custom/src/agents/toolsmith/installation-guide.md +36 -0
  19. package/custom/src/agents/toolsmith/toolsmith-sidecar/instructions.md +70 -0
  20. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +111 -0
  21. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +70 -0
  22. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +114 -0
  23. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +134 -0
  24. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +160 -0
  25. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +103 -0
  26. package/custom/src/agents/toolsmith/toolsmith-sidecar/memories.md +17 -0
  27. package/custom/src/agents/toolsmith/toolsmith.agent.yaml +108 -0
  28. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  29. package/docs/agent-customization-guide.md +208 -0
  30. package/docs/custom-agent-installation.md +183 -0
  31. package/docs/document-sharding-guide.md +449 -0
  32. package/docs/explanation/advanced-elicitation.md +49 -0
  33. package/docs/explanation/adversarial-review.md +59 -0
  34. package/docs/explanation/brainstorming.md +33 -0
  35. package/docs/explanation/established-projects-faq.md +50 -0
  36. package/docs/explanation/party-mode.md +59 -0
  37. package/docs/explanation/preventing-agent-conflicts.md +112 -0
  38. package/docs/explanation/project-context.md +157 -0
  39. package/docs/explanation/quick-dev-new-preview.md +73 -0
  40. package/docs/explanation/quick-flow.md +77 -0
  41. package/docs/explanation/why-solutioning-matters.md +77 -0
  42. package/docs/how-to/customize-xiaoma.md +172 -0
  43. package/docs/how-to/established-projects.md +117 -0
  44. package/docs/how-to/get-answers-about-xiaoma.md +134 -0
  45. package/docs/how-to/install-xiaoma.md +107 -0
  46. package/docs/how-to/non-interactive-installation.md +171 -0
  47. package/docs/how-to/project-context.md +136 -0
  48. package/docs/how-to/quick-fixes.md +123 -0
  49. package/docs/how-to/shard-large-documents.md +78 -0
  50. package/docs/how-to/upgrade-to-v6.md +100 -0
  51. package/docs/ide-info/auggie.md +31 -0
  52. package/docs/ide-info/claude-code.md +25 -0
  53. package/docs/ide-info/cline.md +31 -0
  54. package/docs/ide-info/codex.md +21 -0
  55. package/docs/ide-info/crush.md +30 -0
  56. package/docs/ide-info/cursor.md +25 -0
  57. package/docs/ide-info/gemini.md +25 -0
  58. package/docs/ide-info/github-copilot.md +26 -0
  59. package/docs/ide-info/iflow.md +33 -0
  60. package/docs/ide-info/kilo.md +24 -0
  61. package/docs/ide-info/opencode.md +24 -0
  62. package/docs/ide-info/qwen.md +25 -0
  63. package/docs/ide-info/roo.md +27 -0
  64. package/docs/ide-info/rovo-dev.md +388 -0
  65. package/docs/ide-info/trae.md +25 -0
  66. package/docs/ide-info/windsurf.md +22 -0
  67. package/docs/index.md +60 -0
  68. package/docs/installers-bundlers/ide-injections.md +186 -0
  69. package/docs/installers-bundlers/installers-modules-platforms-reference.md +379 -0
  70. package/docs/rag/rag.md +856 -0
  71. package/docs/reference/agents.md +28 -0
  72. package/docs/reference/commands.md +145 -0
  73. package/docs/reference/modules.md +76 -0
  74. package/docs/reference/testing.md +106 -0
  75. package/docs/reference/workflow-map.md +89 -0
  76. package/docs/roadmap.mdx +136 -0
  77. package/docs/superpowers/plans/2026-03-11-upstream-sync-with-branding.md +586 -0
  78. package/docs/tutorials/getting-started.md +273 -0
  79. package/docs/v4-to-v6-upgrade.md +220 -0
  80. package/docs/v6-open-items.md +17 -0
  81. package/docs/web-bundles-gemini-gpt-guide.md +468 -0
  82. package/docs/zh-cn/404.md +9 -0
  83. package/docs/zh-cn/_STYLE_GUIDE.md +370 -0
  84. package/docs/zh-cn/explanation/advanced-elicitation.md +62 -0
  85. package/docs/zh-cn/explanation/adversarial-review.md +71 -0
  86. package/docs/zh-cn/explanation/brainstorming.md +43 -0
  87. package/docs/zh-cn/explanation/established-projects-faq.md +60 -0
  88. package/docs/zh-cn/explanation/party-mode.md +79 -0
  89. package/docs/zh-cn/explanation/preventing-agent-conflicts.md +137 -0
  90. package/docs/zh-cn/explanation/project-context.md +176 -0
  91. package/docs/zh-cn/explanation/quick-flow.md +93 -0
  92. package/docs/zh-cn/explanation/why-solutioning-matters.md +90 -0
  93. package/docs/zh-cn/how-to/customize-xiaoma.md +182 -0
  94. package/docs/zh-cn/how-to/established-projects.md +134 -0
  95. package/docs/zh-cn/how-to/get-answers-about-xiaoma.md +144 -0
  96. package/docs/zh-cn/how-to/install-xiaoma.md +105 -0
  97. package/docs/zh-cn/how-to/non-interactive-installation.md +181 -0
  98. package/docs/zh-cn/how-to/project-context.md +152 -0
  99. package/docs/zh-cn/how-to/quick-fixes.md +140 -0
  100. package/docs/zh-cn/how-to/shard-large-documents.md +86 -0
  101. package/docs/zh-cn/how-to/upgrade-to-v6.md +120 -0
  102. package/docs/zh-cn/index.md +69 -0
  103. package/docs/zh-cn/reference/agents.md +41 -0
  104. package/docs/zh-cn/reference/commands.md +166 -0
  105. package/docs/zh-cn/reference/modules.md +94 -0
  106. package/docs/zh-cn/reference/testing.md +122 -0
  107. package/docs/zh-cn/reference/workflow-map.md +104 -0
  108. package/docs/zh-cn/roadmap.mdx +152 -0
  109. package/docs/zh-cn/tutorials/getting-started.md +300 -0
  110. package/eslint.config.mjs +144 -0
  111. package/package.json +56 -58
  112. package/prettier.config.mjs +32 -0
  113. package/src/core/_module-installer/install-config.yaml +29 -0
  114. package/src/core/_module-installer/installer.js +60 -0
  115. package/src/core/agents/xiaoma-master.agent.yaml +30 -0
  116. package/src/core/agents/xiaoma-skill-manifest.yaml +3 -0
  117. package/src/core/agents/xiaoma-web-orchestrator.agent.xml +113 -0
  118. package/src/core/module-help.csv +10 -0
  119. package/src/core/module.yaml +25 -0
  120. package/src/core/resources/excalidraw/README.md +160 -0
  121. package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  122. package/src/core/resources/excalidraw/library-loader.md +50 -0
  123. package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
  124. package/src/core/tasks/advanced-elicitation-methods.csv +51 -0
  125. package/src/core/tasks/advanced-elicitation.xml +116 -0
  126. package/src/core/tasks/editorial-review-prose.xml +102 -0
  127. package/src/core/tasks/editorial-review-structure.xml +208 -0
  128. package/src/core/tasks/help.md +92 -0
  129. package/src/core/tasks/index-docs.xml +65 -0
  130. package/src/core/tasks/review-adversarial-general.xml +49 -0
  131. package/src/core/tasks/review-edge-case-hunter.xml +63 -0
  132. package/src/core/tasks/shard-doc.xml +108 -0
  133. package/src/core/tasks/validate-workflow.xml +89 -0
  134. package/src/core/tasks/workflow.xml +235 -0
  135. package/src/core/tasks/xiaoma-help/SKILL.md +6 -0
  136. package/src/core/tasks/xiaoma-help/workflow.md +88 -0
  137. package/src/core/tasks/xiaoma-help/xiaoma-skill-manifest.yaml +1 -0
  138. package/src/core/tasks/xiaoma-review-adversarial-general/SKILL.md +6 -0
  139. package/src/core/tasks/xiaoma-review-adversarial-general/workflow.md +32 -0
  140. package/src/core/tasks/xiaoma-review-adversarial-general/xiaoma-skill-manifest.yaml +1 -0
  141. package/src/core/tasks/xiaoma-review-edge-case-hunter/SKILL.md +6 -0
  142. package/src/core/tasks/xiaoma-review-edge-case-hunter/workflow.md +62 -0
  143. package/src/core/tasks/xiaoma-review-edge-case-hunter/xiaoma-skill-manifest.yaml +1 -0
  144. package/src/core/tasks/xiaoma-skill-manifest.yaml +19 -0
  145. package/src/core/tools/shard-doc.xml +109 -0
  146. package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
  147. package/src/core/workflows/advanced-elicitation/workflow.md +138 -0
  148. package/src/core/workflows/advanced-elicitation/workflow.xml +118 -0
  149. package/src/core/workflows/advanced-elicitation/xiaoma-skill-manifest.yaml +3 -0
  150. package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
  151. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +210 -0
  152. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  153. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  154. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  155. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  156. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  157. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  158. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  159. package/src/core/workflows/brainstorming/template.md +15 -0
  160. package/src/core/workflows/brainstorming/workflow.md +60 -0
  161. package/src/core/workflows/brainstorming/xiaoma-skill-manifest.yaml +3 -0
  162. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  163. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  164. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +168 -0
  165. package/src/core/workflows/party-mode/workflow.md +194 -0
  166. package/src/core/workflows/party-mode/xiaoma-skill-manifest.yaml +3 -0
  167. package/src/utility/agent-components/activation-rules.txt +6 -0
  168. package/src/utility/agent-components/activation-steps.txt +14 -0
  169. package/src/utility/agent-components/agent-command-header.md +1 -0
  170. package/src/utility/agent-components/agent.customize.template.yaml +41 -0
  171. package/src/utility/agent-components/handler-action.txt +4 -0
  172. package/src/utility/agent-components/handler-data.txt +5 -0
  173. package/src/utility/agent-components/handler-exec.txt +6 -0
  174. package/src/utility/agent-components/handler-multi.txt +13 -0
  175. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  176. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  177. package/src/utility/agent-components/handler-workflow.txt +10 -0
  178. package/src/utility/agent-components/menu-handlers.txt +6 -0
  179. package/src/utility/models/action-command-header.md +0 -0
  180. package/src/utility/models/agent-activation-ide.xml +51 -0
  181. package/src/utility/models/agent-activation-web.xml +50 -0
  182. package/src/utility/models/agent-command-header.md +1 -0
  183. package/src/utility/models/agent-config-template.md +23 -0
  184. package/src/utility/models/agent-in-team-activation.xml +3 -0
  185. package/src/utility/models/fragments/activation-rules.xml +7 -0
  186. package/src/utility/models/fragments/activation-steps.xml +16 -0
  187. package/src/utility/models/fragments/handler-action.xml +4 -0
  188. package/src/utility/models/fragments/handler-data.xml +5 -0
  189. package/src/utility/models/fragments/handler-exec.xml +6 -0
  190. package/src/utility/models/fragments/handler-multi.xml +14 -0
  191. package/src/utility/models/fragments/handler-tmpl.xml +5 -0
  192. package/src/utility/models/fragments/handler-validate-workflow.xml +7 -0
  193. package/src/utility/models/fragments/handler-workflow.xml +9 -0
  194. package/src/utility/models/fragments/menu-handlers.xml +6 -0
  195. package/src/utility/models/fragments/web-bundle-activation-steps.xml +32 -0
  196. package/src/utility/templates/agent.customize.template.yaml +42 -0
  197. package/src/xmc/_module-installer/install-config.yaml +53 -0
  198. package/src/xmc/_module-installer/installer.js +131 -0
  199. package/src/xmc/_module-installer/platform-specifics/claude-code.js +35 -0
  200. package/src/xmc/_module-installer/platform-specifics/windsurf.js +32 -0
  201. package/src/xmc/agents/analyst.agent.yaml +43 -0
  202. package/src/xmc/agents/architect.agent.yaml +29 -0
  203. package/src/xmc/agents/dev.agent.yaml +38 -0
  204. package/src/xmc/agents/pm.agent.yaml +44 -0
  205. package/src/xmc/agents/qa.agent.yaml +58 -0
  206. package/src/xmc/agents/quick-flow-solo-dev.agent.yaml +36 -0
  207. package/src/xmc/agents/sm.agent.yaml +37 -0
  208. package/src/xmc/agents/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
  209. package/src/xmc/agents/tech-writer/tech-writer.agent.yaml +46 -0
  210. package/src/xmc/agents/tech-writer/xiaoma-skill-manifest.yaml +3 -0
  211. package/src/xmc/agents/ux-designer.agent.yaml +27 -0
  212. package/src/xmc/agents/xiaoma-skill-manifest.yaml +39 -0
  213. package/src/xmc/data/project-context-template.md +26 -0
  214. package/src/xmc/module-help.csv +32 -0
  215. package/src/xmc/module.yaml +50 -0
  216. package/src/xmc/sub-modules/claude-code/config.yaml +5 -0
  217. package/src/xmc/sub-modules/claude-code/injections.yaml +242 -0
  218. package/src/xmc/sub-modules/claude-code/readme.md +87 -0
  219. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-analysis/api-documenter.md +102 -0
  220. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-analysis/codebase-analyzer.md +82 -0
  221. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-analysis/data-analyst.md +101 -0
  222. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-analysis/pattern-detector.md +84 -0
  223. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/dependency-mapper.md +83 -0
  224. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/epic-optimizer.md +81 -0
  225. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/requirements-analyst.md +61 -0
  226. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/technical-decisions-curator.md +168 -0
  227. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/trend-spotter.md +115 -0
  228. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/user-journey-mapper.md +123 -0
  229. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/user-researcher.md +72 -0
  230. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-research/market-researcher.md +51 -0
  231. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-research/tech-debt-auditor.md +106 -0
  232. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-review/document-reviewer.md +102 -0
  233. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-review/technical-evaluator.md +68 -0
  234. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-review/test-coverage-analyzer.md +108 -0
  235. package/src/xmc/teams/default-party.csv +20 -0
  236. package/src/xmc/teams/team-fullstack.yaml +12 -0
  237. package/src/xmc/testarch/knowledge/api-request.md +303 -0
  238. package/src/xmc/testarch/knowledge/auth-session.md +356 -0
  239. package/src/xmc/testarch/knowledge/burn-in.md +273 -0
  240. package/src/xmc/testarch/knowledge/ci-burn-in.md +675 -0
  241. package/src/xmc/testarch/knowledge/component-tdd.md +486 -0
  242. package/src/xmc/testarch/knowledge/contract-testing.md +957 -0
  243. package/src/xmc/testarch/knowledge/data-factories.md +500 -0
  244. package/src/xmc/testarch/knowledge/email-auth.md +721 -0
  245. package/src/xmc/testarch/knowledge/error-handling.md +725 -0
  246. package/src/xmc/testarch/knowledge/feature-flags.md +750 -0
  247. package/src/xmc/testarch/knowledge/file-utils.md +260 -0
  248. package/src/xmc/testarch/knowledge/fixture-architecture.md +401 -0
  249. package/src/xmc/testarch/knowledge/fixtures-composition.md +382 -0
  250. package/src/xmc/testarch/knowledge/intercept-network-call.md +280 -0
  251. package/src/xmc/testarch/knowledge/log.md +294 -0
  252. package/src/xmc/testarch/knowledge/network-error-monitor.md +272 -0
  253. package/src/xmc/testarch/knowledge/network-first.md +486 -0
  254. package/src/xmc/testarch/knowledge/network-recorder.md +265 -0
  255. package/src/xmc/testarch/knowledge/nfr-criteria.md +670 -0
  256. package/src/xmc/testarch/knowledge/overview.md +284 -0
  257. package/src/xmc/testarch/knowledge/playwright-config.md +730 -0
  258. package/src/xmc/testarch/knowledge/probability-impact.md +601 -0
  259. package/src/xmc/testarch/knowledge/recurse.md +296 -0
  260. package/src/xmc/testarch/knowledge/risk-governance.md +615 -0
  261. package/src/xmc/testarch/knowledge/selective-testing.md +732 -0
  262. package/src/xmc/testarch/knowledge/selector-resilience.md +527 -0
  263. package/src/xmc/testarch/knowledge/test-healing-patterns.md +644 -0
  264. package/src/xmc/testarch/knowledge/test-levels-framework.md +473 -0
  265. package/src/xmc/testarch/knowledge/test-priorities-matrix.md +373 -0
  266. package/src/xmc/testarch/knowledge/test-quality.md +664 -0
  267. package/src/xmc/testarch/knowledge/timing-debugging.md +372 -0
  268. package/src/xmc/testarch/knowledge/visual-debugging.md +524 -0
  269. package/src/xmc/testarch/tea-index.csv +33 -0
  270. package/src/xmc/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  271. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  272. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  273. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  274. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  275. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  276. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  277. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
  278. package/src/xmc/workflows/1-analysis/create-product-brief/workflow.md +57 -0
  279. package/src/xmc/workflows/1-analysis/create-product-brief/xiaoma-skill-manifest.yaml +3 -0
  280. package/src/xmc/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  281. package/src/xmc/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  282. package/src/xmc/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  283. package/src/xmc/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  284. package/src/xmc/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  285. package/src/xmc/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +444 -0
  286. package/src/xmc/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  287. package/src/xmc/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  288. package/src/xmc/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  289. package/src/xmc/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  290. package/src/xmc/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  291. package/src/xmc/workflows/1-analysis/research/market-steps/step-06-research-completion.md +476 -0
  292. package/src/xmc/workflows/1-analysis/research/research.template.md +29 -0
  293. package/src/xmc/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  294. package/src/xmc/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  295. package/src/xmc/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  296. package/src/xmc/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  297. package/src/xmc/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +233 -0
  298. package/src/xmc/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +487 -0
  299. package/src/xmc/workflows/1-analysis/research/workflow-domain-research.md +54 -0
  300. package/src/xmc/workflows/1-analysis/research/workflow-market-research.md +54 -0
  301. package/src/xmc/workflows/1-analysis/research/workflow-technical-research.md +54 -0
  302. package/src/xmc/workflows/1-analysis/research/xiaoma-skill-manifest.yaml +14 -0
  303. package/src/xmc/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +15 -0
  304. package/src/xmc/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  305. package/src/xmc/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  306. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
  307. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +152 -0
  308. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
  309. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +154 -0
  310. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +170 -0
  311. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
  312. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
  313. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
  314. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
  315. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
  316. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
  317. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
  318. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
  319. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
  320. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
  321. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
  322. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  323. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
  324. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
  325. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
  326. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +226 -0
  327. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
  328. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
  329. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
  330. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  331. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
  332. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
  333. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  334. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  335. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
  336. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
  337. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  338. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
  339. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
  340. package/src/xmc/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
  341. package/src/xmc/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +63 -0
  342. package/src/xmc/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +65 -0
  343. package/src/xmc/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +63 -0
  344. package/src/xmc/workflows/2-plan-workflows/create-prd/xiaoma-skill-manifest.yaml +14 -0
  345. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  346. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  347. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  348. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  349. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  350. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  351. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  352. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  353. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  354. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  355. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  356. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  357. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  358. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  359. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
  360. package/src/xmc/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  361. package/src/xmc/workflows/2-plan-workflows/create-ux-design/workflow.md +42 -0
  362. package/src/xmc/workflows/2-plan-workflows/create-ux-design/xiaoma-skill-manifest.yaml +3 -0
  363. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +184 -0
  364. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +172 -0
  365. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +173 -0
  366. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +133 -0
  367. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +245 -0
  368. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +129 -0
  369. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  370. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/workflow.md +54 -0
  371. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/xiaoma-skill-manifest.yaml +3 -0
  372. package/src/xmc/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  373. package/src/xmc/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +13 -0
  374. package/src/xmc/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  375. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  376. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +173 -0
  377. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  378. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +329 -0
  379. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  380. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  381. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  382. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  383. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
  384. package/src/xmc/workflows/3-solutioning/create-architecture/workflow.md +49 -0
  385. package/src/xmc/workflows/3-solutioning/create-architecture/xiaoma-skill-manifest.yaml +3 -0
  386. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  387. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  388. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  389. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
  390. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  391. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
  392. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/xiaoma-skill-manifest.yaml +3 -0
  393. package/src/xmc/workflows/4-implementation/code-review/checklist.md +23 -0
  394. package/src/xmc/workflows/4-implementation/code-review/discover-inputs.md +88 -0
  395. package/src/xmc/workflows/4-implementation/code-review/workflow.md +271 -0
  396. package/src/xmc/workflows/4-implementation/code-review/xiaoma-skill-manifest.yaml +3 -0
  397. package/src/xmc/workflows/4-implementation/correct-course/checklist.md +288 -0
  398. package/src/xmc/workflows/4-implementation/correct-course/workflow.md +274 -0
  399. package/src/xmc/workflows/4-implementation/correct-course/xiaoma-skill-manifest.yaml +3 -0
  400. package/src/xmc/workflows/4-implementation/create-story/checklist.md +357 -0
  401. package/src/xmc/workflows/4-implementation/create-story/discover-inputs.md +88 -0
  402. package/src/xmc/workflows/4-implementation/create-story/template.md +49 -0
  403. package/src/xmc/workflows/4-implementation/create-story/workflow.md +388 -0
  404. package/src/xmc/workflows/4-implementation/create-story/xiaoma-skill-manifest.yaml +3 -0
  405. package/src/xmc/workflows/4-implementation/dev-story/checklist.md +80 -0
  406. package/src/xmc/workflows/4-implementation/dev-story/workflow.md +457 -0
  407. package/src/xmc/workflows/4-implementation/dev-story/xiaoma-skill-manifest.yaml +3 -0
  408. package/src/xmc/workflows/4-implementation/retrospective/workflow.md +1485 -0
  409. package/src/xmc/workflows/4-implementation/retrospective/xiaoma-skill-manifest.yaml +3 -0
  410. package/src/xmc/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  411. package/src/xmc/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +56 -0
  412. package/src/xmc/workflows/4-implementation/sprint-planning/workflow.md +271 -0
  413. package/src/xmc/workflows/4-implementation/sprint-planning/xiaoma-skill-manifest.yaml +3 -0
  414. package/src/xmc/workflows/4-implementation/sprint-status/workflow.md +267 -0
  415. package/src/xmc/workflows/4-implementation/sprint-status/xiaoma-skill-manifest.yaml +3 -0
  416. package/src/xmc/workflows/document-project/checklist.md +245 -0
  417. package/src/xmc/workflows/document-project/documentation-requirements.csv +12 -0
  418. package/src/xmc/workflows/document-project/instructions.md +128 -0
  419. package/src/xmc/workflows/document-project/templates/deep-dive-template.md +345 -0
  420. package/src/xmc/workflows/document-project/templates/index-template.md +169 -0
  421. package/src/xmc/workflows/document-project/templates/project-overview-template.md +103 -0
  422. package/src/xmc/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  423. package/src/xmc/workflows/document-project/templates/source-tree-template.md +135 -0
  424. package/src/xmc/workflows/document-project/workflow.md +39 -0
  425. package/src/xmc/workflows/document-project/workflows/deep-dive-instructions.md +297 -0
  426. package/src/xmc/workflows/document-project/workflows/deep-dive-workflow.md +42 -0
  427. package/src/xmc/workflows/document-project/workflows/full-scan-instructions.md +1105 -0
  428. package/src/xmc/workflows/document-project/workflows/full-scan-workflow.md +42 -0
  429. package/src/xmc/workflows/document-project/xiaoma-skill-manifest.yaml +3 -0
  430. package/src/xmc/workflows/generate-project-context/project-context-template.md +21 -0
  431. package/src/xmc/workflows/generate-project-context/steps/step-01-discover.md +184 -0
  432. package/src/xmc/workflows/generate-project-context/steps/step-02-generate.md +318 -0
  433. package/src/xmc/workflows/generate-project-context/steps/step-03-complete.md +278 -0
  434. package/src/xmc/workflows/generate-project-context/workflow.md +49 -0
  435. package/src/xmc/workflows/generate-project-context/xiaoma-skill-manifest.yaml +3 -0
  436. package/src/xmc/workflows/qa-generate-e2e-tests/checklist.md +33 -0
  437. package/src/xmc/workflows/qa-generate-e2e-tests/workflow.md +143 -0
  438. package/src/xmc/workflows/qa-generate-e2e-tests/xiaoma-skill-manifest.yaml +3 -0
  439. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-01-mode-detection.md +174 -0
  440. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-02-context-gathering.md +118 -0
  441. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-03-execute.md +111 -0
  442. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-04-self-check.md +111 -0
  443. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-05-adversarial-review.md +98 -0
  444. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-06-resolve-findings.md +146 -0
  445. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/workflow.md +50 -0
  446. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/xiaoma-skill-manifest.yaml +3 -0
  447. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/steps/step-01-understand.md +189 -0
  448. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/steps/step-02-investigate.md +143 -0
  449. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/steps/step-03-generate.md +126 -0
  450. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/steps/step-04-review.md +198 -0
  451. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/tech-spec-template.md +74 -0
  452. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/workflow.md +79 -0
  453. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/xiaoma-skill-manifest.yaml +3 -0
  454. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/SKILL.md +6 -0
  455. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/steps/step-01-clarify-and-route.md +54 -0
  456. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/steps/step-02-plan.md +39 -0
  457. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/steps/step-03-implement.md +35 -0
  458. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/steps/step-04-review.md +55 -0
  459. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/steps/step-05-present.md +19 -0
  460. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/tech-spec-template.md +90 -0
  461. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/workflow.md +84 -0
  462. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/xiaoma-skill-manifest.yaml +1 -0
  463. package/test/README.md +295 -0
  464. package/test/adversarial-review-tests/README.md +56 -0
  465. package/test/adversarial-review-tests/sample-content.md +46 -0
  466. package/test/adversarial-review-tests/test-cases.yaml +103 -0
  467. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +27 -0
  468. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +30 -0
  469. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +22 -0
  470. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +20 -0
  471. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +25 -0
  472. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +24 -0
  473. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +25 -0
  474. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +25 -0
  475. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +25 -0
  476. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +31 -0
  477. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +25 -0
  478. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +25 -0
  479. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +25 -0
  480. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +25 -0
  481. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
  482. package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
  483. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +27 -0
  484. package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
  485. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +24 -0
  486. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +27 -0
  487. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +27 -0
  488. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +24 -0
  489. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +29 -0
  490. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +31 -0
  491. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +28 -0
  492. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +28 -0
  493. package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
  494. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +28 -0
  495. package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
  496. package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
  497. package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
  498. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +24 -0
  499. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +22 -0
  500. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +27 -0
  501. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +31 -0
  502. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +22 -0
  503. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +38 -0
  504. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +23 -0
  505. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +31 -0
  506. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +34 -0
  507. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +24 -0
  508. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +24 -0
  509. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +24 -0
  510. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +24 -0
  511. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +23 -0
  512. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +24 -0
  513. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +24 -0
  514. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +24 -0
  515. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +22 -0
  516. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +28 -0
  517. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +30 -0
  518. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +24 -0
  519. package/test/fixtures/file-refs-csv/invalid/all-empty-workflow.csv +3 -0
  520. package/test/fixtures/file-refs-csv/invalid/empty-data.csv +1 -0
  521. package/test/fixtures/file-refs-csv/invalid/no-workflow-column.csv +3 -0
  522. package/test/fixtures/file-refs-csv/invalid/unresolvable-vars.csv +3 -0
  523. package/test/fixtures/file-refs-csv/valid/core-style.csv +3 -0
  524. package/test/fixtures/file-refs-csv/valid/minimal.csv +2 -0
  525. package/test/fixtures/file-refs-csv/valid/xmc-style.csv +3 -0
  526. package/test/test-agent-schema.js +387 -0
  527. package/test/test-cli-integration.sh +159 -0
  528. package/test/test-file-refs-csv.js +133 -0
  529. package/test/test-install-to-xiaoma.js +154 -0
  530. package/test/test-installation-components.js +1802 -0
  531. package/test/test-rehype-plugins.mjs +1050 -0
  532. package/test/test-workflow-path-regex.js +88 -0
  533. package/test/unit-test-schema.js +133 -0
  534. package/tools/build-docs.mjs +464 -0
  535. package/tools/cli/README.md +60 -0
  536. package/tools/cli/bundlers/bundle-web.js +179 -0
  537. package/tools/cli/bundlers/bundlers/bundle-web.js +179 -0
  538. package/tools/cli/bundlers/bundlers/test-analyst.js +28 -0
  539. package/tools/cli/bundlers/bundlers/test-bundler.js +119 -0
  540. package/tools/cli/bundlers/bundlers/web-bundler.js +1754 -0
  541. package/tools/cli/bundlers/test-analyst.js +28 -0
  542. package/tools/cli/bundlers/test-bundler.js +119 -0
  543. package/tools/cli/bundlers/web-bundler.js +1754 -0
  544. package/tools/cli/commands/agent-install.js +409 -0
  545. package/tools/cli/commands/build.js +458 -0
  546. package/tools/cli/commands/cleanup.js +144 -0
  547. package/tools/cli/commands/install.js +87 -0
  548. package/tools/cli/commands/list.js +43 -0
  549. package/tools/cli/commands/status.js +65 -0
  550. package/tools/cli/commands/uninstall.js +167 -0
  551. package/tools/cli/commands/update.js +28 -0
  552. package/tools/cli/external-official-modules.yaml +53 -0
  553. package/tools/cli/installers/install-messages.yaml +39 -0
  554. package/tools/cli/installers/lib/core/config-collector.js +1285 -0
  555. package/tools/cli/installers/lib/core/custom-module-cache.js +260 -0
  556. package/tools/cli/installers/lib/core/dependency-resolver.js +743 -0
  557. package/tools/cli/installers/lib/core/detector.js +223 -0
  558. package/tools/cli/installers/lib/core/ide-config-manager.js +157 -0
  559. package/tools/cli/installers/lib/core/installer.js +3195 -0
  560. package/tools/cli/installers/lib/core/manifest-generator.js +1374 -0
  561. package/tools/cli/installers/lib/core/manifest.js +1038 -0
  562. package/tools/cli/installers/lib/custom/handler.js +358 -0
  563. package/tools/cli/installers/lib/ide/_base-ide.js +674 -0
  564. package/tools/cli/installers/lib/ide/_config-driven.js +1053 -0
  565. package/tools/cli/installers/lib/ide/antigravity.js +510 -0
  566. package/tools/cli/installers/lib/ide/auggie.js +232 -0
  567. package/tools/cli/installers/lib/ide/claude-code.js +512 -0
  568. package/tools/cli/installers/lib/ide/cline.js +269 -0
  569. package/tools/cli/installers/lib/ide/codex.js +440 -0
  570. package/tools/cli/installers/lib/ide/crush.js +287 -0
  571. package/tools/cli/installers/lib/ide/cursor.js +400 -0
  572. package/tools/cli/installers/lib/ide/gemini.js +253 -0
  573. package/tools/cli/installers/lib/ide/github-copilot.js +699 -0
  574. package/tools/cli/installers/lib/ide/iflow.js +172 -0
  575. package/tools/cli/installers/lib/ide/kilo.js +269 -0
  576. package/tools/cli/installers/lib/ide/manager.js +304 -0
  577. package/tools/cli/installers/lib/ide/opencode.js +257 -0
  578. package/tools/cli/installers/lib/ide/platform-codes.js +100 -0
  579. package/tools/cli/installers/lib/ide/platform-codes.yaml +321 -0
  580. package/tools/cli/installers/lib/ide/qwen.js +372 -0
  581. package/tools/cli/installers/lib/ide/roo.js +324 -0
  582. package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
  583. package/tools/cli/installers/lib/ide/rovodev.js +257 -0
  584. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +181 -0
  585. package/tools/cli/installers/lib/ide/shared/module-injections.js +136 -0
  586. package/tools/cli/installers/lib/ide/shared/path-utils.js +364 -0
  587. package/tools/cli/installers/lib/ide/shared/skill-manifest.js +90 -0
  588. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +368 -0
  589. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +179 -0
  590. package/tools/cli/installers/lib/ide/shared/xiaoma-artifacts.js +181 -0
  591. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  592. package/tools/cli/installers/lib/ide/templates/combined/antigravity.md +8 -0
  593. package/tools/cli/installers/lib/ide/templates/combined/default-agent.md +15 -0
  594. package/tools/cli/installers/lib/ide/templates/combined/default-task.md +10 -0
  595. package/tools/cli/installers/lib/ide/templates/combined/default-tool.md +10 -0
  596. package/tools/cli/installers/lib/ide/templates/combined/default-workflow-yaml.md +14 -0
  597. package/tools/cli/installers/lib/ide/templates/combined/default-workflow.md +6 -0
  598. package/tools/cli/installers/lib/ide/templates/combined/gemini-agent.toml +14 -0
  599. package/tools/cli/installers/lib/ide/templates/combined/gemini-task.toml +11 -0
  600. package/tools/cli/installers/lib/ide/templates/combined/gemini-tool.toml +11 -0
  601. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml +16 -0
  602. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml +14 -0
  603. package/tools/cli/installers/lib/ide/templates/combined/kiro-agent.md +16 -0
  604. package/tools/cli/installers/lib/ide/templates/combined/kiro-task.md +9 -0
  605. package/tools/cli/installers/lib/ide/templates/combined/kiro-tool.md +9 -0
  606. package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow-yaml.md +15 -0
  607. package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow.md +7 -0
  608. package/tools/cli/installers/lib/ide/templates/combined/opencode-agent.md +15 -0
  609. package/tools/cli/installers/lib/ide/templates/combined/opencode-task.md +13 -0
  610. package/tools/cli/installers/lib/ide/templates/combined/opencode-tool.md +13 -0
  611. package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow-yaml.md +16 -0
  612. package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow.md +16 -0
  613. package/tools/cli/installers/lib/ide/templates/combined/rovodev.md +9 -0
  614. package/tools/cli/installers/lib/ide/templates/combined/trae.md +9 -0
  615. package/tools/cli/installers/lib/ide/templates/combined/windsurf-workflow.md +10 -0
  616. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  617. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  618. package/tools/cli/installers/lib/ide/templates/split/.gitkeep +0 -0
  619. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +13 -0
  620. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
  621. package/tools/cli/installers/lib/ide/trae.js +313 -0
  622. package/tools/cli/installers/lib/ide/windsurf.js +258 -0
  623. package/tools/cli/installers/lib/message-loader.js +83 -0
  624. package/tools/cli/installers/lib/modules/external-manager.js +136 -0
  625. package/tools/cli/installers/lib/modules/manager.js +1382 -0
  626. package/tools/cli/lib/activation-builder.js +165 -0
  627. package/tools/cli/lib/agent/compiler.js +516 -0
  628. package/tools/cli/lib/agent/installer.js +680 -0
  629. package/tools/cli/lib/agent/template-engine.js +152 -0
  630. package/tools/cli/lib/agent-analyzer.js +97 -0
  631. package/tools/cli/lib/agent-party-generator.js +194 -0
  632. package/tools/cli/lib/cli-utils.js +182 -0
  633. package/tools/cli/lib/config.js +213 -0
  634. package/tools/cli/lib/file-ops.js +204 -0
  635. package/tools/cli/lib/platform-codes.js +116 -0
  636. package/tools/cli/lib/project-root.js +77 -0
  637. package/tools/cli/lib/prompts.js +809 -0
  638. package/tools/cli/lib/replace-project-root.js +239 -0
  639. package/tools/cli/lib/ui.js +1940 -0
  640. package/tools/cli/lib/xml-handler.js +177 -0
  641. package/tools/cli/lib/xml-to-markdown.js +82 -0
  642. package/tools/{yaml-format.js → cli/lib/yaml-format.js} +39 -71
  643. package/tools/cli/lib/yaml-xml-builder.js +570 -0
  644. package/tools/cli/regenerate-manifests.js +28 -0
  645. package/tools/cli/test-yaml-builder.js +43 -0
  646. package/tools/cli/xiaoma-cli.js +106 -0
  647. package/tools/docs/_prompt-external-modules-page.md +59 -0
  648. package/tools/docs/fix-refs.md +91 -0
  649. package/tools/docs/native-skills-migration-checklist.md +281 -0
  650. package/tools/fix-doc-links.js +285 -0
  651. package/tools/flattener/aggregate.js +12 -30
  652. package/tools/flattener/binary.js +43 -46
  653. package/tools/flattener/discovery.js +15 -23
  654. package/tools/flattener/files.js +6 -6
  655. package/tools/flattener/flattener/aggregate.js +76 -0
  656. package/tools/flattener/flattener/binary.js +80 -0
  657. package/tools/flattener/flattener/discovery.js +71 -0
  658. package/tools/flattener/flattener/files.js +35 -0
  659. package/tools/flattener/flattener/ignoreRules.js +172 -0
  660. package/tools/flattener/flattener/main.js +483 -0
  661. package/tools/flattener/flattener/projectRoot.js +201 -0
  662. package/tools/flattener/flattener/prompts.js +44 -0
  663. package/tools/flattener/flattener/stats.helpers.js +368 -0
  664. package/tools/flattener/flattener/stats.js +75 -0
  665. package/tools/flattener/flattener/test-matrix.js +409 -0
  666. package/tools/flattener/flattener/xml.js +88 -0
  667. package/tools/flattener/ignoreRules.js +122 -127
  668. package/tools/flattener/main.js +140 -330
  669. package/tools/flattener/projectRoot.js +71 -81
  670. package/tools/flattener/prompts.js +10 -12
  671. package/tools/flattener/stats.helpers.js +63 -119
  672. package/tools/flattener/stats.js +2 -7
  673. package/tools/flattener/test-matrix.js +169 -228
  674. package/tools/flattener/xml.js +23 -31
  675. package/tools/format-workflow-md.js +263 -0
  676. package/tools/lib/xml-utils.js +13 -0
  677. package/tools/migrate-custom-module-paths.js +124 -0
  678. package/tools/platform-codes.yaml +157 -0
  679. package/tools/schema/agent.js +489 -0
  680. package/tools/validate-agent-schema.js +110 -0
  681. package/tools/validate-bundles.js +87 -0
  682. package/tools/validate-doc-links.js +409 -0
  683. package/tools/validate-file-refs.js +556 -0
  684. package/tools/validate-svg-changes.sh +356 -0
  685. package/tools/xiaoma-npx-wrapper.js +18 -24
  686. package/web-bundles/xmc/agents/analyst.xml +109 -0
  687. package/web-bundles/xmc/agents/architect.xml +101 -0
  688. package/web-bundles/xmc/agents/dev.xml +106 -0
  689. package/web-bundles/xmc/agents/pm.xml +112 -0
  690. package/web-bundles/xmc/agents/qa.xml +126 -0
  691. package/web-bundles/xmc/agents/quick-flow-solo-dev.xml +104 -0
  692. package/web-bundles/xmc/agents/sm.xml +109 -0
  693. package/web-bundles/xmc/agents/ux-designer.xml +100 -0
  694. package/web-bundles/xmc/teams/team-fullstack.xml +1192 -0
  695. package/.claude/agents/tech-translator.md +0 -124
  696. package/.claude/settings.local.json +0 -37
  697. package/.idea/misc.xml +0 -6
  698. package/.xiaoma-core/.coordinator-state.json +0 -19
  699. package/CLAUDE.md +0 -283
  700. package/JAVA-BACKEND-COMMANDS-REFERENCE.md +0 -300
  701. package/JAVA-BACKEND-ITERATION-GUIDE.md +0 -2116
  702. package/common/tasks/create-doc.md +0 -103
  703. package/common/tasks/execute-checklist.md +0 -88
  704. package/common/utils/bmad-doc-template.md +0 -327
  705. package/common/utils/workflow-management.md +0 -71
  706. package/dist/agents/analyst.txt +0 -6308
  707. package/dist/agents/architect.txt +0 -5046
  708. package/dist/agents/automation-orchestrator.txt +0 -396
  709. package/dist/agents/dev.txt +0 -1180
  710. package/dist/agents/full-requirement-orchestrator.txt +0 -505
  711. package/dist/agents/pm.txt +0 -3078
  712. package/dist/agents/po.txt +0 -1358
  713. package/dist/agents/qa.txt +0 -2002
  714. package/dist/agents/sm.txt +0 -3044
  715. package/dist/agents/ux-expert.txt +0 -707
  716. package/dist/agents/workflow-executor.txt +0 -1029
  717. package/dist/agents/workflow-helper.txt +0 -93
  718. package/dist/agents/xiaoma-master.txt +0 -9008
  719. package/dist/agents/xiaoma-orchestrator.txt +0 -1523
  720. package/dist/teams/team-all.txt +0 -23101
  721. package/dist/teams/team-fullstack-with-database.txt +0 -25076
  722. package/dist/teams/team-fullstack.txt +0 -15820
  723. package/dist/teams/team-ide-minimal.txt +0 -8285
  724. package/dist/teams/team-no-ui.txt +0 -14368
  725. package/docs/GUIDING-PRINCIPLES.md +0 -91
  726. package/docs/architecture/workflow-coordinator-implementation.md +0 -1188
  727. package/docs/architecture-sharding-modification.md +0 -623
  728. package/docs/automated-requirements-analysis-outputs.md +0 -896
  729. package/docs/core-architecture.md +0 -219
  730. package/docs/enhanced-ide-development-workflow.md +0 -248
  731. package/docs/prd/workflow-coordinator-prd.md +0 -1214
  732. package/docs/user-guide.md +0 -530
  733. package/docs/versioning-and-releases.md +0 -155
  734. package/docs/versions.md +0 -48
  735. package/docs/working-in-the-brownfield.md +0 -597
  736. package/tools/api-server.js +0 -367
  737. package/tools/builders/web-builder.js +0 -830
  738. package/tools/bump-all-versions.js +0 -133
  739. package/tools/cli.js +0 -157
  740. package/tools/installer/README.md +0 -8
  741. package/tools/installer/bin/xiaoma.js +0 -477
  742. package/tools/installer/config/ide-agent-config.yaml +0 -58
  743. package/tools/installer/config/install.config.yaml +0 -164
  744. package/tools/installer/lib/config-loader.js +0 -286
  745. package/tools/installer/lib/file-manager.js +0 -446
  746. package/tools/installer/lib/ide-base-setup.js +0 -238
  747. package/tools/installer/lib/ide-setup.js +0 -2027
  748. package/tools/installer/lib/installer.js +0 -2333
  749. package/tools/installer/lib/memory-profiler.js +0 -235
  750. package/tools/installer/lib/module-manager.js +0 -116
  751. package/tools/installer/lib/resource-locator.js +0 -334
  752. package/tools/installer/package-lock.json +0 -715
  753. package/tools/installer/package.json +0 -44
  754. package/tools/lib/dependency-resolver.js +0 -186
  755. package/tools/lib/yaml-utils.js +0 -34
  756. package/tools/md-assets/web-agent-startup-instructions.md +0 -39
  757. package/tools/preview-release-notes.js +0 -74
  758. package/tools/setup-hooks.sh +0 -37
  759. package/tools/shared/bannerArt.js +0 -105
  760. package/tools/sync-installer-version.js +0 -41
  761. package/tools/sync-version.sh +0 -23
  762. package/tools/upgraders/v3-to-v4-upgrader.js +0 -753
  763. package/tools/version-bump.js +0 -100
  764. package/tools/workflow-coordinator/README.md +0 -38
  765. package/tools/workflow-coordinator/USAGE.md +0 -548
  766. package/tools/workflow-coordinator/package-lock.json +0 -4868
  767. package/tools/workflow-coordinator/package.json +0 -35
  768. package/tools/workflow-coordinator/src/api/server.js +0 -207
  769. package/tools/workflow-coordinator/src/controller/workflow-controller.js +0 -263
  770. package/tools/workflow-coordinator/src/index.js +0 -113
  771. package/tools/workflow-coordinator/src/parser/workflow-parser.js +0 -144
  772. package/tools/workflow-coordinator/src/utils/state-manager.js +0 -59
  773. package/tools/workflow-coordinator/src/utils/validator.js +0 -86
  774. package/tools/workflow-coordinator/test/integration-test.js +0 -266
  775. package/tools/workflow-coordinator/test/quick-test.js +0 -127
  776. package/xiaoma-core/agent-teams/team-all.yaml +0 -15
  777. package/xiaoma-core/agent-teams/team-fullstack-with-database.yaml +0 -27
  778. package/xiaoma-core/agent-teams/team-fullstack.yaml +0 -19
  779. package/xiaoma-core/agent-teams/team-ide-minimal.yaml +0 -11
  780. package/xiaoma-core/agent-teams/team-no-ui.yaml +0 -14
  781. package/xiaoma-core/agents/analyst.md +0 -91
  782. package/xiaoma-core/agents/architect.md +0 -88
  783. package/xiaoma-core/agents/automated-fix-validator.yaml +0 -579
  784. package/xiaoma-core/agents/automated-quality-validator.yaml +0 -549
  785. package/xiaoma-core/agents/automation-orchestrator.md +0 -353
  786. package/xiaoma-core/agents/dev.md +0 -144
  787. package/xiaoma-core/agents/enhanced-workflow-orchestrator.yaml +0 -304
  788. package/xiaoma-core/agents/full-requirement-orchestrator.md +0 -462
  789. package/xiaoma-core/agents/global-requirements-auditor.yaml +0 -520
  790. package/xiaoma-core/agents/intelligent-template-adapter.yaml +0 -389
  791. package/xiaoma-core/agents/issue-dispatcher.yaml +0 -627
  792. package/xiaoma-core/agents/master-execution-engine.yaml +0 -543
  793. package/xiaoma-core/agents/pm.md +0 -85
  794. package/xiaoma-core/agents/po.md +0 -77
  795. package/xiaoma-core/agents/qa.md +0 -88
  796. package/xiaoma-core/agents/requirements-coverage-auditor.yaml +0 -373
  797. package/xiaoma-core/agents/sm.md +0 -125
  798. package/xiaoma-core/agents/ux-expert.md +0 -67
  799. package/xiaoma-core/agents/workflow-executor.md +0 -1031
  800. package/xiaoma-core/agents/workflow-helper.md +0 -481
  801. package/xiaoma-core/agents/xiaoma-master.md +0 -108
  802. package/xiaoma-core/agents/xiaoma-orchestrator.md +0 -145
  803. package/xiaoma-core/checklists/architect-checklist.md +0 -440
  804. package/xiaoma-core/checklists/change-checklist.md +0 -184
  805. package/xiaoma-core/checklists/dev-completion-checklist.md +0 -324
  806. package/xiaoma-core/checklists/pm-checklist.md +0 -372
  807. package/xiaoma-core/checklists/po-master-checklist.md +0 -434
  808. package/xiaoma-core/checklists/po-story-validation-checklist.md +0 -219
  809. package/xiaoma-core/checklists/qa-approval-checklist.md +0 -393
  810. package/xiaoma-core/checklists/story-dod-checklist.md +0 -96
  811. package/xiaoma-core/checklists/story-draft-checklist.md +0 -155
  812. package/xiaoma-core/core-config.yaml +0 -23
  813. package/xiaoma-core/data/bmad-kb.md +0 -809
  814. package/xiaoma-core/data/brainstorming-techniques.md +0 -38
  815. package/xiaoma-core/data/elicitation-methods.md +0 -156
  816. package/xiaoma-core/data/technical-preferences.md +0 -5
  817. package/xiaoma-core/data/test-levels-framework.md +0 -148
  818. package/xiaoma-core/data/test-priorities-matrix.md +0 -174
  819. package/xiaoma-core/scripts/build-validation/pre-dev-validation.sh +0 -71
  820. package/xiaoma-core/scripts/build-validation/progressive-validation.sh +0 -88
  821. package/xiaoma-core/scripts/build-validation/quick-check.sh +0 -69
  822. package/xiaoma-core/tasks/advanced-elicitation.md +0 -119
  823. package/xiaoma-core/tasks/analyze-existing-database.md +0 -155
  824. package/xiaoma-core/tasks/apply-qa-fixes.md +0 -150
  825. package/xiaoma-core/tasks/automated-story-cycle.md +0 -370
  826. package/xiaoma-core/tasks/batch-story-generation.md +0 -354
  827. package/xiaoma-core/tasks/brownfield-create-epic.md +0 -162
  828. package/xiaoma-core/tasks/brownfield-create-story.md +0 -149
  829. package/xiaoma-core/tasks/correct-course.md +0 -72
  830. package/xiaoma-core/tasks/create-brownfield-story.md +0 -314
  831. package/xiaoma-core/tasks/create-database-design.md +0 -161
  832. package/xiaoma-core/tasks/create-deep-research-prompt.md +0 -280
  833. package/xiaoma-core/tasks/create-enhanced-story-with-database.md +0 -250
  834. package/xiaoma-core/tasks/create-incremental-architecture.md +0 -525
  835. package/xiaoma-core/tasks/create-next-story.md +0 -114
  836. package/xiaoma-core/tasks/create-prd-from-rag.md +0 -435
  837. package/xiaoma-core/tasks/create-story-with-rag.md +0 -559
  838. package/xiaoma-core/tasks/develop-story-with-rag.md +0 -536
  839. package/xiaoma-core/tasks/document-project.md +0 -345
  840. package/xiaoma-core/tasks/facilitate-brainstorming-session.md +0 -138
  841. package/xiaoma-core/tasks/generate-ai-frontend-prompt.md +0 -53
  842. package/xiaoma-core/tasks/generate-database-ddl.md +0 -240
  843. package/xiaoma-core/tasks/generate-database-entities.md +0 -501
  844. package/xiaoma-core/tasks/generate-rag-questions.md +0 -312
  845. package/xiaoma-core/tasks/index-docs.md +0 -175
  846. package/xiaoma-core/tasks/kb-mode-interaction.md +0 -77
  847. package/xiaoma-core/tasks/nfr-assess.md +0 -345
  848. package/xiaoma-core/tasks/project-integration-testing.md +0 -477
  849. package/xiaoma-core/tasks/qa-gate.md +0 -163
  850. package/xiaoma-core/tasks/requirement-analysis-with-rag.md +0 -1318
  851. package/xiaoma-core/tasks/requirements-coverage-audit.md +0 -198
  852. package/xiaoma-core/tasks/review-story.md +0 -316
  853. package/xiaoma-core/tasks/risk-profile.md +0 -355
  854. package/xiaoma-core/tasks/serial-development-orchestration.md +0 -426
  855. package/xiaoma-core/tasks/shard-doc.md +0 -187
  856. package/xiaoma-core/tasks/test-design.md +0 -176
  857. package/xiaoma-core/tasks/trace-requirements.md +0 -266
  858. package/xiaoma-core/tasks/validate-next-story.md +0 -136
  859. package/xiaoma-core/templates/api-design-tmpl.yaml +0 -704
  860. package/xiaoma-core/templates/architecture-tmpl.yaml +0 -650
  861. package/xiaoma-core/templates/brainstorming-output-tmpl.yaml +0 -156
  862. package/xiaoma-core/templates/brownfield-architecture-tmpl.yaml +0 -476
  863. package/xiaoma-core/templates/brownfield-prd-tmpl.yaml +0 -280
  864. package/xiaoma-core/templates/competitor-analysis-tmpl.yaml +0 -336
  865. package/xiaoma-core/templates/database-design-tmpl.yaml +0 -266
  866. package/xiaoma-core/templates/enhanced-story-with-database-tmpl.yaml +0 -428
  867. package/xiaoma-core/templates/front-end-architecture-tmpl.yaml +0 -272
  868. package/xiaoma-core/templates/front-end-spec-tmpl.yaml +0 -354
  869. package/xiaoma-core/templates/fullstack-architecture-tmpl.yaml +0 -925
  870. package/xiaoma-core/templates/global-qa-monitoring-tmpl.yaml +0 -443
  871. package/xiaoma-core/templates/incremental-architecture-tmpl.yaml +0 -601
  872. package/xiaoma-core/templates/market-research-tmpl.yaml +0 -252
  873. package/xiaoma-core/templates/maven-lombok-template.xml +0 -111
  874. package/xiaoma-core/templates/prd-from-rag-tmpl.yaml +0 -410
  875. package/xiaoma-core/templates/prd-tmpl.yaml +0 -202
  876. package/xiaoma-core/templates/project-brief-tmpl.yaml +0 -221
  877. package/xiaoma-core/templates/qa-gate-tmpl.yaml +0 -102
  878. package/xiaoma-core/templates/rag-knowledge-tmpl.yaml +0 -569
  879. package/xiaoma-core/templates/rag-questions-tmpl.yaml +0 -949
  880. package/xiaoma-core/templates/requirements-coverage-audit.yaml +0 -330
  881. package/xiaoma-core/templates/start-enhanced-workflow.yaml +0 -347
  882. package/xiaoma-core/templates/story-tmpl.yaml +0 -137
  883. package/xiaoma-core/templates/story-with-rag-tmpl.yaml +0 -360
  884. package/xiaoma-core/workflows/automated-requirements-analysis.yaml +0 -2149
  885. package/xiaoma-core/workflows/automated-requirements-development.yaml +0 -739
  886. package/xiaoma-core/workflows/automated-story-development.yaml +0 -1264
  887. package/xiaoma-core/workflows/brownfield-fullstack.yaml +0 -298
  888. package/xiaoma-core/workflows/brownfield-service.yaml +0 -188
  889. package/xiaoma-core/workflows/brownfield-ui.yaml +0 -198
  890. package/xiaoma-core/workflows/enhanced-fullstack-with-database.yaml +0 -427
  891. package/xiaoma-core/workflows/enhanced-fullstack-with-qa-loop.yaml +0 -766
  892. package/xiaoma-core/workflows/full-requirement-automation.yaml +0 -1305
  893. package/xiaoma-core/workflows/greenfield-fullstack.yaml +0 -241
  894. package/xiaoma-core/workflows/greenfield-service.yaml +0 -207
  895. package/xiaoma-core/workflows/greenfield-ui.yaml +0 -236
@@ -0,0 +1,743 @@
1
+ const fs = require('fs-extra');
2
+ const path = require('node:path');
3
+ const glob = require('glob');
4
+ const yaml = require('yaml');
5
+ const prompts = require('../../../lib/prompts');
6
+
7
+ /**
8
+ * Dependency Resolver for XiaoMa modules
9
+ * Handles cross-module dependencies and ensures all required files are included
10
+ */
11
+ class DependencyResolver {
12
+ constructor() {
13
+ this.dependencies = new Map();
14
+ this.resolvedFiles = new Set();
15
+ this.missingDependencies = new Set();
16
+ }
17
+
18
+ /**
19
+ * Resolve all dependencies for selected modules
20
+ * @param {string} xiaomaDir - XiaoMa installation directory
21
+ * @param {Array} selectedModules - Modules explicitly selected by user
22
+ * @param {Object} options - Resolution options
23
+ * @returns {Object} Resolution results with all required files
24
+ */
25
+ async resolve(xiaomaDir, selectedModules = [], options = {}) {
26
+ if (options.verbose) {
27
+ await prompts.log.info('Resolving module dependencies...');
28
+ }
29
+
30
+ // Always include core as base
31
+ const modulesToProcess = new Set(['core', ...selectedModules]);
32
+
33
+ // First pass: collect all explicitly selected files
34
+ const primaryFiles = await this.collectPrimaryFiles(xiaomaDir, modulesToProcess, options);
35
+
36
+ // Second pass: parse and resolve dependencies
37
+ const allDependencies = await this.parseDependencies(primaryFiles);
38
+
39
+ // Third pass: resolve dependency paths and collect files
40
+ const resolvedDeps = await this.resolveDependencyPaths(xiaomaDir, allDependencies);
41
+
42
+ // Fourth pass: check for transitive dependencies
43
+ const transitiveDeps = await this.resolveTransitiveDependencies(xiaomaDir, resolvedDeps);
44
+
45
+ // Combine all files
46
+ const allFiles = new Set([...primaryFiles.map((f) => f.path), ...resolvedDeps, ...transitiveDeps]);
47
+
48
+ // Organize by module
49
+ const organizedFiles = this.organizeByModule(xiaomaDir, allFiles);
50
+
51
+ // Report results (only in verbose mode)
52
+ if (options.verbose) {
53
+ await this.reportResults(organizedFiles, selectedModules);
54
+ }
55
+
56
+ return {
57
+ primaryFiles,
58
+ dependencies: resolvedDeps,
59
+ transitiveDependencies: transitiveDeps,
60
+ allFiles: [...allFiles],
61
+ byModule: organizedFiles,
62
+ missing: [...this.missingDependencies],
63
+ };
64
+ }
65
+
66
+ /**
67
+ * Collect primary files from selected modules
68
+ */
69
+ async collectPrimaryFiles(xiaomaDir, modules, options = {}) {
70
+ const files = [];
71
+ const { moduleManager } = options;
72
+
73
+ for (const module of modules) {
74
+ // Skip external modules - they're installed from cache, not from source
75
+ if (moduleManager && (await moduleManager.isExternalModule(module))) {
76
+ continue;
77
+ }
78
+
79
+ // Handle both source (src/) and installed (xiaoma/) directory structures
80
+ let moduleDir;
81
+
82
+ // Check if this is a source directory (has 'src' subdirectory)
83
+ const srcDir = path.join(xiaomaDir, 'src');
84
+ if (await fs.pathExists(srcDir)) {
85
+ // Source directory structure: src/core or src/xmc
86
+ if (module === 'core') {
87
+ moduleDir = path.join(srcDir, 'core');
88
+ } else if (module === 'xmc') {
89
+ moduleDir = path.join(srcDir, 'xmc');
90
+ }
91
+ }
92
+
93
+ if (!moduleDir) {
94
+ continue;
95
+ }
96
+
97
+ if (!(await fs.pathExists(moduleDir))) {
98
+ await prompts.log.warn('Module directory not found: ' + moduleDir);
99
+ continue;
100
+ }
101
+
102
+ // Collect agents
103
+ const agentsDir = path.join(moduleDir, 'agents');
104
+ if (await fs.pathExists(agentsDir)) {
105
+ const agentFiles = await glob.glob('*.md', { cwd: agentsDir });
106
+ for (const file of agentFiles) {
107
+ const agentPath = path.join(agentsDir, file);
108
+
109
+ // Check for localskip attribute
110
+ const content = await fs.readFile(agentPath, 'utf8');
111
+ const hasLocalSkip = content.match(/<agent[^>]*\slocalskip="true"[^>]*>/);
112
+ if (hasLocalSkip) {
113
+ continue; // Skip agents marked for web-only
114
+ }
115
+
116
+ files.push({
117
+ path: agentPath,
118
+ type: 'agent',
119
+ module,
120
+ name: path.basename(file, '.md'),
121
+ });
122
+ }
123
+ }
124
+
125
+ // Collect tasks
126
+ const tasksDir = path.join(moduleDir, 'tasks');
127
+ if (await fs.pathExists(tasksDir)) {
128
+ const taskFiles = await glob.glob('*.md', { cwd: tasksDir });
129
+ for (const file of taskFiles) {
130
+ files.push({
131
+ path: path.join(tasksDir, file),
132
+ type: 'task',
133
+ module,
134
+ name: path.basename(file, '.md'),
135
+ });
136
+ }
137
+ }
138
+ }
139
+
140
+ return files;
141
+ }
142
+
143
+ /**
144
+ * Parse dependencies from file content
145
+ */
146
+ async parseDependencies(files) {
147
+ const allDeps = new Set();
148
+
149
+ for (const file of files) {
150
+ const content = await fs.readFile(file.path, 'utf8');
151
+
152
+ // Parse YAML frontmatter for explicit dependencies
153
+ const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
154
+ if (frontmatterMatch) {
155
+ try {
156
+ // Pre-process to handle backticks in YAML values
157
+ let yamlContent = frontmatterMatch[1];
158
+ // Quote values with backticks to make them valid YAML
159
+ yamlContent = yamlContent.replaceAll(/: `([^`]+)`/g, ': "$1"');
160
+
161
+ const frontmatter = yaml.parse(yamlContent);
162
+ if (frontmatter.dependencies) {
163
+ const deps = Array.isArray(frontmatter.dependencies) ? frontmatter.dependencies : [frontmatter.dependencies];
164
+
165
+ for (const dep of deps) {
166
+ allDeps.add({
167
+ from: file.path,
168
+ dependency: dep,
169
+ type: 'explicit',
170
+ });
171
+ }
172
+ }
173
+
174
+ // Check for template dependencies
175
+ if (frontmatter.template) {
176
+ const templates = Array.isArray(frontmatter.template) ? frontmatter.template : [frontmatter.template];
177
+ for (const template of templates) {
178
+ allDeps.add({
179
+ from: file.path,
180
+ dependency: template,
181
+ type: 'template',
182
+ });
183
+ }
184
+ }
185
+ } catch (error) {
186
+ await prompts.log.warn('Failed to parse frontmatter in ' + file.name + ': ' + error.message);
187
+ }
188
+ }
189
+
190
+ // Parse content for command references (cross-module dependencies)
191
+ const commandRefs = this.parseCommandReferences(content);
192
+ for (const ref of commandRefs) {
193
+ allDeps.add({
194
+ from: file.path,
195
+ dependency: ref,
196
+ type: 'command',
197
+ });
198
+ }
199
+
200
+ // Parse for file path references
201
+ const fileRefs = this.parseFileReferences(content);
202
+ for (const ref of fileRefs) {
203
+ // Determine type based on path format
204
+ // Paths starting with xiaoma/ are absolute references to the xiaoma installation
205
+ const depType = ref.startsWith('xiaoma/') ? 'xiaoma-path' : 'file';
206
+ allDeps.add({
207
+ from: file.path,
208
+ dependency: ref,
209
+ type: depType,
210
+ });
211
+ }
212
+ }
213
+
214
+ return allDeps;
215
+ }
216
+
217
+ /**
218
+ * Parse command references from content
219
+ */
220
+ parseCommandReferences(content) {
221
+ const refs = new Set();
222
+
223
+ // Match @task-{name} or @agent-{name} or @{module}-{type}-{name}
224
+ const commandPattern = /@(task-|agent-|xiaoma-)([a-z0-9-]+)/g;
225
+ let match;
226
+
227
+ while ((match = commandPattern.exec(content)) !== null) {
228
+ refs.add(match[0]);
229
+ }
230
+
231
+ // Match file paths like xiaoma/core/agents/analyst
232
+ const pathPattern = /xiaoma\/(core|xmc|cis)\/(agents|tasks)\/([a-z0-9-]+)/g;
233
+
234
+ while ((match = pathPattern.exec(content)) !== null) {
235
+ refs.add(match[0]);
236
+ }
237
+
238
+ return [...refs];
239
+ }
240
+
241
+ /**
242
+ * Parse file path references from content
243
+ */
244
+ parseFileReferences(content) {
245
+ const refs = new Set();
246
+
247
+ // Match relative paths like ../templates/file.yaml or ./data/file.md
248
+ const relativePattern = /['"](\.\.?\/[^'"]+\.(md|yaml|yml|xml|json|txt|csv))['"]/g;
249
+ let match;
250
+
251
+ while ((match = relativePattern.exec(content)) !== null) {
252
+ refs.add(match[1]);
253
+ }
254
+
255
+ // Parse exec attributes in command tags
256
+ const execPattern = /exec="([^"]+)"/g;
257
+ while ((match = execPattern.exec(content)) !== null) {
258
+ let execPath = match[1];
259
+ if (execPath && execPath !== '*') {
260
+ // Remove {project-root} prefix to get the actual path
261
+ // Usage is like {project-root}/xiaoma/core/tasks/foo.md
262
+ if (execPath.includes('{project-root}')) {
263
+ execPath = execPath.replace('{project-root}', '');
264
+ }
265
+ refs.add(execPath);
266
+ }
267
+ }
268
+
269
+ // Parse tmpl attributes in command tags
270
+ const tmplPattern = /tmpl="([^"]+)"/g;
271
+ while ((match = tmplPattern.exec(content)) !== null) {
272
+ let tmplPath = match[1];
273
+ if (tmplPath && tmplPath !== '*') {
274
+ // Remove {project-root} prefix to get the actual path
275
+ // Usage is like {project-root}/xiaoma/core/tasks/foo.md
276
+ if (tmplPath.includes('{project-root}')) {
277
+ tmplPath = tmplPath.replace('{project-root}', '');
278
+ }
279
+ refs.add(tmplPath);
280
+ }
281
+ }
282
+
283
+ return [...refs];
284
+ }
285
+
286
+ /**
287
+ * Resolve dependency paths to actual files
288
+ */
289
+ async resolveDependencyPaths(xiaomaDir, dependencies) {
290
+ const resolved = new Set();
291
+
292
+ for (const dep of dependencies) {
293
+ const resolvedPaths = await this.resolveSingleDependency(xiaomaDir, dep);
294
+ for (const path of resolvedPaths) {
295
+ resolved.add(path);
296
+ }
297
+ }
298
+
299
+ return resolved;
300
+ }
301
+
302
+ /**
303
+ * Resolve a single dependency to file paths
304
+ */
305
+ async resolveSingleDependency(xiaomaDir, dep) {
306
+ const paths = [];
307
+
308
+ switch (dep.type) {
309
+ case 'explicit':
310
+ case 'file': {
311
+ let depPath = dep.dependency;
312
+
313
+ // Handle {project-root} prefix if present
314
+ if (depPath.includes('{project-root}')) {
315
+ // Remove {project-root} and resolve as xiaoma path
316
+ depPath = depPath.replace('{project-root}', '');
317
+
318
+ if (depPath.startsWith('xiaoma/')) {
319
+ const xiaomaPath = depPath.replace(/^xiaoma\//, '');
320
+
321
+ // Handle glob patterns
322
+ if (depPath.includes('*')) {
323
+ // Extract the base path and pattern
324
+ const pathParts = xiaomaPath.split('/');
325
+ const module = pathParts[0];
326
+ const filePattern = pathParts.at(-1);
327
+ const middlePath = pathParts.slice(1, -1).join('/');
328
+
329
+ let basePath;
330
+ if (module === 'core') {
331
+ basePath = path.join(xiaomaDir, 'core', middlePath);
332
+ } else {
333
+ basePath = path.join(xiaomaDir, 'modules', module, middlePath);
334
+ }
335
+
336
+ if (await fs.pathExists(basePath)) {
337
+ const files = await glob.glob(filePattern, { cwd: basePath });
338
+ for (const file of files) {
339
+ paths.push(path.join(basePath, file));
340
+ }
341
+ }
342
+ } else {
343
+ // Direct path
344
+ if (xiaomaPath.startsWith('core/')) {
345
+ const corePath = path.join(xiaomaDir, xiaomaPath);
346
+ if (await fs.pathExists(corePath)) {
347
+ paths.push(corePath);
348
+ }
349
+ } else {
350
+ const parts = xiaomaPath.split('/');
351
+ const module = parts[0];
352
+ const rest = parts.slice(1).join('/');
353
+ const modulePath = path.join(xiaomaDir, 'modules', module, rest);
354
+
355
+ if (await fs.pathExists(modulePath)) {
356
+ paths.push(modulePath);
357
+ }
358
+ }
359
+ }
360
+ }
361
+ } else {
362
+ // Regular relative path handling
363
+ const sourceDir = path.dirname(dep.from);
364
+
365
+ // Handle glob patterns
366
+ if (depPath.includes('*')) {
367
+ const basePath = path.resolve(sourceDir, path.dirname(depPath));
368
+ const pattern = path.basename(depPath);
369
+
370
+ if (await fs.pathExists(basePath)) {
371
+ const files = await glob.glob(pattern, { cwd: basePath });
372
+ for (const file of files) {
373
+ paths.push(path.join(basePath, file));
374
+ }
375
+ }
376
+ } else {
377
+ // Direct file reference
378
+ const fullPath = path.resolve(sourceDir, depPath);
379
+ if (await fs.pathExists(fullPath)) {
380
+ paths.push(fullPath);
381
+ } else {
382
+ this.missingDependencies.add(`${depPath} (referenced by ${path.basename(dep.from)})`);
383
+ }
384
+ }
385
+ }
386
+
387
+ break;
388
+ }
389
+ case 'command': {
390
+ // Resolve command references to actual files
391
+ const commandPath = await this.resolveCommandToPath(xiaomaDir, dep.dependency);
392
+ if (commandPath) {
393
+ paths.push(commandPath);
394
+ }
395
+
396
+ break;
397
+ }
398
+ case 'xiaoma-path': {
399
+ // Resolve xiaoma/ paths (from {project-root}/xiaoma/... references)
400
+ // These are paths relative to the src directory structure
401
+ const xiaomaPath = dep.dependency.replace(/^xiaoma\//, '');
402
+
403
+ // Try to resolve as if it's in src structure
404
+ // xiaoma/core/tasks/foo.md -> src/core/tasks/foo.md
405
+ // xiaoma/xmc/tasks/bar.md -> src/xmc/tasks/bar.md (xmc is directly under src/)
406
+ // xiaoma/cis/agents/bar.md -> src/modules/cis/agents/bar.md
407
+
408
+ if (xiaomaPath.startsWith('core/')) {
409
+ const corePath = path.join(xiaomaDir, xiaomaPath);
410
+ if (await fs.pathExists(corePath)) {
411
+ paths.push(corePath);
412
+ } else {
413
+ // Not found, but don't report as missing since it might be installed later
414
+ }
415
+ } else {
416
+ // It's a module path like xmc/tasks/foo.md or cis/agents/bar.md
417
+ const parts = xiaomaPath.split('/');
418
+ const module = parts[0];
419
+ const rest = parts.slice(1).join('/');
420
+ let modulePath;
421
+ if (module === 'xmc') {
422
+ // xmc is directly under src/
423
+ modulePath = path.join(xiaomaDir, module, rest);
424
+ } else {
425
+ // Other modules are under modules/
426
+ modulePath = path.join(xiaomaDir, 'modules', module, rest);
427
+ }
428
+
429
+ if (await fs.pathExists(modulePath)) {
430
+ paths.push(modulePath);
431
+ } else {
432
+ // Not found, but don't report as missing since it might be installed later
433
+ }
434
+ }
435
+
436
+ break;
437
+ }
438
+ case 'template': {
439
+ // Resolve template references
440
+ let templateDep = dep.dependency;
441
+
442
+ // Handle {project-root} prefix if present
443
+ if (templateDep.includes('{project-root}')) {
444
+ // Remove {project-root} and treat as xiaoma-path
445
+ templateDep = templateDep.replace('{project-root}', '');
446
+
447
+ // Now resolve as a xiaoma path
448
+ if (templateDep.startsWith('xiaoma/')) {
449
+ const xiaomaPath = templateDep.replace(/^xiaoma\//, '');
450
+
451
+ if (xiaomaPath.startsWith('core/')) {
452
+ const corePath = path.join(xiaomaDir, xiaomaPath);
453
+ if (await fs.pathExists(corePath)) {
454
+ paths.push(corePath);
455
+ }
456
+ } else {
457
+ // Module path like cis/templates/brainstorm.md
458
+ const parts = xiaomaPath.split('/');
459
+ const module = parts[0];
460
+ const rest = parts.slice(1).join('/');
461
+ const modulePath = path.join(xiaomaDir, 'modules', module, rest);
462
+
463
+ if (await fs.pathExists(modulePath)) {
464
+ paths.push(modulePath);
465
+ }
466
+ }
467
+ }
468
+ } else {
469
+ // Regular relative template path
470
+ const sourceDir = path.dirname(dep.from);
471
+ const templatePath = path.resolve(sourceDir, templateDep);
472
+
473
+ if (await fs.pathExists(templatePath)) {
474
+ paths.push(templatePath);
475
+ } else {
476
+ this.missingDependencies.add(`Template: ${dep.dependency}`);
477
+ }
478
+ }
479
+
480
+ break;
481
+ }
482
+ // No default
483
+ }
484
+
485
+ return paths;
486
+ }
487
+
488
+ /**
489
+ * Resolve command reference to file path
490
+ */
491
+ async resolveCommandToPath(xiaomaDir, command) {
492
+ // Parse command format: @task-name or @agent-name or xiaoma/module/type/name
493
+
494
+ if (command.startsWith('@task-')) {
495
+ const taskName = command.slice(6);
496
+ // Search all modules for this task
497
+ for (const module of ['core', 'xmc', 'cis']) {
498
+ const taskPath =
499
+ module === 'core'
500
+ ? path.join(xiaomaDir, 'core', 'tasks', `${taskName}.md`)
501
+ : path.join(xiaomaDir, 'modules', module, 'tasks', `${taskName}.md`);
502
+ if (await fs.pathExists(taskPath)) {
503
+ return taskPath;
504
+ }
505
+ }
506
+ } else if (command.startsWith('@agent-')) {
507
+ const agentName = command.slice(7);
508
+ // Search all modules for this agent
509
+ for (const module of ['core', 'xmc', 'cis']) {
510
+ const agentPath =
511
+ module === 'core'
512
+ ? path.join(xiaomaDir, 'core', 'agents', `${agentName}.md`)
513
+ : path.join(xiaomaDir, 'modules', module, 'agents', `${agentName}.md`);
514
+ if (await fs.pathExists(agentPath)) {
515
+ return agentPath;
516
+ }
517
+ }
518
+ } else if (command.startsWith('xiaoma/')) {
519
+ // Direct path reference
520
+ const parts = command.split('/');
521
+ if (parts.length >= 4) {
522
+ const [, module, type, ...nameParts] = parts;
523
+ const name = nameParts.join('/'); // Handle nested paths
524
+
525
+ // Check if name already has extension
526
+ const fileName = name.endsWith('.md') ? name : `${name}.md`;
527
+
528
+ const filePath =
529
+ module === 'core' ? path.join(xiaomaDir, 'core', type, fileName) : path.join(xiaomaDir, 'modules', module, type, fileName);
530
+ if (await fs.pathExists(filePath)) {
531
+ return filePath;
532
+ }
533
+ }
534
+ }
535
+
536
+ // Don't report as missing if it's a self-reference within the module being installed
537
+ if (!command.includes('cis') || command.includes('brain')) {
538
+ // Only report missing if it's a true external dependency
539
+ // this.missingDependencies.add(`Command: ${command}`);
540
+ }
541
+ return null;
542
+ }
543
+
544
+ /**
545
+ * Resolve transitive dependencies (dependencies of dependencies)
546
+ */
547
+ async resolveTransitiveDependencies(xiaomaDir, directDeps) {
548
+ const transitive = new Set();
549
+ const processed = new Set();
550
+
551
+ // Process each direct dependency
552
+ for (const depPath of directDeps) {
553
+ if (processed.has(depPath)) continue;
554
+ processed.add(depPath);
555
+
556
+ // Only process markdown and YAML files for transitive deps
557
+ if ((depPath.endsWith('.md') || depPath.endsWith('.yaml') || depPath.endsWith('.yml')) && (await fs.pathExists(depPath))) {
558
+ const content = await fs.readFile(depPath, 'utf8');
559
+ const subDeps = await this.parseDependencies([
560
+ {
561
+ path: depPath,
562
+ type: 'dependency',
563
+ module: this.getModuleFromPath(xiaomaDir, depPath),
564
+ name: path.basename(depPath),
565
+ },
566
+ ]);
567
+
568
+ const resolvedSubDeps = await this.resolveDependencyPaths(xiaomaDir, subDeps);
569
+ for (const subDep of resolvedSubDeps) {
570
+ if (!directDeps.has(subDep)) {
571
+ transitive.add(subDep);
572
+ }
573
+ }
574
+ }
575
+ }
576
+
577
+ return transitive;
578
+ }
579
+
580
+ /**
581
+ * Get module name from file path
582
+ */
583
+ getModuleFromPath(xiaomaDir, filePath) {
584
+ const relative = path.relative(xiaomaDir, filePath);
585
+ const parts = relative.split(path.sep);
586
+
587
+ // Handle source directory structure (src/core, src/xmc, or src/modules/xxx)
588
+ if (parts[0] === 'src') {
589
+ if (parts[1] === 'core') {
590
+ return 'core';
591
+ } else if (parts[1] === 'xmc') {
592
+ return 'xmc';
593
+ } else if (parts[1] === 'modules' && parts.length > 2) {
594
+ return parts[2];
595
+ }
596
+ }
597
+
598
+ // Check if it's in modules directory (installed structure)
599
+ if (parts[0] === 'modules' && parts.length > 1) {
600
+ return parts[1];
601
+ }
602
+
603
+ // Otherwise return the first part (core, etc.)
604
+ // But don't return 'src' as a module name
605
+ if (parts[0] === 'src') {
606
+ return 'unknown';
607
+ }
608
+ return parts[0] || 'unknown';
609
+ }
610
+
611
+ /**
612
+ * Organize files by module
613
+ */
614
+ organizeByModule(xiaomaDir, files) {
615
+ const organized = {};
616
+
617
+ for (const file of files) {
618
+ const module = this.getModuleFromPath(xiaomaDir, file);
619
+ if (!organized[module]) {
620
+ organized[module] = {
621
+ agents: [],
622
+ tasks: [],
623
+ tools: [],
624
+ templates: [],
625
+ data: [],
626
+ other: [],
627
+ };
628
+ }
629
+
630
+ // Get relative path correctly based on module structure
631
+ let moduleBase;
632
+
633
+ // Check if file is in source directory structure
634
+ if (file.includes('/src/core/') || file.includes('/src/xmc/')) {
635
+ if (module === 'core') {
636
+ moduleBase = path.join(xiaomaDir, 'src', 'core');
637
+ } else if (module === 'xmc') {
638
+ moduleBase = path.join(xiaomaDir, 'src', 'xmc');
639
+ }
640
+ } else {
641
+ moduleBase = module === 'core' ? path.join(xiaomaDir, 'core') : path.join(xiaomaDir, 'modules', module);
642
+ }
643
+
644
+ const relative = path.relative(moduleBase, file);
645
+
646
+ if (relative.startsWith('agents/') || file.includes('/agents/')) {
647
+ organized[module].agents.push(file);
648
+ } else if (relative.startsWith('tasks/') || file.includes('/tasks/')) {
649
+ organized[module].tasks.push(file);
650
+ } else if (relative.startsWith('tools/') || file.includes('/tools/')) {
651
+ organized[module].tools.push(file);
652
+ } else if (relative.includes('data/')) {
653
+ organized[module].data.push(file);
654
+ } else {
655
+ organized[module].other.push(file);
656
+ }
657
+ }
658
+
659
+ return organized;
660
+ }
661
+
662
+ /**
663
+ * Report resolution results
664
+ */
665
+ async reportResults(organized, selectedModules) {
666
+ await prompts.log.success('Dependency resolution complete');
667
+
668
+ for (const [module, files] of Object.entries(organized)) {
669
+ const isSelected = selectedModules.includes(module) || module === 'core';
670
+ const totalFiles =
671
+ files.agents.length + files.tasks.length + files.tools.length + files.templates.length + files.data.length + files.other.length;
672
+
673
+ if (totalFiles > 0) {
674
+ await prompts.log.info(` ${module.toUpperCase()} module:`);
675
+ await prompts.log.message(` Status: ${isSelected ? 'Selected' : 'Dependencies only'}`);
676
+
677
+ if (files.agents.length > 0) {
678
+ await prompts.log.message(` Agents: ${files.agents.length}`);
679
+ }
680
+ if (files.tasks.length > 0) {
681
+ await prompts.log.message(` Tasks: ${files.tasks.length}`);
682
+ }
683
+ if (files.templates.length > 0) {
684
+ await prompts.log.message(` Templates: ${files.templates.length}`);
685
+ }
686
+ if (files.data.length > 0) {
687
+ await prompts.log.message(` Data files: ${files.data.length}`);
688
+ }
689
+ if (files.other.length > 0) {
690
+ await prompts.log.message(` Other files: ${files.other.length}`);
691
+ }
692
+ }
693
+ }
694
+
695
+ if (this.missingDependencies.size > 0) {
696
+ await prompts.log.warn('Missing dependencies:');
697
+ for (const missing of this.missingDependencies) {
698
+ await prompts.log.warn(` - ${missing}`);
699
+ }
700
+ }
701
+ }
702
+
703
+ /**
704
+ * Create a bundle for web deployment
705
+ * @param {Object} resolution - Resolution results from resolve()
706
+ * @returns {Object} Bundle data ready for web
707
+ */
708
+ async createWebBundle(resolution) {
709
+ const bundle = {
710
+ metadata: {
711
+ created: new Date().toISOString(),
712
+ modules: Object.keys(resolution.byModule),
713
+ totalFiles: resolution.allFiles.length,
714
+ },
715
+ agents: {},
716
+ tasks: {},
717
+ templates: {},
718
+ data: {},
719
+ };
720
+
721
+ // Bundle all files by type
722
+ for (const filePath of resolution.allFiles) {
723
+ if (!(await fs.pathExists(filePath))) continue;
724
+
725
+ const content = await fs.readFile(filePath, 'utf8');
726
+ const relative = path.relative(path.dirname(resolution.primaryFiles[0]?.path || '.'), filePath);
727
+
728
+ if (filePath.includes('/agents/')) {
729
+ bundle.agents[relative] = content;
730
+ } else if (filePath.includes('/tasks/')) {
731
+ bundle.tasks[relative] = content;
732
+ } else if (filePath.includes('template')) {
733
+ bundle.templates[relative] = content;
734
+ } else {
735
+ bundle.data[relative] = content;
736
+ }
737
+ }
738
+
739
+ return bundle;
740
+ }
741
+ }
742
+
743
+ module.exports = { DependencyResolver };