bmad-fh 6.0.0-alpha.052779ef

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 (626) hide show
  1. package/.coderabbit.yaml +40 -0
  2. package/.githooks/post-checkout +129 -0
  3. package/.githooks/pre-commit +63 -0
  4. package/.githooks/pre-push +135 -0
  5. package/.github/CODE_OF_CONDUCT.md +128 -0
  6. package/.github/FUNDING.yaml +15 -0
  7. package/.github/ISSUE_TEMPLATE/config.yaml +8 -0
  8. package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
  9. package/.github/ISSUE_TEMPLATE/issue.md +32 -0
  10. package/.github/scripts/discord-helpers.sh +34 -0
  11. package/.github/workflows/bundle-latest.yaml +330 -0
  12. package/.github/workflows/discord.yaml +90 -0
  13. package/.github/workflows/docs.yaml +63 -0
  14. package/.github/workflows/manual-release.yaml +190 -0
  15. package/.github/workflows/publish-multi-artifact.yaml +54 -0
  16. package/.github/workflows/quality.yaml +115 -0
  17. package/.husky/pre-commit +20 -0
  18. package/.markdownlint-cli2.yaml +41 -0
  19. package/.nvmrc +1 -0
  20. package/.prettierignore +9 -0
  21. package/.vscode/settings.json +97 -0
  22. package/CHANGELOG.md +1394 -0
  23. package/CNAME +1 -0
  24. package/CONTRIBUTING.md +306 -0
  25. package/CONTRIBUTORS.md +32 -0
  26. package/LICENSE +30 -0
  27. package/README.md +126 -0
  28. package/SECURITY.md +85 -0
  29. package/TRADEMARK.md +55 -0
  30. package/Wordmark.png +0 -0
  31. package/banner-bmad-method.png +0 -0
  32. package/docs/404.md +9 -0
  33. package/docs/_README_WORKFLOW_DIAGRAMS.md +40 -0
  34. package/docs/_STYLE_GUIDE.md +367 -0
  35. package/docs/_archive/customize-workflows.md +30 -0
  36. package/docs/_archive/getting-started-bmadv4.md +247 -0
  37. package/docs/_archive/vendor-workflows.md +52 -0
  38. package/docs/downloads.md +72 -0
  39. package/docs/explanation/agents/barry-quick-flow.md +328 -0
  40. package/docs/explanation/agents/index.md +19 -0
  41. package/docs/explanation/architecture/four-phases.md +107 -0
  42. package/docs/explanation/architecture/preventing-agent-conflicts.md +111 -0
  43. package/docs/explanation/architecture/why-solutioning-matters.md +75 -0
  44. package/docs/explanation/bmm/index.md +131 -0
  45. package/docs/explanation/core/index.md +18 -0
  46. package/docs/explanation/core-concepts/agent-roles.md +179 -0
  47. package/docs/explanation/core-concepts/index.md +35 -0
  48. package/docs/explanation/core-concepts/what-are-agents.md +97 -0
  49. package/docs/explanation/core-concepts/what-are-modules.md +85 -0
  50. package/docs/explanation/core-concepts/what-are-workflows.md +204 -0
  51. package/docs/explanation/faq/brownfield-faq.md +73 -0
  52. package/docs/explanation/faq/getting-started-faq.md +67 -0
  53. package/docs/explanation/faq/implementation-faq.md +52 -0
  54. package/docs/explanation/faq/index.md +16 -0
  55. package/docs/explanation/faq/levels-and-tracks-faq.md +52 -0
  56. package/docs/explanation/faq/planning-faq.md +41 -0
  57. package/docs/explanation/faq/tools-faq.md +277 -0
  58. package/docs/explanation/faq/workflows-faq.md +61 -0
  59. package/docs/explanation/features/advanced-elicitation.md +95 -0
  60. package/docs/explanation/features/brainstorming-techniques.md +92 -0
  61. package/docs/explanation/features/party-mode.md +95 -0
  62. package/docs/explanation/features/quick-flow.md +149 -0
  63. package/docs/explanation/features/tea-overview.md +410 -0
  64. package/docs/explanation/features/web-bundles.md +34 -0
  65. package/docs/explanation/philosophy/facilitation-over-generation.md +333 -0
  66. package/docs/explanation/philosophy/testing-as-engineering.md +112 -0
  67. package/docs/explanation/tea/engagement-models.md +710 -0
  68. package/docs/explanation/tea/fixture-architecture.md +457 -0
  69. package/docs/explanation/tea/knowledge-base-system.md +554 -0
  70. package/docs/explanation/tea/network-first-patterns.md +853 -0
  71. package/docs/explanation/tea/risk-based-testing.md +586 -0
  72. package/docs/explanation/tea/test-quality-standards.md +907 -0
  73. package/docs/how-to/brownfield/add-feature-to-existing.md +74 -0
  74. package/docs/how-to/brownfield/document-existing-project.md +66 -0
  75. package/docs/how-to/brownfield/index.md +84 -0
  76. package/docs/how-to/brownfield/quick-fix-in-brownfield.md +77 -0
  77. package/docs/how-to/brownfield/use-tea-for-enterprise.md +526 -0
  78. package/docs/how-to/brownfield/use-tea-with-existing-tests.md +577 -0
  79. package/docs/how-to/customization/customize-agents.md +212 -0
  80. package/docs/how-to/customization/enable-tea-mcp-enhancements.md +424 -0
  81. package/docs/how-to/customization/index.md +23 -0
  82. package/docs/how-to/customization/integrate-playwright-utils.md +813 -0
  83. package/docs/how-to/customization/shard-large-documents.md +101 -0
  84. package/docs/how-to/get-answers-about-bmad.md +102 -0
  85. package/docs/how-to/installation/index.md +12 -0
  86. package/docs/how-to/installation/install-bmad.md +111 -0
  87. package/docs/how-to/installation/install-custom-modules.md +118 -0
  88. package/docs/how-to/installation/upgrade-to-v6.md +131 -0
  89. package/docs/how-to/workflows/bmgd-quick-flow.md +156 -0
  90. package/docs/how-to/workflows/conduct-research.md +97 -0
  91. package/docs/how-to/workflows/create-architecture.md +119 -0
  92. package/docs/how-to/workflows/create-epics-and-stories.md +109 -0
  93. package/docs/how-to/workflows/create-prd.md +91 -0
  94. package/docs/how-to/workflows/create-product-brief.md +94 -0
  95. package/docs/how-to/workflows/create-story.md +102 -0
  96. package/docs/how-to/workflows/create-ux-design.md +100 -0
  97. package/docs/how-to/workflows/implement-story.md +97 -0
  98. package/docs/how-to/workflows/quick-spec.md +122 -0
  99. package/docs/how-to/workflows/run-atdd.md +436 -0
  100. package/docs/how-to/workflows/run-automate.md +653 -0
  101. package/docs/how-to/workflows/run-brainstorming-session.md +73 -0
  102. package/docs/how-to/workflows/run-code-review.md +89 -0
  103. package/docs/how-to/workflows/run-implementation-readiness.md +125 -0
  104. package/docs/how-to/workflows/run-nfr-assess.md +679 -0
  105. package/docs/how-to/workflows/run-sprint-planning.md +94 -0
  106. package/docs/how-to/workflows/run-test-design.md +98 -0
  107. package/docs/how-to/workflows/run-test-review.md +605 -0
  108. package/docs/how-to/workflows/run-trace.md +883 -0
  109. package/docs/how-to/workflows/setup-ci.md +712 -0
  110. package/docs/how-to/workflows/setup-party-mode.md +89 -0
  111. package/docs/how-to/workflows/setup-test-framework.md +98 -0
  112. package/docs/index.md +63 -0
  113. package/docs/migration-guide.md +365 -0
  114. package/docs/multi-scope-guide.md +379 -0
  115. package/docs/plans/multi-scope-parallel-artifacts-plan.md +695 -0
  116. package/docs/reference/agents/index.md +109 -0
  117. package/docs/reference/configuration/core-tasks.md +67 -0
  118. package/docs/reference/configuration/global-config.md +28 -0
  119. package/docs/reference/glossary/index.md +159 -0
  120. package/docs/reference/tea/commands.md +254 -0
  121. package/docs/reference/tea/configuration.md +678 -0
  122. package/docs/reference/tea/knowledge-base.md +340 -0
  123. package/docs/reference/workflows/core-workflows.md +32 -0
  124. package/docs/reference/workflows/document-project.md +73 -0
  125. package/docs/reference/workflows/index.md +12 -0
  126. package/docs/tutorials/getting-started/getting-started-bmadv6.md +246 -0
  127. package/docs/tutorials/getting-started/images/workflow-method-greenfield.excalidraw +5034 -0
  128. package/docs/tutorials/getting-started/images/workflow-method-greenfield.svg +4 -0
  129. package/docs/tutorials/getting-started/images/workflow-overview.jpg +0 -0
  130. package/docs/tutorials/getting-started/tea-lite-quickstart.md +444 -0
  131. package/docs/tutorials/getting-started/workflow-overview.jpg +0 -0
  132. package/eslint.config.mjs +152 -0
  133. package/package.json +117 -0
  134. package/prettier.config.mjs +32 -0
  135. package/src/bmm/_module-installer/installer.js +48 -0
  136. package/src/bmm/_module-installer/platform-specifics/claude-code.js +35 -0
  137. package/src/bmm/_module-installer/platform-specifics/windsurf.js +32 -0
  138. package/src/bmm/agents/analyst.agent.yaml +41 -0
  139. package/src/bmm/agents/architect.agent.yaml +33 -0
  140. package/src/bmm/agents/dev.agent.yaml +38 -0
  141. package/src/bmm/agents/pm.agent.yaml +51 -0
  142. package/src/bmm/agents/quick-flow-solo-dev.agent.yaml +32 -0
  143. package/src/bmm/agents/sm.agent.yaml +47 -0
  144. package/src/bmm/agents/tea.agent.yaml +68 -0
  145. package/src/bmm/agents/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
  146. package/src/bmm/agents/tech-writer/tech-writer.agent.yaml +49 -0
  147. package/src/bmm/agents/ux-designer.agent.yaml +30 -0
  148. package/src/bmm/data/README.md +29 -0
  149. package/src/bmm/data/project-context-template.md +40 -0
  150. package/src/bmm/module.yaml +64 -0
  151. package/src/bmm/sub-modules/claude-code/config.yaml +4 -0
  152. package/src/bmm/sub-modules/claude-code/injections.yaml +242 -0
  153. package/src/bmm/sub-modules/claude-code/readme.md +87 -0
  154. package/src/bmm/teams/default-party.csv +21 -0
  155. package/src/bmm/teams/team-fullstack.yaml +12 -0
  156. package/src/bmm/testarch/knowledge/api-request.md +442 -0
  157. package/src/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
  158. package/src/bmm/testarch/knowledge/auth-session.md +552 -0
  159. package/src/bmm/testarch/knowledge/burn-in.md +273 -0
  160. package/src/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  161. package/src/bmm/testarch/knowledge/component-tdd.md +486 -0
  162. package/src/bmm/testarch/knowledge/contract-testing.md +957 -0
  163. package/src/bmm/testarch/knowledge/data-factories.md +500 -0
  164. package/src/bmm/testarch/knowledge/email-auth.md +721 -0
  165. package/src/bmm/testarch/knowledge/error-handling.md +725 -0
  166. package/src/bmm/testarch/knowledge/feature-flags.md +750 -0
  167. package/src/bmm/testarch/knowledge/file-utils.md +463 -0
  168. package/src/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  169. package/src/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  170. package/src/bmm/testarch/knowledge/intercept-network-call.md +430 -0
  171. package/src/bmm/testarch/knowledge/log.md +429 -0
  172. package/src/bmm/testarch/knowledge/network-error-monitor.md +405 -0
  173. package/src/bmm/testarch/knowledge/network-first.md +486 -0
  174. package/src/bmm/testarch/knowledge/network-recorder.md +527 -0
  175. package/src/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  176. package/src/bmm/testarch/knowledge/overview.md +286 -0
  177. package/src/bmm/testarch/knowledge/playwright-config.md +730 -0
  178. package/src/bmm/testarch/knowledge/probability-impact.md +601 -0
  179. package/src/bmm/testarch/knowledge/recurse.md +421 -0
  180. package/src/bmm/testarch/knowledge/risk-governance.md +615 -0
  181. package/src/bmm/testarch/knowledge/selective-testing.md +732 -0
  182. package/src/bmm/testarch/knowledge/selector-resilience.md +527 -0
  183. package/src/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  184. package/src/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  185. package/src/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  186. package/src/bmm/testarch/knowledge/test-quality.md +664 -0
  187. package/src/bmm/testarch/knowledge/timing-debugging.md +372 -0
  188. package/src/bmm/testarch/knowledge/visual-debugging.md +524 -0
  189. package/src/bmm/testarch/tea-index.csv +34 -0
  190. package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  191. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  192. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  193. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  194. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  195. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  196. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  197. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +194 -0
  198. package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
  199. package/src/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  200. package/src/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  201. package/src/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  202. package/src/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  203. package/src/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  204. package/src/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  205. package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  206. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  207. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
  208. package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  209. package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  210. package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  211. package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  212. package/src/bmm/workflows/1-analysis/research/research.template.md +29 -0
  213. package/src/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  214. package/src/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  215. package/src/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  216. package/src/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  217. package/src/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
  218. package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  219. package/src/bmm/workflows/1-analysis/research/workflow.md +173 -0
  220. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  221. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  222. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  223. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  224. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  225. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  226. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  227. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  228. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  229. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  230. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  231. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  232. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  233. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  234. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +228 -0
  235. package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  236. package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
  237. package/src/bmm/workflows/2-plan-workflows/prd/data/domain-complexity.csv +13 -0
  238. package/src/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +197 -0
  239. package/src/bmm/workflows/2-plan-workflows/prd/data/project-types.csv +11 -0
  240. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-01-init.md +191 -0
  241. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-01b-continue.md +153 -0
  242. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +224 -0
  243. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-03-success.md +226 -0
  244. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +213 -0
  245. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +207 -0
  246. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-06-innovation.md +226 -0
  247. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-07-project-type.md +237 -0
  248. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-08-scoping.md +228 -0
  249. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-09-functional.md +231 -0
  250. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-10-nonfunctional.md +242 -0
  251. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +217 -0
  252. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +180 -0
  253. package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +247 -0
  254. package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  255. package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +249 -0
  256. package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +253 -0
  257. package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +168 -0
  258. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +218 -0
  259. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
  260. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
  261. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
  262. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  263. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
  264. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
  265. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  266. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  267. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
  268. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
  269. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  270. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
  271. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
  272. package/src/bmm/workflows/2-plan-workflows/prd/templates/prd-template.md +10 -0
  273. package/src/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +433 -0
  274. package/src/bmm/workflows/2-plan-workflows/prd/workflow.md +150 -0
  275. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
  276. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
  277. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
  278. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
  279. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
  280. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +133 -0
  281. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  282. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
  283. package/src/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  284. package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
  285. package/src/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  286. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  287. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
  288. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  289. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
  290. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  291. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  292. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  293. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  294. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +352 -0
  295. package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
  296. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  297. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  298. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  299. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +145 -0
  300. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  301. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
  302. package/src/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  303. package/src/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  304. package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +51 -0
  305. package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  306. package/src/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
  307. package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +60 -0
  308. package/src/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  309. package/src/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
  310. package/src/bmm/workflows/4-implementation/create-story/template.md +49 -0
  311. package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +61 -0
  312. package/src/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  313. package/src/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  314. package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +27 -0
  315. package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
  316. package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +58 -0
  317. package/src/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  318. package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
  319. package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  320. package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +54 -0
  321. package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
  322. package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +36 -0
  323. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +156 -0
  324. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  325. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
  326. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  327. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  328. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +140 -0
  329. package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +52 -0
  330. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +189 -0
  331. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +144 -0
  332. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
  333. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +191 -0
  334. package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  335. package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  336. package/src/bmm/workflows/document-project/checklist.md +245 -0
  337. package/src/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  338. package/src/bmm/workflows/document-project/instructions.md +221 -0
  339. package/src/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  340. package/src/bmm/workflows/document-project/templates/index-template.md +169 -0
  341. package/src/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  342. package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  343. package/src/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  344. package/src/bmm/workflows/document-project/workflow.yaml +30 -0
  345. package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  346. package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  347. package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  348. package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  349. package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
  350. package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
  351. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
  352. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
  353. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +27 -0
  354. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
  355. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
  356. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +27 -0
  357. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
  358. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
  359. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +27 -0
  360. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
  361. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
  362. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +27 -0
  363. package/src/bmm/workflows/generate-project-context/project-context-template.md +21 -0
  364. package/src/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
  365. package/src/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -0
  366. package/src/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -0
  367. package/src/bmm/workflows/generate-project-context/workflow.md +49 -0
  368. package/src/bmm/workflows/testarch/atdd/atdd-checklist-template.md +364 -0
  369. package/src/bmm/workflows/testarch/atdd/checklist.md +374 -0
  370. package/src/bmm/workflows/testarch/atdd/instructions.md +806 -0
  371. package/src/bmm/workflows/testarch/atdd/workflow.yaml +47 -0
  372. package/src/bmm/workflows/testarch/automate/checklist.md +582 -0
  373. package/src/bmm/workflows/testarch/automate/instructions.md +1324 -0
  374. package/src/bmm/workflows/testarch/automate/workflow.yaml +54 -0
  375. package/src/bmm/workflows/testarch/ci/checklist.md +248 -0
  376. package/src/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -0
  377. package/src/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
  378. package/src/bmm/workflows/testarch/ci/instructions.md +536 -0
  379. package/src/bmm/workflows/testarch/ci/workflow.yaml +47 -0
  380. package/src/bmm/workflows/testarch/framework/checklist.md +321 -0
  381. package/src/bmm/workflows/testarch/framework/instructions.md +481 -0
  382. package/src/bmm/workflows/testarch/framework/workflow.yaml +49 -0
  383. package/src/bmm/workflows/testarch/nfr-assess/checklist.md +407 -0
  384. package/src/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
  385. package/src/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +445 -0
  386. package/src/bmm/workflows/testarch/nfr-assess/workflow.yaml +49 -0
  387. package/src/bmm/workflows/testarch/test-design/checklist.md +235 -0
  388. package/src/bmm/workflows/testarch/test-design/instructions.md +788 -0
  389. package/src/bmm/workflows/testarch/test-design/test-design-template.md +294 -0
  390. package/src/bmm/workflows/testarch/test-design/workflow.yaml +56 -0
  391. package/src/bmm/workflows/testarch/test-review/checklist.md +472 -0
  392. package/src/bmm/workflows/testarch/test-review/instructions.md +628 -0
  393. package/src/bmm/workflows/testarch/test-review/test-review-template.md +390 -0
  394. package/src/bmm/workflows/testarch/test-review/workflow.yaml +48 -0
  395. package/src/bmm/workflows/testarch/trace/checklist.md +655 -0
  396. package/src/bmm/workflows/testarch/trace/instructions.md +1047 -0
  397. package/src/bmm/workflows/testarch/trace/trace-template.md +675 -0
  398. package/src/bmm/workflows/testarch/trace/workflow.yaml +57 -0
  399. package/src/bmm/workflows/workflow-status/init/instructions.md +346 -0
  400. package/src/bmm/workflows/workflow-status/init/workflow.yaml +30 -0
  401. package/src/bmm/workflows/workflow-status/instructions.md +397 -0
  402. package/src/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +103 -0
  403. package/src/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +100 -0
  404. package/src/bmm/workflows/workflow-status/paths/method-brownfield.yaml +103 -0
  405. package/src/bmm/workflows/workflow-status/paths/method-greenfield.yaml +100 -0
  406. package/src/bmm/workflows/workflow-status/project-levels.yaml +59 -0
  407. package/src/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
  408. package/src/bmm/workflows/workflow-status/workflow.yaml +32 -0
  409. package/src/core/_module-installer/installer.js +60 -0
  410. package/src/core/agents/bmad-master.agent.yaml +30 -0
  411. package/src/core/lib/scope/artifact-resolver.js +298 -0
  412. package/src/core/lib/scope/event-logger.js +400 -0
  413. package/src/core/lib/scope/index.js +30 -0
  414. package/src/core/lib/scope/scope-context.js +301 -0
  415. package/src/core/lib/scope/scope-initializer.js +456 -0
  416. package/src/core/lib/scope/scope-manager.js +512 -0
  417. package/src/core/lib/scope/scope-migrator.js +434 -0
  418. package/src/core/lib/scope/scope-sync.js +483 -0
  419. package/src/core/lib/scope/scope-validator.js +294 -0
  420. package/src/core/lib/scope/state-lock.js +336 -0
  421. package/src/core/module.yaml +53 -0
  422. package/src/core/resources/excalidraw/README.md +160 -0
  423. package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  424. package/src/core/resources/excalidraw/library-loader.md +50 -0
  425. package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
  426. package/src/core/tasks/editorial-review-prose.xml +91 -0
  427. package/src/core/tasks/editorial-review-structure.xml +198 -0
  428. package/src/core/tasks/index-docs.xml +65 -0
  429. package/src/core/tasks/review-adversarial-general.xml +46 -0
  430. package/src/core/tasks/shard-doc.xml +109 -0
  431. package/src/core/tasks/workflow.xml +277 -0
  432. package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
  433. package/src/core/workflows/advanced-elicitation/workflow.xml +117 -0
  434. package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
  435. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  436. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  437. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  438. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  439. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  440. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  441. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  442. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  443. package/src/core/workflows/brainstorming/template.md +15 -0
  444. package/src/core/workflows/brainstorming/workflow.md +58 -0
  445. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  446. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  447. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +157 -0
  448. package/src/core/workflows/party-mode/workflow.md +194 -0
  449. package/src/utility/agent-components/activation-rules.txt +6 -0
  450. package/src/utility/agent-components/activation-steps.txt +28 -0
  451. package/src/utility/agent-components/agent-command-header.md +1 -0
  452. package/src/utility/agent-components/agent.customize.template.yaml +41 -0
  453. package/src/utility/agent-components/handler-action.txt +4 -0
  454. package/src/utility/agent-components/handler-data.txt +5 -0
  455. package/src/utility/agent-components/handler-exec.txt +19 -0
  456. package/src/utility/agent-components/handler-multi.txt +14 -0
  457. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  458. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  459. package/src/utility/agent-components/handler-workflow.txt +10 -0
  460. package/src/utility/agent-components/menu-handlers.txt +6 -0
  461. package/test/README.md +295 -0
  462. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +27 -0
  463. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +30 -0
  464. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +22 -0
  465. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +20 -0
  466. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +25 -0
  467. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +24 -0
  468. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +25 -0
  469. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +25 -0
  470. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +25 -0
  471. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +31 -0
  472. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +25 -0
  473. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +25 -0
  474. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +25 -0
  475. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +25 -0
  476. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
  477. package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
  478. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +27 -0
  479. package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
  480. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +24 -0
  481. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +27 -0
  482. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +27 -0
  483. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +24 -0
  484. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +29 -0
  485. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +31 -0
  486. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +28 -0
  487. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +28 -0
  488. package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
  489. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +28 -0
  490. package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
  491. package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
  492. package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
  493. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +24 -0
  494. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +22 -0
  495. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +27 -0
  496. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +31 -0
  497. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +22 -0
  498. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +38 -0
  499. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +24 -0
  500. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +31 -0
  501. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +34 -0
  502. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +24 -0
  503. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +24 -0
  504. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +24 -0
  505. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +24 -0
  506. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +23 -0
  507. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +24 -0
  508. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +24 -0
  509. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +24 -0
  510. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +22 -0
  511. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +28 -0
  512. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +30 -0
  513. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +24 -0
  514. package/test/test-agent-schema.js +387 -0
  515. package/test/test-cli-integration.sh +159 -0
  516. package/test/test-installation-components.js +214 -0
  517. package/test/test-scope-e2e.js +439 -0
  518. package/test/test-scope-system.js +781 -0
  519. package/test/unit-test-schema.js +133 -0
  520. package/tools/bmad-npx-wrapper.js +38 -0
  521. package/tools/build-docs.js +577 -0
  522. package/tools/cli/README.md +7 -0
  523. package/tools/cli/bmad-cli.js +58 -0
  524. package/tools/cli/commands/install.js +87 -0
  525. package/tools/cli/commands/scope.js +474 -0
  526. package/tools/cli/external-official-modules.yaml +41 -0
  527. package/tools/cli/installers/install-messages.yaml +58 -0
  528. package/tools/cli/installers/lib/core/config-collector.js +1079 -0
  529. package/tools/cli/installers/lib/core/custom-module-cache.js +259 -0
  530. package/tools/cli/installers/lib/core/dependency-resolver.js +739 -0
  531. package/tools/cli/installers/lib/core/detector.js +223 -0
  532. package/tools/cli/installers/lib/core/ide-config-manager.js +156 -0
  533. package/tools/cli/installers/lib/core/installer.js +2585 -0
  534. package/tools/cli/installers/lib/core/manifest-generator.js +963 -0
  535. package/tools/cli/installers/lib/core/manifest.js +590 -0
  536. package/tools/cli/installers/lib/custom/handler.js +363 -0
  537. package/tools/cli/installers/lib/ide/_base-ide.js +654 -0
  538. package/tools/cli/installers/lib/ide/antigravity.js +486 -0
  539. package/tools/cli/installers/lib/ide/auggie.js +244 -0
  540. package/tools/cli/installers/lib/ide/claude-code.js +487 -0
  541. package/tools/cli/installers/lib/ide/cline.js +269 -0
  542. package/tools/cli/installers/lib/ide/codex.js +375 -0
  543. package/tools/cli/installers/lib/ide/crush.js +300 -0
  544. package/tools/cli/installers/lib/ide/cursor.js +169 -0
  545. package/tools/cli/installers/lib/ide/gemini.js +301 -0
  546. package/tools/cli/installers/lib/ide/github-copilot.js +383 -0
  547. package/tools/cli/installers/lib/ide/iflow.js +191 -0
  548. package/tools/cli/installers/lib/ide/kilo.js +250 -0
  549. package/tools/cli/installers/lib/ide/kiro-cli.js +326 -0
  550. package/tools/cli/installers/lib/ide/manager.js +244 -0
  551. package/tools/cli/installers/lib/ide/opencode.js +257 -0
  552. package/tools/cli/installers/lib/ide/qwen.js +372 -0
  553. package/tools/cli/installers/lib/ide/roo.js +270 -0
  554. package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
  555. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +96 -0
  556. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +158 -0
  557. package/tools/cli/installers/lib/ide/shared/module-injections.js +136 -0
  558. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +119 -0
  559. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +242 -0
  560. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +29 -0
  561. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  562. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  563. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +30 -0
  564. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +45 -0
  565. package/tools/cli/installers/lib/ide/trae.js +313 -0
  566. package/tools/cli/installers/lib/ide/windsurf.js +258 -0
  567. package/tools/cli/installers/lib/message-loader.js +85 -0
  568. package/tools/cli/installers/lib/modules/external-manager.js +133 -0
  569. package/tools/cli/installers/lib/modules/manager.js +1362 -0
  570. package/tools/cli/lib/activation-builder.js +163 -0
  571. package/tools/cli/lib/agent/compiler.js +522 -0
  572. package/tools/cli/lib/agent/installer.js +716 -0
  573. package/tools/cli/lib/agent/template-engine.js +152 -0
  574. package/tools/cli/lib/agent-analyzer.js +109 -0
  575. package/tools/cli/lib/agent-party-generator.js +194 -0
  576. package/tools/cli/lib/cli-utils.js +227 -0
  577. package/tools/cli/lib/config.js +213 -0
  578. package/tools/cli/lib/file-ops.js +204 -0
  579. package/tools/cli/lib/platform-codes.js +116 -0
  580. package/tools/cli/lib/project-root.js +77 -0
  581. package/tools/cli/lib/prompts.js +433 -0
  582. package/tools/cli/lib/ui.js +1591 -0
  583. package/tools/cli/lib/xml-handler.js +177 -0
  584. package/tools/cli/lib/xml-to-markdown.js +82 -0
  585. package/tools/cli/lib/yaml-format.js +245 -0
  586. package/tools/cli/lib/yaml-xml-builder.js +587 -0
  587. package/tools/cli/scripts/migrate-workflows.js +273 -0
  588. package/tools/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  589. package/tools/docs/index.md +2 -0
  590. package/tools/fix-doc-links.js +288 -0
  591. package/tools/flattener/aggregate.js +76 -0
  592. package/tools/flattener/binary.js +80 -0
  593. package/tools/flattener/discovery.js +71 -0
  594. package/tools/flattener/files.js +35 -0
  595. package/tools/flattener/ignoreRules.js +172 -0
  596. package/tools/flattener/main.js +483 -0
  597. package/tools/flattener/projectRoot.js +201 -0
  598. package/tools/flattener/prompts.js +44 -0
  599. package/tools/flattener/stats.helpers.js +368 -0
  600. package/tools/flattener/stats.js +75 -0
  601. package/tools/flattener/test-matrix.js +409 -0
  602. package/tools/flattener/xml.js +82 -0
  603. package/tools/format-workflow-md.js +263 -0
  604. package/tools/lib/xml-utils.js +13 -0
  605. package/tools/maintainer/review-pr-README.md +55 -0
  606. package/tools/maintainer/review-pr.md +242 -0
  607. package/tools/migrate-custom-module-paths.js +124 -0
  608. package/tools/platform-codes.yaml +157 -0
  609. package/tools/schema/agent.js +493 -0
  610. package/tools/validate-agent-schema.js +110 -0
  611. package/tools/validate-doc-links.js +363 -0
  612. package/tools/validate-svg-changes.sh +356 -0
  613. package/website/README.md +76 -0
  614. package/website/astro.config.mjs +228 -0
  615. package/website/public/favicon.ico +0 -0
  616. package/website/public/img/bmad-dark.png +0 -0
  617. package/website/public/img/bmad-light.png +0 -0
  618. package/website/public/img/logo.svg +4 -0
  619. package/website/public/robots.txt +37 -0
  620. package/website/src/components/Banner.astro +59 -0
  621. package/website/src/components/Header.astro +121 -0
  622. package/website/src/components/MobileMenuFooter.astro +53 -0
  623. package/website/src/content/config.ts +6 -0
  624. package/website/src/lib/site-url.js +25 -0
  625. package/website/src/rehype-markdown-links.js +102 -0
  626. package/website/src/styles/custom.css +485 -0
@@ -0,0 +1,87 @@
1
+ const chalk = require('chalk');
2
+ const path = require('node:path');
3
+ const { Installer } = require('../installers/lib/core/installer');
4
+ const { UI } = require('../lib/ui');
5
+
6
+ const installer = new Installer();
7
+ const ui = new UI();
8
+
9
+ module.exports = {
10
+ command: 'install',
11
+ description: 'Install BMAD Core agents and tools',
12
+ options: [['-d, --debug', 'Enable debug output for manifest generation']],
13
+ action: async (options) => {
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
+
21
+ const config = await ui.promptInstall();
22
+
23
+ // Handle cancel
24
+ if (config.actionType === 'cancel') {
25
+ console.log(chalk.yellow('Installation cancelled.'));
26
+ process.exit(0);
27
+ return;
28
+ }
29
+
30
+ // Handle quick update separately
31
+ if (config.actionType === 'quick-update') {
32
+ const result = await installer.quickUpdate(config);
33
+ console.log(chalk.green('\n✨ Quick update complete!'));
34
+ console.log(chalk.cyan(`Updated ${result.moduleCount} modules with preserved settings (${result.modules.join(', ')})`));
35
+
36
+ // Display version-specific end message
37
+ const { MessageLoader } = require('../installers/lib/message-loader');
38
+ const messageLoader = new MessageLoader();
39
+ messageLoader.displayEndMessage();
40
+
41
+ process.exit(0);
42
+ return;
43
+ }
44
+
45
+ // Handle compile agents separately
46
+ if (config.actionType === 'compile-agents') {
47
+ const result = await installer.compileAgents(config);
48
+ console.log(chalk.green('\n✨ Agent recompilation complete!'));
49
+ console.log(chalk.cyan(`Recompiled ${result.agentCount} agents with customizations applied`));
50
+ process.exit(0);
51
+ return;
52
+ }
53
+
54
+ // Regular install/update flow
55
+ const result = await installer.install(config);
56
+
57
+ // Check if installation was cancelled
58
+ if (result && result.cancelled) {
59
+ process.exit(0);
60
+ return;
61
+ }
62
+
63
+ // Check if installation succeeded
64
+ if (result && result.success) {
65
+ // Display version-specific end message from install-messages.yaml
66
+ const { MessageLoader } = require('../installers/lib/message-loader');
67
+ const messageLoader = new MessageLoader();
68
+ messageLoader.displayEndMessage();
69
+
70
+ process.exit(0);
71
+ }
72
+ } catch (error) {
73
+ // Check if error has a complete formatted message
74
+ if (error.fullMessage) {
75
+ console.error(error.fullMessage);
76
+ if (error.stack) {
77
+ console.error('\n' + chalk.dim(error.stack));
78
+ }
79
+ } else {
80
+ // Generic error handling for all other errors
81
+ console.error(chalk.red('Installation failed:'), error.message);
82
+ console.error(chalk.dim(error.stack));
83
+ }
84
+ process.exit(1);
85
+ }
86
+ },
87
+ };
@@ -0,0 +1,474 @@
1
+ const chalk = require('chalk');
2
+ const path = require('node:path');
3
+ const fs = require('fs-extra');
4
+ const { select, text, confirm, isCancel } = require('../lib/prompts');
5
+
6
+ // Import scope management classes from core lib
7
+ // Note: These will be available after installation in _bmad/core/lib/scope/
8
+ // For CLI, we use them from src during development
9
+ const { ScopeManager } = require('../../../src/core/lib/scope/scope-manager');
10
+ const { ScopeInitializer } = require('../../../src/core/lib/scope/scope-initializer');
11
+ const { ScopeValidator } = require('../../../src/core/lib/scope/scope-validator');
12
+
13
+ /**
14
+ * Format a date string for display
15
+ * @param {string} dateStr - ISO date string
16
+ * @returns {string} Formatted date
17
+ */
18
+ function formatDate(dateStr) {
19
+ if (!dateStr) return 'N/A';
20
+ const date = new Date(dateStr);
21
+ return date.toLocaleDateString() + ' ' + date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
22
+ }
23
+
24
+ /**
25
+ * Display scope list in a formatted table
26
+ * @param {object[]} scopes - Array of scope objects
27
+ */
28
+ function displayScopeList(scopes) {
29
+ if (scopes.length === 0) {
30
+ console.log(chalk.yellow('\nNo scopes found. Create one with: bmad scope create <id>\n'));
31
+ return;
32
+ }
33
+
34
+ console.log(chalk.bold('\n Scopes:\n'));
35
+
36
+ // Calculate column widths
37
+ const idWidth = Math.max(10, ...scopes.map((s) => s.id.length)) + 2;
38
+ const nameWidth = Math.max(15, ...scopes.map((s) => (s.name || '').length)) + 2;
39
+
40
+ // Header
41
+ console.log(
42
+ chalk.dim(' ') +
43
+ chalk.bold('ID'.padEnd(idWidth)) +
44
+ chalk.bold('Name'.padEnd(nameWidth)) +
45
+ chalk.bold('Status'.padEnd(10)) +
46
+ chalk.bold('Created'),
47
+ );
48
+ console.log(chalk.dim(' ' + '─'.repeat(idWidth + nameWidth + 10 + 20)));
49
+
50
+ // Rows
51
+ for (const scope of scopes) {
52
+ const statusColor = scope.status === 'active' ? chalk.green : chalk.dim;
53
+ console.log(
54
+ ' ' +
55
+ chalk.cyan(scope.id.padEnd(idWidth)) +
56
+ (scope.name || scope.id).padEnd(nameWidth) +
57
+ statusColor(scope.status.padEnd(10)) +
58
+ chalk.dim(formatDate(scope.created).split(' ')[0]),
59
+ );
60
+ }
61
+ console.log();
62
+ }
63
+
64
+ /**
65
+ * Display detailed scope info
66
+ * @param {object} scope - Scope object
67
+ * @param {object} paths - Scope paths
68
+ * @param {object} tree - Dependency tree
69
+ */
70
+ function displayScopeInfo(scope, paths, tree) {
71
+ console.log(chalk.bold(`\n Scope: ${scope.name || scope.id}\n`));
72
+
73
+ console.log(chalk.dim(' ─────────────────────────────────────'));
74
+ console.log(` ${chalk.bold('ID:')} ${chalk.cyan(scope.id)}`);
75
+ console.log(` ${chalk.bold('Name:')} ${scope.name || 'N/A'}`);
76
+ console.log(` ${chalk.bold('Description:')} ${scope.description || 'No description'}`);
77
+ console.log(` ${chalk.bold('Status:')} ${scope.status === 'active' ? chalk.green('active') : chalk.dim('archived')}`);
78
+ console.log(` ${chalk.bold('Created:')} ${formatDate(scope.created)}`);
79
+ console.log(` ${chalk.bold('Last Active:')} ${formatDate(scope._meta?.last_activity)}`);
80
+ console.log(` ${chalk.bold('Artifacts:')} ${scope._meta?.artifact_count || 0}`);
81
+
82
+ console.log(chalk.dim('\n ─────────────────────────────────────'));
83
+ console.log(chalk.bold(' Paths:'));
84
+ console.log(` Planning: ${chalk.dim(paths.planning)}`);
85
+ console.log(` Implementation: ${chalk.dim(paths.implementation)}`);
86
+ console.log(` Tests: ${chalk.dim(paths.tests)}`);
87
+
88
+ console.log(chalk.dim('\n ─────────────────────────────────────'));
89
+ console.log(chalk.bold(' Dependencies:'));
90
+ if (tree.dependencies.length > 0) {
91
+ for (const dep of tree.dependencies) {
92
+ const statusIcon = dep.status === 'active' ? chalk.green('●') : chalk.dim('○');
93
+ console.log(` ${statusIcon} ${dep.scope} (${dep.name})`);
94
+ }
95
+ } else {
96
+ console.log(chalk.dim(' None'));
97
+ }
98
+
99
+ console.log(chalk.bold('\n Dependents (scopes that depend on this):'));
100
+ if (tree.dependents.length > 0) {
101
+ for (const dep of tree.dependents) {
102
+ console.log(` ← ${chalk.cyan(dep)}`);
103
+ }
104
+ } else {
105
+ console.log(chalk.dim(' None'));
106
+ }
107
+
108
+ console.log();
109
+ }
110
+
111
+ /**
112
+ * Handle 'list' subcommand
113
+ */
114
+ async function handleList(projectRoot, options) {
115
+ const manager = new ScopeManager({ projectRoot });
116
+
117
+ try {
118
+ await manager.initialize();
119
+ const scopes = await manager.listScopes(options.status ? { status: options.status } : {});
120
+ displayScopeList(scopes);
121
+ } catch (error) {
122
+ if (error.message.includes('does not exist')) {
123
+ console.log(chalk.yellow('\nScope system not initialized. Run: bmad scope init\n'));
124
+ } else {
125
+ throw error;
126
+ }
127
+ }
128
+ }
129
+
130
+ /**
131
+ * Handle 'create' subcommand
132
+ */
133
+ async function handleCreate(projectRoot, scopeId, options) {
134
+ const manager = new ScopeManager({ projectRoot });
135
+ const initializer = new ScopeInitializer({ projectRoot });
136
+ const validator = new ScopeValidator();
137
+
138
+ // If no scopeId provided, prompt for it
139
+ if (!scopeId) {
140
+ const inputId = await text({
141
+ message: 'Enter scope ID (lowercase, letters/numbers/hyphens):',
142
+ placeholder: 'e.g., auth, payments, user-service',
143
+ validate: (value) => {
144
+ const result = validator.validateScopeId(value);
145
+ return result.valid ? undefined : result.error;
146
+ },
147
+ });
148
+
149
+ if (isCancel(inputId)) {
150
+ console.log(chalk.yellow('Cancelled.'));
151
+ return;
152
+ }
153
+ scopeId = inputId;
154
+ }
155
+
156
+ // Validate scope ID
157
+ const idValidation = validator.validateScopeId(scopeId);
158
+ if (!idValidation.valid) {
159
+ console.error(chalk.red(`Error: ${idValidation.error}`));
160
+ process.exit(1);
161
+ }
162
+
163
+ // Get scope name if not provided
164
+ let name = options.name;
165
+ if (!name) {
166
+ const inputName = await text({
167
+ message: 'Enter scope name (human-readable):',
168
+ placeholder: `e.g., Authentication Service`,
169
+ initialValue: scopeId.charAt(0).toUpperCase() + scopeId.slice(1).replaceAll('-', ' '),
170
+ });
171
+
172
+ if (isCancel(inputName)) {
173
+ console.log(chalk.yellow('Cancelled.'));
174
+ return;
175
+ }
176
+ name = inputName;
177
+ }
178
+
179
+ // Get description if not provided
180
+ let description = options.description;
181
+ if (!description) {
182
+ const inputDesc = await text({
183
+ message: 'Enter scope description (optional):',
184
+ placeholder: 'Brief description of this scope',
185
+ });
186
+
187
+ if (isCancel(inputDesc)) {
188
+ console.log(chalk.yellow('Cancelled.'));
189
+ return;
190
+ }
191
+ description = inputDesc || '';
192
+ }
193
+
194
+ console.log(chalk.blue('\nCreating scope...'));
195
+
196
+ // Initialize scope system if needed
197
+ await manager.initialize();
198
+
199
+ // Check if system is initialized
200
+ const systemInit = await initializer.isSystemInitialized();
201
+ if (!systemInit) {
202
+ console.log(chalk.blue('Initializing scope system...'));
203
+ await initializer.initializeScopeSystem();
204
+ }
205
+
206
+ // Create scope in configuration
207
+ const scope = await manager.createScope(scopeId, {
208
+ name,
209
+ description,
210
+ dependencies: options.dependencies ? options.dependencies.split(',').map((d) => d.trim()) : [],
211
+ });
212
+
213
+ // Create scope directory structure
214
+ const paths = await initializer.initializeScope(scopeId, {
215
+ name,
216
+ description,
217
+ createContext: options.context,
218
+ });
219
+
220
+ console.log(chalk.green(`\n✓ Scope '${scopeId}' created successfully!\n`));
221
+ console.log(chalk.dim(' Directories created:'));
222
+ console.log(` ${paths.planning}`);
223
+ console.log(` ${paths.implementation}`);
224
+ console.log(` ${paths.tests}`);
225
+ console.log();
226
+ console.log(chalk.cyan(` Use with: bmad workflow --scope ${scopeId}`));
227
+ console.log();
228
+ }
229
+
230
+ /**
231
+ * Handle 'info' subcommand
232
+ */
233
+ async function handleInfo(projectRoot, scopeId) {
234
+ if (!scopeId) {
235
+ console.error(chalk.red('Error: Scope ID is required. Usage: bmad scope info <scope-id>'));
236
+ process.exit(1);
237
+ }
238
+
239
+ const manager = new ScopeManager({ projectRoot });
240
+
241
+ await manager.initialize();
242
+ const scope = await manager.getScope(scopeId);
243
+
244
+ if (!scope) {
245
+ console.error(chalk.red(`Error: Scope '${scopeId}' not found.`));
246
+ process.exit(1);
247
+ }
248
+
249
+ const paths = await manager.getScopePaths(scopeId);
250
+ const tree = await manager.getDependencyTree(scopeId);
251
+
252
+ displayScopeInfo(scope, paths, tree);
253
+ }
254
+
255
+ /**
256
+ * Handle 'remove' subcommand
257
+ */
258
+ async function handleRemove(projectRoot, scopeId, options) {
259
+ if (!scopeId) {
260
+ console.error(chalk.red('Error: Scope ID is required. Usage: bmad scope remove <scope-id>'));
261
+ process.exit(1);
262
+ }
263
+
264
+ const manager = new ScopeManager({ projectRoot });
265
+ const initializer = new ScopeInitializer({ projectRoot });
266
+
267
+ await manager.initialize();
268
+
269
+ const scope = await manager.getScope(scopeId);
270
+ if (!scope) {
271
+ console.error(chalk.red(`Error: Scope '${scopeId}' not found.`));
272
+ process.exit(1);
273
+ }
274
+
275
+ // Confirm removal unless --force
276
+ if (!options.force) {
277
+ const confirmed = await confirm({
278
+ message: `Are you sure you want to remove scope '${scopeId}'? This will delete all scope artifacts!`,
279
+ initialValue: false,
280
+ });
281
+
282
+ if (isCancel(confirmed) || !confirmed) {
283
+ console.log(chalk.yellow('Cancelled.'));
284
+ return;
285
+ }
286
+ }
287
+
288
+ console.log(chalk.blue('\nRemoving scope...'));
289
+
290
+ // Remove scope directory (with backup)
291
+ await initializer.removeScope(scopeId, { backup: !options.noBackup });
292
+
293
+ // Remove from configuration
294
+ await manager.removeScope(scopeId, { force: true });
295
+
296
+ console.log(chalk.green(`\n✓ Scope '${scopeId}' removed successfully!`));
297
+ if (!options.noBackup) {
298
+ console.log(chalk.dim(' A backup was created in _bmad-output/'));
299
+ }
300
+ console.log();
301
+ }
302
+
303
+ /**
304
+ * Handle 'init' subcommand - Initialize scope system
305
+ */
306
+ async function handleInit(projectRoot) {
307
+ const manager = new ScopeManager({ projectRoot });
308
+ const initializer = new ScopeInitializer({ projectRoot });
309
+
310
+ console.log(chalk.blue('\nInitializing scope system...'));
311
+
312
+ await manager.initialize();
313
+ await initializer.initializeScopeSystem();
314
+
315
+ console.log(chalk.green('\n✓ Scope system initialized successfully!\n'));
316
+ console.log(chalk.dim(' Created:'));
317
+ console.log(` ${chalk.cyan('_bmad/_config/scopes.yaml')} - Scope configuration`);
318
+ console.log(` ${chalk.cyan('_bmad-output/_shared/')} - Shared knowledge layer`);
319
+ console.log(` ${chalk.cyan('_bmad/_events/')} - Event system`);
320
+ console.log();
321
+ console.log(chalk.cyan(' Next: bmad scope create <scope-id>'));
322
+ console.log();
323
+ }
324
+
325
+ /**
326
+ * Handle 'archive' subcommand
327
+ */
328
+ async function handleArchive(projectRoot, scopeId) {
329
+ if (!scopeId) {
330
+ console.error(chalk.red('Error: Scope ID is required. Usage: bmad scope archive <scope-id>'));
331
+ process.exit(1);
332
+ }
333
+
334
+ const manager = new ScopeManager({ projectRoot });
335
+
336
+ await manager.initialize();
337
+ await manager.archiveScope(scopeId);
338
+
339
+ console.log(chalk.green(`\n✓ Scope '${scopeId}' archived.\n`));
340
+ }
341
+
342
+ /**
343
+ * Handle 'activate' subcommand
344
+ */
345
+ async function handleActivate(projectRoot, scopeId) {
346
+ if (!scopeId) {
347
+ console.error(chalk.red('Error: Scope ID is required. Usage: bmad scope activate <scope-id>'));
348
+ process.exit(1);
349
+ }
350
+
351
+ const manager = new ScopeManager({ projectRoot });
352
+
353
+ await manager.initialize();
354
+ await manager.activateScope(scopeId);
355
+
356
+ console.log(chalk.green(`\n✓ Scope '${scopeId}' activated.\n`));
357
+ }
358
+
359
+ /**
360
+ * Show help for scope command
361
+ */
362
+ function showHelp() {
363
+ console.log(chalk.bold('\n BMAD Scope Management\n'));
364
+ console.log(' Manage isolated artifact scopes for parallel development.\n');
365
+ console.log(chalk.bold(' Commands:'));
366
+ console.log(` ${chalk.cyan('init')} Initialize scope system`);
367
+ console.log(` ${chalk.cyan('list')} List all scopes`);
368
+ console.log(` ${chalk.cyan('create')} ${chalk.dim('[id]')} Create a new scope`);
369
+ console.log(` ${chalk.cyan('info')} ${chalk.dim('<id>')} Show scope details`);
370
+ console.log(` ${chalk.cyan('remove')} ${chalk.dim('<id>')} Remove a scope`);
371
+ console.log(` ${chalk.cyan('archive')} ${chalk.dim('<id>')} Archive a scope`);
372
+ console.log(` ${chalk.cyan('activate')} ${chalk.dim('<id>')} Activate an archived scope`);
373
+ console.log();
374
+ console.log(chalk.bold(' Options:'));
375
+ console.log(` ${chalk.cyan('-n, --name')} ${chalk.dim('<name>')} Scope name for create`);
376
+ console.log(` ${chalk.cyan('-d, --description')} ${chalk.dim('<desc>')} Scope description`);
377
+ console.log(` ${chalk.cyan('-f, --force')} Force removal without confirmation`);
378
+ console.log(` ${chalk.cyan('--no-backup')} Don't create backup on remove`);
379
+ console.log(` ${chalk.cyan('--context')} Create scope-specific project-context.md`);
380
+ console.log();
381
+ console.log(chalk.bold(' Examples:'));
382
+ console.log(` ${chalk.dim('$')} bmad scope init`);
383
+ console.log(` ${chalk.dim('$')} bmad scope create auth --name "Authentication"`);
384
+ console.log(` ${chalk.dim('$')} bmad scope list`);
385
+ console.log(` ${chalk.dim('$')} bmad scope info auth`);
386
+ console.log(` ${chalk.dim('$')} bmad scope remove auth --force`);
387
+ console.log();
388
+ }
389
+
390
+ module.exports = {
391
+ command: 'scope [subcommand] [id]',
392
+ description: 'Manage scopes for parallel artifact isolation',
393
+ options: [
394
+ ['-n, --name <name>', 'Scope name (for create)'],
395
+ ['-d, --description <desc>', 'Scope description'],
396
+ ['--deps, --dependencies <deps>', 'Comma-separated dependency scope IDs'],
397
+ ['-f, --force', 'Force operation without confirmation'],
398
+ ['--no-backup', 'Skip backup on remove'],
399
+ ['--context', 'Create scope-specific project-context.md'],
400
+ ['-s, --status <status>', 'Filter by status (active/archived)'],
401
+ ],
402
+ action: async (subcommand, id, options) => {
403
+ try {
404
+ // Determine project root
405
+ const projectRoot = process.cwd();
406
+
407
+ // Handle subcommands
408
+ switch (subcommand) {
409
+ case 'init': {
410
+ await handleInit(projectRoot);
411
+ break;
412
+ }
413
+
414
+ case 'list':
415
+ case 'ls': {
416
+ await handleList(projectRoot, options);
417
+ break;
418
+ }
419
+
420
+ case 'create':
421
+ case 'new': {
422
+ await handleCreate(projectRoot, id, options);
423
+ break;
424
+ }
425
+
426
+ case 'info':
427
+ case 'show': {
428
+ await handleInfo(projectRoot, id);
429
+ break;
430
+ }
431
+
432
+ case 'remove':
433
+ case 'rm':
434
+ case 'delete': {
435
+ await handleRemove(projectRoot, id, options);
436
+ break;
437
+ }
438
+
439
+ case 'archive': {
440
+ await handleArchive(projectRoot, id);
441
+ break;
442
+ }
443
+
444
+ case 'activate': {
445
+ await handleActivate(projectRoot, id);
446
+ break;
447
+ }
448
+
449
+ case 'help':
450
+ case undefined: {
451
+ showHelp();
452
+ break;
453
+ }
454
+
455
+ default: {
456
+ // If subcommand looks like an ID, show info for it
457
+ if (subcommand && !subcommand.startsWith('-')) {
458
+ await handleInfo(projectRoot, subcommand);
459
+ } else {
460
+ showHelp();
461
+ }
462
+ }
463
+ }
464
+
465
+ process.exit(0);
466
+ } catch (error) {
467
+ console.error(chalk.red(`\nError: ${error.message}`));
468
+ if (process.env.DEBUG) {
469
+ console.error(chalk.dim(error.stack));
470
+ }
471
+ process.exit(1);
472
+ }
473
+ },
474
+ };
@@ -0,0 +1,41 @@
1
+ # This file allows these modules under bmad-code-org to also be installed with the bmad method installer, while
2
+ # allowing us to keep the source of these projects in separate repos.
3
+
4
+ modules:
5
+ bmad-builder:
6
+ url: https://github.com/bmad-code-org/bmad-builder
7
+ module-definition: src/module.yaml
8
+ code: bmb
9
+ name: "BMad Builder"
10
+ description: "Agent, Workflow and Module Builder"
11
+ defaultSelected: false
12
+ type: bmad-org
13
+
14
+ bmad-creative-intelligence-suite:
15
+ url: https://github.com/bmad-code-org/bmad-module-creative-intelligence-suite
16
+ module-definition: src/module.yaml
17
+ code: cis
18
+ name: "BMad Creative Innovation Suite"
19
+ description: "Creative tools for writing, brainstorming, and more"
20
+ defaultSelected: false
21
+ type: bmad-org
22
+
23
+ bmad-game-dev-studio:
24
+ url: https://github.com/bmad-code-org/bmad-module-game-dev-studio.git
25
+ module-definition: src/module.yaml
26
+ code: gds
27
+ name: "BMad Game Dev Suite"
28
+ description: "Game development agents and workflows"
29
+ defaultSelected: false
30
+ type: bmad-org
31
+
32
+ # TODO: Enable once fixes applied:
33
+
34
+ # whiteport-design-system:
35
+ # url: https://github.com/bmad-code-org/bmad-method-wds-expansion
36
+ # module-definition: src/module.yaml
37
+ # code: WDS
38
+ # name: "Whiteport UX Design System"
39
+ # description: "UX design framework with Figma integration"
40
+ # defaultSelected: false
41
+ # type: community
@@ -0,0 +1,58 @@
1
+ # BMAD Installer Messages
2
+ # These messages are displayed during installation
3
+ # Edit this file to change what users see during the install process
4
+
5
+ # Display at the START of installation (after logo, before prompts)
6
+ startMessage: |
7
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
8
+
9
+ ⭐ IMPORTANT: Version Alpha.23 Changes
10
+
11
+ If your current version is older than Alpha.21, you'll need a fresh install:
12
+ - Remove .bmad folder and reinstall
13
+ - Only needed during final push to beta (ETA January 18th)
14
+
15
+ 📚 New Docs Site: http://docs.bmad-method.org/
16
+ - Tons of guides and articles coming soon!
17
+ - Everything is free. No paywalls. No gated content.
18
+ - Knowledge should be shared, not sold.
19
+
20
+ 📺 YouTube Master Class & Podcast launching February 1st!
21
+
22
+ 💡 Love BMad? Please star us on GitHub & subscribe on YouTube!
23
+ - GitHub: https://github.com/bmad-code-org/BMAD-METHOD/
24
+ - YouTube: https://www.youtube.com/@BMadCode
25
+
26
+ Latest updates: https://github.com/bmad-code-org/BMAD-METHOD/blob/main/CHANGELOG.md
27
+
28
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
29
+
30
+ # Display at the END of installation (after all setup completes)
31
+ endMessage: |
32
+ ════════════════════════════════════════════════════════════════════════════════
33
+
34
+ ✨ BMAD IS READY! Beta is just days away! Thank you for your support!
35
+
36
+ 🌟 BMad is 100% free and open source.
37
+ - No gated Discord. No paywalls.
38
+ - We believe in empowering everyone, not just those who can pay.
39
+
40
+ 🙏 SUPPORT BMAD DEVELOPMENT:
41
+ - Donate: https://buymeacoffee.com/bmad
42
+ - Corporate Sponsorship available - DM on Discord
43
+
44
+ 🎤 SPEAKING & MEDIA:
45
+ - Available for conferences, podcasts, and media appearances
46
+ - Topics: AI-Native Transformation, Spec and Context Engineering, BMad Method
47
+ - For speaking inquiries or interviews, reach out to BMad on Discord!
48
+
49
+ 📚 RESOURCES:
50
+ - Docs: http://docs.bmad-method.org/ (bookmark it!)
51
+ - Changelog: https://github.com/bmad-code-org/BMAD-METHOD/blob/main/CHANGELOG.md
52
+
53
+ ⭐⭐⭐ HELP US GROW:
54
+ - Star us on GitHub: https://github.com/bmad-code-org/BMAD-METHOD/
55
+ - Subscribe on YouTube: https://www.youtube.com/@BMadCode
56
+ - Every star & sub helps us reach more developers!
57
+
58
+ ════════════════════════════════════════════════════════════════════════════════