bmad-method 6.0.0-alpha.3 → 6.0.0-alpha.5

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 (540) hide show
  1. package/.claude/commands/bmad/bmm/agents/analyst.md +67 -0
  2. package/.claude/commands/bmad/bmm/agents/architect.md +72 -0
  3. package/.claude/commands/bmad/bmm/agents/dev.md +69 -0
  4. package/.claude/commands/bmad/bmm/agents/paige.md +82 -0
  5. package/.claude/commands/bmad/bmm/agents/pm.md +76 -0
  6. package/.claude/commands/bmad/bmm/agents/sm.md +85 -0
  7. package/.claude/commands/bmad/bmm/agents/tea.md +72 -0
  8. package/.claude/commands/bmad/bmm/agents/tech-writer.md +82 -0
  9. package/.claude/commands/bmad/bmm/agents/ux-designer.md +71 -0
  10. package/.claude/commands/bmad/bmm/workflows/README.md +132 -0
  11. package/.claude/commands/bmad/bmm/workflows/architecture.md +15 -0
  12. package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +15 -0
  13. package/.claude/commands/bmad/bmm/workflows/code-review.md +15 -0
  14. package/.claude/commands/bmad/bmm/workflows/correct-course.md +15 -0
  15. package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +15 -0
  16. package/.claude/commands/bmad/bmm/workflows/create-story.md +15 -0
  17. package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +15 -0
  18. package/.claude/commands/bmad/bmm/workflows/dev-story.md +15 -0
  19. package/.claude/commands/bmad/bmm/workflows/document-project.md +15 -0
  20. package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +15 -0
  21. package/.claude/commands/bmad/bmm/workflows/narrative.md +15 -0
  22. package/.claude/commands/bmad/bmm/workflows/prd.md +15 -0
  23. package/.claude/commands/bmad/bmm/workflows/product-brief.md +15 -0
  24. package/.claude/commands/bmad/bmm/workflows/research.md +15 -0
  25. package/.claude/commands/bmad/bmm/workflows/retrospective.md +15 -0
  26. package/.claude/commands/bmad/bmm/workflows/solutioning-gate-check.md +15 -0
  27. package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +15 -0
  28. package/.claude/commands/bmad/bmm/workflows/story-context.md +15 -0
  29. package/.claude/commands/bmad/bmm/workflows/story-done.md +15 -0
  30. package/.claude/commands/bmad/bmm/workflows/story-ready.md +15 -0
  31. package/.claude/commands/bmad/bmm/workflows/tech-spec-sm.md +15 -0
  32. package/.claude/commands/bmad/bmm/workflows/tech-spec.md +15 -0
  33. package/.claude/commands/bmad/bmm/workflows/workflow-init.md +15 -0
  34. package/.claude/commands/bmad/bmm/workflows/workflow-status.md +15 -0
  35. package/.claude/commands/bmad/cis/agents/README.md +104 -0
  36. package/.claude/commands/bmad/cis/agents/brainstorming-coach.md +62 -0
  37. package/.claude/commands/bmad/cis/agents/creative-problem-solver.md +62 -0
  38. package/.claude/commands/bmad/cis/agents/design-thinking-coach.md +62 -0
  39. package/.claude/commands/bmad/cis/agents/innovation-strategist.md +62 -0
  40. package/.claude/commands/bmad/cis/agents/storyteller.md +59 -0
  41. package/.claude/commands/bmad/cis/workflows/README.md +37 -0
  42. package/.claude/commands/bmad/cis/workflows/design-thinking.md +15 -0
  43. package/.claude/commands/bmad/cis/workflows/innovation-strategy.md +15 -0
  44. package/.claude/commands/bmad/cis/workflows/problem-solving.md +15 -0
  45. package/.claude/commands/bmad/cis/workflows/storytelling.md +15 -0
  46. package/.claude/commands/bmad/core/workflows/README.md +10 -0
  47. package/.claude/settings.local.json +7 -42
  48. package/CHANGELOG.md +544 -0
  49. package/README.md +266 -101
  50. package/bmad/_cfg/agent-manifest.csv +13 -3
  51. package/bmad/_cfg/agents/bmm-dev.customize.yaml +42 -0
  52. package/bmad/_cfg/agents/bmm-paige.customize.yaml +42 -0
  53. package/bmad/_cfg/agents/bmm-pm.customize.yaml +42 -0
  54. package/bmad/_cfg/agents/bmm-sm.customize.yaml +42 -0
  55. package/bmad/_cfg/agents/bmm-tea.customize.yaml +42 -0
  56. package/bmad/_cfg/agents/bmm-tech-writer.customize.yaml +42 -0
  57. package/bmad/_cfg/agents/bmm-ux-designer.customize.yaml +42 -0
  58. package/bmad/_cfg/agents/cis-brainstorming-coach.customize.yaml +42 -0
  59. package/bmad/_cfg/agents/cis-creative-problem-solver.customize.yaml +42 -0
  60. package/bmad/_cfg/agents/cis-design-thinking-coach.customize.yaml +42 -0
  61. package/bmad/_cfg/agents/cis-innovation-strategist.customize.yaml +42 -0
  62. package/bmad/_cfg/agents/cis-storyteller.customize.yaml +42 -0
  63. package/bmad/_cfg/files-manifest.csv +267 -22
  64. package/bmad/_cfg/ides/claude-code.yaml +6 -0
  65. package/bmad/_cfg/manifest.yaml +5 -5
  66. package/bmad/_cfg/task-manifest.csv +5 -0
  67. package/bmad/_cfg/tool-manifest.csv +1 -0
  68. package/bmad/_cfg/workflow-manifest.csv +37 -2
  69. package/bmad/bmb/README.md +135 -73
  70. package/bmad/bmb/agents/bmad-builder.md.bak +70 -0
  71. package/bmad/bmb/config.yaml +2 -2
  72. package/bmad/bmb/workflows/audit-workflow/instructions.md +1 -1
  73. package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +3 -1
  74. package/bmad/bmb/workflows/create-agent/README.md +126 -243
  75. package/bmad/bmb/workflows/create-agent/instructions.md +25 -12
  76. package/bmad/bmb/workflows/create-module/README.md +163 -154
  77. package/bmad/bmb/workflows/create-module/workflow.yaml.bak +2 -0
  78. package/bmad/bmb/workflows/create-workflow/instructions.md +16 -8
  79. package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +158 -0
  80. package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +2 -0
  81. package/bmad/bmb/workflows/edit-agent/workflow.yaml.bak +33 -0
  82. package/bmad/bmb/workflows/edit-module/workflow.yaml.bak +34 -0
  83. package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +2 -0
  84. package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +2 -0
  85. package/bmad/bmb/workflows/redoc/workflow.yaml.bak +1 -0
  86. package/bmad/bmm/README.md +128 -0
  87. package/bmad/bmm/README.md.bak +169 -0
  88. package/bmad/bmm/agents/analyst.md +67 -0
  89. package/bmad/bmm/agents/analyst.md.bak +67 -0
  90. package/bmad/bmm/agents/architect.md +72 -0
  91. package/bmad/bmm/agents/architect.md.bak +73 -0
  92. package/bmad/bmm/agents/dev.md +69 -0
  93. package/bmad/bmm/agents/dev.md.bak +69 -0
  94. package/bmad/bmm/agents/paige.md.bak +82 -0
  95. package/bmad/bmm/agents/pm.md +76 -0
  96. package/bmad/bmm/agents/pm.md.bak +76 -0
  97. package/bmad/bmm/agents/sm.md +85 -0
  98. package/bmad/bmm/agents/sm.md.bak +85 -0
  99. package/bmad/bmm/agents/tea.md +72 -0
  100. package/bmad/bmm/agents/tea.md.bak +72 -0
  101. package/bmad/bmm/agents/tech-writer.md +82 -0
  102. package/bmad/bmm/agents/ux-designer.md +71 -0
  103. package/bmad/bmm/agents/ux-designer.md.bak +71 -0
  104. package/bmad/bmm/config.yaml +17 -0
  105. package/bmad/bmm/docs/README.md +235 -0
  106. package/bmad/bmm/docs/agents-guide.md +1057 -0
  107. package/bmad/bmm/docs/brownfield-guide.md +759 -0
  108. package/bmad/bmm/docs/enterprise-agentic-development.md +680 -0
  109. package/bmad/bmm/docs/faq.md +589 -0
  110. package/bmad/bmm/docs/glossary.md +321 -0
  111. package/bmad/bmm/docs/party-mode.md +224 -0
  112. package/bmad/bmm/docs/quick-spec-flow.md +652 -0
  113. package/{docs/BMad-Method-V6-Quick-Start.md → bmad/bmm/docs/quick-start.md} +72 -47
  114. package/bmad/bmm/docs/scale-adaptive-system.md +599 -0
  115. package/bmad/bmm/docs/troubleshooting.md +680 -0
  116. package/{src/modules/bmm/workflows/3-solutioning/architecture/README.md → bmad/bmm/docs/workflow-architecture-reference.md} +130 -77
  117. package/{src/modules/bmm/workflows/document-project/README.md → bmad/bmm/docs/workflow-document-project-reference.md} +45 -2
  118. package/bmad/bmm/docs/workflows-analysis.md +670 -0
  119. package/bmad/bmm/docs/workflows-implementation.md +1758 -0
  120. package/bmad/bmm/docs/workflows-planning.md +1086 -0
  121. package/bmad/bmm/docs/workflows-solutioning.md +726 -0
  122. package/bmad/bmm/tasks/daily-standup.xml +85 -0
  123. package/bmad/bmm/teams/team-fullstack.yaml +11 -0
  124. package/bmad/bmm/teams/team-gamedev.yaml +14 -0
  125. package/bmad/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  126. package/bmad/bmm/testarch/knowledge/component-tdd.md +486 -0
  127. package/bmad/bmm/testarch/knowledge/contract-testing.md +957 -0
  128. package/bmad/bmm/testarch/knowledge/data-factories.md +500 -0
  129. package/bmad/bmm/testarch/knowledge/email-auth.md +721 -0
  130. package/bmad/bmm/testarch/knowledge/error-handling.md +725 -0
  131. package/bmad/bmm/testarch/knowledge/feature-flags.md +750 -0
  132. package/bmad/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  133. package/bmad/bmm/testarch/knowledge/network-first.md +486 -0
  134. package/bmad/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  135. package/bmad/bmm/testarch/knowledge/playwright-config.md +730 -0
  136. package/bmad/bmm/testarch/knowledge/probability-impact.md +601 -0
  137. package/bmad/bmm/testarch/knowledge/risk-governance.md +615 -0
  138. package/bmad/bmm/testarch/knowledge/selective-testing.md +732 -0
  139. package/bmad/bmm/testarch/knowledge/selector-resilience.md +527 -0
  140. package/bmad/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  141. package/bmad/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  142. package/bmad/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  143. package/bmad/bmm/testarch/knowledge/test-quality.md +664 -0
  144. package/bmad/bmm/testarch/knowledge/timing-debugging.md +372 -0
  145. package/bmad/bmm/testarch/knowledge/visual-debugging.md +524 -0
  146. package/bmad/bmm/testarch/tea-index.csv +22 -0
  147. package/bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +110 -0
  148. package/bmad/bmm/workflows/1-analysis/brainstorm-project/project-context.md +25 -0
  149. package/bmad/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +26 -0
  150. package/bmad/bmm/workflows/1-analysis/domain-research/instructions.md +423 -0
  151. package/bmad/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  152. package/bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +36 -0
  153. package/bmad/bmm/workflows/1-analysis/product-brief/checklist.md +115 -0
  154. package/bmad/bmm/workflows/1-analysis/product-brief/instructions.md +524 -0
  155. package/bmad/bmm/workflows/1-analysis/product-brief/template.md +181 -0
  156. package/bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml +45 -0
  157. package/bmad/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  158. package/bmad/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  159. package/bmad/bmm/workflows/1-analysis/research/checklist.md +299 -0
  160. package/bmad/bmm/workflows/1-analysis/research/claude-code/injections.yaml +114 -0
  161. package/bmad/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +439 -0
  162. package/bmad/bmm/workflows/1-analysis/research/instructions-market.md +679 -0
  163. package/bmad/bmm/workflows/1-analysis/research/instructions-router.md +133 -0
  164. package/bmad/bmm/workflows/1-analysis/research/instructions-technical.md +538 -0
  165. package/bmad/bmm/workflows/1-analysis/research/template-deep-prompt.md +94 -0
  166. package/bmad/bmm/workflows/1-analysis/research/template-market.md +347 -0
  167. package/bmad/bmm/workflows/1-analysis/research/template-technical.md +245 -0
  168. package/bmad/bmm/workflows/1-analysis/research/workflow.yaml +44 -0
  169. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +310 -0
  170. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1319 -0
  171. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +145 -0
  172. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +64 -0
  173. package/bmad/bmm/workflows/2-plan-workflows/narrative/checklist.md +139 -0
  174. package/bmad/bmm/workflows/2-plan-workflows/narrative/instructions-narrative.md +608 -0
  175. package/bmad/bmm/workflows/2-plan-workflows/narrative/narrative-template.md +195 -0
  176. package/bmad/bmm/workflows/2-plan-workflows/narrative/workflow.yaml +29 -0
  177. package/bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +349 -0
  178. package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +395 -0
  179. package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +33 -0
  180. package/bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  181. package/bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +423 -0
  182. package/bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +237 -0
  183. package/bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  184. package/bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +46 -0
  185. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +214 -0
  186. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +58 -0
  187. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +200 -0
  188. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +451 -0
  189. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +1133 -0
  190. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +181 -0
  191. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +87 -0
  192. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +60 -0
  193. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml.bak +60 -0
  194. package/bmad/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +347 -0
  195. package/bmad/bmm/workflows/3-solutioning/architecture/architecture-template.md +103 -0
  196. package/bmad/bmm/workflows/3-solutioning/architecture/checklist.md +244 -0
  197. package/bmad/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +222 -0
  198. package/bmad/bmm/workflows/3-solutioning/architecture/instructions.md +715 -0
  199. package/bmad/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +13 -0
  200. package/bmad/bmm/workflows/3-solutioning/architecture/workflow.yaml +67 -0
  201. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +175 -0
  202. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +322 -0
  203. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +146 -0
  204. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +189 -0
  205. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +64 -0
  206. package/bmad/bmm/workflows/4-implementation/code-review/backlog_template.md +12 -0
  207. package/bmad/bmm/workflows/4-implementation/code-review/checklist.md +22 -0
  208. package/bmad/bmm/workflows/4-implementation/code-review/instructions.md +420 -0
  209. package/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +74 -0
  210. package/bmad/bmm/workflows/4-implementation/correct-course/checklist.md +279 -0
  211. package/bmad/bmm/workflows/4-implementation/correct-course/instructions.md +201 -0
  212. package/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +43 -0
  213. package/bmad/bmm/workflows/4-implementation/create-story/checklist.md +240 -0
  214. package/bmad/bmm/workflows/4-implementation/create-story/instructions.md +283 -0
  215. package/bmad/bmm/workflows/4-implementation/create-story/template.md +51 -0
  216. package/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +74 -0
  217. package/bmad/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +367 -0
  218. package/bmad/bmm/workflows/4-implementation/dev-story/checklist.md +38 -0
  219. package/bmad/bmm/workflows/4-implementation/dev-story/instructions.md +262 -0
  220. package/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +26 -0
  221. package/bmad/bmm/workflows/4-implementation/epic-tech-context/checklist.md +17 -0
  222. package/bmad/bmm/workflows/4-implementation/epic-tech-context/instructions.md +189 -0
  223. package/bmad/bmm/workflows/4-implementation/epic-tech-context/template.md +76 -0
  224. package/bmad/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +58 -0
  225. package/bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1460 -0
  226. package/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +71 -0
  227. package/bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  228. package/bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +238 -0
  229. package/bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  230. package/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +47 -0
  231. package/bmad/bmm/workflows/4-implementation/story-context/checklist.md +16 -0
  232. package/bmad/bmm/workflows/4-implementation/story-context/context-template.xml +34 -0
  233. package/bmad/bmm/workflows/4-implementation/story-context/instructions.md +234 -0
  234. package/bmad/bmm/workflows/4-implementation/story-context/workflow.yaml +57 -0
  235. package/bmad/bmm/workflows/4-implementation/story-done/instructions.md +111 -0
  236. package/bmad/bmm/workflows/4-implementation/story-done/workflow.yaml +25 -0
  237. package/bmad/bmm/workflows/4-implementation/story-ready/instructions.md +117 -0
  238. package/bmad/bmm/workflows/4-implementation/story-ready/workflow.yaml +25 -0
  239. package/bmad/bmm/workflows/document-project/checklist.md +245 -0
  240. package/bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  241. package/bmad/bmm/workflows/document-project/instructions.md +222 -0
  242. package/bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  243. package/bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
  244. package/bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  245. package/bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  246. package/bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  247. package/bmad/bmm/workflows/document-project/workflow.yaml +34 -0
  248. package/bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  249. package/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  250. package/bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  251. package/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  252. package/bmad/bmm/workflows/techdoc/documentation-standards.md +239 -0
  253. package/bmad/bmm/workflows/techdoc/documentation-standards.md.bak +238 -0
  254. package/bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  255. package/bmad/bmm/workflows/testarch/atdd/checklist.md +373 -0
  256. package/bmad/bmm/workflows/testarch/atdd/instructions.md +785 -0
  257. package/bmad/bmm/workflows/testarch/atdd/workflow.yaml +52 -0
  258. package/bmad/bmm/workflows/testarch/automate/checklist.md +580 -0
  259. package/bmad/bmm/workflows/testarch/automate/instructions.md +1303 -0
  260. package/bmad/bmm/workflows/testarch/automate/workflow.yaml +61 -0
  261. package/bmad/bmm/workflows/testarch/ci/checklist.md +246 -0
  262. package/bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +165 -0
  263. package/bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +128 -0
  264. package/bmad/bmm/workflows/testarch/ci/instructions.md +517 -0
  265. package/bmad/bmm/workflows/testarch/ci/workflow.yaml +53 -0
  266. package/bmad/bmm/workflows/testarch/framework/checklist.md +321 -0
  267. package/bmad/bmm/workflows/testarch/framework/instructions.md +455 -0
  268. package/bmad/bmm/workflows/testarch/framework/workflow.yaml +53 -0
  269. package/bmad/bmm/workflows/testarch/nfr-assess/checklist.md +405 -0
  270. package/bmad/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
  271. package/bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +443 -0
  272. package/bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +56 -0
  273. package/bmad/bmm/workflows/testarch/test-design/checklist.md +234 -0
  274. package/bmad/bmm/workflows/testarch/test-design/instructions.md +621 -0
  275. package/bmad/bmm/workflows/testarch/test-design/test-design-template.md +285 -0
  276. package/bmad/bmm/workflows/testarch/test-design/workflow.yaml +52 -0
  277. package/bmad/bmm/workflows/testarch/test-review/checklist.md +470 -0
  278. package/bmad/bmm/workflows/testarch/test-review/instructions.md +608 -0
  279. package/bmad/bmm/workflows/testarch/test-review/test-review-template.md +388 -0
  280. package/bmad/bmm/workflows/testarch/test-review/workflow.yaml +53 -0
  281. package/bmad/bmm/workflows/testarch/trace/checklist.md +654 -0
  282. package/bmad/bmm/workflows/testarch/trace/instructions.md +1045 -0
  283. package/bmad/bmm/workflows/testarch/trace/trace-template.md +673 -0
  284. package/bmad/bmm/workflows/testarch/trace/workflow.yaml +66 -0
  285. package/bmad/bmm/workflows/workflow-status/init/instructions.md +771 -0
  286. package/bmad/bmm/workflows/workflow-status/init/workflow.yaml +27 -0
  287. package/bmad/bmm/workflows/workflow-status/init/workflow.yaml.bak +27 -0
  288. package/bmad/bmm/workflows/workflow-status/instructions.md +386 -0
  289. package/bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +120 -0
  290. package/bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +108 -0
  291. package/bmad/bmm/workflows/workflow-status/paths/game-design.yaml +75 -0
  292. package/{src/modules/bmm/workflows/workflow-status/paths/brownfield-level-3.yaml → bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml} +33 -31
  293. package/{src/modules/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml → bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml} +31 -21
  294. package/{src/modules/bmm/workflows/workflow-status/paths/brownfield-level-1.yaml → bmad/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml} +18 -18
  295. package/{src/modules/bmm/workflows/workflow-status/paths/greenfield-level-1.yaml → bmad/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml} +16 -18
  296. package/bmad/bmm/workflows/workflow-status/project-levels.yaml +59 -0
  297. package/bmad/bmm/workflows/workflow-status/sample-level-3-workflow.yaml +49 -0
  298. package/bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +31 -0
  299. package/bmad/bmm/workflows/workflow-status/workflow.yaml +28 -0
  300. package/bmad/cis/README.md +153 -0
  301. package/bmad/cis/agents/README.md +104 -0
  302. package/bmad/cis/agents/brainstorming-coach.md +62 -0
  303. package/bmad/cis/agents/brainstorming-coach.md.bak +62 -0
  304. package/bmad/cis/agents/creative-problem-solver.md +62 -0
  305. package/bmad/cis/agents/creative-problem-solver.md.bak +62 -0
  306. package/bmad/cis/agents/design-thinking-coach.md +62 -0
  307. package/bmad/cis/agents/design-thinking-coach.md.bak +62 -0
  308. package/bmad/cis/agents/innovation-strategist.md +62 -0
  309. package/bmad/cis/agents/innovation-strategist.md.bak +62 -0
  310. package/bmad/cis/agents/storyteller.md +59 -0
  311. package/bmad/cis/agents/storyteller.md.bak +59 -0
  312. package/bmad/{bmd → cis}/config.yaml +3 -3
  313. package/bmad/cis/teams/creative-squad.yaml +6 -0
  314. package/bmad/cis/workflows/README.md +139 -0
  315. package/bmad/cis/workflows/design-thinking/README.md +56 -0
  316. package/bmad/cis/workflows/design-thinking/design-methods.csv +31 -0
  317. package/bmad/cis/workflows/design-thinking/instructions.md +200 -0
  318. package/bmad/cis/workflows/design-thinking/template.md +111 -0
  319. package/bmad/cis/workflows/design-thinking/workflow.yaml +32 -0
  320. package/bmad/cis/workflows/innovation-strategy/README.md +56 -0
  321. package/bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +31 -0
  322. package/bmad/cis/workflows/innovation-strategy/instructions.md +274 -0
  323. package/bmad/cis/workflows/innovation-strategy/template.md +189 -0
  324. package/bmad/cis/workflows/innovation-strategy/workflow.yaml +32 -0
  325. package/bmad/cis/workflows/problem-solving/README.md +56 -0
  326. package/bmad/cis/workflows/problem-solving/instructions.md +250 -0
  327. package/bmad/cis/workflows/problem-solving/solving-methods.csv +31 -0
  328. package/bmad/cis/workflows/problem-solving/template.md +165 -0
  329. package/bmad/cis/workflows/problem-solving/workflow.yaml +32 -0
  330. package/bmad/cis/workflows/storytelling/README.md +58 -0
  331. package/bmad/cis/workflows/storytelling/instructions.md +291 -0
  332. package/bmad/cis/workflows/storytelling/story-types.csv +26 -0
  333. package/bmad/cis/workflows/storytelling/template.md +113 -0
  334. package/bmad/cis/workflows/storytelling/workflow.yaml +32 -0
  335. package/bmad/core/agents/bmad-master.md.bak +71 -0
  336. package/bmad/core/config.yaml +2 -2
  337. package/bmad/core/tasks/workflow.xml +1 -19
  338. package/bmad/core/tools/shard-doc.xml +8 -43
  339. package/docs/document-sharding-guide.md +447 -0
  340. package/docs/index.md +37 -41
  341. package/package.json +1 -1
  342. package/src/core/tasks/workflow.xml +1 -11
  343. package/src/core/tools/shard-doc.xml +8 -43
  344. package/src/modules/bmb/workflows/audit-workflow/instructions.md +1 -1
  345. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +158 -0
  346. package/src/modules/bmm/README.md +79 -95
  347. package/src/modules/bmm/agents/architect.agent.yaml +0 -4
  348. package/src/modules/bmm/agents/game-designer.agent.yaml +2 -2
  349. package/src/modules/bmm/agents/game-dev.agent.yaml +8 -12
  350. package/src/modules/bmm/agents/pm.agent.yaml +11 -1
  351. package/src/modules/bmm/agents/sm.agent.yaml +1 -1
  352. package/src/modules/bmm/agents/tech-writer.agent.yaml +69 -0
  353. package/src/modules/bmm/docs/README.md +235 -0
  354. package/src/modules/bmm/docs/agents-guide.md +1057 -0
  355. package/src/modules/bmm/docs/brownfield-guide.md +759 -0
  356. package/src/modules/bmm/docs/enterprise-agentic-development.md +680 -0
  357. package/src/modules/bmm/docs/faq.md +589 -0
  358. package/src/modules/bmm/docs/glossary.md +321 -0
  359. package/src/modules/bmm/docs/party-mode.md +224 -0
  360. package/src/modules/bmm/docs/quick-spec-flow.md +652 -0
  361. package/src/modules/bmm/docs/quick-start.md +366 -0
  362. package/src/modules/bmm/docs/scale-adaptive-system.md +599 -0
  363. package/src/modules/bmm/docs/troubleshooting.md +680 -0
  364. package/src/modules/bmm/docs/workflow-architecture-reference.md +371 -0
  365. package/src/modules/bmm/docs/workflow-document-project-reference.md +487 -0
  366. package/src/modules/bmm/docs/workflows-analysis.md +670 -0
  367. package/src/modules/bmm/docs/workflows-implementation.md +1758 -0
  368. package/src/modules/bmm/docs/workflows-planning.md +1086 -0
  369. package/src/modules/bmm/docs/workflows-solutioning.md +726 -0
  370. package/src/modules/bmm/tasks/daily-standup.xml +1 -1
  371. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +423 -0
  372. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  373. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +36 -0
  374. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +405 -213
  375. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +93 -77
  376. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +14 -0
  377. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  378. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  379. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +154 -57
  380. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +45 -29
  381. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +181 -104
  382. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +24 -32
  383. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +94 -46
  384. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +37 -1
  385. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +36 -1
  386. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +13 -0
  387. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1 -1
  388. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +22 -0
  389. package/src/modules/bmm/workflows/2-plan-workflows/gdd/instructions-gdd.md +18 -0
  390. package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +14 -0
  391. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +296 -63
  392. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +52 -0
  393. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +169 -0
  394. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +55 -0
  395. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  396. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +268 -291
  397. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +198 -23
  398. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  399. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +26 -8
  400. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +138 -31
  401. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +73 -4
  402. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +50 -17
  403. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +199 -26
  404. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +971 -109
  405. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +132 -6
  406. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +54 -20
  407. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +23 -2
  408. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +1 -1
  409. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +40 -32
  410. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +17 -4
  411. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +1 -0
  412. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +32 -6
  413. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +29 -0
  414. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +20 -0
  415. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +29 -0
  416. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +27 -0
  417. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +29 -0
  418. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +32 -6
  419. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1222 -241
  420. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +28 -0
  421. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +17 -0
  422. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +8 -0
  423. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +31 -1
  424. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +27 -0
  425. package/src/modules/bmm/workflows/techdoc/documentation-standards.md +239 -0
  426. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +623 -242
  427. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +120 -0
  428. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +108 -0
  429. package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-4.yaml → method-brownfield.yaml} +35 -26
  430. package/src/modules/bmm/workflows/workflow-status/paths/{greenfield-level-3.yaml → method-greenfield.yaml} +32 -17
  431. package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-0.yaml → quick-flow-brownfield.yaml} +23 -19
  432. package/src/modules/bmm/workflows/workflow-status/paths/{greenfield-level-0.yaml → quick-flow-greenfield.yaml} +18 -16
  433. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +4 -4
  434. package/tools/cli/commands/install.js +1 -1
  435. package/.claude/commands/bmad/bmd/agents/cli-chief.md +0 -108
  436. package/.claude/commands/bmad/bmd/agents/doc-keeper.md +0 -115
  437. package/.claude/commands/bmad/bmd/agents/release-chief.md +0 -109
  438. package/.claude/hooks/bmad-tts-injector.sh +0 -415
  439. package/.claude/hooks/bmad-voice-manager.sh +0 -511
  440. package/.claude/hooks/check-output-style.sh +0 -112
  441. package/.claude/hooks/download-extra-voices.sh +0 -244
  442. package/.claude/hooks/github-star-reminder.sh +0 -154
  443. package/.claude/hooks/language-manager.sh +0 -392
  444. package/.claude/hooks/learn-manager.sh +0 -475
  445. package/.claude/hooks/personality-manager.sh +0 -438
  446. package/.claude/hooks/piper-download-voices.sh +0 -165
  447. package/.claude/hooks/piper-installer.sh +0 -178
  448. package/.claude/hooks/piper-multispeaker-registry.sh +0 -165
  449. package/.claude/hooks/piper-voice-manager.sh +0 -293
  450. package/.claude/hooks/play-tts-elevenlabs.sh +0 -404
  451. package/.claude/hooks/play-tts-piper.sh +0 -338
  452. package/.claude/hooks/play-tts.sh +0 -100
  453. package/.claude/hooks/provider-commands.sh +0 -540
  454. package/.claude/hooks/provider-manager.sh +0 -298
  455. package/.claude/hooks/replay-target-audio.sh +0 -95
  456. package/.claude/hooks/sentiment-manager.sh +0 -201
  457. package/.claude/hooks/speed-manager.sh +0 -291
  458. package/.claude/hooks/voice-manager.sh +0 -594
  459. package/.claude/hooks/voices-config.sh +0 -70
  460. package/bmad/_cfg/agents/bmd-cli-chief.customize.yaml +0 -32
  461. package/bmad/bmb/workflows/create-agent/agent-architecture.md.bak +0 -412
  462. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md.bak +0 -759
  463. package/bmad/bmb/workflows/create-module/README.md.bak +0 -218
  464. package/bmad/bmb/workflows/create-module/checklist.md.bak +0 -245
  465. package/bmad/bmb/workflows/create-module/installer-templates/installer.js.bak +0 -231
  466. package/bmad/bmb/workflows/create-module/instructions.md.bak +0 -521
  467. package/bmad/bmb/workflows/create-module/module-structure.md.bak +0 -310
  468. package/bmad/bmd/README.md +0 -193
  469. package/bmad/bmd/README.md.bak +0 -193
  470. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  471. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md.bak +0 -102
  472. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  473. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md.bak +0 -68
  474. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  475. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md.bak +0 -123
  476. package/bmad/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  477. package/bmad/bmd/agents/cli-chief-sidecar/memories.md.bak +0 -53
  478. package/bmad/bmd/agents/cli-chief.md +0 -108
  479. package/bmad/bmd/agents/cli-chief.md.bak +0 -108
  480. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  481. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md.bak +0 -177
  482. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  483. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md.bak +0 -81
  484. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  485. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md.bak +0 -88
  486. package/bmad/bmd/agents/doc-keeper.md +0 -115
  487. package/bmad/bmd/agents/doc-keeper.md.bak +0 -115
  488. package/bmad/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  489. package/bmad/bmd/agents/release-chief-sidecar/instructions.md.bak +0 -164
  490. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  491. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md.bak +0 -82
  492. package/bmad/bmd/agents/release-chief-sidecar/memories.md +0 -73
  493. package/bmad/bmd/agents/release-chief-sidecar/memories.md.bak +0 -73
  494. package/bmad/bmd/agents/release-chief.md +0 -109
  495. package/bmad/bmd/agents/release-chief.md.bak +0 -109
  496. package/bmad/docs/codex-instructions.md +0 -21
  497. package/docs/bmad-brownfield-guide.md +0 -1260
  498. package/docs/conversion-report-shard-doc-2025-10-26.md +0 -188
  499. package/src/modules/bmm/tasks/retrospective.xml +0 -104
  500. package/src/modules/bmm/testarch/README.md +0 -311
  501. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/README.md +0 -38
  502. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/README.md +0 -113
  503. package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
  504. package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +0 -180
  505. package/src/modules/bmm/workflows/1-analysis/research/README.md +0 -454
  506. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
  507. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
  508. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
  509. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
  510. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
  511. package/src/modules/bmm/workflows/2-plan-workflows/README.md +0 -258
  512. package/src/modules/bmm/workflows/2-plan-workflows/gdd/README.md +0 -222
  513. package/src/modules/bmm/workflows/3-solutioning/README.md +0 -1
  514. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/README.md +0 -177
  515. package/src/modules/bmm/workflows/4-implementation/README.md +0 -221
  516. package/src/modules/bmm/workflows/4-implementation/code-review/README.md +0 -69
  517. package/src/modules/bmm/workflows/4-implementation/correct-course/README.md +0 -73
  518. package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -146
  519. package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -206
  520. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/README.md +0 -195
  521. package/src/modules/bmm/workflows/4-implementation/retrospective/README.md +0 -77
  522. package/src/modules/bmm/workflows/4-implementation/sprint-planning/README.md +0 -156
  523. package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
  524. package/src/modules/bmm/workflows/README.md +0 -215
  525. package/src/modules/bmm/workflows/document-project/templates/README.md +0 -38
  526. package/src/modules/bmm/workflows/testarch/README.md +0 -26
  527. package/src/modules/bmm/workflows/testarch/atdd/README.md +0 -672
  528. package/src/modules/bmm/workflows/testarch/automate/README.md +0 -869
  529. package/src/modules/bmm/workflows/testarch/ci/README.md +0 -493
  530. package/src/modules/bmm/workflows/testarch/framework/README.md +0 -340
  531. package/src/modules/bmm/workflows/testarch/nfr-assess/README.md +0 -469
  532. package/src/modules/bmm/workflows/testarch/test-design/README.md +0 -493
  533. package/src/modules/bmm/workflows/testarch/test-review/README.md +0 -775
  534. package/src/modules/bmm/workflows/testarch/trace/README.md +0 -802
  535. package/src/modules/bmm/workflows/workflow-status/README.md +0 -260
  536. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +0 -76
  537. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +0 -75
  538. /package/bmad/_cfg/agents/{bmd-doc-keeper.customize.yaml → bmm-analyst.customize.yaml} +0 -0
  539. /package/bmad/_cfg/agents/{bmd-release-chief.customize.yaml → bmm-architect.customize.yaml} +0 -0
  540. /package/{src/modules/bmm/workflows/2-plan-workflows/prd → bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories}/epics-template.md +0 -0
@@ -0,0 +1,1303 @@
1
+ <!-- Powered by BMAD-CORE™ -->
2
+
3
+ # Test Automation Expansion
4
+
5
+ **Workflow ID**: `bmad/bmm/testarch/automate`
6
+ **Version**: 4.0 (BMad v6)
7
+
8
+ ---
9
+
10
+ ## Overview
11
+
12
+ Expands test automation coverage by generating comprehensive test suites at appropriate levels (E2E, API, Component, Unit) with supporting infrastructure. This workflow operates in **dual mode**:
13
+
14
+ 1. **BMad-Integrated Mode**: Works WITH BMad artifacts (story, tech-spec, PRD, test-design) to expand coverage after story implementation
15
+ 2. **Standalone Mode**: Works WITHOUT BMad artifacts - analyzes existing codebase and generates tests independently
16
+
17
+ **Core Principle**: Generate prioritized, deterministic tests that avoid duplicate coverage and follow testing best practices.
18
+
19
+ ---
20
+
21
+ ## Preflight Requirements
22
+
23
+ **Flexible:** This workflow can run with minimal prerequisites. Only HALT if framework is completely missing.
24
+
25
+ ### Required (Always)
26
+
27
+ - ✅ Framework scaffolding configured (run `framework` workflow if missing)
28
+ - ✅ Test framework configuration available (playwright.config.ts or cypress.config.ts)
29
+
30
+ ### Optional (BMad-Integrated Mode)
31
+
32
+ - Story markdown with acceptance criteria (enhances coverage targeting)
33
+ - Tech spec or PRD (provides architectural context)
34
+ - Test design document (provides risk/priority context)
35
+
36
+ ### Optional (Standalone Mode)
37
+
38
+ - Source code to analyze (feature implementation)
39
+ - Existing tests (for gap analysis)
40
+
41
+ **If framework is missing:** HALT with message: "Framework scaffolding required. Run `bmad tea *framework` first."
42
+
43
+ ---
44
+
45
+ ## Step 1: Determine Execution Mode and Load Context
46
+
47
+ ### Actions
48
+
49
+ 1. **Detect Execution Mode**
50
+
51
+ Check if BMad artifacts are available:
52
+ - If `{story_file}` variable is set → BMad-Integrated Mode
53
+ - If `{target_feature}` or `{target_files}` set → Standalone Mode
54
+ - If neither set → Auto-discover mode (scan codebase for features needing tests)
55
+
56
+ 2. **Load BMad Artifacts (If Available)**
57
+
58
+ **BMad-Integrated Mode:**
59
+ - Read story markdown from `{story_file}`
60
+ - Extract acceptance criteria and technical requirements
61
+ - Load tech-spec.md if `{use_tech_spec}` is true
62
+ - Load test-design.md if `{use_test_design}` is true
63
+ - Load PRD.md if `{use_prd}` is true
64
+ - Note: These are **optional enhancements**, not hard requirements
65
+
66
+ **Standalone Mode:**
67
+ - Skip BMad artifact loading
68
+ - Proceed directly to source code analysis
69
+
70
+ 3. **Load Framework Configuration**
71
+ - Read test framework config (playwright.config.ts or cypress.config.ts)
72
+ - Identify test directory structure from `{test_dir}`
73
+ - Check existing test patterns in `{test_dir}`
74
+ - Note test runner capabilities (parallel execution, fixtures, etc.)
75
+
76
+ 4. **Analyze Existing Test Coverage**
77
+
78
+ If `{analyze_coverage}` is true:
79
+ - Search `{test_dir}` for existing test files
80
+ - Identify tested features vs untested features
81
+ - Map tests to source files (coverage gaps)
82
+ - Check existing fixture and factory patterns
83
+
84
+ 5. **Load Knowledge Base Fragments**
85
+
86
+ **Critical:** Consult `{project-root}/bmad/bmm/testarch/tea-index.csv` to load:
87
+ - `test-levels-framework.md` - Test level selection (E2E vs API vs Component vs Unit with decision matrix, 467 lines, 4 examples)
88
+ - `test-priorities-matrix.md` - Priority classification (P0-P3 with automated scoring, risk mapping, 389 lines, 2 examples)
89
+ - `fixture-architecture.md` - Test fixture patterns (pure function → fixture → mergeTests, auto-cleanup, 406 lines, 5 examples)
90
+ - `data-factories.md` - Factory patterns with faker (overrides, nested factories, API seeding, 498 lines, 5 examples)
91
+ - `selective-testing.md` - Targeted test execution strategies (tag-based, spec filters, diff-based, promotion rules, 727 lines, 4 examples)
92
+ - `ci-burn-in.md` - Flaky test detection patterns (10-iteration burn-in, sharding, selective execution, 678 lines, 4 examples)
93
+ - `test-quality.md` - Test design principles (deterministic, isolated, explicit assertions, length/time limits, 658 lines, 5 examples)
94
+ - `network-first.md` - Route interception patterns (intercept before navigate, HAR capture, deterministic waiting, 489 lines, 5 examples)
95
+
96
+ **Healing Knowledge (If `{auto_heal_failures}` is true):**
97
+ - `test-healing-patterns.md` - Common failure patterns and automated fixes (stale selectors, race conditions, dynamic data, network errors, hard waits, 648 lines, 5 examples)
98
+ - `selector-resilience.md` - Selector debugging and refactoring guide (data-testid > ARIA > text > CSS hierarchy, anti-patterns, 541 lines, 4 examples)
99
+ - `timing-debugging.md` - Race condition identification and fixes (network-first, deterministic waiting, async debugging, 370 lines, 3 examples)
100
+
101
+ ---
102
+
103
+ ## Step 2: Identify Automation Targets
104
+
105
+ ### Actions
106
+
107
+ 1. **Determine What Needs Testing**
108
+
109
+ **BMad-Integrated Mode (story available):**
110
+ - Map acceptance criteria from story to test scenarios
111
+ - Identify features implemented in this story
112
+ - Check if story has existing ATDD tests (from `*atdd` workflow)
113
+ - Expand beyond ATDD with edge cases and negative paths
114
+
115
+ **Standalone Mode (no story):**
116
+ - If `{target_feature}` specified: Analyze that specific feature
117
+ - If `{target_files}` specified: Analyze those specific files
118
+ - If `{auto_discover_features}` is true: Scan `{source_dir}` for features
119
+ - Prioritize features with:
120
+ - No test coverage (highest priority)
121
+ - Complex business logic
122
+ - External integrations (API calls, database, auth)
123
+ - Critical user paths (login, checkout, etc.)
124
+
125
+ 2. **Apply Test Level Selection Framework**
126
+
127
+ **Knowledge Base Reference**: `test-levels-framework.md`
128
+
129
+ For each feature or acceptance criterion, determine appropriate test level:
130
+
131
+ **E2E (End-to-End)**:
132
+ - Critical user journeys (login, checkout, core workflows)
133
+ - Multi-system integration
134
+ - Full user-facing scenarios
135
+ - Characteristics: High confidence, slow, brittle
136
+
137
+ **API (Integration)**:
138
+ - Business logic validation
139
+ - Service contracts and data transformations
140
+ - Backend integration without UI
141
+ - Characteristics: Fast feedback, stable, good balance
142
+
143
+ **Component**:
144
+ - UI component behavior (buttons, forms, modals)
145
+ - Interaction testing (click, hover, keyboard)
146
+ - State management within component
147
+ - Characteristics: Fast, isolated, granular
148
+
149
+ **Unit**:
150
+ - Pure business logic and algorithms
151
+ - Edge cases and error handling
152
+ - Minimal dependencies
153
+ - Characteristics: Fastest, most granular
154
+
155
+ 3. **Avoid Duplicate Coverage**
156
+
157
+ **Critical principle:** Don't test same behavior at multiple levels unless necessary
158
+ - Use E2E for critical happy path only
159
+ - Use API tests for business logic variations
160
+ - Use component tests for UI interaction edge cases
161
+ - Use unit tests for pure logic edge cases
162
+
163
+ **Example:**
164
+ - E2E: User can log in with valid credentials → Dashboard loads
165
+ - API: POST /auth/login returns 401 for invalid credentials
166
+ - API: POST /auth/login returns 200 and JWT token for valid credentials
167
+ - Component: LoginForm disables submit button when fields are empty
168
+ - Unit: validateEmail() returns false for malformed email addresses
169
+
170
+ 4. **Assign Test Priorities**
171
+
172
+ **Knowledge Base Reference**: `test-priorities-matrix.md`
173
+
174
+ **P0 (Critical - Every commit)**:
175
+ - Critical user paths that must always work
176
+ - Security-critical functionality (auth, permissions)
177
+ - Data integrity scenarios
178
+ - Run in pre-commit hooks or PR checks
179
+
180
+ **P1 (High - PR to main)**:
181
+ - Important features with high user impact
182
+ - Integration points between systems
183
+ - Error handling for common failures
184
+ - Run before merging to main branch
185
+
186
+ **P2 (Medium - Nightly)**:
187
+ - Edge cases with moderate impact
188
+ - Less-critical feature variations
189
+ - Performance/load testing
190
+ - Run in nightly CI builds
191
+
192
+ **P3 (Low - On-demand)**:
193
+ - Nice-to-have validations
194
+ - Rarely-used features
195
+ - Exploratory testing scenarios
196
+ - Run manually or weekly
197
+
198
+ **Priority Variables:**
199
+ - `{include_p0}` - Always include (default: true)
200
+ - `{include_p1}` - High priority (default: true)
201
+ - `{include_p2}` - Medium priority (default: true)
202
+ - `{include_p3}` - Low priority (default: false)
203
+
204
+ 5. **Create Test Coverage Plan**
205
+
206
+ Document what will be tested at each level with priorities:
207
+
208
+ ```markdown
209
+ ## Test Coverage Plan
210
+
211
+ ### E2E Tests (P0)
212
+
213
+ - User login with valid credentials → Dashboard loads
214
+ - User logout → Redirects to login page
215
+
216
+ ### API Tests (P1)
217
+
218
+ - POST /auth/login - valid credentials → 200 + JWT token
219
+ - POST /auth/login - invalid credentials → 401 + error message
220
+ - POST /auth/login - missing fields → 400 + validation errors
221
+
222
+ ### Component Tests (P1)
223
+
224
+ - LoginForm - empty fields → submit button disabled
225
+ - LoginForm - valid input → submit button enabled
226
+
227
+ ### Unit Tests (P2)
228
+
229
+ - validateEmail() - valid email → returns true
230
+ - validateEmail() - malformed email → returns false
231
+ ```
232
+
233
+ ---
234
+
235
+ ## Step 3: Generate Test Infrastructure
236
+
237
+ ### Actions
238
+
239
+ 1. **Enhance Fixture Architecture**
240
+
241
+ **Knowledge Base Reference**: `fixture-architecture.md`
242
+
243
+ Check existing fixtures in `tests/support/fixtures/`:
244
+ - If missing or incomplete, create fixture architecture
245
+ - Use Playwright's `test.extend()` pattern
246
+ - Ensure all fixtures have auto-cleanup in teardown
247
+
248
+ **Common fixtures to create/enhance:**
249
+ - **authenticatedUser**: User with valid session (auto-deletes user after test)
250
+ - **apiRequest**: Authenticated API client with base URL and headers
251
+ - **mockNetwork**: Network mocking for external services
252
+ - **testDatabase**: Database with test data (auto-cleanup after test)
253
+
254
+ **Example fixture:**
255
+
256
+ ```typescript
257
+ // tests/support/fixtures/auth.fixture.ts
258
+ import { test as base } from '@playwright/test';
259
+ import { createUser, deleteUser } from '../factories/user.factory';
260
+
261
+ export const test = base.extend({
262
+ authenticatedUser: async ({ page }, use) => {
263
+ // Setup: Create and authenticate user
264
+ const user = await createUser();
265
+ await page.goto('/login');
266
+ await page.fill('[data-testid="email"]', user.email);
267
+ await page.fill('[data-testid="password"]', user.password);
268
+ await page.click('[data-testid="login-button"]');
269
+ await page.waitForURL('/dashboard');
270
+
271
+ // Provide to test
272
+ await use(user);
273
+
274
+ // Cleanup: Delete user automatically
275
+ await deleteUser(user.id);
276
+ },
277
+ });
278
+ ```
279
+
280
+ 2. **Enhance Data Factories**
281
+
282
+ **Knowledge Base Reference**: `data-factories.md`
283
+
284
+ Check existing factories in `tests/support/factories/`:
285
+ - If missing or incomplete, create factory architecture
286
+ - Use `@faker-js/faker` for all random data (no hardcoded values)
287
+ - Support overrides for specific test scenarios
288
+
289
+ **Common factories to create/enhance:**
290
+ - User factory (email, password, name, role)
291
+ - Product factory (name, price, description, SKU)
292
+ - Order factory (items, total, status, customer)
293
+
294
+ **Example factory:**
295
+
296
+ ```typescript
297
+ // tests/support/factories/user.factory.ts
298
+ import { faker } from '@faker-js/faker';
299
+
300
+ export const createUser = (overrides = {}) => ({
301
+ id: faker.number.int(),
302
+ email: faker.internet.email(),
303
+ password: faker.internet.password(),
304
+ name: faker.person.fullName(),
305
+ role: 'user',
306
+ createdAt: faker.date.recent().toISOString(),
307
+ ...overrides,
308
+ });
309
+
310
+ export const createUsers = (count: number) => Array.from({ length: count }, () => createUser());
311
+
312
+ // API helper for cleanup
313
+ export const deleteUser = async (userId: number) => {
314
+ await fetch(`/api/users/${userId}`, { method: 'DELETE' });
315
+ };
316
+ ```
317
+
318
+ 3. **Create/Enhance Helper Utilities**
319
+
320
+ If `{update_helpers}` is true:
321
+
322
+ Check `tests/support/helpers/` for common utilities:
323
+ - **waitFor**: Polling helper for complex conditions
324
+ - **retry**: Retry helper for flaky operations
325
+ - **testData**: Test data generation helpers
326
+ - **assertions**: Custom assertion helpers
327
+
328
+ **Example helper:**
329
+
330
+ ```typescript
331
+ // tests/support/helpers/wait-for.ts
332
+ export const waitFor = async (condition: () => Promise<boolean>, timeout = 5000, interval = 100): Promise<void> => {
333
+ const startTime = Date.now();
334
+ while (Date.now() - startTime < timeout) {
335
+ if (await condition()) return;
336
+ await new Promise((resolve) => setTimeout(resolve, interval));
337
+ }
338
+ throw new Error(`Condition not met within ${timeout}ms`);
339
+ };
340
+ ```
341
+
342
+ ---
343
+
344
+ ## Step 4: Generate Test Files
345
+
346
+ ### Actions
347
+
348
+ 1. **Create Test File Structure**
349
+
350
+ ```
351
+ tests/
352
+ ├── e2e/
353
+ │ └── {feature-name}.spec.ts # E2E tests (P0-P1)
354
+ ├── api/
355
+ │ └── {feature-name}.api.spec.ts # API tests (P1-P2)
356
+ ├── component/
357
+ │ └── {ComponentName}.test.tsx # Component tests (P1-P2)
358
+ ├── unit/
359
+ │ └── {module-name}.test.ts # Unit tests (P2-P3)
360
+ └── support/
361
+ ├── fixtures/ # Test fixtures
362
+ ├── factories/ # Data factories
363
+ └── helpers/ # Utility functions
364
+ ```
365
+
366
+ 2. **Write E2E Tests (If Applicable)**
367
+
368
+ **Follow Given-When-Then format:**
369
+
370
+ ```typescript
371
+ import { test, expect } from '@playwright/test';
372
+
373
+ test.describe('User Authentication', () => {
374
+ test('[P0] should login with valid credentials and load dashboard', async ({ page }) => {
375
+ // GIVEN: User is on login page
376
+ await page.goto('/login');
377
+
378
+ // WHEN: User submits valid credentials
379
+ await page.fill('[data-testid="email-input"]', 'user@example.com');
380
+ await page.fill('[data-testid="password-input"]', 'Password123!');
381
+ await page.click('[data-testid="login-button"]');
382
+
383
+ // THEN: User is redirected to dashboard
384
+ await expect(page).toHaveURL('/dashboard');
385
+ await expect(page.locator('[data-testid="user-name"]')).toBeVisible();
386
+ });
387
+
388
+ test('[P1] should display error for invalid credentials', async ({ page }) => {
389
+ // GIVEN: User is on login page
390
+ await page.goto('/login');
391
+
392
+ // WHEN: User submits invalid credentials
393
+ await page.fill('[data-testid="email-input"]', 'invalid@example.com');
394
+ await page.fill('[data-testid="password-input"]', 'wrongpassword');
395
+ await page.click('[data-testid="login-button"]');
396
+
397
+ // THEN: Error message is displayed
398
+ await expect(page.locator('[data-testid="error-message"]')).toHaveText('Invalid email or password');
399
+ });
400
+ });
401
+ ```
402
+
403
+ **Critical patterns:**
404
+ - Tag tests with priority: `[P0]`, `[P1]`, `[P2]`, `[P3]` in test name
405
+ - One assertion per test (atomic tests)
406
+ - Explicit waits (no hard waits/sleeps)
407
+ - Network-first approach (route interception before navigation)
408
+ - data-testid selectors for stability
409
+ - Clear Given-When-Then structure
410
+
411
+ 3. **Write API Tests (If Applicable)**
412
+
413
+ ```typescript
414
+ import { test, expect } from '@playwright/test';
415
+
416
+ test.describe('User Authentication API', () => {
417
+ test('[P1] POST /api/auth/login - should return token for valid credentials', async ({ request }) => {
418
+ // GIVEN: Valid user credentials
419
+ const credentials = {
420
+ email: 'user@example.com',
421
+ password: 'Password123!',
422
+ };
423
+
424
+ // WHEN: Logging in via API
425
+ const response = await request.post('/api/auth/login', {
426
+ data: credentials,
427
+ });
428
+
429
+ // THEN: Returns 200 and JWT token
430
+ expect(response.status()).toBe(200);
431
+ const body = await response.json();
432
+ expect(body).toHaveProperty('token');
433
+ expect(body.token).toMatch(/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+$/); // JWT format
434
+ });
435
+
436
+ test('[P1] POST /api/auth/login - should return 401 for invalid credentials', async ({ request }) => {
437
+ // GIVEN: Invalid credentials
438
+ const credentials = {
439
+ email: 'invalid@example.com',
440
+ password: 'wrongpassword',
441
+ };
442
+
443
+ // WHEN: Attempting login
444
+ const response = await request.post('/api/auth/login', {
445
+ data: credentials,
446
+ });
447
+
448
+ // THEN: Returns 401 with error
449
+ expect(response.status()).toBe(401);
450
+ const body = await response.json();
451
+ expect(body).toMatchObject({
452
+ error: 'Invalid credentials',
453
+ });
454
+ });
455
+ });
456
+ ```
457
+
458
+ 4. **Write Component Tests (If Applicable)**
459
+
460
+ **Knowledge Base Reference**: `component-tdd.md`
461
+
462
+ ```typescript
463
+ import { test, expect } from '@playwright/experimental-ct-react';
464
+ import { LoginForm } from './LoginForm';
465
+
466
+ test.describe('LoginForm Component', () => {
467
+ test('[P1] should disable submit button when fields are empty', async ({ mount }) => {
468
+ // GIVEN: LoginForm is mounted
469
+ const component = await mount(<LoginForm />);
470
+
471
+ // WHEN: Form is initially rendered
472
+ const submitButton = component.locator('button[type="submit"]');
473
+
474
+ // THEN: Submit button is disabled
475
+ await expect(submitButton).toBeDisabled();
476
+ });
477
+
478
+ test('[P1] should enable submit button when fields are filled', async ({ mount }) => {
479
+ // GIVEN: LoginForm is mounted
480
+ const component = await mount(<LoginForm />);
481
+
482
+ // WHEN: User fills in email and password
483
+ await component.locator('[data-testid="email-input"]').fill('user@example.com');
484
+ await component.locator('[data-testid="password-input"]').fill('Password123!');
485
+
486
+ // THEN: Submit button is enabled
487
+ const submitButton = component.locator('button[type="submit"]');
488
+ await expect(submitButton).toBeEnabled();
489
+ });
490
+ });
491
+ ```
492
+
493
+ 5. **Write Unit Tests (If Applicable)**
494
+
495
+ ```typescript
496
+ import { validateEmail } from './validation';
497
+
498
+ describe('Email Validation', () => {
499
+ test('[P2] should return true for valid email', () => {
500
+ // GIVEN: Valid email address
501
+ const email = 'user@example.com';
502
+
503
+ // WHEN: Validating email
504
+ const result = validateEmail(email);
505
+
506
+ // THEN: Returns true
507
+ expect(result).toBe(true);
508
+ });
509
+
510
+ test('[P2] should return false for malformed email', () => {
511
+ // GIVEN: Malformed email addresses
512
+ const invalidEmails = ['notanemail', '@example.com', 'user@', 'user @example.com'];
513
+
514
+ // WHEN/THEN: Each should fail validation
515
+ invalidEmails.forEach((email) => {
516
+ expect(validateEmail(email)).toBe(false);
517
+ });
518
+ });
519
+ });
520
+ ```
521
+
522
+ 6. **Apply Network-First Pattern (E2E tests)**
523
+
524
+ **Knowledge Base Reference**: `network-first.md`
525
+
526
+ **Critical pattern to prevent race conditions:**
527
+
528
+ ```typescript
529
+ test('should load user dashboard after login', async ({ page }) => {
530
+ // CRITICAL: Intercept routes BEFORE navigation
531
+ await page.route('**/api/user', (route) =>
532
+ route.fulfill({
533
+ status: 200,
534
+ body: JSON.stringify({ id: 1, name: 'Test User' }),
535
+ }),
536
+ );
537
+
538
+ // NOW navigate
539
+ await page.goto('/dashboard');
540
+
541
+ await expect(page.locator('[data-testid="user-name"]')).toHaveText('Test User');
542
+ });
543
+ ```
544
+
545
+ 7. **Enforce Quality Standards**
546
+
547
+ **For every test:**
548
+ - ✅ Uses Given-When-Then format
549
+ - ✅ Has clear, descriptive name with priority tag
550
+ - ✅ One assertion per test (atomic)
551
+ - ✅ No hard waits or sleeps (use explicit waits)
552
+ - ✅ Self-cleaning (uses fixtures with auto-cleanup)
553
+ - ✅ Deterministic (no flaky patterns)
554
+ - ✅ Fast (under {max_test_duration} seconds)
555
+ - ✅ Lean (test file under {max_file_lines} lines)
556
+
557
+ **Forbidden patterns:**
558
+ - ❌ Hard waits: `await page.waitForTimeout(2000)`
559
+ - ❌ Conditional flow: `if (await element.isVisible()) { ... }`
560
+ - ❌ Try-catch for test logic (use for cleanup only)
561
+ - ❌ Hardcoded test data (use factories)
562
+ - ❌ Page objects (keep tests simple and direct)
563
+ - ❌ Shared state between tests
564
+
565
+ ---
566
+
567
+ ## Step 5: Execute, Validate & Heal Generated Tests (NEW - Phase 2.5)
568
+
569
+ **Purpose**: Automatically validate generated tests and heal common failures before delivery
570
+
571
+ ### Actions
572
+
573
+ 1. **Validate Generated Tests**
574
+
575
+ Always validate (auto_validate is always true):
576
+ - Run generated tests to verify they work
577
+ - Continue with healing if config.tea_use_mcp_enhancements is true
578
+
579
+ 2. **Run Generated Tests**
580
+
581
+ Execute the full test suite that was just generated:
582
+
583
+ ```bash
584
+ npx playwright test {generated_test_files}
585
+ ```
586
+
587
+ Capture results:
588
+ - Total tests run
589
+ - Passing tests count
590
+ - Failing tests count
591
+ - Error messages and stack traces for failures
592
+
593
+ 3. **Evaluate Results**
594
+
595
+ **If ALL tests pass:**
596
+ - ✅ Generate report with success summary
597
+ - Proceed to Step 6 (Documentation and Scripts)
598
+
599
+ **If tests FAIL:**
600
+ - Check config.tea_use_mcp_enhancements setting
601
+ - If true: Enter healing loop (Step 5.4)
602
+ - If false: Document failures for manual review, proceed to Step 6
603
+
604
+ 4. **Healing Loop (If config.tea_use_mcp_enhancements is true)**
605
+
606
+ **Iteration limit**: 3 attempts per test (constant)
607
+
608
+ **For each failing test:**
609
+
610
+ **A. Load Healing Knowledge Fragments**
611
+
612
+ Consult `tea-index.csv` to load healing patterns:
613
+ - `test-healing-patterns.md` - Common failure patterns and fixes
614
+ - `selector-resilience.md` - Selector debugging and refactoring
615
+ - `timing-debugging.md` - Race condition identification and fixes
616
+
617
+ **B. Identify Failure Pattern**
618
+
619
+ Analyze error message and stack trace to classify failure type:
620
+
621
+ **Stale Selector Failure:**
622
+ - Error contains: "locator resolved to 0 elements", "element not found", "unable to find element"
623
+ - Extract selector from error message
624
+ - Apply selector healing (knowledge from `selector-resilience.md`):
625
+ - If CSS class → Replace with `page.getByTestId()`
626
+ - If nth() → Replace with `filter({ hasText })`
627
+ - If ID → Replace with data-testid
628
+ - If complex XPath → Replace with ARIA role
629
+
630
+ **Race Condition Failure:**
631
+ - Error contains: "timeout waiting for", "element not visible", "timed out retrying"
632
+ - Detect missing network waits or hard waits in test code
633
+ - Apply timing healing (knowledge from `timing-debugging.md`):
634
+ - Add network-first interception before navigate
635
+ - Replace `waitForTimeout()` with `waitForResponse()`
636
+ - Add explicit element state waits (`waitFor({ state: 'visible' })`)
637
+
638
+ **Dynamic Data Failure:**
639
+ - Error contains: "Expected 'User 123' but received 'User 456'", timestamp mismatches
640
+ - Identify hardcoded assertions
641
+ - Apply data healing (knowledge from `test-healing-patterns.md`):
642
+ - Replace hardcoded IDs with regex (`/User \d+/`)
643
+ - Replace hardcoded dates with dynamic generation
644
+ - Capture dynamic values and use in assertions
645
+
646
+ **Network Error Failure:**
647
+ - Error contains: "API call failed", "500 error", "network error"
648
+ - Detect missing route interception
649
+ - Apply network healing (knowledge from `test-healing-patterns.md`):
650
+ - Add `page.route()` or `cy.intercept()` for API mocking
651
+ - Mock error scenarios (500, 429, timeout)
652
+
653
+ **Hard Wait Detection:**
654
+ - Scan test code for `page.waitForTimeout()`, `cy.wait(number)`, `sleep()`
655
+ - Apply hard wait healing (knowledge from `timing-debugging.md`):
656
+ - Replace with event-based waits
657
+ - Add network response waits
658
+ - Use element state changes
659
+
660
+ **C. MCP Healing Mode (If MCP Tools Available)**
661
+
662
+ If Playwright MCP tools are available in your IDE:
663
+
664
+ Use MCP tools for interactive healing:
665
+ - `playwright_test_debug_test`: Pause on failure for visual inspection
666
+ - `browser_snapshot`: Capture visual context at failure point
667
+ - `browser_console_messages`: Retrieve console logs for JS errors
668
+ - `browser_network_requests`: Analyze network activity
669
+ - `browser_generate_locator`: Generate better selectors interactively
670
+
671
+ Apply MCP-generated fixes to test code.
672
+
673
+ **D. Pattern-Based Healing Mode (Fallback)**
674
+
675
+ If MCP unavailable, use pattern-based analysis:
676
+ - Parse error message and stack trace
677
+ - Match against failure patterns from knowledge base
678
+ - Apply fixes programmatically:
679
+ - Selector fixes: Use suggestions from `selector-resilience.md`
680
+ - Timing fixes: Apply patterns from `timing-debugging.md`
681
+ - Data fixes: Use patterns from `test-healing-patterns.md`
682
+
683
+ **E. Apply Healing Fix**
684
+ - Modify test file with healed code
685
+ - Re-run test to validate fix
686
+ - If test passes: Mark as healed, move to next failure
687
+ - If test fails: Increment iteration count, try different pattern
688
+
689
+ **F. Iteration Limit Handling**
690
+
691
+ After 3 failed healing attempts:
692
+
693
+ Always mark unfixable tests:
694
+ - Mark test with `test.fixme()` instead of `test()`
695
+ - Add detailed comment explaining:
696
+ - What failure occurred
697
+ - What healing was attempted (3 iterations)
698
+ - Why healing failed
699
+ - Manual investigation needed
700
+
701
+ ```typescript
702
+ test.fixme('[P1] should handle complex interaction', async ({ page }) => {
703
+ // FIXME: Test healing failed after 3 attempts
704
+ // Failure: "Locator 'button[data-action="submit"]' resolved to 0 elements"
705
+ // Attempted fixes:
706
+ // 1. Replaced with page.getByTestId('submit-button') - still failing
707
+ // 2. Replaced with page.getByRole('button', { name: 'Submit' }) - still failing
708
+ // 3. Added waitForLoadState('networkidle') - still failing
709
+ // Manual investigation needed: Selector may require application code changes
710
+ // TODO: Review with team, may need data-testid added to button component
711
+ // Original test code...
712
+ });
713
+ ```
714
+
715
+ **Note**: Workflow continues even with unfixable tests (marked as test.fixme() for manual review)
716
+
717
+ 5. **Generate Healing Report**
718
+
719
+ Document healing outcomes:
720
+
721
+ ```markdown
722
+ ## Test Healing Report
723
+
724
+ **Auto-Heal Enabled**: {auto_heal_failures}
725
+ **Healing Mode**: {use_mcp_healing ? "MCP-assisted" : "Pattern-based"}
726
+ **Iterations Allowed**: {max_healing_iterations}
727
+
728
+ ### Validation Results
729
+
730
+ - **Total tests**: {total_tests}
731
+ - **Passing**: {passing_tests}
732
+ - **Failing**: {failing_tests}
733
+
734
+ ### Healing Outcomes
735
+
736
+ **Successfully Healed ({healed_count} tests):**
737
+
738
+ - `tests/e2e/login.spec.ts:15` - Stale selector (CSS class → data-testid)
739
+ - `tests/e2e/checkout.spec.ts:42` - Race condition (added network-first interception)
740
+ - `tests/api/users.spec.ts:28` - Dynamic data (hardcoded ID → regex pattern)
741
+
742
+ **Unable to Heal ({unfixable_count} tests):**
743
+
744
+ - `tests/e2e/complex-flow.spec.ts:67` - Marked as test.fixme() with manual investigation needed
745
+ - Failure: Locator not found after 3 healing attempts
746
+ - Requires application code changes (add data-testid to component)
747
+
748
+ ### Healing Patterns Applied
749
+
750
+ - **Selector fixes**: 2 (CSS class → data-testid, nth() → filter())
751
+ - **Timing fixes**: 1 (added network-first interception)
752
+ - **Data fixes**: 1 (hardcoded ID → regex)
753
+
754
+ ### Knowledge Base References
755
+
756
+ - `test-healing-patterns.md` - Common failure patterns
757
+ - `selector-resilience.md` - Selector refactoring guide
758
+ - `timing-debugging.md` - Race condition prevention
759
+ ```
760
+
761
+ 6. **Update Test Files with Healing Results**
762
+ - Save healed test code to files
763
+ - Mark unfixable tests with `test.fixme()` and detailed comments
764
+ - Preserve original test logic in comments (for debugging)
765
+
766
+ ---
767
+
768
+ ## Step 6: Update Documentation and Scripts
769
+
770
+ ### Actions
771
+
772
+ 1. **Update Test README**
773
+
774
+ If `{update_readme}` is true:
775
+
776
+ Create or update `tests/README.md` with:
777
+ - Overview of test suite structure
778
+ - How to run tests (all, specific files, by priority)
779
+ - Fixture and factory usage examples
780
+ - Priority tagging convention ([P0], [P1], [P2], [P3])
781
+ - How to write new tests
782
+ - Common patterns and anti-patterns
783
+
784
+ **Example section:**
785
+
786
+ ````markdown
787
+ ## Running Tests
788
+
789
+ ```bash
790
+ # Run all tests
791
+ npm run test:e2e
792
+
793
+ # Run by priority
794
+ npm run test:e2e -- --grep "@P0"
795
+ npm run test:e2e -- --grep "@P1"
796
+
797
+ # Run specific file
798
+ npm run test:e2e -- user-authentication.spec.ts
799
+
800
+ # Run in headed mode
801
+ npm run test:e2e -- --headed
802
+
803
+ # Debug specific test
804
+ npm run test:e2e -- user-authentication.spec.ts --debug
805
+ ```
806
+ ````
807
+
808
+ ## Priority Tags
809
+ - **[P0]**: Critical paths, run every commit
810
+ - **[P1]**: High priority, run on PR to main
811
+ - **[P2]**: Medium priority, run nightly
812
+ - **[P3]**: Low priority, run on-demand
813
+
814
+ ```
815
+
816
+ ```
817
+
818
+ 2. **Update package.json Scripts**
819
+
820
+ If `{update_package_scripts}` is true:
821
+
822
+ Add or update test execution scripts:
823
+
824
+ ```json
825
+ {
826
+ "scripts": {
827
+ "test:e2e": "playwright test",
828
+ "test:e2e:p0": "playwright test --grep '@P0'",
829
+ "test:e2e:p1": "playwright test --grep '@P1|@P0'",
830
+ "test:api": "playwright test tests/api",
831
+ "test:component": "playwright test tests/component",
832
+ "test:unit": "vitest"
833
+ }
834
+ }
835
+ ```
836
+
837
+ 3. **Run Test Suite**
838
+
839
+ If `{run_tests_after_generation}` is true:
840
+ - Run full test suite locally
841
+ - Capture results (passing/failing counts)
842
+ - Verify no flaky patterns (tests should be deterministic)
843
+ - Document any setup requirements or known issues
844
+
845
+ ---
846
+
847
+ ## Step 6: Generate Automation Summary
848
+
849
+ ### Actions
850
+
851
+ 1. **Create Automation Summary Document**
852
+
853
+ Save to `{output_summary}` with:
854
+
855
+ **BMad-Integrated Mode:**
856
+
857
+ ````markdown
858
+ # Automation Summary - {feature_name}
859
+
860
+ **Date:** {date}
861
+ **Story:** {story_id}
862
+ **Coverage Target:** {coverage_target}
863
+
864
+ ## Tests Created
865
+
866
+ ### E2E Tests (P0-P1)
867
+
868
+ - `tests/e2e/user-authentication.spec.ts` (2 tests, 87 lines)
869
+ - [P0] Login with valid credentials → Dashboard loads
870
+ - [P1] Display error for invalid credentials
871
+
872
+ ### API Tests (P1-P2)
873
+
874
+ - `tests/api/auth.api.spec.ts` (3 tests, 102 lines)
875
+ - [P1] POST /auth/login - valid credentials → 200 + token
876
+ - [P1] POST /auth/login - invalid credentials → 401 + error
877
+ - [P2] POST /auth/login - missing fields → 400 + validation
878
+
879
+ ### Component Tests (P1)
880
+
881
+ - `tests/component/LoginForm.test.tsx` (2 tests, 45 lines)
882
+ - [P1] Empty fields → submit button disabled
883
+ - [P1] Valid input → submit button enabled
884
+
885
+ ## Infrastructure Created
886
+
887
+ ### Fixtures
888
+
889
+ - `tests/support/fixtures/auth.fixture.ts` - authenticatedUser with auto-cleanup
890
+
891
+ ### Factories
892
+
893
+ - `tests/support/factories/user.factory.ts` - createUser(), deleteUser()
894
+
895
+ ### Helpers
896
+
897
+ - `tests/support/helpers/wait-for.ts` - Polling helper for complex conditions
898
+
899
+ ## Test Execution
900
+
901
+ ```bash
902
+ # Run all new tests
903
+ npm run test:e2e
904
+
905
+ # Run by priority
906
+ npm run test:e2e:p0 # Critical paths only
907
+ npm run test:e2e:p1 # P0 + P1 tests
908
+ ```
909
+ ````
910
+
911
+ ## Coverage Analysis
912
+
913
+ **Total Tests:** 7
914
+ - P0: 1 test (critical path)
915
+ - P1: 5 tests (high priority)
916
+ - P2: 1 test (medium priority)
917
+
918
+ **Test Levels:**
919
+ - E2E: 2 tests (user journeys)
920
+ - API: 3 tests (business logic)
921
+ - Component: 2 tests (UI behavior)
922
+
923
+ **Coverage Status:**
924
+ - ✅ All acceptance criteria covered
925
+ - ✅ Happy path covered (E2E + API)
926
+ - ✅ Error cases covered (API)
927
+ - ✅ UI validation covered (Component)
928
+ - ⚠️ Edge case: Password reset flow not yet covered (future story)
929
+
930
+ ## Definition of Done
931
+ - [x] All tests follow Given-When-Then format
932
+ - [x] All tests use data-testid selectors
933
+ - [x] All tests have priority tags
934
+ - [x] All tests are self-cleaning (fixtures with auto-cleanup)
935
+ - [x] No hard waits or flaky patterns
936
+ - [x] Test files under 300 lines
937
+ - [x] All tests run under 1.5 minutes each
938
+ - [x] README updated with test execution instructions
939
+ - [x] package.json scripts updated
940
+
941
+ ## Next Steps
942
+ 1. Review generated tests with team
943
+ 2. Run tests in CI pipeline: `npm run test:e2e`
944
+ 3. Integrate with quality gate: `bmad tea *gate`
945
+ 4. Monitor for flaky tests in burn-in loop
946
+
947
+ ````
948
+
949
+ **Standalone Mode:**
950
+ ```markdown
951
+ # Automation Summary - {target_feature}
952
+
953
+ **Date:** {date}
954
+ **Target:** {target_feature} (standalone analysis)
955
+ **Coverage Target:** {coverage_target}
956
+
957
+ ## Feature Analysis
958
+
959
+ **Source Files Analyzed:**
960
+ - `src/auth/login.ts` - Login logic and validation
961
+ - `src/auth/session.ts` - Session management
962
+ - `src/auth/validation.ts` - Email/password validation
963
+
964
+ **Existing Coverage:**
965
+ - E2E tests: 0 found
966
+ - API tests: 0 found
967
+ - Component tests: 0 found
968
+ - Unit tests: 0 found
969
+
970
+ **Coverage Gaps Identified:**
971
+ - ❌ No E2E tests for login flow
972
+ - ❌ No API tests for /auth/login endpoint
973
+ - ❌ No component tests for LoginForm
974
+ - ❌ No unit tests for validateEmail()
975
+
976
+ ## Tests Created
977
+
978
+ {Same structure as BMad-Integrated Mode}
979
+
980
+ ## Recommendations
981
+
982
+ 1. **High Priority (P0-P1):**
983
+ - Add E2E test for password reset flow
984
+ - Add API tests for token refresh endpoint
985
+ - Add component tests for logout button
986
+
987
+ 2. **Medium Priority (P2):**
988
+ - Add unit tests for session timeout logic
989
+ - Add E2E test for "remember me" functionality
990
+
991
+ 3. **Future Enhancements:**
992
+ - Consider contract testing for auth API
993
+ - Add visual regression tests for login page
994
+ - Set up burn-in loop for flaky test detection
995
+
996
+ ## Definition of Done
997
+
998
+ {Same checklist as BMad-Integrated Mode}
999
+ ````
1000
+
1001
+ 2. **Provide Summary to User**
1002
+
1003
+ Output concise summary:
1004
+
1005
+ ```markdown
1006
+ ## Automation Complete
1007
+
1008
+ **Coverage:** {total_tests} tests created across {test_levels} levels
1009
+ **Priority Breakdown:** P0: {p0_count}, P1: {p1_count}, P2: {p2_count}, P3: {p3_count}
1010
+ **Infrastructure:** {fixture_count} fixtures, {factory_count} factories
1011
+ **Output:** {output_summary}
1012
+
1013
+ **Run tests:** `npm run test:e2e`
1014
+ **Next steps:** Review tests, run in CI, integrate with quality gate
1015
+ ```
1016
+
1017
+ ---
1018
+
1019
+ ## Important Notes
1020
+
1021
+ ### Dual-Mode Operation
1022
+
1023
+ **BMad-Integrated Mode** (story available):
1024
+
1025
+ - Uses story acceptance criteria for coverage targeting
1026
+ - Aligns with test-design risk/priority assessment
1027
+ - Expands ATDD tests with edge cases and negative paths
1028
+ - Updates BMad status tracking
1029
+
1030
+ **Standalone Mode** (no story):
1031
+
1032
+ - Analyzes source code independently
1033
+ - Identifies coverage gaps automatically
1034
+ - Generates tests based on code analysis
1035
+ - Works with any project (BMad or non-BMad)
1036
+
1037
+ **Auto-discover Mode** (no targets specified):
1038
+
1039
+ - Scans codebase for features needing tests
1040
+ - Prioritizes features with no coverage
1041
+ - Generates comprehensive test plan
1042
+
1043
+ ### Avoid Duplicate Coverage
1044
+
1045
+ **Critical principle:** Don't test same behavior at multiple levels
1046
+
1047
+ **Good coverage:**
1048
+
1049
+ - E2E: User can login → Dashboard loads (critical happy path)
1050
+ - API: POST /auth/login returns correct status codes (variations)
1051
+ - Component: LoginForm validates input (UI edge cases)
1052
+
1053
+ **Bad coverage (duplicate):**
1054
+
1055
+ - E2E: User can login → Dashboard loads
1056
+ - E2E: User can login with different emails → Dashboard loads (unnecessary duplication)
1057
+ - API: POST /auth/login returns 200 (already covered in E2E)
1058
+
1059
+ Use E2E sparingly for critical paths. Use API/Component for variations and edge cases.
1060
+
1061
+ ### Priority Tagging
1062
+
1063
+ **Tag every test with priority in test name:**
1064
+
1065
+ ```typescript
1066
+ test('[P0] should login with valid credentials', async ({ page }) => { ... });
1067
+ test('[P1] should display error for invalid credentials', async ({ page }) => { ... });
1068
+ test('[P2] should remember login preference', async ({ page }) => { ... });
1069
+ ```
1070
+
1071
+ **Enables selective test execution:**
1072
+
1073
+ ```bash
1074
+ # Run only P0 tests (critical paths)
1075
+ npm run test:e2e -- --grep "@P0"
1076
+
1077
+ # Run P0 + P1 tests (pre-merge)
1078
+ npm run test:e2e -- --grep "@P0|@P1"
1079
+ ```
1080
+
1081
+ ### No Page Objects
1082
+
1083
+ **Do NOT create page object classes.** Keep tests simple and direct:
1084
+
1085
+ ```typescript
1086
+ // ✅ CORRECT: Direct test
1087
+ test('should login', async ({ page }) => {
1088
+ await page.goto('/login');
1089
+ await page.fill('[data-testid="email"]', 'user@example.com');
1090
+ await page.click('[data-testid="login-button"]');
1091
+ await expect(page).toHaveURL('/dashboard');
1092
+ });
1093
+
1094
+ // ❌ WRONG: Page object abstraction
1095
+ class LoginPage {
1096
+ async login(email, password) { ... }
1097
+ }
1098
+ ```
1099
+
1100
+ Use fixtures for setup/teardown, not page objects for actions.
1101
+
1102
+ ### Deterministic Tests Only
1103
+
1104
+ **No flaky patterns allowed:**
1105
+
1106
+ ```typescript
1107
+ // ❌ WRONG: Hard wait
1108
+ await page.waitForTimeout(2000);
1109
+
1110
+ // ✅ CORRECT: Explicit wait
1111
+ await page.waitForSelector('[data-testid="user-name"]');
1112
+ await expect(page.locator('[data-testid="user-name"]')).toBeVisible();
1113
+
1114
+ // ❌ WRONG: Conditional flow
1115
+ if (await element.isVisible()) {
1116
+ await element.click();
1117
+ }
1118
+
1119
+ // ✅ CORRECT: Deterministic assertion
1120
+ await expect(element).toBeVisible();
1121
+ await element.click();
1122
+
1123
+ // ❌ WRONG: Try-catch for test logic
1124
+ try {
1125
+ await element.click();
1126
+ } catch (e) {
1127
+ // Test shouldn't catch errors
1128
+ }
1129
+
1130
+ // ✅ CORRECT: Let test fail if element not found
1131
+ await element.click();
1132
+ ```
1133
+
1134
+ ### Self-Cleaning Tests
1135
+
1136
+ **Every test must clean up its data:**
1137
+
1138
+ ```typescript
1139
+ // ✅ CORRECT: Fixture with auto-cleanup
1140
+ export const test = base.extend({
1141
+ testUser: async ({ page }, use) => {
1142
+ const user = await createUser();
1143
+ await use(user);
1144
+ await deleteUser(user.id); // Auto-cleanup
1145
+ },
1146
+ });
1147
+
1148
+ // ❌ WRONG: Manual cleanup (can be forgotten)
1149
+ test('should login', async ({ page }) => {
1150
+ const user = await createUser();
1151
+ // ... test logic ...
1152
+ // Forgot to delete user!
1153
+ });
1154
+ ```
1155
+
1156
+ ### File Size Limits
1157
+
1158
+ **Keep test files lean (under {max_file_lines} lines):**
1159
+
1160
+ - If file exceeds limit, split into multiple files by feature area
1161
+ - Group related tests in describe blocks
1162
+ - Extract common setup to fixtures
1163
+
1164
+ ### Knowledge Base Integration
1165
+
1166
+ **Core Fragments (Auto-loaded in Step 1):**
1167
+
1168
+ - `test-levels-framework.md` - E2E vs API vs Component vs Unit decision framework with characteristics matrix (467 lines, 4 examples)
1169
+ - `test-priorities-matrix.md` - P0-P3 classification with automated scoring and risk mapping (389 lines, 2 examples)
1170
+ - `fixture-architecture.md` - Pure function → fixture → mergeTests composition with auto-cleanup (406 lines, 5 examples)
1171
+ - `data-factories.md` - Factory patterns with faker: overrides, nested factories, API seeding (498 lines, 5 examples)
1172
+ - `selective-testing.md` - Tag-based, spec filters, diff-based selection, promotion rules (727 lines, 4 examples)
1173
+ - `ci-burn-in.md` - 10-iteration burn-in loop, parallel sharding, selective execution (678 lines, 4 examples)
1174
+ - `test-quality.md` - Deterministic tests, isolated with cleanup, explicit assertions, length/time optimization (658 lines, 5 examples)
1175
+ - `network-first.md` - Intercept before navigate, HAR capture, deterministic waiting strategies (489 lines, 5 examples)
1176
+
1177
+ **Healing Fragments (Auto-loaded if `{auto_heal_failures}` enabled):**
1178
+
1179
+ - `test-healing-patterns.md` - Common failure patterns: stale selectors, race conditions, dynamic data, network errors, hard waits (648 lines, 5 examples)
1180
+ - `selector-resilience.md` - Selector hierarchy (data-testid > ARIA > text > CSS), dynamic patterns, anti-patterns refactoring (541 lines, 4 examples)
1181
+ - `timing-debugging.md` - Race condition prevention, deterministic waiting, async debugging techniques (370 lines, 3 examples)
1182
+
1183
+ **Manual Reference (Optional):**
1184
+
1185
+ - Use `tea-index.csv` to find additional specialized fragments as needed
1186
+
1187
+ ---
1188
+
1189
+ ## Output Summary
1190
+
1191
+ After completing this workflow, provide a summary:
1192
+
1193
+ ````markdown
1194
+ ## Automation Complete
1195
+
1196
+ **Mode:** {standalone_mode ? "Standalone" : "BMad-Integrated"}
1197
+ **Target:** {story_id || target_feature || "Auto-discovered features"}
1198
+
1199
+ **Tests Created:**
1200
+
1201
+ - E2E: {e2e_count} tests ({p0_count} P0, {p1_count} P1, {p2_count} P2)
1202
+ - API: {api_count} tests ({p0_count} P0, {p1_count} P1, {p2_count} P2)
1203
+ - Component: {component_count} tests ({p1_count} P1, {p2_count} P2)
1204
+ - Unit: {unit_count} tests ({p2_count} P2, {p3_count} P3)
1205
+
1206
+ **Infrastructure:**
1207
+
1208
+ - Fixtures: {fixture_count} created/enhanced
1209
+ - Factories: {factory_count} created/enhanced
1210
+ - Helpers: {helper_count} created/enhanced
1211
+
1212
+ **Documentation Updated:**
1213
+
1214
+ - ✅ Test README with execution instructions
1215
+ - ✅ package.json scripts for test execution
1216
+
1217
+ **Test Execution:**
1218
+
1219
+ ```bash
1220
+ # Run all tests
1221
+ npm run test:e2e
1222
+
1223
+ # Run by priority
1224
+ npm run test:e2e:p0 # Critical paths only
1225
+ npm run test:e2e:p1 # P0 + P1 tests
1226
+
1227
+ # Run specific file
1228
+ npm run test:e2e -- {first_test_file}
1229
+ ```
1230
+ ````
1231
+
1232
+ **Coverage Status:**
1233
+
1234
+ - ✅ {coverage_percentage}% of features covered
1235
+ - ✅ All P0 scenarios covered
1236
+ - ✅ All P1 scenarios covered
1237
+ - ⚠️ {gap_count} coverage gaps identified (documented in summary)
1238
+
1239
+ **Quality Checks:**
1240
+
1241
+ - ✅ All tests follow Given-When-Then format
1242
+ - ✅ All tests have priority tags
1243
+ - ✅ All tests use data-testid selectors
1244
+ - ✅ All tests are self-cleaning
1245
+ - ✅ No hard waits or flaky patterns
1246
+ - ✅ All test files under {max_file_lines} lines
1247
+
1248
+ **Output File:** {output_summary}
1249
+
1250
+ **Next Steps:**
1251
+
1252
+ 1. Review generated tests with team
1253
+ 2. Run tests in CI pipeline
1254
+ 3. Monitor for flaky tests in burn-in loop
1255
+ 4. Integrate with quality gate: `bmad tea *gate`
1256
+
1257
+ **Knowledge Base References Applied:**
1258
+
1259
+ - Test level selection framework (E2E vs API vs Component vs Unit)
1260
+ - Priority classification (P0-P3)
1261
+ - Fixture architecture patterns with auto-cleanup
1262
+ - Data factory patterns using faker
1263
+ - Selective testing strategies
1264
+ - Test quality principles
1265
+
1266
+ ```
1267
+
1268
+ ---
1269
+
1270
+ ## Validation
1271
+
1272
+ After completing all steps, verify:
1273
+
1274
+ - [ ] Execution mode determined (BMad-Integrated, Standalone, or Auto-discover)
1275
+ - [ ] BMad artifacts loaded if available (story, tech-spec, test-design, PRD)
1276
+ - [ ] Framework configuration loaded
1277
+ - [ ] Existing test coverage analyzed (gaps identified)
1278
+ - [ ] Knowledge base fragments loaded (test-levels, test-priorities, fixture-architecture, data-factories, selective-testing)
1279
+ - [ ] Automation targets identified (what needs testing)
1280
+ - [ ] Test levels selected appropriately (E2E, API, Component, Unit)
1281
+ - [ ] Duplicate coverage avoided (same behavior not tested at multiple levels)
1282
+ - [ ] Test priorities assigned (P0, P1, P2, P3)
1283
+ - [ ] Fixture architecture created/enhanced (with auto-cleanup)
1284
+ - [ ] Data factories created/enhanced (using faker)
1285
+ - [ ] Helper utilities created/enhanced (if needed)
1286
+ - [ ] E2E tests written (Given-When-Then, priority tags, data-testid selectors)
1287
+ - [ ] API tests written (Given-When-Then, priority tags, comprehensive coverage)
1288
+ - [ ] Component tests written (Given-When-Then, priority tags, UI behavior)
1289
+ - [ ] Unit tests written (Given-When-Then, priority tags, pure logic)
1290
+ - [ ] Network-first pattern applied (route interception before navigation)
1291
+ - [ ] Quality standards enforced (no hard waits, no flaky patterns, self-cleaning, deterministic)
1292
+ - [ ] Test README updated (execution instructions, priority tagging, patterns)
1293
+ - [ ] package.json scripts updated (test execution commands)
1294
+ - [ ] Test suite run locally (results captured)
1295
+ - [ ] Tests validated (if auto_validate enabled)
1296
+ - [ ] Failures healed (if auto_heal_failures enabled)
1297
+ - [ ] Healing report generated (if healing attempted)
1298
+ - [ ] Unfixable tests marked with test.fixme() (if any)
1299
+ - [ ] Automation summary created (tests, infrastructure, coverage, healing, DoD)
1300
+ - [ ] Output file formatted correctly
1301
+
1302
+ Refer to `checklist.md` for comprehensive validation criteria.
1303
+ ```