bmalph 1.0.0 → 2.2.1

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