bmad-method 6.0.0-alpha.19 → 6.0.0-alpha.20

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 (280) hide show
  1. package/.github/workflows/docs.yaml +72 -0
  2. package/.github/workflows/quality.yaml +0 -3
  3. package/CHANGELOG.md +125 -0
  4. package/CONTRIBUTING.md +1 -3
  5. package/README.md +8 -7
  6. package/docs/agent-customization-guide.md +3 -3
  7. package/docs/custom-content-installation.md +1 -1
  8. package/docs/document-sharding-guide.md +2 -2
  9. package/docs/getting-started/installation.md +76 -0
  10. package/docs/ide-info/index.md +24 -0
  11. package/docs/ide-info/rovo-dev.md +14 -380
  12. package/docs/index.md +36 -45
  13. package/eslint.config.mjs +7 -2
  14. package/package.json +14 -8
  15. package/{docs → samples}/sample-custom-modules/README.md +1 -1
  16. package/{docs → samples}/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +2 -2
  17. package/{docs → samples}/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +1 -1
  18. package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md +1 -1
  19. package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md +1 -1
  20. package/src/core/tasks/review-adversarial-general.xml +41 -0
  21. package/src/modules/bmb/README.md +25 -0
  22. package/src/modules/bmb/docs/agents/expert-agent-architecture.md +3 -3
  23. package/src/modules/bmb/docs/agents/index.md +9 -9
  24. package/src/modules/bmb/docs/agents/simple-agent-architecture.md +1 -1
  25. package/src/modules/bmb/docs/agents/understanding-agent-types.md +1 -1
  26. package/src/modules/bmb/docs/{README.md → index.md} +10 -12
  27. package/src/modules/bmb/docs/workflows/index.md +6 -6
  28. package/src/modules/bmb/docs/workflows/templates/step-01-init-continuable-template.md +7 -7
  29. package/src/modules/bmb/docs/workflows/templates/step-1b-template.md +1 -1
  30. package/src/modules/bmb/docs/workflows/templates/step-template.md +7 -7
  31. package/src/modules/bmb/docs/workflows/templates/workflow-template.md +1 -1
  32. package/src/modules/bmb/docs/workflows/templates/workflow.md +1 -1
  33. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +1 -1
  34. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +1 -1
  35. package/src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md +3 -3
  36. package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +1 -1
  37. package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +5 -5
  38. package/src/modules/bmb/workflows/create-module/templates/agent.template.md +1 -1
  39. package/src/modules/bmb/workflows/create-module/validation.md +2 -2
  40. package/src/modules/bmb/workflows/create-module/workflow.md +1 -1
  41. package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +2 -2
  42. package/src/modules/bmb/workflows/create-workflow/workflow.md +1 -1
  43. package/src/modules/bmb/workflows/edit-agent/workflow.md +1 -1
  44. package/src/modules/bmb/workflows/edit-workflow/workflow.md +1 -1
  45. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +1 -1
  46. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +1 -1
  47. package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +1 -1
  48. package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +3 -3
  49. package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +2 -2
  50. package/src/modules/bmgd/_module-installer/installer.js +2 -2
  51. package/src/modules/bmgd/agents/game-architect.agent.yaml +4 -0
  52. package/src/modules/bmgd/docs/{README.md → index.md} +2 -2
  53. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +4 -4
  54. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +1 -1
  55. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +1 -1
  56. package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +4 -4
  57. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +4 -4
  58. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +1 -1
  59. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +5 -5
  60. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +60 -6
  61. package/src/modules/bmgd/workflows/3-technical/generate-project-context/project-context-template.md +20 -0
  62. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-01-discover.md +201 -0
  63. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-02-generate.md +373 -0
  64. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-03-complete.md +279 -0
  65. package/src/modules/bmgd/workflows/3-technical/generate-project-context/workflow.md +48 -0
  66. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +3 -3
  67. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +1 -1
  68. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +2 -2
  69. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +2 -2
  70. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +3 -3
  71. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +4 -4
  72. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +2 -2
  73. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +5 -5
  74. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +11 -2
  75. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +4 -4
  76. package/src/modules/bmgd/workflows/4-production/sprint-status/instructions.md +2 -2
  77. package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +3 -3
  78. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md +3 -3
  79. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml +1 -1
  80. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +1 -1
  81. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml +1 -1
  82. package/src/modules/bmgd/workflows/workflow-status/init/instructions.md +2 -2
  83. package/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml +1 -1
  84. package/src/modules/bmgd/workflows/workflow-status/instructions.md +2 -2
  85. package/src/modules/bmm/README.md +5 -6
  86. package/src/modules/bmm/_module-installer/installer.js +2 -2
  87. package/src/modules/bmm/agents/analyst.agent.yaml +1 -1
  88. package/src/modules/bmm/agents/dev.agent.yaml +8 -4
  89. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +8 -17
  90. package/src/modules/bmm/agents/sm.agent.yaml +6 -3
  91. package/src/modules/bmm/agents/tech-writer.agent.yaml +1 -1
  92. package/src/modules/bmm/agents/ux-designer.agent.yaml +6 -3
  93. package/src/modules/bmm/docs/agents-guide.md +83 -1026
  94. package/src/modules/bmm/docs/bmad-quick-flow.md +10 -32
  95. package/src/modules/bmm/docs/brownfield-guide.md +1 -1
  96. package/src/modules/bmm/docs/enterprise-agentic-development.md +1 -1
  97. package/src/modules/bmm/docs/{README.md → index.md} +7 -88
  98. package/src/modules/bmm/docs/quick-spec-flow.md +1 -1
  99. package/src/modules/bmm/docs/quick-start.md +7 -7
  100. package/src/modules/bmm/docs/scale-adaptive-system.md +1 -1
  101. package/src/modules/bmm/docs/test-architecture.md +13 -12
  102. package/src/modules/bmm/docs/workflows-solutioning.md +1 -1
  103. package/src/modules/bmm/module.yaml +11 -10
  104. package/src/modules/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +7 -5
  105. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +2 -2
  106. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +2 -4
  107. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +2 -2
  108. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +2 -2
  109. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +2 -2
  110. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +2 -2
  111. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +7 -10
  112. package/src/modules/bmm/workflows/1-analysis/create-product-brief/workflow.md +3 -3
  113. package/src/modules/bmm/workflows/1-analysis/research/research.template.md +14 -0
  114. package/src/modules/bmm/workflows/1-analysis/research/workflow.md +8 -39
  115. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +15 -15
  116. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +5 -25
  117. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +5 -5
  118. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +5 -5
  119. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +6 -6
  120. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +5 -5
  121. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +5 -5
  122. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +5 -5
  123. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +5 -5
  124. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +5 -5
  125. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +5 -5
  126. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +5 -5
  127. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +5 -5
  128. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +2 -2
  129. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +3 -5
  130. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +4 -4
  131. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +4 -4
  132. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +4 -4
  133. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +4 -4
  134. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +4 -4
  135. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +4 -4
  136. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +4 -4
  137. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +4 -4
  138. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +1 -1
  139. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +1 -1
  140. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +1 -1
  141. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +1 -1
  142. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +1 -1
  143. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +1 -1
  144. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +2 -2
  145. package/src/modules/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +0 -1
  146. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +9 -21
  147. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +4 -4
  148. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +2 -2
  149. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +4 -4
  150. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +4 -4
  151. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +4 -4
  152. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +4 -4
  153. package/src/modules/bmm/workflows/3-solutioning/create-architecture/workflow.md +1 -1
  154. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +8 -8
  155. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +1 -1
  156. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +1 -1
  157. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +1 -1
  158. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +2 -2
  159. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +4 -4
  160. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
  161. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +2 -2
  162. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +16 -14
  163. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +2 -12
  164. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +4 -4
  165. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +1 -1
  166. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +3 -3
  167. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +2 -2
  168. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +5 -5
  169. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +2 -2
  170. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +7 -6
  171. package/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +2 -2
  172. package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +4 -3
  173. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/instructions.md +4 -4
  174. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +4 -2
  175. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +156 -0
  176. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  177. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
  178. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  179. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  180. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +140 -0
  181. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +51 -0
  182. package/src/modules/bmm/workflows/document-project/instructions.md +27 -28
  183. package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -3
  184. package/src/modules/bmm/workflows/generate-project-context/project-context-template.md +2 -1
  185. package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +5 -15
  186. package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +2 -2
  187. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +8 -7
  188. package/src/modules/bmm/workflows/testarch/atdd/checklist.md +1 -0
  189. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +1 -0
  190. package/src/modules/bmm/workflows/testarch/automate/checklist.md +2 -0
  191. package/src/modules/bmm/workflows/testarch/ci/checklist.md +2 -0
  192. package/src/modules/bmm/workflows/testarch/ci/instructions.md +2 -0
  193. package/src/modules/bmm/workflows/testarch/nfr-assess/checklist.md +2 -0
  194. package/src/modules/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +2 -0
  195. package/src/modules/bmm/workflows/testarch/test-design/checklist.md +3 -2
  196. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +1 -1
  197. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +9 -0
  198. package/src/modules/bmm/workflows/testarch/test-review/checklist.md +2 -0
  199. package/src/modules/bmm/workflows/testarch/test-review/test-review-template.md +2 -0
  200. package/src/modules/bmm/workflows/testarch/trace/checklist.md +1 -0
  201. package/src/modules/bmm/workflows/testarch/trace/instructions.md +2 -0
  202. package/src/modules/bmm/workflows/testarch/trace/trace-template.md +2 -0
  203. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +2 -2
  204. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +1 -1
  205. package/src/modules/bmm/workflows/workflow-status/instructions.md +2 -2
  206. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +3 -1
  207. package/src/modules/cis/{readme.md → docs/index.md} +2 -6
  208. package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
  209. package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
  210. package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
  211. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +24 -0
  212. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +24 -0
  213. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-wrong-shortcut.agent.yaml +24 -0
  214. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +30 -0
  215. package/tools/build-docs.js +630 -0
  216. package/tools/cli/commands/install.js +11 -5
  217. package/tools/cli/installers/install-messages.yaml +52 -0
  218. package/tools/cli/installers/lib/core/config-collector.js +25 -30
  219. package/tools/cli/installers/lib/message-loader.js +85 -0
  220. package/tools/cli/lib/ui.js +221 -41
  221. package/tools/schema/agent.js +68 -5
  222. package/website/css/custom.css +52 -0
  223. package/website/docusaurus.config.js +179 -0
  224. package/website/sidebars.js +157 -0
  225. package/website/src/pages/downloads.md +81 -0
  226. package/website/src/pages/index.js +50 -0
  227. package/website/static/favicon.ico +0 -0
  228. package/website/static/img/logo.svg +4 -0
  229. package/website/static/robots.txt +37 -0
  230. package/docs/installers-bundlers/ide-injections.md +0 -186
  231. package/docs/installers-bundlers/installers-modules-platforms-reference.md +0 -389
  232. package/src/modules/bmgd/README.md +0 -209
  233. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/checklist.md +0 -25
  234. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/instructions.md +0 -202
  235. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml +0 -33
  236. package/tools/cli/commands/build.js +0 -283
  237. package/tools/cli/commands/list.js +0 -40
  238. package/tools/cli/commands/status.js +0 -47
  239. package/tools/cli/commands/uninstall.js +0 -44
  240. package/tools/cli/commands/update.js +0 -28
  241. package/tools/validate-bundles.js +0 -87
  242. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/README.md +0 -0
  243. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml +0 -0
  244. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/instructions.md +0 -0
  245. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +0 -0
  246. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +0 -0
  247. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +0 -0
  248. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +0 -0
  249. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/memories.md +0 -0
  250. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith.agent.yaml +0 -0
  251. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/module.yaml +0 -0
  252. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md +0 -0
  253. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md +0 -0
  254. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md +0 -0
  255. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md +0 -0
  256. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md +0 -0
  257. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md +0 -0
  258. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md +0 -0
  259. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md +0 -0
  260. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md +0 -0
  261. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md +0 -0
  262. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md +0 -0
  263. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/quiz-master/templates/csv-headers.template +0 -0
  264. /package/{docs → samples}/sample-custom-modules/sample-unitary-module/workflows/wassup/workflow.md +0 -0
  265. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/README.md +0 -0
  266. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/agents/meditation-guide.agent.yaml +0 -0
  267. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/agents/wellness-companion/foo.md +0 -0
  268. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/addition1.md +0 -0
  269. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/insights.md +0 -0
  270. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/instructions.md +0 -0
  271. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/memories.md +0 -0
  272. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/patterns.md +0 -0
  273. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion.agent.yaml +0 -0
  274. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/module.yaml +0 -0
  275. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/workflows/daily-checkin/README.md +0 -0
  276. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/workflows/daily-checkin/workflow.md +0 -0
  277. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/workflows/guided-meditation/README.md +0 -0
  278. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/workflows/guided-meditation/workflow.md +0 -0
  279. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/workflows/wellness-journal/README.md +0 -0
  280. /package/{docs → samples}/sample-custom-modules/sample-wellness-module/workflows/wellness-journal/workflow.md +0 -0
@@ -1,283 +0,0 @@
1
- const chalk = require('chalk');
2
- const path = require('node:path');
3
- const fs = require('fs-extra');
4
- const { YamlXmlBuilder } = require('../lib/yaml-xml-builder');
5
- const { getProjectRoot } = require('../lib/project-root');
6
-
7
- const builder = new YamlXmlBuilder();
8
-
9
- /**
10
- * Find .claude directory by searching up from current directory
11
- */
12
- async function findClaudeDir(startDir) {
13
- let currentDir = startDir;
14
- const root = path.parse(currentDir).root;
15
-
16
- while (currentDir !== root) {
17
- const claudeDir = path.join(currentDir, '.claude');
18
- if (await fs.pathExists(claudeDir)) {
19
- return claudeDir;
20
- }
21
- currentDir = path.dirname(currentDir);
22
- }
23
-
24
- return null;
25
- }
26
-
27
- module.exports = {
28
- command: 'build [agent]',
29
- description: 'Build agent XML files from YAML sources',
30
- options: [
31
- ['-a, --all', 'Build all agents'],
32
- ['-d, --directory <path>', 'Project directory', '.'],
33
- ],
34
- action: async (agentName, options) => {
35
- try {
36
- let projectDir = path.resolve(options.directory);
37
-
38
- // Auto-detect .claude directory (search up from current dir)
39
- const claudeDir = await findClaudeDir(projectDir);
40
- if (!claudeDir) {
41
- console.log(chalk.yellow('\n⚠️ No .claude directory found'));
42
- console.log(chalk.dim('Run this command from your project directory or'));
43
- console.log(chalk.dim('use --directory flag to specify location'));
44
- console.log(chalk.dim('\nExample: npx bmad-method build pm --directory /path/to/project'));
45
- process.exit(1);
46
- }
47
-
48
- // Use the directory containing .claude
49
- projectDir = path.dirname(claudeDir);
50
- console.log(chalk.dim(`Using project: ${projectDir}\n`));
51
-
52
- console.log(chalk.cyan('🔨 Building Agent Files\n'));
53
-
54
- if (options.all) {
55
- // Build all agents
56
- await buildAllAgents(projectDir);
57
- } else if (agentName) {
58
- // Build specific agent
59
- await buildAgent(projectDir, agentName);
60
- } else {
61
- // No agent specified, list available agents
62
- console.log(chalk.yellow('No agent specified. Use --all to build all agents or specify an agent name.'));
63
- console.log(chalk.dim('\nAvailable agents:'));
64
- await listAvailableAgents(projectDir);
65
- }
66
-
67
- process.exit(0);
68
- } catch (error) {
69
- console.error(chalk.red('\nError:'), error.message);
70
- if (process.env.DEBUG) {
71
- console.error(error.stack);
72
- }
73
- process.exit(1);
74
- }
75
- },
76
- };
77
-
78
- /**
79
- * Build a specific agent
80
- */
81
- async function buildAgent(projectDir, agentName) {
82
- // First check standalone agents in bmad/agents/{agentname}/
83
- const standaloneAgentDir = path.join(projectDir, '_bmad', 'agents', agentName);
84
- let standaloneYamlPath = path.join(standaloneAgentDir, `${agentName}.agent.yaml`);
85
-
86
- // If exact match doesn't exist, look for any .agent.yaml file in the directory
87
- if (!(await fs.pathExists(standaloneYamlPath)) && (await fs.pathExists(standaloneAgentDir))) {
88
- const files = await fs.readdir(standaloneAgentDir);
89
- const agentFile = files.find((f) => f.endsWith('.agent.yaml'));
90
- if (agentFile) {
91
- standaloneYamlPath = path.join(standaloneAgentDir, agentFile);
92
- }
93
- }
94
-
95
- if (await fs.pathExists(standaloneYamlPath)) {
96
- const yamlFileName = path.basename(standaloneYamlPath, '.agent.yaml');
97
- const outputPath = path.join(standaloneAgentDir, `${yamlFileName}.md`);
98
-
99
- // Build the standalone agent
100
- console.log(chalk.cyan(` Building standalone agent ${agentName}...`));
101
-
102
- const customizePath = path.join(projectDir, '_bmad', '_config', 'agents', `${agentName}.customize.yaml`);
103
- const customizeExists = await fs.pathExists(customizePath);
104
-
105
- await builder.buildAgent(standaloneYamlPath, customizeExists ? customizePath : null, outputPath, { includeMetadata: true });
106
-
107
- console.log(chalk.green(` ✓ ${agentName} built successfully (standalone)`));
108
- return;
109
- }
110
-
111
- // Find the agent YAML file in .claude/commands/bmad/
112
- const bmadCommandsDir = path.join(projectDir, '.claude', 'commands', '_bmad');
113
-
114
- // Search all module directories for the agent
115
- const modules = await fs.readdir(bmadCommandsDir);
116
- let found = false;
117
-
118
- for (const module of modules) {
119
- const agentYamlPath = path.join(bmadCommandsDir, module, 'agents', `${agentName}.agent.yaml`);
120
- const outputPath = path.join(bmadCommandsDir, module, 'agents', `${agentName}.md`);
121
-
122
- if (await fs.pathExists(agentYamlPath)) {
123
- found = true;
124
-
125
- // Build the agent
126
- console.log(chalk.cyan(` Building ${agentName}...`));
127
-
128
- const customizePath = path.join(projectDir, '.claude', '_config', 'agents', `${agentName}.customize.yaml`);
129
- const customizeExists = await fs.pathExists(customizePath);
130
-
131
- await builder.buildAgent(agentYamlPath, customizeExists ? customizePath : null, outputPath, { includeMetadata: true });
132
-
133
- console.log(chalk.green(` ✓ ${agentName} built successfully`));
134
- return;
135
- }
136
- }
137
-
138
- if (!found) {
139
- console.log(chalk.yellow(` ⚠️ Agent '${agentName}' not found`));
140
- console.log(chalk.dim(' Available agents:'));
141
- await listAvailableAgents(projectDir);
142
- }
143
- }
144
-
145
- /**
146
- * Build all agents
147
- */
148
- async function buildAllAgents(projectDir) {
149
- let builtCount = 0;
150
-
151
- // First, build standalone agents in bmad/agents/
152
- const standaloneAgentsDir = path.join(projectDir, '_bmad', 'agents');
153
- if (await fs.pathExists(standaloneAgentsDir)) {
154
- console.log(chalk.cyan('\nBuilding standalone agents...'));
155
- const agentDirs = await fs.readdir(standaloneAgentsDir);
156
-
157
- for (const agentDirName of agentDirs) {
158
- const agentDir = path.join(standaloneAgentsDir, agentDirName);
159
-
160
- // Skip if not a directory
161
- const stat = await fs.stat(agentDir);
162
- if (!stat.isDirectory()) {
163
- continue;
164
- }
165
-
166
- // Find any .agent.yaml file in the directory
167
- const files = await fs.readdir(agentDir);
168
- const agentFile = files.find((f) => f.endsWith('.agent.yaml'));
169
-
170
- if (!agentFile) {
171
- continue;
172
- }
173
-
174
- const agentYamlPath = path.join(agentDir, agentFile);
175
- const agentName = path.basename(agentFile, '.agent.yaml');
176
- const outputPath = path.join(agentDir, `${agentName}.md`);
177
-
178
- console.log(chalk.cyan(` Building standalone agent ${agentName}...`));
179
-
180
- const customizePath = path.join(projectDir, '_bmad', '_config', 'agents', `${agentName}.customize.yaml`);
181
- const customizeExists = await fs.pathExists(customizePath);
182
-
183
- await builder.buildAgent(agentYamlPath, customizeExists ? customizePath : null, outputPath, { includeMetadata: true });
184
-
185
- console.log(chalk.green(` ✓ ${agentName} (standalone)`));
186
- builtCount++;
187
- }
188
- }
189
-
190
- // Then, build module agents in .claude/commands/bmad/
191
- const bmadCommandsDir = path.join(projectDir, '.claude', 'commands', 'bmad');
192
- if (await fs.pathExists(bmadCommandsDir)) {
193
- console.log(chalk.cyan('\nBuilding module agents...'));
194
- const modules = await fs.readdir(bmadCommandsDir);
195
-
196
- for (const module of modules) {
197
- const agentsDir = path.join(bmadCommandsDir, module, 'agents');
198
-
199
- if (!(await fs.pathExists(agentsDir))) {
200
- continue;
201
- }
202
-
203
- const files = await fs.readdir(agentsDir);
204
-
205
- for (const file of files) {
206
- if (!file.endsWith('.agent.yaml')) {
207
- continue;
208
- }
209
-
210
- const agentName = file.replace('.agent.yaml', '');
211
- const agentYamlPath = path.join(agentsDir, file);
212
- const outputPath = path.join(agentsDir, `${agentName}.md`);
213
-
214
- console.log(chalk.cyan(` Building ${agentName}...`));
215
-
216
- const customizePath = path.join(projectDir, '.claude', '_config', 'agents', `${agentName}.customize.yaml`);
217
- const customizeExists = await fs.pathExists(customizePath);
218
-
219
- await builder.buildAgent(agentYamlPath, customizeExists ? customizePath : null, outputPath, { includeMetadata: true });
220
-
221
- console.log(chalk.green(` ✓ ${agentName} (${module})`));
222
- builtCount++;
223
- }
224
- }
225
- }
226
-
227
- console.log(chalk.green(`\n✓ Built ${builtCount} agent(s)`));
228
- }
229
-
230
- /**
231
- * List available agents
232
- */
233
- async function listAvailableAgents(projectDir) {
234
- // List standalone agents first
235
- const standaloneAgentsDir = path.join(projectDir, 'bmad', 'agents');
236
- if (await fs.pathExists(standaloneAgentsDir)) {
237
- console.log(chalk.dim(' Standalone agents:'));
238
- const agentDirs = await fs.readdir(standaloneAgentsDir);
239
-
240
- for (const agentDirName of agentDirs) {
241
- const agentDir = path.join(standaloneAgentsDir, agentDirName);
242
-
243
- // Skip if not a directory
244
- const stat = await fs.stat(agentDir);
245
- if (!stat.isDirectory()) {
246
- continue;
247
- }
248
-
249
- // Find any .agent.yaml file in the directory
250
- const files = await fs.readdir(agentDir);
251
- const agentFile = files.find((f) => f.endsWith('.agent.yaml'));
252
-
253
- if (agentFile) {
254
- const agentName = path.basename(agentFile, '.agent.yaml');
255
- console.log(chalk.dim(` - ${agentName} (in ${agentDirName}/)`));
256
- }
257
- }
258
- }
259
-
260
- // List module agents
261
- const bmadCommandsDir = path.join(projectDir, '.claude', 'commands', 'bmad');
262
- if (await fs.pathExists(bmadCommandsDir)) {
263
- console.log(chalk.dim(' Module agents:'));
264
- const modules = await fs.readdir(bmadCommandsDir);
265
-
266
- for (const module of modules) {
267
- const agentsDir = path.join(bmadCommandsDir, module, 'agents');
268
-
269
- if (!(await fs.pathExists(agentsDir))) {
270
- continue;
271
- }
272
-
273
- const files = await fs.readdir(agentsDir);
274
-
275
- for (const file of files) {
276
- if (file.endsWith('.agent.yaml')) {
277
- const agentName = file.replace('.agent.yaml', '');
278
- console.log(chalk.dim(` - ${agentName} (${module})`));
279
- }
280
- }
281
- }
282
- }
283
- }
@@ -1,40 +0,0 @@
1
- const chalk = require('chalk');
2
- const { Installer } = require('../installers/lib/core/installer');
3
-
4
- const installer = new Installer();
5
-
6
- module.exports = {
7
- command: 'list',
8
- description: 'List available modules',
9
- options: [],
10
- action: async () => {
11
- try {
12
- const result = await installer.getAvailableModules();
13
- const { modules, customModules } = result;
14
-
15
- console.log(chalk.cyan('\n📦 Available BMAD Modules:\n'));
16
-
17
- for (const module of modules) {
18
- console.log(chalk.bold(` ${module.id}`));
19
- console.log(chalk.dim(` ${module.description}`));
20
- console.log(chalk.dim(` Version: ${module.version}`));
21
- console.log();
22
- }
23
-
24
- if (customModules && customModules.length > 0) {
25
- console.log(chalk.cyan('\n🔧 Custom Modules:\n'));
26
- for (const module of customModules) {
27
- console.log(chalk.bold(` ${module.id}`));
28
- console.log(chalk.dim(` ${module.description}`));
29
- console.log(chalk.dim(` Version: ${module.version}`));
30
- console.log();
31
- }
32
- }
33
-
34
- process.exit(0);
35
- } catch (error) {
36
- console.error(chalk.red('Error:'), error.message);
37
- process.exit(1);
38
- }
39
- },
40
- };
@@ -1,47 +0,0 @@
1
- const chalk = require('chalk');
2
- const { Installer } = require('../installers/lib/core/installer');
3
-
4
- const installer = new Installer();
5
-
6
- module.exports = {
7
- command: 'status',
8
- description: 'Show installation status',
9
- options: [['-d, --directory <path>', 'Installation directory', '.']],
10
- action: async (options) => {
11
- try {
12
- const status = await installer.getStatus(options.directory);
13
-
14
- if (!status.installed) {
15
- console.log(chalk.yellow('\n⚠️ No BMAD installation found in:'), options.directory);
16
- console.log(chalk.dim('Run "bmad install" to set up BMAD Method'));
17
- process.exit(0);
18
- }
19
-
20
- console.log(chalk.cyan('\n📊 BMAD Installation Status\n'));
21
- console.log(chalk.bold('Location:'), status.path);
22
- console.log(chalk.bold('Version:'), status.version);
23
- console.log(chalk.bold('Core:'), status.hasCore ? chalk.green('✓ Installed') : chalk.red('✗ Not installed'));
24
-
25
- if (status.modules.length > 0) {
26
- console.log(chalk.bold('\nModules:'));
27
- for (const mod of status.modules) {
28
- console.log(` ${chalk.green('✓')} ${mod.id} (v${mod.version})`);
29
- }
30
- } else {
31
- console.log(chalk.bold('\nModules:'), chalk.dim('None installed'));
32
- }
33
-
34
- if (status.ides.length > 0) {
35
- console.log(chalk.bold('\nConfigured IDEs:'));
36
- for (const ide of status.ides) {
37
- console.log(` ${chalk.green('✓')} ${ide}`);
38
- }
39
- }
40
-
41
- process.exit(0);
42
- } catch (error) {
43
- console.error(chalk.red('Error:'), error.message);
44
- process.exit(1);
45
- }
46
- },
47
- };
@@ -1,44 +0,0 @@
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: 'uninstall',
11
- description: 'Remove BMAD installation',
12
- options: [
13
- ['-d, --directory <path>', 'Installation directory', '.'],
14
- ['--force', 'Skip confirmation prompt'],
15
- ],
16
- action: async (options) => {
17
- try {
18
- const bmadPath = path.join(options.directory, 'bmad');
19
-
20
- if (!options.force) {
21
- const { confirm } = await ui.prompt([
22
- {
23
- type: 'confirm',
24
- name: 'confirm',
25
- message: `Are you sure you want to remove BMAD from ${bmadPath}?`,
26
- default: false,
27
- },
28
- ]);
29
-
30
- if (!confirm) {
31
- console.log('Uninstall cancelled.');
32
- process.exit(0);
33
- }
34
- }
35
-
36
- await installer.uninstall(options.directory);
37
- console.log(chalk.green('\n✨ BMAD Method has been uninstalled.'));
38
- process.exit(0);
39
- } catch (error) {
40
- console.error(chalk.red('Uninstall failed:'), error.message);
41
- process.exit(1);
42
- }
43
- },
44
- };
@@ -1,28 +0,0 @@
1
- const chalk = require('chalk');
2
- const { Installer } = require('../installers/lib/core/installer');
3
-
4
- const installer = new Installer();
5
-
6
- module.exports = {
7
- command: 'update',
8
- description: 'Update existing BMAD installation',
9
- options: [
10
- ['-d, --directory <path>', 'Installation directory', '.'],
11
- ['--force', 'Force update, overwriting modified files'],
12
- ['--dry-run', 'Show what would be updated without making changes'],
13
- ],
14
- action: async (options) => {
15
- try {
16
- await installer.update({
17
- directory: options.directory,
18
- force: options.force,
19
- dryRun: options.dryRun,
20
- });
21
- console.log(chalk.green('\n✨ Update complete!'));
22
- process.exit(0);
23
- } catch (error) {
24
- console.error(chalk.red('Update failed:'), error.message);
25
- process.exit(1);
26
- }
27
- },
28
- };
@@ -1,87 +0,0 @@
1
- const fs = require('fs-extra');
2
- const path = require('node:path');
3
- const xml2js = require('xml2js');
4
- const chalk = require('chalk');
5
- const glob = require('glob');
6
-
7
- async function validateXmlFile(filePath) {
8
- try {
9
- const content = await fs.readFile(filePath, 'utf8');
10
- await xml2js.parseStringPromise(content, {
11
- strict: true,
12
- explicitArray: false,
13
- });
14
- return { valid: true };
15
- } catch (error) {
16
- return { valid: false, error: error.message };
17
- }
18
- }
19
-
20
- async function validateAllBundles() {
21
- console.log(chalk.cyan.bold('\n═══════════════════════════════════════════════'));
22
- console.log(chalk.cyan.bold(' VALIDATING WEB BUNDLE XML FILES'));
23
- console.log(chalk.cyan.bold('═══════════════════════════════════════════════\n'));
24
-
25
- const bundlesDir = path.join(__dirname, '..', 'web-bundles');
26
-
27
- // Find all XML files in web-bundles
28
- const pattern = path.join(bundlesDir, '**/*.xml');
29
- const files = glob.sync(pattern);
30
-
31
- if (files.length === 0) {
32
- console.log(chalk.yellow('No XML files found in web-bundles directory'));
33
- return;
34
- }
35
-
36
- console.log(`Found ${chalk.bold(files.length)} XML files to validate\n`);
37
-
38
- let validCount = 0;
39
- let invalidCount = 0;
40
- const invalidFiles = [];
41
-
42
- for (const file of files) {
43
- const relativePath = path.relative(bundlesDir, file);
44
- const result = await validateXmlFile(file);
45
-
46
- if (result.valid) {
47
- console.log(`${chalk.green('✓')} ${relativePath}`);
48
- validCount++;
49
- } else {
50
- console.log(`${chalk.red('✗')} ${relativePath}`);
51
- console.log(` ${chalk.red('→')} ${result.error}`);
52
- invalidCount++;
53
- invalidFiles.push({ path: relativePath, error: result.error });
54
- }
55
- }
56
-
57
- // Summary
58
- console.log(chalk.cyan.bold('\n═══════════════════════════════════════════════'));
59
- console.log(chalk.cyan.bold(' SUMMARY'));
60
- console.log(chalk.cyan.bold('═══════════════════════════════════════════════\n'));
61
-
62
- console.log(` Total files checked: ${chalk.bold(files.length)}`);
63
- console.log(` Valid XML files: ${chalk.green(validCount)}`);
64
- console.log(` Invalid XML files: ${invalidCount > 0 ? chalk.red(invalidCount) : chalk.green(invalidCount)}`);
65
-
66
- if (invalidFiles.length > 0) {
67
- console.log(chalk.red.bold('\n Invalid Files:'));
68
- for (const { path, error } of invalidFiles) {
69
- console.log(` ${chalk.red('•')} ${path}`);
70
- if (error.length > 100) {
71
- console.log(` ${error.slice(0, 100)}...`);
72
- } else {
73
- console.log(` ${error}`);
74
- }
75
- }
76
- }
77
-
78
- console.log(chalk.cyan.bold('\n═══════════════════════════════════════════════\n'));
79
-
80
- process.exit(invalidCount > 0 ? 1 : 0);
81
- }
82
-
83
- // Run validation
84
- validateAllBundles().catch((error) => {
85
- console.error(chalk.red('Error running validation:'), error);
86
- process.exit(1);
87
- });