bmad-method 6.0.0-alpha.15 → 6.0.0-alpha.16

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 (392) hide show
  1. package/.coderabbit.yaml +1 -1
  2. package/CHANGELOG.md +32 -1
  3. package/docs/agent-customization-guide.md +7 -7
  4. package/docs/ide-info/crush.md +1 -1
  5. package/docs/ide-info/cursor.md +7 -7
  6. package/docs/ide-info/iflow.md +3 -3
  7. package/docs/ide-info/opencode.md +1 -1
  8. package/docs/installers-bundlers/ide-injections.md +2 -2
  9. package/docs/installers-bundlers/installers-modules-platforms-reference.md +23 -23
  10. package/docs/v4-to-v6-upgrade.md +10 -10
  11. package/docs/web-bundles-gemini-gpt-guide.md +1 -1
  12. package/package.json +1 -1
  13. package/src/core/agents/bmad-master.agent.yaml +5 -5
  14. package/src/core/agents/bmad-web-orchestrator.agent.xml +6 -6
  15. package/src/core/module.yaml +0 -7
  16. package/src/core/resources/excalidraw/README.md +4 -4
  17. package/src/core/tasks/advanced-elicitation.xml +3 -3
  18. package/src/core/tasks/index-docs.xml +1 -1
  19. package/src/core/tasks/validate-workflow.xml +1 -1
  20. package/src/core/tasks/workflow.xml +4 -4
  21. package/src/core/tools/shard-doc.xml +1 -1
  22. package/src/core/workflows/brainstorming/workflow.md +2 -2
  23. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +2 -2
  24. package/src/core/workflows/party-mode/workflow.md +4 -4
  25. package/src/modules/bmb/README.md +2 -2
  26. package/src/modules/bmb/agents/bmad-builder.agent.yaml +15 -15
  27. package/src/modules/bmb/docs/agents/agent-compilation.md +2 -2
  28. package/src/modules/bmb/docs/agents/agent-menu-patterns.md +22 -22
  29. package/src/modules/bmb/docs/agents/expert-agent-architecture.md +1 -1
  30. package/src/modules/bmb/docs/agents/index.md +1 -1
  31. package/src/modules/bmb/docs/agents/module-agent-architecture.md +50 -51
  32. package/src/modules/bmb/docs/agents/understanding-agent-types.md +3 -3
  33. package/src/modules/bmb/docs/workflows/architecture.md +1 -1
  34. package/src/modules/bmb/docs/workflows/common-workflow-tools.csv +3 -3
  35. package/src/modules/bmb/docs/workflows/templates/step-01-init-continuable-template.md +1 -1
  36. package/src/modules/bmb/docs/workflows/templates/step-1b-template.md +1 -1
  37. package/src/modules/bmb/docs/workflows/templates/step-file.md +3 -3
  38. package/src/modules/bmb/docs/workflows/templates/step-template.md +3 -3
  39. package/src/modules/bmb/docs/workflows/templates/workflow-template.md +2 -2
  40. package/src/modules/bmb/docs/workflows/templates/workflow.md +1 -1
  41. package/src/modules/bmb/module.yaml +0 -1
  42. package/src/modules/bmb/reference/agents/module-examples/README.md +1 -1
  43. package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +5 -5
  44. package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +7 -7
  45. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +1 -1
  46. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +1 -1
  47. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +3 -3
  48. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +3 -3
  49. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +5 -5
  50. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +5 -5
  51. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +5 -5
  52. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +2 -2
  53. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +1 -1
  54. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +6 -6
  55. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +7 -7
  56. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +1 -1
  57. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +1 -1
  58. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +3 -3
  59. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +3 -3
  60. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +5 -5
  61. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +5 -5
  62. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +5 -5
  63. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +2 -2
  64. package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +5 -5
  65. package/src/modules/bmb/workflows/create-agent/steps/step-01-brainstorm.md +4 -4
  66. package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +4 -4
  67. package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +4 -4
  68. package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +7 -7
  69. package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +3 -3
  70. package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +4 -4
  71. package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +4 -4
  72. package/src/modules/bmb/workflows/create-agent/steps/step-08-setup.md +3 -3
  73. package/src/modules/bmb/workflows/create-agent/steps/step-09-customize.md +4 -4
  74. package/src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md +3 -3
  75. package/src/modules/bmb/workflows/create-agent/steps/step-11-celebrate.md +3 -3
  76. package/src/modules/bmb/workflows/create-agent/workflow.md +13 -13
  77. package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +2 -2
  78. package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +4 -4
  79. package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +4 -4
  80. package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +3 -3
  81. package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +4 -4
  82. package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +6 -6
  83. package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +3 -3
  84. package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +4 -4
  85. package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +4 -4
  86. package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +3 -3
  87. package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +4 -4
  88. package/src/modules/bmb/workflows/create-module/templates/agent.template.md +7 -7
  89. package/src/modules/bmb/workflows/create-module/templates/module.template.yaml +1 -1
  90. package/src/modules/bmb/workflows/create-module/workflow.md +2 -2
  91. package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +2 -2
  92. package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +5 -5
  93. package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +4 -4
  94. package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +3 -3
  95. package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +3 -3
  96. package/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md +10 -10
  97. package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +12 -12
  98. package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +3 -3
  99. package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +1 -1
  100. package/src/modules/bmb/workflows/create-workflow/workflow.md +1 -1
  101. package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +3 -3
  102. package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +13 -13
  103. package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +5 -5
  104. package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +3 -3
  105. package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +5 -5
  106. package/src/modules/bmb/workflows/edit-agent/workflow.md +1 -1
  107. package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +4 -4
  108. package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +3 -3
  109. package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +6 -6
  110. package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +3 -3
  111. package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +3 -3
  112. package/src/modules/bmb/workflows/edit-workflow/workflow.md +1 -1
  113. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +3 -3
  114. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +5 -5
  115. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +6 -6
  116. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +4 -4
  117. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +4 -4
  118. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +4 -4
  119. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +4 -4
  120. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +3 -3
  121. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +1 -1
  122. package/src/modules/bmb/workflows-legacy/edit-module/README.md +2 -2
  123. package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +2 -2
  124. package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +4 -4
  125. package/src/modules/bmb/workflows-legacy/edit-module/workflow.yaml +10 -10
  126. package/src/modules/bmb/workflows-legacy/module-brief/README.md +2 -2
  127. package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +2 -2
  128. package/src/modules/bmb/workflows-legacy/module-brief/workflow.yaml +4 -4
  129. package/src/modules/bmgd/README.md +1 -1
  130. package/src/modules/bmgd/agents/game-architect.agent.yaml +6 -6
  131. package/src/modules/bmgd/agents/game-designer.agent.yaml +7 -7
  132. package/src/modules/bmgd/agents/game-dev.agent.yaml +9 -9
  133. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +21 -21
  134. package/src/modules/bmgd/module.yaml +0 -1
  135. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +1 -1
  136. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +9 -9
  137. package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +1 -1
  138. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +8 -8
  139. package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +4 -4
  140. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +30 -30
  141. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +1 -1
  142. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +5 -5
  143. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +1 -1
  144. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +2 -2
  145. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +2 -2
  146. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +2 -2
  147. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +1 -1
  148. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +2 -2
  149. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +2 -2
  150. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +2 -2
  151. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +2 -2
  152. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +2 -2
  153. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +2 -2
  154. package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +1 -1
  155. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +2 -2
  156. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +2 -2
  157. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +2 -2
  158. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +3 -3
  159. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +2 -2
  160. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +2 -2
  161. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +1 -1
  162. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +1 -1
  163. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +2 -2
  164. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +2 -2
  165. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +1 -1
  166. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +2 -2
  167. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +1 -1
  168. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +2 -2
  169. package/src/modules/bmm/agents/analyst.agent.yaml +8 -8
  170. package/src/modules/bmm/agents/architect.agent.yaml +8 -8
  171. package/src/modules/bmm/agents/dev.agent.yaml +3 -3
  172. package/src/modules/bmm/agents/pm.agent.yaml +8 -8
  173. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +5 -5
  174. package/src/modules/bmm/agents/sm.agent.yaml +9 -9
  175. package/src/modules/bmm/agents/tea.agent.yaml +13 -13
  176. package/src/modules/bmm/agents/tech-writer.agent.yaml +9 -9
  177. package/src/modules/bmm/agents/ux-designer.agent.yaml +6 -6
  178. package/src/modules/bmm/docs/README.md +0 -25
  179. package/src/modules/bmm/docs/agents-guide.md +4 -4
  180. package/src/modules/bmm/docs/brownfield-guide.md +4 -4
  181. package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
  182. package/src/modules/bmm/docs/faq.md +1 -1
  183. package/src/modules/bmm/docs/party-mode.md +3 -3
  184. package/src/modules/bmm/docs/quick-start.md +1 -1
  185. package/src/modules/bmm/docs/test-architecture.md +3 -3
  186. package/src/modules/bmm/docs/workflow-document-project-reference.md +1 -1
  187. package/src/modules/bmm/docs/workflows-implementation.md +0 -100
  188. package/src/modules/bmm/module.yaml +1 -2
  189. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-01-init.md +1 -1
  190. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-01b-continue.md +1 -1
  191. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-02-vision.md +3 -3
  192. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-03-users.md +3 -3
  193. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-04-metrics.md +3 -3
  194. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-05-scope.md +3 -3
  195. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-06-complete.md +5 -3
  196. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.md +2 -2
  197. package/src/modules/bmm/workflows/1-analysis/research/workflow.md +2 -2
  198. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +4 -4
  199. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +4 -4
  200. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +4 -4
  201. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +4 -4
  202. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +4 -4
  203. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +4 -4
  204. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +4 -4
  205. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +4 -4
  206. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +4 -4
  207. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +4 -4
  208. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +4 -4
  209. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +4 -4
  210. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +2 -2
  211. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +1 -1
  212. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +1 -1
  213. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +3 -3
  214. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +7 -7
  215. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +8 -8
  216. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +12 -12
  217. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +12 -12
  218. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +10 -10
  219. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +7 -7
  220. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +9 -9
  221. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +9 -9
  222. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +1 -1
  223. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +1 -1
  224. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-02-context.md +4 -4
  225. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-03-starter.md +4 -4
  226. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-04-decisions.md +4 -4
  227. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-05-patterns.md +4 -4
  228. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-06-structure.md +4 -4
  229. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-07-validation.md +4 -4
  230. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-08-complete.md +1 -1
  231. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.md +2 -2
  232. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +1 -1
  233. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +1 -1
  234. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +1 -1
  235. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +1 -1
  236. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +2 -2
  237. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-01-document-discovery.md +1 -1
  238. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-02-prd-analysis.md +1 -1
  239. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-03-epic-coverage-validation.md +6 -6
  240. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-04-ux-alignment.md +1 -1
  241. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-05-epic-quality-review.md +2 -2
  242. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-06-final-assessment.md +1 -1
  243. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.md +1 -1
  244. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +1 -1
  245. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +2 -2
  246. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
  247. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +2 -2
  248. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +2 -2
  249. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +2 -2
  250. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +2 -2
  251. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +2 -2
  252. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +1 -1
  253. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +2 -2
  254. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +2 -2
  255. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +3 -3
  256. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +2 -2
  257. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +2 -2
  258. package/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +2 -2
  259. package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +2 -2
  260. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +5 -5
  261. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml +7 -7
  262. package/src/modules/bmm/workflows/diagrams/create-dataflow/instructions.md +1 -1
  263. package/src/modules/bmm/workflows/diagrams/create-dataflow/workflow.yaml +5 -5
  264. package/src/modules/bmm/workflows/diagrams/create-diagram/instructions.md +2 -2
  265. package/src/modules/bmm/workflows/diagrams/create-diagram/workflow.yaml +5 -5
  266. package/src/modules/bmm/workflows/diagrams/create-flowchart/instructions.md +2 -2
  267. package/src/modules/bmm/workflows/diagrams/create-flowchart/workflow.yaml +5 -5
  268. package/src/modules/bmm/workflows/diagrams/create-wireframe/instructions.md +1 -1
  269. package/src/modules/bmm/workflows/diagrams/create-wireframe/workflow.yaml +5 -5
  270. package/src/modules/bmm/workflows/document-project/instructions.md +5 -5
  271. package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -2
  272. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
  273. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
  274. package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +2 -2
  275. package/src/modules/bmm/workflows/generate-project-context/workflow.md +2 -2
  276. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +2 -2
  277. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -2
  278. package/src/modules/bmm/workflows/testarch/automate/instructions.md +2 -2
  279. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -2
  280. package/src/modules/bmm/workflows/testarch/ci/instructions.md +1 -1
  281. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -2
  282. package/src/modules/bmm/workflows/testarch/framework/instructions.md +3 -3
  283. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -2
  284. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
  285. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -2
  286. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +3 -3
  287. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +1 -1
  288. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +2 -2
  289. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +1 -1
  290. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -2
  291. package/src/modules/bmm/workflows/testarch/trace/instructions.md +6 -6
  292. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -2
  293. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +1 -1
  294. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +4 -4
  295. package/src/modules/bmm/workflows/workflow-status/instructions.md +3 -3
  296. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
  297. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +2 -2
  298. package/src/modules/cis/README.md +1 -1
  299. package/src/modules/cis/agents/README.md +1 -1
  300. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +4 -4
  301. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +4 -4
  302. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +4 -4
  303. package/src/modules/cis/agents/innovation-strategist.agent.yaml +4 -4
  304. package/src/modules/cis/agents/presentation-master.agent.yaml +3 -3
  305. package/src/modules/cis/agents/storyteller.agent.yaml +4 -4
  306. package/src/modules/cis/module.yaml +0 -1
  307. package/src/modules/cis/workflows/README.md +1 -1
  308. package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
  309. package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -7
  310. package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
  311. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -7
  312. package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
  313. package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -7
  314. package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
  315. package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -7
  316. package/src/utility/models/agent-activation-ide.xml +3 -3
  317. package/src/utility/models/agent-activation-web.xml +3 -3
  318. package/src/utility/models/fragments/activation-steps.xml +1 -1
  319. package/src/utility/models/fragments/handler-validate-workflow.xml +1 -1
  320. package/src/utility/models/fragments/handler-workflow.xml +1 -1
  321. package/src/utility/models/fragments/web-bundle-activation-steps.xml +3 -3
  322. package/tools/cli/README.md +19 -19
  323. package/tools/cli/bundlers/web-bundler.js +23 -33
  324. package/tools/cli/commands/build.js +5 -5
  325. package/tools/cli/installers/lib/core/config-collector.js +19 -14
  326. package/tools/cli/installers/lib/core/custom-module-cache.js +18 -6
  327. package/tools/cli/installers/lib/core/installer.js +104 -109
  328. package/tools/cli/installers/lib/core/manifest-generator.js +1 -1
  329. package/tools/cli/installers/lib/custom/handler.js +1 -4
  330. package/tools/cli/installers/lib/ide/_base-ide.js +14 -14
  331. package/tools/cli/installers/lib/ide/gemini.js +4 -4
  332. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +2 -2
  333. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +3 -3
  334. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +1 -1
  335. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +3 -3
  336. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +3 -3
  337. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +1 -1
  338. package/tools/cli/installers/lib/modules/manager.js +24 -24
  339. package/tools/cli/lib/agent/compiler.js +3 -3
  340. package/tools/cli/lib/agent/installer.js +2 -2
  341. package/tools/cli/lib/ui.js +234 -238
  342. package/tools/cli/regenerate-manifests.js +3 -4
  343. package/tools/migrate-custom-module-paths.js +1 -1
  344. package/example-custom-content/README.md +0 -8
  345. package/example-custom-content/agents/commit-poet/commit-poet.agent.yaml +0 -129
  346. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/instructions.md +0 -70
  347. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +0 -111
  348. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +0 -70
  349. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +0 -114
  350. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +0 -134
  351. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +0 -161
  352. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +0 -103
  353. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/memories.md +0 -17
  354. package/example-custom-content/agents/toolsmith/toolsmith.agent.yaml +0 -109
  355. package/example-custom-content/module.yaml +0 -4
  356. package/example-custom-content/workflows/quiz-master/steps/step-01-init.md +0 -168
  357. package/example-custom-content/workflows/quiz-master/steps/step-02-q1.md +0 -155
  358. package/example-custom-content/workflows/quiz-master/steps/step-03-q2.md +0 -89
  359. package/example-custom-content/workflows/quiz-master/steps/step-04-q3.md +0 -36
  360. package/example-custom-content/workflows/quiz-master/steps/step-05-q4.md +0 -36
  361. package/example-custom-content/workflows/quiz-master/steps/step-06-q5.md +0 -36
  362. package/example-custom-content/workflows/quiz-master/steps/step-07-q6.md +0 -36
  363. package/example-custom-content/workflows/quiz-master/steps/step-08-q7.md +0 -36
  364. package/example-custom-content/workflows/quiz-master/steps/step-09-q8.md +0 -36
  365. package/example-custom-content/workflows/quiz-master/steps/step-10-q9.md +0 -36
  366. package/example-custom-content/workflows/quiz-master/steps/step-11-q10.md +0 -36
  367. package/example-custom-content/workflows/quiz-master/steps/step-12-results.md +0 -150
  368. package/example-custom-content/workflows/quiz-master/templates/csv-headers.template +0 -1
  369. package/example-custom-content/workflows/quiz-master/workflow.md +0 -54
  370. package/example-custom-content/workflows/wassup/workflow.md +0 -26
  371. package/example-custom-module/mwm/README.md +0 -9
  372. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach-sidecar/cognitive-distortions.md +0 -47
  373. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach-sidecar/thought-records.md +0 -17
  374. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach.agent.yaml +0 -151
  375. package/example-custom-module/mwm/agents/crisis-navigator.agent.yaml +0 -138
  376. package/example-custom-module/mwm/agents/meditation-guide.agent.yaml +0 -138
  377. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/insights.md +0 -13
  378. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/instructions.md +0 -30
  379. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/memories.md +0 -13
  380. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/patterns.md +0 -17
  381. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion.agent.yaml +0 -125
  382. package/example-custom-module/mwm/module.yaml +0 -28
  383. package/example-custom-module/mwm/workflows/cbt-thought-record/README.md +0 -31
  384. package/example-custom-module/mwm/workflows/cbt-thought-record/workflow.md +0 -45
  385. package/example-custom-module/mwm/workflows/crisis-support/README.md +0 -31
  386. package/example-custom-module/mwm/workflows/crisis-support/workflow.md +0 -45
  387. package/example-custom-module/mwm/workflows/daily-checkin/README.md +0 -32
  388. package/example-custom-module/mwm/workflows/daily-checkin/workflow.md +0 -45
  389. package/example-custom-module/mwm/workflows/guided-meditation/README.md +0 -31
  390. package/example-custom-module/mwm/workflows/guided-meditation/workflow.md +0 -45
  391. package/example-custom-module/mwm/workflows/wellness-journal/README.md +0 -31
  392. package/example-custom-module/mwm/workflows/wellness-journal/workflow.md +0 -45
@@ -4,7 +4,7 @@ description: "Apply systematic problem-solving methodologies to crack complex ch
4
4
  author: "BMad"
5
5
 
6
6
  # Critical variables load from config_source
7
- config_source: "{project-root}/{bmad_folder}/cis/config.yaml"
7
+ config_source: "{project-root}/.bmad/cis/config.yaml"
8
8
  output_folder: "{config_source}:output_folder"
9
9
  user_name: "{config_source}:user_name"
10
10
  communication_language: "{config_source}:communication_language"
@@ -14,7 +14,7 @@ date: system-generated
14
14
  # Example: data="{path}/problem-brief.md" provides context
15
15
 
16
16
  # Module path and component files
17
- installed_path: "{project-root}/{bmad_folder}/cis/workflows/problem-solving"
17
+ installed_path: "{project-root}/.bmad/cis/workflows/problem-solving"
18
18
  template: "{installed_path}/template.md"
19
19
  instructions: "{installed_path}/instructions.md"
20
20
 
@@ -30,9 +30,9 @@ web_bundle:
30
30
  name: "problem-solving"
31
31
  description: "Apply systematic problem-solving methodologies to crack complex challenges. This workflow guides through problem diagnosis, root cause analysis, creative solution generation, evaluation, and implementation planning using proven frameworks."
32
32
  author: "BMad"
33
- instructions: "{bmad_folder}/cis/workflows/problem-solving/instructions.md"
34
- template: "{bmad_folder}/cis/workflows/problem-solving/template.md"
33
+ instructions: ".bmad/cis/workflows/problem-solving/instructions.md"
34
+ template: ".bmad/cis/workflows/problem-solving/template.md"
35
35
  web_bundle_files:
36
- - "{bmad_folder}/cis/workflows/problem-solving/instructions.md"
37
- - "{bmad_folder}/cis/workflows/problem-solving/template.md"
38
- - "{bmad_folder}/cis/workflows/problem-solving/solving-methods.csv"
36
+ - ".bmad/cis/workflows/problem-solving/instructions.md"
37
+ - ".bmad/cis/workflows/problem-solving/template.md"
38
+ - ".bmad/cis/workflows/problem-solving/solving-methods.csv"
@@ -3,8 +3,8 @@
3
3
  ## Workflow
4
4
 
5
5
  <workflow>
6
- <critical>The workflow execution engine is governed by: {project_root}/{bmad_folder}/core/tasks/workflow.xml</critical>
7
- <critical>You MUST have already loaded and processed: {project_root}/{bmad_folder}/cis/workflows/storytelling/workflow.yaml</critical>
6
+ <critical>The workflow execution engine is governed by: {project_root}/.bmad/core/tasks/workflow.xml</critical>
7
+ <critical>You MUST have already loaded and processed: {project_root}/.bmad/cis/workflows/storytelling/workflow.yaml</critical>
8
8
  <critical>Communicate all responses in {communication_language}</critical>
9
9
  <critical>⚠️ ABSOLUTELY NO TIME ESTIMATES - NEVER mention hours, days, weeks, months, or ANY time-based predictions. AI has fundamentally changed development speed - what once took teams weeks/months can now be done by one person in hours. DO NOT give ANY time estimates whatsoever.</critical>
10
10
  <critical>⚠️ CHECKPOINT PROTOCOL: After EVERY <template-output> tag, you MUST follow workflow.xml substep 2c: SAVE content to file immediately → SHOW checkpoint separator (━━━━━━━━━━━━━━━━━━━━━━━) → DISPLAY generated content → PRESENT options [a]Advanced Elicitation/[c]Continue/[p]Party-Mode/[y]YOLO → WAIT for user response. Never batch saves or skip checkpoints.</critical>
@@ -4,7 +4,7 @@ description: "Craft compelling narratives using proven story frameworks and tech
4
4
  author: "BMad"
5
5
 
6
6
  # Critical variables load from config_source
7
- config_source: "{project-root}/{bmad_folder}/cis/config.yaml"
7
+ config_source: "{project-root}/.bmad/cis/config.yaml"
8
8
  output_folder: "{config_source}:output_folder"
9
9
  user_name: "{config_source}:user_name"
10
10
  communication_language: "{config_source}:communication_language"
@@ -14,7 +14,7 @@ date: system-generated
14
14
  # Example: data="{path}/brand-info.md" provides brand context
15
15
 
16
16
  # Module path and component files
17
- installed_path: "{project-root}/{bmad_folder}/cis/workflows/storytelling"
17
+ installed_path: "{project-root}/.bmad/cis/workflows/storytelling"
18
18
  template: "{installed_path}/template.md"
19
19
  instructions: "{installed_path}/instructions.md"
20
20
 
@@ -30,9 +30,9 @@ web_bundle:
30
30
  name: "storytelling"
31
31
  description: "Craft compelling narratives using proven story frameworks and techniques. This workflow guides users through structured narrative development, applying appropriate story frameworks to create emotionally resonant and engaging stories for any purpose."
32
32
  author: "BMad"
33
- instructions: "{bmad_folder}/cis/workflows/storytelling/instructions.md"
34
- template: "{bmad_folder}/cis/workflows/storytelling/template.md"
33
+ instructions: ".bmad/cis/workflows/storytelling/instructions.md"
34
+ template: ".bmad/cis/workflows/storytelling/template.md"
35
35
  web_bundle_files:
36
- - "{bmad_folder}/cis/workflows/storytelling/instructions.md"
37
- - "{bmad_folder}/cis/workflows/storytelling/template.md"
38
- - "{bmad_folder}/cis/workflows/storytelling/story-types.csv"
36
+ - ".bmad/cis/workflows/storytelling/instructions.md"
37
+ - ".bmad/cis/workflows/storytelling/template.md"
38
+ - ".bmad/cis/workflows/storytelling/story-types.csv"
@@ -1,7 +1,7 @@
1
1
  <activation critical="MANDATORY">
2
2
  <init>
3
3
  <step n="1">Load persona from this current file containing this activation you are reading now</step>
4
- <step n="2">Override with {project-root}/{bmad_folder}/_cfg/agents/{agent-filename} if exists (replace, not merge)</step>
4
+ <step n="2">Override with {project-root}/.bmad/_cfg/agents/{agent-filename} if exists (replace, not merge)</step>
5
5
  <step n="3">Execute critical-actions section if present in current agent XML</step>
6
6
  <step n="4">Show greeting + numbered list of ALL commands IN ORDER from current agent's cmds section</step>
7
7
  <step n="5">CRITICAL HALT. AWAIT user input. NEVER continue without it.</step>
@@ -12,7 +12,7 @@
12
12
  <handlers>
13
13
  <handler type="progressive-workflow">
14
14
  When command has: run-progressive-workflow="path/to/x.yaml" You MUST:
15
- 1. CRITICAL: Always LOAD {project-root}/{bmad_folder}/core/tasks/workflow.xml
15
+ 1. CRITICAL: Always LOAD {project-root}/.bmad/core/tasks/workflow.xml
16
16
  2. READ its entire contents - the is the CORE OS for EXECUTING workflows
17
17
  3. Pass the yaml path as 'workflow-config' parameter to those instructions
18
18
  4. Follow workflow.xml instructions EXACTLY as written
@@ -20,7 +20,7 @@
20
20
  </handler>
21
21
  <handler type="validate-workflow">
22
22
  When command has: validate-workflow="path/to/workflow.yaml" You MUST:
23
- 1. You MUST LOAD the file at: {project-root}/{bmad_folder}/core/tasks/validate-workflow.xml
23
+ 1. You MUST LOAD the file at: {project-root}/.bmad/core/tasks/validate-workflow.xml
24
24
  2. READ its entire contents and EXECUTE all instructions in that file
25
25
  3. Pass the workflow, and also check the workflow location for a checklist.md to pass as the checklist
26
26
  4. The workflow should try to identify the file to validate based on checklist context or else you will ask the user to specify
@@ -7,14 +7,14 @@
7
7
  <bundled-files critical="MANDATORY">
8
8
  <access-method>
9
9
  All dependencies are bundled within this XML file as &lt;file&gt; elements with CDATA content.
10
- When you need to access a file path like "{bmad_folder}/core/tasks/workflow.xml":
11
- 1. Find the &lt;file id="{bmad_folder}/core/tasks/workflow.xml"&gt; element in this document
10
+ When you need to access a file path like ".bmad/core/tasks/workflow.xml":
11
+ 1. Find the &lt;file id=".bmad/core/tasks/workflow.xml"&gt; element in this document
12
12
  2. Extract the content from within the CDATA section
13
13
  3. Use that content as if you read it from the filesystem
14
14
  </access-method>
15
15
  <rules>
16
16
  <rule>NEVER attempt to read files from filesystem - all files are bundled in this XML</rule>
17
- <rule>File paths starting with "{bmad_folder}/" or "{project-root}/{bmad_folder}/" refer to &lt;file id="..."&gt; elements</rule>
17
+ <rule>File paths starting with ".bmad/" or "{project-root}/.bmad/" refer to &lt;file id="..."&gt; elements</rule>
18
18
  <rule>When instructions reference a file path, locate the corresponding &lt;file&gt; element by matching the id attribute</rule>
19
19
  <rule>YAML files are bundled with only their web_bundle section content (flattened to root level)</rule>
20
20
  </rules>
@@ -1,6 +1,6 @@
1
1
  <step n="1">Load persona from this current agent file (already in context)</step>
2
2
  <step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
3
- - Load and read {project-root}/{bmad_folder}/{{module}}/config.yaml NOW
3
+ - Load and read {project-root}/.bmad/{{module}}/config.yaml NOW
4
4
  - Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
5
5
  - VERIFY: If config not loaded, STOP and report error to user
6
6
  - DO NOT PROCEED to step 3 until config is successfully loaded and variables stored</step>
@@ -1,6 +1,6 @@
1
1
  <handler type="validate-workflow">
2
2
  When command has: validate-workflow="path/to/workflow.yaml"
3
- 1. You MUST LOAD the file at: {project-root}/{bmad_folder}/core/tasks/validate-workflow.xml
3
+ 1. You MUST LOAD the file at: {project-root}/.bmad/core/tasks/validate-workflow.xml
4
4
  2. READ its entire contents and EXECUTE all instructions in that file
5
5
  3. Pass the workflow, and also check the workflow yaml validation property to find and load the validation schema to pass as the checklist
6
6
  4. The workflow should try to identify the file to validate based on checklist context or else you will ask the user to specify
@@ -1,6 +1,6 @@
1
1
  <handler type="workflow">
2
2
  When menu item has: workflow="path/to/workflow.yaml"
3
- 1. CRITICAL: Always LOAD {project-root}/{bmad_folder}/core/tasks/workflow.xml
3
+ 1. CRITICAL: Always LOAD {project-root}/.bmad/core/tasks/workflow.xml
4
4
  2. Read the complete file - this is the CORE OS for executing BMAD workflows
5
5
  3. Pass the yaml path as 'workflow-config' parameter to those instructions
6
6
  4. Execute workflow.xml instructions precisely following all steps
@@ -10,14 +10,14 @@
10
10
  <bundled-files critical="MANDATORY">
11
11
  <access-method>
12
12
  All dependencies are bundled within this XML file as &lt;file&gt; elements with CDATA content.
13
- When you need to access a file path like "{bmad_folder}/core/tasks/workflow.xml":
14
- 1. Find the &lt;file id="{bmad_folder}/core/tasks/workflow.xml"&gt; element in this document
13
+ When you need to access a file path like ".bmad/core/tasks/workflow.xml":
14
+ 1. Find the &lt;file id=".bmad/core/tasks/workflow.xml"&gt; element in this document
15
15
  2. Extract the content from within the CDATA section
16
16
  3. Use that content as if you read it from the filesystem
17
17
  </access-method>
18
18
  <rules>
19
19
  <rule>NEVER attempt to read files from filesystem - all files are bundled in this XML</rule>
20
- <rule>File paths starting with "{bmad_folder}/" refer to &lt;file id="..."&gt; elements</rule>
20
+ <rule>File paths starting with ".bmad/" refer to &lt;file id="..."&gt; elements</rule>
21
21
  <rule>When instructions reference a file path, locate the corresponding &lt;file&gt; element by matching the id attribute</rule>
22
22
  <rule>YAML files are bundled with only their web_bundle section content (flattened to root level)</rule>
23
23
  </rules>
@@ -105,7 +105,7 @@ The installer is a multi-stage system that handles agent compilation, IDE integr
105
105
  - Resolve module dependencies (4-pass system)
106
106
 
107
107
  3. Install Core + Modules
108
- - Copy files to {target}/{bmad_folder}/
108
+ - Copy files to {target}/.bmad/
109
109
  - Compile agents: YAML → Markdown/XML (forWebBundle: false)
110
110
  - Merge customize.yaml files if they exist
111
111
  - Inject activation blocks based on agent capabilities
@@ -131,7 +131,7 @@ The installer is a multi-stage system that handles agent compilation, IDE integr
131
131
 
132
132
  ```
133
133
  {target}/
134
- ├── {bmad_folder}/
134
+ ├── .bmad/
135
135
  │ ├── core/ # Always installed
136
136
  │ ├── {module}/ # Selected modules
137
137
  │ │ ├── agents/ # Compiled .md files
@@ -239,7 +239,7 @@ Platform specifics are **IDE+module combination hooks** that execute custom logi
239
239
 
240
240
  ### Manifest System
241
241
 
242
- The installer generates **5 manifest files** in `{target}/{bmad_folder}/_cfg/`:
242
+ The installer generates **5 manifest files** in `{target}/.bmad/_cfg/`:
243
243
 
244
244
  **1. Installation Manifest** (`manifest.yaml`)
245
245
 
@@ -428,7 +428,7 @@ agent:
428
428
  identity: 'You are an experienced PM...'
429
429
  menu:
430
430
  - trigger: '*create-brief'
431
- workflow: '{project-root}/{bmad_folder}/bmm/workflows/.../workflow.yaml'
431
+ workflow: '{project-root}/.bmad/bmm/workflows/.../workflow.yaml'
432
432
  ```
433
433
 
434
434
  ### Output: IDE (Markdown with XML)
@@ -441,7 +441,7 @@ agent:
441
441
  ```xml
442
442
  <agent id="..." name="PM">
443
443
  <activation critical="MANDATORY">
444
- <step n="2">Load {project-root}/{bmad_folder}/bmm/config.yaml at runtime</step>
444
+ <step n="2">Load {project-root}/.bmad/bmm/config.yaml at runtime</step>
445
445
  ...
446
446
  </activation>
447
447
  <persona>...</persona>
@@ -533,20 +533,20 @@ src/utility/models/fragments/
533
533
 
534
534
  ## Key Differences: Installation vs Bundling
535
535
 
536
- | Aspect | Installation (IDE) | Bundling (Web) |
537
- | ----------------------- | ------------------------------------ | --------------------------------- |
538
- | **Trigger** | `npm run install:bmad` | `npm run bundle` |
539
- | **Entry Point** | `commands/install.js` | `bundlers/bundle-web.js` |
540
- | **Compiler Flag** | `forWebBundle: false` | `forWebBundle: true` |
541
- | **Output Format** | Markdown `.md` | Standalone XML `.xml` |
542
- | **Output Location** | `{target}/{bmad_folder}/` + IDE dirs | `web-bundles/` |
543
- | **Customization** | Merges `customize.yaml` | Base agents only |
544
- | **Dependencies** | Referenced by path | Bundled inline (CDATA) |
545
- | **Activation Fragment** | `activation-steps.xml` | `web-bundle-activation-steps.xml` |
546
- | **Filesystem Access** | Required | Not needed |
547
- | **Build Metadata** | Included (hash) | Excluded |
548
- | **Path Format** | `{project-root}` placeholders | Stripped, wrapped as `<file>` |
549
- | **Use Case** | Local IDE development | Web deployment |
536
+ | Aspect | Installation (IDE) | Bundling (Web) |
537
+ | ----------------------- | ----------------------------- | --------------------------------- |
538
+ | **Trigger** | `npm run install:bmad` | `npm run bundle` |
539
+ | **Entry Point** | `commands/install.js` | `bundlers/bundle-web.js` |
540
+ | **Compiler Flag** | `forWebBundle: false` | `forWebBundle: true` |
541
+ | **Output Format** | Markdown `.md` | Standalone XML `.xml` |
542
+ | **Output Location** | `{target}/.bmad/` + IDE dirs | `web-bundles/` |
543
+ | **Customization** | Merges `customize.yaml` | Base agents only |
544
+ | **Dependencies** | Referenced by path | Bundled inline (CDATA) |
545
+ | **Activation Fragment** | `activation-steps.xml` | `web-bundle-activation-steps.xml` |
546
+ | **Filesystem Access** | Required | Not needed |
547
+ | **Build Metadata** | Included (hash) | Excluded |
548
+ | **Path Format** | `{project-root}` placeholders | Stripped, wrapped as `<file>` |
549
+ | **Use Case** | Local IDE development | Web deployment |
550
550
 
551
551
  **Activation Differences**:
552
552
 
@@ -29,7 +29,7 @@ class WebBundler {
29
29
 
30
30
  // Temporary directory for generated manifests
31
31
  this.tempDir = path.join(process.cwd(), '.bundler-temp');
32
- this.tempManifestDir = path.join(this.tempDir, 'bmad', '_cfg');
32
+ this.tempManifestDir = path.join(this.tempDir, '.bmad', '_cfg');
33
33
 
34
34
  // Bundle statistics
35
35
  this.stats = {
@@ -531,9 +531,9 @@ class WebBundler {
531
531
  }
532
532
 
533
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\/(.+)/);
534
+ // Support both {project-root}/bmad/... and {project-root}/.bmad/... patterns
535
+ const sourceMatch = sourceWorkflowPath.match(/\{project-root\}\/(?:\.?bmad)\/([^/]+)\/workflows\/(.+)/);
536
+ const installMatch = installWorkflowPath.match(/\{project-root\}\/(?:\.?bmad)\/([^/]+)\/workflows\/(.+)/);
537
537
 
538
538
  if (!sourceMatch || !installMatch) {
539
539
  continue;
@@ -584,9 +584,9 @@ class WebBundler {
584
584
  let yamlContent = await fs.readFile(workflowYamlPath, 'utf8');
585
585
 
586
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"`;
587
+ // Support both old format (bmad) and new format (.bmad)
588
+ const configSourcePattern = /config_source:\s*["']?\{project-root\}\/(?:\.?bmad)\/[^/]+\/config\.yaml["']?/g;
589
+ const newConfigSource = `config_source: "{project-root}/.bmad/${newModuleName}/config.yaml"`;
590
590
 
591
591
  const updatedYaml = yamlContent.replaceAll(configSourcePattern, newConfigSource);
592
592
  await fs.writeFile(workflowYamlPath, updatedYaml, 'utf8');
@@ -723,7 +723,7 @@ class WebBundler {
723
723
  /tools="([^"]+)"/g,
724
724
  /knowledge="([^"]+)"/g,
725
725
  /{project-root}\/([^"'\s<>]+)/g, // Legacy {project-root} paths
726
- /\bbmad\/([^"'\s<>]+)/g, // Direct bmad/ paths (after {bmad_folder} replacement)
726
+ /\bbmad\/([^"'\s<>]+)/g, // Direct bmad/ paths (after .bmad replacement)
727
727
  ];
728
728
 
729
729
  for (const pattern of patterns) {
@@ -733,8 +733,8 @@ class WebBundler {
733
733
  let filePath = match[1];
734
734
  // Remove {project-root} prefix if present
735
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/');
736
+ // Remove .bmad prefix if present (should be rare, mostly replaced already)
737
+ filePath = filePath.replace(/^.bmad\//, 'bmad/');
738
738
 
739
739
  // For bmad/ pattern, prepend 'bmad/' since it was captured without it
740
740
  if (pattern.source.includes(String.raw`\bbmad\/`)) {
@@ -760,8 +760,8 @@ class WebBundler {
760
760
  while ((match = pattern.exec(xml)) !== null) {
761
761
  let workflowPath = match[1];
762
762
  workflowPath = workflowPath.replace(/^{project-root}\//, '');
763
- // Remove {bmad_folder} prefix if present and replace with bmad
764
- workflowPath = workflowPath.replace(/^{bmad_folder}\//, 'bmad/');
763
+ // Remove .bmad prefix if present and replace with bmad
764
+ workflowPath = workflowPath.replace(/^.bmad\//, 'bmad/');
765
765
 
766
766
  // Skip obvious placeholder/example paths
767
767
  if (workflowPath && workflowPath.endsWith('.yaml') && !workflowPath.includes('path/to/') && !workflowPath.includes('example')) {
@@ -851,7 +851,7 @@ class WebBundler {
851
851
  if (deps) {
852
852
  for (const dep of deps) {
853
853
  let depPath = dep.replaceAll(/['"]/g, '').replace(/^{project-root}\//, '');
854
- depPath = depPath.replace(/^{bmad_folder}\//, 'bmad/');
854
+ depPath = depPath.replace(/^.bmad\//, 'bmad/');
855
855
  if (depPath && !processed.has(depPath)) {
856
856
  await this.processFileDependency(depPath, dependencies, processed, moduleName, warnings);
857
857
  }
@@ -865,7 +865,7 @@ class WebBundler {
865
865
  if (templates) {
866
866
  for (const template of templates) {
867
867
  let templatePath = template.replaceAll(/['"]/g, '').replace(/^{project-root}\//, '');
868
- templatePath = templatePath.replace(/^{bmad_folder}\//, 'bmad/');
868
+ templatePath = templatePath.replace(/^.bmad\//, 'bmad/');
869
869
  if (templatePath && !processed.has(templatePath)) {
870
870
  await this.processFileDependency(templatePath, dependencies, processed, moduleName, warnings);
871
871
  }
@@ -1053,13 +1053,13 @@ class WebBundler {
1053
1053
  bundleYamlContent = yamlContent;
1054
1054
  }
1055
1055
 
1056
- // Process {project-root} and {bmad_folder} references in the YAML content
1056
+ // Process {project-root} and .bmad references in the YAML content
1057
1057
  bundleYamlContent = this.processProjectRootReferences(bundleYamlContent);
1058
1058
 
1059
1059
  // Include the YAML file with only web_bundle content, wrapped in XML
1060
1060
  // Process the workflow path to create a clean ID
1061
1061
  let yamlId = workflowPath.replace(/^{project-root}\//, '');
1062
- yamlId = yamlId.replace(/^{bmad_folder}\//, 'bmad/');
1062
+ yamlId = yamlId.replace(/^.bmad\//, 'bmad/');
1063
1063
  const wrappedYaml = this.wrapContentInXml(bundleYamlContent, yamlId, 'yaml');
1064
1064
  dependencies.set(yamlId, wrappedYaml);
1065
1065
 
@@ -1078,7 +1078,7 @@ class WebBundler {
1078
1078
  for (const bundleFilePath of bundleFiles) {
1079
1079
  // Process the file path to create a clean ID for checking if already processed
1080
1080
  let cleanFilePath = bundleFilePath.replace(/^{project-root}\//, '');
1081
- cleanFilePath = cleanFilePath.replace(/^{bmad_folder}\//, 'bmad/');
1081
+ cleanFilePath = cleanFilePath.replace(/^.bmad\//, 'bmad/');
1082
1082
 
1083
1083
  if (processed.has(cleanFilePath)) {
1084
1084
  continue;
@@ -1087,7 +1087,7 @@ class WebBundler {
1087
1087
  const bundleActualPath = this.resolveFilePath(bundleFilePath, moduleName);
1088
1088
 
1089
1089
  if (!bundleActualPath || !(await fs.pathExists(bundleActualPath))) {
1090
- // Use the cleaned path in warnings (with {bmad_folder} replaced)
1090
+ // Use the cleaned path in warnings (with .bmad replaced)
1091
1091
  warnings.push(cleanFilePath);
1092
1092
  continue;
1093
1093
  }
@@ -1136,7 +1136,7 @@ class WebBundler {
1136
1136
  }
1137
1137
 
1138
1138
  let fileContent = await fs.readFile(actualPath, 'utf8');
1139
- // Process {project-root} and {bmad_folder} references
1139
+ // Process {project-root} and .bmad references
1140
1140
  fileContent = this.processProjectRootReferences(fileContent);
1141
1141
  const wrappedContent = this.wrapContentInXml(fileContent, coreWorkflowPath, 'xml');
1142
1142
  dependencies.set(coreWorkflowPath, wrappedContent);
@@ -1162,7 +1162,7 @@ class WebBundler {
1162
1162
  }
1163
1163
 
1164
1164
  let fileContent = await fs.readFile(actualPath, 'utf8');
1165
- // Process {project-root} and {bmad_folder} references
1165
+ // Process {project-root} and .bmad references
1166
1166
  fileContent = this.processProjectRootReferences(fileContent);
1167
1167
  const fileExt = path.extname(actualPath).toLowerCase().replace('.', '');
1168
1168
  const wrappedContent = this.wrapContentInXml(fileContent, filePath, fileExt);
@@ -1196,8 +1196,8 @@ class WebBundler {
1196
1196
  async processWildcardDependency(pattern, dependencies, processed, moduleName, warnings = []) {
1197
1197
  // Remove {project-root} prefix
1198
1198
  pattern = pattern.replace(/^{project-root}\//, '');
1199
- // Replace {bmad_folder} with bmad
1200
- pattern = pattern.replace(/^{bmad_folder}\//, 'bmad/');
1199
+ // Replace .bmad with bmad
1200
+ pattern = pattern.replace(/^.bmad\//, 'bmad/');
1201
1201
 
1202
1202
  // Get directory and file pattern
1203
1203
  const lastSlash = pattern.lastIndexOf('/');
@@ -1265,9 +1265,6 @@ class WebBundler {
1265
1265
  resolveFilePath(filePath, moduleName) {
1266
1266
  // Remove {project-root} prefix
1267
1267
  filePath = filePath.replace(/^{project-root}\//, '');
1268
- // Replace {bmad_folder} with bmad
1269
- filePath = filePath.replace(/^{bmad_folder}\//, 'bmad/');
1270
- filePath = filePath.replace(/^{bmad_folder}$/, 'bmad');
1271
1268
 
1272
1269
  // Check temp directory first for _cfg files
1273
1270
  if (filePath.startsWith('bmad/_cfg/')) {
@@ -1278,11 +1275,6 @@ class WebBundler {
1278
1275
  }
1279
1276
  }
1280
1277
 
1281
- // Handle different path patterns for bmad files
1282
- // bmad/cis/tasks/brain-session.md -> src/modules/cis/tasks/brain-session.md
1283
- // bmad/core/tasks/create-doc.md -> src/core/tasks/create-doc.md
1284
- // bmad/bmm/templates/brief.md -> src/modules/bmm/templates/brief.md
1285
-
1286
1278
  let actualPath = filePath;
1287
1279
 
1288
1280
  if (filePath.startsWith('bmad/')) {
@@ -1334,15 +1326,13 @@ class WebBundler {
1334
1326
  }
1335
1327
 
1336
1328
  /**
1337
- * Process and remove {project-root} references and replace {bmad_folder} with bmad
1329
+ * Process and remove {project-root} references
1338
1330
  */
1339
1331
  processProjectRootReferences(content) {
1340
1332
  // Remove {project-root}/ prefix (with slash)
1341
1333
  content = content.replaceAll('{project-root}/', '');
1342
1334
  // Also remove {project-root} without slash
1343
1335
  content = content.replaceAll('{project-root}', '');
1344
- // Replace {bmad_folder} with bmad
1345
- content = content.replaceAll('{bmad_folder}', 'bmad');
1346
1336
  return content;
1347
1337
  }
1348
1338
 
@@ -80,7 +80,7 @@ module.exports = {
80
80
  */
81
81
  async function buildAgent(projectDir, agentName) {
82
82
  // First check standalone agents in bmad/agents/{agentname}/
83
- const standaloneAgentDir = path.join(projectDir, 'bmad', 'agents', agentName);
83
+ const standaloneAgentDir = path.join(projectDir, '.bmad', 'agents', agentName);
84
84
  let standaloneYamlPath = path.join(standaloneAgentDir, `${agentName}.agent.yaml`);
85
85
 
86
86
  // If exact match doesn't exist, look for any .agent.yaml file in the directory
@@ -99,7 +99,7 @@ async function buildAgent(projectDir, agentName) {
99
99
  // Build the standalone agent
100
100
  console.log(chalk.cyan(` Building standalone agent ${agentName}...`));
101
101
 
102
- const customizePath = path.join(projectDir, 'bmad', '_cfg', 'agents', `${agentName}.customize.yaml`);
102
+ const customizePath = path.join(projectDir, '.bmad', '_cfg', 'agents', `${agentName}.customize.yaml`);
103
103
  const customizeExists = await fs.pathExists(customizePath);
104
104
 
105
105
  await builder.buildAgent(standaloneYamlPath, customizeExists ? customizePath : null, outputPath, { includeMetadata: true });
@@ -109,7 +109,7 @@ async function buildAgent(projectDir, agentName) {
109
109
  }
110
110
 
111
111
  // Find the agent YAML file in .claude/commands/bmad/
112
- const bmadCommandsDir = path.join(projectDir, '.claude', 'commands', 'bmad');
112
+ const bmadCommandsDir = path.join(projectDir, '.claude', 'commands', '.bmad');
113
113
 
114
114
  // Search all module directories for the agent
115
115
  const modules = await fs.readdir(bmadCommandsDir);
@@ -149,7 +149,7 @@ async function buildAllAgents(projectDir) {
149
149
  let builtCount = 0;
150
150
 
151
151
  // First, build standalone agents in bmad/agents/
152
- const standaloneAgentsDir = path.join(projectDir, 'bmad', 'agents');
152
+ const standaloneAgentsDir = path.join(projectDir, '.bmad', 'agents');
153
153
  if (await fs.pathExists(standaloneAgentsDir)) {
154
154
  console.log(chalk.cyan('\nBuilding standalone agents...'));
155
155
  const agentDirs = await fs.readdir(standaloneAgentsDir);
@@ -177,7 +177,7 @@ async function buildAllAgents(projectDir) {
177
177
 
178
178
  console.log(chalk.cyan(` Building standalone agent ${agentName}...`));
179
179
 
180
- const customizePath = path.join(projectDir, 'bmad', '_cfg', 'agents', `${agentName}.customize.yaml`);
180
+ const customizePath = path.join(projectDir, '.bmad', '_cfg', 'agents', `${agentName}.customize.yaml`);
181
181
  const customizeExists = await fs.pathExists(customizePath);
182
182
 
183
183
  await builder.buildAgent(agentYamlPath, customizeExists ? customizePath : null, outputPath, { includeMetadata: true });
@@ -132,8 +132,12 @@ class ConfigCollector {
132
132
  * Collect configuration for all modules
133
133
  * @param {Array} modules - List of modules to configure (including 'core')
134
134
  * @param {string} projectDir - Target project directory
135
+ * @param {Object} options - Additional options
136
+ * @param {Map} options.customModulePaths - Map of module ID to source path for custom modules
135
137
  */
136
- async collectAllConfigurations(modules, projectDir) {
138
+ async collectAllConfigurations(modules, projectDir, options = {}) {
139
+ // Store custom module paths for use in collectModuleConfig
140
+ this.customModulePaths = options.customModulePaths || new Map();
137
141
  await this.loadExistingConfig(projectDir);
138
142
 
139
143
  // Check if core was already collected (e.g., in early collection phase)
@@ -451,11 +455,21 @@ class ConfigCollector {
451
455
  this.allAnswers = {};
452
456
  }
453
457
  // Load module's config
454
- // First, try the standard src/modules location
455
- let installerConfigPath = path.join(getModulePath(moduleName), '_module-installer', 'module.yaml');
456
- let moduleConfigPath = path.join(getModulePath(moduleName), 'module.yaml');
458
+ // First, check if we have a custom module path for this module
459
+ let installerConfigPath = null;
460
+ let moduleConfigPath = null;
461
+
462
+ if (this.customModulePaths && this.customModulePaths.has(moduleName)) {
463
+ const customPath = this.customModulePaths.get(moduleName);
464
+ installerConfigPath = path.join(customPath, '_module-installer', 'module.yaml');
465
+ moduleConfigPath = path.join(customPath, 'module.yaml');
466
+ } else {
467
+ // Try the standard src/modules location
468
+ installerConfigPath = path.join(getModulePath(moduleName), '_module-installer', 'module.yaml');
469
+ moduleConfigPath = path.join(getModulePath(moduleName), 'module.yaml');
470
+ }
457
471
 
458
- // If not found in src/modules, we need to find it by searching the project
472
+ // If not found in src/modules or custom paths, search the project
459
473
  if (!(await fs.pathExists(installerConfigPath)) && !(await fs.pathExists(moduleConfigPath))) {
460
474
  // Use the module manager to find the module source
461
475
  const { ModuleManager } = require('../modules/manager');
@@ -682,15 +696,6 @@ class ConfigCollector {
682
696
  }
683
697
  }
684
698
 
685
- // Special handling for bmad_folder: detect existing folder name
686
- if (moduleName === 'core' && key === 'bmad_folder' && !existingValue && this.currentProjectDir) {
687
- // Try to detect the existing BMAD folder name
688
- const detectedFolder = await this.detectExistingBmadFolder(this.currentProjectDir);
689
- if (detectedFolder) {
690
- existingValue = detectedFolder;
691
- }
692
- }
693
-
694
699
  // Special handling for user_name: default to system user
695
700
  if (moduleName === 'core' && key === 'user_name' && !existingValue) {
696
701
  item.default = this.getDefaultUsername();
@@ -51,7 +51,19 @@ class CustomModuleCache {
51
51
  }
52
52
 
53
53
  /**
54
- * Calculate hash of a file or directory
54
+ * Stream a file into the hash to avoid loading entire file into memory
55
+ */
56
+ async hashFileStream(filePath, hash) {
57
+ return new Promise((resolve, reject) => {
58
+ const stream = require('node:fs').createReadStream(filePath);
59
+ stream.on('data', (chunk) => hash.update(chunk));
60
+ stream.on('end', resolve);
61
+ stream.on('error', reject);
62
+ });
63
+ }
64
+
65
+ /**
66
+ * Calculate hash of a file or directory using streaming to minimize memory usage
55
67
  */
56
68
  async calculateHash(sourcePath) {
57
69
  const hash = crypto.createHash('sha256');
@@ -76,14 +88,14 @@ class CustomModuleCache {
76
88
  files.sort(); // Ensure consistent order
77
89
 
78
90
  for (const file of files) {
79
- const content = await fs.readFile(file);
80
91
  const relativePath = path.relative(sourcePath, file);
81
- hash.update(relativePath + '|' + content.toString('base64'));
92
+ // Hash the path first, then stream file contents
93
+ hash.update(relativePath + '|');
94
+ await this.hashFileStream(file, hash);
82
95
  }
83
96
  } else {
84
- // For single files
85
- const content = await fs.readFile(sourcePath);
86
- hash.update(content);
97
+ // For single files, stream directly into hash
98
+ await this.hashFileStream(sourcePath, hash);
87
99
  }
88
100
 
89
101
  return hash.digest('hex');