bmad-method 6.0.0-alpha.22 → 6.0.0-alpha.23

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 (668) hide show
  1. package/.coderabbit.yaml +2 -2
  2. package/.github/workflows/docs.yaml +3 -12
  3. package/CHANGELOG.md +153 -0
  4. package/CNAME +1 -0
  5. package/CONTRIBUTING.md +9 -7
  6. package/README.md +40 -198
  7. package/docs/404.md +9 -0
  8. package/docs/{modules/bmm-bmad-method/images/README.md → _README_WORKFLOW_DIAGRAMS.md} +4 -1
  9. package/docs/_STYLE_GUIDE.md +347 -0
  10. package/docs/_archive/getting-started-bmadv4.md +247 -0
  11. package/{website/src/pages → docs}/downloads.md +17 -11
  12. package/docs/{modules/bmm-bmad-method/quick-flow-solo-dev.md → explanation/agents/barry-quick-flow.md} +18 -15
  13. package/docs/explanation/agents/index.md +28 -0
  14. package/docs/explanation/architecture/four-phases.md +126 -0
  15. package/docs/explanation/architecture/preventing-agent-conflicts.md +138 -0
  16. package/docs/explanation/architecture/why-solutioning-matters.md +91 -0
  17. package/docs/{modules/bmb-bmad-builder/custom-content.md → explanation/bmad-builder/custom-content-types.md} +17 -18
  18. package/docs/explanation/bmad-builder/index.md +66 -0
  19. package/docs/{modules/bmm-bmad-method → explanation/bmm}/index.md +27 -22
  20. package/docs/explanation/core/index.md +18 -0
  21. package/docs/explanation/core-concepts/agent-roles.md +204 -0
  22. package/docs/explanation/core-concepts/index.md +40 -0
  23. package/docs/{bmad-core-concepts/agents.md → explanation/core-concepts/what-are-agents.md} +8 -5
  24. package/docs/{bmad-core-concepts/modules.md → explanation/core-concepts/what-are-modules.md} +12 -9
  25. package/docs/explanation/core-concepts/what-are-workflows.md +217 -0
  26. package/docs/{modules/cis-creative-intelligence-suite → explanation/creative-intelligence}/index.md +26 -54
  27. package/docs/explanation/faq/brownfield-faq.md +73 -0
  28. package/docs/explanation/faq/getting-started-faq.md +62 -0
  29. package/docs/explanation/faq/implementation-faq.md +52 -0
  30. package/docs/explanation/faq/index.md +16 -0
  31. package/docs/explanation/faq/levels-and-tracks-faq.md +52 -0
  32. package/docs/explanation/faq/planning-faq.md +41 -0
  33. package/docs/explanation/faq/tools-faq.md +253 -0
  34. package/docs/explanation/faq/workflows-faq.md +61 -0
  35. package/docs/{modules/core → explanation/features}/advanced-elicitation.md +5 -2
  36. package/docs/{modules/core/brainstorming.md → explanation/features/brainstorming-techniques.md} +4 -1
  37. package/docs/{modules/bmm-bmad-method → explanation/features}/party-mode.md +7 -9
  38. package/docs/explanation/features/quick-flow.md +169 -0
  39. package/docs/{modules/bmm-bmad-method/test-architecture.md → explanation/features/tea-overview.md} +144 -98
  40. package/docs/{bmad-core-concepts/web-bundles/index.md → explanation/features/web-bundles.md} +6 -5
  41. package/docs/{modules/bmgd-bmad-game-dev/agents-guide.md → explanation/game-dev/agents.md} +8 -5
  42. package/docs/explanation/game-dev/bmgd-vs-bmm.md +150 -0
  43. package/docs/{modules/bmgd-bmad-game-dev/game-types-guide.md → explanation/game-dev/game-types.md} +7 -4
  44. package/docs/explanation/game-dev/index.md +85 -0
  45. package/docs/explanation/philosophy/facilitation-over-generation.md +121 -0
  46. package/docs/explanation/philosophy/testing-as-engineering.md +119 -0
  47. package/docs/how-to/brownfield/add-feature-to-existing.md +91 -0
  48. package/docs/how-to/brownfield/document-existing-project.md +84 -0
  49. package/docs/how-to/brownfield/index.md +102 -0
  50. package/docs/how-to/brownfield/quick-fix-in-brownfield.md +94 -0
  51. package/docs/{bmad-core-concepts/bmad-customization/agents.md → how-to/customization/customize-agents.md} +8 -10
  52. package/docs/{bmad-core-concepts/bmad-customization/workflows.md → how-to/customization/customize-workflows.md} +8 -5
  53. package/docs/how-to/customization/index.md +27 -0
  54. package/docs/{modules/core/document-sharding-guide.md → how-to/customization/shard-large-documents.md} +9 -17
  55. package/docs/{modules/bmb-bmad-builder/workflow-vendoring-customization-inheritance.md → how-to/customization/vendor-workflows.md} +4 -1
  56. package/docs/how-to/get-answers-about-bmad.md +98 -0
  57. package/docs/how-to/installation/index.md +15 -0
  58. package/docs/how-to/installation/install-bmad.md +138 -0
  59. package/docs/{modules/bmb-bmad-builder/custom-content-installation.md → how-to/installation/install-custom-modules.md} +12 -9
  60. package/docs/{bmad-core-concepts/installing/upgrading.md → how-to/installation/upgrade-to-v6.md} +6 -3
  61. package/docs/{modules/bmgd-bmad-game-dev/troubleshooting.md → how-to/troubleshooting/bmgd-troubleshooting.md} +7 -5
  62. package/docs/{modules/bmgd-bmad-game-dev/quick-flow-guide.md → how-to/workflows/bmgd-quick-flow.md} +8 -5
  63. package/docs/how-to/workflows/conduct-research.md +130 -0
  64. package/docs/how-to/workflows/create-architecture.md +147 -0
  65. package/docs/how-to/workflows/create-epics-and-stories.md +136 -0
  66. package/docs/how-to/workflows/create-prd.md +130 -0
  67. package/docs/how-to/workflows/create-product-brief.md +117 -0
  68. package/docs/how-to/workflows/create-story.md +119 -0
  69. package/docs/how-to/workflows/create-ux-design.md +117 -0
  70. package/docs/how-to/workflows/implement-story.md +127 -0
  71. package/docs/how-to/workflows/quick-spec.md +159 -0
  72. package/docs/how-to/workflows/run-brainstorming-session.md +94 -0
  73. package/docs/how-to/workflows/run-code-review.md +141 -0
  74. package/docs/how-to/workflows/run-implementation-readiness.md +162 -0
  75. package/docs/how-to/workflows/run-sprint-planning.md +111 -0
  76. package/docs/how-to/workflows/run-test-design.md +128 -0
  77. package/docs/how-to/workflows/setup-party-mode.md +117 -0
  78. package/docs/how-to/workflows/setup-test-framework.md +113 -0
  79. package/docs/index.md +35 -83
  80. package/docs/{modules/bmm-bmad-method/agents-guide.md → reference/agents/index.md} +36 -39
  81. package/docs/{modules/core → reference/configuration}/core-tasks.md +5 -2
  82. package/docs/{modules/core/global-core-config.md → reference/configuration/global-config.md} +4 -1
  83. package/docs/{modules/bmm-bmad-method/glossary.md → reference/glossary/index.md} +90 -24
  84. package/docs/{modules/bmgd-bmad-game-dev/workflows-guide.md → reference/workflows/bmgd-workflows.md} +11 -8
  85. package/docs/{modules/core → reference/workflows}/core-workflows.md +9 -6
  86. package/docs/{modules/bmm-bmad-method/workflow-document-project-reference.md → reference/workflows/document-project.md} +7 -4
  87. package/docs/reference/workflows/index.md +16 -0
  88. package/docs/tutorials/advanced/create-custom-agent.md +171 -0
  89. package/docs/tutorials/getting-started/getting-started-bmadv6.md +246 -0
  90. package/docs/tutorials/getting-started/quick-start-bmgd.md +260 -0
  91. package/docs/tutorials/getting-started/workflow-overview.jpg +0 -0
  92. package/eslint.config.mjs +2 -2
  93. package/package.json +10 -10
  94. package/samples/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml +1 -0
  95. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +1 -1
  96. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +1 -1
  97. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md +3 -3
  98. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md +3 -3
  99. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md +3 -3
  100. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md +3 -3
  101. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md +3 -3
  102. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md +3 -3
  103. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md +3 -3
  104. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md +3 -3
  105. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md +3 -3
  106. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md +3 -3
  107. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md +3 -3
  108. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md +2 -2
  109. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md +1 -1
  110. package/samples/sample-custom-modules/sample-wellness-module/agents/meditation-guide.agent.yaml +1 -0
  111. package/src/core/agents/bmad-master.agent.yaml +1 -0
  112. package/src/core/tasks/shard-doc.xml +2 -2
  113. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +68 -9
  114. package/src/core/workflows/brainstorming/workflow.md +7 -0
  115. package/src/modules/bmb/agents/agent-builder.agent.yaml +5 -0
  116. package/src/modules/bmb/agents/module-builder.agent.yaml +5 -8
  117. package/src/modules/bmb/agents/workflow-builder.agent.yaml +16 -7
  118. package/src/modules/bmb/workflows/agent/data/agent-menu-patterns.md +5 -5
  119. package/src/modules/bmb/workflows/agent/data/critical-actions.md +2 -2
  120. package/src/modules/bmb/workflows/agent/data/expert-agent-architecture.md +1 -1
  121. package/src/modules/bmb/workflows/agent/data/expert-agent-validation.md +2 -1
  122. package/src/modules/bmb/workflows/agent/data/module-agent-validation.md +2 -0
  123. package/src/modules/bmb/workflows/agent/data/reference/expert-examples/journal-keeper/journal-keeper.agent.yaml +1 -0
  124. package/src/modules/bmb/workflows/agent/data/reference/module-examples/architect.agent.yaml +1 -0
  125. package/src/modules/bmb/workflows/agent/data/reference/module-examples/security-engineer.agent.yaml +1 -0
  126. package/src/modules/bmb/workflows/agent/data/reference/module-examples/trend-analyst.agent.yaml +1 -0
  127. package/src/modules/bmb/workflows/agent/data/reference/simple-examples/commit-poet.agent.yaml +1 -0
  128. package/src/modules/bmb/workflows/agent/data/simple-agent-validation.md +2 -1
  129. package/src/modules/bmb/workflows/agent/steps-c/step-01-brainstorm.md +3 -1
  130. package/src/modules/bmb/workflows/agent/steps-c/step-02-discovery.md +3 -1
  131. package/src/modules/bmb/workflows/agent/steps-c/step-03-type-metadata.md +6 -4
  132. package/src/modules/bmb/workflows/agent/steps-c/step-04-persona.md +4 -2
  133. package/src/modules/bmb/workflows/agent/steps-c/step-05-commands-menu.md +4 -2
  134. package/src/modules/bmb/workflows/agent/steps-c/step-06-activation.md +11 -7
  135. package/src/modules/bmb/workflows/agent/steps-c/step-07a-build-simple.md +7 -5
  136. package/src/modules/bmb/workflows/agent/steps-c/step-07b-build-expert.md +16 -16
  137. package/src/modules/bmb/workflows/agent/steps-c/step-07c-build-module.md +2 -2
  138. package/src/modules/bmb/workflows/agent/steps-c/{step-09-celebrate.md → step-08-celebrate.md} +14 -9
  139. package/src/modules/bmb/workflows/agent/steps-e/e-01-load-existing.md +12 -5
  140. package/src/modules/bmb/workflows/agent/steps-e/e-02-discover-edits.md +5 -3
  141. package/src/modules/bmb/workflows/agent/steps-e/e-03-placeholder.md +1 -0
  142. package/src/modules/bmb/workflows/agent/steps-e/e-04-type-metadata.md +3 -1
  143. package/src/modules/bmb/workflows/agent/steps-e/e-05-persona.md +3 -1
  144. package/src/modules/bmb/workflows/agent/steps-e/e-06-commands-menu.md +3 -1
  145. package/src/modules/bmb/workflows/agent/steps-e/e-07-activation.md +13 -10
  146. package/src/modules/bmb/workflows/agent/steps-e/e-08a-edit-simple.md +8 -5
  147. package/src/modules/bmb/workflows/agent/steps-e/e-08b-edit-expert.md +7 -5
  148. package/src/modules/bmb/workflows/agent/steps-e/e-08c-edit-module.md +8 -5
  149. package/src/modules/bmb/workflows/agent/steps-e/{e-10-celebrate.md → e-09-celebrate.md} +13 -8
  150. package/src/modules/bmb/workflows/agent/steps-v/v-01-load-review.md +14 -6
  151. package/src/modules/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +54 -11
  152. package/src/modules/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +62 -10
  153. package/src/modules/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +84 -10
  154. package/src/modules/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +75 -10
  155. package/src/modules/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +76 -16
  156. package/src/modules/bmb/workflows/agent/steps-v/v-03-summary.md +5 -1
  157. package/src/modules/bmb/workflows/agent/templates/expert-agent-template/expert-agent.template.md +1 -0
  158. package/src/modules/bmb/workflows/agent/templates/simple-agent.template.md +1 -0
  159. package/src/modules/bmb/workflows/module/data/agent-architecture.md +179 -0
  160. package/src/modules/bmb/workflows/module/data/agent-spec-template.md +79 -0
  161. package/src/modules/bmb/workflows/module/data/module-installer-standards.md +348 -0
  162. package/src/modules/bmb/workflows/module/data/module-standards.md +280 -0
  163. package/src/modules/bmb/workflows/module/data/module-yaml-conventions.md +392 -0
  164. package/src/modules/bmb/workflows/module/steps-b/step-01-welcome.md +147 -0
  165. package/src/modules/bmb/workflows/module/steps-b/step-02-spark.md +140 -0
  166. package/src/modules/bmb/workflows/module/steps-b/step-03-module-type.md +148 -0
  167. package/src/modules/bmb/workflows/module/steps-b/step-04-vision.md +82 -0
  168. package/src/modules/bmb/workflows/module/steps-b/step-05-identity.md +96 -0
  169. package/src/modules/bmb/workflows/module/steps-b/step-06-users.md +85 -0
  170. package/src/modules/bmb/workflows/module/steps-b/step-07-value.md +75 -0
  171. package/src/modules/bmb/workflows/module/steps-b/step-08-agents.md +96 -0
  172. package/src/modules/bmb/workflows/module/steps-b/step-09-workflows.md +82 -0
  173. package/src/modules/bmb/workflows/module/steps-b/step-10-tools.md +90 -0
  174. package/src/modules/bmb/workflows/module/steps-b/step-11-scenarios.md +83 -0
  175. package/src/modules/bmb/workflows/module/steps-b/step-12-creative.md +94 -0
  176. package/src/modules/bmb/workflows/module/steps-b/step-13-review.md +104 -0
  177. package/src/modules/bmb/workflows/module/steps-b/step-14-finalize.md +117 -0
  178. package/src/modules/bmb/workflows/module/steps-c/step-01-load-brief.md +178 -0
  179. package/src/modules/bmb/workflows/module/steps-c/step-01b-continue.md +83 -0
  180. package/src/modules/bmb/workflows/module/steps-c/step-02-structure.md +109 -0
  181. package/src/modules/bmb/workflows/module/steps-c/step-03-config.md +118 -0
  182. package/src/modules/bmb/workflows/module/steps-c/step-04-installer.md +160 -0
  183. package/src/modules/bmb/workflows/module/steps-c/step-05-agents.md +167 -0
  184. package/src/modules/bmb/workflows/module/steps-c/step-06-workflows.md +183 -0
  185. package/src/modules/bmb/workflows/module/steps-c/step-07-docs.md +402 -0
  186. package/src/modules/bmb/workflows/module/steps-c/step-08-complete.md +123 -0
  187. package/src/modules/bmb/workflows/module/steps-e/step-01-load-target.md +81 -0
  188. package/src/modules/bmb/workflows/module/steps-e/step-02-select-edit.md +77 -0
  189. package/src/modules/bmb/workflows/module/steps-e/step-03-apply-edit.md +77 -0
  190. package/src/modules/bmb/workflows/module/steps-e/step-04-review.md +80 -0
  191. package/src/modules/bmb/workflows/module/steps-e/step-05-confirm.md +75 -0
  192. package/src/modules/bmb/workflows/module/steps-v/step-01-load-target.md +96 -0
  193. package/src/modules/bmb/workflows/module/steps-v/step-02-file-structure.md +94 -0
  194. package/src/modules/bmb/workflows/module/steps-v/step-03-module-yaml.md +99 -0
  195. package/src/modules/bmb/workflows/module/steps-v/step-04-agent-specs.md +152 -0
  196. package/src/modules/bmb/workflows/module/steps-v/step-05-workflow-specs.md +152 -0
  197. package/src/modules/bmb/workflows/module/steps-v/step-06-documentation.md +143 -0
  198. package/src/modules/bmb/workflows/module/steps-v/step-07-installation.md +113 -0
  199. package/src/modules/bmb/workflows/module/steps-v/step-08-report.md +197 -0
  200. package/src/modules/bmb/workflows/module/templates/brief-template.md +154 -0
  201. package/src/modules/bmb/workflows/module/templates/workflow-spec-template.md +96 -0
  202. package/src/modules/bmb/workflows/module/workflow.md +100 -0
  203. package/src/modules/bmb/workflows/workflow/data/architecture.md +152 -0
  204. package/src/modules/bmb/workflows/workflow/data/csv-data-file-standards.md +81 -0
  205. package/src/modules/bmb/workflows/workflow/data/frontmatter-standards.md +225 -0
  206. package/src/modules/bmb/workflows/workflow/data/input-discovery-standards.md +269 -0
  207. package/src/modules/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +50 -0
  208. package/src/modules/bmb/workflows/workflow/data/menu-handling-standards.md +167 -0
  209. package/src/modules/bmb/workflows/workflow/data/output-format-standards.md +188 -0
  210. package/src/modules/bmb/workflows/workflow/data/step-file-rules.md +235 -0
  211. package/src/modules/bmb/workflows/workflow/data/step-type-patterns.md +311 -0
  212. package/src/modules/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +386 -0
  213. package/src/modules/bmb/workflows/workflow/data/trimodal-workflow-structure.md +209 -0
  214. package/src/modules/bmb/workflows/workflow/data/workflow-chaining-standards.md +271 -0
  215. package/src/modules/bmb/workflows/workflow/data/workflow-examples.md +276 -0
  216. package/src/modules/bmb/workflows/workflow/data/workflow-type-criteria.md +172 -0
  217. package/src/modules/bmb/workflows/workflow/steps-c/step-00-conversion.md +262 -0
  218. package/src/modules/bmb/workflows/workflow/steps-c/step-01-discovery.md +194 -0
  219. package/src/modules/bmb/workflows/workflow/steps-c/step-01b-continuation.md +3 -0
  220. package/src/modules/bmb/workflows/workflow/steps-c/step-02-classification.md +269 -0
  221. package/src/modules/bmb/workflows/workflow/steps-c/step-03-requirements.md +282 -0
  222. package/src/modules/bmb/workflows/workflow/steps-c/step-04-tools.md +281 -0
  223. package/src/modules/bmb/workflows/workflow/steps-c/step-05-plan-review.md +242 -0
  224. package/src/modules/bmb/workflows/{create-workflow/steps → workflow/steps-c}/step-06-design.md +92 -35
  225. package/src/modules/bmb/workflows/workflow/steps-c/step-07-foundation.md +238 -0
  226. package/src/modules/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +377 -0
  227. package/src/modules/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +350 -0
  228. package/src/modules/bmb/workflows/workflow/steps-c/step-10-confirmation.md +320 -0
  229. package/src/modules/bmb/workflows/workflow/steps-c/step-11-completion.md +191 -0
  230. package/src/modules/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +237 -0
  231. package/src/modules/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +248 -0
  232. package/src/modules/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +252 -0
  233. package/src/modules/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +275 -0
  234. package/src/modules/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +154 -0
  235. package/src/modules/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +190 -0
  236. package/src/modules/bmb/workflows/workflow/steps-e/step-e-07-complete.md +206 -0
  237. package/src/modules/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +109 -0
  238. package/src/modules/bmb/workflows/workflow/steps-v/step-01-validate.md +221 -0
  239. package/src/modules/bmb/workflows/workflow/steps-v/step-01b-structure.md +152 -0
  240. package/src/modules/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +199 -0
  241. package/src/modules/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +265 -0
  242. package/src/modules/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +164 -0
  243. package/src/modules/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +211 -0
  244. package/src/modules/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +200 -0
  245. package/src/modules/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +195 -0
  246. package/src/modules/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +209 -0
  247. package/src/modules/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +199 -0
  248. package/src/modules/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +179 -0
  249. package/src/modules/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +186 -0
  250. package/src/modules/bmb/workflows/workflow/steps-v/step-10-report-complete.md +154 -0
  251. package/src/modules/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +237 -0
  252. package/src/modules/bmb/workflows/workflow/templates/minimal-output-template.md +11 -0
  253. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-01-init-continuable-template.md +3 -3
  254. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-1b-template.md +1 -1
  255. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-template.md +14 -14
  256. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/workflow-template.md +2 -4
  257. package/src/modules/bmb/workflows/workflow/workflow.md +109 -0
  258. package/src/modules/bmgd/agents/game-architect.agent.yaml +1 -0
  259. package/src/modules/bmgd/agents/game-designer.agent.yaml +1 -0
  260. package/src/modules/bmgd/agents/game-dev.agent.yaml +1 -0
  261. package/src/modules/bmgd/agents/game-qa.agent.yaml +1 -0
  262. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +1 -0
  263. package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +2 -1
  264. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +1 -1
  265. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +4 -3
  266. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +3 -3
  267. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +50 -45
  268. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +1 -1
  269. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +4 -1
  270. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +3 -3
  271. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +3 -3
  272. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +1 -1
  273. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +2 -2
  274. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +2 -2
  275. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +2 -2
  276. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +2 -2
  277. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +2 -2
  278. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +2 -2
  279. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +1 -1
  280. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +3 -3
  281. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +1 -1
  282. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +2 -2
  283. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +2 -2
  284. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +2 -2
  285. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +2 -2
  286. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +2 -2
  287. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +2 -2
  288. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +2 -2
  289. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +2 -2
  290. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +2 -2
  291. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +2 -2
  292. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +2 -2
  293. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +2 -2
  294. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +1 -1
  295. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +1 -1
  296. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +3 -3
  297. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +11 -11
  298. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +2 -2
  299. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +2 -2
  300. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +2 -2
  301. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +2 -2
  302. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +2 -2
  303. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +2 -2
  304. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +2 -2
  305. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +2 -2
  306. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +2 -2
  307. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +1 -1
  308. package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +1 -1
  309. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +3 -3
  310. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +9 -9
  311. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +2 -2
  312. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +2 -2
  313. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +2 -2
  314. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +2 -2
  315. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +2 -2
  316. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +2 -2
  317. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +2 -2
  318. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +1 -1
  319. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +1 -1
  320. package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +1 -0
  321. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +1 -1
  322. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +1 -1
  323. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +2 -2
  324. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +1 -1
  325. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +1 -1
  326. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +1 -1
  327. package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +2 -2
  328. package/src/modules/bmgd/workflows/bmgd-quick-flow/{create-tech-spec → quick-spec}/workflow.yaml +2 -2
  329. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +2 -2
  330. package/src/modules/bmm/agents/analyst.agent.yaml +3 -2
  331. package/src/modules/bmm/agents/architect.agent.yaml +3 -1
  332. package/src/modules/bmm/agents/dev.agent.yaml +4 -3
  333. package/src/modules/bmm/agents/pm.agent.yaml +11 -2
  334. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +3 -2
  335. package/src/modules/bmm/agents/sm.agent.yaml +1 -0
  336. package/src/modules/bmm/agents/tea.agent.yaml +6 -3
  337. package/src/modules/bmm/agents/tech-writer.agent.yaml +1 -0
  338. package/src/modules/bmm/agents/ux-designer.agent.yaml +1 -0
  339. package/src/modules/bmm/module.yaml +1 -1
  340. package/src/modules/bmm/testarch/knowledge/api-request.md +155 -16
  341. package/src/modules/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
  342. package/src/modules/bmm/testarch/knowledge/auth-session.md +197 -1
  343. package/src/modules/bmm/testarch/knowledge/file-utils.md +257 -54
  344. package/src/modules/bmm/testarch/knowledge/intercept-network-call.md +159 -9
  345. package/src/modules/bmm/testarch/knowledge/log.md +170 -35
  346. package/src/modules/bmm/testarch/knowledge/network-error-monitor.md +228 -95
  347. package/src/modules/bmm/testarch/knowledge/network-recorder.md +314 -52
  348. package/src/modules/bmm/testarch/knowledge/overview.md +15 -12
  349. package/src/modules/bmm/testarch/knowledge/recurse.md +173 -48
  350. package/src/modules/bmm/testarch/tea-index.csv +19 -18
  351. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +3 -8
  352. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +0 -5
  353. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +1 -6
  354. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +1 -6
  355. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +1 -6
  356. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +1 -6
  357. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +0 -5
  358. package/src/modules/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +197 -0
  359. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-01-init.md +7 -13
  360. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-01b-continue.md +36 -49
  361. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +224 -0
  362. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-03-success.md +50 -114
  363. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +213 -0
  364. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +207 -0
  365. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-06-innovation.md +43 -79
  366. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-07-project-type.md +37 -58
  367. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-08-scoping.md +43 -114
  368. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-09-functional.md +21 -60
  369. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-10-nonfunctional.md +32 -84
  370. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +217 -0
  371. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +180 -0
  372. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +247 -0
  373. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  374. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +249 -0
  375. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +253 -0
  376. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +168 -0
  377. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +218 -0
  378. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
  379. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
  380. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
  381. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  382. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
  383. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
  384. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  385. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  386. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
  387. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
  388. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  389. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
  390. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
  391. package/src/modules/bmm/workflows/2-plan-workflows/prd/{prd-template.md → templates/prd-template.md} +0 -1
  392. package/src/modules/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +433 -0
  393. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +96 -9
  394. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +2 -2
  395. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +2 -2
  396. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +2 -2
  397. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +2 -2
  398. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +2 -2
  399. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +1 -1
  400. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +1 -1
  401. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +2 -2
  402. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +2 -2
  403. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +2 -2
  404. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +1 -1
  405. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +2 -0
  406. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +1 -1
  407. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +2 -2
  408. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +2 -1
  409. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +1 -1
  410. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +2 -1
  411. package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +2 -2
  412. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +6 -6
  413. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +2 -2
  414. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +2 -2
  415. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +2 -2
  416. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +2 -2
  417. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +1 -1
  418. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +1 -1
  419. package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-01-understand.md +3 -3
  420. package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-02-investigate.md +1 -1
  421. package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-03-generate.md +1 -1
  422. package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-04-review.md +1 -1
  423. package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/workflow.md +2 -2
  424. package/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +1 -1
  425. package/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +1 -1
  426. package/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +1 -1
  427. package/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +1 -1
  428. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +2 -2
  429. package/src/modules/bmm/workflows/workflow-status/instructions.md +4 -4
  430. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +2 -1
  431. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +1 -0
  432. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +1 -0
  433. package/src/modules/cis/agents/innovation-strategist.agent.yaml +1 -0
  434. package/src/modules/cis/agents/presentation-master.agent.yaml +1 -0
  435. package/src/modules/cis/module.yaml +1 -0
  436. package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
  437. package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
  438. package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
  439. package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
  440. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +1 -0
  441. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +1 -0
  442. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +1 -0
  443. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +1 -0
  444. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +1 -0
  445. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +1 -0
  446. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +1 -0
  447. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +1 -0
  448. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +1 -0
  449. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +1 -0
  450. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +1 -0
  451. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +1 -0
  452. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +1 -0
  453. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +1 -0
  454. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +1 -0
  455. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +1 -0
  456. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +1 -0
  457. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +1 -0
  458. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +1 -0
  459. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +1 -0
  460. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +1 -0
  461. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +1 -0
  462. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +1 -0
  463. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +1 -0
  464. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +1 -0
  465. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +1 -0
  466. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +1 -0
  467. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +1 -0
  468. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +1 -0
  469. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +1 -0
  470. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +1 -0
  471. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +1 -0
  472. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +1 -0
  473. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +1 -0
  474. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +1 -0
  475. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +1 -0
  476. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +1 -0
  477. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +1 -0
  478. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +1 -0
  479. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +1 -0
  480. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +1 -0
  481. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +1 -0
  482. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +1 -0
  483. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +1 -0
  484. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +1 -0
  485. package/tools/build-docs.js +200 -271
  486. package/tools/cli/commands/install.js +8 -2
  487. package/tools/cli/installers/install-messages.yaml +36 -36
  488. package/tools/cli/installers/lib/core/config-collector.js +11 -1
  489. package/tools/cli/installers/lib/core/installer.js +3 -4
  490. package/tools/cli/installers/lib/core/manifest-generator.js +46 -2
  491. package/tools/cli/installers/lib/ide/antigravity.js +3 -3
  492. package/tools/cli/installers/lib/ide/claude-code.js +3 -3
  493. package/tools/cli/installers/lib/ide/codex.js +1 -1
  494. package/tools/cli/installers/lib/ide/cursor.js +57 -304
  495. package/tools/cli/installers/lib/ide/github-copilot.js +1 -1
  496. package/tools/cli/lib/ui.js +22 -1
  497. package/tools/fix-doc-links.js +288 -0
  498. package/tools/schema/agent.js +1 -0
  499. package/tools/validate-doc-links.js +363 -0
  500. package/website/README.md +76 -0
  501. package/website/astro.config.mjs +218 -0
  502. package/website/src/components/Banner.astro +59 -0
  503. package/website/src/components/Header.astro +121 -0
  504. package/website/src/components/MobileMenuFooter.astro +53 -0
  505. package/website/src/content/config.ts +6 -0
  506. package/website/src/lib/site-url.js +25 -0
  507. package/website/src/rehype-markdown-links.js +102 -0
  508. package/website/src/styles/custom.css +483 -0
  509. package/docs/bmad-core-concepts/bmad-customization/index.md +0 -26
  510. package/docs/bmad-core-concepts/index.md +0 -37
  511. package/docs/bmad-core-concepts/installing/index.md +0 -77
  512. package/docs/bmad-core-concepts/workflows.md +0 -89
  513. package/docs/modules/bmb-bmad-builder/agent-creation-guide.md +0 -166
  514. package/docs/modules/bmb-bmad-builder/index.md +0 -60
  515. package/docs/modules/bmgd-bmad-game-dev/glossary.md +0 -293
  516. package/docs/modules/bmgd-bmad-game-dev/index.md +0 -175
  517. package/docs/modules/bmgd-bmad-game-dev/quick-start.md +0 -250
  518. package/docs/modules/bmm-bmad-method/bmad-quick-flow.md +0 -506
  519. package/docs/modules/bmm-bmad-method/brownfield-guide.md +0 -747
  520. package/docs/modules/bmm-bmad-method/faq.md +0 -540
  521. package/docs/modules/bmm-bmad-method/quick-spec-flow.md +0 -622
  522. package/docs/modules/bmm-bmad-method/quick-start.md +0 -363
  523. package/docs/modules/bmm-bmad-method/troubleshooting.md +0 -3
  524. package/docs/modules/bmm-bmad-method/workflows-analysis.md +0 -199
  525. package/docs/modules/bmm-bmad-method/workflows-implementation.md +0 -210
  526. package/docs/modules/bmm-bmad-method/workflows-planning.md +0 -89
  527. package/docs/modules/bmm-bmad-method/workflows-solutioning.md +0 -509
  528. package/docs/modules/core/index.md +0 -15
  529. package/docs/modules/core/party-mode.md +0 -50
  530. package/src/core/tasks/validate-workflow.xml +0 -89
  531. package/src/modules/bmb/docs/workflows/architecture.md +0 -220
  532. package/src/modules/bmb/docs/workflows/csv-data-file-standards.md +0 -206
  533. package/src/modules/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +0 -220
  534. package/src/modules/bmb/docs/workflows/step-file-rules.md +0 -469
  535. package/src/modules/bmb/docs/workflows/templates/step-file.md +0 -139
  536. package/src/modules/bmb/docs/workflows/templates/workflow.md +0 -58
  537. package/src/modules/bmb/docs/workflows/terms.md +0 -97
  538. package/src/modules/bmb/reference/agents/simple-examples/README.md +0 -223
  539. package/src/modules/bmb/reference/readme.md +0 -3
  540. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +0 -18
  541. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +0 -16
  542. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +0 -28
  543. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +0 -177
  544. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +0 -121
  545. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +0 -165
  546. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +0 -154
  547. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +0 -183
  548. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +0 -168
  549. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +0 -195
  550. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +0 -25
  551. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +0 -68
  552. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +0 -29
  553. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +0 -47
  554. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +0 -37
  555. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +0 -18
  556. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +0 -59
  557. package/src/modules/bmb/workflows/agent/steps-c/step-08a-plan-traceability.md +0 -203
  558. package/src/modules/bmb/workflows/agent/steps-c/step-08b-metadata-validation.md +0 -135
  559. package/src/modules/bmb/workflows/agent/steps-c/step-08c-persona-validation.md +0 -161
  560. package/src/modules/bmb/workflows/agent/steps-c/step-08d-menu-validation.md +0 -158
  561. package/src/modules/bmb/workflows/agent/steps-c/step-08e-structure-validation.md +0 -306
  562. package/src/modules/bmb/workflows/agent/steps-c/step-08f-sidecar-validation.md +0 -462
  563. package/src/modules/bmb/workflows/agent/steps-e/e-03a-validate-metadata.md +0 -78
  564. package/src/modules/bmb/workflows/agent/steps-e/e-03b-validate-persona.md +0 -76
  565. package/src/modules/bmb/workflows/agent/steps-e/e-03c-validate-menu.md +0 -75
  566. package/src/modules/bmb/workflows/agent/steps-e/e-03d-validate-structure.md +0 -75
  567. package/src/modules/bmb/workflows/agent/steps-e/e-03e-validate-sidecar.md +0 -78
  568. package/src/modules/bmb/workflows/agent/steps-e/e-03f-validation-summary.md +0 -119
  569. package/src/modules/bmb/workflows/agent/steps-e/e-09a-validate-metadata.md +0 -70
  570. package/src/modules/bmb/workflows/agent/steps-e/e-09b-validate-persona.md +0 -70
  571. package/src/modules/bmb/workflows/agent/steps-e/e-09c-validate-menu.md +0 -69
  572. package/src/modules/bmb/workflows/agent/steps-e/e-09d-validate-structure.md +0 -69
  573. package/src/modules/bmb/workflows/agent/steps-e/e-09e-validate-sidecar.md +0 -70
  574. package/src/modules/bmb/workflows/agent/steps-e/e-09f-validation-summary.md +0 -111
  575. package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +0 -156
  576. package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +0 -170
  577. package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +0 -218
  578. package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +0 -268
  579. package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +0 -229
  580. package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +0 -234
  581. package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +0 -297
  582. package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +0 -229
  583. package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +0 -187
  584. package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +0 -310
  585. package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +0 -338
  586. package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +0 -336
  587. package/src/modules/bmb/workflows/create-module/templates/agent.template.md +0 -313
  588. package/src/modules/bmb/workflows/create-module/templates/installer.template.js +0 -47
  589. package/src/modules/bmb/workflows/create-module/templates/module-plan.template.md +0 -5
  590. package/src/modules/bmb/workflows/create-module/templates/module.template.yaml +0 -53
  591. package/src/modules/bmb/workflows/create-module/templates/workflow-plan-template.md +0 -23
  592. package/src/modules/bmb/workflows/create-module/validation.md +0 -126
  593. package/src/modules/bmb/workflows/create-module/workflow.md +0 -56
  594. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/dietary-restrictions.csv +0 -18
  595. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/macro-calculator.csv +0 -16
  596. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/recipe-database.csv +0 -28
  597. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-01-init.md +0 -177
  598. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-01b-continue.md +0 -150
  599. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-02-profile.md +0 -164
  600. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-03-assessment.md +0 -152
  601. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-04-strategy.md +0 -182
  602. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-05-shopping.md +0 -167
  603. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-06-prep-schedule.md +0 -194
  604. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/assessment-section.md +0 -25
  605. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/nutrition-plan.md +0 -68
  606. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/prep-schedule-section.md +0 -29
  607. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/profile-section.md +0 -47
  608. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/shopping-section.md +0 -37
  609. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/strategy-section.md +0 -18
  610. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/workflow.md +0 -58
  611. package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +0 -158
  612. package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +0 -212
  613. package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +0 -251
  614. package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +0 -217
  615. package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +0 -290
  616. package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +0 -323
  617. package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +0 -285
  618. package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +0 -188
  619. package/src/modules/bmb/workflows/create-workflow/workflow.md +0 -59
  620. package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +0 -217
  621. package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +0 -254
  622. package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +0 -218
  623. package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +0 -194
  624. package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +0 -246
  625. package/src/modules/bmb/workflows/edit-workflow/templates/completion-summary.md +0 -75
  626. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md +0 -68
  627. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md +0 -40
  628. package/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md +0 -51
  629. package/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md +0 -56
  630. package/src/modules/bmb/workflows/edit-workflow/workflow.md +0 -59
  631. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +0 -153
  632. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +0 -244
  633. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +0 -275
  634. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +0 -296
  635. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +0 -265
  636. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +0 -361
  637. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +0 -259
  638. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +0 -302
  639. package/src/modules/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +0 -140
  640. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +0 -59
  641. package/src/modules/bmb/workflows-legacy/edit-module/README.md +0 -171
  642. package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +0 -163
  643. package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +0 -340
  644. package/src/modules/bmb/workflows-legacy/edit-module/workflow.yaml +0 -34
  645. package/src/modules/bmb/workflows-legacy/module-brief/README.md +0 -264
  646. package/src/modules/bmb/workflows-legacy/module-brief/checklist.md +0 -116
  647. package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +0 -268
  648. package/src/modules/bmb/workflows-legacy/module-brief/template.md +0 -275
  649. package/src/modules/bmb/workflows-legacy/module-brief/workflow.yaml +0 -36
  650. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +0 -421
  651. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +0 -291
  652. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +0 -271
  653. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +0 -186
  654. package/website/css/custom.css +0 -52
  655. package/website/docusaurus.config.js +0 -179
  656. package/website/sidebars.js +0 -139
  657. package/website/src/pages/index.js +0 -50
  658. /package/docs/{modules/bmm-bmad-method → tutorials/getting-started}/images/workflow-method-greenfield.excalidraw +0 -0
  659. /package/docs/{modules/bmm-bmad-method → tutorials/getting-started}/images/workflow-method-greenfield.svg +0 -0
  660. /package/docs/{modules/bmgd-bmad-game-dev → tutorials/getting-started/images}/workflow-overview.jpg +0 -0
  661. /package/src/modules/bmb/{docs/workflows → workflows/workflow/data}/common-workflow-tools.csv +0 -0
  662. /package/src/modules/bmgd/workflows/bmgd-quick-flow/{create-tech-spec → quick-spec}/instructions.md +0 -0
  663. /package/src/modules/bmm/workflows/2-plan-workflows/prd/{domain-complexity.csv → data/domain-complexity.csv} +0 -0
  664. /package/src/modules/bmm/workflows/2-plan-workflows/prd/{project-types.csv → data/project-types.csv} +0 -0
  665. /package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/tech-spec-template.md +0 -0
  666. /package/website/{static → public}/favicon.ico +0 -0
  667. /package/website/{static → public}/img/logo.svg +0 -0
  668. /package/website/{static → public}/robots.txt +0 -0
@@ -2,12 +2,11 @@
2
2
  * BMAD Documentation Build Pipeline
3
3
  *
4
4
  * Consolidates docs from multiple sources, generates LLM-friendly files,
5
- * creates downloadable bundles, and builds the Docusaurus site.
5
+ * creates downloadable bundles, and builds the Astro+Starlight site.
6
6
  *
7
7
  * Build outputs:
8
- * build/consolidated/ - Merged docs from all sources
9
8
  * build/artifacts/ - With llms.txt, llms-full.txt, ZIPs
10
- * build/site/ - Final Docusaurus output (deployable)
9
+ * build/site/ - Final Astro output (deployable)
11
10
  */
12
11
 
13
12
  const { execSync } = require('node:child_process');
@@ -28,17 +27,17 @@ const REPO_URL = 'https://github.com/bmad-code-org/BMAD-METHOD';
28
27
  const LLM_MAX_CHARS = 600_000;
29
28
  const LLM_WARN_CHARS = 500_000;
30
29
 
31
- const MODULES = ['bmm', 'bmb', 'bmgd', 'cis'];
32
-
33
- // No root docs copied - only docs/ folder content goes to site
34
- // README.md, CHANGELOG.md etc. link to GitHub
35
- const ROOT_DOCS = [];
36
-
37
30
  const LLM_EXCLUDE_PATTERNS = ['changelog', 'ide-info/', 'v4-to-v6-upgrade', 'downloads/', 'faq'];
38
31
 
39
32
  // =============================================================================
40
33
  // Main Entry Point
41
- // =============================================================================
34
+ /**
35
+ * Orchestrates the full BMAD documentation build pipeline.
36
+ *
37
+ * Executes the high-level build steps in sequence: prints headers and paths, validates internal
38
+ * documentation links, cleans the build directory, generates artifacts from the `docs/` folder,
39
+ * builds the Astro site, and prints a final build summary.
40
+ */
42
41
 
43
42
  async function main() {
44
43
  console.log();
@@ -48,13 +47,16 @@ async function main() {
48
47
  console.log(`Build directory: ${BUILD_DIR}`);
49
48
  console.log();
50
49
 
50
+ // Check for broken internal links before building
51
+ checkDocLinks();
52
+
51
53
  cleanBuildDirectory();
52
54
 
53
- const consolidatedDir = consolidateDocs();
54
- const artifactsDir = await generateArtifacts(consolidatedDir);
55
- const siteDir = buildDocusaurusSite(artifactsDir);
55
+ const docsDir = path.join(PROJECT_ROOT, 'docs');
56
+ const artifactsDir = await generateArtifacts(docsDir);
57
+ const siteDir = buildAstroSite();
56
58
 
57
- printBuildSummary(consolidatedDir, artifactsDir, siteDir);
59
+ printBuildSummary(docsDir, artifactsDir, siteDir);
58
60
  }
59
61
 
60
62
  main().catch((error) => {
@@ -64,33 +66,25 @@ main().catch((error) => {
64
66
 
65
67
  // =============================================================================
66
68
  // Pipeline Stages
67
- // =============================================================================
68
-
69
- function consolidateDocs() {
70
- printHeader('Consolidating documentation sources');
71
-
72
- const outputDir = path.join(BUILD_DIR, 'consolidated');
73
- fs.mkdirSync(outputDir, { recursive: true });
74
-
75
- copyMainDocs(outputDir);
76
- copyRootDocs(outputDir);
77
- copyModuleDocs(outputDir);
78
-
79
- const mdCount = countMarkdownFiles(outputDir);
80
- console.log();
81
- console.log(` \u001B[32m✓\u001B[0m Consolidation complete: ${mdCount} markdown files`);
82
-
83
- return outputDir;
84
- }
69
+ /**
70
+ * Generate LLM files and downloadable bundles for the documentation pipeline.
71
+ *
72
+ * Creates the build/artifacts directory, writes `llms.txt` and `llms-full.txt` (sourced from the provided docs directory),
73
+ * and produces download ZIP bundles.
74
+ *
75
+ * @param {string} docsDir - Path to the source docs directory containing Markdown files.
76
+ * @returns {string} Path to the created artifacts directory.
77
+ */
85
78
 
86
- async function generateArtifacts(consolidatedDir) {
79
+ async function generateArtifacts(docsDir) {
87
80
  printHeader('Generating LLM files and download bundles');
88
81
 
89
82
  const outputDir = path.join(BUILD_DIR, 'artifacts');
90
- copyDirectory(consolidatedDir, outputDir);
83
+ fs.mkdirSync(outputDir, { recursive: true });
91
84
 
85
+ // Generate LLM files reading from docs/, output to artifacts/
92
86
  generateLlmsTxt(outputDir);
93
- generateLlmsFullTxt(outputDir);
87
+ generateLlmsFullTxt(docsDir, outputDir);
94
88
  await generateDownloadBundles(outputDir);
95
89
 
96
90
  console.log();
@@ -99,81 +93,39 @@ async function generateArtifacts(consolidatedDir) {
99
93
  return outputDir;
100
94
  }
101
95
 
102
- function buildDocusaurusSite(artifactsDir) {
103
- printHeader('Building Docusaurus site');
96
+ /**
97
+ * Builds the Astro + Starlight site and copies generated artifacts into the site output directory.
98
+ *
99
+ * @returns {string} The filesystem path to the built site directory (e.g., build/site).
100
+ */
101
+ function buildAstroSite() {
102
+ printHeader('Building Astro + Starlight site');
104
103
 
105
104
  const siteDir = path.join(BUILD_DIR, 'site');
106
- const mainDocs = path.join(PROJECT_ROOT, 'docs');
107
- const docsBackup = path.join(BUILD_DIR, 'docs-backup');
108
-
109
- backupAndReplaceDocs(mainDocs, docsBackup, artifactsDir);
110
-
111
- try {
112
- runDocusaurusBuild(siteDir);
113
- } finally {
114
- restoreDocs(mainDocs, docsBackup);
115
- }
105
+ const artifactsDir = path.join(BUILD_DIR, 'artifacts');
116
106
 
107
+ // Build Astro site (outputs to build/site via astro.config.mjs)
108
+ runAstroBuild();
117
109
  copyArtifactsToSite(artifactsDir, siteDir);
118
110
 
111
+ // No longer needed: Inject AI agents banner into every HTML page
112
+ // injectAgentBanner(siteDir);
113
+
119
114
  console.log();
120
- console.log(` \u001B[32m✓\u001B[0m Docusaurus build complete`);
115
+ console.log(` \u001B[32m✓\u001B[0m Astro build complete`);
121
116
 
122
117
  return siteDir;
123
118
  }
124
119
 
125
- // =============================================================================
126
- // Documentation Consolidation
127
- // =============================================================================
128
-
129
- function copyMainDocs(destDir) {
130
- console.log(' → Copying main docs...');
131
- const docsDir = path.join(PROJECT_ROOT, 'docs');
132
- copyDirectory(docsDir, destDir, ['modules', 'llms.txt', 'llms-full.txt'], true);
133
- }
134
-
135
- function copyRootDocs(destDir) {
136
- console.log(' → Copying root documentation files...');
137
-
138
- for (const doc of ROOT_DOCS) {
139
- const srcPath = path.join(PROJECT_ROOT, doc.src);
140
- const destPath = path.join(destDir, doc.dest);
141
-
142
- if (fs.existsSync(srcPath)) {
143
- let content = fs.readFileSync(srcPath, 'utf-8');
144
-
145
- if (!content.startsWith('---')) {
146
- content = `---\ntitle: "${doc.title}"\n---\n\n${content}`;
147
- }
148
-
149
- content = transformMarkdownLinks(content);
150
- fs.writeFileSync(destPath, content);
151
- console.log(` ${doc.src} → ${doc.dest}`);
152
- }
153
- }
154
- }
155
-
156
- function copyModuleDocs(destDir) {
157
- fs.mkdirSync(path.join(destDir, 'modules'), { recursive: true });
158
-
159
- for (const moduleName of MODULES) {
160
- const srcPath = path.join(PROJECT_ROOT, 'src', 'modules', moduleName, 'docs');
161
- const moduleDest = path.join(destDir, 'modules', moduleName);
162
-
163
- if (fs.existsSync(srcPath)) {
164
- console.log(` → Copying ${moduleName} docs...`);
165
- copyDirectory(srcPath, moduleDest, [], false, moduleName);
166
- const count = countMarkdownFiles(moduleDest);
167
- console.log(` ${count} markdown files`);
168
- } else {
169
- console.log(` ⚠ WARNING: ${moduleName} docs not found`);
170
- }
171
- }
172
- }
173
-
174
120
  // =============================================================================
175
121
  // LLM File Generation
176
- // =============================================================================
122
+ /**
123
+ * Create a concise llms.txt summary file containing project metadata, core links, and quick navigation entries for LLM consumption.
124
+ *
125
+ * Writes the file to `${outputDir}/llms.txt`.
126
+ *
127
+ * @param {string} outputDir - Destination directory where `llms.txt` will be written.
128
+ */
177
129
 
178
130
  function generateLlmsTxt(outputDir) {
179
131
  console.log(' → Generating llms.txt...');
@@ -219,11 +171,18 @@ function generateLlmsTxt(outputDir) {
219
171
  console.log(` Generated llms.txt (${content.length.toLocaleString()} chars)`);
220
172
  }
221
173
 
222
- function generateLlmsFullTxt(outputDir) {
174
+ /**
175
+ * Builds a consolidated llms-full.txt containing all Markdown files under docsDir wrapped in <document path="..."> tags for LLM consumption.
176
+ *
177
+ * Writes the generated file to outputDir/llms-full.txt. Files matching LLM_EXCLUDE_PATTERNS are skipped; read errors for individual files are logged. The combined content is validated against configured size thresholds (will exit on overflow and warn if near limit).
178
+ * @param {string} docsDir - Root directory containing source Markdown files; paths in the output are relative to this directory.
179
+ * @param {string} outputDir - Directory where llms-full.txt will be written.
180
+ */
181
+ function generateLlmsFullTxt(docsDir, outputDir) {
223
182
  console.log(' → Generating llms-full.txt...');
224
183
 
225
184
  const date = new Date().toISOString().split('T')[0];
226
- const files = getDocsFromSidebar();
185
+ const files = getAllMarkdownFiles(docsDir);
227
186
 
228
187
  const output = [
229
188
  '# BMAD Method Documentation (Full)',
@@ -243,7 +202,7 @@ function generateLlmsFullTxt(outputDir) {
243
202
  continue;
244
203
  }
245
204
 
246
- const fullPath = path.join(outputDir, mdPath);
205
+ const fullPath = path.join(docsDir, mdPath);
247
206
  try {
248
207
  const content = readMarkdownContent(fullPath);
249
208
  output.push(`<document path="${mdPath}">`, content, '</document>', '');
@@ -265,34 +224,35 @@ function generateLlmsFullTxt(outputDir) {
265
224
  );
266
225
  }
267
226
 
268
- function getDocsFromSidebar() {
269
- const sidebarsPath = path.join(PROJECT_ROOT, 'website', 'sidebars.js');
227
+ /**
228
+ * Collects all Markdown (.md) files under a directory and returns their paths relative to a base directory.
229
+ * @param {string} dir - Directory to search for Markdown files.
230
+ * @param {string} [baseDir=dir] - Base directory used to compute returned relative paths.
231
+ * @returns {string[]} An array of file paths (relative to `baseDir`) for every `.md` file found under `dir`.
232
+ */
233
+ function getAllMarkdownFiles(dir, baseDir = dir) {
234
+ const files = [];
270
235
 
271
- try {
272
- const sidebarContent = fs.readFileSync(sidebarsPath, 'utf-8');
273
- const matches = sidebarContent.matchAll(/'([a-zA-Z0-9\-_/]+)'/g);
274
- const files = [];
275
-
276
- for (const match of matches) {
277
- const docId = match[1];
278
- // Skip Docusaurus keywords
279
- if (docId.includes('Sidebar') || docId === 'doc' || docId === 'category') {
280
- continue;
281
- }
282
- // Skip category labels (Title Case words without slashes like 'Workflows', 'Reference')
283
- if (!docId.includes('/') && /^[A-Z][a-z]/.test(docId)) {
284
- continue;
285
- }
286
- files.push(docId + '.md');
287
- }
236
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
237
+ const fullPath = path.join(dir, entry.name);
288
238
 
289
- return files;
290
- } catch {
291
- console.log(' Warning: Could not parse sidebars');
292
- return [];
239
+ if (entry.isDirectory()) {
240
+ files.push(...getAllMarkdownFiles(fullPath, baseDir));
241
+ } else if (entry.name.endsWith('.md')) {
242
+ // Return relative path from baseDir
243
+ const relativePath = path.relative(baseDir, fullPath);
244
+ files.push(relativePath);
245
+ }
293
246
  }
247
+
248
+ return files;
294
249
  }
295
250
 
251
+ /**
252
+ * Determine whether a file path matches any configured LLM exclusion pattern.
253
+ * @param {string} filePath - The file path to test.
254
+ * @returns {boolean} `true` if the path contains any pattern from LLM_EXCLUDE_PATTERNS, `false` otherwise.
255
+ */
296
256
  function shouldExcludeFromLlm(filePath) {
297
257
  return LLM_EXCLUDE_PATTERNS.some((pattern) => filePath.includes(pattern));
298
258
  }
@@ -346,6 +306,12 @@ async function generateSourcesBundle(downloadsDir) {
346
306
  console.log(` bmad-sources.zip (${size}M)`);
347
307
  }
348
308
 
309
+ /**
310
+ * Create a zip archive of the project's prompts modules and place it in the downloads directory.
311
+ *
312
+ * Creates bmad-prompts.zip from src/modules, excluding common unwanted paths, writes it to the provided downloads directory, and logs the resulting file size. If the modules directory does not exist, the function returns without creating a bundle.
313
+ * @param {string} downloadsDir - Destination directory where bmad-prompts.zip will be written.
314
+ */
349
315
  async function generatePromptsBundle(downloadsDir) {
350
316
  const modulesDir = path.join(PROJECT_ROOT, 'src', 'modules');
351
317
  if (!fs.existsSync(modulesDir)) return;
@@ -358,39 +324,31 @@ async function generatePromptsBundle(downloadsDir) {
358
324
  }
359
325
 
360
326
  // =============================================================================
361
- // Docusaurus Build
362
- // =============================================================================
363
-
364
- function backupAndReplaceDocs(mainDocs, backupDir, artifactsDir) {
365
- console.log(' → Preparing docs for Docusaurus...');
366
-
367
- if (fs.existsSync(mainDocs)) {
368
- copyDirectory(mainDocs, backupDir);
369
- fs.rmSync(mainDocs, { recursive: true });
370
- }
371
-
372
- copyDirectory(artifactsDir, mainDocs, ['llms.txt', 'llms-full.txt']);
373
- removeZipFiles(path.join(mainDocs, 'downloads'));
374
- }
375
-
376
- function runDocusaurusBuild(siteDir) {
377
- console.log(' → Running docusaurus build...');
378
- execSync('npx docusaurus build --config website/docusaurus.config.js --out-dir ' + siteDir, {
327
+ // Astro Build
328
+ /**
329
+ * Builds the Astro site to build/site (configured in astro.config.mjs).
330
+ */
331
+ function runAstroBuild() {
332
+ console.log(' → Running astro build...');
333
+ execSync('npx astro build --root website', {
379
334
  cwd: PROJECT_ROOT,
380
335
  stdio: 'inherit',
336
+ env: {
337
+ ...process.env,
338
+ NODE_OPTIONS: `${process.env.NODE_OPTIONS || ''} --disable-warning=MODULE_TYPELESS_PACKAGE_JSON`.trim(),
339
+ },
381
340
  });
382
341
  }
383
342
 
384
- function restoreDocs(mainDocs, backupDir) {
385
- console.log(' → Restoring original docs...');
386
- fs.rmSync(mainDocs, { recursive: true });
387
-
388
- if (fs.existsSync(backupDir)) {
389
- copyDirectory(backupDir, mainDocs);
390
- fs.rmSync(backupDir, { recursive: true });
391
- }
392
- }
393
-
343
+ /**
344
+ * Copy generated artifact files into the built site directory.
345
+ *
346
+ * Copies llms.txt and llms-full.txt from the artifacts directory into the site directory.
347
+ * If a downloads subdirectory exists under artifacts, copies it into siteDir/downloads.
348
+ *
349
+ * @param {string} artifactsDir - Path to the build artifacts directory containing generated files.
350
+ * @param {string} siteDir - Path to the target site directory where artifacts should be placed.
351
+ */
394
352
  function copyArtifactsToSite(artifactsDir, siteDir) {
395
353
  console.log(' → Copying artifacts to site...');
396
354
 
@@ -403,28 +361,24 @@ function copyArtifactsToSite(artifactsDir, siteDir) {
403
361
  }
404
362
  }
405
363
 
406
- function removeZipFiles(dir) {
407
- if (!fs.existsSync(dir)) return;
408
-
409
- for (const file of fs.readdirSync(dir)) {
410
- if (file.endsWith('.zip')) {
411
- fs.unlinkSync(path.join(dir, file));
412
- }
413
- }
414
- }
415
-
416
364
  // =============================================================================
417
365
  // Build Summary
418
- // =============================================================================
366
+ /**
367
+ * Prints a concise end-of-build summary and displays a sample listing of the final site directory.
368
+ *
369
+ * @param {string} docsDir - Path to the source documentation directory used for the build.
370
+ * @param {string} artifactsDir - Path to the directory containing generated artifacts (e.g., llms.txt, downloads).
371
+ * @param {string} siteDir - Path to the final built site directory whose contents will be listed.
372
+ */
419
373
 
420
- function printBuildSummary(consolidatedDir, artifactsDir, siteDir) {
374
+ function printBuildSummary(docsDir, artifactsDir, siteDir) {
421
375
  console.log();
422
376
  printBanner('Build Complete!');
423
377
  console.log();
424
378
  console.log('Build artifacts:');
425
- console.log(` Consolidated docs: ${consolidatedDir}`);
426
- console.log(` Generated files: ${artifactsDir}`);
427
- console.log(` Final site: ${siteDir}`);
379
+ console.log(` Source docs: ${docsDir}`);
380
+ console.log(` Generated files: ${artifactsDir}`);
381
+ console.log(` Final site: ${siteDir}`);
428
382
  console.log();
429
383
  console.log(`Deployable output: ${siteDir}/`);
430
384
  console.log();
@@ -448,6 +402,11 @@ function listDirectoryContents(dir) {
448
402
  }
449
403
  }
450
404
 
405
+ /**
406
+ * Format a byte count into a compact human-readable string using B, K, or M units.
407
+ * @param {number} bytes - The number of bytes to format.
408
+ * @returns {string} The formatted size: bytes as `N B` (e.g. `512B`), kilobytes truncated to an integer with `K` (e.g. `2K`), or megabytes with one decimal and `M` (e.g. `1.2M`).
409
+ */
451
410
  function formatFileSize(bytes) {
452
411
  if (bytes > 1024 * 1024) {
453
412
  return `${(bytes / 1024 / 1024).toFixed(1)}M`;
@@ -458,8 +417,38 @@ function formatFileSize(bytes) {
458
417
  }
459
418
 
460
419
  // =============================================================================
461
- // File System Utilities
420
+ // Post-build Injection
421
+ /**
422
+ * Recursively collects all files with the given extension under a directory.
423
+ *
424
+ * @param {string} dir - Root directory to search.
425
+ * @param {string} ext - File extension to match (include the leading dot, e.g. ".md").
426
+ * @returns {string[]} An array of file paths for files ending with `ext` found under `dir`.
427
+ */
428
+
429
+ function getAllFilesByExtension(dir, ext) {
430
+ const result = [];
431
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
432
+
433
+ for (const entry of entries) {
434
+ const fullPath = path.join(dir, entry.name);
435
+ if (entry.isDirectory()) {
436
+ result.push(...getAllFilesByExtension(fullPath, ext));
437
+ } else if (entry.name.endsWith(ext)) {
438
+ result.push(fullPath);
439
+ }
440
+ }
441
+
442
+ return result;
443
+ }
444
+
462
445
  // =============================================================================
446
+ // File System Utilities
447
+ /**
448
+ * Remove any existing build output and recreate the build directory.
449
+ *
450
+ * Ensures the configured BUILD_DIR is empty by deleting it if present and then creating a fresh directory.
451
+ */
463
452
 
464
453
  function cleanBuildDirectory() {
465
454
  console.log('Cleaning previous build...');
@@ -470,7 +459,15 @@ function cleanBuildDirectory() {
470
459
  fs.mkdirSync(BUILD_DIR, { recursive: true });
471
460
  }
472
461
 
473
- function copyDirectory(src, dest, exclude = [], transformMd = false, moduleName = null) {
462
+ /**
463
+ * Recursively copies all files and subdirectories from one directory to another, creating the destination if needed.
464
+ *
465
+ * @param {string} src - Path to the source directory to copy from.
466
+ * @param {string} dest - Path to the destination directory to copy to.
467
+ * @param {string[]} [exclude=[]] - List of file or directory names (not paths) to skip while copying.
468
+ * @returns {boolean} `true` if the source existed and copying proceeded, `false` if the source did not exist.
469
+ */
470
+ function copyDirectory(src, dest, exclude = []) {
474
471
  if (!fs.existsSync(src)) return false;
475
472
  fs.mkdirSync(dest, { recursive: true });
476
473
 
@@ -481,12 +478,7 @@ function copyDirectory(src, dest, exclude = [], transformMd = false, moduleName
481
478
  const destPath = path.join(dest, entry.name);
482
479
 
483
480
  if (entry.isDirectory()) {
484
- copyDirectory(srcPath, destPath, exclude, transformMd, moduleName);
485
- } else if (entry.name.endsWith('.md')) {
486
- // Always transform markdown links, use module context if provided
487
- let content = fs.readFileSync(srcPath, 'utf-8');
488
- content = transformMarkdownLinks(content, moduleName);
489
- fs.writeFileSync(destPath, content);
481
+ copyDirectory(srcPath, destPath, exclude);
490
482
  } else {
491
483
  fs.copyFileSync(srcPath, destPath);
492
484
  }
@@ -494,102 +486,13 @@ function copyDirectory(src, dest, exclude = [], transformMd = false, moduleName
494
486
  return true;
495
487
  }
496
488
 
497
- function transformMarkdownLinks(content, moduleName = null) {
498
- // Transform HTML img src attributes for module docs images
499
- content = content.replaceAll(/src="\.\/src\/modules\/([^/]+)\/docs\/images\/([^"]+)"/g, (match, mod, file) => {
500
- return `src="./modules/${mod}/images/${file}"`;
501
- });
502
-
503
- return content.replaceAll(/\]\(([^)]+)\)/g, (match, url) => {
504
- // src/modules/{mod}/docs/{path}.md → ./modules/{mod}/{path}.md
505
- // Keeps .md - Docusaurus handles .md → page conversion
506
- const docsMatch = url.match(/^\.\.?\/src\/modules\/([^/]+)\/docs\/(.+\.md)$/);
507
- if (docsMatch) return `](./modules/${docsMatch[1]}/${docsMatch[2]})`;
508
-
509
- // src/modules/{mod}/docs/ → ./modules/{mod}/
510
- const docsDirMatch = url.match(/^\.\.?\/src\/modules\/([^/]+)\/docs\/$/);
511
- if (docsDirMatch) return `](./modules/${docsDirMatch[1]}/)`;
512
-
513
- // src/modules/{mod}/docs/images/{file} → ./modules/{mod}/images/{file}
514
- const docsImageMatch = url.match(/^\.\.?\/src\/modules\/([^/]+)\/docs\/images\/(.+)$/);
515
- if (docsImageMatch) return `](./modules/${docsImageMatch[1]}/images/${docsImageMatch[2]})`;
516
-
517
- // src/modules/{mod}/README.md → GitHub (not in docs folder)
518
- const readmeMatch = url.match(/^\.\.?\/src\/modules\/([^/]+)\/README\.md$/i);
519
- if (readmeMatch) return `](${REPO_URL}/blob/main/src/modules/${readmeMatch[1]}/README.md)`;
520
-
521
- // src/modules/* (non-docs) → GitHub
522
- const srcMatch = url.match(/^\.\.?\/src\/modules\/(.+)$/);
523
- if (srcMatch) return `](${REPO_URL}/tree/main/src/modules/${srcMatch[1]})`;
524
-
525
- // Relative paths escaping docs/ folder → GitHub (when module context is known)
526
- // e.g., ../workflows/foo/bar.md from within docs/ → src/modules/{mod}/workflows/foo/bar.md
527
- if (moduleName) {
528
- const relativeEscapeMatch = url.match(/^\.\.\/([^.][^)]+)$/);
529
- if (relativeEscapeMatch && !relativeEscapeMatch[1].startsWith('src/')) {
530
- const relativePath = relativeEscapeMatch[1];
531
- return `](${REPO_URL}/blob/main/src/modules/${moduleName}/${relativePath})`;
532
- }
533
- }
534
-
535
- // ./docs/{path}.md → ./{path}.md (docs folder contents are at root in build)
536
- // Keeps .md - Docusaurus handles .md → page conversion
537
- const rootDocsMatch = url.match(/^\.\/docs\/(.+\.md)$/);
538
- if (rootDocsMatch) return `](./${rootDocsMatch[1]})`;
539
-
540
- // Root docs → GitHub (not part of docs site)
541
- if (url === '../README.md' || url === './README.md' || url === './project-readme') {
542
- return `](${REPO_URL}/blob/main/README.md)`;
543
- }
544
- if (url === '../CHANGELOG.md' || url === './CHANGELOG.md' || url === './changelog') {
545
- return `](${REPO_URL}/blob/main/CHANGELOG.md)`;
546
- }
547
-
548
- // Root files → GitHub (CONTRIBUTING, LICENSE, CODE_OF_CONDUCT, etc.)
549
- const contributingMatch = url.match(/^(\.\.\/)?CONTRIBUTING\.md(#.*)?$/);
550
- if (contributingMatch) {
551
- const anchor = contributingMatch[2] || '';
552
- return `](${REPO_URL}/blob/main/CONTRIBUTING.md${anchor})`;
553
- }
554
- if (url === 'LICENSE' || url === '../LICENSE') {
555
- return `](${REPO_URL}/blob/main/LICENSE)`;
556
- }
557
- if (url === '.github/CODE_OF_CONDUCT.md' || url === '../.github/CODE_OF_CONDUCT.md') {
558
- return `](${REPO_URL}/blob/main/.github/CODE_OF_CONDUCT.md)`;
559
- }
560
-
561
- // Other root .md files → GitHub
562
- const rootFileMatch = url.match(/^\.\.\/([A-Z][^/]+\.md)$/);
563
- if (rootFileMatch) return `](${REPO_URL}/blob/main/${rootFileMatch[1]})`;
564
-
565
- // Cross-module doc links: ../../{mod}/docs/{path}.md → ../{mod}/{path}.md
566
- // Fixes path structure but keeps .md (Docusaurus handles .md → page conversion)
567
- const crossModuleDocsMatch = url.match(/^\.\.\/\.\.\/([^/]+)\/docs\/(.+\.md)$/);
568
- if (crossModuleDocsMatch) return `](../${crossModuleDocsMatch[1]}/${crossModuleDocsMatch[2]})`;
569
-
570
- // Root-level folders (samples/) → GitHub
571
- const rootFolderMatch = url.match(/^\.\.\/((samples)\/.*)/);
572
- if (rootFolderMatch) return `](${REPO_URL}/blob/main/${rootFolderMatch[1]})`;
573
-
574
- return match;
575
- });
576
- }
577
-
578
- function countMarkdownFiles(dir) {
579
- let count = 0;
580
- if (!fs.existsSync(dir)) return 0;
581
-
582
- for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
583
- const fullPath = path.join(dir, entry.name);
584
- if (entry.isDirectory()) {
585
- count += countMarkdownFiles(fullPath);
586
- } else if (entry.name.endsWith('.md')) {
587
- count++;
588
- }
589
- }
590
- return count;
591
- }
592
-
489
+ /**
490
+ * Create a ZIP archive of a directory, optionally excluding entries that match given substrings.
491
+ * @param {string} sourceDir - Path to the source directory to archive.
492
+ * @param {string} outputPath - Path to write the resulting ZIP file.
493
+ * @param {string[]} [exclude=[]] - Array of substrings; any entry whose path includes one of these substrings will be omitted.
494
+ * @returns {Promise<void>} Resolves when the archive has been fully written and closed, rejects on error.
495
+ */
593
496
  function createZipArchive(sourceDir, outputPath, exclude = []) {
594
497
  return new Promise((resolve, reject) => {
595
498
  const output = fs.createWriteStream(outputPath);
@@ -623,8 +526,34 @@ function printHeader(title) {
623
526
  console.log('└' + '─'.repeat(62) + '┘');
624
527
  }
625
528
 
529
+ /**
530
+ * Prints a centered decorative ASCII banner to the console using the provided title.
531
+ * @param {string} title - Text to display centered inside the banner. */
626
532
  function printBanner(title) {
627
533
  console.log('╔' + '═'.repeat(62) + '╗');
628
534
  console.log(`║${title.padStart(31 + title.length / 2).padEnd(62)}║`);
629
535
  console.log('╚' + '═'.repeat(62) + '╝');
630
536
  }
537
+
538
+ // =============================================================================
539
+ // Link Checking
540
+ /**
541
+ * Verify internal documentation links by running the link-checking script.
542
+ *
543
+ * Executes the Node script tools/check-doc-links.js from the project root and
544
+ * exits the process with code 1 if the check fails.
545
+ */
546
+
547
+ function checkDocLinks() {
548
+ printHeader('Checking documentation links');
549
+
550
+ try {
551
+ execSync('node tools/validate-doc-links.js', {
552
+ cwd: PROJECT_ROOT,
553
+ stdio: 'inherit',
554
+ });
555
+ } catch {
556
+ console.error('\n \u001B[31m✗\u001B[0m Link check failed - fix broken links before building\n');
557
+ process.exit(1);
558
+ }
559
+ }
@@ -1,6 +1,5 @@
1
1
  const chalk = require('chalk');
2
2
  const path = require('node:path');
3
- const inquirer = require('inquirer').default || require('inquirer');
4
3
  const { Installer } = require('../installers/lib/core/installer');
5
4
  const { UI } = require('../lib/ui');
6
5
 
@@ -10,9 +9,15 @@ const ui = new UI();
10
9
  module.exports = {
11
10
  command: 'install',
12
11
  description: 'Install BMAD Core agents and tools',
13
- options: [],
12
+ options: [['-d, --debug', 'Enable debug output for manifest generation']],
14
13
  action: async (options) => {
15
14
  try {
15
+ // Set debug flag as environment variable for all components
16
+ if (options.debug) {
17
+ process.env.BMAD_DEBUG_MANIFEST = 'true';
18
+ console.log(chalk.cyan('Debug mode enabled\n'));
19
+ }
20
+
16
21
  const config = await ui.promptInstall();
17
22
 
18
23
  // Handle cancel
@@ -66,6 +71,7 @@ module.exports = {
66
71
  console.log(chalk.dim(' • ElevenLabs AI (150+ premium voices)'));
67
72
  console.log(chalk.dim(' • Piper TTS (50+ free voices)\n'));
68
73
 
74
+ const { default: inquirer } = await import('inquirer');
69
75
  await inquirer.prompt([
70
76
  {
71
77
  type: 'input',