bmad-method 5.1.2 → 6.0.0-Beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (739) hide show
  1. package/.coderabbit.yaml +40 -0
  2. package/.github/CODE_OF_CONDUCT.md +128 -0
  3. package/.github/FUNDING.yaml +2 -2
  4. package/.github/ISSUE_TEMPLATE/config.yaml +8 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.md +11 -11
  6. package/.github/ISSUE_TEMPLATE/issue.md +32 -0
  7. package/.github/scripts/discord-helpers.sh +34 -0
  8. package/.github/workflows/discord.yaml +82 -17
  9. package/.github/workflows/docs.yaml +63 -0
  10. package/.github/workflows/manual-release.yaml +40 -20
  11. package/.github/workflows/quality.yaml +115 -0
  12. package/.husky/pre-commit +17 -0
  13. package/.markdownlint-cli2.yaml +41 -0
  14. package/.nvmrc +1 -0
  15. package/.prettierignore +9 -0
  16. package/.vscode/settings.json +38 -10
  17. package/CHANGELOG.md +1167 -372
  18. package/CNAME +1 -0
  19. package/CONTRIBUTING.md +100 -142
  20. package/CONTRIBUTORS.md +32 -0
  21. package/LICENSE +10 -1
  22. package/README.md +67 -170
  23. package/SECURITY.md +85 -0
  24. package/TRADEMARK.md +55 -0
  25. package/Wordmark.png +0 -0
  26. package/banner-bmad-method.png +0 -0
  27. package/docs/404.md +9 -0
  28. package/docs/_STYLE_GUIDE.md +367 -0
  29. package/docs/downloads.md +74 -0
  30. package/docs/explanation/advanced-elicitation.md +24 -0
  31. package/docs/explanation/adversarial-review.md +57 -0
  32. package/docs/explanation/brainstorming.md +31 -0
  33. package/docs/explanation/brownfield-faq.md +55 -0
  34. package/docs/explanation/party-mode.md +57 -0
  35. package/docs/explanation/preventing-agent-conflicts.md +110 -0
  36. package/docs/explanation/quick-flow.md +27 -0
  37. package/docs/explanation/why-solutioning-matters.md +75 -0
  38. package/docs/how-to/brownfield/index.md +84 -0
  39. package/docs/how-to/brownfield/quick-fix-in-brownfield.md +76 -0
  40. package/docs/how-to/customize-bmad.md +158 -0
  41. package/docs/how-to/get-answers-about-bmad.md +102 -0
  42. package/docs/how-to/install-bmad.md +82 -0
  43. package/docs/how-to/shard-large-documents.md +101 -0
  44. package/docs/how-to/upgrade-to-v6.md +131 -0
  45. package/docs/index.md +56 -0
  46. package/docs/reference/workflow-map.md +83 -0
  47. package/docs/tea/explanation/engagement-models.md +710 -0
  48. package/docs/tea/explanation/fixture-architecture.md +457 -0
  49. package/docs/tea/explanation/knowledge-base-system.md +554 -0
  50. package/docs/tea/explanation/network-first-patterns.md +853 -0
  51. package/docs/tea/explanation/risk-based-testing.md +586 -0
  52. package/docs/tea/explanation/tea-overview.md +410 -0
  53. package/docs/tea/explanation/test-quality-standards.md +907 -0
  54. package/docs/tea/explanation/testing-as-engineering.md +112 -0
  55. package/docs/tea/glossary/index.md +159 -0
  56. package/docs/tea/how-to/brownfield/use-tea-for-enterprise.md +525 -0
  57. package/docs/tea/how-to/brownfield/use-tea-with-existing-tests.md +577 -0
  58. package/docs/tea/how-to/customization/enable-tea-mcp-enhancements.md +424 -0
  59. package/docs/tea/how-to/customization/integrate-playwright-utils.md +813 -0
  60. package/docs/tea/how-to/workflows/run-atdd.md +436 -0
  61. package/docs/tea/how-to/workflows/run-automate.md +653 -0
  62. package/docs/tea/how-to/workflows/run-nfr-assess.md +679 -0
  63. package/docs/tea/how-to/workflows/run-test-design.md +135 -0
  64. package/docs/tea/how-to/workflows/run-test-review.md +605 -0
  65. package/docs/tea/how-to/workflows/run-trace.md +883 -0
  66. package/docs/tea/how-to/workflows/setup-ci.md +712 -0
  67. package/docs/tea/how-to/workflows/setup-test-framework.md +98 -0
  68. package/docs/tea/reference/commands.md +276 -0
  69. package/docs/tea/reference/configuration.md +678 -0
  70. package/docs/tea/reference/knowledge-base.md +340 -0
  71. package/docs/tea/tutorials/tea-lite-quickstart.md +444 -0
  72. package/docs/tutorials/getting-started.md +205 -0
  73. package/eslint.config.mjs +42 -9
  74. package/package.json +50 -38
  75. package/prettier.config.mjs +1 -1
  76. package/src/bmm/_module-installer/installer.js +48 -0
  77. package/src/bmm/agents/analyst.agent.yaml +36 -0
  78. package/src/bmm/agents/architect.agent.yaml +28 -0
  79. package/src/bmm/agents/dev.agent.yaml +38 -0
  80. package/src/bmm/agents/pm.agent.yaml +46 -0
  81. package/src/bmm/agents/quick-flow-solo-dev.agent.yaml +32 -0
  82. package/src/bmm/agents/sm.agent.yaml +36 -0
  83. package/src/bmm/agents/tea.agent.yaml +63 -0
  84. package/src/bmm/agents/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
  85. package/src/bmm/agents/tech-writer/tech-writer.agent.yaml +45 -0
  86. package/src/bmm/agents/ux-designer.agent.yaml +26 -0
  87. package/src/bmm/data/project-context-template.md +26 -0
  88. package/src/bmm/module-help.csv +32 -0
  89. package/src/bmm/module.yaml +44 -0
  90. package/src/bmm/teams/default-party.csv +21 -0
  91. package/src/bmm/teams/team-fullstack.yaml +12 -0
  92. package/src/bmm/testarch/knowledge/adr-quality-readiness-checklist.md +350 -0
  93. package/src/bmm/testarch/knowledge/api-request.md +442 -0
  94. package/src/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
  95. package/src/bmm/testarch/knowledge/auth-session.md +552 -0
  96. package/src/bmm/testarch/knowledge/burn-in.md +273 -0
  97. package/src/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  98. package/src/bmm/testarch/knowledge/component-tdd.md +486 -0
  99. package/src/bmm/testarch/knowledge/contract-testing.md +957 -0
  100. package/src/bmm/testarch/knowledge/data-factories.md +500 -0
  101. package/src/bmm/testarch/knowledge/email-auth.md +721 -0
  102. package/src/bmm/testarch/knowledge/error-handling.md +725 -0
  103. package/src/bmm/testarch/knowledge/feature-flags.md +750 -0
  104. package/src/bmm/testarch/knowledge/file-utils.md +463 -0
  105. package/src/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  106. package/src/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  107. package/src/bmm/testarch/knowledge/intercept-network-call.md +430 -0
  108. package/src/bmm/testarch/knowledge/log.md +429 -0
  109. package/src/bmm/testarch/knowledge/network-error-monitor.md +405 -0
  110. package/src/bmm/testarch/knowledge/network-first.md +486 -0
  111. package/src/bmm/testarch/knowledge/network-recorder.md +527 -0
  112. package/src/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  113. package/src/bmm/testarch/knowledge/overview.md +286 -0
  114. package/src/bmm/testarch/knowledge/playwright-config.md +730 -0
  115. package/src/bmm/testarch/knowledge/probability-impact.md +601 -0
  116. package/src/bmm/testarch/knowledge/recurse.md +421 -0
  117. package/src/bmm/testarch/knowledge/risk-governance.md +615 -0
  118. package/src/bmm/testarch/knowledge/selective-testing.md +732 -0
  119. package/src/bmm/testarch/knowledge/selector-resilience.md +527 -0
  120. package/src/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  121. package/src/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  122. package/src/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  123. package/src/bmm/testarch/knowledge/test-quality.md +664 -0
  124. package/src/bmm/testarch/knowledge/timing-debugging.md +372 -0
  125. package/src/bmm/testarch/knowledge/visual-debugging.md +524 -0
  126. package/src/bmm/testarch/tea-index.csv +35 -0
  127. package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  128. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  129. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  130. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  131. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  132. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  133. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  134. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
  135. package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
  136. package/src/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  137. package/src/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  138. package/src/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  139. package/src/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  140. package/src/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  141. package/src/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  142. package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  143. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  144. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
  145. package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  146. package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  147. package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  148. package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  149. package/src/bmm/workflows/1-analysis/research/research.template.md +29 -0
  150. package/src/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  151. package/src/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  152. package/src/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  153. package/src/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  154. package/src/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
  155. package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  156. package/src/bmm/workflows/1-analysis/research/workflow.md +173 -0
  157. package/src/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +13 -0
  158. package/src/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  159. package/src/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  160. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
  161. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +153 -0
  162. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
  163. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
  164. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
  165. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
  166. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
  167. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
  168. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
  169. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
  170. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
  171. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
  172. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
  173. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
  174. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  175. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
  176. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
  177. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
  178. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +218 -0
  179. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
  180. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
  181. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
  182. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  183. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
  184. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
  185. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  186. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  187. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
  188. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
  189. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  190. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
  191. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
  192. package/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
  193. package/src/bmm/workflows/2-plan-workflows/create-prd/validation-report-prd-workflow.md +433 -0
  194. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow.md +150 -0
  195. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  196. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  197. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  198. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  199. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  200. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  201. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  202. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  203. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  204. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  205. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  206. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  207. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  208. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  209. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
  210. package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  211. package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
  212. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
  213. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
  214. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
  215. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
  216. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
  217. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +135 -0
  218. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  219. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
  220. package/src/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  221. package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
  222. package/src/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  223. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  224. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
  225. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  226. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
  227. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  228. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  229. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  230. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  231. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
  232. package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
  233. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  234. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  235. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  236. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
  237. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  238. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
  239. package/src/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  240. package/src/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  241. package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +51 -0
  242. package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  243. package/src/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
  244. package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +60 -0
  245. package/src/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  246. package/src/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
  247. package/src/bmm/workflows/4-implementation/create-story/template.md +49 -0
  248. package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +61 -0
  249. package/src/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  250. package/src/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  251. package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +27 -0
  252. package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
  253. package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +58 -0
  254. package/src/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  255. package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
  256. package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  257. package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +54 -0
  258. package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
  259. package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +36 -0
  260. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +176 -0
  261. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  262. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
  263. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  264. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  265. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +149 -0
  266. package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
  267. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +192 -0
  268. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +145 -0
  269. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
  270. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +201 -0
  271. package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  272. package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  273. package/src/bmm/workflows/document-project/checklist.md +245 -0
  274. package/src/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  275. package/src/bmm/workflows/document-project/instructions.md +221 -0
  276. package/src/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  277. package/src/bmm/workflows/document-project/templates/index-template.md +169 -0
  278. package/src/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  279. package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  280. package/src/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  281. package/src/bmm/workflows/document-project/workflow.yaml +30 -0
  282. package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  283. package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  284. package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  285. package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  286. package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
  287. package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
  288. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
  289. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
  290. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +27 -0
  291. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
  292. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
  293. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +27 -0
  294. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
  295. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
  296. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +27 -0
  297. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
  298. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
  299. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +27 -0
  300. package/src/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  301. package/src/bmm/workflows/testarch/atdd/checklist.md +374 -0
  302. package/src/bmm/workflows/testarch/atdd/instructions.md +806 -0
  303. package/src/bmm/workflows/testarch/atdd/workflow.yaml +47 -0
  304. package/src/bmm/workflows/testarch/automate/checklist.md +582 -0
  305. package/src/bmm/workflows/testarch/automate/instructions.md +1324 -0
  306. package/src/bmm/workflows/testarch/automate/workflow.yaml +54 -0
  307. package/src/bmm/workflows/testarch/ci/checklist.md +247 -0
  308. package/src/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -0
  309. package/src/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
  310. package/src/bmm/workflows/testarch/ci/instructions.md +536 -0
  311. package/src/bmm/workflows/testarch/ci/workflow.yaml +47 -0
  312. package/src/bmm/workflows/testarch/framework/checklist.md +320 -0
  313. package/src/bmm/workflows/testarch/framework/instructions.md +481 -0
  314. package/src/bmm/workflows/testarch/framework/workflow.yaml +49 -0
  315. package/src/bmm/workflows/testarch/nfr-assess/checklist.md +407 -0
  316. package/src/bmm/workflows/testarch/nfr-assess/instructions.md +726 -0
  317. package/src/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +461 -0
  318. package/src/bmm/workflows/testarch/nfr-assess/workflow.yaml +49 -0
  319. package/src/bmm/workflows/testarch/test-design/checklist.md +407 -0
  320. package/src/bmm/workflows/testarch/test-design/instructions.md +1158 -0
  321. package/src/bmm/workflows/testarch/test-design/test-design-architecture-template.md +213 -0
  322. package/src/bmm/workflows/testarch/test-design/test-design-qa-template.md +286 -0
  323. package/src/bmm/workflows/testarch/test-design/test-design-template.md +294 -0
  324. package/src/bmm/workflows/testarch/test-design/workflow.yaml +71 -0
  325. package/src/bmm/workflows/testarch/test-review/checklist.md +472 -0
  326. package/src/bmm/workflows/testarch/test-review/instructions.md +628 -0
  327. package/src/bmm/workflows/testarch/test-review/test-review-template.md +390 -0
  328. package/src/bmm/workflows/testarch/test-review/workflow.yaml +48 -0
  329. package/src/bmm/workflows/testarch/trace/checklist.md +642 -0
  330. package/src/bmm/workflows/testarch/trace/instructions.md +1030 -0
  331. package/src/bmm/workflows/testarch/trace/trace-template.md +675 -0
  332. package/src/bmm/workflows/testarch/trace/workflow.yaml +57 -0
  333. package/src/core/_module-installer/installer.js +60 -0
  334. package/src/core/agents/bmad-master.agent.yaml +29 -0
  335. package/src/core/module-help.csv +9 -0
  336. package/src/core/module.yaml +25 -0
  337. package/src/core/resources/excalidraw/README.md +160 -0
  338. package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  339. package/src/core/resources/excalidraw/library-loader.md +50 -0
  340. package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
  341. package/src/core/tasks/editorial-review-prose.xml +100 -0
  342. package/src/core/tasks/editorial-review-structure.xml +209 -0
  343. package/src/core/tasks/help.md +62 -0
  344. package/src/core/tasks/index-docs.xml +65 -0
  345. package/src/core/tasks/review-adversarial-general.xml +48 -0
  346. package/src/core/tasks/shard-doc.xml +109 -0
  347. package/src/core/tasks/workflow.xml +235 -0
  348. package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
  349. package/src/core/workflows/advanced-elicitation/workflow.xml +117 -0
  350. package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
  351. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  352. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  353. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  354. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  355. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  356. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  357. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  358. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  359. package/src/core/workflows/brainstorming/template.md +15 -0
  360. package/src/core/workflows/brainstorming/workflow.md +58 -0
  361. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  362. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  363. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +157 -0
  364. package/src/core/workflows/party-mode/workflow.md +194 -0
  365. package/src/utility/agent-components/activation-rules.txt +6 -0
  366. package/src/utility/agent-components/activation-steps.txt +14 -0
  367. package/src/utility/agent-components/agent-command-header.md +1 -0
  368. package/src/utility/agent-components/agent.customize.template.yaml +41 -0
  369. package/src/utility/agent-components/handler-action.txt +4 -0
  370. package/src/utility/agent-components/handler-data.txt +5 -0
  371. package/src/utility/agent-components/handler-exec.txt +6 -0
  372. package/src/utility/agent-components/handler-multi.txt +14 -0
  373. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  374. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  375. package/src/utility/agent-components/handler-workflow.txt +10 -0
  376. package/src/utility/agent-components/menu-handlers.txt +6 -0
  377. package/test/README.md +295 -0
  378. package/test/adversarial-review-tests/README.md +56 -0
  379. package/test/adversarial-review-tests/sample-content.md +46 -0
  380. package/test/adversarial-review-tests/test-cases.yaml +103 -0
  381. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +27 -0
  382. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +30 -0
  383. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +22 -0
  384. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +20 -0
  385. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +25 -0
  386. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +24 -0
  387. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +25 -0
  388. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +25 -0
  389. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +25 -0
  390. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +31 -0
  391. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +25 -0
  392. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +25 -0
  393. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +25 -0
  394. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +25 -0
  395. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
  396. package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
  397. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +27 -0
  398. package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
  399. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +24 -0
  400. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +27 -0
  401. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +27 -0
  402. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +24 -0
  403. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +29 -0
  404. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +31 -0
  405. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +28 -0
  406. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +28 -0
  407. package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
  408. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +28 -0
  409. package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
  410. package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
  411. package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
  412. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +24 -0
  413. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +22 -0
  414. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +27 -0
  415. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +31 -0
  416. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +22 -0
  417. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +38 -0
  418. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +24 -0
  419. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +31 -0
  420. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +34 -0
  421. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +24 -0
  422. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +24 -0
  423. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +24 -0
  424. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +24 -0
  425. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +23 -0
  426. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +24 -0
  427. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +24 -0
  428. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +24 -0
  429. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +22 -0
  430. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +28 -0
  431. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +30 -0
  432. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +24 -0
  433. package/test/test-agent-schema.js +387 -0
  434. package/test/test-cli-integration.sh +159 -0
  435. package/test/test-installation-components.js +214 -0
  436. package/test/unit-test-schema.js +133 -0
  437. package/tools/bmad-npx-wrapper.js +11 -12
  438. package/tools/build-docs.js +577 -0
  439. package/tools/cli/README.md +7 -0
  440. package/tools/cli/bmad-cli.js +58 -0
  441. package/tools/cli/commands/install.js +87 -0
  442. package/tools/cli/commands/status.js +65 -0
  443. package/tools/cli/external-official-modules.yaml +44 -0
  444. package/tools/cli/installers/install-messages.yaml +58 -0
  445. package/tools/cli/installers/lib/core/config-collector.js +1079 -0
  446. package/tools/cli/installers/lib/core/custom-module-cache.js +259 -0
  447. package/tools/cli/installers/lib/core/dependency-resolver.js +739 -0
  448. package/tools/cli/installers/lib/core/detector.js +223 -0
  449. package/tools/cli/installers/lib/core/ide-config-manager.js +156 -0
  450. package/tools/cli/installers/lib/core/installer.js +2826 -0
  451. package/tools/cli/installers/lib/core/manifest-generator.js +1054 -0
  452. package/tools/cli/installers/lib/core/manifest.js +1036 -0
  453. package/tools/cli/installers/lib/custom/handler.js +363 -0
  454. package/tools/cli/installers/lib/ide/STANDARDIZATION_PLAN.md +208 -0
  455. package/tools/cli/installers/lib/ide/_base-ide.js +655 -0
  456. package/tools/cli/installers/lib/ide/antigravity.js +474 -0
  457. package/tools/cli/installers/lib/ide/auggie.js +244 -0
  458. package/tools/cli/installers/lib/ide/claude-code.js +506 -0
  459. package/tools/cli/installers/lib/ide/cline.js +272 -0
  460. package/tools/cli/installers/lib/ide/codex.js +412 -0
  461. package/tools/cli/installers/lib/ide/crush.js +149 -0
  462. package/tools/cli/installers/lib/ide/cursor.js +160 -0
  463. package/tools/cli/installers/lib/ide/gemini.js +301 -0
  464. package/tools/cli/installers/lib/ide/github-copilot.js +383 -0
  465. package/tools/cli/installers/lib/ide/iflow.js +191 -0
  466. package/tools/cli/installers/lib/ide/kilo.js +250 -0
  467. package/tools/cli/installers/lib/ide/kiro-cli.js +326 -0
  468. package/tools/cli/installers/lib/ide/manager.js +244 -0
  469. package/tools/cli/installers/lib/ide/opencode.js +257 -0
  470. package/tools/cli/installers/lib/ide/qwen.js +372 -0
  471. package/tools/cli/installers/lib/ide/roo.js +273 -0
  472. package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
  473. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +165 -0
  474. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +158 -0
  475. package/tools/cli/installers/lib/ide/shared/module-injections.js +136 -0
  476. package/tools/cli/installers/lib/ide/shared/path-utils.js +165 -0
  477. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +268 -0
  478. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +293 -0
  479. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  480. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  481. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  482. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +13 -0
  483. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
  484. package/tools/cli/installers/lib/ide/trae.js +313 -0
  485. package/tools/cli/installers/lib/ide/windsurf.js +258 -0
  486. package/tools/cli/installers/lib/message-loader.js +85 -0
  487. package/tools/cli/installers/lib/modules/external-manager.js +135 -0
  488. package/tools/cli/installers/lib/modules/manager.js +1375 -0
  489. package/tools/cli/lib/activation-builder.js +163 -0
  490. package/tools/cli/lib/agent/compiler.js +522 -0
  491. package/tools/cli/lib/agent/installer.js +716 -0
  492. package/tools/cli/lib/agent/template-engine.js +152 -0
  493. package/tools/cli/lib/agent-analyzer.js +109 -0
  494. package/tools/cli/lib/agent-party-generator.js +194 -0
  495. package/tools/cli/lib/cli-utils.js +227 -0
  496. package/tools/cli/lib/config.js +213 -0
  497. package/tools/cli/lib/file-ops.js +204 -0
  498. package/tools/cli/lib/platform-codes.js +116 -0
  499. package/tools/cli/lib/project-root.js +77 -0
  500. package/tools/cli/lib/prompts.js +433 -0
  501. package/tools/cli/lib/ui.js +1716 -0
  502. package/tools/cli/lib/xml-handler.js +177 -0
  503. package/tools/cli/lib/xml-to-markdown.js +82 -0
  504. package/tools/{yaml-format.js → cli/lib/yaml-format.js} +9 -17
  505. package/tools/cli/lib/yaml-xml-builder.js +587 -0
  506. package/tools/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  507. package/tools/docs/fix-refs.md +91 -0
  508. package/tools/docs/index.md +2 -0
  509. package/tools/fix-doc-links.js +288 -0
  510. package/tools/flattener/ignoreRules.js +2 -6
  511. package/tools/flattener/main.js +31 -121
  512. package/tools/flattener/projectRoot.js +3 -8
  513. package/tools/flattener/stats.helpers.js +8 -35
  514. package/tools/flattener/stats.js +1 -6
  515. package/tools/flattener/test-matrix.js +1 -5
  516. package/tools/flattener/xml.js +1 -7
  517. package/tools/format-workflow-md.js +263 -0
  518. package/tools/lib/xml-utils.js +13 -0
  519. package/tools/maintainer/review-pr-README.md +55 -0
  520. package/tools/maintainer/review-pr.md +242 -0
  521. package/tools/migrate-custom-module-paths.js +124 -0
  522. package/tools/platform-codes.yaml +157 -0
  523. package/tools/schema/agent.js +491 -0
  524. package/tools/validate-agent-schema.js +110 -0
  525. package/tools/validate-doc-links.js +371 -0
  526. package/tools/validate-svg-changes.sh +356 -0
  527. package/website/README.md +76 -0
  528. package/website/_basement/components/WorkflowGuide.astro +444 -0
  529. package/website/_basement/pages/workflow-guide.astro +17 -0
  530. package/website/astro.config.mjs +169 -0
  531. package/website/public/favicon.ico +0 -0
  532. package/website/public/img/bmad-dark.png +0 -0
  533. package/website/public/img/bmad-light.png +0 -0
  534. package/website/public/img/logo.svg +4 -0
  535. package/website/public/img/workflow-map.png +0 -0
  536. package/website/public/robots.txt +37 -0
  537. package/website/public/workflow-map-diagram.html +361 -0
  538. package/website/src/components/Banner.astro +59 -0
  539. package/website/src/components/Header.astro +121 -0
  540. package/website/src/components/MobileMenuFooter.astro +53 -0
  541. package/website/src/content/config.ts +6 -0
  542. package/website/src/lib/site-url.js +25 -0
  543. package/website/src/pages/404.astro +11 -0
  544. package/website/src/rehype-base-paths.js +89 -0
  545. package/website/src/rehype-markdown-links.js +117 -0
  546. package/website/src/styles/custom.css +500 -0
  547. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  548. package/.github/workflows/format-check.yaml +0 -42
  549. package/bmad-core/agent-teams/team-all.yaml +0 -14
  550. package/bmad-core/agent-teams/team-fullstack.yaml +0 -18
  551. package/bmad-core/agent-teams/team-ide-minimal.yaml +0 -10
  552. package/bmad-core/agent-teams/team-no-ui.yaml +0 -13
  553. package/bmad-core/agents/analyst.md +0 -81
  554. package/bmad-core/agents/architect.md +0 -83
  555. package/bmad-core/agents/bmad-master.md +0 -107
  556. package/bmad-core/agents/bmad-orchestrator.md +0 -149
  557. package/bmad-core/agents/dev.md +0 -75
  558. package/bmad-core/agents/pm.md +0 -81
  559. package/bmad-core/agents/po.md +0 -76
  560. package/bmad-core/agents/qa.md +0 -88
  561. package/bmad-core/agents/sm.md +0 -62
  562. package/bmad-core/agents/ux-expert.md +0 -66
  563. package/bmad-core/checklists/architect-checklist.md +0 -438
  564. package/bmad-core/checklists/change-checklist.md +0 -182
  565. package/bmad-core/checklists/pm-checklist.md +0 -370
  566. package/bmad-core/checklists/po-master-checklist.md +0 -432
  567. package/bmad-core/checklists/story-dod-checklist.md +0 -94
  568. package/bmad-core/checklists/story-draft-checklist.md +0 -153
  569. package/bmad-core/core-config.yaml +0 -20
  570. package/bmad-core/data/bmad-kb.md +0 -806
  571. package/bmad-core/data/brainstorming-techniques.md +0 -36
  572. package/bmad-core/data/elicitation-methods.md +0 -154
  573. package/bmad-core/data/technical-preferences.md +0 -3
  574. package/bmad-core/data/test-levels-framework.md +0 -146
  575. package/bmad-core/data/test-priorities-matrix.md +0 -172
  576. package/bmad-core/tasks/advanced-elicitation.md +0 -117
  577. package/bmad-core/tasks/brownfield-create-epic.md +0 -160
  578. package/bmad-core/tasks/brownfield-create-story.md +0 -147
  579. package/bmad-core/tasks/correct-course.md +0 -70
  580. package/bmad-core/tasks/create-brownfield-story.md +0 -312
  581. package/bmad-core/tasks/create-deep-research-prompt.md +0 -278
  582. package/bmad-core/tasks/create-next-story.md +0 -112
  583. package/bmad-core/tasks/document-project.md +0 -343
  584. package/bmad-core/tasks/facilitate-brainstorming-session.md +0 -136
  585. package/bmad-core/tasks/generate-ai-frontend-prompt.md +0 -51
  586. package/bmad-core/tasks/index-docs.md +0 -173
  587. package/bmad-core/tasks/kb-mode-interaction.md +0 -75
  588. package/bmad-core/tasks/nfr-assess.md +0 -343
  589. package/bmad-core/tasks/qa-gate.md +0 -159
  590. package/bmad-core/tasks/review-story.md +0 -314
  591. package/bmad-core/tasks/risk-profile.md +0 -353
  592. package/bmad-core/tasks/shard-doc.md +0 -185
  593. package/bmad-core/tasks/test-design.md +0 -174
  594. package/bmad-core/tasks/trace-requirements.md +0 -264
  595. package/bmad-core/tasks/validate-next-story.md +0 -134
  596. package/bmad-core/templates/architecture-tmpl.yaml +0 -650
  597. package/bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
  598. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -476
  599. package/bmad-core/templates/brownfield-prd-tmpl.yaml +0 -280
  600. package/bmad-core/templates/competitor-analysis-tmpl.yaml +0 -306
  601. package/bmad-core/templates/front-end-architecture-tmpl.yaml +0 -218
  602. package/bmad-core/templates/front-end-spec-tmpl.yaml +0 -349
  603. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -823
  604. package/bmad-core/templates/market-research-tmpl.yaml +0 -252
  605. package/bmad-core/templates/prd-tmpl.yaml +0 -202
  606. package/bmad-core/templates/project-brief-tmpl.yaml +0 -221
  607. package/bmad-core/templates/qa-gate-tmpl.yaml +0 -102
  608. package/bmad-core/templates/story-tmpl.yaml +0 -137
  609. package/bmad-core/workflows/brownfield-fullstack.yaml +0 -297
  610. package/bmad-core/workflows/brownfield-service.yaml +0 -187
  611. package/bmad-core/workflows/brownfield-ui.yaml +0 -197
  612. package/bmad-core/workflows/greenfield-fullstack.yaml +0 -240
  613. package/bmad-core/workflows/greenfield-service.yaml +0 -206
  614. package/bmad-core/workflows/greenfield-ui.yaml +0 -235
  615. package/common/tasks/create-doc.md +0 -101
  616. package/common/tasks/execute-checklist.md +0 -86
  617. package/common/utils/bmad-doc-template.md +0 -325
  618. package/common/utils/workflow-management.md +0 -69
  619. package/dist/agents/analyst.txt +0 -2889
  620. package/dist/agents/architect.txt +0 -3552
  621. package/dist/agents/bmad-master.txt +0 -8769
  622. package/dist/agents/bmad-orchestrator.txt +0 -1513
  623. package/dist/agents/dev.txt +0 -414
  624. package/dist/agents/pm.txt +0 -2204
  625. package/dist/agents/po.txt +0 -1346
  626. package/dist/agents/qa.txt +0 -1987
  627. package/dist/agents/sm.txt +0 -658
  628. package/dist/agents/ux-expert.txt +0 -694
  629. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +0 -2371
  630. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +0 -1620
  631. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +0 -815
  632. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -10952
  633. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +0 -4012
  634. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +0 -3698
  635. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +0 -450
  636. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +0 -973
  637. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -15376
  638. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +0 -2075
  639. package/dist/teams/team-all.txt +0 -12682
  640. package/dist/teams/team-fullstack.txt +0 -10421
  641. package/dist/teams/team-ide-minimal.txt +0 -5103
  642. package/dist/teams/team-no-ui.txt +0 -8980
  643. package/docs/GUIDING-PRINCIPLES.md +0 -91
  644. package/docs/core-architecture.md +0 -219
  645. package/docs/enhanced-ide-development-workflow.md +0 -248
  646. package/docs/expansion-packs.md +0 -280
  647. package/docs/how-to-contribute-with-pull-requests.md +0 -158
  648. package/docs/user-guide.md +0 -504
  649. package/docs/versioning-and-releases.md +0 -147
  650. package/docs/versions.md +0 -48
  651. package/docs/working-in-the-brownfield.md +0 -597
  652. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/Complete AI Agent System - Flowchart.svg +0 -102
  653. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash copy.txt +0 -13
  654. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash.txt +0 -13
  655. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.2 Agent Development Kit Installation/1.2.2 - Basic Project Structure - txt.txt +0 -25
  656. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.1 - settings.py +0 -34
  657. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.2 - main.py - Base Application.py +0 -70
  658. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.4 Deployment Configuration/1.4.2 - cloudbuild.yaml +0 -26
  659. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/README.md +0 -109
  660. package/expansion-packs/README.md +0 -3
  661. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -13
  662. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -71
  663. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -78
  664. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -64
  665. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -201
  666. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -160
  667. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +0 -8
  668. package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -250
  669. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -647
  670. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -110
  671. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -216
  672. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -290
  673. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -613
  674. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -356
  675. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -343
  676. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -253
  677. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
  678. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -183
  679. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -175
  680. package/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +0 -14
  681. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +0 -80
  682. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +0 -77
  683. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +0 -78
  684. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +0 -65
  685. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +0 -391
  686. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +0 -203
  687. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +0 -201
  688. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +0 -124
  689. package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +0 -6
  690. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +0 -769
  691. package/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +0 -586
  692. package/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +0 -110
  693. package/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +0 -141
  694. package/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +0 -184
  695. package/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +0 -290
  696. package/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +0 -200
  697. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +0 -1030
  698. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +0 -356
  699. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +0 -705
  700. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +0 -256
  701. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
  702. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +0 -183
  703. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +0 -175
  704. package/expansion-packs/bmad-infrastructure-devops/README.md +0 -147
  705. package/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +0 -71
  706. package/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +0 -484
  707. package/expansion-packs/bmad-infrastructure-devops/config.yaml +0 -9
  708. package/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +0 -305
  709. package/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +0 -159
  710. package/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +0 -153
  711. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -424
  712. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -629
  713. package/release_notes.md +0 -32
  714. package/tools/builders/web-builder.js +0 -675
  715. package/tools/bump-all-versions.js +0 -115
  716. package/tools/bump-expansion-version.js +0 -90
  717. package/tools/cli.js +0 -152
  718. package/tools/installer/README.md +0 -8
  719. package/tools/installer/bin/bmad.js +0 -585
  720. package/tools/installer/config/ide-agent-config.yaml +0 -58
  721. package/tools/installer/config/install.config.yaml +0 -123
  722. package/tools/installer/lib/config-loader.js +0 -257
  723. package/tools/installer/lib/file-manager.js +0 -389
  724. package/tools/installer/lib/ide-base-setup.js +0 -228
  725. package/tools/installer/lib/ide-setup.js +0 -1441
  726. package/tools/installer/lib/installer.js +0 -1995
  727. package/tools/installer/lib/memory-profiler.js +0 -225
  728. package/tools/installer/lib/module-manager.js +0 -114
  729. package/tools/installer/lib/resource-locator.js +0 -308
  730. package/tools/installer/package.json +0 -44
  731. package/tools/lib/dependency-resolver.js +0 -175
  732. package/tools/lib/yaml-utils.js +0 -29
  733. package/tools/md-assets/web-agent-startup-instructions.md +0 -39
  734. package/tools/preview-release-notes.js +0 -66
  735. package/tools/shared/bannerArt.js +0 -105
  736. package/tools/sync-installer-version.js +0 -32
  737. package/tools/update-expansion-version.js +0 -53
  738. package/tools/upgraders/v3-to-v4-upgrader.js +0 -672
  739. package/tools/version-bump.js +0 -94
@@ -1,1987 +0,0 @@
1
- # Web Agent Bundle Instructions
2
-
3
- You are now operating as a specialized AI agent from the BMad-Method framework. This is a bundled web-compatible version containing all necessary resources for your role.
4
-
5
- ## Important Instructions
6
-
7
- 1. **Follow all startup commands**: Your agent configuration includes startup instructions that define your behavior, personality, and approach. These MUST be followed exactly.
8
-
9
- 2. **Resource Navigation**: This bundle contains all resources you need. Resources are marked with tags like:
10
-
11
- - `==================== START: .bmad-core/folder/filename.md ====================`
12
- - `==================== END: .bmad-core/folder/filename.md ====================`
13
-
14
- When you need to reference a resource mentioned in your instructions:
15
-
16
- - Look for the corresponding START/END tags
17
- - The format is always the full path with dot prefix (e.g., `.bmad-core/personas/analyst.md`, `.bmad-core/tasks/create-story.md`)
18
- - If a section is specified (e.g., `{root}/tasks/create-story.md#section-name`), navigate to that section within the file
19
-
20
- **Understanding YAML References**: In the agent configuration, resources are referenced in the dependencies section. For example:
21
-
22
- ```yaml
23
- dependencies:
24
- utils:
25
- - template-format
26
- tasks:
27
- - create-story
28
- ```
29
-
30
- These references map directly to bundle sections:
31
-
32
- - `utils: template-format` → Look for `==================== START: .bmad-core/utils/template-format.md ====================`
33
- - `tasks: create-story` → Look for `==================== START: .bmad-core/tasks/create-story.md ====================`
34
-
35
- 3. **Execution Context**: You are operating in a web environment. All your capabilities and knowledge are contained within this bundle. Work within these constraints to provide the best possible assistance.
36
-
37
- 4. **Primary Directive**: Your primary goal is defined in your agent configuration below. Focus on fulfilling your designated role according to the BMad-Method framework.
38
-
39
- ---
40
-
41
-
42
- ==================== START: .bmad-core/agents/qa.md ====================
43
- # qa
44
-
45
- CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
46
-
47
- ```yaml
48
- activation-instructions:
49
- - ONLY load dependency files when user selects them for execution via command or request of a task
50
- - The agent.customization field ALWAYS takes precedence over any conflicting instructions
51
- - When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
52
- - STAY IN CHARACTER!
53
- agent:
54
- name: Quinn
55
- id: qa
56
- title: Test Architect & Quality Advisor
57
- icon: 🧪
58
- whenToUse: |
59
- Use for comprehensive test architecture review, quality gate decisions,
60
- and code improvement. Provides thorough analysis including requirements
61
- traceability, risk assessment, and test strategy.
62
- Advisory only - teams choose their quality bar.
63
- customization: null
64
- persona:
65
- role: Test Architect with Quality Advisory Authority
66
- style: Comprehensive, systematic, advisory, educational, pragmatic
67
- identity: Test architect who provides thorough quality assessment and actionable recommendations without blocking progress
68
- focus: Comprehensive quality analysis through test architecture, risk assessment, and advisory gates
69
- core_principles:
70
- - Depth As Needed - Go deep based on risk signals, stay concise when low risk
71
- - Requirements Traceability - Map all stories to tests using Given-When-Then patterns
72
- - Risk-Based Testing - Assess and prioritize by probability × impact
73
- - Quality Attributes - Validate NFRs (security, performance, reliability) via scenarios
74
- - Testability Assessment - Evaluate controllability, observability, debuggability
75
- - Gate Governance - Provide clear PASS/CONCERNS/FAIL/WAIVED decisions with rationale
76
- - Advisory Excellence - Educate through documentation, never block arbitrarily
77
- - Technical Debt Awareness - Identify and quantify debt with improvement suggestions
78
- - LLM Acceleration - Use LLMs to accelerate thorough yet focused analysis
79
- - Pragmatic Balance - Distinguish must-fix from nice-to-have improvements
80
- story-file-permissions:
81
- - CRITICAL: When reviewing stories, you are ONLY authorized to update the "QA Results" section of story files
82
- - CRITICAL: DO NOT modify any other sections including Status, Story, Acceptance Criteria, Tasks/Subtasks, Dev Notes, Testing, Dev Agent Record, Change Log, or any other sections
83
- - CRITICAL: Your updates must be limited to appending your review results in the QA Results section only
84
- commands:
85
- - help: Show numbered list of the following commands to allow selection
86
- - review {story}: |
87
- Adaptive, risk-aware comprehensive review.
88
- Produces: QA Results update in story file + gate file (PASS/CONCERNS/FAIL/WAIVED).
89
- Gate file location: docs/qa/gates/{epic}.{story}-{slug}.yml
90
- Executes review-story task which includes all analysis and creates gate decision.
91
- - gate {story}: Execute qa-gate task to write/update quality gate decision in docs/qa/gates/
92
- - trace {story}: Execute trace-requirements task to map requirements to tests using Given-When-Then
93
- - risk-profile {story}: Execute risk-profile task to generate risk assessment matrix
94
- - test-design {story}: Execute test-design task to create comprehensive test scenarios
95
- - nfr-assess {story}: Execute nfr-assess task to validate non-functional requirements
96
- - exit: Say goodbye as the Test Architect, and then abandon inhabiting this persona
97
- dependencies:
98
- tasks:
99
- - review-story.md
100
- - qa-gate.md
101
- - trace-requirements.md
102
- - risk-profile.md
103
- - test-design.md
104
- - nfr-assess.md
105
- data:
106
- - technical-preferences.md
107
- templates:
108
- - story-tmpl.yaml
109
- - qa-gate-tmpl.yaml
110
- ```
111
- ==================== END: .bmad-core/agents/qa.md ====================
112
-
113
- ==================== START: .bmad-core/tasks/review-story.md ====================
114
- # review-story
115
-
116
- Perform a comprehensive test architecture review with quality gate decision. This adaptive, risk-aware review creates both a story update and a detailed gate file.
117
-
118
- ## Inputs
119
-
120
- ```yaml
121
- required:
122
- - story_id: '{epic}.{story}' # e.g., "1.3"
123
- - story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
124
- - story_title: '{title}' # If missing, derive from story file H1
125
- - story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
126
- ```
127
-
128
- ## Prerequisites
129
-
130
- - Story status must be "Review"
131
- - Developer has completed all tasks and updated the File List
132
- - All automated tests are passing
133
-
134
- ## Review Process - Adaptive Test Architecture
135
-
136
- ### 1. Risk Assessment (Determines Review Depth)
137
-
138
- **Auto-escalate to deep review when:**
139
-
140
- - Auth/payment/security files touched
141
- - No tests added to story
142
- - Diff > 500 lines
143
- - Previous gate was FAIL/CONCERNS
144
- - Story has > 5 acceptance criteria
145
-
146
- ### 2. Comprehensive Analysis
147
-
148
- **A. Requirements Traceability**
149
-
150
- - Map each acceptance criteria to its validating tests (document mapping with Given-When-Then, not test code)
151
- - Identify coverage gaps
152
- - Verify all requirements have corresponding test cases
153
-
154
- **B. Code Quality Review**
155
-
156
- - Architecture and design patterns
157
- - Refactoring opportunities (and perform them)
158
- - Code duplication or inefficiencies
159
- - Performance optimizations
160
- - Security vulnerabilities
161
- - Best practices adherence
162
-
163
- **C. Test Architecture Assessment**
164
-
165
- - Test coverage adequacy at appropriate levels
166
- - Test level appropriateness (what should be unit vs integration vs e2e)
167
- - Test design quality and maintainability
168
- - Test data management strategy
169
- - Mock/stub usage appropriateness
170
- - Edge case and error scenario coverage
171
- - Test execution time and reliability
172
-
173
- **D. Non-Functional Requirements (NFRs)**
174
-
175
- - Security: Authentication, authorization, data protection
176
- - Performance: Response times, resource usage
177
- - Reliability: Error handling, recovery mechanisms
178
- - Maintainability: Code clarity, documentation
179
-
180
- **E. Testability Evaluation**
181
-
182
- - Controllability: Can we control the inputs?
183
- - Observability: Can we observe the outputs?
184
- - Debuggability: Can we debug failures easily?
185
-
186
- **F. Technical Debt Identification**
187
-
188
- - Accumulated shortcuts
189
- - Missing tests
190
- - Outdated dependencies
191
- - Architecture violations
192
-
193
- ### 3. Active Refactoring
194
-
195
- - Refactor code where safe and appropriate
196
- - Run tests to ensure changes don't break functionality
197
- - Document all changes in QA Results section with clear WHY and HOW
198
- - Do NOT alter story content beyond QA Results section
199
- - Do NOT change story Status or File List; recommend next status only
200
-
201
- ### 4. Standards Compliance Check
202
-
203
- - Verify adherence to `docs/coding-standards.md`
204
- - Check compliance with `docs/unified-project-structure.md`
205
- - Validate testing approach against `docs/testing-strategy.md`
206
- - Ensure all guidelines mentioned in the story are followed
207
-
208
- ### 5. Acceptance Criteria Validation
209
-
210
- - Verify each AC is fully implemented
211
- - Check for any missing functionality
212
- - Validate edge cases are handled
213
-
214
- ### 6. Documentation and Comments
215
-
216
- - Verify code is self-documenting where possible
217
- - Add comments for complex logic if missing
218
- - Ensure any API changes are documented
219
-
220
- ## Output 1: Update Story File - QA Results Section ONLY
221
-
222
- **CRITICAL**: You are ONLY authorized to update the "QA Results" section of the story file. DO NOT modify any other sections.
223
-
224
- **QA Results Anchor Rule:**
225
-
226
- - If `## QA Results` doesn't exist, append it at end of file
227
- - If it exists, append a new dated entry below existing entries
228
- - Never edit other sections
229
-
230
- After review and any refactoring, append your results to the story file in the QA Results section:
231
-
232
- ```markdown
233
- ## QA Results
234
-
235
- ### Review Date: [Date]
236
-
237
- ### Reviewed By: Quinn (Test Architect)
238
-
239
- ### Code Quality Assessment
240
-
241
- [Overall assessment of implementation quality]
242
-
243
- ### Refactoring Performed
244
-
245
- [List any refactoring you performed with explanations]
246
-
247
- - **File**: [filename]
248
- - **Change**: [what was changed]
249
- - **Why**: [reason for change]
250
- - **How**: [how it improves the code]
251
-
252
- ### Compliance Check
253
-
254
- - Coding Standards: [✓/✗] [notes if any]
255
- - Project Structure: [✓/✗] [notes if any]
256
- - Testing Strategy: [✓/✗] [notes if any]
257
- - All ACs Met: [✓/✗] [notes if any]
258
-
259
- ### Improvements Checklist
260
-
261
- [Check off items you handled yourself, leave unchecked for dev to address]
262
-
263
- - [x] Refactored user service for better error handling (services/user.service.ts)
264
- - [x] Added missing edge case tests (services/user.service.test.ts)
265
- - [ ] Consider extracting validation logic to separate validator class
266
- - [ ] Add integration test for error scenarios
267
- - [ ] Update API documentation for new error codes
268
-
269
- ### Security Review
270
-
271
- [Any security concerns found and whether addressed]
272
-
273
- ### Performance Considerations
274
-
275
- [Any performance issues found and whether addressed]
276
-
277
- ### Files Modified During Review
278
-
279
- [If you modified files, list them here - ask Dev to update File List]
280
-
281
- ### Gate Status
282
-
283
- Gate: {STATUS} → docs/qa/gates/{epic}.{story}-{slug}.yml
284
- Risk profile: docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
285
- NFR assessment: docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
286
-
287
- # Note: Paths should reference core-config.yaml for custom configurations
288
-
289
- ### Recommended Status
290
-
291
- [✓ Ready for Done] / [✗ Changes Required - See unchecked items above]
292
- (Story owner decides final status)
293
- ```
294
-
295
- ## Output 2: Create Quality Gate File
296
-
297
- **Template and Directory:**
298
-
299
- - Render from `templates/qa-gate-tmpl.yaml`
300
- - Create `docs/qa/gates/` directory if missing (or configure in core-config.yaml)
301
- - Save to: `docs/qa/gates/{epic}.{story}-{slug}.yml`
302
-
303
- Gate file structure:
304
-
305
- ```yaml
306
- schema: 1
307
- story: '{epic}.{story}'
308
- story_title: '{story title}'
309
- gate: PASS|CONCERNS|FAIL|WAIVED
310
- status_reason: '1-2 sentence explanation of gate decision'
311
- reviewer: 'Quinn (Test Architect)'
312
- updated: '{ISO-8601 timestamp}'
313
-
314
- top_issues: [] # Empty if no issues
315
- waiver: { active: false } # Set active: true only if WAIVED
316
-
317
- # Extended fields (optional but recommended):
318
- quality_score: 0-100 # 100 - (20*FAILs) - (10*CONCERNS) or use technical-preferences.md weights
319
- expires: '{ISO-8601 timestamp}' # Typically 2 weeks from review
320
-
321
- evidence:
322
- tests_reviewed: { count }
323
- risks_identified: { count }
324
- trace:
325
- ac_covered: [1, 2, 3] # AC numbers with test coverage
326
- ac_gaps: [4] # AC numbers lacking coverage
327
-
328
- nfr_validation:
329
- security:
330
- status: PASS|CONCERNS|FAIL
331
- notes: 'Specific findings'
332
- performance:
333
- status: PASS|CONCERNS|FAIL
334
- notes: 'Specific findings'
335
- reliability:
336
- status: PASS|CONCERNS|FAIL
337
- notes: 'Specific findings'
338
- maintainability:
339
- status: PASS|CONCERNS|FAIL
340
- notes: 'Specific findings'
341
-
342
- recommendations:
343
- immediate: # Must fix before production
344
- - action: 'Add rate limiting'
345
- refs: ['api/auth/login.ts']
346
- future: # Can be addressed later
347
- - action: 'Consider caching'
348
- refs: ['services/data.ts']
349
- ```
350
-
351
- ### Gate Decision Criteria
352
-
353
- **Deterministic rule (apply in order):**
354
-
355
- If risk_summary exists, apply its thresholds first (≥9 → FAIL, ≥6 → CONCERNS), then NFR statuses, then top_issues severity.
356
-
357
- 1. **Risk thresholds (if risk_summary present):**
358
- - If any risk score ≥ 9 → Gate = FAIL (unless waived)
359
- - Else if any score ≥ 6 → Gate = CONCERNS
360
-
361
- 2. **Test coverage gaps (if trace available):**
362
- - If any P0 test from test-design is missing → Gate = CONCERNS
363
- - If security/data-loss P0 test missing → Gate = FAIL
364
-
365
- 3. **Issue severity:**
366
- - If any `top_issues.severity == high` → Gate = FAIL (unless waived)
367
- - Else if any `severity == medium` → Gate = CONCERNS
368
-
369
- 4. **NFR statuses:**
370
- - If any NFR status is FAIL → Gate = FAIL
371
- - Else if any NFR status is CONCERNS → Gate = CONCERNS
372
- - Else → Gate = PASS
373
-
374
- - WAIVED only when waiver.active: true with reason/approver
375
-
376
- Detailed criteria:
377
-
378
- - **PASS**: All critical requirements met, no blocking issues
379
- - **CONCERNS**: Non-critical issues found, team should review
380
- - **FAIL**: Critical issues that should be addressed
381
- - **WAIVED**: Issues acknowledged but explicitly waived by team
382
-
383
- ### Quality Score Calculation
384
-
385
- ```text
386
- quality_score = 100 - (20 × number of FAILs) - (10 × number of CONCERNS)
387
- Bounded between 0 and 100
388
- ```
389
-
390
- If `technical-preferences.md` defines custom weights, use those instead.
391
-
392
- ### Suggested Owner Convention
393
-
394
- For each issue in `top_issues`, include a `suggested_owner`:
395
-
396
- - `dev`: Code changes needed
397
- - `sm`: Requirements clarification needed
398
- - `po`: Business decision needed
399
-
400
- ## Key Principles
401
-
402
- - You are a Test Architect providing comprehensive quality assessment
403
- - You have the authority to improve code directly when appropriate
404
- - Always explain your changes for learning purposes
405
- - Balance between perfection and pragmatism
406
- - Focus on risk-based prioritization
407
- - Provide actionable recommendations with clear ownership
408
-
409
- ## Blocking Conditions
410
-
411
- Stop the review and request clarification if:
412
-
413
- - Story file is incomplete or missing critical sections
414
- - File List is empty or clearly incomplete
415
- - No tests exist when they were required
416
- - Code changes don't align with story requirements
417
- - Critical architectural issues that require discussion
418
-
419
- ## Completion
420
-
421
- After review:
422
-
423
- 1. Update the QA Results section in the story file
424
- 2. Create the gate file in `docs/qa/gates/`
425
- 3. Recommend status: "Ready for Done" or "Changes Required" (owner decides)
426
- 4. If files were modified, list them in QA Results and ask Dev to update File List
427
- 5. Always provide constructive feedback and actionable recommendations
428
- ==================== END: .bmad-core/tasks/review-story.md ====================
429
-
430
- ==================== START: .bmad-core/tasks/qa-gate.md ====================
431
- # qa-gate
432
-
433
- Create or update a quality gate decision file for a story based on review findings.
434
-
435
- ## Purpose
436
-
437
- Generate a standalone quality gate file that provides a clear pass/fail decision with actionable feedback. This gate serves as an advisory checkpoint for teams to understand quality status.
438
-
439
- ## Prerequisites
440
-
441
- - Story has been reviewed (manually or via review-story task)
442
- - Review findings are available
443
- - Understanding of story requirements and implementation
444
-
445
- ## Gate File Location
446
-
447
- **ALWAYS** create file at: `docs/qa/gates/{epic}.{story}-{slug}.yml`
448
-
449
- Slug rules:
450
-
451
- - Convert to lowercase
452
- - Replace spaces with hyphens
453
- - Strip punctuation
454
- - Example: "User Auth - Login!" becomes "user-auth-login"
455
-
456
- ## Minimal Required Schema
457
-
458
- ```yaml
459
- schema: 1
460
- story: '{epic}.{story}'
461
- gate: PASS|CONCERNS|FAIL|WAIVED
462
- status_reason: '1-2 sentence explanation of gate decision'
463
- reviewer: 'Quinn'
464
- updated: '{ISO-8601 timestamp}'
465
- top_issues: [] # Empty array if no issues
466
- waiver: { active: false } # Only set active: true if WAIVED
467
- ```
468
-
469
- ## Schema with Issues
470
-
471
- ```yaml
472
- schema: 1
473
- story: '1.3'
474
- gate: CONCERNS
475
- status_reason: 'Missing rate limiting on auth endpoints poses security risk.'
476
- reviewer: 'Quinn'
477
- updated: '2025-01-12T10:15:00Z'
478
- top_issues:
479
- - id: 'SEC-001'
480
- severity: high # ONLY: low|medium|high
481
- finding: 'No rate limiting on login endpoint'
482
- suggested_action: 'Add rate limiting middleware before production'
483
- - id: 'TEST-001'
484
- severity: medium
485
- finding: 'No integration tests for auth flow'
486
- suggested_action: 'Add integration test coverage'
487
- waiver: { active: false }
488
- ```
489
-
490
- ## Schema when Waived
491
-
492
- ```yaml
493
- schema: 1
494
- story: '1.3'
495
- gate: WAIVED
496
- status_reason: 'Known issues accepted for MVP release.'
497
- reviewer: 'Quinn'
498
- updated: '2025-01-12T10:15:00Z'
499
- top_issues:
500
- - id: 'PERF-001'
501
- severity: low
502
- finding: 'Dashboard loads slowly with 1000+ items'
503
- suggested_action: 'Implement pagination in next sprint'
504
- waiver:
505
- active: true
506
- reason: 'MVP release - performance optimization deferred'
507
- approved_by: 'Product Owner'
508
- ```
509
-
510
- ## Gate Decision Criteria
511
-
512
- ### PASS
513
-
514
- - All acceptance criteria met
515
- - No high-severity issues
516
- - Test coverage meets project standards
517
-
518
- ### CONCERNS
519
-
520
- - Non-blocking issues present
521
- - Should be tracked and scheduled
522
- - Can proceed with awareness
523
-
524
- ### FAIL
525
-
526
- - Acceptance criteria not met
527
- - High-severity issues present
528
- - Recommend return to InProgress
529
-
530
- ### WAIVED
531
-
532
- - Issues explicitly accepted
533
- - Requires approval and reason
534
- - Proceed despite known issues
535
-
536
- ## Severity Scale
537
-
538
- **FIXED VALUES - NO VARIATIONS:**
539
-
540
- - `low`: Minor issues, cosmetic problems
541
- - `medium`: Should fix soon, not blocking
542
- - `high`: Critical issues, should block release
543
-
544
- ## Issue ID Prefixes
545
-
546
- - `SEC-`: Security issues
547
- - `PERF-`: Performance issues
548
- - `REL-`: Reliability issues
549
- - `TEST-`: Testing gaps
550
- - `MNT-`: Maintainability concerns
551
- - `ARCH-`: Architecture issues
552
- - `DOC-`: Documentation gaps
553
- - `REQ-`: Requirements issues
554
-
555
- ## Output Requirements
556
-
557
- 1. **ALWAYS** create gate file at: `docs/qa/gates/{epic}.{story}-{slug}.yml`
558
- 2. **ALWAYS** append this exact format to story's QA Results section:
559
- ```
560
- Gate: {STATUS} → docs/qa/gates/{epic}.{story}-{slug}.yml
561
- ```
562
- 3. Keep status_reason to 1-2 sentences maximum
563
- 4. Use severity values exactly: `low`, `medium`, or `high`
564
-
565
- ## Example Story Update
566
-
567
- After creating gate file, append to story's QA Results section:
568
-
569
- ```markdown
570
- ## QA Results
571
-
572
- ### Review Date: 2025-01-12
573
-
574
- ### Reviewed By: Quinn (Test Architect)
575
-
576
- [... existing review content ...]
577
-
578
- ### Gate Status
579
-
580
- Gate: CONCERNS → docs/qa/gates/1.3-user-auth-login.yml
581
- ```
582
-
583
- ## Key Principles
584
-
585
- - Keep it minimal and predictable
586
- - Fixed severity scale (low/medium/high)
587
- - Always write to standard path
588
- - Always update story with gate reference
589
- - Clear, actionable findings
590
- ==================== END: .bmad-core/tasks/qa-gate.md ====================
591
-
592
- ==================== START: .bmad-core/tasks/trace-requirements.md ====================
593
- # trace-requirements
594
-
595
- Map story requirements to test cases using Given-When-Then patterns for comprehensive traceability.
596
-
597
- ## Purpose
598
-
599
- Create a requirements traceability matrix that ensures every acceptance criterion has corresponding test coverage. This task helps identify gaps in testing and ensures all requirements are validated.
600
-
601
- **IMPORTANT**: Given-When-Then is used here for documenting the mapping between requirements and tests, NOT for writing the actual test code. Tests should follow your project's testing standards (no BDD syntax in test code).
602
-
603
- ## Prerequisites
604
-
605
- - Story file with clear acceptance criteria
606
- - Access to test files or test specifications
607
- - Understanding of the implementation
608
-
609
- ## Traceability Process
610
-
611
- ### 1. Extract Requirements
612
-
613
- Identify all testable requirements from:
614
-
615
- - Acceptance Criteria (primary source)
616
- - User story statement
617
- - Tasks/subtasks with specific behaviors
618
- - Non-functional requirements mentioned
619
- - Edge cases documented
620
-
621
- ### 2. Map to Test Cases
622
-
623
- For each requirement, document which tests validate it. Use Given-When-Then to describe what the test validates (not how it's written):
624
-
625
- ```yaml
626
- requirement: 'AC1: User can login with valid credentials'
627
- test_mappings:
628
- - test_file: 'auth/login.test.ts'
629
- test_case: 'should successfully login with valid email and password'
630
- # Given-When-Then describes WHAT the test validates, not HOW it's coded
631
- given: 'A registered user with valid credentials'
632
- when: 'They submit the login form'
633
- then: 'They are redirected to dashboard and session is created'
634
- coverage: full
635
-
636
- - test_file: 'e2e/auth-flow.test.ts'
637
- test_case: 'complete login flow'
638
- given: 'User on login page'
639
- when: 'Entering valid credentials and submitting'
640
- then: 'Dashboard loads with user data'
641
- coverage: integration
642
- ```
643
-
644
- ### 3. Coverage Analysis
645
-
646
- Evaluate coverage for each requirement:
647
-
648
- **Coverage Levels:**
649
-
650
- - `full`: Requirement completely tested
651
- - `partial`: Some aspects tested, gaps exist
652
- - `none`: No test coverage found
653
- - `integration`: Covered in integration/e2e tests only
654
- - `unit`: Covered in unit tests only
655
-
656
- ### 4. Gap Identification
657
-
658
- Document any gaps found:
659
-
660
- ```yaml
661
- coverage_gaps:
662
- - requirement: 'AC3: Password reset email sent within 60 seconds'
663
- gap: 'No test for email delivery timing'
664
- severity: medium
665
- suggested_test:
666
- type: integration
667
- description: 'Test email service SLA compliance'
668
-
669
- - requirement: 'AC5: Support 1000 concurrent users'
670
- gap: 'No load testing implemented'
671
- severity: high
672
- suggested_test:
673
- type: performance
674
- description: 'Load test with 1000 concurrent connections'
675
- ```
676
-
677
- ## Outputs
678
-
679
- ### Output 1: Gate YAML Block
680
-
681
- **Generate for pasting into gate file under `trace`:**
682
-
683
- ```yaml
684
- trace:
685
- totals:
686
- requirements: X
687
- full: Y
688
- partial: Z
689
- none: W
690
- planning_ref: 'docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md'
691
- uncovered:
692
- - ac: 'AC3'
693
- reason: 'No test found for password reset timing'
694
- notes: 'See docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md'
695
- ```
696
-
697
- ### Output 2: Traceability Report
698
-
699
- **Save to:** `docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md`
700
-
701
- Create a traceability report with:
702
-
703
- ```markdown
704
- # Requirements Traceability Matrix
705
-
706
- ## Story: {epic}.{story} - {title}
707
-
708
- ### Coverage Summary
709
-
710
- - Total Requirements: X
711
- - Fully Covered: Y (Z%)
712
- - Partially Covered: A (B%)
713
- - Not Covered: C (D%)
714
-
715
- ### Requirement Mappings
716
-
717
- #### AC1: {Acceptance Criterion 1}
718
-
719
- **Coverage: FULL**
720
-
721
- Given-When-Then Mappings:
722
-
723
- - **Unit Test**: `auth.service.test.ts::validateCredentials`
724
- - Given: Valid user credentials
725
- - When: Validation method called
726
- - Then: Returns true with user object
727
-
728
- - **Integration Test**: `auth.integration.test.ts::loginFlow`
729
- - Given: User with valid account
730
- - When: Login API called
731
- - Then: JWT token returned and session created
732
-
733
- #### AC2: {Acceptance Criterion 2}
734
-
735
- **Coverage: PARTIAL**
736
-
737
- [Continue for all ACs...]
738
-
739
- ### Critical Gaps
740
-
741
- 1. **Performance Requirements**
742
- - Gap: No load testing for concurrent users
743
- - Risk: High - Could fail under production load
744
- - Action: Implement load tests using k6 or similar
745
-
746
- 2. **Security Requirements**
747
- - Gap: Rate limiting not tested
748
- - Risk: Medium - Potential DoS vulnerability
749
- - Action: Add rate limit tests to integration suite
750
-
751
- ### Test Design Recommendations
752
-
753
- Based on gaps identified, recommend:
754
-
755
- 1. Additional test scenarios needed
756
- 2. Test types to implement (unit/integration/e2e/performance)
757
- 3. Test data requirements
758
- 4. Mock/stub strategies
759
-
760
- ### Risk Assessment
761
-
762
- - **High Risk**: Requirements with no coverage
763
- - **Medium Risk**: Requirements with only partial coverage
764
- - **Low Risk**: Requirements with full unit + integration coverage
765
- ```
766
-
767
- ## Traceability Best Practices
768
-
769
- ### Given-When-Then for Mapping (Not Test Code)
770
-
771
- Use Given-When-Then to document what each test validates:
772
-
773
- **Given**: The initial context the test sets up
774
-
775
- - What state/data the test prepares
776
- - User context being simulated
777
- - System preconditions
778
-
779
- **When**: The action the test performs
780
-
781
- - What the test executes
782
- - API calls or user actions tested
783
- - Events triggered
784
-
785
- **Then**: What the test asserts
786
-
787
- - Expected outcomes verified
788
- - State changes checked
789
- - Values validated
790
-
791
- **Note**: This is for documentation only. Actual test code follows your project's standards (e.g., describe/it blocks, no BDD syntax).
792
-
793
- ### Coverage Priority
794
-
795
- Prioritize coverage based on:
796
-
797
- 1. Critical business flows
798
- 2. Security-related requirements
799
- 3. Data integrity requirements
800
- 4. User-facing features
801
- 5. Performance SLAs
802
-
803
- ### Test Granularity
804
-
805
- Map at appropriate levels:
806
-
807
- - Unit tests for business logic
808
- - Integration tests for component interaction
809
- - E2E tests for user journeys
810
- - Performance tests for NFRs
811
-
812
- ## Quality Indicators
813
-
814
- Good traceability shows:
815
-
816
- - Every AC has at least one test
817
- - Critical paths have multiple test levels
818
- - Edge cases are explicitly covered
819
- - NFRs have appropriate test types
820
- - Clear Given-When-Then for each test
821
-
822
- ## Red Flags
823
-
824
- Watch for:
825
-
826
- - ACs with no test coverage
827
- - Tests that don't map to requirements
828
- - Vague test descriptions
829
- - Missing edge case coverage
830
- - NFRs without specific tests
831
-
832
- ## Integration with Gates
833
-
834
- This traceability feeds into quality gates:
835
-
836
- - Critical gaps → FAIL
837
- - Minor gaps → CONCERNS
838
- - Missing P0 tests from test-design → CONCERNS
839
-
840
- ### Output 3: Story Hook Line
841
-
842
- **Print this line for review task to quote:**
843
-
844
- ```text
845
- Trace matrix: docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md
846
- ```
847
-
848
- - Full coverage → PASS contribution
849
-
850
- ## Key Principles
851
-
852
- - Every requirement must be testable
853
- - Use Given-When-Then for clarity
854
- - Identify both presence and absence
855
- - Prioritize based on risk
856
- - Make recommendations actionable
857
- ==================== END: .bmad-core/tasks/trace-requirements.md ====================
858
-
859
- ==================== START: .bmad-core/tasks/risk-profile.md ====================
860
- # risk-profile
861
-
862
- Generate a comprehensive risk assessment matrix for a story implementation using probability × impact analysis.
863
-
864
- ## Inputs
865
-
866
- ```yaml
867
- required:
868
- - story_id: '{epic}.{story}' # e.g., "1.3"
869
- - story_path: 'docs/stories/{epic}.{story}.*.md'
870
- - story_title: '{title}' # If missing, derive from story file H1
871
- - story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
872
- ```
873
-
874
- ## Purpose
875
-
876
- Identify, assess, and prioritize risks in the story implementation. Provide risk mitigation strategies and testing focus areas based on risk levels.
877
-
878
- ## Risk Assessment Framework
879
-
880
- ### Risk Categories
881
-
882
- **Category Prefixes:**
883
-
884
- - `TECH`: Technical Risks
885
- - `SEC`: Security Risks
886
- - `PERF`: Performance Risks
887
- - `DATA`: Data Risks
888
- - `BUS`: Business Risks
889
- - `OPS`: Operational Risks
890
-
891
- 1. **Technical Risks (TECH)**
892
- - Architecture complexity
893
- - Integration challenges
894
- - Technical debt
895
- - Scalability concerns
896
- - System dependencies
897
-
898
- 2. **Security Risks (SEC)**
899
- - Authentication/authorization flaws
900
- - Data exposure vulnerabilities
901
- - Injection attacks
902
- - Session management issues
903
- - Cryptographic weaknesses
904
-
905
- 3. **Performance Risks (PERF)**
906
- - Response time degradation
907
- - Throughput bottlenecks
908
- - Resource exhaustion
909
- - Database query optimization
910
- - Caching failures
911
-
912
- 4. **Data Risks (DATA)**
913
- - Data loss potential
914
- - Data corruption
915
- - Privacy violations
916
- - Compliance issues
917
- - Backup/recovery gaps
918
-
919
- 5. **Business Risks (BUS)**
920
- - Feature doesn't meet user needs
921
- - Revenue impact
922
- - Reputation damage
923
- - Regulatory non-compliance
924
- - Market timing
925
-
926
- 6. **Operational Risks (OPS)**
927
- - Deployment failures
928
- - Monitoring gaps
929
- - Incident response readiness
930
- - Documentation inadequacy
931
- - Knowledge transfer issues
932
-
933
- ## Risk Analysis Process
934
-
935
- ### 1. Risk Identification
936
-
937
- For each category, identify specific risks:
938
-
939
- ```yaml
940
- risk:
941
- id: 'SEC-001' # Use prefixes: SEC, PERF, DATA, BUS, OPS, TECH
942
- category: security
943
- title: 'Insufficient input validation on user forms'
944
- description: 'Form inputs not properly sanitized could lead to XSS attacks'
945
- affected_components:
946
- - 'UserRegistrationForm'
947
- - 'ProfileUpdateForm'
948
- detection_method: 'Code review revealed missing validation'
949
- ```
950
-
951
- ### 2. Risk Assessment
952
-
953
- Evaluate each risk using probability × impact:
954
-
955
- **Probability Levels:**
956
-
957
- - `High (3)`: Likely to occur (>70% chance)
958
- - `Medium (2)`: Possible occurrence (30-70% chance)
959
- - `Low (1)`: Unlikely to occur (<30% chance)
960
-
961
- **Impact Levels:**
962
-
963
- - `High (3)`: Severe consequences (data breach, system down, major financial loss)
964
- - `Medium (2)`: Moderate consequences (degraded performance, minor data issues)
965
- - `Low (1)`: Minor consequences (cosmetic issues, slight inconvenience)
966
-
967
- **Risk Score = Probability × Impact**
968
-
969
- - 9: Critical Risk (Red)
970
- - 6: High Risk (Orange)
971
- - 4: Medium Risk (Yellow)
972
- - 2-3: Low Risk (Green)
973
- - 1: Minimal Risk (Blue)
974
-
975
- ### 3. Risk Prioritization
976
-
977
- Create risk matrix:
978
-
979
- ```markdown
980
- ## Risk Matrix
981
-
982
- | Risk ID | Description | Probability | Impact | Score | Priority |
983
- | -------- | ----------------------- | ----------- | ---------- | ----- | -------- |
984
- | SEC-001 | XSS vulnerability | High (3) | High (3) | 9 | Critical |
985
- | PERF-001 | Slow query on dashboard | Medium (2) | Medium (2) | 4 | Medium |
986
- | DATA-001 | Backup failure | Low (1) | High (3) | 3 | Low |
987
- ```
988
-
989
- ### 4. Risk Mitigation Strategies
990
-
991
- For each identified risk, provide mitigation:
992
-
993
- ```yaml
994
- mitigation:
995
- risk_id: 'SEC-001'
996
- strategy: 'preventive' # preventive|detective|corrective
997
- actions:
998
- - 'Implement input validation library (e.g., validator.js)'
999
- - 'Add CSP headers to prevent XSS execution'
1000
- - 'Sanitize all user inputs before storage'
1001
- - 'Escape all outputs in templates'
1002
- testing_requirements:
1003
- - 'Security testing with OWASP ZAP'
1004
- - 'Manual penetration testing of forms'
1005
- - 'Unit tests for validation functions'
1006
- residual_risk: 'Low - Some zero-day vulnerabilities may remain'
1007
- owner: 'dev'
1008
- timeline: 'Before deployment'
1009
- ```
1010
-
1011
- ## Outputs
1012
-
1013
- ### Output 1: Gate YAML Block
1014
-
1015
- Generate for pasting into gate file under `risk_summary`:
1016
-
1017
- **Output rules:**
1018
-
1019
- - Only include assessed risks; do not emit placeholders
1020
- - Sort risks by score (desc) when emitting highest and any tabular lists
1021
- - If no risks: totals all zeros, omit highest, keep recommendations arrays empty
1022
-
1023
- ```yaml
1024
- # risk_summary (paste into gate file):
1025
- risk_summary:
1026
- totals:
1027
- critical: X # score 9
1028
- high: Y # score 6
1029
- medium: Z # score 4
1030
- low: W # score 2-3
1031
- highest:
1032
- id: SEC-001
1033
- score: 9
1034
- title: 'XSS on profile form'
1035
- recommendations:
1036
- must_fix:
1037
- - 'Add input sanitization & CSP'
1038
- monitor:
1039
- - 'Add security alerts for auth endpoints'
1040
- ```
1041
-
1042
- ### Output 2: Markdown Report
1043
-
1044
- **Save to:** `docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md`
1045
-
1046
- ```markdown
1047
- # Risk Profile: Story {epic}.{story}
1048
-
1049
- Date: {date}
1050
- Reviewer: Quinn (Test Architect)
1051
-
1052
- ## Executive Summary
1053
-
1054
- - Total Risks Identified: X
1055
- - Critical Risks: Y
1056
- - High Risks: Z
1057
- - Risk Score: XX/100 (calculated)
1058
-
1059
- ## Critical Risks Requiring Immediate Attention
1060
-
1061
- ### 1. [ID]: Risk Title
1062
-
1063
- **Score: 9 (Critical)**
1064
- **Probability**: High - Detailed reasoning
1065
- **Impact**: High - Potential consequences
1066
- **Mitigation**:
1067
-
1068
- - Immediate action required
1069
- - Specific steps to take
1070
- **Testing Focus**: Specific test scenarios needed
1071
-
1072
- ## Risk Distribution
1073
-
1074
- ### By Category
1075
-
1076
- - Security: X risks (Y critical)
1077
- - Performance: X risks (Y critical)
1078
- - Data: X risks (Y critical)
1079
- - Business: X risks (Y critical)
1080
- - Operational: X risks (Y critical)
1081
-
1082
- ### By Component
1083
-
1084
- - Frontend: X risks
1085
- - Backend: X risks
1086
- - Database: X risks
1087
- - Infrastructure: X risks
1088
-
1089
- ## Detailed Risk Register
1090
-
1091
- [Full table of all risks with scores and mitigations]
1092
-
1093
- ## Risk-Based Testing Strategy
1094
-
1095
- ### Priority 1: Critical Risk Tests
1096
-
1097
- - Test scenarios for critical risks
1098
- - Required test types (security, load, chaos)
1099
- - Test data requirements
1100
-
1101
- ### Priority 2: High Risk Tests
1102
-
1103
- - Integration test scenarios
1104
- - Edge case coverage
1105
-
1106
- ### Priority 3: Medium/Low Risk Tests
1107
-
1108
- - Standard functional tests
1109
- - Regression test suite
1110
-
1111
- ## Risk Acceptance Criteria
1112
-
1113
- ### Must Fix Before Production
1114
-
1115
- - All critical risks (score 9)
1116
- - High risks affecting security/data
1117
-
1118
- ### Can Deploy with Mitigation
1119
-
1120
- - Medium risks with compensating controls
1121
- - Low risks with monitoring in place
1122
-
1123
- ### Accepted Risks
1124
-
1125
- - Document any risks team accepts
1126
- - Include sign-off from appropriate authority
1127
-
1128
- ## Monitoring Requirements
1129
-
1130
- Post-deployment monitoring for:
1131
-
1132
- - Performance metrics for PERF risks
1133
- - Security alerts for SEC risks
1134
- - Error rates for operational risks
1135
- - Business KPIs for business risks
1136
-
1137
- ## Risk Review Triggers
1138
-
1139
- Review and update risk profile when:
1140
-
1141
- - Architecture changes significantly
1142
- - New integrations added
1143
- - Security vulnerabilities discovered
1144
- - Performance issues reported
1145
- - Regulatory requirements change
1146
- ```
1147
-
1148
- ## Risk Scoring Algorithm
1149
-
1150
- Calculate overall story risk score:
1151
-
1152
- ```
1153
- Base Score = 100
1154
- For each risk:
1155
- - Critical (9): Deduct 20 points
1156
- - High (6): Deduct 10 points
1157
- - Medium (4): Deduct 5 points
1158
- - Low (2-3): Deduct 2 points
1159
-
1160
- Minimum score = 0 (extremely risky)
1161
- Maximum score = 100 (minimal risk)
1162
- ```
1163
-
1164
- ## Risk-Based Recommendations
1165
-
1166
- Based on risk profile, recommend:
1167
-
1168
- 1. **Testing Priority**
1169
- - Which tests to run first
1170
- - Additional test types needed
1171
- - Test environment requirements
1172
-
1173
- 2. **Development Focus**
1174
- - Code review emphasis areas
1175
- - Additional validation needed
1176
- - Security controls to implement
1177
-
1178
- 3. **Deployment Strategy**
1179
- - Phased rollout for high-risk changes
1180
- - Feature flags for risky features
1181
- - Rollback procedures
1182
-
1183
- 4. **Monitoring Setup**
1184
- - Metrics to track
1185
- - Alerts to configure
1186
- - Dashboard requirements
1187
-
1188
- ## Integration with Quality Gates
1189
-
1190
- **Deterministic gate mapping:**
1191
-
1192
- - Any risk with score ≥ 9 → Gate = FAIL (unless waived)
1193
- - Else if any score ≥ 6 → Gate = CONCERNS
1194
- - Else → Gate = PASS
1195
- - Unmitigated risks → Document in gate
1196
-
1197
- ### Output 3: Story Hook Line
1198
-
1199
- **Print this line for review task to quote:**
1200
-
1201
- ```
1202
- Risk profile: docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
1203
- ```
1204
-
1205
- ## Key Principles
1206
-
1207
- - Identify risks early and systematically
1208
- - Use consistent probability × impact scoring
1209
- - Provide actionable mitigation strategies
1210
- - Link risks to specific test requirements
1211
- - Track residual risk after mitigation
1212
- - Update risk profile as story evolves
1213
- ==================== END: .bmad-core/tasks/risk-profile.md ====================
1214
-
1215
- ==================== START: .bmad-core/tasks/test-design.md ====================
1216
- # test-design
1217
-
1218
- Create comprehensive test scenarios with appropriate test level recommendations for story implementation.
1219
-
1220
- ## Inputs
1221
-
1222
- ```yaml
1223
- required:
1224
- - story_id: '{epic}.{story}' # e.g., "1.3"
1225
- - story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
1226
- - story_title: '{title}' # If missing, derive from story file H1
1227
- - story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
1228
- ```
1229
-
1230
- ## Purpose
1231
-
1232
- Design a complete test strategy that identifies what to test, at which level (unit/integration/e2e), and why. This ensures efficient test coverage without redundancy while maintaining appropriate test boundaries.
1233
-
1234
- ## Dependencies
1235
-
1236
- ```yaml
1237
- data:
1238
- - test-levels-framework.md # Unit/Integration/E2E decision criteria
1239
- - test-priorities-matrix.md # P0/P1/P2/P3 classification system
1240
- ```
1241
-
1242
- ## Process
1243
-
1244
- ### 1. Analyze Story Requirements
1245
-
1246
- Break down each acceptance criterion into testable scenarios. For each AC:
1247
-
1248
- - Identify the core functionality to test
1249
- - Determine data variations needed
1250
- - Consider error conditions
1251
- - Note edge cases
1252
-
1253
- ### 2. Apply Test Level Framework
1254
-
1255
- **Reference:** Load `test-levels-framework.md` for detailed criteria
1256
-
1257
- Quick rules:
1258
-
1259
- - **Unit**: Pure logic, algorithms, calculations
1260
- - **Integration**: Component interactions, DB operations
1261
- - **E2E**: Critical user journeys, compliance
1262
-
1263
- ### 3. Assign Priorities
1264
-
1265
- **Reference:** Load `test-priorities-matrix.md` for classification
1266
-
1267
- Quick priority assignment:
1268
-
1269
- - **P0**: Revenue-critical, security, compliance
1270
- - **P1**: Core user journeys, frequently used
1271
- - **P2**: Secondary features, admin functions
1272
- - **P3**: Nice-to-have, rarely used
1273
-
1274
- ### 4. Design Test Scenarios
1275
-
1276
- For each identified test need, create:
1277
-
1278
- ```yaml
1279
- test_scenario:
1280
- id: '{epic}.{story}-{LEVEL}-{SEQ}'
1281
- requirement: 'AC reference'
1282
- priority: P0|P1|P2|P3
1283
- level: unit|integration|e2e
1284
- description: 'What is being tested'
1285
- justification: 'Why this level was chosen'
1286
- mitigates_risks: ['RISK-001'] # If risk profile exists
1287
- ```
1288
-
1289
- ### 5. Validate Coverage
1290
-
1291
- Ensure:
1292
-
1293
- - Every AC has at least one test
1294
- - No duplicate coverage across levels
1295
- - Critical paths have multiple levels
1296
- - Risk mitigations are addressed
1297
-
1298
- ## Outputs
1299
-
1300
- ### Output 1: Test Design Document
1301
-
1302
- **Save to:** `docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md`
1303
-
1304
- ```markdown
1305
- # Test Design: Story {epic}.{story}
1306
-
1307
- Date: {date}
1308
- Designer: Quinn (Test Architect)
1309
-
1310
- ## Test Strategy Overview
1311
-
1312
- - Total test scenarios: X
1313
- - Unit tests: Y (A%)
1314
- - Integration tests: Z (B%)
1315
- - E2E tests: W (C%)
1316
- - Priority distribution: P0: X, P1: Y, P2: Z
1317
-
1318
- ## Test Scenarios by Acceptance Criteria
1319
-
1320
- ### AC1: {description}
1321
-
1322
- #### Scenarios
1323
-
1324
- | ID | Level | Priority | Test | Justification |
1325
- | ------------ | ----------- | -------- | ------------------------- | ------------------------ |
1326
- | 1.3-UNIT-001 | Unit | P0 | Validate input format | Pure validation logic |
1327
- | 1.3-INT-001 | Integration | P0 | Service processes request | Multi-component flow |
1328
- | 1.3-E2E-001 | E2E | P1 | User completes journey | Critical path validation |
1329
-
1330
- [Continue for all ACs...]
1331
-
1332
- ## Risk Coverage
1333
-
1334
- [Map test scenarios to identified risks if risk profile exists]
1335
-
1336
- ## Recommended Execution Order
1337
-
1338
- 1. P0 Unit tests (fail fast)
1339
- 2. P0 Integration tests
1340
- 3. P0 E2E tests
1341
- 4. P1 tests in order
1342
- 5. P2+ as time permits
1343
- ```
1344
-
1345
- ### Output 2: Gate YAML Block
1346
-
1347
- Generate for inclusion in quality gate:
1348
-
1349
- ```yaml
1350
- test_design:
1351
- scenarios_total: X
1352
- by_level:
1353
- unit: Y
1354
- integration: Z
1355
- e2e: W
1356
- by_priority:
1357
- p0: A
1358
- p1: B
1359
- p2: C
1360
- coverage_gaps: [] # List any ACs without tests
1361
- ```
1362
-
1363
- ### Output 3: Trace References
1364
-
1365
- Print for use by trace-requirements task:
1366
-
1367
- ```text
1368
- Test design matrix: docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md
1369
- P0 tests identified: {count}
1370
- ```
1371
-
1372
- ## Quality Checklist
1373
-
1374
- Before finalizing, verify:
1375
-
1376
- - [ ] Every AC has test coverage
1377
- - [ ] Test levels are appropriate (not over-testing)
1378
- - [ ] No duplicate coverage across levels
1379
- - [ ] Priorities align with business risk
1380
- - [ ] Test IDs follow naming convention
1381
- - [ ] Scenarios are atomic and independent
1382
-
1383
- ## Key Principles
1384
-
1385
- - **Shift left**: Prefer unit over integration, integration over E2E
1386
- - **Risk-based**: Focus on what could go wrong
1387
- - **Efficient coverage**: Test once at the right level
1388
- - **Maintainability**: Consider long-term test maintenance
1389
- - **Fast feedback**: Quick tests run first
1390
- ==================== END: .bmad-core/tasks/test-design.md ====================
1391
-
1392
- ==================== START: .bmad-core/tasks/nfr-assess.md ====================
1393
- # nfr-assess
1394
-
1395
- Quick NFR validation focused on the core four: security, performance, reliability, maintainability.
1396
-
1397
- ## Inputs
1398
-
1399
- ```yaml
1400
- required:
1401
- - story_id: '{epic}.{story}' # e.g., "1.3"
1402
- - story_path: 'docs/stories/{epic}.{story}.*.md'
1403
-
1404
- optional:
1405
- - architecture_refs: 'docs/architecture/*.md'
1406
- - technical_preferences: 'docs/technical-preferences.md'
1407
- - acceptance_criteria: From story file
1408
- ```
1409
-
1410
- ## Purpose
1411
-
1412
- Assess non-functional requirements for a story and generate:
1413
-
1414
- 1. YAML block for the gate file's `nfr_validation` section
1415
- 2. Brief markdown assessment saved to `docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
1416
-
1417
- ## Process
1418
-
1419
- ### 0. Fail-safe for Missing Inputs
1420
-
1421
- If story_path or story file can't be found:
1422
-
1423
- - Still create assessment file with note: "Source story not found"
1424
- - Set all selected NFRs to CONCERNS with notes: "Target unknown / evidence missing"
1425
- - Continue with assessment to provide value
1426
-
1427
- ### 1. Elicit Scope
1428
-
1429
- **Interactive mode:** Ask which NFRs to assess
1430
- **Non-interactive mode:** Default to core four (security, performance, reliability, maintainability)
1431
-
1432
- ```text
1433
- Which NFRs should I assess? (Enter numbers or press Enter for default)
1434
- [1] Security (default)
1435
- [2] Performance (default)
1436
- [3] Reliability (default)
1437
- [4] Maintainability (default)
1438
- [5] Usability
1439
- [6] Compatibility
1440
- [7] Portability
1441
- [8] Functional Suitability
1442
-
1443
- > [Enter for 1-4]
1444
- ```
1445
-
1446
- ### 2. Check for Thresholds
1447
-
1448
- Look for NFR requirements in:
1449
-
1450
- - Story acceptance criteria
1451
- - `docs/architecture/*.md` files
1452
- - `docs/technical-preferences.md`
1453
-
1454
- **Interactive mode:** Ask for missing thresholds
1455
- **Non-interactive mode:** Mark as CONCERNS with "Target unknown"
1456
-
1457
- ```text
1458
- No performance requirements found. What's your target response time?
1459
- > 200ms for API calls
1460
-
1461
- No security requirements found. Required auth method?
1462
- > JWT with refresh tokens
1463
- ```
1464
-
1465
- **Unknown targets policy:** If a target is missing and not provided, mark status as CONCERNS with notes: "Target unknown"
1466
-
1467
- ### 3. Quick Assessment
1468
-
1469
- For each selected NFR, check:
1470
-
1471
- - Is there evidence it's implemented?
1472
- - Can we validate it?
1473
- - Are there obvious gaps?
1474
-
1475
- ### 4. Generate Outputs
1476
-
1477
- ## Output 1: Gate YAML Block
1478
-
1479
- Generate ONLY for NFRs actually assessed (no placeholders):
1480
-
1481
- ```yaml
1482
- # Gate YAML (copy/paste):
1483
- nfr_validation:
1484
- _assessed: [security, performance, reliability, maintainability]
1485
- security:
1486
- status: CONCERNS
1487
- notes: 'No rate limiting on auth endpoints'
1488
- performance:
1489
- status: PASS
1490
- notes: 'Response times < 200ms verified'
1491
- reliability:
1492
- status: PASS
1493
- notes: 'Error handling and retries implemented'
1494
- maintainability:
1495
- status: CONCERNS
1496
- notes: 'Test coverage at 65%, target is 80%'
1497
- ```
1498
-
1499
- ## Deterministic Status Rules
1500
-
1501
- - **FAIL**: Any selected NFR has critical gap or target clearly not met
1502
- - **CONCERNS**: No FAILs, but any NFR is unknown/partial/missing evidence
1503
- - **PASS**: All selected NFRs meet targets with evidence
1504
-
1505
- ## Quality Score Calculation
1506
-
1507
- ```
1508
- quality_score = 100
1509
- - 20 for each FAIL attribute
1510
- - 10 for each CONCERNS attribute
1511
- Floor at 0, ceiling at 100
1512
- ```
1513
-
1514
- If `technical-preferences.md` defines custom weights, use those instead.
1515
-
1516
- ## Output 2: Brief Assessment Report
1517
-
1518
- **ALWAYS save to:** `docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
1519
-
1520
- ```markdown
1521
- # NFR Assessment: {epic}.{story}
1522
-
1523
- Date: {date}
1524
- Reviewer: Quinn
1525
-
1526
- <!-- Note: Source story not found (if applicable) -->
1527
-
1528
- ## Summary
1529
-
1530
- - Security: CONCERNS - Missing rate limiting
1531
- - Performance: PASS - Meets <200ms requirement
1532
- - Reliability: PASS - Proper error handling
1533
- - Maintainability: CONCERNS - Test coverage below target
1534
-
1535
- ## Critical Issues
1536
-
1537
- 1. **No rate limiting** (Security)
1538
- - Risk: Brute force attacks possible
1539
- - Fix: Add rate limiting middleware to auth endpoints
1540
-
1541
- 2. **Test coverage 65%** (Maintainability)
1542
- - Risk: Untested code paths
1543
- - Fix: Add tests for uncovered branches
1544
-
1545
- ## Quick Wins
1546
-
1547
- - Add rate limiting: ~2 hours
1548
- - Increase test coverage: ~4 hours
1549
- - Add performance monitoring: ~1 hour
1550
- ```
1551
-
1552
- ## Output 3: Story Update Line
1553
-
1554
- **End with this line for the review task to quote:**
1555
-
1556
- ```
1557
- NFR assessment: docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
1558
- ```
1559
-
1560
- ## Output 4: Gate Integration Line
1561
-
1562
- **Always print at the end:**
1563
-
1564
- ```
1565
- Gate NFR block ready → paste into docs/qa/gates/{epic}.{story}-{slug}.yml under nfr_validation
1566
- ```
1567
-
1568
- ## Assessment Criteria
1569
-
1570
- ### Security
1571
-
1572
- **PASS if:**
1573
-
1574
- - Authentication implemented
1575
- - Authorization enforced
1576
- - Input validation present
1577
- - No hardcoded secrets
1578
-
1579
- **CONCERNS if:**
1580
-
1581
- - Missing rate limiting
1582
- - Weak encryption
1583
- - Incomplete authorization
1584
-
1585
- **FAIL if:**
1586
-
1587
- - No authentication
1588
- - Hardcoded credentials
1589
- - SQL injection vulnerabilities
1590
-
1591
- ### Performance
1592
-
1593
- **PASS if:**
1594
-
1595
- - Meets response time targets
1596
- - No obvious bottlenecks
1597
- - Reasonable resource usage
1598
-
1599
- **CONCERNS if:**
1600
-
1601
- - Close to limits
1602
- - Missing indexes
1603
- - No caching strategy
1604
-
1605
- **FAIL if:**
1606
-
1607
- - Exceeds response time limits
1608
- - Memory leaks
1609
- - Unoptimized queries
1610
-
1611
- ### Reliability
1612
-
1613
- **PASS if:**
1614
-
1615
- - Error handling present
1616
- - Graceful degradation
1617
- - Retry logic where needed
1618
-
1619
- **CONCERNS if:**
1620
-
1621
- - Some error cases unhandled
1622
- - No circuit breakers
1623
- - Missing health checks
1624
-
1625
- **FAIL if:**
1626
-
1627
- - No error handling
1628
- - Crashes on errors
1629
- - No recovery mechanisms
1630
-
1631
- ### Maintainability
1632
-
1633
- **PASS if:**
1634
-
1635
- - Test coverage meets target
1636
- - Code well-structured
1637
- - Documentation present
1638
-
1639
- **CONCERNS if:**
1640
-
1641
- - Test coverage below target
1642
- - Some code duplication
1643
- - Missing documentation
1644
-
1645
- **FAIL if:**
1646
-
1647
- - No tests
1648
- - Highly coupled code
1649
- - No documentation
1650
-
1651
- ## Quick Reference
1652
-
1653
- ### What to Check
1654
-
1655
- ```yaml
1656
- security:
1657
- - Authentication mechanism
1658
- - Authorization checks
1659
- - Input validation
1660
- - Secret management
1661
- - Rate limiting
1662
-
1663
- performance:
1664
- - Response times
1665
- - Database queries
1666
- - Caching usage
1667
- - Resource consumption
1668
-
1669
- reliability:
1670
- - Error handling
1671
- - Retry logic
1672
- - Circuit breakers
1673
- - Health checks
1674
- - Logging
1675
-
1676
- maintainability:
1677
- - Test coverage
1678
- - Code structure
1679
- - Documentation
1680
- - Dependencies
1681
- ```
1682
-
1683
- ## Key Principles
1684
-
1685
- - Focus on the core four NFRs by default
1686
- - Quick assessment, not deep analysis
1687
- - Gate-ready output format
1688
- - Brief, actionable findings
1689
- - Skip what doesn't apply
1690
- - Deterministic status rules for consistency
1691
- - Unknown targets → CONCERNS, not guesses
1692
-
1693
- ---
1694
-
1695
- ## Appendix: ISO 25010 Reference
1696
-
1697
- <details>
1698
- <summary>Full ISO 25010 Quality Model (click to expand)</summary>
1699
-
1700
- ### All 8 Quality Characteristics
1701
-
1702
- 1. **Functional Suitability**: Completeness, correctness, appropriateness
1703
- 2. **Performance Efficiency**: Time behavior, resource use, capacity
1704
- 3. **Compatibility**: Co-existence, interoperability
1705
- 4. **Usability**: Learnability, operability, accessibility
1706
- 5. **Reliability**: Maturity, availability, fault tolerance
1707
- 6. **Security**: Confidentiality, integrity, authenticity
1708
- 7. **Maintainability**: Modularity, reusability, testability
1709
- 8. **Portability**: Adaptability, installability
1710
-
1711
- Use these when assessing beyond the core four.
1712
-
1713
- </details>
1714
-
1715
- <details>
1716
- <summary>Example: Deep Performance Analysis (click to expand)</summary>
1717
-
1718
- ```yaml
1719
- performance_deep_dive:
1720
- response_times:
1721
- p50: 45ms
1722
- p95: 180ms
1723
- p99: 350ms
1724
- database:
1725
- slow_queries: 2
1726
- missing_indexes: ['users.email', 'orders.user_id']
1727
- caching:
1728
- hit_rate: 0%
1729
- recommendation: 'Add Redis for session data'
1730
- load_test:
1731
- max_rps: 150
1732
- breaking_point: 200 rps
1733
- ```
1734
-
1735
- </details>
1736
- ==================== END: .bmad-core/tasks/nfr-assess.md ====================
1737
-
1738
- ==================== START: .bmad-core/templates/story-tmpl.yaml ====================
1739
- template:
1740
- id: story-template-v2
1741
- name: Story Document
1742
- version: 2.0
1743
- output:
1744
- format: markdown
1745
- filename: docs/stories/{{epic_num}}.{{story_num}}.{{story_title_short}}.md
1746
- title: "Story {{epic_num}}.{{story_num}}: {{story_title_short}}"
1747
-
1748
- workflow:
1749
- mode: interactive
1750
- elicitation: advanced-elicitation
1751
-
1752
- agent_config:
1753
- editable_sections:
1754
- - Status
1755
- - Story
1756
- - Acceptance Criteria
1757
- - Tasks / Subtasks
1758
- - Dev Notes
1759
- - Testing
1760
- - Change Log
1761
-
1762
- sections:
1763
- - id: status
1764
- title: Status
1765
- type: choice
1766
- choices: [Draft, Approved, InProgress, Review, Done]
1767
- instruction: Select the current status of the story
1768
- owner: scrum-master
1769
- editors: [scrum-master, dev-agent]
1770
-
1771
- - id: story
1772
- title: Story
1773
- type: template-text
1774
- template: |
1775
- **As a** {{role}},
1776
- **I want** {{action}},
1777
- **so that** {{benefit}}
1778
- instruction: Define the user story using the standard format with role, action, and benefit
1779
- elicit: true
1780
- owner: scrum-master
1781
- editors: [scrum-master]
1782
-
1783
- - id: acceptance-criteria
1784
- title: Acceptance Criteria
1785
- type: numbered-list
1786
- instruction: Copy the acceptance criteria numbered list from the epic file
1787
- elicit: true
1788
- owner: scrum-master
1789
- editors: [scrum-master]
1790
-
1791
- - id: tasks-subtasks
1792
- title: Tasks / Subtasks
1793
- type: bullet-list
1794
- instruction: |
1795
- Break down the story into specific tasks and subtasks needed for implementation.
1796
- Reference applicable acceptance criteria numbers where relevant.
1797
- template: |
1798
- - [ ] Task 1 (AC: # if applicable)
1799
- - [ ] Subtask1.1...
1800
- - [ ] Task 2 (AC: # if applicable)
1801
- - [ ] Subtask 2.1...
1802
- - [ ] Task 3 (AC: # if applicable)
1803
- - [ ] Subtask 3.1...
1804
- elicit: true
1805
- owner: scrum-master
1806
- editors: [scrum-master, dev-agent]
1807
-
1808
- - id: dev-notes
1809
- title: Dev Notes
1810
- instruction: |
1811
- Populate relevant information, only what was pulled from actual artifacts from docs folder, relevant to this story:
1812
- - Do not invent information
1813
- - If known add Relevant Source Tree info that relates to this story
1814
- - If there were important notes from previous story that are relevant to this one, include them here
1815
- - Put enough information in this section so that the dev agent should NEVER need to read the architecture documents, these notes along with the tasks and subtasks must give the Dev Agent the complete context it needs to comprehend with the least amount of overhead the information to complete the story, meeting all AC and completing all tasks+subtasks
1816
- elicit: true
1817
- owner: scrum-master
1818
- editors: [scrum-master]
1819
- sections:
1820
- - id: testing-standards
1821
- title: Testing
1822
- instruction: |
1823
- List Relevant Testing Standards from Architecture the Developer needs to conform to:
1824
- - Test file location
1825
- - Test standards
1826
- - Testing frameworks and patterns to use
1827
- - Any specific testing requirements for this story
1828
- elicit: true
1829
- owner: scrum-master
1830
- editors: [scrum-master]
1831
-
1832
- - id: change-log
1833
- title: Change Log
1834
- type: table
1835
- columns: [Date, Version, Description, Author]
1836
- instruction: Track changes made to this story document
1837
- owner: scrum-master
1838
- editors: [scrum-master, dev-agent, qa-agent]
1839
-
1840
- - id: dev-agent-record
1841
- title: Dev Agent Record
1842
- instruction: This section is populated by the development agent during implementation
1843
- owner: dev-agent
1844
- editors: [dev-agent]
1845
- sections:
1846
- - id: agent-model
1847
- title: Agent Model Used
1848
- template: "{{agent_model_name_version}}"
1849
- instruction: Record the specific AI agent model and version used for development
1850
- owner: dev-agent
1851
- editors: [dev-agent]
1852
-
1853
- - id: debug-log-references
1854
- title: Debug Log References
1855
- instruction: Reference any debug logs or traces generated during development
1856
- owner: dev-agent
1857
- editors: [dev-agent]
1858
-
1859
- - id: completion-notes
1860
- title: Completion Notes List
1861
- instruction: Notes about the completion of tasks and any issues encountered
1862
- owner: dev-agent
1863
- editors: [dev-agent]
1864
-
1865
- - id: file-list
1866
- title: File List
1867
- instruction: List all files created, modified, or affected during story implementation
1868
- owner: dev-agent
1869
- editors: [dev-agent]
1870
-
1871
- - id: qa-results
1872
- title: QA Results
1873
- instruction: Results from QA Agent QA review of the completed story implementation
1874
- owner: qa-agent
1875
- editors: [qa-agent]
1876
- ==================== END: .bmad-core/templates/story-tmpl.yaml ====================
1877
-
1878
- ==================== START: .bmad-core/templates/qa-gate-tmpl.yaml ====================
1879
- template:
1880
- id: qa-gate-template-v1
1881
- name: Quality Gate Decision
1882
- version: 1.0
1883
- output:
1884
- format: yaml
1885
- filename: docs/qa/gates/{{epic_num}}.{{story_num}}-{{story_slug}}.yml
1886
- title: "Quality Gate: {{epic_num}}.{{story_num}}"
1887
-
1888
- # Required fields (keep these first)
1889
- schema: 1
1890
- story: "{{epic_num}}.{{story_num}}"
1891
- story_title: "{{story_title}}"
1892
- gate: "{{gate_status}}" # PASS|CONCERNS|FAIL|WAIVED
1893
- status_reason: "{{status_reason}}" # 1-2 sentence summary of why this gate decision
1894
- reviewer: "Quinn (Test Architect)"
1895
- updated: "{{iso_timestamp}}"
1896
-
1897
- # Always present but only active when WAIVED
1898
- waiver: { active: false }
1899
-
1900
- # Issues (if any) - Use fixed severity: low | medium | high
1901
- top_issues: []
1902
-
1903
- # Risk summary (from risk-profile task if run)
1904
- risk_summary:
1905
- totals: { critical: 0, high: 0, medium: 0, low: 0 }
1906
- recommendations:
1907
- must_fix: []
1908
- monitor: []
1909
-
1910
- # Examples section using block scalars for clarity
1911
- examples:
1912
- with_issues: |
1913
- top_issues:
1914
- - id: "SEC-001"
1915
- severity: high # ONLY: low|medium|high
1916
- finding: "No rate limiting on login endpoint"
1917
- suggested_action: "Add rate limiting middleware before production"
1918
- - id: "TEST-001"
1919
- severity: medium
1920
- finding: "Missing integration tests for auth flow"
1921
- suggested_action: "Add test coverage for critical paths"
1922
-
1923
- when_waived: |
1924
- waiver:
1925
- active: true
1926
- reason: "Accepted for MVP release - will address in next sprint"
1927
- approved_by: "Product Owner"
1928
-
1929
- # ============ Optional Extended Fields ============
1930
- # Uncomment and use if your team wants more detail
1931
-
1932
- optional_fields_examples:
1933
- quality_and_expiry: |
1934
- quality_score: 75 # 0-100 (optional scoring)
1935
- expires: "2025-01-26T00:00:00Z" # Optional gate freshness window
1936
-
1937
- evidence: |
1938
- evidence:
1939
- tests_reviewed: 15
1940
- risks_identified: 3
1941
- trace:
1942
- ac_covered: [1, 2, 3] # AC numbers with test coverage
1943
- ac_gaps: [4] # AC numbers lacking coverage
1944
-
1945
- nfr_validation: |
1946
- nfr_validation:
1947
- security: { status: CONCERNS, notes: "Rate limiting missing" }
1948
- performance: { status: PASS, notes: "" }
1949
- reliability: { status: PASS, notes: "" }
1950
- maintainability: { status: PASS, notes: "" }
1951
-
1952
- history: |
1953
- history: # Append-only audit trail
1954
- - at: "2025-01-12T10:00:00Z"
1955
- gate: FAIL
1956
- note: "Initial review - missing tests"
1957
- - at: "2025-01-12T15:00:00Z"
1958
- gate: CONCERNS
1959
- note: "Tests added but rate limiting still missing"
1960
-
1961
- risk_summary: |
1962
- risk_summary: # From risk-profile task
1963
- totals:
1964
- critical: 0
1965
- high: 0
1966
- medium: 0
1967
- low: 0
1968
- # 'highest' is emitted only when risks exist
1969
- recommendations:
1970
- must_fix: []
1971
- monitor: []
1972
-
1973
- recommendations: |
1974
- recommendations:
1975
- immediate: # Must fix before production
1976
- - action: "Add rate limiting to auth endpoints"
1977
- refs: ["api/auth/login.ts:42-68"]
1978
- future: # Can be addressed later
1979
- - action: "Consider caching for better performance"
1980
- refs: ["services/data.service.ts"]
1981
- ==================== END: .bmad-core/templates/qa-gate-tmpl.yaml ====================
1982
-
1983
- ==================== START: .bmad-core/data/technical-preferences.md ====================
1984
- # User-Defined Preferred Patterns and Preferences
1985
-
1986
- None Listed
1987
- ==================== END: .bmad-core/data/technical-preferences.md ====================