bmad-enhanced 1.3.8 → 1.4.1

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 (671) hide show
  1. package/README.md +115 -131
  2. package/_bmad/_config/agent-manifest.csv +23 -0
  3. package/_bmad/_config/agents/bmb-agent-builder.customize.yaml +41 -0
  4. package/_bmad/_config/agents/bmb-module-builder.customize.yaml +41 -0
  5. package/_bmad/_config/agents/bmb-workflow-builder.customize.yaml +41 -0
  6. package/_bmad/_config/agents/bmm-analyst.customize.yaml +41 -0
  7. package/_bmad/_config/agents/bmm-architect.customize.yaml +41 -0
  8. package/_bmad/_config/agents/bmm-dev.customize.yaml +41 -0
  9. package/_bmad/_config/agents/bmm-pm.customize.yaml +41 -0
  10. package/_bmad/_config/agents/bmm-quick-flow-solo-dev.customize.yaml +41 -0
  11. package/_bmad/_config/agents/bmm-quinn.customize.yaml +41 -0
  12. package/_bmad/_config/agents/bmm-sm.customize.yaml +41 -0
  13. package/_bmad/_config/agents/bmm-tech-writer.customize.yaml +41 -0
  14. package/_bmad/_config/agents/bmm-ux-designer.customize.yaml +41 -0
  15. package/_bmad/_config/agents/cis-brainstorming-coach.customize.yaml +41 -0
  16. package/_bmad/_config/agents/cis-creative-problem-solver.customize.yaml +41 -0
  17. package/_bmad/_config/agents/cis-design-thinking-coach.customize.yaml +41 -0
  18. package/_bmad/_config/agents/cis-innovation-strategist.customize.yaml +41 -0
  19. package/_bmad/_config/agents/cis-presentation-master.customize.yaml +41 -0
  20. package/_bmad/_config/agents/cis-storyteller.customize.yaml +41 -0
  21. package/_bmad/_config/agents/core-bmad-master.customize.yaml +41 -0
  22. package/_bmad/_config/agents/tea-tea.customize.yaml +41 -0
  23. package/_bmad/_config/bmad-help.csv +66 -0
  24. package/_bmad/_config/files-manifest.csv +602 -0
  25. package/_bmad/_config/manifest.yaml +42 -0
  26. package/_bmad/_config/task-manifest.csv +9 -0
  27. package/_bmad/_config/tool-manifest.csv +1 -0
  28. package/_bmad/_config/workflow-manifest.csv +41 -0
  29. package/_bmad/_memory/config.yaml +11 -0
  30. package/_bmad/_memory/storyteller-sidecar/stories-told.md +7 -0
  31. package/_bmad/_memory/storyteller-sidecar/story-preferences.md +7 -0
  32. package/_bmad/bmb/agents/agent-builder.md +59 -0
  33. package/_bmad/bmb/agents/module-builder.md +60 -0
  34. package/_bmad/bmb/agents/workflow-builder.md +61 -0
  35. package/_bmad/bmb/config.yaml +12 -0
  36. package/_bmad/bmb/module-help.csv +13 -0
  37. package/_bmad/bmb/workflows/agent/data/agent-compilation.md +273 -0
  38. package/_bmad/bmb/workflows/agent/data/agent-menu-patterns.md +233 -0
  39. package/_bmad/bmb/workflows/agent/data/agent-metadata.md +208 -0
  40. package/_bmad/bmb/workflows/agent/data/brainstorm-context.md +146 -0
  41. package/_bmad/bmb/workflows/agent/data/communication-presets.csv +61 -0
  42. package/_bmad/bmb/workflows/agent/data/critical-actions.md +120 -0
  43. package/_bmad/bmb/workflows/agent/data/expert-agent-architecture.md +236 -0
  44. package/_bmad/bmb/workflows/agent/data/expert-agent-validation.md +174 -0
  45. package/_bmad/bmb/workflows/agent/data/module-agent-validation.md +126 -0
  46. package/_bmad/bmb/workflows/agent/data/persona-properties.md +266 -0
  47. package/_bmad/bmb/workflows/agent/data/principles-crafting.md +292 -0
  48. package/_bmad/bmb/workflows/agent/data/reference/module-examples/architect.md +68 -0
  49. package/_bmad/bmb/workflows/agent/data/simple-agent-architecture.md +204 -0
  50. package/_bmad/bmb/workflows/agent/data/simple-agent-validation.md +133 -0
  51. package/_bmad/bmb/workflows/agent/data/understanding-agent-types.md +222 -0
  52. package/_bmad/bmb/workflows/agent/steps-c/step-01-brainstorm.md +128 -0
  53. package/_bmad/bmb/workflows/agent/steps-c/step-02-discovery.md +170 -0
  54. package/_bmad/bmb/workflows/agent/steps-c/step-03-type-metadata.md +296 -0
  55. package/_bmad/bmb/workflows/agent/steps-c/step-04-persona.md +212 -0
  56. package/_bmad/bmb/workflows/agent/steps-c/step-05-commands-menu.md +178 -0
  57. package/_bmad/bmb/workflows/agent/steps-c/step-06-activation.md +279 -0
  58. package/_bmad/bmb/workflows/agent/steps-c/step-07a-build-simple.md +187 -0
  59. package/_bmad/bmb/workflows/agent/steps-c/step-07b-build-expert.md +201 -0
  60. package/_bmad/bmb/workflows/agent/steps-c/step-07c-build-module.md +258 -0
  61. package/_bmad/bmb/workflows/agent/steps-c/step-08-celebrate.md +249 -0
  62. package/_bmad/bmb/workflows/agent/steps-e/e-01-load-existing.md +221 -0
  63. package/_bmad/bmb/workflows/agent/steps-e/e-02-discover-edits.md +193 -0
  64. package/_bmad/bmb/workflows/agent/steps-e/e-03-placeholder.md +1 -0
  65. package/_bmad/bmb/workflows/agent/steps-e/e-04-type-metadata.md +124 -0
  66. package/_bmad/bmb/workflows/agent/steps-e/e-05-persona.md +134 -0
  67. package/_bmad/bmb/workflows/agent/steps-e/e-06-commands-menu.md +122 -0
  68. package/_bmad/bmb/workflows/agent/steps-e/e-07-activation.md +125 -0
  69. package/_bmad/bmb/workflows/agent/steps-e/e-08a-edit-simple.md +137 -0
  70. package/_bmad/bmb/workflows/agent/steps-e/e-08b-edit-expert.md +119 -0
  71. package/_bmad/bmb/workflows/agent/steps-e/e-08c-edit-module.md +123 -0
  72. package/_bmad/bmb/workflows/agent/steps-e/e-09-celebrate.md +155 -0
  73. package/_bmad/bmb/workflows/agent/steps-v/v-01-load-review.md +136 -0
  74. package/_bmad/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +116 -0
  75. package/_bmad/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +124 -0
  76. package/_bmad/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +145 -0
  77. package/_bmad/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +136 -0
  78. package/_bmad/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +136 -0
  79. package/_bmad/bmb/workflows/agent/steps-v/v-03-summary.md +104 -0
  80. package/_bmad/bmb/workflows/agent/templates/agent-plan.template.md +5 -0
  81. package/_bmad/bmb/workflows/agent/templates/expert-agent-template/expert-agent.template.md +77 -0
  82. package/_bmad/bmb/workflows/agent/templates/simple-agent.template.md +72 -0
  83. package/_bmad/bmb/workflows/agent/workflow.md +123 -0
  84. package/_bmad/bmb/workflows/module/data/agent-architecture.md +179 -0
  85. package/_bmad/bmb/workflows/module/data/agent-spec-template.md +79 -0
  86. package/_bmad/bmb/workflows/module/data/module-installer-standards.md +348 -0
  87. package/_bmad/bmb/workflows/module/data/module-standards.md +280 -0
  88. package/_bmad/bmb/workflows/module/data/module-yaml-conventions.md +392 -0
  89. package/_bmad/bmb/workflows/module/steps-b/step-01-welcome.md +147 -0
  90. package/_bmad/bmb/workflows/module/steps-b/step-02-spark.md +140 -0
  91. package/_bmad/bmb/workflows/module/steps-b/step-03-module-type.md +148 -0
  92. package/_bmad/bmb/workflows/module/steps-b/step-04-vision.md +82 -0
  93. package/_bmad/bmb/workflows/module/steps-b/step-05-identity.md +96 -0
  94. package/_bmad/bmb/workflows/module/steps-b/step-06-users.md +85 -0
  95. package/_bmad/bmb/workflows/module/steps-b/step-07-value.md +75 -0
  96. package/_bmad/bmb/workflows/module/steps-b/step-08-agents.md +96 -0
  97. package/_bmad/bmb/workflows/module/steps-b/step-09-workflows.md +82 -0
  98. package/_bmad/bmb/workflows/module/steps-b/step-10-tools.md +90 -0
  99. package/_bmad/bmb/workflows/module/steps-b/step-11-scenarios.md +83 -0
  100. package/_bmad/bmb/workflows/module/steps-b/step-12-creative.md +94 -0
  101. package/_bmad/bmb/workflows/module/steps-b/step-13-review.md +104 -0
  102. package/_bmad/bmb/workflows/module/steps-b/step-14-finalize.md +117 -0
  103. package/_bmad/bmb/workflows/module/steps-c/step-01-load-brief.md +178 -0
  104. package/_bmad/bmb/workflows/module/steps-c/step-01b-continue.md +83 -0
  105. package/_bmad/bmb/workflows/module/steps-c/step-02-structure.md +109 -0
  106. package/_bmad/bmb/workflows/module/steps-c/step-03-config.md +118 -0
  107. package/_bmad/bmb/workflows/module/steps-c/step-04-installer.md +160 -0
  108. package/_bmad/bmb/workflows/module/steps-c/step-05-agents.md +167 -0
  109. package/_bmad/bmb/workflows/module/steps-c/step-06-workflows.md +183 -0
  110. package/_bmad/bmb/workflows/module/steps-c/step-07-docs.md +402 -0
  111. package/_bmad/bmb/workflows/module/steps-c/step-08-complete.md +123 -0
  112. package/_bmad/bmb/workflows/module/steps-e/step-01-load-target.md +81 -0
  113. package/_bmad/bmb/workflows/module/steps-e/step-02-select-edit.md +77 -0
  114. package/_bmad/bmb/workflows/module/steps-e/step-03-apply-edit.md +77 -0
  115. package/_bmad/bmb/workflows/module/steps-e/step-04-review.md +80 -0
  116. package/_bmad/bmb/workflows/module/steps-e/step-05-confirm.md +75 -0
  117. package/_bmad/bmb/workflows/module/steps-v/step-01-load-target.md +96 -0
  118. package/_bmad/bmb/workflows/module/steps-v/step-02-file-structure.md +94 -0
  119. package/_bmad/bmb/workflows/module/steps-v/step-03-module-yaml.md +99 -0
  120. package/_bmad/bmb/workflows/module/steps-v/step-04-agent-specs.md +152 -0
  121. package/_bmad/bmb/workflows/module/steps-v/step-05-workflow-specs.md +152 -0
  122. package/_bmad/bmb/workflows/module/steps-v/step-06-documentation.md +143 -0
  123. package/_bmad/bmb/workflows/module/steps-v/step-07-installation.md +113 -0
  124. package/_bmad/bmb/workflows/module/steps-v/step-08-report.md +197 -0
  125. package/_bmad/bmb/workflows/module/templates/brief-template.md +154 -0
  126. package/_bmad/bmb/workflows/module/templates/workflow-spec-template.md +96 -0
  127. package/_bmad/bmb/workflows/module/workflow.md +100 -0
  128. package/_bmad/bmb/workflows/workflow/data/architecture.md +152 -0
  129. package/_bmad/bmb/workflows/workflow/data/common-workflow-tools.csv +19 -0
  130. package/_bmad/bmb/workflows/workflow/data/csv-data-file-standards.md +81 -0
  131. package/_bmad/bmb/workflows/workflow/data/frontmatter-standards.md +225 -0
  132. package/_bmad/bmb/workflows/workflow/data/input-discovery-standards.md +269 -0
  133. package/_bmad/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +50 -0
  134. package/_bmad/bmb/workflows/workflow/data/menu-handling-standards.md +167 -0
  135. package/_bmad/bmb/workflows/workflow/data/output-format-standards.md +188 -0
  136. package/_bmad/bmb/workflows/workflow/data/step-file-rules.md +235 -0
  137. package/_bmad/bmb/workflows/workflow/data/step-type-patterns.md +311 -0
  138. package/_bmad/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +386 -0
  139. package/_bmad/bmb/workflows/workflow/data/trimodal-workflow-structure.md +209 -0
  140. package/_bmad/bmb/workflows/workflow/data/workflow-chaining-standards.md +271 -0
  141. package/_bmad/bmb/workflows/workflow/data/workflow-examples.md +276 -0
  142. package/_bmad/bmb/workflows/workflow/data/workflow-type-criteria.md +172 -0
  143. package/_bmad/bmb/workflows/workflow/steps-c/step-00-conversion.md +262 -0
  144. package/_bmad/bmb/workflows/workflow/steps-c/step-01-discovery.md +194 -0
  145. package/_bmad/bmb/workflows/workflow/steps-c/step-01b-continuation.md +3 -0
  146. package/_bmad/bmb/workflows/workflow/steps-c/step-02-classification.md +269 -0
  147. package/_bmad/bmb/workflows/workflow/steps-c/step-03-requirements.md +282 -0
  148. package/_bmad/bmb/workflows/workflow/steps-c/step-04-tools.md +281 -0
  149. package/_bmad/bmb/workflows/workflow/steps-c/step-05-plan-review.md +242 -0
  150. package/_bmad/bmb/workflows/workflow/steps-c/step-06-design.md +329 -0
  151. package/_bmad/bmb/workflows/workflow/steps-c/step-07-foundation.md +238 -0
  152. package/_bmad/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +377 -0
  153. package/_bmad/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +350 -0
  154. package/_bmad/bmb/workflows/workflow/steps-c/step-10-confirmation.md +320 -0
  155. package/_bmad/bmb/workflows/workflow/steps-c/step-11-completion.md +191 -0
  156. package/_bmad/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +237 -0
  157. package/_bmad/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +248 -0
  158. package/_bmad/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +252 -0
  159. package/_bmad/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +275 -0
  160. package/_bmad/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +154 -0
  161. package/_bmad/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +190 -0
  162. package/_bmad/bmb/workflows/workflow/steps-e/step-e-07-complete.md +206 -0
  163. package/_bmad/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +109 -0
  164. package/_bmad/bmb/workflows/workflow/steps-v/step-01-validate.md +221 -0
  165. package/_bmad/bmb/workflows/workflow/steps-v/step-01b-structure.md +152 -0
  166. package/_bmad/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +199 -0
  167. package/_bmad/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +265 -0
  168. package/_bmad/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +164 -0
  169. package/_bmad/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +211 -0
  170. package/_bmad/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +200 -0
  171. package/_bmad/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +195 -0
  172. package/_bmad/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +209 -0
  173. package/_bmad/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +199 -0
  174. package/_bmad/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +179 -0
  175. package/_bmad/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +186 -0
  176. package/_bmad/bmb/workflows/workflow/steps-v/step-10-report-complete.md +154 -0
  177. package/_bmad/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +237 -0
  178. package/_bmad/bmb/workflows/workflow/templates/minimal-output-template.md +11 -0
  179. package/_bmad/bmb/workflows/workflow/templates/step-01-init-continuable-template.md +241 -0
  180. package/_bmad/bmb/workflows/workflow/templates/step-1b-template.md +223 -0
  181. package/_bmad/bmb/workflows/workflow/templates/step-template.md +290 -0
  182. package/_bmad/bmb/workflows/workflow/templates/workflow-template.md +102 -0
  183. package/_bmad/bmb/workflows/workflow/workflow.md +109 -0
  184. package/_bmad/bmm/agents/analyst.md +76 -0
  185. package/_bmad/bmm/agents/architect.md +58 -0
  186. package/_bmad/bmm/agents/dev.md +69 -0
  187. package/_bmad/bmm/agents/pm.md +72 -0
  188. package/_bmad/bmm/agents/qa.md +92 -0
  189. package/_bmad/bmm/agents/quick-flow-solo-dev.md +69 -0
  190. package/_bmad/bmm/agents/sm.md +70 -0
  191. package/_bmad/bmm/agents/tech-writer/tech-writer.md +70 -0
  192. package/_bmad/bmm/agents/ux-designer.md +57 -0
  193. package/_bmad/bmm/config.yaml +16 -0
  194. package/_bmad/bmm/data/project-context-template.md +26 -0
  195. package/_bmad/bmm/module-help.csv +32 -0
  196. package/_bmad/bmm/teams/default-party.csv +20 -0
  197. package/_bmad/bmm/teams/team-fullstack.yaml +12 -0
  198. package/_bmad/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  199. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  200. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  201. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  202. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  203. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  204. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  205. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
  206. package/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
  207. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  208. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  209. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  210. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  211. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  212. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  213. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  214. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  215. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
  216. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  217. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  218. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  219. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  220. package/_bmad/bmm/workflows/1-analysis/research/research.template.md +29 -0
  221. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  222. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  223. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  224. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  225. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
  226. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  227. package/_bmad/bmm/workflows/1-analysis/research/workflow.md +173 -0
  228. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +13 -0
  229. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  230. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  231. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
  232. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +153 -0
  233. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
  234. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
  235. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
  236. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
  237. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
  238. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
  239. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
  240. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
  241. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
  242. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
  243. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
  244. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
  245. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  246. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
  247. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
  248. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
  249. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +218 -0
  250. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
  251. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
  252. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
  253. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  254. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
  255. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
  256. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  257. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  258. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
  259. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
  260. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  261. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
  262. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
  263. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
  264. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/validation-report-prd-workflow.md +433 -0
  265. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow.md +150 -0
  266. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  267. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  268. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  269. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  270. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  271. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  272. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  273. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  274. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  275. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  276. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  277. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  278. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  279. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  280. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
  281. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  282. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
  283. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
  284. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
  285. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
  286. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
  287. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
  288. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +135 -0
  289. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  290. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
  291. package/_bmad/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  292. package/_bmad/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
  293. package/_bmad/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  294. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  295. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
  296. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  297. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
  298. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  299. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  300. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  301. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  302. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
  303. package/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
  304. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  305. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  306. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  307. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
  308. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  309. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
  310. package/_bmad/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  311. package/_bmad/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  312. package/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +50 -0
  313. package/_bmad/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  314. package/_bmad/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
  315. package/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +58 -0
  316. package/_bmad/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  317. package/_bmad/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
  318. package/_bmad/bmm/workflows/4-implementation/create-story/template.md +49 -0
  319. package/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +59 -0
  320. package/_bmad/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  321. package/_bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  322. package/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +25 -0
  323. package/_bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
  324. package/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +57 -0
  325. package/_bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  326. package/_bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
  327. package/_bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  328. package/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +53 -0
  329. package/_bmad/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
  330. package/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +35 -0
  331. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +176 -0
  332. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  333. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
  334. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  335. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  336. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +149 -0
  337. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
  338. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +192 -0
  339. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +145 -0
  340. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
  341. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +201 -0
  342. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  343. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  344. package/_bmad/bmm/workflows/document-project/checklist.md +245 -0
  345. package/_bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  346. package/_bmad/bmm/workflows/document-project/instructions.md +221 -0
  347. package/_bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  348. package/_bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
  349. package/_bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  350. package/_bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  351. package/_bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  352. package/_bmad/bmm/workflows/document-project/workflow.yaml +28 -0
  353. package/_bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  354. package/_bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  355. package/_bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  356. package/_bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  357. package/_bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
  358. package/_bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
  359. package/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
  360. package/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
  361. package/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +26 -0
  362. package/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
  363. package/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
  364. package/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +26 -0
  365. package/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
  366. package/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
  367. package/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +26 -0
  368. package/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
  369. package/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
  370. package/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +26 -0
  371. package/_bmad/bmm/workflows/qa/automate/checklist.md +33 -0
  372. package/_bmad/bmm/workflows/qa/automate/instructions.md +110 -0
  373. package/_bmad/bmm/workflows/qa/automate/workflow.yaml +47 -0
  374. package/_bmad/cis/agents/brainstorming-coach.md +61 -0
  375. package/_bmad/cis/agents/creative-problem-solver.md +61 -0
  376. package/_bmad/cis/agents/design-thinking-coach.md +61 -0
  377. package/_bmad/cis/agents/innovation-strategist.md +61 -0
  378. package/_bmad/cis/agents/presentation-master.md +67 -0
  379. package/_bmad/cis/agents/storyteller/storyteller.md +58 -0
  380. package/_bmad/cis/config.yaml +12 -0
  381. package/_bmad/cis/module-help.csv +6 -0
  382. package/_bmad/cis/teams/creative-squad.yaml +7 -0
  383. package/_bmad/cis/teams/default-party.csv +12 -0
  384. package/_bmad/cis/workflows/README.md +139 -0
  385. package/_bmad/cis/workflows/design-thinking/README.md +56 -0
  386. package/_bmad/cis/workflows/design-thinking/design-methods.csv +31 -0
  387. package/_bmad/cis/workflows/design-thinking/instructions.md +202 -0
  388. package/_bmad/cis/workflows/design-thinking/template.md +111 -0
  389. package/_bmad/cis/workflows/design-thinking/workflow.yaml +27 -0
  390. package/_bmad/cis/workflows/innovation-strategy/README.md +56 -0
  391. package/_bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +31 -0
  392. package/_bmad/cis/workflows/innovation-strategy/instructions.md +276 -0
  393. package/_bmad/cis/workflows/innovation-strategy/template.md +189 -0
  394. package/_bmad/cis/workflows/innovation-strategy/workflow.yaml +27 -0
  395. package/_bmad/cis/workflows/problem-solving/README.md +56 -0
  396. package/_bmad/cis/workflows/problem-solving/instructions.md +252 -0
  397. package/_bmad/cis/workflows/problem-solving/solving-methods.csv +31 -0
  398. package/_bmad/cis/workflows/problem-solving/template.md +165 -0
  399. package/_bmad/cis/workflows/problem-solving/workflow.yaml +27 -0
  400. package/_bmad/cis/workflows/storytelling/README.md +58 -0
  401. package/_bmad/cis/workflows/storytelling/instructions.md +293 -0
  402. package/_bmad/cis/workflows/storytelling/story-types.csv +26 -0
  403. package/_bmad/cis/workflows/storytelling/template.md +113 -0
  404. package/_bmad/cis/workflows/storytelling/workflow.yaml +27 -0
  405. package/_bmad/core/agents/bmad-master.md +56 -0
  406. package/_bmad/core/config.yaml +9 -0
  407. package/_bmad/core/module-help.csv +9 -0
  408. package/_bmad/core/resources/excalidraw/README.md +160 -0
  409. package/_bmad/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  410. package/_bmad/core/resources/excalidraw/library-loader.md +50 -0
  411. package/_bmad/core/resources/excalidraw/validate-json-instructions.md +79 -0
  412. package/_bmad/core/tasks/editorial-review-prose.xml +100 -0
  413. package/_bmad/core/tasks/editorial-review-structure.xml +209 -0
  414. package/_bmad/core/tasks/help.md +62 -0
  415. package/_bmad/core/tasks/index-docs.xml +65 -0
  416. package/_bmad/core/tasks/review-adversarial-general.xml +48 -0
  417. package/_bmad/core/tasks/shard-doc.xml +109 -0
  418. package/_bmad/core/tasks/workflow.xml +235 -0
  419. package/_bmad/core/workflows/advanced-elicitation/methods.csv +51 -0
  420. package/_bmad/core/workflows/advanced-elicitation/workflow.xml +117 -0
  421. package/_bmad/core/workflows/brainstorming/brain-methods.csv +62 -0
  422. package/_bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  423. package/_bmad/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  424. package/_bmad/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  425. package/_bmad/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  426. package/_bmad/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  427. package/_bmad/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  428. package/_bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  429. package/_bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  430. package/_bmad/core/workflows/brainstorming/template.md +15 -0
  431. package/_bmad/core/workflows/brainstorming/workflow.md +58 -0
  432. package/_bmad/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  433. package/_bmad/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  434. package/_bmad/core/workflows/party-mode/steps/step-03-graceful-exit.md +157 -0
  435. package/_bmad/core/workflows/party-mode/workflow.md +194 -0
  436. package/_bmad/tea/agents/tea.md +71 -0
  437. package/_bmad/tea/config.yaml +19 -0
  438. package/_bmad/tea/module-help.csv +10 -0
  439. package/_bmad/tea/teams/default-party.csv +2 -0
  440. package/_bmad/tea/testarch/knowledge/adr-quality-readiness-checklist.md +377 -0
  441. package/_bmad/tea/testarch/knowledge/api-request.md +442 -0
  442. package/_bmad/tea/testarch/knowledge/api-testing-patterns.md +851 -0
  443. package/_bmad/tea/testarch/knowledge/auth-session.md +548 -0
  444. package/_bmad/tea/testarch/knowledge/burn-in.md +273 -0
  445. package/_bmad/tea/testarch/knowledge/ci-burn-in.md +675 -0
  446. package/_bmad/tea/testarch/knowledge/component-tdd.md +486 -0
  447. package/_bmad/tea/testarch/knowledge/contract-testing.md +957 -0
  448. package/_bmad/tea/testarch/knowledge/data-factories.md +500 -0
  449. package/_bmad/tea/testarch/knowledge/email-auth.md +721 -0
  450. package/_bmad/tea/testarch/knowledge/error-handling.md +725 -0
  451. package/_bmad/tea/testarch/knowledge/feature-flags.md +750 -0
  452. package/_bmad/tea/testarch/knowledge/file-utils.md +456 -0
  453. package/_bmad/tea/testarch/knowledge/fixture-architecture.md +401 -0
  454. package/_bmad/tea/testarch/knowledge/fixtures-composition.md +382 -0
  455. package/_bmad/tea/testarch/knowledge/intercept-network-call.md +426 -0
  456. package/_bmad/tea/testarch/knowledge/log.md +426 -0
  457. package/_bmad/tea/testarch/knowledge/network-error-monitor.md +401 -0
  458. package/_bmad/tea/testarch/knowledge/network-first.md +486 -0
  459. package/_bmad/tea/testarch/knowledge/network-recorder.md +527 -0
  460. package/_bmad/tea/testarch/knowledge/nfr-criteria.md +670 -0
  461. package/_bmad/tea/testarch/knowledge/overview.md +286 -0
  462. package/_bmad/tea/testarch/knowledge/playwright-config.md +730 -0
  463. package/_bmad/tea/testarch/knowledge/probability-impact.md +601 -0
  464. package/_bmad/tea/testarch/knowledge/recurse.md +421 -0
  465. package/_bmad/tea/testarch/knowledge/risk-governance.md +615 -0
  466. package/_bmad/tea/testarch/knowledge/selective-testing.md +732 -0
  467. package/_bmad/tea/testarch/knowledge/selector-resilience.md +527 -0
  468. package/_bmad/tea/testarch/knowledge/test-healing-patterns.md +644 -0
  469. package/_bmad/tea/testarch/knowledge/test-levels-framework.md +473 -0
  470. package/_bmad/tea/testarch/knowledge/test-priorities-matrix.md +373 -0
  471. package/_bmad/tea/testarch/knowledge/test-quality.md +664 -0
  472. package/_bmad/tea/testarch/knowledge/timing-debugging.md +372 -0
  473. package/_bmad/tea/testarch/knowledge/visual-debugging.md +524 -0
  474. package/_bmad/tea/testarch/tea-index.csv +35 -0
  475. package/_bmad/tea/workflows/testarch/README.md +74 -0
  476. package/_bmad/tea/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  477. package/_bmad/tea/workflows/testarch/atdd/checklist.md +374 -0
  478. package/_bmad/tea/workflows/testarch/atdd/instructions.md +38 -0
  479. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-01-preflight-and-context.md +110 -0
  480. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-02-generation-mode.md +79 -0
  481. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-03-test-strategy.md +76 -0
  482. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04-generate-tests.md +228 -0
  483. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04a-subprocess-api-failing.md +215 -0
  484. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04b-subprocess-e2e-failing.md +212 -0
  485. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04c-aggregate.md +329 -0
  486. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-05-validate-and-complete.md +68 -0
  487. package/_bmad/tea/workflows/testarch/atdd/steps-e/step-01-assess.md +65 -0
  488. package/_bmad/tea/workflows/testarch/atdd/steps-e/step-02-apply-edit.md +60 -0
  489. package/_bmad/tea/workflows/testarch/atdd/steps-v/step-01-validate.md +67 -0
  490. package/_bmad/tea/workflows/testarch/atdd/validation-report-20260127-095021.md +73 -0
  491. package/_bmad/tea/workflows/testarch/atdd/validation-report-20260127-102401.md +116 -0
  492. package/_bmad/tea/workflows/testarch/atdd/workflow-plan.md +21 -0
  493. package/_bmad/tea/workflows/testarch/atdd/workflow.md +39 -0
  494. package/_bmad/tea/workflows/testarch/atdd/workflow.yaml +45 -0
  495. package/_bmad/tea/workflows/testarch/automate/checklist.md +582 -0
  496. package/_bmad/tea/workflows/testarch/automate/instructions.md +43 -0
  497. package/_bmad/tea/workflows/testarch/automate/steps-c/step-01-preflight-and-context.md +127 -0
  498. package/_bmad/tea/workflows/testarch/automate/steps-c/step-02-identify-targets.md +95 -0
  499. package/_bmad/tea/workflows/testarch/automate/steps-c/step-03-generate-tests.md +199 -0
  500. package/_bmad/tea/workflows/testarch/automate/steps-c/step-03a-subprocess-api.md +183 -0
  501. package/_bmad/tea/workflows/testarch/automate/steps-c/step-03b-subprocess-e2e.md +181 -0
  502. package/_bmad/tea/workflows/testarch/automate/steps-c/step-03c-aggregate.md +300 -0
  503. package/_bmad/tea/workflows/testarch/automate/steps-c/step-04-validate-and-summarize.md +69 -0
  504. package/_bmad/tea/workflows/testarch/automate/steps-e/step-01-assess.md +65 -0
  505. package/_bmad/tea/workflows/testarch/automate/steps-e/step-02-apply-edit.md +60 -0
  506. package/_bmad/tea/workflows/testarch/automate/steps-v/step-01-validate.md +67 -0
  507. package/_bmad/tea/workflows/testarch/automate/validation-report-20260127-095021.md +72 -0
  508. package/_bmad/tea/workflows/testarch/automate/validation-report-20260127-102401.md +114 -0
  509. package/_bmad/tea/workflows/testarch/automate/workflow-plan.md +20 -0
  510. package/_bmad/tea/workflows/testarch/automate/workflow.md +39 -0
  511. package/_bmad/tea/workflows/testarch/automate/workflow.yaml +52 -0
  512. package/_bmad/tea/workflows/testarch/ci/checklist.md +247 -0
  513. package/_bmad/tea/workflows/testarch/ci/github-actions-template.yaml +198 -0
  514. package/_bmad/tea/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
  515. package/_bmad/tea/workflows/testarch/ci/instructions.md +38 -0
  516. package/_bmad/tea/workflows/testarch/ci/steps-c/step-01-preflight.md +92 -0
  517. package/_bmad/tea/workflows/testarch/ci/steps-c/step-02-generate-pipeline.md +82 -0
  518. package/_bmad/tea/workflows/testarch/ci/steps-c/step-03-configure-quality-gates.md +75 -0
  519. package/_bmad/tea/workflows/testarch/ci/steps-c/step-04-validate-and-summary.md +67 -0
  520. package/_bmad/tea/workflows/testarch/ci/steps-e/step-01-assess.md +65 -0
  521. package/_bmad/tea/workflows/testarch/ci/steps-e/step-02-apply-edit.md +60 -0
  522. package/_bmad/tea/workflows/testarch/ci/steps-v/step-01-validate.md +67 -0
  523. package/_bmad/tea/workflows/testarch/ci/validation-report-20260127-095021.md +72 -0
  524. package/_bmad/tea/workflows/testarch/ci/validation-report-20260127-102401.md +114 -0
  525. package/_bmad/tea/workflows/testarch/ci/workflow-plan.md +20 -0
  526. package/_bmad/tea/workflows/testarch/ci/workflow.md +39 -0
  527. package/_bmad/tea/workflows/testarch/ci/workflow.yaml +45 -0
  528. package/_bmad/tea/workflows/testarch/framework/checklist.md +320 -0
  529. package/_bmad/tea/workflows/testarch/framework/instructions.md +38 -0
  530. package/_bmad/tea/workflows/testarch/framework/steps-c/step-01-preflight.md +75 -0
  531. package/_bmad/tea/workflows/testarch/framework/steps-c/step-02-select-framework.md +73 -0
  532. package/_bmad/tea/workflows/testarch/framework/steps-c/step-03-scaffold-framework.md +120 -0
  533. package/_bmad/tea/workflows/testarch/framework/steps-c/step-04-docs-and-scripts.md +70 -0
  534. package/_bmad/tea/workflows/testarch/framework/steps-c/step-05-validate-and-summary.md +68 -0
  535. package/_bmad/tea/workflows/testarch/framework/steps-e/step-01-assess.md +65 -0
  536. package/_bmad/tea/workflows/testarch/framework/steps-e/step-02-apply-edit.md +60 -0
  537. package/_bmad/tea/workflows/testarch/framework/steps-v/step-01-validate.md +67 -0
  538. package/_bmad/tea/workflows/testarch/framework/validation-report-20260127-095021.md +73 -0
  539. package/_bmad/tea/workflows/testarch/framework/validation-report-20260127-102401.md +116 -0
  540. package/_bmad/tea/workflows/testarch/framework/workflow-plan.md +22 -0
  541. package/_bmad/tea/workflows/testarch/framework/workflow.md +39 -0
  542. package/_bmad/tea/workflows/testarch/framework/workflow.yaml +47 -0
  543. package/_bmad/tea/workflows/testarch/nfr-assess/checklist.md +407 -0
  544. package/_bmad/tea/workflows/testarch/nfr-assess/instructions.md +36 -0
  545. package/_bmad/tea/workflows/testarch/nfr-assess/nfr-report-template.md +462 -0
  546. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-01-load-context.md +85 -0
  547. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-02-define-thresholds.md +82 -0
  548. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-03-gather-evidence.md +64 -0
  549. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04-evaluate-and-score.md +140 -0
  550. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04a-subprocess-security.md +138 -0
  551. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04b-subprocess-performance.md +84 -0
  552. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04c-subprocess-reliability.md +85 -0
  553. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04d-subprocess-scalability.md +88 -0
  554. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04e-aggregate-nfr.md +219 -0
  555. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-05-generate-report.md +71 -0
  556. package/_bmad/tea/workflows/testarch/nfr-assess/steps-e/step-01-assess.md +65 -0
  557. package/_bmad/tea/workflows/testarch/nfr-assess/steps-e/step-02-apply-edit.md +60 -0
  558. package/_bmad/tea/workflows/testarch/nfr-assess/steps-v/step-01-validate.md +67 -0
  559. package/_bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-095021.md +73 -0
  560. package/_bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-102401.md +116 -0
  561. package/_bmad/tea/workflows/testarch/nfr-assess/workflow-plan.md +19 -0
  562. package/_bmad/tea/workflows/testarch/nfr-assess/workflow.md +39 -0
  563. package/_bmad/tea/workflows/testarch/nfr-assess/workflow.yaml +47 -0
  564. package/_bmad/tea/workflows/testarch/teach-me-testing/checklist.md +197 -0
  565. package/_bmad/tea/workflows/testarch/teach-me-testing/data/curriculum.yaml +129 -0
  566. package/_bmad/tea/workflows/testarch/teach-me-testing/data/quiz-questions.yaml +206 -0
  567. package/_bmad/tea/workflows/testarch/teach-me-testing/data/role-paths.yaml +136 -0
  568. package/_bmad/tea/workflows/testarch/teach-me-testing/data/session-content-map.yaml +204 -0
  569. package/_bmad/tea/workflows/testarch/teach-me-testing/data/tea-resources-index.yaml +359 -0
  570. package/_bmad/tea/workflows/testarch/teach-me-testing/instructions.md +130 -0
  571. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-01-init.md +235 -0
  572. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-01b-continue.md +147 -0
  573. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-02-assess.md +258 -0
  574. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-03-session-menu.md +219 -0
  575. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-01.md +460 -0
  576. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-02.md +465 -0
  577. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-03.md +301 -0
  578. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-04.md +234 -0
  579. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-05.md +234 -0
  580. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-06.md +209 -0
  581. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-07.md +212 -0
  582. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-05-completion.md +339 -0
  583. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-e/step-e-01-assess-workflow.md +141 -0
  584. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-e/step-e-02-apply-edits.md +122 -0
  585. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-v/step-v-01-validate.md +263 -0
  586. package/_bmad/tea/workflows/testarch/teach-me-testing/templates/certificate-template.md +86 -0
  587. package/_bmad/tea/workflows/testarch/teach-me-testing/templates/progress-template.yaml +95 -0
  588. package/_bmad/tea/workflows/testarch/teach-me-testing/templates/session-notes-template.md +83 -0
  589. package/_bmad/tea/workflows/testarch/teach-me-testing/workflow-plan-teach-me-testing.md +950 -0
  590. package/_bmad/tea/workflows/testarch/teach-me-testing/workflow.md +90 -0
  591. package/_bmad/tea/workflows/testarch/test-design/checklist.md +410 -0
  592. package/_bmad/tea/workflows/testarch/test-design/instructions.md +52 -0
  593. package/_bmad/tea/workflows/testarch/test-design/steps-c/step-01-detect-mode.md +109 -0
  594. package/_bmad/tea/workflows/testarch/test-design/steps-c/step-02-load-context.md +127 -0
  595. package/_bmad/tea/workflows/testarch/test-design/steps-c/step-03-risk-and-testability.md +85 -0
  596. package/_bmad/tea/workflows/testarch/test-design/steps-c/step-04-coverage-plan.md +98 -0
  597. package/_bmad/tea/workflows/testarch/test-design/steps-c/step-05-generate-output.md +97 -0
  598. package/_bmad/tea/workflows/testarch/test-design/steps-e/step-01-assess.md +65 -0
  599. package/_bmad/tea/workflows/testarch/test-design/steps-e/step-02-apply-edit.md +60 -0
  600. package/_bmad/tea/workflows/testarch/test-design/steps-v/step-01-validate.md +67 -0
  601. package/_bmad/tea/workflows/testarch/test-design/test-design-architecture-template.md +222 -0
  602. package/_bmad/tea/workflows/testarch/test-design/test-design-qa-template.md +296 -0
  603. package/_bmad/tea/workflows/testarch/test-design/test-design-template.md +294 -0
  604. package/_bmad/tea/workflows/testarch/test-design/validation-report-20260127-095021.md +73 -0
  605. package/_bmad/tea/workflows/testarch/test-design/validation-report-20260127-102401.md +116 -0
  606. package/_bmad/tea/workflows/testarch/test-design/workflow-plan.md +22 -0
  607. package/_bmad/tea/workflows/testarch/test-design/workflow.md +39 -0
  608. package/_bmad/tea/workflows/testarch/test-design/workflow.yaml +69 -0
  609. package/_bmad/tea/workflows/testarch/test-review/checklist.md +472 -0
  610. package/_bmad/tea/workflows/testarch/test-review/instructions.md +36 -0
  611. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-01-load-context.md +101 -0
  612. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-02-discover-tests.md +69 -0
  613. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03-quality-evaluation.md +184 -0
  614. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03a-subprocess-determinism.md +214 -0
  615. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03b-subprocess-isolation.md +125 -0
  616. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03c-subprocess-maintainability.md +102 -0
  617. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03d-subprocess-coverage.md +111 -0
  618. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03e-subprocess-performance.md +117 -0
  619. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03f-aggregate-scores.md +246 -0
  620. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-04-generate-report.md +72 -0
  621. package/_bmad/tea/workflows/testarch/test-review/steps-e/step-01-assess.md +65 -0
  622. package/_bmad/tea/workflows/testarch/test-review/steps-e/step-02-apply-edit.md +60 -0
  623. package/_bmad/tea/workflows/testarch/test-review/steps-v/step-01-validate.md +67 -0
  624. package/_bmad/tea/workflows/testarch/test-review/test-review-template.md +390 -0
  625. package/_bmad/tea/workflows/testarch/test-review/validation-report-20260127-095021.md +72 -0
  626. package/_bmad/tea/workflows/testarch/test-review/validation-report-20260127-102401.md +114 -0
  627. package/_bmad/tea/workflows/testarch/test-review/workflow-plan.md +18 -0
  628. package/_bmad/tea/workflows/testarch/test-review/workflow.md +39 -0
  629. package/_bmad/tea/workflows/testarch/test-review/workflow.yaml +46 -0
  630. package/_bmad/tea/workflows/testarch/trace/checklist.md +642 -0
  631. package/_bmad/tea/workflows/testarch/trace/instructions.md +36 -0
  632. package/_bmad/tea/workflows/testarch/trace/steps-c/step-01-load-context.md +80 -0
  633. package/_bmad/tea/workflows/testarch/trace/steps-c/step-02-discover-tests.md +69 -0
  634. package/_bmad/tea/workflows/testarch/trace/steps-c/step-03-map-criteria.md +65 -0
  635. package/_bmad/tea/workflows/testarch/trace/steps-c/step-04-analyze-gaps.md +244 -0
  636. package/_bmad/tea/workflows/testarch/trace/steps-c/step-05-gate-decision.md +232 -0
  637. package/_bmad/tea/workflows/testarch/trace/steps-e/step-01-assess.md +65 -0
  638. package/_bmad/tea/workflows/testarch/trace/steps-e/step-02-apply-edit.md +60 -0
  639. package/_bmad/tea/workflows/testarch/trace/steps-v/step-01-validate.md +67 -0
  640. package/_bmad/tea/workflows/testarch/trace/trace-template.md +675 -0
  641. package/_bmad/tea/workflows/testarch/trace/validation-report-20260127-095021.md +73 -0
  642. package/_bmad/tea/workflows/testarch/trace/validation-report-20260127-102401.md +116 -0
  643. package/_bmad/tea/workflows/testarch/trace/workflow-plan.md +21 -0
  644. package/_bmad/tea/workflows/testarch/trace/workflow.md +39 -0
  645. package/_bmad/tea/workflows/testarch/trace/workflow.yaml +55 -0
  646. package/index.js +37 -58
  647. package/package.json +25 -4
  648. package/scripts/bmad-doctor.js +324 -0
  649. package/scripts/install-all-agents.js +55 -207
  650. package/scripts/install-emma.js +17 -14
  651. package/scripts/install-wade.js +17 -14
  652. package/scripts/postinstall.js +10 -7
  653. package/scripts/update/bmad-migrate.js +58 -5
  654. package/scripts/update/bmad-update.js +18 -8
  655. package/scripts/update/bmad-version.js +21 -7
  656. package/scripts/update/lib/backup-manager.js +22 -58
  657. package/scripts/update/lib/config-merger.js +4 -39
  658. package/scripts/update/lib/migration-runner.js +78 -114
  659. package/scripts/update/lib/refresh-installation.js +132 -0
  660. package/scripts/update/lib/utils.js +96 -0
  661. package/scripts/update/lib/validator.js +31 -151
  662. package/scripts/update/lib/version-detector.js +36 -41
  663. package/scripts/update/migrations/1.0.x-to-1.3.0.js +41 -222
  664. package/scripts/update/migrations/1.1.x-to-1.3.0.js +7 -188
  665. package/scripts/update/migrations/1.2.x-to-1.3.0.js +7 -188
  666. package/scripts/update/migrations/registry.js +27 -53
  667. package/_bmad-output/design-artifacts/EMMA-USER-GUIDE.md +0 -710
  668. package/_bmad-output/design-artifacts/WADE-USER-GUIDE.md +0 -1191
  669. package/_bmad-output/vortex-artifacts/EMMA-USER-GUIDE.md +0 -450
  670. package/_bmad-output/vortex-artifacts/WADE-USER-GUIDE.md +0 -471
  671. package/create-github-release.sh +0 -19
@@ -2,6 +2,7 @@
2
2
 
3
3
  const fs = require('fs-extra');
4
4
  const path = require('path');
5
+ const { findProjectRoot } = require('./update/lib/utils');
5
6
 
6
7
  const BOLD = '\x1b[1m';
7
8
  const RESET = '\x1b[0m';
@@ -20,11 +21,10 @@ function printBanner() {
20
21
  console.log('');
21
22
  }
22
23
 
23
- function checkPrerequisites() {
24
+ function checkPrerequisites(projectRoot) {
24
25
  console.log(`${CYAN}[1/4]${RESET} Checking prerequisites...`);
25
26
 
26
- const targetDir = process.cwd();
27
- const bmadDir = path.join(targetDir, '_bmad');
27
+ const bmadDir = path.join(projectRoot, '_bmad');
28
28
 
29
29
  // Check if BMAD Method is installed
30
30
  if (!fs.existsSync(bmadDir)) {
@@ -45,11 +45,11 @@ function checkPrerequisites() {
45
45
  console.log(`${GREEN} ✓${RESET} Prerequisites met`);
46
46
  }
47
47
 
48
- function copyAgentFiles() {
48
+ function copyAgentFiles(projectRoot) {
49
49
  console.log(`${CYAN}[2/4]${RESET} Installing Emma agent files...`);
50
50
 
51
51
  const sourceDir = path.join(__dirname, '..', '_bmad', 'bme', '_vortex');
52
- const targetDir = path.join(process.cwd(), '_bmad', 'bme', '_vortex');
52
+ const targetDir = path.join(projectRoot, '_bmad', 'bme', '_vortex');
53
53
 
54
54
  // Create target directory structure
55
55
  fs.mkdirSync(path.join(targetDir, 'agents'), { recursive: true });
@@ -83,11 +83,11 @@ function copyAgentFiles() {
83
83
  console.log(`${GREEN} ✓${RESET} Agent files installed`);
84
84
  }
85
85
 
86
- function updateConfig() {
86
+ function updateConfig(projectRoot) {
87
87
  console.log(`${CYAN}[3/4]${RESET} Configuring Emma...`);
88
88
 
89
- const configPath = path.join(process.cwd(), '_bmad', 'bme', '_vortex', 'config.yaml');
90
- const manifestPath = path.join(process.cwd(), '_bmad', '_config', 'agent-manifest.csv');
89
+ const configPath = path.join(projectRoot, '_bmad', 'bme', '_vortex', 'config.yaml');
90
+ const manifestPath = path.join(projectRoot, '_bmad', '_config', 'agent-manifest.csv');
91
91
 
92
92
  // Create config if doesn't exist
93
93
  if (!fs.existsSync(configPath)) {
@@ -135,10 +135,10 @@ core_module: bme
135
135
  console.log(`${GREEN} ✓${RESET} Configuration complete`);
136
136
  }
137
137
 
138
- function createOutputDirectory() {
138
+ function createOutputDirectory(projectRoot) {
139
139
  console.log(`${CYAN}[4/4]${RESET} Setting up output directory...`);
140
140
 
141
- const outputDir = path.join(process.cwd(), '_bmad-output', 'vortex-artifacts');
141
+ const outputDir = path.join(projectRoot, '_bmad-output', 'vortex-artifacts');
142
142
  fs.mkdirSync(outputDir, { recursive: true });
143
143
 
144
144
  console.log(`${GREEN} ✓${RESET} Output directory ready`);
@@ -166,11 +166,14 @@ function printSuccess() {
166
166
 
167
167
  async function main() {
168
168
  try {
169
+ // Use findProjectRoot for existing projects, fall back to cwd for fresh installs
170
+ const projectRoot = findProjectRoot() || process.cwd();
171
+
169
172
  printBanner();
170
- checkPrerequisites();
171
- copyAgentFiles();
172
- updateConfig();
173
- createOutputDirectory();
173
+ checkPrerequisites(projectRoot);
174
+ copyAgentFiles(projectRoot);
175
+ updateConfig(projectRoot);
176
+ createOutputDirectory(projectRoot);
174
177
  printSuccess();
175
178
  } catch (error) {
176
179
  console.error(`${RED}✗ Installation failed:${RESET}`, error.message);
@@ -2,6 +2,7 @@
2
2
 
3
3
  const fs = require('fs-extra');
4
4
  const path = require('path');
5
+ const { findProjectRoot } = require('./update/lib/utils');
5
6
 
6
7
  const BOLD = '\x1b[1m';
7
8
  const RESET = '\x1b[0m';
@@ -20,11 +21,10 @@ function printBanner() {
20
21
  console.log('');
21
22
  }
22
23
 
23
- function checkPrerequisites() {
24
+ function checkPrerequisites(projectRoot) {
24
25
  console.log(`${CYAN}[1/4]${RESET} Checking prerequisites...`);
25
26
 
26
- const targetDir = process.cwd();
27
- const bmadDir = path.join(targetDir, '_bmad');
27
+ const bmadDir = path.join(projectRoot, '_bmad');
28
28
 
29
29
  // Check if BMAD Method is installed
30
30
  if (!fs.existsSync(bmadDir)) {
@@ -45,11 +45,11 @@ function checkPrerequisites() {
45
45
  console.log(`${GREEN} ✓${RESET} Prerequisites met`);
46
46
  }
47
47
 
48
- function copyAgentFiles() {
48
+ function copyAgentFiles(projectRoot) {
49
49
  console.log(`${CYAN}[2/4]${RESET} Installing Wade agent files...`);
50
50
 
51
51
  const sourceDir = path.join(__dirname, '..', '_bmad', 'bme', '_vortex');
52
- const targetDir = path.join(process.cwd(), '_bmad', 'bme', '_vortex');
52
+ const targetDir = path.join(projectRoot, '_bmad', 'bme', '_vortex');
53
53
 
54
54
  // Create target directory structure
55
55
  fs.mkdirSync(path.join(targetDir, 'agents'), { recursive: true });
@@ -83,11 +83,11 @@ function copyAgentFiles() {
83
83
  console.log(`${GREEN} ✓${RESET} Agent files installed`);
84
84
  }
85
85
 
86
- function updateConfig() {
86
+ function updateConfig(projectRoot) {
87
87
  console.log(`${CYAN}[3/4]${RESET} Configuring Wade...`);
88
88
 
89
- const configPath = path.join(process.cwd(), '_bmad', 'bme', '_vortex', 'config.yaml');
90
- const manifestPath = path.join(process.cwd(), '_bmad', '_config', 'agent-manifest.csv');
89
+ const configPath = path.join(projectRoot, '_bmad', 'bme', '_vortex', 'config.yaml');
90
+ const manifestPath = path.join(projectRoot, '_bmad', '_config', 'agent-manifest.csv');
91
91
 
92
92
  // Update or create config
93
93
  if (!fs.existsSync(configPath)) {
@@ -145,10 +145,10 @@ core_module: bme
145
145
  console.log(`${GREEN} ✓${RESET} Configuration complete`);
146
146
  }
147
147
 
148
- function createOutputDirectory() {
148
+ function createOutputDirectory(projectRoot) {
149
149
  console.log(`${CYAN}[4/4]${RESET} Setting up output directory...`);
150
150
 
151
- const outputDir = path.join(process.cwd(), '_bmad-output', 'vortex-artifacts');
151
+ const outputDir = path.join(projectRoot, '_bmad-output', 'vortex-artifacts');
152
152
  fs.mkdirSync(outputDir, { recursive: true });
153
153
 
154
154
  console.log(`${GREEN} ✓${RESET} Output directory ready`);
@@ -176,11 +176,14 @@ function printSuccess() {
176
176
 
177
177
  async function main() {
178
178
  try {
179
+ // Use findProjectRoot for existing projects, fall back to cwd for fresh installs
180
+ const projectRoot = findProjectRoot() || process.cwd();
181
+
179
182
  printBanner();
180
- checkPrerequisites();
181
- copyAgentFiles();
182
- updateConfig();
183
- createOutputDirectory();
183
+ checkPrerequisites(projectRoot);
184
+ copyAgentFiles(projectRoot);
185
+ updateConfig(projectRoot);
186
+ createOutputDirectory(projectRoot);
184
187
  printSuccess();
185
188
  } catch (error) {
186
189
  console.error(`${RED}✗ Installation failed:${RESET}`, error.message);
@@ -27,9 +27,12 @@ async function main() {
27
27
  const versionDetector = require('./update/lib/version-detector');
28
28
  const registry = require('./update/migrations/registry');
29
29
 
30
- const currentVersion = versionDetector.getCurrentVersion();
30
+ const { findProjectRoot, compareVersions } = require('./update/lib/utils');
31
+ const projectRoot = findProjectRoot();
32
+
33
+ const currentVersion = versionDetector.getCurrentVersion(projectRoot);
31
34
  const targetVersion = versionDetector.getTargetVersion();
32
- const scenario = versionDetector.detectInstallationScenario();
35
+ const scenario = versionDetector.detectInstallationScenario(projectRoot);
33
36
 
34
37
  // Fresh install
35
38
  if (scenario === 'fresh' || !currentVersion) {
@@ -52,7 +55,7 @@ async function main() {
52
55
  }
53
56
 
54
57
  // Upgrade detected
55
- if (versionDetector.compareVersions(currentVersion, targetVersion) < 0) {
58
+ if (compareVersions(currentVersion, targetVersion) < 0) {
56
59
  console.log(`${YELLOW}${BOLD}⚠ UPGRADE DETECTED${RESET}`);
57
60
  console.log('');
58
61
  console.log(` Current version: ${RED}${currentVersion}${RESET}`);
@@ -60,7 +63,7 @@ async function main() {
60
63
  console.log('');
61
64
 
62
65
  // Check for breaking changes
63
- const breakingChanges = registry.getBreakingChanges(currentVersion, targetVersion);
66
+ const breakingChanges = registry.getBreakingChanges(currentVersion);
64
67
  if (breakingChanges.length > 0) {
65
68
  console.log(`${RED}${BOLD} ⚠ Breaking changes detected!${RESET}`);
66
69
  console.log('');
@@ -83,7 +86,7 @@ async function main() {
83
86
  }
84
87
 
85
88
  // Downgrade (shouldn't happen normally)
86
- if (versionDetector.compareVersions(currentVersion, targetVersion) > 0) {
89
+ if (compareVersions(currentVersion, targetVersion) > 0) {
87
90
  console.log(`${YELLOW}Note: Package version (${targetVersion}) is older than installed version (${currentVersion})${RESET}`);
88
91
  console.log('');
89
92
  return;
@@ -95,8 +98,8 @@ async function main() {
95
98
  console.log(` ${CYAN}npx bmad-install-agents${RESET} - Install all agents (Emma + Wade)`);
96
99
  console.log('');
97
100
  console.log('Or install individually:');
98
- console.log(` ${CYAN}npx bmad-install-emma${RESET} - Install Emma (empathy-mapper)`);
99
- console.log(` ${CYAN}npx bmad-install-wade${RESET} - Install Wade (wireframe-designer)`);
101
+ console.log(` ${CYAN}npx bmad-install-emma${RESET} - Install Emma (contextualization-expert)`);
102
+ console.log(` ${CYAN}npx bmad-install-wade${RESET} - Install Wade (lean-experiments-specialist)`);
100
103
  console.log('');
101
104
  }
102
105
  }
@@ -2,6 +2,9 @@
2
2
 
3
3
  const chalk = require('chalk');
4
4
  const registry = require('./migrations/registry');
5
+ const backupManager = require('./lib/backup-manager');
6
+ const { refreshInstallation } = require('./lib/refresh-installation');
7
+ const { findProjectRoot } = require('./lib/utils');
5
8
 
6
9
  /**
7
10
  * BMAD-Enhanced Migrate CLI
@@ -11,6 +14,15 @@ const registry = require('./migrations/registry');
11
14
  async function main() {
12
15
  const args = process.argv.slice(2);
13
16
 
17
+ // Validate project root
18
+ const projectRoot = findProjectRoot();
19
+ if (!projectRoot) {
20
+ console.error('');
21
+ console.error(chalk.red('Not in a BMAD project. Could not find _bmad/ directory.'));
22
+ console.error('');
23
+ process.exit(1);
24
+ }
25
+
14
26
  // No args - show available migrations
15
27
  if (args.length === 0) {
16
28
  showAvailableMigrations();
@@ -32,6 +44,15 @@ async function main() {
32
44
  process.exit(1);
33
45
  }
34
46
 
47
+ // Check if already applied
48
+ const configPath = require('path').join(projectRoot, '_bmad/bme/_vortex/config.yaml');
49
+ if (registry.hasMigrationBeenApplied(migrationName, configPath)) {
50
+ console.log('');
51
+ console.log(chalk.yellow(`Migration '${migrationName}' has already been applied.`));
52
+ console.log('');
53
+ process.exit(0);
54
+ }
55
+
35
56
  // Load migration module
36
57
  if (!migration.module) {
37
58
  try {
@@ -44,29 +65,61 @@ async function main() {
44
65
  }
45
66
  }
46
67
 
47
- // Run migration
68
+ // Run migration with backup and refresh
48
69
  console.log('');
49
70
  console.log(chalk.cyan.bold(`Running migration: ${migration.name}`));
50
71
  console.log(chalk.gray(migration.description));
51
72
  console.log('');
52
73
 
74
+ let backupMetadata = null;
75
+
53
76
  try {
54
- const changes = await migration.module.apply();
77
+ // Create backup before running delta
78
+ console.log(chalk.cyan('Creating backup...'));
79
+ backupMetadata = await backupManager.createBackup('manual', projectRoot);
80
+ console.log(chalk.green(`✓ Backup created: ${require('path').basename(backupMetadata.backup_dir)}`));
81
+ console.log('');
82
+
83
+ // Run the delta
84
+ const changes = await migration.module.apply(projectRoot);
55
85
 
56
86
  console.log('');
57
- console.log(chalk.green.bold('✓ Migration completed'));
87
+ console.log(chalk.green.bold('✓ Migration delta completed'));
58
88
  console.log('');
59
- console.log(chalk.cyan('Changes:'));
89
+ console.log(chalk.cyan('Delta changes:'));
60
90
  changes.forEach(change => {
61
91
  console.log(chalk.gray(` - ${change}`));
62
92
  });
63
93
  console.log('');
64
94
 
95
+ // Refresh installation after delta
96
+ console.log(chalk.cyan('Refreshing installation files...'));
97
+ await refreshInstallation(projectRoot);
98
+ console.log(chalk.green('✓ Installation refreshed'));
99
+ console.log('');
100
+
65
101
  } catch (error) {
66
102
  console.error('');
67
103
  console.error(chalk.red.bold('✗ Migration failed'));
68
104
  console.error(chalk.red(error.message));
69
105
  console.error('');
106
+
107
+ // Rollback if we have a backup
108
+ if (backupMetadata) {
109
+ console.log(chalk.yellow('Restoring from backup...'));
110
+ try {
111
+ await backupManager.restoreBackup(backupMetadata, projectRoot);
112
+ console.log(chalk.green('✓ Installation restored from backup'));
113
+ console.log('');
114
+ } catch (restoreError) {
115
+ console.error(chalk.red('✗ Restore failed!'));
116
+ console.error(chalk.red(restoreError.message));
117
+ console.error('');
118
+ console.error(chalk.yellow(`Manual restore may be needed from: ${backupMetadata.backup_dir}`));
119
+ console.error('');
120
+ }
121
+ }
122
+
70
123
  if (error.stack) {
71
124
  console.error(chalk.gray(error.stack));
72
125
  console.error('');
@@ -95,7 +148,7 @@ function showAvailableMigrations() {
95
148
  const breaking = m.breaking ? chalk.red('[BREAKING]') : chalk.green('[SAFE]');
96
149
  console.log(` ${index + 1}. ${chalk.cyan(m.name)} ${breaking}`);
97
150
  console.log(` ${chalk.gray(m.description)}`);
98
- console.log(` ${chalk.gray(`${m.fromVersion} ${m.toVersion}`)}`);
151
+ console.log(` ${chalk.gray(`From: ${m.fromVersion}`)}`);
99
152
  console.log('');
100
153
  });
101
154
 
@@ -5,6 +5,7 @@ const chalk = require('chalk');
5
5
  const versionDetector = require('./lib/version-detector');
6
6
  const migrationRunner = require('./lib/migration-runner');
7
7
  const registry = require('./migrations/registry');
8
+ const { findProjectRoot } = require('./lib/utils');
8
9
 
9
10
  /**
10
11
  * BMAD-Enhanced Update CLI
@@ -15,7 +16,6 @@ async function main() {
15
16
  const args = process.argv.slice(2);
16
17
  const dryRun = args.includes('--dry-run');
17
18
  const yes = args.includes('--yes') || args.includes('-y');
18
- const force = args.includes('--force');
19
19
  const verbose = args.includes('--verbose') || args.includes('-v');
20
20
 
21
21
  // Header
@@ -25,10 +25,20 @@ async function main() {
25
25
  console.log(chalk.bold.magenta('╚════════════════════════════════════════╝'));
26
26
  console.log('');
27
27
 
28
+ // Validate project root
29
+ const projectRoot = findProjectRoot();
30
+ if (!projectRoot) {
31
+ console.log(chalk.red('Not in a BMAD project. Could not find _bmad/ directory.'));
32
+ console.log('');
33
+ console.log('Run: ' + chalk.cyan('npx bmad-install-agents'));
34
+ console.log('');
35
+ process.exit(1);
36
+ }
37
+
28
38
  // 1. Detect current state
29
- const currentVersion = versionDetector.getCurrentVersion();
39
+ const currentVersion = versionDetector.getCurrentVersion(projectRoot);
30
40
  const targetVersion = versionDetector.getTargetVersion();
31
- const scenario = versionDetector.detectInstallationScenario();
41
+ const scenario = versionDetector.detectInstallationScenario(projectRoot);
32
42
 
33
43
  // Handle different scenarios
34
44
  if (scenario === 'fresh') {
@@ -88,7 +98,7 @@ async function main() {
88
98
  console.log(` To: ${chalk.green(targetVersion)}`);
89
99
  console.log('');
90
100
 
91
- const migrations = registry.getMigrationsFor(currentVersion, targetVersion);
101
+ const migrations = registry.getMigrationsFor(currentVersion);
92
102
 
93
103
  if (migrations.length === 0) {
94
104
  console.log(chalk.yellow('No migrations needed (versions compatible)'));
@@ -104,7 +114,7 @@ async function main() {
104
114
  console.log('');
105
115
 
106
116
  // 3. Show breaking changes warning
107
- const breakingChanges = registry.getBreakingChanges(currentVersion, targetVersion);
117
+ const breakingChanges = registry.getBreakingChanges(currentVersion);
108
118
  if (breakingChanges.length > 0) {
109
119
  console.log(chalk.red.bold('⚠ BREAKING CHANGES:'));
110
120
  breakingChanges.forEach(change => {
@@ -119,7 +129,7 @@ async function main() {
119
129
  console.log('');
120
130
 
121
131
  try {
122
- await migrationRunner.runMigrations(currentVersion, targetVersion, { dryRun: true, verbose });
132
+ await migrationRunner.runMigrations(currentVersion, { dryRun: true, verbose });
123
133
  } catch (error) {
124
134
  console.error(chalk.red('Error during preview:'), error.message);
125
135
  process.exit(1);
@@ -148,7 +158,7 @@ async function main() {
148
158
  console.log(chalk.cyan.bold('Starting migration...'));
149
159
 
150
160
  try {
151
- const result = await migrationRunner.runMigrations(currentVersion, targetVersion, { verbose });
161
+ const result = await migrationRunner.runMigrations(currentVersion, { verbose });
152
162
 
153
163
  // 7. Show success report
154
164
  console.log('');
@@ -167,7 +177,7 @@ async function main() {
167
177
  console.log(chalk.gray(`Backup location: ${result.backupMetadata.backup_dir}`));
168
178
  console.log('');
169
179
 
170
- } catch (error) {
180
+ } catch (_error) {
171
181
  // Error already logged by migration-runner
172
182
  process.exit(1);
173
183
  }
@@ -5,6 +5,7 @@ const path = require('path');
5
5
  const chalk = require('chalk');
6
6
  const yaml = require('js-yaml');
7
7
  const versionDetector = require('./lib/version-detector');
8
+ const { findProjectRoot, compareVersions } = require('./lib/utils');
8
9
 
9
10
  /**
10
11
  * BMAD-Enhanced Version CLI
@@ -12,14 +13,26 @@ const versionDetector = require('./lib/version-detector');
12
13
  */
13
14
 
14
15
  async function main() {
15
- const currentVersion = versionDetector.getCurrentVersion();
16
+ const projectRoot = findProjectRoot();
16
17
  const targetVersion = versionDetector.getTargetVersion();
17
- const scenario = versionDetector.detectInstallationScenario();
18
18
 
19
19
  console.log('');
20
20
  console.log(chalk.bold('BMAD-Enhanced Version Information'));
21
21
  console.log('');
22
22
 
23
+ // Not in a BMAD project
24
+ if (!projectRoot) {
25
+ console.log(chalk.yellow('Status: Not in a BMAD project'));
26
+ console.log(`Package version: ${chalk.cyan(targetVersion)}`);
27
+ console.log('');
28
+ console.log('Run: ' + chalk.cyan('npx bmad-install-agents'));
29
+ console.log('');
30
+ return;
31
+ }
32
+
33
+ const currentVersion = versionDetector.getCurrentVersion(projectRoot);
34
+ const scenario = versionDetector.detectInstallationScenario(projectRoot);
35
+
23
36
  // Fresh install - not installed yet
24
37
  if (scenario === 'fresh') {
25
38
  console.log(chalk.yellow('Status: Not installed'));
@@ -64,7 +77,7 @@ async function main() {
64
77
  // Status
65
78
  if (currentVersion === targetVersion) {
66
79
  console.log(chalk.green('Status: ✓ Up to date'));
67
- } else if (versionDetector.compareVersions(currentVersion, targetVersion) < 0) {
80
+ } else if (compareVersions(currentVersion, targetVersion) < 0) {
68
81
  console.log(chalk.yellow('Status: ⚠ Update available'));
69
82
  console.log('');
70
83
  console.log('Run: ' + chalk.cyan('npx bmad-update --dry-run') + ' (to preview)');
@@ -74,7 +87,7 @@ async function main() {
74
87
  }
75
88
 
76
89
  // Show migration history
77
- const migrationHistory = await getMigrationHistory();
90
+ const migrationHistory = await getMigrationHistory(projectRoot);
78
91
  if (migrationHistory && migrationHistory.length > 0) {
79
92
  console.log('');
80
93
  console.log(chalk.cyan('Migration History:'));
@@ -94,10 +107,11 @@ async function main() {
94
107
 
95
108
  /**
96
109
  * Get migration history from config.yaml
110
+ * @param {string} projectRoot - Project root
97
111
  * @returns {Promise<Array|null>} Migration history or null
98
112
  */
99
- async function getMigrationHistory() {
100
- const configPath = path.join(process.cwd(), '_bmad/bme/_vortex/config.yaml');
113
+ async function getMigrationHistory(projectRoot) {
114
+ const configPath = path.join(projectRoot, '_bmad/bme/_vortex/config.yaml');
101
115
 
102
116
  if (!fs.existsSync(configPath)) {
103
117
  return null;
@@ -108,7 +122,7 @@ async function getMigrationHistory() {
108
122
  const config = yaml.load(configContent);
109
123
 
110
124
  return config.migration_history || null;
111
- } catch (error) {
125
+ } catch (_error) {
112
126
  return null;
113
127
  }
114
128
  }
@@ -2,6 +2,7 @@
2
2
 
3
3
  const fs = require('fs-extra');
4
4
  const path = require('path');
5
+ const { countUserDataFiles } = require('./utils');
5
6
 
6
7
  /**
7
8
  * Backup Manager for BMAD-Enhanced
@@ -11,12 +12,13 @@ const path = require('path');
11
12
  /**
12
13
  * Create a backup of critical installation files
13
14
  * @param {string} version - Current version being backed up
15
+ * @param {string} projectRoot - Absolute path to project root
14
16
  * @returns {Promise<object>} Backup metadata
15
17
  */
16
- async function createBackup(version) {
18
+ async function createBackup(version, projectRoot) {
17
19
  const timestamp = Date.now();
18
20
  const backupDir = path.join(
19
- process.cwd(),
21
+ projectRoot,
20
22
  '_bmad-output/.backups',
21
23
  `backup-${version}-${timestamp}`
22
24
  );
@@ -24,7 +26,7 @@ async function createBackup(version) {
24
26
  console.log(`Creating backup in: ${backupDir}`);
25
27
 
26
28
  // Ensure backup directory exists
27
- await ensureBackupDirectory();
29
+ await ensureBackupDirectory(projectRoot);
28
30
 
29
31
  // Create backup directory
30
32
  await fs.ensureDir(backupDir);
@@ -34,7 +36,7 @@ async function createBackup(version) {
34
36
 
35
37
  // Copy each file/directory to backup
36
38
  for (const file of filesToBackup) {
37
- const sourcePath = path.join(process.cwd(), file.path);
39
+ const sourcePath = path.join(projectRoot, file.path);
38
40
 
39
41
  if (!fs.existsSync(sourcePath)) {
40
42
  console.log(` Skipping ${file.path} (does not exist)`);
@@ -44,12 +46,7 @@ async function createBackup(version) {
44
46
  const destPath = path.join(backupDir, file.name);
45
47
 
46
48
  try {
47
- if (file.type === 'file') {
48
- await fs.copy(sourcePath, destPath);
49
- } else if (file.type === 'directory') {
50
- await fs.copy(sourcePath, destPath);
51
- }
52
-
49
+ await fs.copy(sourcePath, destPath);
53
50
  backedUpFiles.push(file.path);
54
51
  console.log(` ✓ Backed up: ${file.path}`);
55
52
  } catch (error) {
@@ -59,7 +56,7 @@ async function createBackup(version) {
59
56
  }
60
57
 
61
58
  // Count user data files (for integrity check)
62
- const userDataCount = await countUserDataFiles();
59
+ const userDataCount = await countUserDataFiles(projectRoot);
63
60
 
64
61
  // Create backup manifest
65
62
  const manifest = {
@@ -82,9 +79,10 @@ async function createBackup(version) {
82
79
  /**
83
80
  * Restore from backup after migration failure
84
81
  * @param {object} backupMetadata - Metadata from createBackup
82
+ * @param {string} projectRoot - Absolute path to project root
85
83
  * @returns {Promise<void>}
86
84
  */
87
- async function restoreBackup(backupMetadata) {
85
+ async function restoreBackup(backupMetadata, projectRoot) {
88
86
  const backupDir = backupMetadata.backup_dir;
89
87
 
90
88
  console.log('');
@@ -104,7 +102,7 @@ async function restoreBackup(backupMetadata) {
104
102
  continue;
105
103
  }
106
104
 
107
- const destPath = path.join(process.cwd(), file.path);
105
+ const destPath = path.join(projectRoot, file.path);
108
106
 
109
107
  try {
110
108
  // Remove existing file/directory first
@@ -126,10 +124,11 @@ async function restoreBackup(backupMetadata) {
126
124
 
127
125
  /**
128
126
  * List available backups
127
+ * @param {string} projectRoot - Absolute path to project root
129
128
  * @returns {Promise<Array>} List of backup metadata
130
129
  */
131
- async function listBackups() {
132
- const backupsDir = path.join(process.cwd(), '_bmad-output/.backups');
130
+ async function listBackups(projectRoot) {
131
+ const backupsDir = path.join(projectRoot, '_bmad-output/.backups');
133
132
 
134
133
  if (!fs.existsSync(backupsDir)) {
135
134
  return [];
@@ -161,10 +160,11 @@ async function listBackups() {
161
160
  /**
162
161
  * Clean up old backups, keeping only the most recent N
163
162
  * @param {number} keepCount - Number of backups to keep
163
+ * @param {string} projectRoot - Absolute path to project root
164
164
  * @returns {Promise<number>} Number of backups deleted
165
165
  */
166
- async function cleanupOldBackups(keepCount = 5) {
167
- const backups = await listBackups();
166
+ async function cleanupOldBackups(keepCount = 5, projectRoot) {
167
+ const backups = await listBackups(projectRoot);
168
168
 
169
169
  if (backups.length <= keepCount) {
170
170
  return 0; // Nothing to clean up
@@ -188,13 +188,14 @@ async function cleanupOldBackups(keepCount = 5) {
188
188
 
189
189
  /**
190
190
  * Ensure backup directory exists
191
+ * @param {string} projectRoot - Absolute path to project root
191
192
  * @returns {Promise<void>}
192
193
  */
193
- async function ensureBackupDirectory() {
194
- const backupDir = path.join(process.cwd(), '_bmad-output/.backups');
194
+ async function ensureBackupDirectory(projectRoot) {
195
+ const backupDir = path.join(projectRoot, '_bmad-output/.backups');
195
196
 
196
197
  if (!fs.existsSync(backupDir)) {
197
- const outputDir = path.join(process.cwd(), '_bmad-output');
198
+ const outputDir = path.join(projectRoot, '_bmad-output');
198
199
 
199
200
  if (!fs.existsSync(outputDir)) {
200
201
  throw new Error('_bmad-output directory not found. Is BMAD Method installed?');
@@ -233,47 +234,10 @@ function getFilesToBackup() {
233
234
  ];
234
235
  }
235
236
 
236
- /**
237
- * Count user data files in _bmad-output (for integrity check)
238
- * @returns {Promise<number>} Number of user files
239
- */
240
- async function countUserDataFiles() {
241
- const outputDir = path.join(process.cwd(), '_bmad-output');
242
-
243
- if (!fs.existsSync(outputDir)) {
244
- return 0;
245
- }
246
-
247
- let count = 0;
248
-
249
- async function countRecursive(dir) {
250
- const entries = await fs.readdir(dir, { withFileTypes: true });
251
-
252
- for (const entry of entries) {
253
- const fullPath = path.join(dir, entry.name);
254
-
255
- // Skip .backups and .logs directories
256
- if (entry.name === '.backups' || entry.name === '.logs') {
257
- continue;
258
- }
259
-
260
- if (entry.isDirectory()) {
261
- await countRecursive(fullPath);
262
- } else if (entry.isFile()) {
263
- count++;
264
- }
265
- }
266
- }
267
-
268
- await countRecursive(outputDir);
269
- return count;
270
- }
271
-
272
237
  module.exports = {
273
238
  createBackup,
274
239
  restoreBackup,
275
240
  listBackups,
276
241
  cleanupOldBackups,
277
- ensureBackupDirectory,
278
- countUserDataFiles
242
+ ensureBackupDirectory
279
243
  };