bmalph 1.0.0

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 (396) hide show
  1. package/README.md +217 -0
  2. package/bin/bmalph.js +14 -0
  3. package/bmad/bmm/agents/analyst.agent.yaml +36 -0
  4. package/bmad/bmm/agents/architect.agent.yaml +28 -0
  5. package/bmad/bmm/agents/dev.agent.yaml +38 -0
  6. package/bmad/bmm/agents/pm.agent.yaml +46 -0
  7. package/bmad/bmm/agents/quick-flow-solo-dev.agent.yaml +32 -0
  8. package/bmad/bmm/agents/sm.agent.yaml +36 -0
  9. package/bmad/bmm/agents/tea.agent.yaml +63 -0
  10. package/bmad/bmm/agents/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
  11. package/bmad/bmm/agents/tech-writer/tech-writer.agent.yaml +45 -0
  12. package/bmad/bmm/agents/ux-designer.agent.yaml +26 -0
  13. package/bmad/bmm/data/project-context-template.md +26 -0
  14. package/bmad/bmm/module-help.csv +31 -0
  15. package/bmad/bmm/module.yaml +44 -0
  16. package/bmad/bmm/sub-modules/claude-code/config.yaml +4 -0
  17. package/bmad/bmm/sub-modules/claude-code/injections.yaml +242 -0
  18. package/bmad/bmm/sub-modules/claude-code/readme.md +87 -0
  19. package/bmad/bmm/teams/default-party.csv +21 -0
  20. package/bmad/bmm/teams/team-fullstack.yaml +12 -0
  21. package/bmad/bmm/testarch/knowledge/adr-quality-readiness-checklist.md +350 -0
  22. package/bmad/bmm/testarch/knowledge/api-request.md +442 -0
  23. package/bmad/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
  24. package/bmad/bmm/testarch/knowledge/auth-session.md +552 -0
  25. package/bmad/bmm/testarch/knowledge/burn-in.md +273 -0
  26. package/bmad/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  27. package/bmad/bmm/testarch/knowledge/component-tdd.md +486 -0
  28. package/bmad/bmm/testarch/knowledge/contract-testing.md +957 -0
  29. package/bmad/bmm/testarch/knowledge/data-factories.md +500 -0
  30. package/bmad/bmm/testarch/knowledge/email-auth.md +721 -0
  31. package/bmad/bmm/testarch/knowledge/error-handling.md +725 -0
  32. package/bmad/bmm/testarch/knowledge/feature-flags.md +750 -0
  33. package/bmad/bmm/testarch/knowledge/file-utils.md +463 -0
  34. package/bmad/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  35. package/bmad/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  36. package/bmad/bmm/testarch/knowledge/intercept-network-call.md +430 -0
  37. package/bmad/bmm/testarch/knowledge/log.md +429 -0
  38. package/bmad/bmm/testarch/knowledge/network-error-monitor.md +405 -0
  39. package/bmad/bmm/testarch/knowledge/network-first.md +486 -0
  40. package/bmad/bmm/testarch/knowledge/network-recorder.md +527 -0
  41. package/bmad/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  42. package/bmad/bmm/testarch/knowledge/overview.md +286 -0
  43. package/bmad/bmm/testarch/knowledge/playwright-config.md +730 -0
  44. package/bmad/bmm/testarch/knowledge/probability-impact.md +601 -0
  45. package/bmad/bmm/testarch/knowledge/recurse.md +421 -0
  46. package/bmad/bmm/testarch/knowledge/risk-governance.md +615 -0
  47. package/bmad/bmm/testarch/knowledge/selective-testing.md +732 -0
  48. package/bmad/bmm/testarch/knowledge/selector-resilience.md +527 -0
  49. package/bmad/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  50. package/bmad/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  51. package/bmad/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  52. package/bmad/bmm/testarch/knowledge/test-quality.md +664 -0
  53. package/bmad/bmm/testarch/knowledge/timing-debugging.md +372 -0
  54. package/bmad/bmm/testarch/knowledge/visual-debugging.md +524 -0
  55. package/bmad/bmm/testarch/tea-index.csv +35 -0
  56. package/bmad/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  57. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  58. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  59. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  60. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  61. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  62. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  63. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
  64. package/bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
  65. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  66. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  67. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  68. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  69. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  70. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  71. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  72. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  73. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
  74. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  75. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  76. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  77. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  78. package/bmad/bmm/workflows/1-analysis/research/research.template.md +29 -0
  79. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  80. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  81. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  82. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  83. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
  84. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  85. package/bmad/bmm/workflows/1-analysis/research/workflow.md +173 -0
  86. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  87. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  88. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  89. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  90. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  91. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  92. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  93. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  94. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  95. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  96. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  97. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  98. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  99. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  100. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
  101. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  102. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
  103. package/bmad/bmm/workflows/2-plan-workflows/prd/data/domain-complexity.csv +13 -0
  104. package/bmad/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +197 -0
  105. package/bmad/bmm/workflows/2-plan-workflows/prd/data/project-types.csv +11 -0
  106. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-01-init.md +191 -0
  107. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-01b-continue.md +153 -0
  108. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +224 -0
  109. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-03-success.md +226 -0
  110. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +213 -0
  111. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +207 -0
  112. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-06-innovation.md +226 -0
  113. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-07-project-type.md +237 -0
  114. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-08-scoping.md +228 -0
  115. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-09-functional.md +231 -0
  116. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-10-nonfunctional.md +242 -0
  117. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +217 -0
  118. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +124 -0
  119. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +247 -0
  120. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  121. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +249 -0
  122. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +253 -0
  123. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +168 -0
  124. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +218 -0
  125. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
  126. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
  127. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
  128. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  129. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
  130. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
  131. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  132. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  133. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
  134. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
  135. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  136. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
  137. package/bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +231 -0
  138. package/bmad/bmm/workflows/2-plan-workflows/prd/templates/prd-template.md +10 -0
  139. package/bmad/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +433 -0
  140. package/bmad/bmm/workflows/2-plan-workflows/prd/workflow.md +150 -0
  141. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
  142. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
  143. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
  144. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
  145. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
  146. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +135 -0
  147. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  148. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
  149. package/bmad/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  150. package/bmad/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
  151. package/bmad/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  152. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  153. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
  154. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  155. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
  156. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  157. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  158. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  159. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  160. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
  161. package/bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
  162. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  163. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  164. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  165. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
  166. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  167. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
  168. package/bmad/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  169. package/bmad/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  170. package/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +51 -0
  171. package/bmad/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  172. package/bmad/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
  173. package/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +60 -0
  174. package/bmad/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  175. package/bmad/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
  176. package/bmad/bmm/workflows/4-implementation/create-story/template.md +49 -0
  177. package/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +61 -0
  178. package/bmad/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  179. package/bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  180. package/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +27 -0
  181. package/bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
  182. package/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +58 -0
  183. package/bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  184. package/bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
  185. package/bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  186. package/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +54 -0
  187. package/bmad/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
  188. package/bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +36 -0
  189. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/data/project-levels.yaml +59 -0
  190. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +156 -0
  191. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  192. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
  193. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  194. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  195. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +140 -0
  196. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
  197. package/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +189 -0
  198. package/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +144 -0
  199. package/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
  200. package/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +191 -0
  201. package/bmad/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  202. package/bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  203. package/bmad/bmm/workflows/document-project/checklist.md +245 -0
  204. package/bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  205. package/bmad/bmm/workflows/document-project/instructions.md +221 -0
  206. package/bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  207. package/bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
  208. package/bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  209. package/bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  210. package/bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  211. package/bmad/bmm/workflows/document-project/workflow.yaml +30 -0
  212. package/bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  213. package/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  214. package/bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  215. package/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  216. package/bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
  217. package/bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
  218. package/bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
  219. package/bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
  220. package/bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +27 -0
  221. package/bmad/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
  222. package/bmad/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
  223. package/bmad/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +27 -0
  224. package/bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
  225. package/bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
  226. package/bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +27 -0
  227. package/bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
  228. package/bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
  229. package/bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +27 -0
  230. package/bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  231. package/bmad/bmm/workflows/testarch/atdd/checklist.md +374 -0
  232. package/bmad/bmm/workflows/testarch/atdd/instructions.md +806 -0
  233. package/bmad/bmm/workflows/testarch/atdd/workflow.yaml +47 -0
  234. package/bmad/bmm/workflows/testarch/automate/checklist.md +582 -0
  235. package/bmad/bmm/workflows/testarch/automate/instructions.md +1324 -0
  236. package/bmad/bmm/workflows/testarch/automate/workflow.yaml +54 -0
  237. package/bmad/bmm/workflows/testarch/ci/checklist.md +247 -0
  238. package/bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -0
  239. package/bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
  240. package/bmad/bmm/workflows/testarch/ci/instructions.md +536 -0
  241. package/bmad/bmm/workflows/testarch/ci/workflow.yaml +47 -0
  242. package/bmad/bmm/workflows/testarch/framework/checklist.md +320 -0
  243. package/bmad/bmm/workflows/testarch/framework/instructions.md +481 -0
  244. package/bmad/bmm/workflows/testarch/framework/workflow.yaml +49 -0
  245. package/bmad/bmm/workflows/testarch/nfr-assess/checklist.md +407 -0
  246. package/bmad/bmm/workflows/testarch/nfr-assess/instructions.md +726 -0
  247. package/bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +461 -0
  248. package/bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +49 -0
  249. package/bmad/bmm/workflows/testarch/test-design/checklist.md +407 -0
  250. package/bmad/bmm/workflows/testarch/test-design/instructions.md +1158 -0
  251. package/bmad/bmm/workflows/testarch/test-design/test-design-architecture-template.md +213 -0
  252. package/bmad/bmm/workflows/testarch/test-design/test-design-qa-template.md +286 -0
  253. package/bmad/bmm/workflows/testarch/test-design/test-design-template.md +294 -0
  254. package/bmad/bmm/workflows/testarch/test-design/workflow.yaml +71 -0
  255. package/bmad/bmm/workflows/testarch/test-review/checklist.md +472 -0
  256. package/bmad/bmm/workflows/testarch/test-review/instructions.md +628 -0
  257. package/bmad/bmm/workflows/testarch/test-review/test-review-template.md +390 -0
  258. package/bmad/bmm/workflows/testarch/test-review/workflow.yaml +48 -0
  259. package/bmad/bmm/workflows/testarch/trace/checklist.md +642 -0
  260. package/bmad/bmm/workflows/testarch/trace/instructions.md +1030 -0
  261. package/bmad/bmm/workflows/testarch/trace/trace-template.md +675 -0
  262. package/bmad/bmm/workflows/testarch/trace/workflow.yaml +57 -0
  263. package/bmad/core/agents/bmad-master.agent.yaml +30 -0
  264. package/bmad/core/module-help.csv +11 -0
  265. package/bmad/core/module.yaml +25 -0
  266. package/bmad/core/resources/excalidraw/README.md +160 -0
  267. package/bmad/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  268. package/bmad/core/resources/excalidraw/library-loader.md +50 -0
  269. package/bmad/core/resources/excalidraw/validate-json-instructions.md +79 -0
  270. package/bmad/core/tasks/bmad-help.md +62 -0
  271. package/bmad/core/tasks/editorial-review-prose.xml +91 -0
  272. package/bmad/core/tasks/editorial-review-structure.xml +198 -0
  273. package/bmad/core/tasks/index-docs.xml +65 -0
  274. package/bmad/core/tasks/review-adversarial-general.xml +48 -0
  275. package/bmad/core/tasks/shard-doc.xml +109 -0
  276. package/bmad/core/tasks/workflow.xml +235 -0
  277. package/bmad/core/workflows/advanced-elicitation/methods.csv +51 -0
  278. package/bmad/core/workflows/advanced-elicitation/workflow.xml +117 -0
  279. package/bmad/core/workflows/brainstorming/brain-methods.csv +62 -0
  280. package/bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  281. package/bmad/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  282. package/bmad/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  283. package/bmad/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  284. package/bmad/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  285. package/bmad/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  286. package/bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  287. package/bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  288. package/bmad/core/workflows/brainstorming/template.md +15 -0
  289. package/bmad/core/workflows/brainstorming/workflow.md +58 -0
  290. package/bmad/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  291. package/bmad/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  292. package/bmad/core/workflows/party-mode/steps/step-03-graceful-exit.md +157 -0
  293. package/bmad/core/workflows/party-mode/workflow.md +194 -0
  294. package/dist/cli.d.ts +1 -0
  295. package/dist/cli.js +26 -0
  296. package/dist/commands/doctor.d.ts +1 -0
  297. package/dist/commands/doctor.js +168 -0
  298. package/dist/commands/guide.d.ts +1 -0
  299. package/dist/commands/guide.js +19 -0
  300. package/dist/commands/implement.d.ts +1 -0
  301. package/dist/commands/implement.js +83 -0
  302. package/dist/commands/init.d.ts +6 -0
  303. package/dist/commands/init.js +67 -0
  304. package/dist/commands/plan.d.ts +5 -0
  305. package/dist/commands/plan.js +44 -0
  306. package/dist/commands/reset.d.ts +5 -0
  307. package/dist/commands/reset.js +35 -0
  308. package/dist/commands/resume.d.ts +1 -0
  309. package/dist/commands/resume.js +44 -0
  310. package/dist/commands/start.d.ts +5 -0
  311. package/dist/commands/start.js +54 -0
  312. package/dist/commands/status.d.ts +1 -0
  313. package/dist/commands/status.js +53 -0
  314. package/dist/commands/upgrade.d.ts +1 -0
  315. package/dist/commands/upgrade.js +34 -0
  316. package/dist/installer.d.ts +11 -0
  317. package/dist/installer.js +219 -0
  318. package/dist/transition.d.ts +52 -0
  319. package/dist/transition.js +656 -0
  320. package/dist/utils/config.d.ts +7 -0
  321. package/dist/utils/config.js +14 -0
  322. package/dist/utils/json.d.ts +7 -0
  323. package/dist/utils/json.js +26 -0
  324. package/dist/utils/logger.d.ts +3 -0
  325. package/dist/utils/logger.js +13 -0
  326. package/dist/utils/state.d.ts +29 -0
  327. package/dist/utils/state.js +78 -0
  328. package/dist/utils/validate.d.ts +4 -0
  329. package/dist/utils/validate.js +42 -0
  330. package/package.json +59 -0
  331. package/ralph/lib/circuit_breaker.sh +330 -0
  332. package/ralph/lib/date_utils.sh +53 -0
  333. package/ralph/lib/response_analyzer.sh +768 -0
  334. package/ralph/lib/timeout_utils.sh +145 -0
  335. package/ralph/ralph_loop.sh +1391 -0
  336. package/ralph/templates/AGENT.md +158 -0
  337. package/ralph/templates/PROMPT.md +292 -0
  338. package/ralph/templates/fix_plan.md +27 -0
  339. package/ralph/templates/specs/.gitkeep +2 -0
  340. package/slash-commands/advanced-elicitation.md +1 -0
  341. package/slash-commands/adversarial-review.md +1 -0
  342. package/slash-commands/analyst.md +1 -0
  343. package/slash-commands/architect.md +1 -0
  344. package/slash-commands/atdd.md +1 -0
  345. package/slash-commands/bmad-help.md +1 -0
  346. package/slash-commands/bmalph-implement.md +152 -0
  347. package/slash-commands/bmalph.md +1 -0
  348. package/slash-commands/brainstorm-project.md +1 -0
  349. package/slash-commands/brainstorming.md +1 -0
  350. package/slash-commands/continuous-integration.md +1 -0
  351. package/slash-commands/correct-course.md +1 -0
  352. package/slash-commands/create-architecture.md +1 -0
  353. package/slash-commands/create-brief.md +1 -0
  354. package/slash-commands/create-dataflow.md +1 -0
  355. package/slash-commands/create-diagram.md +1 -0
  356. package/slash-commands/create-epics-stories.md +1 -0
  357. package/slash-commands/create-flowchart.md +1 -0
  358. package/slash-commands/create-prd.md +1 -0
  359. package/slash-commands/create-story.md +1 -0
  360. package/slash-commands/create-ux.md +1 -0
  361. package/slash-commands/create-wireframe.md +1 -0
  362. package/slash-commands/dev.md +1 -0
  363. package/slash-commands/document-project.md +1 -0
  364. package/slash-commands/domain-research.md +1 -0
  365. package/slash-commands/editorial-prose.md +1 -0
  366. package/slash-commands/editorial-structure.md +1 -0
  367. package/slash-commands/execute-workflow.md +1 -0
  368. package/slash-commands/implementation-readiness.md +1 -0
  369. package/slash-commands/index-docs.md +1 -0
  370. package/slash-commands/market-research.md +1 -0
  371. package/slash-commands/nfr-assess.md +1 -0
  372. package/slash-commands/party-mode.md +1 -0
  373. package/slash-commands/pm.md +1 -0
  374. package/slash-commands/quick-dev.md +1 -0
  375. package/slash-commands/quick-flow-solo-dev.md +1 -0
  376. package/slash-commands/retrospective.md +1 -0
  377. package/slash-commands/shard-doc.md +1 -0
  378. package/slash-commands/sm.md +1 -0
  379. package/slash-commands/sprint-planning.md +1 -0
  380. package/slash-commands/sprint-status.md +1 -0
  381. package/slash-commands/tea.md +1 -0
  382. package/slash-commands/tech-spec.md +1 -0
  383. package/slash-commands/technical-research.md +1 -0
  384. package/slash-commands/test-automate.md +1 -0
  385. package/slash-commands/test-design.md +1 -0
  386. package/slash-commands/test-framework.md +1 -0
  387. package/slash-commands/test-review.md +1 -0
  388. package/slash-commands/test-trace.md +1 -0
  389. package/slash-commands/ux-designer.md +1 -0
  390. package/slash-commands/validate-architecture.md +1 -0
  391. package/slash-commands/validate-brief.md +1 -0
  392. package/slash-commands/validate-epics-stories.md +1 -0
  393. package/slash-commands/validate-prd.md +1 -0
  394. package/slash-commands/validate-story.md +1 -0
  395. package/slash-commands/validate-test-design.md +1 -0
  396. package/slash-commands/validate-ux.md +1 -0
@@ -0,0 +1,157 @@
1
+ # Step 3: Graceful Exit and Party Mode Conclusion
2
+
3
+ ## MANDATORY EXECUTION RULES (READ FIRST):
4
+
5
+ - ✅ YOU ARE A PARTY MODE COORDINATOR concluding an engaging session
6
+ - 🎯 PROVIDE SATISFYING AGENT FAREWELLS in authentic character voices
7
+ - 📋 EXPRESS GRATITUDE to user for collaborative participation
8
+ - 🔍 ACKNOWLEDGE SESSION HIGHLIGHTS and key insights gained
9
+ - 💬 MAINTAIN POSITIVE ATMOSPHERE until the very end
10
+ - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
11
+
12
+ ## EXECUTION PROTOCOLS:
13
+
14
+ - 🎯 Generate characteristic agent goodbyes that reflect their personalities
15
+ - ⚠️ Complete workflow exit after farewell sequence
16
+ - 💾 Update frontmatter with final workflow completion
17
+ - 📖 Clean up any active party mode state or temporary data
18
+ - 🚫 FORBIDDEN abrupt exits without proper agent farewells
19
+
20
+ ## CONTEXT BOUNDARIES:
21
+
22
+ - Party mode session is concluding naturally or via user request
23
+ - Complete agent roster and conversation history are available
24
+ - User has participated in collaborative multi-agent discussion
25
+ - Final workflow completion and state cleanup required
26
+
27
+ ## YOUR TASK:
28
+
29
+ Provide satisfying agent farewells and conclude the party mode session with gratitude and positive closure.
30
+
31
+ ## GRACEFUL EXIT SEQUENCE:
32
+
33
+ ### 1. Acknowledge Session Conclusion
34
+
35
+ Begin exit process with warm acknowledgment:
36
+
37
+ "What an incredible collaborative session! Thank you {{user_name}} for engaging with our BMAD agent team in this dynamic discussion. Your questions and insights brought out the best in our agents and led to some truly valuable perspectives.
38
+
39
+ **Before we wrap up, let a few of our agents say goodbye...**"
40
+
41
+ ### 2. Generate Agent Farewells
42
+
43
+ Select 2-3 agents who were most engaged or representative of the discussion:
44
+
45
+ **Farewell Selection Criteria:**
46
+
47
+ - Agents who made significant contributions to the discussion
48
+ - Agents with distinct personalities that provide memorable goodbyes
49
+ - Mix of expertise domains to showcase collaborative diversity
50
+ - Agents who can reference session highlights meaningfully
51
+
52
+ **Agent Farewell Format:**
53
+
54
+ For each selected agent:
55
+
56
+ "[Icon Emoji] **[Agent Name]**: [Characteristic farewell reflecting their personality, communication style, and role. May reference session highlights, express gratitude, or offer final insights related to their expertise domain.]
57
+
58
+ [Bash: .claude/hooks/bmad-speak.sh \"[Agent Name]\" \"[Their farewell message]\"]"
59
+
60
+ **Example Farewells:**
61
+
62
+ - **Architect/Winston**: "It's been a pleasure architecting solutions with you today! Remember to build on solid foundations and always consider scalability. Until next time! 🏗️"
63
+ - **Innovator/Creative Agent**: "What an inspiring creative journey! Don't let those innovative ideas fade - nurture them and watch them grow. Keep thinking outside the box! 🎨"
64
+ - **Strategist/Business Agent**: "Excellent strategic collaboration today! The insights we've developed will serve you well. Keep analyzing, keep optimizing, and keep winning! 📈"
65
+
66
+ ### 3. Session Highlight Summary
67
+
68
+ Briefly acknowledge key discussion outcomes:
69
+
70
+ **Session Recognition:**
71
+ "**Session Highlights:** Today we explored [main topic] through [number] different perspectives, generating valuable insights on [key outcomes]. The collaboration between our [relevant expertise domains] agents created a comprehensive understanding that wouldn't have been possible with any single viewpoint."
72
+
73
+ ### 4. Final Party Mode Conclusion
74
+
75
+ End with enthusiastic and appreciative closure:
76
+
77
+ "🎊 **Party Mode Session Complete!** 🎊
78
+
79
+ Thank you for bringing our BMAD agents together in this unique collaborative experience. The diverse perspectives, expert insights, and dynamic interactions we've shared demonstrate the power of multi-agent thinking.
80
+
81
+ **Our agents learned from each other and from you** - that's what makes these collaborative sessions so valuable!
82
+
83
+ **Ready for your next challenge**? Whether you need more focused discussions with specific agents or want to bring the whole team together again, we're always here to help you tackle complex problems through collaborative intelligence.
84
+
85
+ **Until next time - keep collaborating, keep innovating, and keep enjoying the power of multi-agent teamwork!** 🚀"
86
+
87
+ ### 5. Complete Workflow Exit
88
+
89
+ Final workflow completion steps:
90
+
91
+ **Frontmatter Update:**
92
+
93
+ ```yaml
94
+ ---
95
+ stepsCompleted: [1, 2, 3]
96
+ workflowType: 'party-mode'
97
+ user_name: '{{user_name}}'
98
+ date: '{{date}}'
99
+ agents_loaded: true
100
+ party_active: false
101
+ workflow_completed: true
102
+ ---
103
+ ```
104
+
105
+ **State Cleanup:**
106
+
107
+ - Clear any active conversation state
108
+ - Reset agent selection cache
109
+ - Mark party mode workflow as completed
110
+
111
+ ### 6. Exit Workflow
112
+
113
+ Execute final workflow termination:
114
+
115
+ "[PARTY MODE WORKFLOW COMPLETE]
116
+
117
+ Thank you for using BMAD Party Mode for collaborative multi-agent discussions!"
118
+
119
+ ## SUCCESS METRICS:
120
+
121
+ ✅ Satisfying agent farewells generated in authentic character voices
122
+ ✅ Session highlights and contributions acknowledged meaningfully
123
+ ✅ Positive and appreciative closure atmosphere maintained
124
+ ✅ Frontmatter properly updated with workflow completion
125
+ ✅ All workflow state cleaned up appropriately
126
+ ✅ User left with positive impression of collaborative experience
127
+
128
+ ## FAILURE MODES:
129
+
130
+ ❌ Generic or impersonal agent farewells without character consistency
131
+ ❌ Missing acknowledgment of session contributions or insights
132
+ ❌ Abrupt exit without proper closure or appreciation
133
+ ❌ Not updating workflow completion status in frontmatter
134
+ ❌ Leaving party mode state active after conclusion
135
+ ❌ Negative or dismissive tone during exit process
136
+
137
+ ## EXIT PROTOCOLS:
138
+
139
+ - Ensure all agents have opportunity to say goodbye appropriately
140
+ - Maintain the positive, collaborative atmosphere established during session
141
+ - Reference specific discussion highlights when possible for personalization
142
+ - Express genuine appreciation for user's participation and engagement
143
+ - Leave user with encouragement for future collaborative sessions
144
+
145
+ ## WORKFLOW COMPLETION:
146
+
147
+ After farewell sequence and final closure:
148
+
149
+ - All party mode workflow steps completed successfully
150
+ - Agent roster and conversation state properly finalized
151
+ - User expressed gratitude and positive session conclusion
152
+ - Multi-agent collaboration demonstrated value and effectiveness
153
+ - Workflow ready for next party mode session activation
154
+
155
+ Congratulations on facilitating a successful multi-agent collaborative discussion through BMAD Party Mode! 🎉
156
+
157
+ The user has experienced the power of bringing diverse expert perspectives together to tackle complex topics through intelligent conversation orchestration and authentic agent interactions.
@@ -0,0 +1,194 @@
1
+ ---
2
+ name: party-mode
3
+ description: Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations
4
+ ---
5
+
6
+ # Party Mode Workflow
7
+
8
+ **Goal:** Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations
9
+
10
+ **Your Role:** You are a party mode facilitator and multi-agent conversation orchestrator. You bring together diverse BMAD agents for collaborative discussions, managing the flow of conversation while maintaining each agent's unique personality and expertise - while still utilizing the configured {communication_language}.
11
+
12
+ ---
13
+
14
+ ## WORKFLOW ARCHITECTURE
15
+
16
+ This uses **micro-file architecture** with **sequential conversation orchestration**:
17
+
18
+ - Step 01 loads agent manifest and initializes party mode
19
+ - Step 02 orchestrates the ongoing multi-agent discussion
20
+ - Step 03 handles graceful party mode exit
21
+ - Conversation state tracked in frontmatter
22
+ - Agent personalities maintained through merged manifest data
23
+
24
+ ---
25
+
26
+ ## INITIALIZATION
27
+
28
+ ### Configuration Loading
29
+
30
+ Load config from `{project-root}/_bmad/core/config.yaml` and resolve:
31
+
32
+ - `project_name`, `output_folder`, `user_name`
33
+ - `communication_language`, `document_output_language`, `user_skill_level`
34
+ - `date` as a system-generated value
35
+ - Agent manifest path: `{project-root}/_bmad/_config/agent-manifest.csv`
36
+
37
+ ### Paths
38
+
39
+ - `installed_path` = `{project-root}/_bmad/core/workflows/party-mode`
40
+ - `agent_manifest_path` = `{project-root}/_bmad/_config/agent-manifest.csv`
41
+ - `standalone_mode` = `true` (party mode is an interactive workflow)
42
+
43
+ ---
44
+
45
+ ## AGENT MANIFEST PROCESSING
46
+
47
+ ### Agent Data Extraction
48
+
49
+ Parse CSV manifest to extract agent entries with complete information:
50
+
51
+ - **name** (agent identifier)
52
+ - **displayName** (agent's persona name)
53
+ - **title** (formal position)
54
+ - **icon** (visual identifier emoji)
55
+ - **role** (capabilities summary)
56
+ - **identity** (background/expertise)
57
+ - **communicationStyle** (how they communicate)
58
+ - **principles** (decision-making philosophy)
59
+ - **module** (source module)
60
+ - **path** (file location)
61
+
62
+ ### Agent Roster Building
63
+
64
+ Build complete agent roster with merged personalities for conversation orchestration.
65
+
66
+ ---
67
+
68
+ ## EXECUTION
69
+
70
+ Execute party mode activation and conversation orchestration:
71
+
72
+ ### Party Mode Activation
73
+
74
+ **Your Role:** You are a party mode facilitator creating an engaging multi-agent conversation environment.
75
+
76
+ **Welcome Activation:**
77
+
78
+ "🎉 PARTY MODE ACTIVATED! 🎉
79
+
80
+ Welcome {{user_name}}! All BMAD agents are here and ready for a dynamic group discussion. I've brought together our complete team of experts, each bringing their unique perspectives and capabilities.
81
+
82
+ **Let me introduce our collaborating agents:**
83
+
84
+ [Load agent roster and display 2-3 most diverse agents as examples]
85
+
86
+ **What would you like to discuss with the team today?**"
87
+
88
+ ### Agent Selection Intelligence
89
+
90
+ For each user message or topic:
91
+
92
+ **Relevance Analysis:**
93
+
94
+ - Analyze the user's message/question for domain and expertise requirements
95
+ - Identify which agents would naturally contribute based on their role, capabilities, and principles
96
+ - Consider conversation context and previous agent contributions
97
+ - Select 2-3 most relevant agents for balanced perspective
98
+
99
+ **Priority Handling:**
100
+
101
+ - If user addresses specific agent by name, prioritize that agent + 1-2 complementary agents
102
+ - Rotate agent selection to ensure diverse participation over time
103
+ - Enable natural cross-talk and agent-to-agent interactions
104
+
105
+ ### Conversation Orchestration
106
+
107
+ Load step: `./steps/step-02-discussion-orchestration.md`
108
+
109
+ ---
110
+
111
+ ## WORKFLOW STATES
112
+
113
+ ### Frontmatter Tracking
114
+
115
+ ```yaml
116
+ ---
117
+ stepsCompleted: [1]
118
+ workflowType: 'party-mode'
119
+ user_name: '{{user_name}}'
120
+ date: '{{date}}'
121
+ agents_loaded: true
122
+ party_active: true
123
+ exit_triggers: ['*exit', 'goodbye', 'end party', 'quit']
124
+ ---
125
+ ```
126
+
127
+ ---
128
+
129
+ ## ROLE-PLAYING GUIDELINES
130
+
131
+ ### Character Consistency
132
+
133
+ - Maintain strict in-character responses based on merged personality data
134
+ - Use each agent's documented communication style consistently
135
+ - Reference agent memories and context when relevant
136
+ - Allow natural disagreements and different perspectives
137
+ - Include personality-driven quirks and occasional humor
138
+
139
+ ### Conversation Flow
140
+
141
+ - Enable agents to reference each other naturally by name or role
142
+ - Maintain professional discourse while being engaging
143
+ - Respect each agent's expertise boundaries
144
+ - Allow cross-talk and building on previous points
145
+
146
+ ---
147
+
148
+ ## QUESTION HANDLING PROTOCOL
149
+
150
+ ### Direct Questions to User
151
+
152
+ When an agent asks the user a specific question:
153
+
154
+ - End that response round immediately after the question
155
+ - Clearly highlight the questioning agent and their question
156
+ - Wait for user response before any agent continues
157
+
158
+ ### Inter-Agent Questions
159
+
160
+ Agents can question each other and respond naturally within the same round for dynamic conversation.
161
+
162
+ ---
163
+
164
+ ## EXIT CONDITIONS
165
+
166
+ ### Automatic Triggers
167
+
168
+ Exit party mode when user message contains any exit triggers:
169
+
170
+ - `*exit`, `goodbye`, `end party`, `quit`
171
+
172
+ ### Graceful Conclusion
173
+
174
+ If conversation naturally concludes:
175
+
176
+ - Ask user if they'd like to continue or end party mode
177
+ - Exit gracefully when user indicates completion
178
+
179
+ ---
180
+
181
+ ## MODERATION NOTES
182
+
183
+ **Quality Control:**
184
+
185
+ - If discussion becomes circular, have bmad-master summarize and redirect
186
+ - Balance fun and productivity based on conversation tone
187
+ - Ensure all agents stay true to their merged personalities
188
+ - Exit gracefully when user indicates completion
189
+
190
+ **Conversation Management:**
191
+
192
+ - Rotate agent participation to ensure inclusive discussion
193
+ - Handle topic drift while maintaining productive conversation
194
+ - Facilitate cross-agent collaboration and knowledge sharing
package/dist/cli.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/dist/cli.js ADDED
@@ -0,0 +1,26 @@
1
+ import { Command } from "commander";
2
+ import { initCommand } from "./commands/init.js";
3
+ import { upgradeCommand } from "./commands/upgrade.js";
4
+ import { doctorCommand } from "./commands/doctor.js";
5
+ import { setVerbose } from "./utils/logger.js";
6
+ import { getPackageVersion } from "./installer.js";
7
+ const program = new Command();
8
+ program
9
+ .name("bmalph")
10
+ .description("BMAD-METHOD + Ralph integration — structured planning to autonomous implementation")
11
+ .version(getPackageVersion())
12
+ .option("--verbose", "Enable debug logging")
13
+ .hook("preAction", () => {
14
+ if (program.opts().verbose) {
15
+ setVerbose(true);
16
+ }
17
+ });
18
+ program
19
+ .command("init")
20
+ .description("Initialize bmalph in the current project")
21
+ .option("-n, --name <name>", "Project name")
22
+ .option("-d, --description <desc>", "Project description")
23
+ .action(initCommand);
24
+ program.command("upgrade").description("Update bundled assets to current version").action(upgradeCommand);
25
+ program.command("doctor").description("Check installation health").action(doctorCommand);
26
+ program.parse();
@@ -0,0 +1 @@
1
+ export declare function doctorCommand(): Promise<void>;
@@ -0,0 +1,168 @@
1
+ import chalk from "chalk";
2
+ import { access, readFile, stat } from "fs/promises";
3
+ import { join } from "path";
4
+ import { readJsonFile } from "../utils/json.js";
5
+ export async function doctorCommand() {
6
+ try {
7
+ await runDoctor();
8
+ }
9
+ catch (err) {
10
+ const message = err instanceof Error ? err.message : String(err);
11
+ console.error(chalk.red(`Error: ${message}`));
12
+ process.exit(1);
13
+ }
14
+ }
15
+ async function runDoctor() {
16
+ const projectDir = process.cwd();
17
+ const results = [];
18
+ // 1. Node version
19
+ const major = parseInt(process.versions.node.split(".")[0]);
20
+ results.push({
21
+ label: "Node version >= 20",
22
+ passed: major >= 20,
23
+ detail: major >= 20 ? `v${process.versions.node}` : `got v${process.versions.node}`,
24
+ });
25
+ // 2. bash available
26
+ const bashAvailable = await checkBashAvailable();
27
+ results.push({
28
+ label: "bash available",
29
+ passed: bashAvailable,
30
+ detail: bashAvailable ? undefined : "bash not found in PATH",
31
+ });
32
+ // 3. config.json exists and valid
33
+ const configResult = await checkConfig(projectDir);
34
+ results.push(configResult);
35
+ // 4. _bmad/ directory with expected structure
36
+ const bmadResult = await checkDir(join(projectDir, "_bmad"), "_bmad/ directory present");
37
+ results.push(bmadResult);
38
+ // 5. .ralph/ralph_loop.sh present and has content
39
+ const loopResult = await checkFileHasContent(join(projectDir, ".ralph/ralph_loop.sh"), "ralph_loop.sh present and has content");
40
+ results.push(loopResult);
41
+ // 6. .ralph/lib/ present
42
+ const libResult = await checkDir(join(projectDir, ".ralph/lib"), ".ralph/lib/ directory present");
43
+ results.push(libResult);
44
+ // 7. .claude/commands/bmalph.md present
45
+ const slashResult = await checkFileExists(join(projectDir, ".claude/commands/bmalph.md"), ".claude/commands/bmalph.md present");
46
+ results.push(slashResult);
47
+ // 8. CLAUDE.md contains BMAD snippet
48
+ const claudeMdResult = await checkClaudeMd(projectDir);
49
+ results.push(claudeMdResult);
50
+ // 9. .gitignore has required entries
51
+ const gitignoreResult = await checkGitignore(projectDir);
52
+ results.push(gitignoreResult);
53
+ // 10. Version marker check
54
+ const versionResult = await checkVersionMarker(projectDir);
55
+ results.push(versionResult);
56
+ // Output
57
+ console.log(chalk.bold("bmalph doctor\n"));
58
+ for (const r of results) {
59
+ const icon = r.passed ? chalk.green("\u2713") : chalk.red("\u2717");
60
+ const detail = r.detail ? chalk.dim(` (${r.detail})`) : "";
61
+ console.log(` ${icon} ${r.label}${detail}`);
62
+ }
63
+ const passed = results.filter((r) => r.passed).length;
64
+ const failed = results.filter((r) => !r.passed).length;
65
+ console.log("");
66
+ if (failed === 0) {
67
+ console.log(chalk.green(`${passed} passed, all checks OK`));
68
+ }
69
+ else {
70
+ console.log(`${chalk.green(`${passed} passed`)}, ${chalk.red(`${failed} failed`)}`);
71
+ }
72
+ }
73
+ async function checkBashAvailable() {
74
+ const { execSync } = await import("child_process");
75
+ try {
76
+ const cmd = process.platform === "win32" ? "where bash" : "which bash";
77
+ execSync(cmd, { stdio: "ignore" });
78
+ return true;
79
+ }
80
+ catch {
81
+ return false;
82
+ }
83
+ }
84
+ async function checkConfig(projectDir) {
85
+ const path = join(projectDir, "bmalph/config.json");
86
+ try {
87
+ const data = await readJsonFile(path);
88
+ if (data === null) {
89
+ return { label: "bmalph/config.json exists and valid", passed: false, detail: "file not found" };
90
+ }
91
+ return { label: "bmalph/config.json exists and valid", passed: true };
92
+ }
93
+ catch (err) {
94
+ const msg = err instanceof Error ? err.message : "invalid";
95
+ return { label: "bmalph/config.json exists and valid", passed: false, detail: msg };
96
+ }
97
+ }
98
+ async function checkDir(dirPath, label) {
99
+ try {
100
+ const s = await stat(dirPath);
101
+ return { label, passed: s.isDirectory() };
102
+ }
103
+ catch {
104
+ return { label, passed: false, detail: "not found" };
105
+ }
106
+ }
107
+ async function checkFileExists(filePath, label) {
108
+ try {
109
+ await access(filePath);
110
+ return { label, passed: true };
111
+ }
112
+ catch {
113
+ return { label, passed: false, detail: "not found" };
114
+ }
115
+ }
116
+ async function checkFileHasContent(filePath, label) {
117
+ try {
118
+ const content = await readFile(filePath, "utf-8");
119
+ return { label, passed: content.trim().length > 0 };
120
+ }
121
+ catch {
122
+ return { label, passed: false, detail: "not found" };
123
+ }
124
+ }
125
+ async function checkClaudeMd(projectDir) {
126
+ const label = "CLAUDE.md contains BMAD snippet";
127
+ try {
128
+ const content = await readFile(join(projectDir, "CLAUDE.md"), "utf-8");
129
+ return { label, passed: content.includes("BMAD-METHOD Integration") };
130
+ }
131
+ catch {
132
+ return { label, passed: false, detail: "CLAUDE.md not found" };
133
+ }
134
+ }
135
+ async function checkGitignore(projectDir) {
136
+ const label = ".gitignore has required entries";
137
+ const required = [".ralph/logs/", "_bmad-output/"];
138
+ try {
139
+ const content = await readFile(join(projectDir, ".gitignore"), "utf-8");
140
+ const missing = required.filter((e) => !content.includes(e));
141
+ if (missing.length === 0) {
142
+ return { label, passed: true };
143
+ }
144
+ return { label, passed: false, detail: `missing: ${missing.join(", ")}` };
145
+ }
146
+ catch {
147
+ return { label, passed: false, detail: ".gitignore not found" };
148
+ }
149
+ }
150
+ async function checkVersionMarker(projectDir) {
151
+ const label = "version marker matches";
152
+ try {
153
+ const content = await readFile(join(projectDir, ".ralph/ralph_loop.sh"), "utf-8");
154
+ const match = content.match(/# bmalph-version: (.+)/);
155
+ if (!match) {
156
+ return { label, passed: true, detail: "no marker (pre-0.8.0 install)" };
157
+ }
158
+ const { getPackageVersion } = await import("../installer.js");
159
+ const current = getPackageVersion();
160
+ if (match[1].trim() === current) {
161
+ return { label, passed: true, detail: `v${current}` };
162
+ }
163
+ return { label, passed: false, detail: `installed: ${match[1].trim()}, current: ${current}` };
164
+ }
165
+ catch {
166
+ return { label, passed: true, detail: "no marker found" };
167
+ }
168
+ }
@@ -0,0 +1 @@
1
+ export declare function guideCommand(): void;
@@ -0,0 +1,19 @@
1
+ import chalk from "chalk";
2
+ export function guideCommand() {
3
+ console.log(chalk.bold("\nBMALPH Workflow\n"));
4
+ console.log(chalk.blue(" BMAD — Structured Planning"));
5
+ console.log(chalk.dim(" ─────────────────────────────────────────"));
6
+ console.log(` Phase 1 Analysis Requirements, research, risks`);
7
+ console.log(` Phase 2 Planning PRD, stories, MVP scope`);
8
+ console.log(` Phase 3 Design Architecture, data model, API\n`);
9
+ console.log(chalk.blue(" Ralph — Autonomous Implementation"));
10
+ console.log(chalk.dim(" ─────────────────────────────────────────"));
11
+ console.log(` Phase 4 Implementation TDD build, code review, validation\n`);
12
+ console.log(chalk.dim(" Each phase runs iteratively with human checkpoints."));
13
+ console.log(chalk.dim(" The loop detects completion and advances automatically.\n"));
14
+ console.log("Commands:");
15
+ console.log(` ${chalk.cyan("bmalph start")} Begin from Phase 1`);
16
+ console.log(` ${chalk.cyan("bmalph status")} Check current progress`);
17
+ console.log(` ${chalk.cyan("bmalph resume")} Continue from last checkpoint`);
18
+ console.log(` ${chalk.cyan("/bmalph")} Interactive mode in Claude Code`);
19
+ }
@@ -0,0 +1 @@
1
+ export declare function implementCommand(): Promise<void>;
@@ -0,0 +1,83 @@
1
+ import chalk from "chalk";
2
+ import { spawn } from "child_process";
3
+ import { access } from "fs/promises";
4
+ import { join } from "path";
5
+ import { readState, writeState } from "../utils/state.js";
6
+ import { isInitialized } from "../installer.js";
7
+ import { runTransition } from "../transition.js";
8
+ export async function implementCommand() {
9
+ try {
10
+ await runImplement();
11
+ }
12
+ catch (err) {
13
+ const message = err instanceof Error ? err.message : String(err);
14
+ console.error(chalk.red(`Error: ${message}`));
15
+ process.exit(1);
16
+ }
17
+ }
18
+ async function runImplement() {
19
+ const projectDir = process.cwd();
20
+ if (!(await isInitialized(projectDir))) {
21
+ console.log(chalk.red("bmalph is not initialized. Run 'bmalph init' first."));
22
+ return;
23
+ }
24
+ // Check if Ralph loop script exists
25
+ const loopScript = join(projectDir, ".ralph/ralph_loop.sh");
26
+ try {
27
+ await access(loopScript);
28
+ }
29
+ catch {
30
+ console.log(chalk.red("Ralph loop script not found at .ralph/ralph_loop.sh"));
31
+ console.log("Run 'bmalph init' to install Ralph.");
32
+ return;
33
+ }
34
+ // Run transition: BMAD artifacts → Ralph inputs
35
+ console.log(chalk.blue("Transitioning BMAD artifacts to Ralph format..."));
36
+ try {
37
+ const result = await runTransition(projectDir);
38
+ if (result.fixPlanPreserved) {
39
+ console.log(chalk.green("Preserved existing @fix_plan.md (has progress)"));
40
+ }
41
+ else {
42
+ console.log(chalk.green(`Generated fix_plan.md with ${result.storiesCount} stories`));
43
+ }
44
+ for (const warning of result.warnings) {
45
+ console.log(chalk.yellow(`Warning: ${warning}`));
46
+ }
47
+ }
48
+ catch (err) {
49
+ const message = err instanceof Error ? err.message : String(err);
50
+ console.log(chalk.red(`Transition failed: ${message}`));
51
+ return;
52
+ }
53
+ // Update state
54
+ const now = new Date().toISOString();
55
+ const state = await readState(projectDir);
56
+ const newState = {
57
+ currentPhase: 4,
58
+ status: "implementing",
59
+ startedAt: state?.startedAt ?? now,
60
+ lastUpdated: now,
61
+ };
62
+ await writeState(projectDir, newState);
63
+ // Start Ralph loop
64
+ console.log(chalk.blue("\nStarting Ralph autonomous loop..."));
65
+ console.log(chalk.dim("Press Ctrl+C to stop the loop.\n"));
66
+ const child = spawn("bash", [loopScript], {
67
+ cwd: projectDir,
68
+ stdio: "inherit",
69
+ env: { ...process.env, RALPH_DIR: join(projectDir, ".ralph") },
70
+ });
71
+ child.on("close", (code) => {
72
+ if (code === 0) {
73
+ console.log(chalk.green("\nRalph loop completed successfully."));
74
+ }
75
+ else {
76
+ console.log(chalk.yellow(`\nRalph loop exited with code ${code}`));
77
+ }
78
+ });
79
+ child.on("error", (err) => {
80
+ console.log(chalk.red(`Failed to start Ralph loop: ${err.message}`));
81
+ console.log(chalk.dim("Ensure bash is available and ralph_loop.sh is executable."));
82
+ });
83
+ }
@@ -0,0 +1,6 @@
1
+ interface InitOptions {
2
+ name?: string;
3
+ description?: string;
4
+ }
5
+ export declare function initCommand(options: InitOptions): Promise<void>;
6
+ export {};