observer-ggboy-bmad-method 6.0.0-alpha.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/.coderabbit.yaml +40 -0
  2. package/.github/CODE_OF_CONDUCT.md +128 -0
  3. package/.github/FUNDING.yaml +15 -0
  4. package/.github/ISSUE_TEMPLATE/config.yaml +8 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
  6. package/.github/ISSUE_TEMPLATE/issue.md +32 -0
  7. package/.github/scripts/discord-helpers.sh +34 -0
  8. package/.github/workflows/bundle-latest.yaml +330 -0
  9. package/.github/workflows/discord.yaml +90 -0
  10. package/.github/workflows/docs.yaml +63 -0
  11. package/.github/workflows/manual-release.yaml +190 -0
  12. package/.github/workflows/quality.yaml +115 -0
  13. package/.health-status.json +7 -0
  14. package/.husky/pre-commit +20 -0
  15. package/.markdownlint-cli2.yaml +41 -0
  16. package/.nvmrc +1 -0
  17. package/.prettierignore +9 -0
  18. package/.vscode/settings.json +97 -0
  19. package/CHANGELOG.md +1394 -0
  20. package/CNAME +1 -0
  21. package/CONTRIBUTING.md +167 -0
  22. package/CONTRIBUTORS.md +32 -0
  23. package/LICENSE +30 -0
  24. package/README.md +100 -0
  25. package/SECURITY.md +85 -0
  26. package/TRADEMARK.md +55 -0
  27. package/Wordmark.png +0 -0
  28. package/banner-bmad-method.png +0 -0
  29. package/bmad-method-6.0.0-alpha.23.tgz +0 -0
  30. package/docs/404.md +9 -0
  31. package/docs/_README_WORKFLOW_DIAGRAMS.md +40 -0
  32. package/docs/_STYLE_GUIDE.md +367 -0
  33. package/docs/_archive/customize-workflows.md +30 -0
  34. package/docs/_archive/getting-started-bmadv4.md +247 -0
  35. package/docs/_archive/vendor-workflows.md +52 -0
  36. package/docs/downloads.md +72 -0
  37. package/docs/explanation/agents/barry-quick-flow.md +328 -0
  38. package/docs/explanation/agents/index.md +19 -0
  39. package/docs/explanation/architecture/four-phases.md +107 -0
  40. package/docs/explanation/architecture/preventing-agent-conflicts.md +111 -0
  41. package/docs/explanation/architecture/why-solutioning-matters.md +75 -0
  42. package/docs/explanation/bmm/index.md +131 -0
  43. package/docs/explanation/core/index.md +18 -0
  44. package/docs/explanation/core-concepts/agent-roles.md +179 -0
  45. package/docs/explanation/core-concepts/index.md +35 -0
  46. package/docs/explanation/core-concepts/what-are-agents.md +97 -0
  47. package/docs/explanation/core-concepts/what-are-modules.md +85 -0
  48. package/docs/explanation/core-concepts/what-are-workflows.md +204 -0
  49. package/docs/explanation/faq/brownfield-faq.md +73 -0
  50. package/docs/explanation/faq/getting-started-faq.md +67 -0
  51. package/docs/explanation/faq/implementation-faq.md +52 -0
  52. package/docs/explanation/faq/index.md +16 -0
  53. package/docs/explanation/faq/levels-and-tracks-faq.md +52 -0
  54. package/docs/explanation/faq/planning-faq.md +41 -0
  55. package/docs/explanation/faq/tools-faq.md +277 -0
  56. package/docs/explanation/faq/workflows-faq.md +61 -0
  57. package/docs/explanation/features/advanced-elicitation.md +95 -0
  58. package/docs/explanation/features/brainstorming-techniques.md +92 -0
  59. package/docs/explanation/features/party-mode.md +95 -0
  60. package/docs/explanation/features/quick-flow.md +149 -0
  61. package/docs/explanation/features/tea-overview.md +410 -0
  62. package/docs/explanation/features/web-bundles.md +34 -0
  63. package/docs/explanation/philosophy/facilitation-over-generation.md +333 -0
  64. package/docs/explanation/philosophy/testing-as-engineering.md +112 -0
  65. package/docs/explanation/tea/engagement-models.md +710 -0
  66. package/docs/explanation/tea/fixture-architecture.md +457 -0
  67. package/docs/explanation/tea/knowledge-base-system.md +554 -0
  68. package/docs/explanation/tea/network-first-patterns.md +853 -0
  69. package/docs/explanation/tea/risk-based-testing.md +586 -0
  70. package/docs/explanation/tea/test-quality-standards.md +907 -0
  71. package/docs/how-to/brownfield/add-feature-to-existing.md +74 -0
  72. package/docs/how-to/brownfield/document-existing-project.md +66 -0
  73. package/docs/how-to/brownfield/index.md +84 -0
  74. package/docs/how-to/brownfield/quick-fix-in-brownfield.md +77 -0
  75. package/docs/how-to/brownfield/use-tea-for-enterprise.md +525 -0
  76. package/docs/how-to/brownfield/use-tea-with-existing-tests.md +577 -0
  77. package/docs/how-to/customization/customize-agents.md +212 -0
  78. package/docs/how-to/customization/enable-tea-mcp-enhancements.md +424 -0
  79. package/docs/how-to/customization/index.md +23 -0
  80. package/docs/how-to/customization/integrate-playwright-utils.md +813 -0
  81. package/docs/how-to/customization/shard-large-documents.md +101 -0
  82. package/docs/how-to/get-answers-about-bmad.md +102 -0
  83. package/docs/how-to/installation/index.md +12 -0
  84. package/docs/how-to/installation/install-bmad.md +111 -0
  85. package/docs/how-to/installation/install-custom-modules.md +118 -0
  86. package/docs/how-to/installation/upgrade-to-v6.md +131 -0
  87. package/docs/how-to/workflows/bmgd-quick-flow.md +156 -0
  88. package/docs/how-to/workflows/conduct-research.md +97 -0
  89. package/docs/how-to/workflows/create-architecture.md +119 -0
  90. package/docs/how-to/workflows/create-epics-and-stories.md +109 -0
  91. package/docs/how-to/workflows/create-prd.md +91 -0
  92. package/docs/how-to/workflows/create-product-brief.md +94 -0
  93. package/docs/how-to/workflows/create-story.md +102 -0
  94. package/docs/how-to/workflows/create-ux-design.md +100 -0
  95. package/docs/how-to/workflows/implement-story.md +97 -0
  96. package/docs/how-to/workflows/quick-spec.md +122 -0
  97. package/docs/how-to/workflows/run-atdd.md +436 -0
  98. package/docs/how-to/workflows/run-automate.md +653 -0
  99. package/docs/how-to/workflows/run-brainstorming-session.md +73 -0
  100. package/docs/how-to/workflows/run-code-review.md +89 -0
  101. package/docs/how-to/workflows/run-implementation-readiness.md +125 -0
  102. package/docs/how-to/workflows/run-nfr-assess.md +679 -0
  103. package/docs/how-to/workflows/run-sprint-planning.md +94 -0
  104. package/docs/how-to/workflows/run-test-design.md +135 -0
  105. package/docs/how-to/workflows/run-test-review.md +605 -0
  106. package/docs/how-to/workflows/run-trace.md +883 -0
  107. package/docs/how-to/workflows/setup-ci.md +712 -0
  108. package/docs/how-to/workflows/setup-party-mode.md +89 -0
  109. package/docs/how-to/workflows/setup-test-framework.md +98 -0
  110. package/docs/index.md +63 -0
  111. package/docs/reference/agents/index.md +109 -0
  112. package/docs/reference/configuration/core-tasks.md +67 -0
  113. package/docs/reference/configuration/global-config.md +28 -0
  114. package/docs/reference/glossary/index.md +159 -0
  115. package/docs/reference/tea/commands.md +276 -0
  116. package/docs/reference/tea/configuration.md +678 -0
  117. package/docs/reference/tea/knowledge-base.md +340 -0
  118. package/docs/reference/workflows/core-workflows.md +32 -0
  119. package/docs/reference/workflows/document-project.md +73 -0
  120. package/docs/reference/workflows/index.md +12 -0
  121. package/docs/tutorials/getting-started/getting-started-bmadv6.md +246 -0
  122. package/docs/tutorials/getting-started/images/workflow-method-greenfield.excalidraw +5034 -0
  123. package/docs/tutorials/getting-started/images/workflow-method-greenfield.svg +4 -0
  124. package/docs/tutorials/getting-started/images/workflow-overview.jpg +0 -0
  125. package/docs/tutorials/getting-started/tea-lite-quickstart.md +444 -0
  126. package/docs/tutorials/getting-started/workflow-overview.jpg +0 -0
  127. package/eslint.config.mjs +152 -0
  128. package/package.json +117 -0
  129. package/prettier.config.mjs +32 -0
  130. package/src/bmm/_module-installer/installer.js +48 -0
  131. package/src/bmm/_module-installer/platform-specifics/claude-code.js +35 -0
  132. package/src/bmm/_module-installer/platform-specifics/windsurf.js +32 -0
  133. package/src/bmm/agents/analyst.agent.yaml +36 -0
  134. package/src/bmm/agents/architect.agent.yaml +28 -0
  135. package/src/bmm/agents/dev.agent.yaml +38 -0
  136. package/src/bmm/agents/pm.agent.yaml +46 -0
  137. package/src/bmm/agents/quick-flow-solo-dev.agent.yaml +32 -0
  138. package/src/bmm/agents/sm.agent.yaml +36 -0
  139. package/src/bmm/agents/tea.agent.yaml +63 -0
  140. package/src/bmm/agents/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
  141. package/src/bmm/agents/tech-writer/tech-writer.agent.yaml +45 -0
  142. package/src/bmm/agents/ux-designer.agent.yaml +26 -0
  143. package/src/bmm/data/project-context-template.md +26 -0
  144. package/src/bmm/module-help.csv +32 -0
  145. package/src/bmm/module.yaml +44 -0
  146. package/src/bmm/sub-modules/claude-code/config.yaml +4 -0
  147. package/src/bmm/sub-modules/claude-code/injections.yaml +242 -0
  148. package/src/bmm/sub-modules/claude-code/readme.md +87 -0
  149. package/src/bmm/teams/default-party.csv +21 -0
  150. package/src/bmm/teams/team-fullstack.yaml +12 -0
  151. package/src/bmm/testarch/knowledge/adr-quality-readiness-checklist.md +350 -0
  152. package/src/bmm/testarch/knowledge/api-request.md +442 -0
  153. package/src/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
  154. package/src/bmm/testarch/knowledge/auth-session.md +552 -0
  155. package/src/bmm/testarch/knowledge/burn-in.md +273 -0
  156. package/src/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  157. package/src/bmm/testarch/knowledge/component-tdd.md +486 -0
  158. package/src/bmm/testarch/knowledge/contract-testing.md +957 -0
  159. package/src/bmm/testarch/knowledge/data-factories.md +500 -0
  160. package/src/bmm/testarch/knowledge/email-auth.md +721 -0
  161. package/src/bmm/testarch/knowledge/error-handling.md +725 -0
  162. package/src/bmm/testarch/knowledge/feature-flags.md +750 -0
  163. package/src/bmm/testarch/knowledge/file-utils.md +463 -0
  164. package/src/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  165. package/src/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  166. package/src/bmm/testarch/knowledge/intercept-network-call.md +430 -0
  167. package/src/bmm/testarch/knowledge/log.md +429 -0
  168. package/src/bmm/testarch/knowledge/network-error-monitor.md +405 -0
  169. package/src/bmm/testarch/knowledge/network-first.md +486 -0
  170. package/src/bmm/testarch/knowledge/network-recorder.md +527 -0
  171. package/src/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  172. package/src/bmm/testarch/knowledge/overview.md +286 -0
  173. package/src/bmm/testarch/knowledge/playwright-config.md +730 -0
  174. package/src/bmm/testarch/knowledge/probability-impact.md +601 -0
  175. package/src/bmm/testarch/knowledge/recurse.md +421 -0
  176. package/src/bmm/testarch/knowledge/risk-governance.md +615 -0
  177. package/src/bmm/testarch/knowledge/selective-testing.md +732 -0
  178. package/src/bmm/testarch/knowledge/selector-resilience.md +527 -0
  179. package/src/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  180. package/src/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  181. package/src/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  182. package/src/bmm/testarch/knowledge/test-quality.md +664 -0
  183. package/src/bmm/testarch/knowledge/timing-debugging.md +372 -0
  184. package/src/bmm/testarch/knowledge/visual-debugging.md +524 -0
  185. package/src/bmm/testarch/tea-index.csv +35 -0
  186. package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  187. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  188. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  189. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  190. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  191. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  192. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  193. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
  194. package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
  195. package/src/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  196. package/src/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  197. package/src/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  198. package/src/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  199. package/src/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  200. package/src/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  201. package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  202. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  203. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
  204. package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  205. package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  206. package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  207. package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  208. package/src/bmm/workflows/1-analysis/research/research.template.md +29 -0
  209. package/src/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  210. package/src/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  211. package/src/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  212. package/src/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  213. package/src/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
  214. package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  215. package/src/bmm/workflows/1-analysis/research/workflow.md +173 -0
  216. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  217. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  218. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  219. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  220. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  221. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  222. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  223. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  224. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  225. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  226. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  227. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  228. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  229. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  230. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
  231. package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  232. package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
  233. package/src/bmm/workflows/2-plan-workflows/prd/data/domain-complexity.csv +13 -0
  234. package/src/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +197 -0
  235. package/src/bmm/workflows/2-plan-workflows/prd/data/project-types.csv +11 -0
  236. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-01-init.md +191 -0
  237. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-01b-continue.md +153 -0
  238. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +224 -0
  239. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-03-success.md +226 -0
  240. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +213 -0
  241. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +207 -0
  242. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-06-innovation.md +226 -0
  243. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-07-project-type.md +237 -0
  244. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-08-scoping.md +228 -0
  245. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-09-functional.md +231 -0
  246. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-10-nonfunctional.md +242 -0
  247. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +217 -0
  248. package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +124 -0
  249. package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +247 -0
  250. package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  251. package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +249 -0
  252. package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +253 -0
  253. package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +168 -0
  254. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +218 -0
  255. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
  256. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
  257. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
  258. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  259. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
  260. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
  261. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  262. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  263. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
  264. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
  265. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  266. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
  267. package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +231 -0
  268. package/src/bmm/workflows/2-plan-workflows/prd/templates/prd-template.md +10 -0
  269. package/src/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +433 -0
  270. package/src/bmm/workflows/2-plan-workflows/prd/workflow.md +150 -0
  271. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
  272. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
  273. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
  274. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
  275. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
  276. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +135 -0
  277. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  278. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
  279. package/src/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  280. package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
  281. package/src/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  282. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  283. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
  284. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  285. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
  286. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  287. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  288. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  289. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  290. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
  291. package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
  292. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  293. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  294. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  295. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
  296. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  297. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
  298. package/src/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  299. package/src/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  300. package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +51 -0
  301. package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  302. package/src/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
  303. package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +60 -0
  304. package/src/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  305. package/src/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
  306. package/src/bmm/workflows/4-implementation/create-story/template.md +49 -0
  307. package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +61 -0
  308. package/src/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  309. package/src/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  310. package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +27 -0
  311. package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
  312. package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +58 -0
  313. package/src/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  314. package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
  315. package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  316. package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +54 -0
  317. package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
  318. package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +36 -0
  319. package/src/bmm/workflows/bmad-quick-flow/quick-dev/data/project-levels.yaml +59 -0
  320. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +156 -0
  321. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  322. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
  323. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  324. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  325. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +140 -0
  326. package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
  327. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +189 -0
  328. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +144 -0
  329. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
  330. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +191 -0
  331. package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  332. package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  333. package/src/bmm/workflows/document-project/checklist.md +245 -0
  334. package/src/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  335. package/src/bmm/workflows/document-project/instructions.md +221 -0
  336. package/src/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  337. package/src/bmm/workflows/document-project/templates/index-template.md +169 -0
  338. package/src/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  339. package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  340. package/src/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  341. package/src/bmm/workflows/document-project/workflow.yaml +30 -0
  342. package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  343. package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  344. package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  345. package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  346. package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
  347. package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
  348. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
  349. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
  350. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +27 -0
  351. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
  352. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
  353. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +27 -0
  354. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
  355. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
  356. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +27 -0
  357. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
  358. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
  359. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +27 -0
  360. package/src/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  361. package/src/bmm/workflows/testarch/atdd/checklist.md +374 -0
  362. package/src/bmm/workflows/testarch/atdd/instructions.md +806 -0
  363. package/src/bmm/workflows/testarch/atdd/workflow.yaml +47 -0
  364. package/src/bmm/workflows/testarch/automate/checklist.md +582 -0
  365. package/src/bmm/workflows/testarch/automate/instructions.md +1324 -0
  366. package/src/bmm/workflows/testarch/automate/workflow.yaml +54 -0
  367. package/src/bmm/workflows/testarch/ci/checklist.md +247 -0
  368. package/src/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -0
  369. package/src/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
  370. package/src/bmm/workflows/testarch/ci/instructions.md +536 -0
  371. package/src/bmm/workflows/testarch/ci/workflow.yaml +47 -0
  372. package/src/bmm/workflows/testarch/framework/checklist.md +320 -0
  373. package/src/bmm/workflows/testarch/framework/instructions.md +481 -0
  374. package/src/bmm/workflows/testarch/framework/workflow.yaml +49 -0
  375. package/src/bmm/workflows/testarch/nfr-assess/checklist.md +407 -0
  376. package/src/bmm/workflows/testarch/nfr-assess/instructions.md +726 -0
  377. package/src/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +461 -0
  378. package/src/bmm/workflows/testarch/nfr-assess/workflow.yaml +49 -0
  379. package/src/bmm/workflows/testarch/test-design/checklist.md +407 -0
  380. package/src/bmm/workflows/testarch/test-design/instructions.md +1158 -0
  381. package/src/bmm/workflows/testarch/test-design/test-design-architecture-template.md +213 -0
  382. package/src/bmm/workflows/testarch/test-design/test-design-qa-template.md +286 -0
  383. package/src/bmm/workflows/testarch/test-design/test-design-template.md +294 -0
  384. package/src/bmm/workflows/testarch/test-design/workflow.yaml +71 -0
  385. package/src/bmm/workflows/testarch/test-review/checklist.md +472 -0
  386. package/src/bmm/workflows/testarch/test-review/instructions.md +628 -0
  387. package/src/bmm/workflows/testarch/test-review/test-review-template.md +390 -0
  388. package/src/bmm/workflows/testarch/test-review/workflow.yaml +48 -0
  389. package/src/bmm/workflows/testarch/trace/checklist.md +642 -0
  390. package/src/bmm/workflows/testarch/trace/instructions.md +1030 -0
  391. package/src/bmm/workflows/testarch/trace/trace-template.md +675 -0
  392. package/src/bmm/workflows/testarch/trace/workflow.yaml +57 -0
  393. package/src/core/_module-installer/installer.js +60 -0
  394. package/src/core/agents/bmad-master.agent.yaml +29 -0
  395. package/src/core/module-help.csv +9 -0
  396. package/src/core/module.yaml +25 -0
  397. package/src/core/resources/excalidraw/README.md +160 -0
  398. package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  399. package/src/core/resources/excalidraw/library-loader.md +50 -0
  400. package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
  401. package/src/core/tasks/editorial-review-prose.xml +100 -0
  402. package/src/core/tasks/editorial-review-structure.xml +209 -0
  403. package/src/core/tasks/help.md +62 -0
  404. package/src/core/tasks/index-docs.xml +65 -0
  405. package/src/core/tasks/review-adversarial-general.xml +48 -0
  406. package/src/core/tasks/shard-doc.xml +109 -0
  407. package/src/core/tasks/workflow.xml +235 -0
  408. package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
  409. package/src/core/workflows/advanced-elicitation/workflow.xml +117 -0
  410. package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
  411. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  412. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  413. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  414. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  415. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  416. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  417. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  418. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  419. package/src/core/workflows/brainstorming/template.md +15 -0
  420. package/src/core/workflows/brainstorming/workflow.md +58 -0
  421. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  422. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  423. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +157 -0
  424. package/src/core/workflows/party-mode/workflow.md +194 -0
  425. package/src/utility/agent-components/activation-rules.txt +6 -0
  426. package/src/utility/agent-components/activation-steps.txt +14 -0
  427. package/src/utility/agent-components/agent-command-header.md +1 -0
  428. package/src/utility/agent-components/agent.customize.template.yaml +41 -0
  429. package/src/utility/agent-components/handler-action.txt +4 -0
  430. package/src/utility/agent-components/handler-data.txt +5 -0
  431. package/src/utility/agent-components/handler-exec.txt +6 -0
  432. package/src/utility/agent-components/handler-multi.txt +14 -0
  433. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  434. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  435. package/src/utility/agent-components/handler-workflow.txt +10 -0
  436. package/src/utility/agent-components/menu-handlers.txt +6 -0
  437. package/test/README.md +295 -0
  438. package/test/adversarial-review-tests/README.md +56 -0
  439. package/test/adversarial-review-tests/sample-content.md +46 -0
  440. package/test/adversarial-review-tests/test-cases.yaml +103 -0
  441. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +27 -0
  442. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +30 -0
  443. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +22 -0
  444. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +20 -0
  445. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +25 -0
  446. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +24 -0
  447. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +25 -0
  448. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +25 -0
  449. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +25 -0
  450. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +31 -0
  451. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +25 -0
  452. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +25 -0
  453. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +25 -0
  454. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +25 -0
  455. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
  456. package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
  457. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +27 -0
  458. package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
  459. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +24 -0
  460. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +27 -0
  461. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +27 -0
  462. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +24 -0
  463. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +29 -0
  464. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +31 -0
  465. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +28 -0
  466. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +28 -0
  467. package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
  468. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +28 -0
  469. package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
  470. package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
  471. package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
  472. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +24 -0
  473. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +22 -0
  474. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +27 -0
  475. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +31 -0
  476. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +22 -0
  477. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +38 -0
  478. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +24 -0
  479. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +31 -0
  480. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +34 -0
  481. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +24 -0
  482. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +24 -0
  483. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +24 -0
  484. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +24 -0
  485. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +23 -0
  486. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +24 -0
  487. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +24 -0
  488. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +24 -0
  489. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +22 -0
  490. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +28 -0
  491. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +30 -0
  492. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +24 -0
  493. package/test/test-agent-schema.js +387 -0
  494. package/test/test-cli-integration.sh +159 -0
  495. package/test/test-installation-components.js +214 -0
  496. package/test/unit-test-schema.js +133 -0
  497. package/tools/bmad-npx-wrapper.js +38 -0
  498. package/tools/build-docs.js +577 -0
  499. package/tools/cli/README.md +7 -0
  500. package/tools/cli/bmad-cli.js +58 -0
  501. package/tools/cli/commands/install.js +87 -0
  502. package/tools/cli/commands/status.js +65 -0
  503. package/tools/cli/external-official-modules.yaml +56 -0
  504. package/tools/cli/installers/install-messages.yaml +58 -0
  505. package/tools/cli/installers/lib/core/config-collector.js +1079 -0
  506. package/tools/cli/installers/lib/core/custom-module-cache.js +259 -0
  507. package/tools/cli/installers/lib/core/dependency-resolver.js +739 -0
  508. package/tools/cli/installers/lib/core/detector.js +223 -0
  509. package/tools/cli/installers/lib/core/ide-config-manager.js +156 -0
  510. package/tools/cli/installers/lib/core/installer.js +2826 -0
  511. package/tools/cli/installers/lib/core/manifest-generator.js +1054 -0
  512. package/tools/cli/installers/lib/core/manifest.js +1036 -0
  513. package/tools/cli/installers/lib/custom/handler.js +363 -0
  514. package/tools/cli/installers/lib/ide/STANDARDIZATION_PLAN.md +208 -0
  515. package/tools/cli/installers/lib/ide/_base-ide.js +655 -0
  516. package/tools/cli/installers/lib/ide/antigravity.js +474 -0
  517. package/tools/cli/installers/lib/ide/auggie.js +244 -0
  518. package/tools/cli/installers/lib/ide/claude-code.js +506 -0
  519. package/tools/cli/installers/lib/ide/cline.js +272 -0
  520. package/tools/cli/installers/lib/ide/codex.js +412 -0
  521. package/tools/cli/installers/lib/ide/crush.js +149 -0
  522. package/tools/cli/installers/lib/ide/cursor.js +160 -0
  523. package/tools/cli/installers/lib/ide/gemini.js +301 -0
  524. package/tools/cli/installers/lib/ide/github-copilot.js +383 -0
  525. package/tools/cli/installers/lib/ide/iflow.js +191 -0
  526. package/tools/cli/installers/lib/ide/kilo.js +250 -0
  527. package/tools/cli/installers/lib/ide/kiro-cli.js +326 -0
  528. package/tools/cli/installers/lib/ide/manager.js +244 -0
  529. package/tools/cli/installers/lib/ide/opencode.js +257 -0
  530. package/tools/cli/installers/lib/ide/qwen.js +372 -0
  531. package/tools/cli/installers/lib/ide/roo.js +273 -0
  532. package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
  533. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +165 -0
  534. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +158 -0
  535. package/tools/cli/installers/lib/ide/shared/module-injections.js +136 -0
  536. package/tools/cli/installers/lib/ide/shared/path-utils.js +165 -0
  537. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +268 -0
  538. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +293 -0
  539. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  540. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  541. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  542. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +13 -0
  543. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
  544. package/tools/cli/installers/lib/ide/trae.js +313 -0
  545. package/tools/cli/installers/lib/ide/windsurf.js +258 -0
  546. package/tools/cli/installers/lib/message-loader.js +85 -0
  547. package/tools/cli/installers/lib/modules/external-manager.js +135 -0
  548. package/tools/cli/installers/lib/modules/manager.js +1375 -0
  549. package/tools/cli/lib/activation-builder.js +163 -0
  550. package/tools/cli/lib/agent/compiler.js +522 -0
  551. package/tools/cli/lib/agent/installer.js +716 -0
  552. package/tools/cli/lib/agent/template-engine.js +152 -0
  553. package/tools/cli/lib/agent-analyzer.js +109 -0
  554. package/tools/cli/lib/agent-party-generator.js +194 -0
  555. package/tools/cli/lib/cli-utils.js +227 -0
  556. package/tools/cli/lib/config.js +213 -0
  557. package/tools/cli/lib/file-ops.js +204 -0
  558. package/tools/cli/lib/platform-codes.js +116 -0
  559. package/tools/cli/lib/project-root.js +77 -0
  560. package/tools/cli/lib/prompts.js +433 -0
  561. package/tools/cli/lib/ui.js +1716 -0
  562. package/tools/cli/lib/xml-handler.js +177 -0
  563. package/tools/cli/lib/xml-to-markdown.js +82 -0
  564. package/tools/cli/lib/yaml-format.js +245 -0
  565. package/tools/cli/lib/yaml-xml-builder.js +587 -0
  566. package/tools/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  567. package/tools/docs/index.md +2 -0
  568. package/tools/fix-doc-links.js +288 -0
  569. package/tools/flattener/aggregate.js +76 -0
  570. package/tools/flattener/binary.js +80 -0
  571. package/tools/flattener/discovery.js +71 -0
  572. package/tools/flattener/files.js +35 -0
  573. package/tools/flattener/ignoreRules.js +172 -0
  574. package/tools/flattener/main.js +483 -0
  575. package/tools/flattener/projectRoot.js +201 -0
  576. package/tools/flattener/prompts.js +44 -0
  577. package/tools/flattener/stats.helpers.js +368 -0
  578. package/tools/flattener/stats.js +75 -0
  579. package/tools/flattener/test-matrix.js +409 -0
  580. package/tools/flattener/xml.js +82 -0
  581. package/tools/format-workflow-md.js +263 -0
  582. package/tools/lib/xml-utils.js +13 -0
  583. package/tools/maintainer/review-pr-README.md +55 -0
  584. package/tools/maintainer/review-pr.md +242 -0
  585. package/tools/migrate-custom-module-paths.js +124 -0
  586. package/tools/platform-codes.yaml +157 -0
  587. package/tools/schema/agent.js +491 -0
  588. package/tools/validate-agent-schema.js +110 -0
  589. package/tools/validate-doc-links.js +363 -0
  590. package/tools/validate-svg-changes.sh +356 -0
  591. package/website/README.md +76 -0
  592. package/website/astro.config.mjs +228 -0
  593. package/website/public/favicon.ico +0 -0
  594. package/website/public/img/bmad-dark.png +0 -0
  595. package/website/public/img/bmad-light.png +0 -0
  596. package/website/public/img/logo.svg +4 -0
  597. package/website/public/robots.txt +37 -0
  598. package/website/src/components/Banner.astro +59 -0
  599. package/website/src/components/Header.astro +121 -0
  600. package/website/src/components/MobileMenuFooter.astro +53 -0
  601. package/website/src/content/config.ts +6 -0
  602. package/website/src/lib/site-url.js +25 -0
  603. package/website/src/rehype-markdown-links.js +102 -0
  604. package/website/src/styles/custom.css +485 -0
@@ -0,0 +1,1030 @@
1
+ # Test Architect Workflow: Requirements Traceability & Quality Gate Decision
2
+
3
+ **Workflow:** `testarch-trace`
4
+ **Purpose:** Generate requirements-to-tests traceability matrix, analyze coverage gaps, and make quality gate decisions (PASS/CONCERNS/FAIL/WAIVED)
5
+ **Agent:** Test Architect (TEA)
6
+ **Format:** Pure Markdown v4.0 (no XML blocks)
7
+
8
+ ---
9
+
10
+ ## Overview
11
+
12
+ This workflow operates in two sequential phases to validate test coverage and deployment readiness:
13
+
14
+ **PHASE 1 - REQUIREMENTS TRACEABILITY:** Create comprehensive traceability matrix mapping acceptance criteria to implemented tests, identify coverage gaps, and provide actionable recommendations.
15
+
16
+ **PHASE 2 - QUALITY GATE DECISION:** Use traceability results combined with test execution evidence to make gate decisions (PASS/CONCERNS/FAIL/WAIVED) that determine deployment readiness.
17
+
18
+ **Key Capabilities:**
19
+
20
+ - Map acceptance criteria to specific test cases across all levels (E2E, API, Component, Unit)
21
+ - Classify coverage status (FULL, PARTIAL, NONE, UNIT-ONLY, INTEGRATION-ONLY)
22
+ - Prioritize gaps by risk level (P0/P1/P2/P3) using test-priorities framework
23
+ - Apply deterministic decision rules based on coverage and test execution results
24
+ - Generate gate decisions with evidence and rationale
25
+ - Support waivers for business-approved exceptions
26
+ - Update workflow status and notify stakeholders
27
+
28
+ ---
29
+
30
+ ## Prerequisites
31
+
32
+ **Required (Phase 1):**
33
+
34
+ - Acceptance criteria (from story file OR provided inline)
35
+ - Implemented test suite (or acknowledge gaps to be addressed)
36
+
37
+ **Required (Phase 2 - if `enable_gate_decision: true`):**
38
+
39
+ - Test execution results (CI/CD test reports, pass/fail rates)
40
+ - Test design with risk priorities (P0/P1/P2/P3)
41
+
42
+ **Recommended:**
43
+
44
+ - `test-design.md` (for risk assessment and priority context)
45
+ - `nfr-assessment.md` (for release-level gates)
46
+ - `tech-spec.md` (for technical implementation context)
47
+ - Test framework configuration (playwright.config.ts, jest.config.js, etc.)
48
+
49
+ **Halt Conditions:**
50
+
51
+ - If story lacks any implemented tests AND no gaps are acknowledged, recommend running `*atdd` workflow first
52
+ - If acceptance criteria are completely missing, halt and request them
53
+ - If Phase 2 enabled but test execution results missing, warn and skip gate decision
54
+
55
+ Note: `*trace` never runs `*atdd` automatically; it only recommends running it when tests are missing.
56
+
57
+ ---
58
+
59
+ ## PHASE 1: REQUIREMENTS TRACEABILITY
60
+
61
+ This phase focuses on mapping requirements to tests, analyzing coverage, and identifying gaps.
62
+
63
+ ---
64
+
65
+ ### Step 1: Load Context and Knowledge Base
66
+
67
+ **Actions:**
68
+
69
+ 1. Load relevant knowledge fragments from `{project-root}/_bmad/bmm/testarch/tea-index.csv`:
70
+ - `test-priorities-matrix.md` - P0/P1/P2/P3 risk framework with automated priority calculation, risk-based mapping, tagging strategy (389 lines, 2 examples)
71
+ - `risk-governance.md` - Risk-based testing approach: 6 categories (TECH, SEC, PERF, DATA, BUS, OPS), automated scoring, gate decision engine, coverage traceability (625 lines, 4 examples)
72
+ - `probability-impact.md` - Risk scoring methodology: probability × impact matrix, automated classification, dynamic re-assessment, gate integration (604 lines, 4 examples)
73
+ - `test-quality.md` - Definition of Done for tests: deterministic, isolated with cleanup, explicit assertions, length/time limits (658 lines, 5 examples)
74
+ - `selective-testing.md` - Duplicate coverage patterns: tag-based, spec filters, diff-based selection, promotion rules (727 lines, 4 examples)
75
+
76
+ 2. Read story file (if provided):
77
+ - Extract acceptance criteria
78
+ - Identify story ID (e.g., 1.3)
79
+ - Note any existing test design or priority information
80
+
81
+ 3. Read related BMad artifacts (if available):
82
+ - `test-design.md` - Risk assessment and test priorities
83
+ - `tech-spec.md` - Technical implementation details
84
+ - `PRD.md` - Product requirements context
85
+
86
+ **Output:** Complete understanding of requirements, priorities, and existing context
87
+
88
+ ---
89
+
90
+ ### Step 2: Discover and Catalog Tests
91
+
92
+ **Actions:**
93
+
94
+ 1. Auto-discover test files related to the story:
95
+ - Search for test IDs (e.g., `1.3-E2E-001`, `1.3-UNIT-005`)
96
+ - Search for describe blocks mentioning feature name
97
+ - Search for file paths matching feature directory
98
+ - Use `glob` to find test files in `{test_dir}`
99
+
100
+ 2. Categorize tests by level:
101
+ - **E2E Tests**: Full user journeys through UI
102
+ - **API Tests**: HTTP contract and integration tests
103
+ - **Component Tests**: UI component behavior in isolation
104
+ - **Unit Tests**: Business logic and pure functions
105
+
106
+ 3. Extract test metadata:
107
+ - Test ID (if present)
108
+ - Describe/context blocks
109
+ - It blocks (individual test cases)
110
+ - Given-When-Then structure (if BDD)
111
+ - Assertions used
112
+ - Priority markers (P0/P1/P2/P3)
113
+
114
+ **Output:** Complete catalog of all tests for this feature
115
+
116
+ ---
117
+
118
+ ### Step 3: Map Criteria to Tests
119
+
120
+ **Actions:**
121
+
122
+ 1. For each acceptance criterion:
123
+ - Search for explicit references (test IDs, describe blocks mentioning criterion)
124
+ - Map to specific test files and it blocks
125
+ - Use Given-When-Then narrative to verify alignment
126
+ - Document test level (E2E, API, Component, Unit)
127
+
128
+ 2. Build traceability matrix:
129
+
130
+ ```
131
+ | Criterion ID | Description | Test ID | Test File | Test Level | Coverage Status |
132
+ | ------------ | ----------- | ----------- | ---------------- | ---------- | --------------- |
133
+ | AC-1 | User can... | 1.3-E2E-001 | e2e/auth.spec.ts | E2E | FULL |
134
+ ```
135
+
136
+ 3. Classify coverage status for each criterion:
137
+ - **FULL**: All scenarios validated at appropriate level(s)
138
+ - **PARTIAL**: Some coverage but missing edge cases or levels
139
+ - **NONE**: No test coverage at any level
140
+ - **UNIT-ONLY**: Only unit tests (missing integration/E2E validation)
141
+ - **INTEGRATION-ONLY**: Only API/Component tests (missing unit confidence)
142
+
143
+ 4. Check for duplicate coverage:
144
+ - Same behavior tested at multiple levels unnecessarily
145
+ - Flag violations of selective testing principles
146
+ - Recommend consolidation where appropriate
147
+
148
+ **Output:** Complete traceability matrix with coverage classifications
149
+
150
+ ---
151
+
152
+ ### Step 4: Analyze Gaps and Prioritize
153
+
154
+ **Actions:**
155
+
156
+ 1. Identify coverage gaps:
157
+ - List criteria with NONE, PARTIAL, UNIT-ONLY, or INTEGRATION-ONLY status
158
+ - Assign severity based on test-priorities framework:
159
+ - **CRITICAL**: P0 criteria without FULL coverage (blocks release)
160
+ - **HIGH**: P1 criteria without FULL coverage (PR blocker)
161
+ - **MEDIUM**: P2 criteria without FULL coverage (nightly test gap)
162
+ - **LOW**: P3 criteria without FULL coverage (acceptable gap)
163
+
164
+ 2. Recommend specific tests to add:
165
+ - Suggest test level (E2E, API, Component, Unit)
166
+ - Provide test description (Given-When-Then)
167
+ - Recommend test ID (e.g., `1.3-E2E-004`)
168
+ - Explain why this test is needed
169
+
170
+ 3. Calculate coverage metrics:
171
+ - Overall coverage percentage (criteria with FULL coverage / total criteria)
172
+ - P0 coverage percentage (critical paths)
173
+ - P1 coverage percentage (high priority)
174
+ - Coverage by level (E2E%, API%, Component%, Unit%)
175
+
176
+ 4. Check against quality gates:
177
+ - P0 coverage >= 100% (required)
178
+ - P1 coverage >= 90% (recommended)
179
+ - Overall coverage >= 80% (recommended)
180
+
181
+ **Output:** Prioritized gap analysis with actionable recommendations and coverage metrics
182
+
183
+ ---
184
+
185
+ ### Step 5: Verify Test Quality
186
+
187
+ **Actions:**
188
+
189
+ 1. For each mapped test, verify:
190
+ - Explicit assertions are present (not hidden in helpers)
191
+ - Test follows Given-When-Then structure
192
+ - No hard waits or sleeps
193
+ - Self-cleaning (test cleans up its data)
194
+ - File size < 300 lines
195
+ - Test duration < 90 seconds
196
+
197
+ 2. Flag quality issues:
198
+ - **BLOCKER**: Missing assertions, hard waits, flaky patterns
199
+ - **WARNING**: Large files, slow tests, unclear structure
200
+ - **INFO**: Style inconsistencies, missing documentation
201
+
202
+ 3. Reference knowledge fragments:
203
+ - `test-quality.md` for Definition of Done
204
+ - `fixture-architecture.md` for self-cleaning patterns
205
+ - `network-first.md` for Playwright best practices
206
+ - `data-factories.md` for test data patterns
207
+
208
+ **Output:** Quality assessment for each test with improvement recommendations
209
+
210
+ ---
211
+
212
+ ### Step 6: Generate Deliverables (Phase 1)
213
+
214
+ **Actions:**
215
+
216
+ 1. Create traceability matrix markdown file:
217
+ - Use template from `trace-template.md`
218
+ - Include full mapping table
219
+ - Add coverage status section
220
+ - Add gap analysis section
221
+ - Add quality assessment section
222
+ - Add recommendations section
223
+ - Save to `{output_folder}/traceability-matrix.md`
224
+
225
+ 2. Generate gate YAML snippet (if enabled):
226
+
227
+ ```yaml
228
+ traceability:
229
+ story_id: '1.3'
230
+ coverage:
231
+ overall: 85%
232
+ p0: 100%
233
+ p1: 90%
234
+ p2: 75%
235
+ gaps:
236
+ critical: 0
237
+ high: 1
238
+ medium: 2
239
+ status: 'PASS' # or "FAIL" if P0 < 100%
240
+ ```
241
+
242
+ 3. Create coverage badge/metric (if enabled):
243
+ - Generate badge markdown: `![Coverage](https://img.shields.io/badge/coverage-85%25-green)`
244
+ - Export metrics to JSON for CI/CD integration
245
+
246
+ 4. Update story file (if enabled):
247
+ - Add "Traceability" section to story markdown
248
+ - Link to traceability matrix
249
+ - Include coverage summary
250
+ - Add gate status
251
+
252
+ **Output:** Complete Phase 1 traceability deliverables
253
+
254
+ **Next:** If `enable_gate_decision: true`, proceed to Phase 2. Otherwise, workflow complete.
255
+
256
+ ---
257
+
258
+ ## PHASE 2: QUALITY GATE DECISION
259
+
260
+ This phase uses traceability results to make a quality gate decision (PASS/CONCERNS/FAIL/WAIVED) based on evidence and decision rules.
261
+
262
+ **When Phase 2 Runs:** Automatically after Phase 1 if `enable_gate_decision: true` (default: true)
263
+
264
+ **Skip Conditions:** If test execution results (`test_results`) not provided, warn and skip Phase 2.
265
+
266
+ ---
267
+
268
+ ### Step 7: Gather Quality Evidence
269
+
270
+ **Actions:**
271
+
272
+ 1. **Load Phase 1 traceability results** (inherited context):
273
+ - Coverage metrics (P0/P1/overall percentages)
274
+ - Gap analysis (missing/partial tests)
275
+ - Quality concerns (test quality flags)
276
+ - Traceability matrix
277
+
278
+ 2. **Load test execution results** (if `test_results` provided):
279
+ - Read CI/CD test reports (JUnit XML, TAP, JSON)
280
+ - Extract pass/fail counts by priority
281
+ - Calculate pass rates:
282
+ - **P0 pass rate**: `(P0 passed / P0 total) * 100`
283
+ - **P1 pass rate**: `(P1 passed / P1 total) * 100`
284
+ - **Overall pass rate**: `(All passed / All total) * 100`
285
+ - Identify failing tests and map to criteria
286
+
287
+ 3. **Load NFR assessment** (if `nfr_file` provided):
288
+ - Read `nfr-assessment.md` or similar
289
+ - Check critical NFR status (performance, security, scalability)
290
+ - Flag any critical NFR failures
291
+
292
+ 4. **Load supporting artifacts**:
293
+ - `test-design.md` → Risk priorities, DoD checklist
294
+ - `story-*.md` or `Epics.md` → Requirements context
295
+
296
+ 5. **Validate evidence freshness** (if `validate_evidence_freshness: true`):
297
+ - Check timestamps of test-design, traceability, NFR assessments
298
+ - Warn if artifacts are >7 days old
299
+
300
+ 6. **Check prerequisite workflows** (if `check_all_workflows_complete: true`):
301
+ - Verify test-design workflow complete
302
+ - Verify trace workflow complete (Phase 1)
303
+ - Verify nfr-assess workflow complete (if release-level gate)
304
+
305
+ **Output:** Consolidated evidence bundle with all quality signals
306
+
307
+ ---
308
+
309
+ ### Step 8: Apply Decision Rules
310
+
311
+ **If `decision_mode: "deterministic"`** (rule-based - default):
312
+
313
+ **Decision rules** (based on `workflow.yaml` thresholds):
314
+
315
+ 1. **PASS** if ALL of the following are true:
316
+ - P0 coverage ≥ `min_p0_coverage` (default: 100%)
317
+ - P1 coverage ≥ `min_p1_coverage` (default: 90%)
318
+ - Overall coverage ≥ `min_overall_coverage` (default: 80%)
319
+ - P0 test pass rate = `min_p0_pass_rate` (default: 100%)
320
+ - P1 test pass rate ≥ `min_p1_pass_rate` (default: 95%)
321
+ - Overall test pass rate ≥ `min_overall_pass_rate` (default: 90%)
322
+ - Critical NFRs passed (if `nfr_file` provided)
323
+ - No unresolved security issues ≤ `max_security_issues` (default: 0)
324
+ - No test quality red flags (hard waits, no assertions)
325
+
326
+ 2. **CONCERNS** if ANY of the following are true:
327
+ - P1 coverage 80-89% (below threshold but not critical)
328
+ - P1 test pass rate 90-94% (below threshold but not critical)
329
+ - Overall pass rate 85-89%
330
+ - P2 coverage <50% (informational)
331
+ - Some non-critical NFRs failing
332
+ - Minor test quality concerns (large test files, inferred mappings)
333
+ - **Note**: CONCERNS does NOT block deployment but requires acknowledgment
334
+
335
+ 3. **FAIL** if ANY of the following are true:
336
+ - P0 coverage <100% (missing critical tests)
337
+ - P0 test pass rate <100% (failing critical tests)
338
+ - P1 coverage <80% (significant gap)
339
+ - P1 test pass rate <90% (significant failures)
340
+ - Overall coverage <80%
341
+ - Overall pass rate <85%
342
+ - Critical NFRs failing (`max_critical_nfrs_fail` exceeded)
343
+ - Unresolved security issues (`max_security_issues` exceeded)
344
+ - Major test quality issues (tests with no assertions, pervasive hard waits)
345
+
346
+ 4. **WAIVED** (only if `allow_waivers: true`):
347
+ - Decision would be FAIL based on rules above
348
+ - Business stakeholder has approved waiver
349
+ - Waiver documented with:
350
+ - Justification (time constraint, known limitation, acceptable risk)
351
+ - Approver name and date
352
+ - Mitigation plan (follow-up stories, manual testing)
353
+ - Waiver evidence linked (email, Slack thread, ticket)
354
+
355
+ **Risk tolerance adjustments:**
356
+
357
+ - If `allow_p2_failures: true` → P2 test failures do NOT affect gate decision
358
+ - If `allow_p3_failures: true` → P3 test failures do NOT affect gate decision
359
+ - If `escalate_p1_failures: true` → P1 failures require explicit manager/lead approval
360
+
361
+ **If `decision_mode: "manual"`:**
362
+
363
+ - Present evidence summary to team
364
+ - Recommend decision based on rules above
365
+ - Team makes final call in meeting/chat
366
+ - Document decision with approver names
367
+
368
+ **Output:** Gate decision (PASS/CONCERNS/FAIL/WAIVED) with rule-based rationale
369
+
370
+ ---
371
+
372
+ ### Step 9: Document Decision and Evidence
373
+
374
+ **Actions:**
375
+
376
+ 1. **Create gate decision document**:
377
+ - Save to `gate_output_file` (default: `{output_folder}/gate-decision-{gate_type}-{story_id}.md`)
378
+ - Use structure below
379
+
380
+ 2. **Document structure**:
381
+
382
+ ```markdown
383
+ # Quality Gate Decision: {gate_type} {story_id/epic_num/release_version}
384
+
385
+ **Decision**: [PASS / CONCERNS / FAIL / WAIVED]
386
+ **Date**: {date}
387
+ **Decider**: {decision_mode} (deterministic | manual)
388
+ **Evidence Date**: {test_results_date}
389
+
390
+ ---
391
+
392
+ ## Summary
393
+
394
+ [1-2 sentence summary of decision and key factors]
395
+
396
+ ---
397
+
398
+ ## Decision Criteria
399
+
400
+ | Criterion | Threshold | Actual | Status |
401
+ | ----------------- | --------- | -------- | ------ |
402
+ | P0 Coverage | ≥100% | 100% | ✅ PASS |
403
+ | P1 Coverage | ≥90% | 88% | ⚠️ FAIL |
404
+ | Overall Coverage | ≥80% | 92% | ✅ PASS |
405
+ | P0 Pass Rate | 100% | 100% | ✅ PASS |
406
+ | P1 Pass Rate | ≥95% | 98% | ✅ PASS |
407
+ | Overall Pass Rate | ≥90% | 96% | ✅ PASS |
408
+ | Critical NFRs | All Pass | All Pass | ✅ PASS |
409
+ | Security Issues | 0 | 0 | ✅ PASS |
410
+
411
+ **Overall Status**: 7/8 criteria met → Decision: **CONCERNS**
412
+
413
+ ---
414
+
415
+ ## Evidence Summary
416
+
417
+ ### Test Coverage (from Phase 1 Traceability)
418
+
419
+ - **P0 Coverage**: 100% (5/5 criteria fully covered)
420
+ - **P1 Coverage**: 88% (7/8 criteria fully covered)
421
+ - **Overall Coverage**: 92% (12/13 criteria covered)
422
+ - **Gap**: AC-5 (P1) missing E2E test
423
+
424
+ ### Test Execution Results
425
+
426
+ - **P0 Pass Rate**: 100% (12/12 tests passed)
427
+ - **P1 Pass Rate**: 98% (45/46 tests passed)
428
+ - **Overall Pass Rate**: 96% (67/70 tests passed)
429
+ - **Failures**: 3 P2 tests (non-blocking)
430
+
431
+ ### Non-Functional Requirements
432
+
433
+ - Performance: ✅ PASS (response time <500ms)
434
+ - Security: ✅ PASS (no vulnerabilities)
435
+ - Scalability: ✅ PASS (handles 10K users)
436
+
437
+ ### Test Quality
438
+
439
+ - All tests have explicit assertions ✅
440
+ - No hard waits detected ✅
441
+ - Test files <300 lines ✅
442
+ - Test IDs follow convention ✅
443
+
444
+ ---
445
+
446
+ ## Decision Rationale
447
+
448
+ **Why CONCERNS (not PASS)**:
449
+
450
+ - P1 coverage at 88% is below 90% threshold
451
+ - AC-5 (P1 priority) missing E2E test for error handling scenario
452
+ - This is a known gap from test-design phase
453
+
454
+ **Why CONCERNS (not FAIL)**:
455
+
456
+ - P0 coverage is 100% (critical paths validated)
457
+ - Overall coverage is 92% (above 80% threshold)
458
+ - Test pass rate is excellent (96% overall)
459
+ - Gap is isolated to one P1 criterion (not systemic)
460
+
461
+ **Recommendation**:
462
+
463
+ - Acknowledge gap and proceed with deployment
464
+ - Add missing AC-5 E2E test in next sprint
465
+ - Create follow-up story: "Add E2E test for AC-5 error handling"
466
+
467
+ ---
468
+
469
+ ## Next Steps
470
+
471
+ - [ ] Create follow-up story for AC-5 E2E test
472
+ - [ ] Deploy to staging environment
473
+ - [ ] Monitor production for edge cases related to AC-5
474
+ - [ ] Update traceability matrix after follow-up test added
475
+
476
+ ---
477
+
478
+ ## References
479
+
480
+ - Traceability Matrix: `_bmad/output/traceability-matrix.md`
481
+ - Test Design: `_bmad/output/test-design-epic-2.md`
482
+ - Test Results: `ci-artifacts/test-report-2025-01-15.xml`
483
+ - NFR Assessment: `_bmad/output/nfr-assessment-release-1.2.md`
484
+ ```
485
+
486
+ 3. **Include evidence links** (if `require_evidence: true`):
487
+ - Link to traceability matrix
488
+ - Link to test execution reports (CI artifacts)
489
+ - Link to NFR assessment
490
+ - Link to test-design document
491
+ - Link to relevant PRs, commits, deployments
492
+
493
+ 4. **Waiver documentation** (if decision is WAIVED):
494
+ - Approver name and role (e.g., "Jane Doe, Engineering Manager")
495
+ - Approval date and method (e.g., "2025-01-15, Slack thread")
496
+ - Justification (e.g., "Time-boxed MVP, missing tests will be added in v1.1")
497
+ - Mitigation plan (e.g., "Manual testing by QA, follow-up stories created")
498
+ - Evidence link (e.g., "Slack: #engineering 2025-01-15 3:42pm")
499
+
500
+ **Output:** Complete gate decision document with evidence and rationale
501
+
502
+ ---
503
+
504
+ ### Step 10: Update Status Tracking and Notify
505
+
506
+ **Actions:**
507
+
508
+ 1. **Generate stakeholder notification** (if `notify_stakeholders: true`):
509
+ - Create concise summary message for team communication
510
+ - Include: Decision, key metrics, action items
511
+ - Format for Slack/email/chat:
512
+
513
+ ```
514
+ 🚦 Quality Gate Decision: Story 1.3 - User Login
515
+
516
+ Decision: ⚠️ CONCERNS
517
+ - P0 Coverage: ✅ 100%
518
+ - P1 Coverage: ⚠️ 88% (below 90%)
519
+ - Test Pass Rate: ✅ 96%
520
+
521
+ Action Required:
522
+ - Create follow-up story for AC-5 E2E test
523
+ - Deploy to staging for validation
524
+
525
+ Full Report: _bmad/output/gate-decision-story-1.3.md
526
+ ```
527
+
528
+ 2. **Request sign-off** (if `require_sign_off: true`):
529
+ - Prompt for named approver (tech lead, QA lead, PM)
530
+ - Document approver name and timestamp in gate decision
531
+ - Block until sign-off received (interactive prompt)
532
+
533
+ **Output:** Status tracking updated, stakeholders notified, sign-off obtained (if required)
534
+
535
+ **Workflow Complete**: Both Phase 1 (traceability) and Phase 2 (gate decision) deliverables generated.
536
+
537
+ ---
538
+
539
+ ## Decision Matrix (Quick Reference)
540
+
541
+ | Scenario | P0 Cov | P1 Cov | Overall Cov | P0 Pass | P1 Pass | Overall Pass | NFRs | Decision |
542
+ | --------------- | ----------------- | ------ | ----------- | ------- | ------- | ------------ | ---- | ------------ |
543
+ | All green | 100% | ≥90% | ≥80% | 100% | ≥95% | ≥90% | Pass | **PASS** |
544
+ | Minor gap | 100% | 80-89% | ≥80% | 100% | 90-94% | 85-89% | Pass | **CONCERNS** |
545
+ | Missing P0 | <100% | - | - | - | - | - | - | **FAIL** |
546
+ | P0 test fail | 100% | - | - | <100% | - | - | - | **FAIL** |
547
+ | P1 gap | 100% | <80% | - | 100% | - | - | - | **FAIL** |
548
+ | NFR fail | 100% | ≥90% | ≥80% | 100% | ≥95% | ≥90% | Fail | **FAIL** |
549
+ | Security issue | - | - | - | - | - | - | Yes | **FAIL** |
550
+ | Business waiver | [FAIL conditions] | - | - | - | - | - | - | **WAIVED** |
551
+
552
+ ---
553
+
554
+ ## Waiver Management
555
+
556
+ **When to use waivers:**
557
+
558
+ - Time-boxed MVP releases (known gaps, follow-up planned)
559
+ - Low-risk P1 gaps with mitigation (manual testing, monitoring)
560
+ - Technical debt acknowledged by product/engineering leadership
561
+ - External dependencies blocking test automation
562
+
563
+ **Waiver approval process:**
564
+
565
+ 1. Document gap and risk in gate decision
566
+ 2. Propose mitigation plan (manual testing, follow-up stories, monitoring)
567
+ 3. Request approval from stakeholder (EM, PM, QA lead)
568
+ 4. Link approval evidence (email, chat thread, meeting notes)
569
+ 5. Add waiver to gate decision document
570
+ 6. Create follow-up stories to close gaps
571
+
572
+ **Waiver does NOT apply to:**
573
+
574
+ - P0 gaps (always blocking)
575
+ - Critical security issues (always blocking)
576
+ - Critical NFR failures (performance, data integrity)
577
+
578
+ ---
579
+
580
+ ## Example Gate Decisions
581
+
582
+ ### Example 1: PASS (All Criteria Met)
583
+
584
+ ```
585
+ Decision: ✅ PASS
586
+
587
+ Summary: All quality criteria met. Story 1.3 is ready for production deployment.
588
+
589
+ Evidence:
590
+ - P0 Coverage: 100% (5/5 criteria)
591
+ - P1 Coverage: 95% (19/20 criteria)
592
+ - Overall Coverage: 92% (24/26 criteria)
593
+ - P0 Pass Rate: 100% (12/12 tests)
594
+ - P1 Pass Rate: 98% (45/46 tests)
595
+ - Overall Pass Rate: 96% (67/70 tests)
596
+ - NFRs: All pass (performance, security, scalability)
597
+
598
+ Action: Deploy to production ✅
599
+ ```
600
+
601
+ ### Example 2: CONCERNS (Minor Gap, Non-Blocking)
602
+
603
+ ```
604
+ Decision: ⚠️ CONCERNS
605
+
606
+ Summary: P1 coverage slightly below threshold (88% vs 90%). Recommend deploying with follow-up story.
607
+
608
+ Evidence:
609
+ - P0 Coverage: 100% ✅
610
+ - P1 Coverage: 88% ⚠️ (below 90%)
611
+ - Overall Coverage: 92% ✅
612
+ - Test Pass Rate: 96% ✅
613
+ - Gap: AC-5 (P1) missing E2E test
614
+
615
+ Action:
616
+ - Deploy to staging for validation
617
+ - Create follow-up story for AC-5 E2E test
618
+ - Monitor production for edge cases related to AC-5
619
+ ```
620
+
621
+ ### Example 3: FAIL (P0 Gap, Blocking)
622
+
623
+ ```
624
+ Decision: ❌ FAIL
625
+
626
+ Summary: P0 coverage incomplete. Missing critical validation test. BLOCKING deployment.
627
+
628
+ Evidence:
629
+ - P0 Coverage: 80% ❌ (4/5 criteria, AC-2 missing)
630
+ - AC-2: "User cannot login with invalid credentials" (P0 priority)
631
+ - No tests validate login security for invalid credentials
632
+ - This is a critical security gap
633
+
634
+ Action:
635
+ - Add P0 test for AC-2: 1.3-E2E-004 (invalid credentials)
636
+ - Re-run traceability after test added
637
+ - Re-evaluate gate decision after P0 coverage = 100%
638
+
639
+ Deployment BLOCKED until P0 gap resolved ❌
640
+ ```
641
+
642
+ ### Example 4: WAIVED (Business Decision)
643
+
644
+ ```
645
+ Decision: ⚠️ WAIVED
646
+
647
+ Summary: P1 coverage below threshold (75% vs 90%), but waived for MVP launch.
648
+
649
+ Evidence:
650
+ - P0 Coverage: 100% ✅
651
+ - P1 Coverage: 75% ❌ (below 90%)
652
+ - Gap: 5 P1 criteria missing E2E tests (error handling, edge cases)
653
+
654
+ Waiver:
655
+ - Approver: Jane Doe, Engineering Manager
656
+ - Date: 2025-01-15
657
+ - Justification: Time-boxed MVP for investor demo. Core functionality (P0) fully validated. P1 gaps are low-risk edge cases.
658
+ - Mitigation: Manual QA testing for P1 scenarios, follow-up stories created for automated tests in v1.1
659
+ - Evidence: Slack #engineering 2025-01-15 3:42pm
660
+
661
+ Action:
662
+ - Deploy to production with manual QA validation ✅
663
+ - Add 5 E2E tests for P1 gaps in v1.1 sprint
664
+ - Monitor production logs for edge case occurrences
665
+ ```
666
+
667
+ ---
668
+
669
+ ## Non-Prescriptive Approach
670
+
671
+ **Minimal Examples:** This workflow provides principles and patterns, not rigid templates. Teams should adapt the traceability and gate decision formats to their needs.
672
+
673
+ **Key Patterns to Follow:**
674
+
675
+ - Map criteria to tests explicitly (don't rely on inference alone)
676
+ - Prioritize by risk (P0 gaps are critical, P3 gaps are acceptable)
677
+ - Check coverage at appropriate levels (E2E for journeys, Unit for logic)
678
+ - Verify test quality (explicit assertions, no flakiness)
679
+ - Apply deterministic gate rules for consistency
680
+ - Document gate decisions with clear evidence
681
+ - Use waivers judiciously (business approved, mitigation planned)
682
+
683
+ **Extend as Needed:**
684
+
685
+ - Add custom coverage classifications
686
+ - Integrate with code coverage tools (Istanbul, NYC)
687
+ - Link to external traceability systems (JIRA, Azure DevOps)
688
+ - Add compliance or regulatory requirements
689
+ - Customize gate decision thresholds per project
690
+ - Add manual approval workflows for gate decisions
691
+
692
+ ---
693
+
694
+ ## Coverage Classification Details
695
+
696
+ ### FULL Coverage
697
+
698
+ - All scenarios validated at appropriate test level(s)
699
+ - Edge cases considered
700
+ - Both happy path and error paths tested
701
+ - Assertions are explicit and complete
702
+
703
+ ### PARTIAL Coverage
704
+
705
+ - Some scenarios validated but missing edge cases
706
+ - Only happy path tested (missing error paths)
707
+ - Assertions present but incomplete
708
+ - Coverage exists but needs enhancement
709
+
710
+ ### NONE Coverage
711
+
712
+ - No tests found for this criterion
713
+ - Complete gap requiring new tests
714
+ - Critical if P0/P1, acceptable if P3
715
+
716
+ ### UNIT-ONLY Coverage
717
+
718
+ - Only unit tests exist (business logic validated)
719
+ - Missing integration or E2E validation
720
+ - Risk: Implementation may not work end-to-end
721
+ - Recommendation: Add integration or E2E tests for critical paths
722
+
723
+ ### INTEGRATION-ONLY Coverage
724
+
725
+ - Only API or Component tests exist
726
+ - Missing unit test confidence for business logic
727
+ - Risk: Logic errors may not be caught quickly
728
+ - Recommendation: Add unit tests for complex algorithms or state machines
729
+
730
+ ---
731
+
732
+ ## Duplicate Coverage Detection
733
+
734
+ Use selective testing principles from `selective-testing.md`:
735
+
736
+ **Acceptable Overlap:**
737
+
738
+ - Unit tests for business logic + E2E tests for user journey (different aspects)
739
+ - API tests for contract + E2E tests for full workflow (defense in depth for critical paths)
740
+
741
+ **Unacceptable Duplication:**
742
+
743
+ - Same validation at multiple levels (e.g., E2E testing math logic better suited for unit tests)
744
+ - Multiple E2E tests covering identical user path
745
+ - Component tests duplicating unit test logic
746
+
747
+ **Recommendation Pattern:**
748
+
749
+ - Test logic at unit level
750
+ - Test integration at API/Component level
751
+ - Test user experience at E2E level
752
+ - Avoid testing framework behavior at any level
753
+
754
+ ---
755
+
756
+ ## Integration with BMad Artifacts
757
+
758
+ ### With test-design.md
759
+
760
+ - Use risk assessment to prioritize gap remediation
761
+ - Reference test priorities (P0/P1/P2/P3) for severity classification and gate decision
762
+ - Align traceability with originally planned test coverage
763
+
764
+ ### With tech-spec.md
765
+
766
+ - Understand technical implementation details
767
+ - Map criteria to specific code modules
768
+ - Verify tests cover technical edge cases
769
+
770
+ ### With PRD.md
771
+
772
+ - Understand full product context
773
+ - Verify acceptance criteria align with product goals
774
+ - Check for unstated requirements that need coverage
775
+
776
+ ### With nfr-assessment.md
777
+
778
+ - Load non-functional validation results for gate decision
779
+ - Check critical NFR status (performance, security, scalability)
780
+ - Include NFR pass/fail in gate decision criteria
781
+
782
+ ---
783
+
784
+ ## Quality Gates (Phase 1 Recommendations)
785
+
786
+ ### P0 Coverage (Critical Paths)
787
+
788
+ - **Requirement:** 100% FULL coverage
789
+ - **Severity:** BLOCKER if not met
790
+ - **Action:** Do not release until P0 coverage is complete
791
+
792
+ ### P1 Coverage (High Priority)
793
+
794
+ - **Requirement:** 90% FULL coverage
795
+ - **Severity:** HIGH if not met
796
+ - **Action:** Block PR merge until addressed
797
+
798
+ ### P2 Coverage (Medium Priority)
799
+
800
+ - **Requirement:** No strict requirement (recommended 80%)
801
+ - **Severity:** MEDIUM if gaps exist
802
+ - **Action:** Address in nightly test improvements
803
+
804
+ ### P3 Coverage (Low Priority)
805
+
806
+ - **Requirement:** No requirement
807
+ - **Severity:** LOW if gaps exist
808
+ - **Action:** Optional - add if time permits
809
+
810
+ ---
811
+
812
+ ## Example Traceability Matrix
813
+
814
+ ````markdown
815
+ # Traceability Matrix - Story 1.3
816
+
817
+ **Story:** User Authentication
818
+ **Date:** 2025-10-14
819
+ **Status:** 85% Coverage (1 HIGH gap)
820
+
821
+ ## Coverage Summary
822
+
823
+ | Priority | Total Criteria | FULL Coverage | Coverage % | Status |
824
+ | --------- | -------------- | ------------- | ---------- | ------ |
825
+ | P0 | 3 | 3 | 100% | ✅ PASS |
826
+ | P1 | 5 | 4 | 80% | ⚠️ WARN |
827
+ | P2 | 4 | 3 | 75% | ✅ PASS |
828
+ | P3 | 2 | 1 | 50% | ✅ PASS |
829
+ | **Total** | **14** | **11** | **79%** | ⚠️ WARN |
830
+
831
+ ## Detailed Mapping
832
+
833
+ ### AC-1: User can login with email and password (P0)
834
+
835
+ - **Coverage:** FULL ✅
836
+ - **Tests:**
837
+ - `1.3-E2E-001` - tests/e2e/auth.spec.ts:12
838
+ - Given: User has valid credentials
839
+ - When: User submits login form
840
+ - Then: User is redirected to dashboard
841
+ - `1.3-UNIT-001` - tests/unit/auth-service.spec.ts:8
842
+ - Given: Valid email and password hash
843
+ - When: validateCredentials is called
844
+ - Then: Returns user object
845
+
846
+ ### AC-2: User sees error for invalid credentials (P0)
847
+
848
+ - **Coverage:** FULL ✅
849
+ - **Tests:**
850
+ - `1.3-E2E-002` - tests/e2e/auth.spec.ts:28
851
+ - Given: User has invalid password
852
+ - When: User submits login form
853
+ - Then: Error message is displayed
854
+ - `1.3-UNIT-002` - tests/unit/auth-service.spec.ts:18
855
+ - Given: Invalid password hash
856
+ - When: validateCredentials is called
857
+ - Then: Throws AuthenticationError
858
+
859
+ ### AC-3: User can reset password via email (P1)
860
+
861
+ - **Coverage:** PARTIAL ⚠️
862
+ - **Tests:**
863
+ - `1.3-E2E-003` - tests/e2e/auth.spec.ts:44
864
+ - Given: User requests password reset
865
+ - When: User clicks reset link
866
+ - Then: User can set new password
867
+ - **Gaps:**
868
+ - Missing: Email delivery validation
869
+ - Missing: Expired token handling
870
+ - Missing: Unit test for token generation
871
+ - **Recommendation:** Add `1.3-API-001` for email service integration and `1.3-UNIT-003` for token logic
872
+
873
+ ## Gap Analysis
874
+
875
+ ### Critical Gaps (BLOCKER)
876
+
877
+ - None ✅
878
+
879
+ ### High Priority Gaps (PR BLOCKER)
880
+
881
+ 1. **AC-3: Password reset email edge cases**
882
+ - Missing tests for expired tokens, invalid tokens, email failures
883
+ - Recommend: `1.3-API-001` (email service integration) and `1.3-E2E-004` (error paths)
884
+ - Impact: Users may not be able to recover accounts in error scenarios
885
+
886
+ ### Medium Priority Gaps (Nightly)
887
+
888
+ 1. **AC-7: Session timeout handling** - UNIT-ONLY coverage (missing E2E validation)
889
+
890
+ ## Quality Assessment
891
+
892
+ ### Tests with Issues
893
+
894
+ - `1.3-E2E-001` ⚠️ - 145 seconds (exceeds 90s target) - Optimize fixture setup
895
+ - `1.3-UNIT-005` ⚠️ - 320 lines (exceeds 300 line limit) - Split into multiple test files
896
+
897
+ ### Tests Passing Quality Gates
898
+
899
+ - 11/13 tests (85%) meet all quality criteria ✅
900
+
901
+ ## Gate YAML Snippet
902
+
903
+ ```yaml
904
+ traceability:
905
+ story_id: '1.3'
906
+ coverage:
907
+ overall: 79%
908
+ p0: 100%
909
+ p1: 80%
910
+ p2: 75%
911
+ p3: 50%
912
+ gaps:
913
+ critical: 0
914
+ high: 1
915
+ medium: 1
916
+ low: 1
917
+ status: 'WARN' # P1 coverage below 90% threshold
918
+ recommendations:
919
+ - 'Add 1.3-API-001 for email service integration'
920
+ - 'Add 1.3-E2E-004 for password reset error paths'
921
+ - 'Optimize 1.3-E2E-001 performance (145s → <90s)'
922
+ ```
923
+ ````
924
+
925
+ ## Recommendations
926
+
927
+ 1. **Address High Priority Gap:** Add password reset edge case tests before PR merge
928
+ 2. **Optimize Slow Test:** Refactor `1.3-E2E-001` to use faster fixture setup
929
+ 3. **Split Large Test:** Break `1.3-UNIT-005` into focused test files
930
+ 4. **Enhance P2 Coverage:** Add E2E validation for session timeout (currently UNIT-ONLY)
931
+
932
+ ```
933
+
934
+ ---
935
+
936
+ ## Validation Checklist
937
+
938
+ Before completing this workflow, verify:
939
+
940
+ **Phase 1 (Traceability):**
941
+ - ✅ All acceptance criteria are mapped to tests (or gaps are documented)
942
+ - ✅ Coverage status is classified (FULL, PARTIAL, NONE, UNIT-ONLY, INTEGRATION-ONLY)
943
+ - ✅ Gaps are prioritized by risk level (P0/P1/P2/P3)
944
+ - ✅ P0 coverage is 100% or blockers are documented
945
+ - ✅ Duplicate coverage is identified and flagged
946
+ - ✅ Test quality is assessed (assertions, structure, performance)
947
+ - ✅ Traceability matrix is generated and saved
948
+
949
+ **Phase 2 (Gate Decision - if enabled):**
950
+ - ✅ Test execution results loaded and pass rates calculated
951
+ - ✅ NFR assessment results loaded (if applicable)
952
+ - ✅ Decision rules applied consistently (PASS/CONCERNS/FAIL/WAIVED)
953
+ - ✅ Gate decision document created with evidence
954
+ - ✅ Waiver documented if decision is WAIVED (approver, justification, mitigation)
955
+ - ✅ Stakeholders notified (if enabled)
956
+
957
+ ---
958
+
959
+ ## Notes
960
+
961
+ **Phase 1 (Traceability):**
962
+ - **Explicit Mapping:** Require tests to reference criteria explicitly (test IDs, describe blocks) for maintainability
963
+ - **Risk-Based Prioritization:** Use test-priorities framework (P0/P1/P2/P3) to determine gap severity
964
+ - **Quality Over Quantity:** Better to have fewer high-quality tests with FULL coverage than many low-quality tests with PARTIAL coverage
965
+ - **Selective Testing:** Avoid duplicate coverage - test each behavior at the appropriate level only
966
+
967
+ **Phase 2 (Gate Decision):**
968
+ - **Deterministic Rules:** Use consistent thresholds (P0=100%, P1≥90%, overall≥80%) for objectivity
969
+ - **Evidence-Based:** Every decision must cite specific metrics (coverage %, pass rates, NFRs)
970
+ - **Waiver Discipline:** Waivers require approver name, justification, mitigation plan, and evidence link
971
+ - **Non-Blocking CONCERNS:** Use CONCERNS for minor gaps that don't justify blocking deployment (e.g., P1 at 88% vs 90%)
972
+ - **Automate in CI/CD:** Generate YAML snippets that can be consumed by CI/CD pipelines for automated quality gates
973
+
974
+ ---
975
+
976
+ ## Troubleshooting
977
+
978
+ ### "No tests found for this story"
979
+ - Run `*atdd` workflow first to generate failing acceptance tests
980
+ - Check test file naming conventions (may not match story ID pattern)
981
+ - Verify test directory path is correct
982
+
983
+ ### "Cannot determine coverage status"
984
+ - Tests may lack explicit mapping to criteria (no test IDs, unclear describe blocks)
985
+ - Review test structure and add Given-When-Then narrative
986
+ - Add test IDs in format: `{STORY_ID}-{LEVEL}-{SEQ}` (e.g., 1.3-E2E-001)
987
+
988
+ ### "P0 coverage below 100%"
989
+ - This is a **BLOCKER** - do not release
990
+ - Identify missing P0 tests in gap analysis
991
+ - Run `*atdd` workflow to generate missing tests
992
+ - Verify with stakeholders that P0 classification is correct
993
+
994
+ ### "Duplicate coverage detected"
995
+ - Review selective testing principles in `selective-testing.md`
996
+ - Determine if overlap is acceptable (defense in depth) or wasteful (same validation at multiple levels)
997
+ - Consolidate tests at appropriate level (logic → unit, integration → API, journey → E2E)
998
+
999
+ ### "Test execution results missing" (Phase 2)
1000
+ - Phase 2 gate decision requires `test_results` (CI/CD test reports)
1001
+ - If missing, Phase 2 will be skipped with warning
1002
+ - Provide JUnit XML, TAP, or JSON test report path via `test_results` variable
1003
+
1004
+ ### "Gate decision is FAIL but deployment needed urgently"
1005
+ - Request business waiver (if `allow_waivers: true`)
1006
+ - Document approver, justification, mitigation plan
1007
+ - Create follow-up stories to address gaps
1008
+ - Use WAIVED decision only for non-P0 gaps
1009
+
1010
+ ---
1011
+
1012
+ ## Related Workflows
1013
+
1014
+ **Prerequisites:**
1015
+ - `testarch-test-design` - Define test priorities (P0/P1/P2/P3) before tracing (required for Phase 2)
1016
+ - `testarch-atdd` or `testarch-automate` - Generate tests before tracing coverage
1017
+
1018
+ **Complements:**
1019
+ - `testarch-nfr-assess` - Non-functional requirements validation (recommended for release gates)
1020
+ - `testarch-test-review` - Review test quality issues flagged in traceability
1021
+
1022
+ **Next Steps:**
1023
+ - If gate decision is PASS/CONCERNS → Deploy and monitor
1024
+ - If gate decision is FAIL → Add missing tests, re-run trace workflow
1025
+ - If gate decision is WAIVED → Deploy with mitigation, create follow-up stories
1026
+
1027
+ ---
1028
+
1029
+ <!-- Powered by BMAD-CORE™ -->
1030
+ ```