bmad-method 6.0.0-alpha.1 → 6.0.0-alpha.10

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 (678) hide show
  1. package/.github/ISSUE_TEMPLATE/idea_submission.md +1 -1
  2. package/.github/workflows/bundle-latest.yaml +277 -0
  3. package/.github/workflows/manual-release.yaml +64 -17
  4. package/.github/workflows/{lint.yaml → quality.yaml} +19 -2
  5. package/.husky/pre-commit +4 -0
  6. package/.prettierignore +4 -0
  7. package/.vscode/settings.json +3 -1
  8. package/CHANGELOG.md +1203 -0
  9. package/CONTRIBUTING.md +1 -13
  10. package/README.md +330 -149
  11. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  12. package/docs/agent-customization-guide.md +208 -0
  13. package/docs/document-sharding-guide.md +449 -0
  14. package/docs/ide-info/crush.md +1 -1
  15. package/docs/ide-info/cursor.md +7 -7
  16. package/docs/ide-info/iflow.md +3 -3
  17. package/docs/ide-info/opencode.md +1 -1
  18. package/docs/index.md +227 -0
  19. package/docs/installers-bundlers/ide-injections.md +2 -2
  20. package/docs/installers-bundlers/installers-modules-platforms-reference.md +80 -19
  21. package/docs/v4-to-v6-upgrade.md +21 -19
  22. package/docs/web-bundles-gemini-gpt-guide.md +473 -0
  23. package/eslint.config.mjs +2 -0
  24. package/package.json +5 -3
  25. package/src/core/_module-installer/install-config.yaml +17 -10
  26. package/src/core/_module-installer/installer.js +0 -8
  27. package/src/core/agents/bmad-master.agent.yaml +5 -5
  28. package/src/core/agents/bmad-web-orchestrator.agent.xml +8 -17
  29. package/src/core/tasks/advanced-elicitation-methods.csv +21 -0
  30. package/{bmad/core/tasks/adv-elicit.xml → src/core/tasks/advanced-elicitation.xml} +6 -4
  31. package/src/core/tasks/index-docs.xml +1 -1
  32. package/src/core/tasks/validate-workflow.xml +1 -1
  33. package/src/core/tasks/workflow.xml +126 -22
  34. package/src/core/tools/shard-doc.xml +54 -45
  35. package/src/core/workflows/brainstorming/README.md +6 -16
  36. package/src/core/workflows/brainstorming/instructions.md +6 -5
  37. package/src/core/workflows/brainstorming/template.md +4 -0
  38. package/src/core/workflows/brainstorming/workflow.yaml +8 -13
  39. package/src/core/workflows/party-mode/instructions.md +2 -7
  40. package/src/core/workflows/party-mode/workflow.yaml +11 -6
  41. package/src/modules/bmb/README.md +135 -73
  42. package/src/modules/bmb/_module-installer/install-config.yaml +9 -4
  43. package/src/modules/bmb/agents/bmad-builder.agent.yaml +11 -12
  44. package/src/modules/bmb/workflows/audit-workflow/checklist.md +5 -6
  45. package/src/modules/bmb/workflows/audit-workflow/instructions.md +6 -6
  46. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +2 -2
  47. package/src/modules/bmb/workflows/convert-legacy/README.md +5 -5
  48. package/src/modules/bmb/workflows/convert-legacy/checklist.md +2 -2
  49. package/src/modules/bmb/workflows/convert-legacy/instructions.md +17 -17
  50. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +6 -10
  51. package/src/modules/bmb/workflows/create-agent/README.md +126 -243
  52. package/src/modules/bmb/workflows/create-agent/agent-architecture.md +15 -19
  53. package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +28 -28
  54. package/src/modules/bmb/workflows/create-agent/agent-types.md +15 -15
  55. package/src/modules/bmb/workflows/create-agent/checklist.md +3 -3
  56. package/src/modules/bmb/workflows/create-agent/instructions.md +67 -39
  57. package/src/modules/bmb/workflows/create-agent/workflow.yaml +14 -15
  58. package/src/modules/bmb/workflows/create-module/README.md +163 -154
  59. package/src/modules/bmb/workflows/create-module/checklist.md +1 -10
  60. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +1 -1
  61. package/src/modules/bmb/workflows/create-module/instructions.md +13 -17
  62. package/src/modules/bmb/workflows/create-module/module-structure.md +39 -5
  63. package/src/modules/bmb/workflows/create-module/workflow.yaml +21 -13
  64. package/src/modules/bmb/workflows/create-workflow/README.md +4 -4
  65. package/src/modules/bmb/workflows/create-workflow/checklist.md +1 -1
  66. package/src/modules/bmb/workflows/create-workflow/instructions.md +46 -37
  67. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +219 -42
  68. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +4 -2
  69. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +12 -16
  70. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +7 -8
  71. package/src/modules/bmb/workflows/edit-agent/checklist.md +1 -1
  72. package/src/modules/bmb/workflows/edit-agent/instructions.md +2 -2
  73. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +10 -12
  74. package/src/modules/bmb/workflows/edit-module/README.md +2 -2
  75. package/src/modules/bmb/workflows/edit-module/checklist.md +2 -2
  76. package/src/modules/bmb/workflows/edit-module/instructions.md +7 -5
  77. package/src/modules/bmb/workflows/edit-module/workflow.yaml +11 -13
  78. package/src/modules/bmb/workflows/edit-workflow/instructions.md +4 -4
  79. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +6 -8
  80. package/src/modules/bmb/workflows/module-brief/README.md +2 -2
  81. package/src/modules/bmb/workflows/module-brief/checklist.md +2 -2
  82. package/src/modules/bmb/workflows/module-brief/instructions.md +3 -2
  83. package/src/modules/bmb/workflows/module-brief/workflow.yaml +12 -7
  84. package/src/modules/bmb/workflows/redoc/README.md +5 -5
  85. package/src/modules/bmb/workflows/redoc/instructions.md +1 -1
  86. package/src/modules/bmb/workflows/redoc/workflow.yaml +1 -1
  87. package/src/modules/bmgd/README.md +208 -0
  88. package/src/modules/bmgd/_module-installer/install-config.yaml +54 -0
  89. package/src/modules/bmgd/agents/game-architect.agent.yaml +33 -0
  90. package/src/modules/bmgd/agents/game-designer.agent.yaml +40 -0
  91. package/src/modules/bmgd/agents/game-dev.agent.yaml +40 -0
  92. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +75 -0
  93. package/src/modules/bmgd/teams/default-party.csv +10 -0
  94. package/src/modules/{bmm → bmgd}/teams/team-gamedev.yaml +5 -1
  95. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +130 -0
  96. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/workflow.yaml +10 -10
  97. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/instructions.md +44 -28
  98. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/workflow.yaml +9 -17
  99. package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/instructions-gdd.md +58 -31
  100. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +81 -0
  101. package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/instructions-narrative.md +75 -28
  102. package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/workflow.yaml +6 -12
  103. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +321 -0
  104. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-template.md +103 -0
  105. package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +240 -0
  106. package/src/modules/bmgd/workflows/3-technical/game-architecture/decision-catalog.yaml +222 -0
  107. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +701 -0
  108. package/src/modules/bmgd/workflows/3-technical/game-architecture/pattern-categories.csv +13 -0
  109. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +69 -0
  110. package/src/modules/bmgd/workflows/4-production/code-review/backlog_template.md +12 -0
  111. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +22 -0
  112. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +398 -0
  113. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +61 -0
  114. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +279 -0
  115. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +206 -0
  116. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +58 -0
  117. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +240 -0
  118. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +256 -0
  119. package/src/modules/bmgd/workflows/4-production/create-story/template.md +51 -0
  120. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +74 -0
  121. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +38 -0
  122. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +267 -0
  123. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +58 -0
  124. package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +17 -0
  125. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +164 -0
  126. package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +76 -0
  127. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +58 -0
  128. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +1443 -0
  129. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +57 -0
  130. package/src/modules/bmgd/workflows/4-production/sprint-planning/checklist.md +33 -0
  131. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +234 -0
  132. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +55 -0
  133. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +51 -0
  134. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +16 -0
  135. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +34 -0
  136. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +209 -0
  137. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +63 -0
  138. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +111 -0
  139. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +28 -0
  140. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +117 -0
  141. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +25 -0
  142. package/src/modules/bmm/README.md +79 -92
  143. package/src/modules/bmm/_module-installer/install-config.yaml +9 -23
  144. package/src/modules/bmm/_module-installer/installer.js +2 -2
  145. package/src/modules/bmm/agents/analyst.agent.yaml +25 -19
  146. package/src/modules/bmm/agents/architect.agent.yaml +20 -19
  147. package/src/modules/bmm/agents/dev.agent.yaml +12 -15
  148. package/src/modules/bmm/agents/frame-expert.agent.yaml +42 -0
  149. package/src/modules/bmm/agents/pm.agent.yaml +36 -22
  150. package/src/modules/bmm/agents/sm.agent.yaml +30 -24
  151. package/src/modules/bmm/agents/tea.agent.yaml +25 -17
  152. package/src/modules/bmm/agents/tech-writer.agent.yaml +68 -0
  153. package/src/modules/bmm/agents/ux-designer.agent.yaml +18 -12
  154. package/src/modules/bmm/docs/README.md +236 -0
  155. package/src/modules/bmm/docs/agents-guide.md +1058 -0
  156. package/src/modules/bmm/docs/brownfield-guide.md +762 -0
  157. package/src/modules/bmm/docs/enterprise-agentic-development.md +686 -0
  158. package/src/modules/bmm/docs/faq.md +588 -0
  159. package/src/modules/bmm/docs/glossary.md +320 -0
  160. package/src/modules/bmm/docs/party-mode.md +224 -0
  161. package/src/modules/bmm/docs/quick-spec-flow.md +652 -0
  162. package/src/modules/bmm/docs/quick-start.md +376 -0
  163. package/src/modules/bmm/docs/scale-adaptive-system.md +612 -0
  164. package/src/modules/bmm/docs/test-architecture.md +396 -0
  165. package/src/modules/bmm/{workflows/3-solutioning/architecture/readme.md → docs/workflow-architecture-reference.md} +132 -84
  166. package/src/modules/bmm/{workflows/document-project/README.md → docs/workflow-document-project-reference.md} +49 -4
  167. package/src/modules/bmm/docs/workflows-analysis.md +370 -0
  168. package/src/modules/bmm/docs/workflows-implementation.md +286 -0
  169. package/src/modules/bmm/docs/workflows-planning.md +612 -0
  170. package/src/modules/bmm/docs/workflows-solutioning.md +554 -0
  171. package/src/modules/bmm/teams/default-party.csv +20 -0
  172. package/src/modules/bmm/teams/team-fullstack.yaml +2 -0
  173. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +45 -24
  174. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +8 -8
  175. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +425 -0
  176. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  177. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +56 -0
  178. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +435 -232
  179. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +93 -77
  180. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +32 -14
  181. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  182. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  183. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +156 -59
  184. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +70 -65
  185. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +205 -143
  186. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +55 -46
  187. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +116 -83
  188. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +37 -1
  189. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +36 -1
  190. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +25 -12
  191. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/epics-template.md +80 -0
  192. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/instructions.md +616 -0
  193. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/workflow.yaml +63 -0
  194. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +51 -26
  195. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +67 -16
  196. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +292 -63
  197. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  198. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +544 -290
  199. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +165 -23
  200. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  201. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +50 -18
  202. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +146 -36
  203. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +67 -4
  204. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +436 -0
  205. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +874 -163
  206. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +132 -6
  207. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +54 -20
  208. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +36 -28
  209. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -26
  210. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +1 -1
  211. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +5 -9
  212. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +215 -150
  213. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +72 -26
  214. package/src/modules/bmm/workflows/3-solutioning/{solutioning-gate-check → implementation-readiness}/checklist.md +7 -13
  215. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +332 -0
  216. package/src/modules/bmm/workflows/3-solutioning/{solutioning-gate-check → implementation-readiness}/template.md +1 -1
  217. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +64 -0
  218. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +25 -18
  219. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +31 -26
  220. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
  221. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +7 -2
  222. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +38 -25
  223. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +22 -18
  224. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +38 -14
  225. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +8 -3
  226. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +35 -5
  227. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +1 -1
  228. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +10 -6
  229. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +40 -16
  230. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1207 -243
  231. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +38 -26
  232. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +28 -15
  233. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +1 -1
  234. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +16 -6
  235. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +1 -1
  236. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +1 -1
  237. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +23 -15
  238. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +39 -8
  239. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +1 -1
  240. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +5 -4
  241. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +6 -6
  242. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +5 -7
  243. package/src/modules/bmm/workflows/document-project/checklist.md +1 -1
  244. package/src/modules/bmm/workflows/document-project/instructions.md +5 -5
  245. package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -7
  246. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +4 -4
  247. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
  248. package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +13 -13
  249. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
  250. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-helpers.md +127 -0
  251. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-library.json +90 -0
  252. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-templates.yaml +127 -0
  253. package/src/modules/bmm/workflows/frame-expert/_shared/validate-json-instructions.md +79 -0
  254. package/src/modules/bmm/workflows/frame-expert/create-dataflow/checklist.md +39 -0
  255. package/src/modules/bmm/workflows/frame-expert/create-dataflow/instructions.md +131 -0
  256. package/src/modules/bmm/workflows/frame-expert/create-dataflow/workflow.yaml +24 -0
  257. package/src/modules/bmm/workflows/frame-expert/create-diagram/checklist.md +43 -0
  258. package/src/modules/bmm/workflows/frame-expert/create-diagram/instructions.md +142 -0
  259. package/src/modules/bmm/workflows/frame-expert/create-diagram/workflow.yaml +25 -0
  260. package/src/modules/bmm/workflows/frame-expert/create-flowchart/checklist.md +49 -0
  261. package/src/modules/bmm/workflows/frame-expert/create-flowchart/instructions.md +242 -0
  262. package/src/modules/bmm/workflows/frame-expert/create-flowchart/workflow.yaml +28 -0
  263. package/src/modules/bmm/workflows/frame-expert/create-wireframe/checklist.md +38 -0
  264. package/src/modules/bmm/workflows/frame-expert/create-wireframe/instructions.md +133 -0
  265. package/src/modules/bmm/workflows/frame-expert/create-wireframe/workflow.yaml +24 -0
  266. package/src/modules/bmm/workflows/techdoc/documentation-standards.md +262 -0
  267. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +2 -2
  268. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +2 -2
  269. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -9
  270. package/src/modules/bmm/workflows/testarch/automate/instructions.md +2 -2
  271. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -11
  272. package/src/modules/bmm/workflows/testarch/ci/checklist.md +4 -4
  273. package/src/modules/bmm/workflows/testarch/ci/instructions.md +2 -2
  274. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -10
  275. package/src/modules/bmm/workflows/testarch/framework/checklist.md +4 -4
  276. package/src/modules/bmm/workflows/testarch/framework/instructions.md +2 -2
  277. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -8
  278. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
  279. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -11
  280. package/src/modules/bmm/workflows/testarch/test-design/checklist.md +4 -4
  281. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +175 -14
  282. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +4 -4
  283. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +7 -11
  284. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +1 -1
  285. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -9
  286. package/src/modules/bmm/workflows/testarch/trace/instructions.md +9 -9
  287. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -13
  288. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +249 -212
  289. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +6 -5
  290. package/src/modules/bmm/workflows/workflow-status/instructions.md +177 -113
  291. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +138 -0
  292. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +126 -0
  293. package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +42 -65
  294. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +122 -0
  295. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +113 -0
  296. package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-1.yaml → quick-flow-brownfield.yaml} +18 -18
  297. package/src/modules/bmm/workflows/workflow-status/paths/{greenfield-level-1.yaml → quick-flow-greenfield.yaml} +16 -18
  298. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
  299. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
  300. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +5 -5
  301. package/src/modules/cis/README.md +153 -0
  302. package/src/modules/cis/_module-installer/install-config.yaml +6 -4
  303. package/src/modules/cis/agents/README.md +1 -1
  304. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +13 -8
  305. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +13 -8
  306. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +13 -8
  307. package/src/modules/cis/agents/innovation-strategist.agent.yaml +13 -8
  308. package/src/modules/cis/agents/storyteller.agent.yaml +13 -8
  309. package/src/modules/cis/teams/creative-squad.yaml +1 -0
  310. package/src/modules/cis/teams/default-party.csv +11 -0
  311. package/src/modules/cis/workflows/README.md +102 -30
  312. package/src/modules/cis/workflows/design-thinking/instructions.md +4 -2
  313. package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -12
  314. package/src/modules/cis/workflows/innovation-strategy/instructions.md +7 -5
  315. package/src/modules/cis/workflows/innovation-strategy/template.md +3 -3
  316. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -12
  317. package/src/modules/cis/workflows/problem-solving/instructions.md +4 -2
  318. package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -12
  319. package/src/modules/cis/workflows/storytelling/instructions.md +14 -4
  320. package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -12
  321. package/src/utility/models/action-command-header.md +0 -0
  322. package/src/utility/models/agent-activation-ide.xml +3 -3
  323. package/src/utility/models/agent-activation-web.xml +4 -4
  324. package/src/utility/models/agent-command-header.md +1 -0
  325. package/src/utility/models/fragments/activation-steps.xml +3 -2
  326. package/src/utility/models/fragments/handler-validate-workflow.xml +1 -1
  327. package/src/utility/models/fragments/handler-workflow.xml +1 -1
  328. package/src/utility/models/fragments/web-bundle-activation-steps.xml +3 -3
  329. package/test/test-installation-components.js +214 -0
  330. package/tools/bmad-npx-wrapper.js +10 -98
  331. package/tools/cli/README.md +50 -32
  332. package/tools/cli/bundlers/web-bundler.js +322 -26
  333. package/tools/cli/commands/install.js +2 -5
  334. package/tools/cli/installers/lib/core/config-collector.js +279 -39
  335. package/tools/cli/installers/lib/core/detector.js +62 -7
  336. package/tools/cli/installers/lib/core/ide-config-manager.js +3 -1
  337. package/tools/cli/installers/lib/core/installer.js +219 -46
  338. package/tools/cli/installers/lib/core/manifest-generator.js +33 -117
  339. package/tools/cli/installers/lib/core/manifest.js +6 -2
  340. package/tools/cli/installers/lib/ide/_base-ide.js +57 -3
  341. package/tools/cli/installers/lib/ide/auggie.js +81 -238
  342. package/tools/cli/installers/lib/ide/claude-code.js +47 -25
  343. package/tools/cli/installers/lib/ide/cline.js +15 -18
  344. package/tools/cli/installers/lib/ide/codex.js +17 -48
  345. package/tools/cli/installers/lib/ide/crush.js +14 -50
  346. package/tools/cli/installers/lib/ide/cursor.js +68 -8
  347. package/tools/cli/installers/lib/ide/gemini.js +87 -37
  348. package/tools/cli/installers/lib/ide/github-copilot.js +47 -35
  349. package/tools/cli/installers/lib/ide/iflow.js +13 -30
  350. package/tools/cli/installers/lib/ide/kilo.js +20 -16
  351. package/tools/cli/installers/lib/ide/manager.js +15 -0
  352. package/tools/cli/installers/lib/ide/opencode.js +16 -17
  353. package/tools/cli/installers/lib/ide/qwen.js +39 -11
  354. package/tools/cli/installers/lib/ide/roo.js +27 -62
  355. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +90 -0
  356. package/tools/cli/installers/lib/ide/{task-tool-command-generator.js → shared/task-tool-command-generator.js} +1 -1
  357. package/tools/cli/installers/lib/ide/{workflow-command-generator.js → shared/workflow-command-generator.js} +11 -9
  358. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  359. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  360. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  361. package/tools/cli/installers/lib/ide/{workflow-command-template.md → templates/workflow-command-template.md} +3 -5
  362. package/tools/cli/installers/lib/ide/trae.js +20 -32
  363. package/tools/cli/installers/lib/ide/windsurf.js +18 -8
  364. package/tools/cli/installers/lib/modules/manager.js +213 -7
  365. package/tools/cli/lib/cli-utils.js +52 -50
  366. package/tools/cli/lib/config.js +3 -1
  367. package/tools/cli/lib/ui.js +34 -17
  368. package/tools/cli/lib/xml-handler.js +1 -0
  369. package/tools/cli/lib/yaml-format.js +2 -1
  370. package/tools/cli/lib/yaml-xml-builder.js +76 -8
  371. package/tools/schema/agent.js +12 -3
  372. package/v6-open-items.md +3 -9
  373. package/.claude/commands/bmad/bmb/agents/bmad-builder.md +0 -70
  374. package/.claude/commands/bmad/bmb/workflows/README.md +0 -67
  375. package/.claude/commands/bmad/bmb/workflows/audit-workflow.md +0 -15
  376. package/.claude/commands/bmad/bmb/workflows/convert-legacy.md +0 -15
  377. package/.claude/commands/bmad/bmb/workflows/create-agent.md +0 -15
  378. package/.claude/commands/bmad/bmb/workflows/create-module.md +0 -15
  379. package/.claude/commands/bmad/bmb/workflows/create-workflow.md +0 -15
  380. package/.claude/commands/bmad/bmb/workflows/edit-agent.md +0 -15
  381. package/.claude/commands/bmad/bmb/workflows/edit-module.md +0 -15
  382. package/.claude/commands/bmad/bmb/workflows/edit-workflow.md +0 -15
  383. package/.claude/commands/bmad/bmb/workflows/module-brief.md +0 -15
  384. package/.claude/commands/bmad/bmb/workflows/redoc.md +0 -15
  385. package/.claude/commands/bmad/bmd/agents/cli-chief.md +0 -108
  386. package/.claude/commands/bmad/bmd/agents/doc-keeper.md +0 -115
  387. package/.claude/commands/bmad/bmd/agents/release-chief.md +0 -109
  388. package/.claude/commands/bmad/core/agents/bmad-master.md +0 -71
  389. package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
  390. package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
  391. package/.claude/commands/bmad/core/workflows/README.md +0 -27
  392. package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -15
  393. package/.claude/commands/bmad/core/workflows/party-mode.md +0 -15
  394. package/.claude/hooks/bmad-tts-injector.sh +0 -415
  395. package/.claude/hooks/bmad-voice-manager.sh +0 -511
  396. package/.claude/hooks/check-output-style.sh +0 -112
  397. package/.claude/hooks/download-extra-voices.sh +0 -244
  398. package/.claude/hooks/github-star-reminder.sh +0 -154
  399. package/.claude/hooks/language-manager.sh +0 -392
  400. package/.claude/hooks/learn-manager.sh +0 -475
  401. package/.claude/hooks/personality-manager.sh +0 -438
  402. package/.claude/hooks/piper-download-voices.sh +0 -165
  403. package/.claude/hooks/piper-installer.sh +0 -178
  404. package/.claude/hooks/piper-multispeaker-registry.sh +0 -165
  405. package/.claude/hooks/piper-voice-manager.sh +0 -293
  406. package/.claude/hooks/play-tts-elevenlabs.sh +0 -404
  407. package/.claude/hooks/play-tts-piper.sh +0 -338
  408. package/.claude/hooks/play-tts.sh +0 -100
  409. package/.claude/hooks/provider-commands.sh +0 -540
  410. package/.claude/hooks/provider-manager.sh +0 -298
  411. package/.claude/hooks/replay-target-audio.sh +0 -95
  412. package/.claude/hooks/sentiment-manager.sh +0 -201
  413. package/.claude/hooks/speed-manager.sh +0 -291
  414. package/.claude/hooks/voice-manager.sh +0 -594
  415. package/.claude/hooks/voices-config.sh +0 -70
  416. package/.claude/settings.local.json +0 -41
  417. package/bmad/_cfg/agent-manifest.csv +0 -7
  418. package/bmad/_cfg/agents/bmb-bmad-builder.customize.yaml +0 -42
  419. package/bmad/_cfg/agents/bmd-cli-chief.customize.yaml +0 -32
  420. package/bmad/_cfg/agents/bmd-doc-keeper.customize.yaml +0 -42
  421. package/bmad/_cfg/agents/bmd-release-chief.customize.yaml +0 -42
  422. package/bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
  423. package/bmad/_cfg/files-manifest.csv +0 -83
  424. package/bmad/_cfg/manifest.yaml +0 -12
  425. package/bmad/_cfg/task-manifest.csv +0 -5
  426. package/bmad/_cfg/tool-manifest.csv +0 -2
  427. package/bmad/_cfg/workflow-manifest.csv +0 -15
  428. package/bmad/bmb/README.md +0 -132
  429. package/bmad/bmb/agents/bmad-builder.md +0 -70
  430. package/bmad/bmb/config.yaml +0 -14
  431. package/bmad/bmb/workflows/audit-workflow/checklist.md +0 -143
  432. package/bmad/bmb/workflows/audit-workflow/instructions.md +0 -341
  433. package/bmad/bmb/workflows/audit-workflow/template.md +0 -118
  434. package/bmad/bmb/workflows/audit-workflow/workflow.yaml +0 -23
  435. package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +0 -21
  436. package/bmad/bmb/workflows/convert-legacy/README.md +0 -262
  437. package/bmad/bmb/workflows/convert-legacy/checklist.md +0 -205
  438. package/bmad/bmb/workflows/convert-legacy/instructions.md +0 -377
  439. package/bmad/bmb/workflows/convert-legacy/workflow.yaml +0 -32
  440. package/bmad/bmb/workflows/create-agent/README.md +0 -320
  441. package/bmad/bmb/workflows/create-agent/agent-architecture.md +0 -419
  442. package/bmad/bmb/workflows/create-agent/agent-architecture.md.bak +0 -412
  443. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
  444. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md.bak +0 -759
  445. package/bmad/bmb/workflows/create-agent/agent-types.md +0 -292
  446. package/bmad/bmb/workflows/create-agent/brainstorm-context.md +0 -174
  447. package/bmad/bmb/workflows/create-agent/checklist.md +0 -62
  448. package/bmad/bmb/workflows/create-agent/communication-styles.md +0 -202
  449. package/bmad/bmb/workflows/create-agent/instructions.md +0 -430
  450. package/bmad/bmb/workflows/create-agent/workflow.yaml +0 -37
  451. package/bmad/bmb/workflows/create-module/README.md +0 -220
  452. package/bmad/bmb/workflows/create-module/README.md.bak +0 -218
  453. package/bmad/bmb/workflows/create-module/brainstorm-context.md +0 -137
  454. package/bmad/bmb/workflows/create-module/checklist.md +0 -244
  455. package/bmad/bmb/workflows/create-module/checklist.md.bak +0 -245
  456. package/bmad/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  457. package/bmad/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  458. package/bmad/bmb/workflows/create-module/installer-templates/installer.js.bak +0 -231
  459. package/bmad/bmb/workflows/create-module/instructions.md +0 -581
  460. package/bmad/bmb/workflows/create-module/instructions.md.bak +0 -521
  461. package/bmad/bmb/workflows/create-module/module-structure.md +0 -366
  462. package/bmad/bmb/workflows/create-module/module-structure.md.bak +0 -310
  463. package/bmad/bmb/workflows/create-module/workflow.yaml +0 -42
  464. package/bmad/bmb/workflows/create-module/workflow.yaml.bak +0 -40
  465. package/bmad/bmb/workflows/create-workflow/README.md +0 -277
  466. package/bmad/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  467. package/bmad/bmb/workflows/create-workflow/checklist.md +0 -94
  468. package/bmad/bmb/workflows/create-workflow/instructions.md +0 -716
  469. package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1150
  470. package/bmad/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  471. package/bmad/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
  472. package/bmad/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  473. package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -39
  474. package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml.bak +0 -39
  475. package/bmad/bmb/workflows/create-workflow/workflow.yaml +0 -40
  476. package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +0 -38
  477. package/bmad/bmb/workflows/edit-agent/README.md +0 -112
  478. package/bmad/bmb/workflows/edit-agent/checklist.md +0 -112
  479. package/bmad/bmb/workflows/edit-agent/instructions.md +0 -290
  480. package/bmad/bmb/workflows/edit-agent/workflow.yaml +0 -33
  481. package/bmad/bmb/workflows/edit-module/README.md +0 -187
  482. package/bmad/bmb/workflows/edit-module/checklist.md +0 -165
  483. package/bmad/bmb/workflows/edit-module/instructions.md +0 -339
  484. package/bmad/bmb/workflows/edit-module/workflow.yaml +0 -34
  485. package/bmad/bmb/workflows/edit-workflow/README.md +0 -119
  486. package/bmad/bmb/workflows/edit-workflow/checklist.md +0 -70
  487. package/bmad/bmb/workflows/edit-workflow/instructions.md +0 -342
  488. package/bmad/bmb/workflows/edit-workflow/workflow.yaml +0 -27
  489. package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +0 -25
  490. package/bmad/bmb/workflows/module-brief/README.md +0 -264
  491. package/bmad/bmb/workflows/module-brief/checklist.md +0 -116
  492. package/bmad/bmb/workflows/module-brief/instructions.md +0 -267
  493. package/bmad/bmb/workflows/module-brief/template.md +0 -275
  494. package/bmad/bmb/workflows/module-brief/workflow.yaml +0 -29
  495. package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +0 -27
  496. package/bmad/bmb/workflows/redoc/README.md +0 -87
  497. package/bmad/bmb/workflows/redoc/checklist.md +0 -99
  498. package/bmad/bmb/workflows/redoc/instructions.md +0 -265
  499. package/bmad/bmb/workflows/redoc/workflow.yaml +0 -32
  500. package/bmad/bmb/workflows/redoc/workflow.yaml.bak +0 -31
  501. package/bmad/bmd/README.md +0 -193
  502. package/bmad/bmd/README.md.bak +0 -193
  503. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  504. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md.bak +0 -102
  505. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  506. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md.bak +0 -68
  507. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  508. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md.bak +0 -123
  509. package/bmad/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  510. package/bmad/bmd/agents/cli-chief-sidecar/memories.md.bak +0 -53
  511. package/bmad/bmd/agents/cli-chief.md +0 -108
  512. package/bmad/bmd/agents/cli-chief.md.bak +0 -108
  513. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  514. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md.bak +0 -177
  515. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  516. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md.bak +0 -81
  517. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  518. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md.bak +0 -88
  519. package/bmad/bmd/agents/doc-keeper.md +0 -115
  520. package/bmad/bmd/agents/doc-keeper.md.bak +0 -115
  521. package/bmad/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  522. package/bmad/bmd/agents/release-chief-sidecar/instructions.md.bak +0 -164
  523. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  524. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md.bak +0 -82
  525. package/bmad/bmd/agents/release-chief-sidecar/memories.md +0 -73
  526. package/bmad/bmd/agents/release-chief-sidecar/memories.md.bak +0 -73
  527. package/bmad/bmd/agents/release-chief.md +0 -109
  528. package/bmad/bmd/agents/release-chief.md.bak +0 -109
  529. package/bmad/bmd/config.yaml +0 -10
  530. package/bmad/core/agents/bmad-master.md +0 -71
  531. package/bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -122
  532. package/bmad/core/config.yaml +0 -9
  533. package/bmad/core/tasks/adv-elicit-methods.csv +0 -39
  534. package/bmad/core/tasks/index-docs.xml +0 -65
  535. package/bmad/core/tasks/validate-workflow.xml +0 -89
  536. package/bmad/core/tasks/workflow.xml +0 -174
  537. package/bmad/core/tools/shard-doc.xml +0 -100
  538. package/bmad/core/workflows/brainstorming/README.md +0 -271
  539. package/bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
  540. package/bmad/core/workflows/brainstorming/instructions.md +0 -314
  541. package/bmad/core/workflows/brainstorming/template.md +0 -102
  542. package/bmad/core/workflows/brainstorming/workflow.yaml +0 -43
  543. package/bmad/core/workflows/party-mode/instructions.md +0 -188
  544. package/bmad/core/workflows/party-mode/workflow.yaml +0 -23
  545. package/bmad/docs/claude-code-instructions.md +0 -25
  546. package/bmad/docs/codex-instructions.md +0 -21
  547. package/bmd/README.md +0 -193
  548. package/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  549. package/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  550. package/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  551. package/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  552. package/bmd/agents/cli-chief.agent.yaml +0 -126
  553. package/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  554. package/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  555. package/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  556. package/bmd/agents/doc-keeper.agent.yaml +0 -137
  557. package/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  558. package/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  559. package/bmd/agents/release-chief-sidecar/memories.md +0 -73
  560. package/bmd/agents/release-chief.agent.yaml +0 -127
  561. package/bmd/bmad-custom-module-installer-plan.md +0 -1176
  562. package/bmd/config.yaml +0 -12
  563. package/docs/bmad-brownfield-guide.md +0 -1260
  564. package/docs/conversion-report-shard-doc-2025-10-26.md +0 -188
  565. package/src/core/tasks/adv-elicit.xml +0 -104
  566. package/src/modules/bmm/agents/game-architect.agent.yaml +0 -35
  567. package/src/modules/bmm/agents/game-designer.agent.yaml +0 -47
  568. package/src/modules/bmm/agents/game-dev.agent.yaml +0 -39
  569. package/src/modules/bmm/sub-modules/claude-code/config.yaml +0 -5
  570. package/src/modules/bmm/sub-modules/claude-code/injections.yaml +0 -242
  571. package/src/modules/bmm/sub-modules/claude-code/readme.md +0 -87
  572. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/api-documenter.md +0 -102
  573. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md +0 -82
  574. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md +0 -101
  575. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md +0 -84
  576. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md +0 -83
  577. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md +0 -81
  578. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md +0 -61
  579. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md +0 -168
  580. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md +0 -115
  581. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md +0 -123
  582. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md +0 -72
  583. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md +0 -51
  584. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md +0 -106
  585. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md +0 -102
  586. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md +0 -68
  587. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md +0 -108
  588. package/src/modules/bmm/tasks/daily-standup.xml +0 -85
  589. package/src/modules/bmm/tasks/retrospective.xml +0 -104
  590. package/src/modules/bmm/testarch/README.md +0 -311
  591. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/README.md +0 -38
  592. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/instructions.md +0 -109
  593. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/README.md +0 -29
  594. package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
  595. package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +0 -180
  596. package/src/modules/bmm/workflows/1-analysis/research/README.md +0 -454
  597. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
  598. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
  599. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
  600. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
  601. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
  602. package/src/modules/bmm/workflows/2-plan-workflows/README.md +0 -258
  603. package/src/modules/bmm/workflows/2-plan-workflows/gdd/README.md +0 -222
  604. package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +0 -67
  605. package/src/modules/bmm/workflows/2-plan-workflows/prd/epics-template.md +0 -63
  606. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +0 -167
  607. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +0 -278
  608. package/src/modules/bmm/workflows/3-solutioning/README.md +0 -1
  609. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/README.md +0 -177
  610. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +0 -273
  611. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -189
  612. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +0 -40
  613. package/src/modules/bmm/workflows/4-implementation/README.md +0 -221
  614. package/src/modules/bmm/workflows/4-implementation/code-review/README.md +0 -69
  615. package/src/modules/bmm/workflows/4-implementation/correct-course/README.md +0 -73
  616. package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -129
  617. package/src/modules/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +0 -367
  618. package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -206
  619. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/README.md +0 -195
  620. package/src/modules/bmm/workflows/4-implementation/retrospective/README.md +0 -77
  621. package/src/modules/bmm/workflows/4-implementation/sprint-planning/README.md +0 -156
  622. package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
  623. package/src/modules/bmm/workflows/README.md +0 -577
  624. package/src/modules/bmm/workflows/document-project/templates/README.md +0 -38
  625. package/src/modules/bmm/workflows/testarch/README.md +0 -26
  626. package/src/modules/bmm/workflows/testarch/atdd/README.md +0 -672
  627. package/src/modules/bmm/workflows/testarch/automate/README.md +0 -869
  628. package/src/modules/bmm/workflows/testarch/ci/README.md +0 -493
  629. package/src/modules/bmm/workflows/testarch/framework/README.md +0 -340
  630. package/src/modules/bmm/workflows/testarch/nfr-assess/README.md +0 -469
  631. package/src/modules/bmm/workflows/testarch/test-design/README.md +0 -493
  632. package/src/modules/bmm/workflows/testarch/test-review/README.md +0 -775
  633. package/src/modules/bmm/workflows/testarch/trace/README.md +0 -802
  634. package/src/modules/bmm/workflows/workflow-status/README.md +0 -241
  635. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-0.yaml +0 -54
  636. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +0 -76
  637. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-3.yaml +0 -95
  638. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-4.yaml +0 -88
  639. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-0.yaml +0 -45
  640. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml +0 -78
  641. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml +0 -73
  642. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +0 -75
  643. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.md +0 -30
  644. package/src/modules/cis/readme.md +0 -86
  645. package/test/fixtures/agent-schema/invalid/persona/principles-as-string.agent.yaml +0 -23
  646. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-brain-methods.csv +0 -0
  647. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-context.md +0 -0
  648. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/checklist.md +0 -0
  649. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/template.md +0 -0
  650. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/checklist.md +0 -0
  651. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/action-platformer.md +0 -0
  652. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/adventure.md +0 -0
  653. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/card-game.md +0 -0
  654. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/fighting.md +0 -0
  655. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/horror.md +0 -0
  656. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/idle-incremental.md +0 -0
  657. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/metroidvania.md +0 -0
  658. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/moba.md +0 -0
  659. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/party-game.md +0 -0
  660. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/puzzle.md +0 -0
  661. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/racing.md +0 -0
  662. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rhythm.md +0 -0
  663. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/roguelike.md +0 -0
  664. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rpg.md +0 -0
  665. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sandbox.md +0 -0
  666. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/shooter.md +0 -0
  667. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/simulation.md +0 -0
  668. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sports.md +0 -0
  669. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/strategy.md +0 -0
  670. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/survival.md +0 -0
  671. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/text-based.md +0 -0
  672. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/tower-defense.md +0 -0
  673. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/turn-based-tactics.md +0 -0
  674. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/visual-novel.md +0 -0
  675. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types.csv +0 -0
  676. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/gdd-template.md +0 -0
  677. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/checklist.md +0 -0
  678. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/narrative-template.md +0 -0
@@ -51,8 +51,13 @@ class WebBundler {
51
51
  console.log(chalk.cyan.bold('═══════════════════════════════════════════════\n'));
52
52
 
53
53
  try {
54
- // Pre-discover all modules to generate complete manifests
54
+ // Vendor cross-module workflows FIRST
55
55
  const modules = await this.discoverModules();
56
+ for (const module of modules) {
57
+ await this.vendorCrossModuleWorkflows(module);
58
+ }
59
+
60
+ // Pre-discover all modules to generate complete manifests
56
61
  for (const module of modules) {
57
62
  await this.preDiscoverModule(module);
58
63
  }
@@ -92,6 +97,9 @@ class WebBundler {
92
97
  teams: [],
93
98
  };
94
99
 
100
+ // Vendor cross-module workflows first (if not already done by bundleAll)
101
+ await this.vendorCrossModuleWorkflows(moduleName);
102
+
95
103
  // Pre-discover all agents and teams for manifest generation
96
104
  await this.preDiscoverModule(moduleName);
97
105
 
@@ -134,6 +142,9 @@ class WebBundler {
134
142
 
135
143
  console.log(chalk.dim(` → Processing: ${agentName}`));
136
144
 
145
+ // Vendor cross-module workflows first (if not already done)
146
+ await this.vendorCrossModuleWorkflows(moduleName);
147
+
137
148
  const agentPath = path.join(this.modulesPath, moduleName, 'agents', agentFile);
138
149
 
139
150
  // Check if agent file exists
@@ -148,6 +159,16 @@ class WebBundler {
148
159
 
149
160
  // Handle YAML agents - build in-memory to XML
150
161
  if (agentFile.endsWith('.agent.yaml')) {
162
+ // Check for webskip flag in YAML before building
163
+ const yamlContent = await fs.readFile(agentPath, 'utf8');
164
+ const agentYaml = yaml.load(yamlContent);
165
+
166
+ if (agentYaml?.agent?.webskip === true) {
167
+ this.stats.skippedAgents++;
168
+ console.log(chalk.gray(` ⊘ Skipped (webskip="true")`));
169
+ return;
170
+ }
171
+
151
172
  // Build agent from YAML (no customize file for web bundles)
152
173
  const xmlContent = await this.yamlBuilder.buildFromYaml(agentPath, null, {
153
174
  includeMetadata: false, // Don't include build metadata in web bundles
@@ -194,6 +215,18 @@ class WebBundler {
194
215
  this.stats.warnings.push({ agent: agentName, warnings: dependencyWarnings });
195
216
  }
196
217
 
218
+ // Check for module's default-party.csv and include it as agent manifest
219
+ const defaultPartyPath = path.join(this.modulesPath, moduleName, 'teams', 'default-party.csv');
220
+ if (await fs.pathExists(defaultPartyPath)) {
221
+ const partyContent = await fs.readFile(defaultPartyPath, 'utf8');
222
+ // Process any placeholders in the CSV content
223
+ const processedPartyContent = this.processProjectRootReferences(partyContent);
224
+ // Wrap as text to preserve raw CSV format in CDATA
225
+ const wrappedParty = this.wrapContentInXml(processedPartyContent, 'bmad/_cfg/agent-manifest.csv', 'text');
226
+ dependencies.set('bmad/_cfg/agent-manifest.csv', wrappedParty);
227
+ console.log(chalk.gray(` + Added party manifest from module default-party.csv`));
228
+ }
229
+
197
230
  // Remove commands for skipped workflows from agent XML
198
231
  if (skippedWorkflows.length > 0) {
199
232
  agentXml = this.removeSkippedWorkflowCommands(agentXml, skippedWorkflows);
@@ -209,10 +242,13 @@ class WebBundler {
209
242
  console.log(chalk.red(` ⚠ Invalid XML generated!`));
210
243
  }
211
244
 
245
+ // Format XML for readability
246
+ const formattedBundle = this.formatXml(bundle);
247
+
212
248
  // Write bundle to output
213
249
  const outputPath = path.join(this.outputDir, moduleName, 'agents', `${agentName}.xml`);
214
250
  await fs.ensureDir(path.dirname(outputPath));
215
- await fs.writeFile(outputPath, bundle, 'utf8');
251
+ await fs.writeFile(outputPath, formattedBundle, 'utf8');
216
252
 
217
253
  this.stats.bundledAgents++;
218
254
  const statusIcon = isValid ? chalk.green('✓') : chalk.yellow('⚠');
@@ -249,6 +285,24 @@ class WebBundler {
249
285
  const allAgentXmls = [];
250
286
  const warnings = [];
251
287
 
288
+ // Check if team has a party CSV file (agent manifest)
289
+ const hasPartyFile = teamConfig.party && teamConfig.party.endsWith('.csv');
290
+ if (hasPartyFile) {
291
+ // Load the party CSV and add it as bmad/_cfg/agent-manifest.csv
292
+ const partyPath = path.join(path.dirname(teamPath), teamConfig.party.replace(/^\.\//, ''));
293
+ if (await fs.pathExists(partyPath)) {
294
+ const partyContent = await fs.readFile(partyPath, 'utf8');
295
+ // Process any placeholders in the CSV content
296
+ const processedPartyContent = this.processProjectRootReferences(partyContent);
297
+ // Wrap as text/csv to preserve raw CSV format in CDATA
298
+ const wrappedParty = this.wrapContentInXml(processedPartyContent, 'bmad/_cfg/agent-manifest.csv', 'text');
299
+ dependencies.set('bmad/_cfg/agent-manifest.csv', wrappedParty);
300
+ console.log(chalk.gray(` + Added agent manifest from: ${teamConfig.party}`));
301
+ } else {
302
+ console.log(chalk.yellow(` ⚠ Party file not found: ${partyPath}`));
303
+ }
304
+ }
305
+
252
306
  // 1. First, always add the bmad-web-orchestrator (XML file only, no transformation needed)
253
307
  const orchestratorXmlPath = path.join(this.sourceDir, 'core', 'agents', 'bmad-web-orchestrator.agent.xml');
254
308
 
@@ -316,6 +370,15 @@ class WebBundler {
316
370
  let agentXml;
317
371
 
318
372
  if (isYaml) {
373
+ // Check for webskip flag in YAML
374
+ const yamlContent = await fs.readFile(agentPath, 'utf8');
375
+ const agentYaml = yaml.load(yamlContent);
376
+
377
+ if (agentYaml?.agent?.webskip === true) {
378
+ console.log(chalk.gray(` ⊘ Skipped agent (webskip="true"): ${agentName}`));
379
+ continue;
380
+ }
381
+
319
382
  // Build YAML agent in-memory - skip activation for team agents (orchestrator handles it)
320
383
  const xmlContent = await this.yamlBuilder.buildFromYaml(agentPath, null, {
321
384
  includeMetadata: false,
@@ -380,10 +443,13 @@ class WebBundler {
380
443
  console.log(chalk.red(` ⚠ Invalid XML generated for team!`));
381
444
  }
382
445
 
446
+ // Format XML for readability
447
+ const formattedBundle = this.formatXml(bundle);
448
+
383
449
  // 6. Write bundle to output
384
450
  const outputPath = path.join(this.outputDir, moduleName, 'teams', `${teamName}.xml`);
385
451
  await fs.ensureDir(path.dirname(outputPath));
386
- await fs.writeFile(outputPath, bundle, 'utf8');
452
+ await fs.writeFile(outputPath, formattedBundle, 'utf8');
387
453
 
388
454
  const statusIcon = isValid ? chalk.green('✓') : chalk.yellow('⚠');
389
455
  console.log(` ${statusIcon} Bundled team: ${teamName}.xml${isValid ? '' : chalk.yellow(' (invalid XML)')}`);
@@ -433,6 +499,99 @@ class WebBundler {
433
499
  return parts.join('\n');
434
500
  }
435
501
 
502
+ /**
503
+ * Vendor cross-module workflows for a module
504
+ * Scans source agent YAML files for workflow-install attributes and copies workflows
505
+ */
506
+ async vendorCrossModuleWorkflows(moduleName) {
507
+ const modulePath = path.join(this.modulesPath, moduleName);
508
+ const agentsPath = path.join(modulePath, 'agents');
509
+
510
+ if (!(await fs.pathExists(agentsPath))) {
511
+ return;
512
+ }
513
+
514
+ // Find all agent YAML files
515
+ const files = await fs.readdir(agentsPath);
516
+ const yamlFiles = files.filter((f) => f.endsWith('.agent.yaml'));
517
+
518
+ for (const agentFile of yamlFiles) {
519
+ const agentPath = path.join(agentsPath, agentFile);
520
+ const agentYaml = yaml.load(await fs.readFile(agentPath, 'utf8'));
521
+
522
+ const menuItems = agentYaml?.agent?.menu || [];
523
+ const workflowInstallItems = menuItems.filter((item) => item['workflow-install']);
524
+
525
+ for (const item of workflowInstallItems) {
526
+ const sourceWorkflowPath = item.workflow;
527
+ const installWorkflowPath = item['workflow-install'];
528
+
529
+ if (!sourceWorkflowPath || !installWorkflowPath) {
530
+ continue;
531
+ }
532
+
533
+ // Parse paths to extract module and workflow location
534
+ // Support both {project-root}/bmad/... and {project-root}/{bmad_folder}/... patterns
535
+ const sourceMatch = sourceWorkflowPath.match(/\{project-root\}\/(?:\{bmad_folder\}|bmad)\/([^/]+)\/workflows\/(.+)/);
536
+ const installMatch = installWorkflowPath.match(/\{project-root\}\/(?:\{bmad_folder\}|bmad)\/([^/]+)\/workflows\/(.+)/);
537
+
538
+ if (!sourceMatch || !installMatch) {
539
+ continue;
540
+ }
541
+
542
+ const sourceModule = sourceMatch[1];
543
+ const sourceWorkflowRelPath = sourceMatch[2];
544
+ const installModule = installMatch[1];
545
+ const installWorkflowRelPath = installMatch[2];
546
+
547
+ // Build actual filesystem paths
548
+ const actualSourceWorkflowPath = path.join(this.modulesPath, sourceModule, 'workflows', sourceWorkflowRelPath);
549
+ const actualDestWorkflowPath = path.join(this.modulesPath, installModule, 'workflows', installWorkflowRelPath);
550
+
551
+ // Check if source workflow exists
552
+ if (!(await fs.pathExists(actualSourceWorkflowPath))) {
553
+ console.log(chalk.yellow(` ⚠ Source workflow not found for vendoring: ${sourceWorkflowPath}`));
554
+ continue;
555
+ }
556
+
557
+ // Check if destination already exists (skip if already vendored)
558
+ if (await fs.pathExists(actualDestWorkflowPath)) {
559
+ continue;
560
+ }
561
+
562
+ // Get workflow directory (workflow.yaml is in a directory with other files)
563
+ const sourceWorkflowDir = path.dirname(actualSourceWorkflowPath);
564
+ const destWorkflowDir = path.dirname(actualDestWorkflowPath);
565
+
566
+ // Copy entire workflow directory
567
+ await fs.copy(sourceWorkflowDir, destWorkflowDir, { overwrite: false });
568
+
569
+ // Update config_source in the vendored workflow.yaml
570
+ const workflowYamlPath = actualDestWorkflowPath;
571
+ if (await fs.pathExists(workflowYamlPath)) {
572
+ await this.updateWorkflowConfigSource(workflowYamlPath, installModule);
573
+ }
574
+
575
+ console.log(chalk.dim(` → Vendored workflow: ${sourceWorkflowRelPath} → ${installModule}/workflows/${installWorkflowRelPath}`));
576
+ }
577
+ }
578
+ }
579
+
580
+ /**
581
+ * Update config_source in a vendored workflow YAML file
582
+ */
583
+ async updateWorkflowConfigSource(workflowYamlPath, newModuleName) {
584
+ let yamlContent = await fs.readFile(workflowYamlPath, 'utf8');
585
+
586
+ // Replace config_source with new module reference
587
+ // Support both old format (bmad) and new format ({bmad_folder})
588
+ const configSourcePattern = /config_source:\s*["']?\{project-root\}\/(?:\{bmad_folder\}|bmad)\/[^/]+\/config\.yaml["']?/g;
589
+ const newConfigSource = `config_source: "{project-root}/{bmad_folder}/${newModuleName}/config.yaml"`;
590
+
591
+ const updatedYaml = yamlContent.replaceAll(configSourcePattern, newConfigSource);
592
+ await fs.writeFile(workflowYamlPath, updatedYaml, 'utf8');
593
+ }
594
+
436
595
  /**
437
596
  * Pre-discover all agents and teams in a module for manifest generation
438
597
  */
@@ -452,6 +611,14 @@ class WebBundler {
452
611
  let content;
453
612
 
454
613
  if (file.endsWith('.agent.yaml')) {
614
+ // Check for webskip flag in YAML
615
+ const yamlContent = await fs.readFile(agentPath, 'utf8');
616
+ const agentYaml = yaml.load(yamlContent);
617
+
618
+ if (agentYaml?.agent?.webskip === true) {
619
+ continue; // Skip this agent
620
+ }
621
+
455
622
  // Build YAML agent in-memory
456
623
  content = await this.yamlBuilder.buildFromYaml(agentPath, null, {
457
624
  includeMetadata: false,
@@ -539,6 +706,12 @@ class WebBundler {
539
706
  const refs = new Set();
540
707
  const workflowRefs = new Set();
541
708
 
709
+ // Remove agent id attribute to prevent it from being treated as a dependency
710
+ // The id attribute is just a metadata identifier, not a file reference
711
+ const xmlWithoutAgentId = xml.replace(/<agent[^>]*id="[^"]*"[^>]*>/, (match) => {
712
+ return match.replace(/\sid="[^"]*"/, '');
713
+ });
714
+
542
715
  // Match various file reference patterns
543
716
  const patterns = [
544
717
  /exec="([^"]+)"/g, // Command exec paths
@@ -549,18 +722,27 @@ class WebBundler {
549
722
  /system-prompts="([^"]+)"/g,
550
723
  /tools="([^"]+)"/g,
551
724
  /knowledge="([^"]+)"/g,
552
- /{project-root}\/([^"'\s<>]+)/g,
725
+ /{project-root}\/([^"'\s<>]+)/g, // Legacy {project-root} paths
726
+ /\bbmad\/([^"'\s<>]+)/g, // Direct bmad/ paths (after {bmad_folder} replacement)
553
727
  ];
554
728
 
555
729
  for (const pattern of patterns) {
556
730
  let match;
557
- while ((match = pattern.exec(xml)) !== null) {
731
+ // Use the XML with agent id removed for pattern matching
732
+ while ((match = pattern.exec(xmlWithoutAgentId)) !== null) {
558
733
  let filePath = match[1];
559
734
  // Remove {project-root} prefix if present
560
735
  filePath = filePath.replace(/^{project-root}\//, '');
736
+ // Remove {bmad_folder} prefix if present (should be rare, mostly replaced already)
737
+ filePath = filePath.replace(/^{bmad_folder}\//, 'bmad/');
738
+
739
+ // For bmad/ pattern, prepend 'bmad/' since it was captured without it
740
+ if (pattern.source.includes(String.raw`\bbmad\/`)) {
741
+ filePath = 'bmad/' + filePath;
742
+ }
561
743
 
562
744
  // Skip obvious placeholder/example paths
563
- if (filePath && !filePath.includes('path/to/') && !filePath.includes('example')) {
745
+ if (filePath && !filePath.includes('path/to/') && !filePath.includes('example') && !filePath.includes('...')) {
564
746
  refs.add(filePath);
565
747
  }
566
748
  }
@@ -575,9 +757,12 @@ class WebBundler {
575
757
 
576
758
  for (const pattern of workflowPatterns) {
577
759
  let match;
760
+ // Use original xml for workflow patterns (they don't conflict with agent id)
578
761
  while ((match = pattern.exec(xml)) !== null) {
579
762
  let workflowPath = match[1];
580
763
  workflowPath = workflowPath.replace(/^{project-root}\//, '');
764
+ // Remove {bmad_folder} prefix if present and replace with bmad
765
+ workflowPath = workflowPath.replace(/^{bmad_folder}\//, 'bmad/');
581
766
 
582
767
  // Skip obvious placeholder/example paths
583
768
  if (workflowPath && workflowPath.endsWith('.yaml') && !workflowPath.includes('path/to/') && !workflowPath.includes('example')) {
@@ -595,16 +780,25 @@ class WebBundler {
595
780
  removeSkippedWorkflowCommands(agentXml, skippedWorkflows) {
596
781
  let modifiedXml = agentXml;
597
782
 
598
- // For each skipped workflow, find and remove the corresponding <c> command
783
+ // For each skipped workflow, find and remove menu items and commands
599
784
  for (const workflowPath of skippedWorkflows) {
600
- // Match: <c cmd="..." run-workflow="workflowPath">...</c>
601
785
  // Need to escape special regex characters in the path
602
786
  const escapedPath = workflowPath.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`);
603
787
 
604
- // Pattern to match the command line with this workflow
605
- const pattern = new RegExp(`\\s*<c\\s+cmd="[^"]*"\\s+run-workflow="[^"]*${escapedPath}"[^>]*>.*?</c>\\s*`, 'gs');
788
+ // Pattern 1: Remove <item> tags with workflow attribute
789
+ // Match: <item cmd="..." workflow="workflowPath">...</item>
790
+ const itemWorkflowPattern = new RegExp(`\\s*<item\\s+[^>]*workflow="[^"]*${escapedPath}"[^>]*>.*?</item>\\s*`, 'gs');
791
+ modifiedXml = modifiedXml.replace(itemWorkflowPattern, '');
792
+
793
+ // Pattern 2: Remove <item> tags with run-workflow attribute
794
+ // Match: <item cmd="..." run-workflow="workflowPath">...</item>
795
+ const itemRunWorkflowPattern = new RegExp(`\\s*<item\\s+[^>]*run-workflow="[^"]*${escapedPath}"[^>]*>.*?</item>\\s*`, 'gs');
796
+ modifiedXml = modifiedXml.replace(itemRunWorkflowPattern, '');
606
797
 
607
- modifiedXml = modifiedXml.replace(pattern, '');
798
+ // Pattern 3: Remove <c> tags with run-workflow attribute (legacy)
799
+ // Match: <c cmd="..." run-workflow="workflowPath">...</c>
800
+ const cPattern = new RegExp(`\\s*<c\\s+[^>]*run-workflow="[^"]*${escapedPath}"[^>]*>.*?</c>\\s*`, 'gs');
801
+ modifiedXml = modifiedXml.replace(cPattern, '');
608
802
  }
609
803
 
610
804
  return modifiedXml;
@@ -614,6 +808,11 @@ class WebBundler {
614
808
  * Process a file dependency recursively
615
809
  */
616
810
  async processFileDependency(filePath, dependencies, processed, moduleName, warnings = []) {
811
+ // Skip workflow YAML files - they're handled by processWorkflowDependency
812
+ if (filePath.includes('/workflow') && filePath.endsWith('workflow.yaml')) {
813
+ return;
814
+ }
815
+
617
816
  // Skip if already processed
618
817
  if (processed.has(filePath)) {
619
818
  return;
@@ -639,6 +838,13 @@ class WebBundler {
639
838
  return;
640
839
  }
641
840
 
841
+ // Skip if it's a directory
842
+ const stats = await fs.stat(actualPath);
843
+ if (stats.isDirectory()) {
844
+ // Silently skip directories - they're not file dependencies
845
+ return;
846
+ }
847
+
642
848
  // Read file content
643
849
  let content = await fs.readFile(actualPath, 'utf8');
644
850
 
@@ -655,7 +861,8 @@ class WebBundler {
655
861
  const deps = depMatch[1].match(/['"]([^'"]+)['"]/g);
656
862
  if (deps) {
657
863
  for (const dep of deps) {
658
- const depPath = dep.replaceAll(/['"]/g, '').replace(/^{project-root}\//, '');
864
+ let depPath = dep.replaceAll(/['"]/g, '').replace(/^{project-root}\//, '');
865
+ depPath = depPath.replace(/^{bmad_folder}\//, 'bmad/');
659
866
  if (depPath && !processed.has(depPath)) {
660
867
  await this.processFileDependency(depPath, dependencies, processed, moduleName, warnings);
661
868
  }
@@ -668,7 +875,8 @@ class WebBundler {
668
875
  const templates = templateMatch[1].match(/['"]([^'"]+)['"]/g);
669
876
  if (templates) {
670
877
  for (const template of templates) {
671
- const templatePath = template.replaceAll(/['"]/g, '').replace(/^{project-root}\//, '');
878
+ let templatePath = template.replaceAll(/['"]/g, '').replace(/^{project-root}\//, '');
879
+ templatePath = templatePath.replace(/^{bmad_folder}\//, 'bmad/');
672
880
  if (templatePath && !processed.has(templatePath)) {
673
881
  await this.processFileDependency(templatePath, dependencies, processed, moduleName, warnings);
674
882
  }
@@ -856,8 +1064,13 @@ class WebBundler {
856
1064
  bundleYamlContent = yamlContent;
857
1065
  }
858
1066
 
1067
+ // Process {project-root} and {bmad_folder} references in the YAML content
1068
+ bundleYamlContent = this.processProjectRootReferences(bundleYamlContent);
1069
+
859
1070
  // Include the YAML file with only web_bundle content, wrapped in XML
860
- const yamlId = workflowPath.replace(/^{project-root}\//, '');
1071
+ // Process the workflow path to create a clean ID
1072
+ let yamlId = workflowPath.replace(/^{project-root}\//, '');
1073
+ yamlId = yamlId.replace(/^{bmad_folder}\//, 'bmad/');
861
1074
  const wrappedYaml = this.wrapContentInXml(bundleYamlContent, yamlId, 'yaml');
862
1075
  dependencies.set(yamlId, wrappedYaml);
863
1076
 
@@ -874,14 +1087,19 @@ class WebBundler {
874
1087
  const bundleFiles = workflowConfig.web_bundle.web_bundle_files;
875
1088
 
876
1089
  for (const bundleFilePath of bundleFiles) {
877
- if (processed.has(bundleFilePath)) {
1090
+ // Process the file path to create a clean ID for checking if already processed
1091
+ let cleanFilePath = bundleFilePath.replace(/^{project-root}\//, '');
1092
+ cleanFilePath = cleanFilePath.replace(/^{bmad_folder}\//, 'bmad/');
1093
+
1094
+ if (processed.has(cleanFilePath)) {
878
1095
  continue;
879
1096
  }
880
1097
 
881
1098
  const bundleActualPath = this.resolveFilePath(bundleFilePath, moduleName);
882
1099
 
883
1100
  if (!bundleActualPath || !(await fs.pathExists(bundleActualPath))) {
884
- warnings.push(bundleFilePath);
1101
+ // Use the cleaned path in warnings (with {bmad_folder} replaced)
1102
+ warnings.push(cleanFilePath);
885
1103
  continue;
886
1104
  }
887
1105
 
@@ -891,15 +1109,18 @@ class WebBundler {
891
1109
  await this.processWorkflowDependency(bundleFilePath, dependencies, processed, moduleName, warnings);
892
1110
  } else {
893
1111
  // Regular file - process normally
894
- processed.add(bundleFilePath);
1112
+ processed.add(cleanFilePath);
895
1113
 
896
1114
  // Read the file content
897
- const fileContent = await fs.readFile(bundleActualPath, 'utf8');
1115
+ let fileContent = await fs.readFile(bundleActualPath, 'utf8');
898
1116
  const fileExt = path.extname(bundleActualPath).toLowerCase().replace('.', '');
899
1117
 
1118
+ // Process {project-root} references before wrapping
1119
+ fileContent = this.processProjectRootReferences(fileContent);
1120
+
900
1121
  // Wrap in XML with proper escaping
901
- const wrappedContent = this.wrapContentInXml(fileContent, bundleFilePath, fileExt);
902
- dependencies.set(bundleFilePath, wrappedContent);
1122
+ const wrappedContent = this.wrapContentInXml(fileContent, cleanFilePath, fileExt);
1123
+ dependencies.set(cleanFilePath, wrappedContent);
903
1124
  }
904
1125
  }
905
1126
  }
@@ -925,7 +1146,9 @@ class WebBundler {
925
1146
  return;
926
1147
  }
927
1148
 
928
- const fileContent = await fs.readFile(actualPath, 'utf8');
1149
+ let fileContent = await fs.readFile(actualPath, 'utf8');
1150
+ // Process {project-root} and {bmad_folder} references
1151
+ fileContent = this.processProjectRootReferences(fileContent);
929
1152
  const wrappedContent = this.wrapContentInXml(fileContent, coreWorkflowPath, 'xml');
930
1153
  dependencies.set(coreWorkflowPath, wrappedContent);
931
1154
  }
@@ -934,7 +1157,7 @@ class WebBundler {
934
1157
  * Include advanced elicitation files
935
1158
  */
936
1159
  async includeAdvancedElicitationFiles(dependencies, processed, moduleName, warnings = []) {
937
- const elicitationFiles = ['bmad/core/tasks/adv-elicit.xml', 'bmad/core/tasks/adv-elicit-methods.csv'];
1160
+ const elicitationFiles = ['bmad/core/tasks/advanced-elicitation.xml', 'bmad/core/tasks/advanced-elicitation-methods.csv'];
938
1161
 
939
1162
  for (const filePath of elicitationFiles) {
940
1163
  if (processed.has(filePath)) {
@@ -949,7 +1172,9 @@ class WebBundler {
949
1172
  continue;
950
1173
  }
951
1174
 
952
- const fileContent = await fs.readFile(actualPath, 'utf8');
1175
+ let fileContent = await fs.readFile(actualPath, 'utf8');
1176
+ // Process {project-root} and {bmad_folder} references
1177
+ fileContent = this.processProjectRootReferences(fileContent);
953
1178
  const fileExt = path.extname(actualPath).toLowerCase().replace('.', '');
954
1179
  const wrappedContent = this.wrapContentInXml(fileContent, filePath, fileExt);
955
1180
  dependencies.set(filePath, wrappedContent);
@@ -982,6 +1207,8 @@ class WebBundler {
982
1207
  async processWildcardDependency(pattern, dependencies, processed, moduleName, warnings = []) {
983
1208
  // Remove {project-root} prefix
984
1209
  pattern = pattern.replace(/^{project-root}\//, '');
1210
+ // Replace {bmad_folder} with bmad
1211
+ pattern = pattern.replace(/^{bmad_folder}\//, 'bmad/');
985
1212
 
986
1213
  // Get directory and file pattern
987
1214
  const lastSlash = pattern.lastIndexOf('/');
@@ -1049,6 +1276,9 @@ class WebBundler {
1049
1276
  resolveFilePath(filePath, moduleName) {
1050
1277
  // Remove {project-root} prefix
1051
1278
  filePath = filePath.replace(/^{project-root}\//, '');
1279
+ // Replace {bmad_folder} with bmad
1280
+ filePath = filePath.replace(/^{bmad_folder}\//, 'bmad/');
1281
+ filePath = filePath.replace(/^{bmad_folder}$/, 'bmad');
1052
1282
 
1053
1283
  // Check temp directory first for _cfg files
1054
1284
  if (filePath.startsWith('bmad/_cfg/')) {
@@ -1115,13 +1345,15 @@ class WebBundler {
1115
1345
  }
1116
1346
 
1117
1347
  /**
1118
- * Process and remove {project-root} references
1348
+ * Process and remove {project-root} references and replace {bmad_folder} with bmad
1119
1349
  */
1120
1350
  processProjectRootReferences(content) {
1121
1351
  // Remove {project-root}/ prefix (with slash)
1122
1352
  content = content.replaceAll('{project-root}/', '');
1123
1353
  // Also remove {project-root} without slash
1124
1354
  content = content.replaceAll('{project-root}', '');
1355
+ // Replace {bmad_folder} with bmad
1356
+ content = content.replaceAll('{bmad_folder}', 'bmad');
1125
1357
  return content;
1126
1358
  }
1127
1359
 
@@ -1425,6 +1657,63 @@ class WebBundler {
1425
1657
  }
1426
1658
  }
1427
1659
 
1660
+ /**
1661
+ * Format XML content for readability
1662
+ */
1663
+ formatXml(xml) {
1664
+ const TAB = ' '; // 2 spaces
1665
+ let result = '';
1666
+ let depth = 0;
1667
+
1668
+ // Split by tags while preserving them
1669
+ const parts = xml.split(/(<[^>]+>)/g);
1670
+
1671
+ for (let i = 0; i < parts.length; i++) {
1672
+ const part = parts[i];
1673
+ if (!part) continue;
1674
+
1675
+ if (part.startsWith('<?xml')) {
1676
+ // XML declaration - no indent
1677
+ result += part + '\n';
1678
+ } else if (part.startsWith('<!--')) {
1679
+ // Comment
1680
+ result += TAB.repeat(depth) + part + '\n';
1681
+ } else if (part.startsWith('</')) {
1682
+ // Closing tag - unindent first
1683
+ depth = Math.max(0, depth - 1);
1684
+ result += TAB.repeat(depth) + part + '\n';
1685
+ } else if (part.startsWith('<')) {
1686
+ // Opening or self-closing tag
1687
+ const isSelfClosing = part.endsWith('/>');
1688
+ const tagName = part.match(/<(\w+)/)?.[1];
1689
+
1690
+ // Check if next part is simple text content
1691
+ const nextPart = parts[i + 1];
1692
+ const hasSimpleContent = nextPart && !nextPart.startsWith('<') && nextPart.trim().length > 0 && nextPart.trim().length <= 100;
1693
+
1694
+ if (hasSimpleContent && parts[i + 2] && parts[i + 2] === `</${tagName}>`) {
1695
+ // Simple tag with inline content: <tag>content</tag>
1696
+ result += TAB.repeat(depth) + part + nextPart.trim() + parts[i + 2] + '\n';
1697
+ i += 2; // Skip content and closing tag
1698
+ } else {
1699
+ // Multi-line tag
1700
+ result += TAB.repeat(depth) + part + '\n';
1701
+ if (!isSelfClosing) {
1702
+ depth++;
1703
+ }
1704
+ }
1705
+ } else {
1706
+ // Text content between tags
1707
+ const trimmed = part.trim();
1708
+ if (trimmed) {
1709
+ result += TAB.repeat(depth) + trimmed + '\n';
1710
+ }
1711
+ }
1712
+ }
1713
+
1714
+ return result;
1715
+ }
1716
+
1428
1717
  /**
1429
1718
  * Display summary statistics
1430
1719
  */
@@ -1436,7 +1725,9 @@ class WebBundler {
1436
1725
  console.log(chalk.bold('Bundle Statistics:'));
1437
1726
  console.log(` Total agents found: ${this.stats.totalAgents}`);
1438
1727
  console.log(` Successfully bundled: ${chalk.green(this.stats.bundledAgents)}`);
1439
- console.log(` Skipped (bundle=false): ${chalk.gray(this.stats.skippedAgents)}`);
1728
+ if (this.stats.skippedAgents > 0) {
1729
+ console.log(` Skipped (webskip/bundle): ${chalk.gray(this.stats.skippedAgents)}`);
1730
+ }
1440
1731
 
1441
1732
  if (this.stats.failedAgents > 0) {
1442
1733
  console.log(` Failed to bundle: ${chalk.red(this.stats.failedAgents)}`);
@@ -1447,7 +1738,10 @@ class WebBundler {
1447
1738
  }
1448
1739
 
1449
1740
  // Display warnings summary
1450
- if (this.stats.warnings.length > 0) {
1741
+ // Check if there are actually any warnings with content
1742
+ const hasActualWarnings = this.stats.warnings.some((w) => w && w.warnings && w.warnings.length > 0);
1743
+
1744
+ if (hasActualWarnings) {
1451
1745
  console.log(chalk.yellow('\n⚠ Missing Dependencies by Agent:'));
1452
1746
 
1453
1747
  // Group and display warnings by agent
@@ -1461,6 +1755,8 @@ class WebBundler {
1461
1755
  }
1462
1756
  }
1463
1757
  }
1758
+ } else {
1759
+ console.log(chalk.green('\n✓ No missing dependencies'));
1464
1760
  }
1465
1761
 
1466
1762
  // Final status
@@ -56,12 +56,9 @@ module.exports = {
56
56
  // Check if installation succeeded
57
57
  if (result && result.success) {
58
58
  console.log(chalk.green('\n✨ Installation complete!'));
59
- console.log(
60
- chalk.cyan('BMAD Core and Selected Modules have been installed to:'),
61
- chalk.bold(result.path || path.resolve(config.directory, 'bmad')),
62
- );
59
+ console.log(chalk.cyan('BMAD Core and Selected Modules have been installed to:'), chalk.bold(result.path));
63
60
  console.log(chalk.yellow('\nThank you for helping test the early release version of the new BMad Core and BMad Method!'));
64
- console.log(chalk.cyan('Check docs/alpha-release-notes.md in this repository for important information.'));
61
+ console.log(chalk.cyan('Stable Beta coming soon - please read the full readme.md and linked documentation to get started!'));
65
62
  process.exit(0);
66
63
  }
67
64
  } catch (error) {