siesa-agents 2.1.40 → 2.1.42

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 (552) hide show
  1. package/README.md +147 -147
  2. package/bin/install.js +534 -534
  3. package/bin/prepare-publish.js +26 -26
  4. package/bin/restore-folders.js +26 -26
  5. package/bmad/_config/agent-manifest.csv +20 -20
  6. package/bmad/_config/agents/bmb-agent-builder.customize.yaml +41 -41
  7. package/bmad/_config/agents/bmb-module-builder.customize.yaml +41 -41
  8. package/bmad/_config/agents/bmb-workflow-builder.customize.yaml +41 -41
  9. package/bmad/_config/files-manifest.csv +469 -469
  10. package/bmad/_config/ides/claude-code.yaml +6 -6
  11. package/bmad/_config/manifest.yaml +14 -14
  12. package/bmad/_config/task-manifest.csv +6 -6
  13. package/bmad/_config/tool-manifest.csv +1 -1
  14. package/bmad/_config/workflow-manifest.csv +45 -45
  15. package/bmad/_memory/config.yaml +11 -11
  16. package/bmad/bmb/README.md +25 -25
  17. package/bmad/bmb/agents/agent-builder.md +57 -57
  18. package/bmad/bmb/agents/module-builder.md +60 -60
  19. package/bmad/bmb/agents/workflow-builder.md +56 -56
  20. package/bmad/bmb/config.yaml +12 -12
  21. package/bmad/bmb/docs/workflows/architecture.md +220 -220
  22. package/bmad/bmb/docs/workflows/common-workflow-tools.csv +18 -18
  23. package/bmad/bmb/docs/workflows/csv-data-file-standards.md +206 -206
  24. package/bmad/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +220 -220
  25. package/bmad/bmb/docs/workflows/step-file-rules.md +469 -469
  26. package/bmad/bmb/docs/workflows/templates/step-01-init-continuable-template.md +241 -241
  27. package/bmad/bmb/docs/workflows/templates/step-1b-template.md +223 -223
  28. package/bmad/bmb/docs/workflows/templates/step-file.md +139 -139
  29. package/bmad/bmb/docs/workflows/templates/step-template.md +290 -290
  30. package/bmad/bmb/docs/workflows/templates/workflow-template.md +104 -104
  31. package/bmad/bmb/docs/workflows/templates/workflow.md +58 -58
  32. package/bmad/bmb/docs/workflows/terms.md +97 -97
  33. package/bmad/bmb/reference/agents/simple-examples/README.md +223 -223
  34. package/bmad/bmb/reference/readme.md +3 -3
  35. package/bmad/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +17 -17
  36. package/bmad/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +15 -15
  37. package/bmad/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +27 -27
  38. package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -177
  39. package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +121 -121
  40. package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +165 -165
  41. package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +154 -154
  42. package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +183 -183
  43. package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +168 -168
  44. package/bmad/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +195 -195
  45. package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -25
  46. package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -68
  47. package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -29
  48. package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -47
  49. package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -37
  50. package/bmad/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -18
  51. package/bmad/bmb/reference/workflows/meal-prep-nutrition/workflow.md +59 -59
  52. package/bmad/bmb/workflows/agent/data/agent-compilation.md +273 -273
  53. package/bmad/bmb/workflows/agent/data/agent-menu-patterns.md +233 -233
  54. package/bmad/bmb/workflows/agent/data/agent-metadata.md +208 -208
  55. package/bmad/bmb/workflows/agent/data/brainstorm-context.md +146 -146
  56. package/bmad/bmb/workflows/agent/data/communication-presets.csv +61 -61
  57. package/bmad/bmb/workflows/agent/data/critical-actions.md +120 -120
  58. package/bmad/bmb/workflows/agent/data/expert-agent-architecture.md +236 -236
  59. package/bmad/bmb/workflows/agent/data/expert-agent-validation.md +173 -173
  60. package/bmad/bmb/workflows/agent/data/module-agent-validation.md +124 -124
  61. package/bmad/bmb/workflows/agent/data/persona-properties.md +266 -266
  62. package/bmad/bmb/workflows/agent/data/principles-crafting.md +292 -292
  63. package/bmad/bmb/workflows/agent/data/reference/expert-examples/journal-keeper/journal-keeper-sidecar/entries/yy-mm-dd-entry-template.md +16 -16
  64. package/bmad/bmb/workflows/agent/data/reference/module-examples/architect.md +68 -68
  65. package/bmad/bmb/workflows/agent/data/simple-agent-architecture.md +204 -204
  66. package/bmad/bmb/workflows/agent/data/simple-agent-validation.md +132 -132
  67. package/bmad/bmb/workflows/agent/data/understanding-agent-types.md +222 -222
  68. package/bmad/bmb/workflows/agent/steps-c/step-01-brainstorm.md +126 -126
  69. package/bmad/bmb/workflows/agent/steps-c/step-02-discovery.md +168 -168
  70. package/bmad/bmb/workflows/agent/steps-c/step-03-type-metadata.md +294 -294
  71. package/bmad/bmb/workflows/agent/steps-c/step-04-persona.md +210 -210
  72. package/bmad/bmb/workflows/agent/steps-c/step-05-commands-menu.md +176 -176
  73. package/bmad/bmb/workflows/agent/steps-c/step-06-activation.md +275 -275
  74. package/bmad/bmb/workflows/agent/steps-c/step-07a-build-simple.md +185 -185
  75. package/bmad/bmb/workflows/agent/steps-c/step-07b-build-expert.md +201 -201
  76. package/bmad/bmb/workflows/agent/steps-c/step-07c-build-module.md +258 -258
  77. package/bmad/bmb/workflows/agent/steps-c/step-08a-plan-traceability.md +203 -203
  78. package/bmad/bmb/workflows/agent/steps-c/step-08b-metadata-validation.md +135 -135
  79. package/bmad/bmb/workflows/agent/steps-c/step-08c-persona-validation.md +161 -161
  80. package/bmad/bmb/workflows/agent/steps-c/step-08d-menu-validation.md +158 -158
  81. package/bmad/bmb/workflows/agent/steps-c/step-08e-structure-validation.md +306 -306
  82. package/bmad/bmb/workflows/agent/steps-c/step-08f-sidecar-validation.md +462 -462
  83. package/bmad/bmb/workflows/agent/steps-c/step-09-celebrate.md +244 -244
  84. package/bmad/bmb/workflows/agent/steps-e/e-01-load-existing.md +214 -214
  85. package/bmad/bmb/workflows/agent/steps-e/e-02-discover-edits.md +191 -191
  86. package/bmad/bmb/workflows/agent/steps-e/e-03a-validate-metadata.md +78 -78
  87. package/bmad/bmb/workflows/agent/steps-e/e-03b-validate-persona.md +76 -76
  88. package/bmad/bmb/workflows/agent/steps-e/e-03c-validate-menu.md +75 -75
  89. package/bmad/bmb/workflows/agent/steps-e/e-03d-validate-structure.md +75 -75
  90. package/bmad/bmb/workflows/agent/steps-e/e-03e-validate-sidecar.md +78 -78
  91. package/bmad/bmb/workflows/agent/steps-e/e-03f-validation-summary.md +119 -119
  92. package/bmad/bmb/workflows/agent/steps-e/e-04-type-metadata.md +122 -122
  93. package/bmad/bmb/workflows/agent/steps-e/e-05-persona.md +132 -132
  94. package/bmad/bmb/workflows/agent/steps-e/e-06-commands-menu.md +120 -120
  95. package/bmad/bmb/workflows/agent/steps-e/e-07-activation.md +122 -122
  96. package/bmad/bmb/workflows/agent/steps-e/e-08a-edit-simple.md +134 -134
  97. package/bmad/bmb/workflows/agent/steps-e/e-08b-edit-expert.md +117 -117
  98. package/bmad/bmb/workflows/agent/steps-e/e-08c-edit-module.md +120 -120
  99. package/bmad/bmb/workflows/agent/steps-e/e-09a-validate-metadata.md +70 -70
  100. package/bmad/bmb/workflows/agent/steps-e/e-09b-validate-persona.md +70 -70
  101. package/bmad/bmb/workflows/agent/steps-e/e-09c-validate-menu.md +69 -69
  102. package/bmad/bmb/workflows/agent/steps-e/e-09d-validate-structure.md +69 -69
  103. package/bmad/bmb/workflows/agent/steps-e/e-09e-validate-sidecar.md +70 -70
  104. package/bmad/bmb/workflows/agent/steps-e/e-09f-validation-summary.md +111 -111
  105. package/bmad/bmb/workflows/agent/steps-e/e-10-celebrate.md +150 -150
  106. package/bmad/bmb/workflows/agent/steps-v/v-01-load-review.md +128 -128
  107. package/bmad/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +73 -73
  108. package/bmad/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +72 -72
  109. package/bmad/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +71 -71
  110. package/bmad/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +71 -71
  111. package/bmad/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +76 -76
  112. package/bmad/bmb/workflows/agent/steps-v/v-03-summary.md +100 -100
  113. package/bmad/bmb/workflows/agent/templates/agent-plan.template.md +5 -5
  114. package/bmad/bmb/workflows/agent/templates/expert-agent-template/expert-agent.template.md +76 -76
  115. package/bmad/bmb/workflows/agent/templates/simple-agent.template.md +71 -71
  116. package/bmad/bmb/workflows/agent/workflow.md +123 -123
  117. package/bmad/bmb/workflows/create-module/steps/step-01-init.md +156 -156
  118. package/bmad/bmb/workflows/create-module/steps/step-01b-continue.md +170 -170
  119. package/bmad/bmb/workflows/create-module/steps/step-02-concept.md +218 -218
  120. package/bmad/bmb/workflows/create-module/steps/step-03-components.md +268 -268
  121. package/bmad/bmb/workflows/create-module/steps/step-04-structure.md +229 -229
  122. package/bmad/bmb/workflows/create-module/steps/step-05-config.md +234 -234
  123. package/bmad/bmb/workflows/create-module/steps/step-06-agents.md +297 -297
  124. package/bmad/bmb/workflows/create-module/steps/step-07-workflows.md +229 -229
  125. package/bmad/bmb/workflows/create-module/steps/step-08-installer.md +187 -187
  126. package/bmad/bmb/workflows/create-module/steps/step-09-documentation.md +310 -310
  127. package/bmad/bmb/workflows/create-module/steps/step-10-roadmap.md +338 -338
  128. package/bmad/bmb/workflows/create-module/steps/step-11-validate.md +336 -336
  129. package/bmad/bmb/workflows/create-module/templates/agent.template.md +313 -313
  130. package/bmad/bmb/workflows/create-module/templates/installer.template.js +47 -47
  131. package/bmad/bmb/workflows/create-module/templates/module-plan.template.md +5 -5
  132. package/bmad/bmb/workflows/create-module/templates/module.template.yaml +53 -53
  133. package/bmad/bmb/workflows/create-module/templates/workflow-plan-template.md +23 -23
  134. package/bmad/bmb/workflows/create-module/validation.md +126 -126
  135. package/bmad/bmb/workflows/create-module/workflow.md +56 -56
  136. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/dietary-restrictions.csv +17 -17
  137. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/macro-calculator.csv +15 -15
  138. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/recipe-database.csv +27 -27
  139. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-01-init.md +177 -177
  140. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-01b-continue.md +150 -150
  141. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-02-profile.md +164 -164
  142. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-03-assessment.md +152 -152
  143. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-04-strategy.md +182 -182
  144. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-05-shopping.md +167 -167
  145. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -194
  146. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/assessment-section.md +25 -25
  147. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/nutrition-plan.md +68 -68
  148. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/prep-schedule-section.md +29 -29
  149. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/profile-section.md +47 -47
  150. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/shopping-section.md +37 -37
  151. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/strategy-section.md +18 -18
  152. package/bmad/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/workflow.md +58 -58
  153. package/bmad/bmb/workflows/create-workflow/steps/step-01-init.md +158 -158
  154. package/bmad/bmb/workflows/create-workflow/steps/step-02-gather.md +212 -212
  155. package/bmad/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +251 -251
  156. package/bmad/bmb/workflows/create-workflow/steps/step-04-plan-review.md +217 -217
  157. package/bmad/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +290 -290
  158. package/bmad/bmb/workflows/create-workflow/steps/step-06-design.md +272 -272
  159. package/bmad/bmb/workflows/create-workflow/steps/step-07-build.md +323 -323
  160. package/bmad/bmb/workflows/create-workflow/steps/step-08-review.md +285 -285
  161. package/bmad/bmb/workflows/create-workflow/steps/step-09-complete.md +188 -188
  162. package/bmad/bmb/workflows/create-workflow/workflow.md +59 -59
  163. package/bmad/bmb/workflows/edit-workflow/steps/step-01-analyze.md +217 -217
  164. package/bmad/bmb/workflows/edit-workflow/steps/step-02-discover.md +254 -254
  165. package/bmad/bmb/workflows/edit-workflow/steps/step-03-improve.md +218 -218
  166. package/bmad/bmb/workflows/edit-workflow/steps/step-04-validate.md +194 -194
  167. package/bmad/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +246 -246
  168. package/bmad/bmb/workflows/edit-workflow/templates/completion-summary.md +75 -75
  169. package/bmad/bmb/workflows/edit-workflow/templates/improvement-goals.md +68 -68
  170. package/bmad/bmb/workflows/edit-workflow/templates/improvement-log.md +40 -40
  171. package/bmad/bmb/workflows/edit-workflow/templates/validation-results.md +51 -51
  172. package/bmad/bmb/workflows/edit-workflow/templates/workflow-analysis.md +56 -56
  173. package/bmad/bmb/workflows/edit-workflow/workflow.md +59 -59
  174. package/bmad/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +153 -153
  175. package/bmad/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +244 -244
  176. package/bmad/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +275 -275
  177. package/bmad/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +296 -296
  178. package/bmad/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +265 -265
  179. package/bmad/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +361 -361
  180. package/bmad/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +259 -259
  181. package/bmad/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +302 -302
  182. package/bmad/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +140 -140
  183. package/bmad/bmb/workflows/workflow-compliance-check/workflow.md +59 -59
  184. package/bmad/bmb/workflows-legacy/edit-module/README.md +171 -171
  185. package/bmad/bmb/workflows-legacy/edit-module/checklist.md +163 -163
  186. package/bmad/bmb/workflows-legacy/edit-module/instructions.md +340 -340
  187. package/bmad/bmb/workflows-legacy/edit-module/workflow.yaml +32 -32
  188. package/bmad/bmb/workflows-legacy/module-brief/README.md +264 -264
  189. package/bmad/bmb/workflows-legacy/module-brief/checklist.md +116 -116
  190. package/bmad/bmb/workflows-legacy/module-brief/instructions.md +268 -268
  191. package/bmad/bmb/workflows-legacy/module-brief/template.md +275 -275
  192. package/bmad/bmb/workflows-legacy/module-brief/workflow.yaml +34 -34
  193. package/bmad/bmm/agents/analyst.md +76 -76
  194. package/bmad/bmm/agents/architect.md +68 -68
  195. package/bmad/bmm/agents/dev.md +70 -70
  196. package/bmad/bmm/agents/pm.md +70 -70
  197. package/bmad/bmm/agents/quick-flow-solo-dev.md +68 -68
  198. package/bmad/bmm/agents/sm.md +71 -71
  199. package/bmad/bmm/agents/tea.md +71 -71
  200. package/bmad/bmm/agents/tech-writer.md +72 -72
  201. package/bmad/bmm/agents/ux-designer.md +68 -68
  202. package/bmad/bmm/config.yaml +18 -18
  203. package/bmad/bmm/data/README.md +29 -29
  204. package/bmad/bmm/data/documentation-standards.md +262 -262
  205. package/bmad/bmm/data/project-context-template.md +40 -40
  206. package/bmad/bmm/teams/default-party.csv +21 -21
  207. package/bmad/bmm/teams/team-fullstack.yaml +12 -12
  208. package/bmad/bmm/testarch/knowledge/api-request.md +303 -303
  209. package/bmad/bmm/testarch/knowledge/auth-session.md +356 -356
  210. package/bmad/bmm/testarch/knowledge/burn-in.md +273 -273
  211. package/bmad/bmm/testarch/knowledge/ci-burn-in.md +675 -675
  212. package/bmad/bmm/testarch/knowledge/component-tdd.md +486 -486
  213. package/bmad/bmm/testarch/knowledge/contract-testing.md +957 -957
  214. package/bmad/bmm/testarch/knowledge/data-factories.md +500 -500
  215. package/bmad/bmm/testarch/knowledge/email-auth.md +721 -721
  216. package/bmad/bmm/testarch/knowledge/error-handling.md +725 -725
  217. package/bmad/bmm/testarch/knowledge/feature-flags.md +750 -750
  218. package/bmad/bmm/testarch/knowledge/file-utils.md +260 -260
  219. package/bmad/bmm/testarch/knowledge/fixture-architecture.md +401 -401
  220. package/bmad/bmm/testarch/knowledge/fixtures-composition.md +382 -382
  221. package/bmad/bmm/testarch/knowledge/intercept-network-call.md +280 -280
  222. package/bmad/bmm/testarch/knowledge/log.md +294 -294
  223. package/bmad/bmm/testarch/knowledge/network-error-monitor.md +272 -272
  224. package/bmad/bmm/testarch/knowledge/network-first.md +486 -486
  225. package/bmad/bmm/testarch/knowledge/network-recorder.md +265 -265
  226. package/bmad/bmm/testarch/knowledge/nfr-criteria.md +670 -670
  227. package/bmad/bmm/testarch/knowledge/overview.md +283 -283
  228. package/bmad/bmm/testarch/knowledge/playwright-config.md +730 -730
  229. package/bmad/bmm/testarch/knowledge/probability-impact.md +601 -601
  230. package/bmad/bmm/testarch/knowledge/recurse.md +296 -296
  231. package/bmad/bmm/testarch/knowledge/risk-governance.md +615 -615
  232. package/bmad/bmm/testarch/knowledge/selective-testing.md +732 -732
  233. package/bmad/bmm/testarch/knowledge/selector-resilience.md +527 -527
  234. package/bmad/bmm/testarch/knowledge/test-healing-patterns.md +644 -644
  235. package/bmad/bmm/testarch/knowledge/test-levels-framework.md +473 -473
  236. package/bmad/bmm/testarch/knowledge/test-priorities-matrix.md +373 -373
  237. package/bmad/bmm/testarch/knowledge/test-quality.md +664 -664
  238. package/bmad/bmm/testarch/knowledge/timing-debugging.md +372 -372
  239. package/bmad/bmm/testarch/knowledge/visual-debugging.md +524 -524
  240. package/bmad/bmm/testarch/tea-index.csv +33 -33
  241. package/bmad/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -10
  242. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +182 -182
  243. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +166 -166
  244. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +204 -204
  245. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +207 -207
  246. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +210 -210
  247. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +224 -224
  248. package/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +199 -199
  249. package/bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -58
  250. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -137
  251. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -229
  252. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -238
  253. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -206
  254. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -234
  255. package/bmad/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -443
  256. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -182
  257. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -237
  258. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -200
  259. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -249
  260. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -259
  261. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -177
  262. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -475
  263. package/bmad/bmm/workflows/1-analysis/research/research.template.md +29 -29
  264. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -137
  265. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -239
  266. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -248
  267. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -202
  268. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -239
  269. package/bmad/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -486
  270. package/bmad/bmm/workflows/1-analysis/research/workflow.md +173 -173
  271. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -135
  272. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -127
  273. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -190
  274. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -216
  275. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -219
  276. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -234
  277. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -252
  278. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -254
  279. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -224
  280. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -224
  281. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -241
  282. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +332 -248
  283. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -237
  284. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -264
  285. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +228 -228
  286. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -13
  287. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +59 -43
  288. package/bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +12 -12
  289. package/bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +11 -11
  290. package/bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +10 -10
  291. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +197 -197
  292. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +166 -166
  293. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +421 -421
  294. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +290 -290
  295. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +291 -291
  296. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +271 -271
  297. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +262 -262
  298. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +258 -258
  299. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +299 -299
  300. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +270 -270
  301. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +294 -294
  302. package/bmad/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +186 -186
  303. package/bmad/bmm/workflows/2-plan-workflows/prd/workflow.md +63 -63
  304. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -190
  305. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -178
  306. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -179
  307. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -139
  308. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -252
  309. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +133 -133
  310. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -4
  311. package/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -55
  312. package/bmad/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -12
  313. package/bmad/bmm/workflows/3-solutioning/create-architecture/data/company-standards/architecture-patterns.md +415 -415
  314. package/bmad/bmm/workflows/3-solutioning/create-architecture/data/company-standards/backend-standards.md +811 -811
  315. package/bmad/bmm/workflows/3-solutioning/create-architecture/data/company-standards/frontend-standards.md +375 -375
  316. package/bmad/bmm/workflows/3-solutioning/create-architecture/data/company-standards/technical-preferences-ux.md +422 -422
  317. package/bmad/bmm/workflows/3-solutioning/create-architecture/data/company-standards/technology-stack.md +235 -235
  318. package/bmad/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +10 -10
  319. package/bmad/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +6 -6
  320. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +166 -166
  321. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -164
  322. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -224
  323. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +342 -342
  324. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +328 -328
  325. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +368 -368
  326. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -379
  327. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +366 -366
  328. package/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +352 -352
  329. package/bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +51 -51
  330. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -259
  331. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -233
  332. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -272
  333. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +145 -145
  334. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -57
  335. package/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -59
  336. package/bmad/bmm/workflows/4-implementation/code-review/checklist.md +23 -23
  337. package/bmad/bmm/workflows/4-implementation/code-review/instructions.xml +224 -224
  338. package/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +49 -49
  339. package/bmad/bmm/workflows/4-implementation/correct-course/checklist.md +279 -279
  340. package/bmad/bmm/workflows/4-implementation/correct-course/instructions.md +206 -206
  341. package/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +58 -58
  342. package/bmad/bmm/workflows/4-implementation/create-story/checklist.md +358 -358
  343. package/bmad/bmm/workflows/4-implementation/create-story/steps/step-01-determine-story.md +85 -85
  344. package/bmad/bmm/workflows/4-implementation/create-story/steps/step-02-analyze.md +67 -67
  345. package/bmad/bmm/workflows/4-implementation/create-story/steps/step-03-architecture.md +71 -71
  346. package/bmad/bmm/workflows/4-implementation/create-story/steps/step-04-web-research.md +58 -58
  347. package/bmad/bmm/workflows/4-implementation/create-story/steps/step-05-create-file.md +76 -76
  348. package/bmad/bmm/workflows/4-implementation/create-story/steps/step-06-finalize.md +66 -66
  349. package/bmad/bmm/workflows/4-implementation/create-story/template.md +49 -49
  350. package/bmad/bmm/workflows/4-implementation/create-story/workflow.md +58 -58
  351. package/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml.bak +63 -63
  352. package/bmad/bmm/workflows/4-implementation/dev-story/checklist.md +85 -85
  353. package/bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +470 -470
  354. package/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +25 -25
  355. package/bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -1443
  356. package/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +56 -56
  357. package/bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -33
  358. package/bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -225
  359. package/bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -55
  360. package/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +52 -52
  361. package/bmad/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -229
  362. package/bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +34 -34
  363. package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-01-understand.md +189 -189
  364. package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-02-investigate.md +144 -144
  365. package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-03-generate.md +128 -128
  366. package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-04-review.md +173 -173
  367. package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/tech-spec-template.md +74 -74
  368. package/bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.md +79 -79
  369. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +156 -156
  370. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -120
  371. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -113
  372. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -113
  373. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -106
  374. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +140 -140
  375. package/bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +52 -52
  376. package/bmad/bmm/workflows/document-project/checklist.md +245 -245
  377. package/bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -12
  378. package/bmad/bmm/workflows/document-project/instructions.md +221 -221
  379. package/bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -345
  380. package/bmad/bmm/workflows/document-project/templates/index-template.md +169 -169
  381. package/bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -103
  382. package/bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -160
  383. package/bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -135
  384. package/bmad/bmm/workflows/document-project/workflow.yaml +28 -28
  385. package/bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -298
  386. package/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -31
  387. package/bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -1106
  388. package/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -31
  389. package/bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -90
  390. package/bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -127
  391. package/bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -39
  392. package/bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -130
  393. package/bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +25 -25
  394. package/bmad/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -43
  395. package/bmad/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -141
  396. package/bmad/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +25 -25
  397. package/bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -49
  398. package/bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -241
  399. package/bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +25 -25
  400. package/bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -38
  401. package/bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -133
  402. package/bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +25 -25
  403. package/bmad/bmm/workflows/generate-project-context/project-context-template.md +21 -21
  404. package/bmad/bmm/workflows/generate-project-context/steps/step-01-discover.md +218 -218
  405. package/bmad/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -318
  406. package/bmad/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -278
  407. package/bmad/bmm/workflows/generate-project-context/workflow.md +50 -50
  408. package/bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +364 -364
  409. package/bmad/bmm/workflows/testarch/atdd/checklist.md +374 -374
  410. package/bmad/bmm/workflows/testarch/atdd/instructions.md +806 -806
  411. package/bmad/bmm/workflows/testarch/atdd/workflow.yaml +45 -45
  412. package/bmad/bmm/workflows/testarch/automate/checklist.md +582 -582
  413. package/bmad/bmm/workflows/testarch/automate/instructions.md +1324 -1324
  414. package/bmad/bmm/workflows/testarch/automate/workflow.yaml +52 -52
  415. package/bmad/bmm/workflows/testarch/ci/checklist.md +248 -248
  416. package/bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -198
  417. package/bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -149
  418. package/bmad/bmm/workflows/testarch/ci/instructions.md +536 -536
  419. package/bmad/bmm/workflows/testarch/ci/workflow.yaml +45 -45
  420. package/bmad/bmm/workflows/testarch/framework/checklist.md +321 -321
  421. package/bmad/bmm/workflows/testarch/framework/instructions.md +481 -481
  422. package/bmad/bmm/workflows/testarch/framework/workflow.yaml +47 -47
  423. package/bmad/bmm/workflows/testarch/nfr-assess/checklist.md +407 -407
  424. package/bmad/bmm/workflows/testarch/nfr-assess/instructions.md +722 -722
  425. package/bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +445 -445
  426. package/bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +47 -47
  427. package/bmad/bmm/workflows/testarch/test-design/checklist.md +235 -235
  428. package/bmad/bmm/workflows/testarch/test-design/instructions.md +788 -788
  429. package/bmad/bmm/workflows/testarch/test-design/test-design-template.md +294 -294
  430. package/bmad/bmm/workflows/testarch/test-design/workflow.yaml +54 -54
  431. package/bmad/bmm/workflows/testarch/test-review/checklist.md +472 -472
  432. package/bmad/bmm/workflows/testarch/test-review/instructions.md +628 -628
  433. package/bmad/bmm/workflows/testarch/test-review/test-review-template.md +390 -390
  434. package/bmad/bmm/workflows/testarch/test-review/workflow.yaml +46 -46
  435. package/bmad/bmm/workflows/testarch/trace/checklist.md +655 -655
  436. package/bmad/bmm/workflows/testarch/trace/instructions.md +1047 -1047
  437. package/bmad/bmm/workflows/testarch/trace/trace-template.md +675 -675
  438. package/bmad/bmm/workflows/testarch/trace/workflow.yaml +55 -55
  439. package/bmad/bmm/workflows/workflow-status/init/instructions.md +346 -346
  440. package/bmad/bmm/workflows/workflow-status/init/workflow.yaml +28 -28
  441. package/bmad/bmm/workflows/workflow-status/instructions.md +395 -395
  442. package/bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +103 -103
  443. package/bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +100 -100
  444. package/bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +103 -103
  445. package/bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +100 -100
  446. package/bmad/bmm/workflows/workflow-status/project-levels.yaml +59 -59
  447. package/bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -24
  448. package/bmad/bmm/workflows/workflow-status/workflow.yaml +30 -30
  449. package/bmad/cis/agents/brainstorming-coach.md +60 -60
  450. package/bmad/cis/agents/creative-problem-solver.md +60 -60
  451. package/bmad/cis/agents/design-thinking-coach.md +60 -60
  452. package/bmad/cis/agents/innovation-strategist.md +60 -60
  453. package/bmad/cis/agents/presentation-master.md +66 -66
  454. package/bmad/cis/agents/storyteller/storyteller.md +57 -57
  455. package/bmad/cis/config.yaml +11 -11
  456. package/bmad/cis/teams/creative-squad.yaml +7 -7
  457. package/bmad/cis/teams/default-party.csv +12 -12
  458. package/bmad/cis/workflows/README.md +139 -139
  459. package/bmad/cis/workflows/design-thinking/README.md +56 -56
  460. package/bmad/cis/workflows/design-thinking/design-methods.csv +30 -30
  461. package/bmad/cis/workflows/design-thinking/instructions.md +202 -202
  462. package/bmad/cis/workflows/design-thinking/template.md +111 -111
  463. package/bmad/cis/workflows/design-thinking/workflow.yaml +27 -27
  464. package/bmad/cis/workflows/innovation-strategy/README.md +56 -56
  465. package/bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +30 -30
  466. package/bmad/cis/workflows/innovation-strategy/instructions.md +276 -276
  467. package/bmad/cis/workflows/innovation-strategy/template.md +189 -189
  468. package/bmad/cis/workflows/innovation-strategy/workflow.yaml +27 -27
  469. package/bmad/cis/workflows/problem-solving/README.md +56 -56
  470. package/bmad/cis/workflows/problem-solving/instructions.md +252 -252
  471. package/bmad/cis/workflows/problem-solving/solving-methods.csv +30 -30
  472. package/bmad/cis/workflows/problem-solving/template.md +165 -165
  473. package/bmad/cis/workflows/problem-solving/workflow.yaml +27 -27
  474. package/bmad/cis/workflows/storytelling/README.md +58 -58
  475. package/bmad/cis/workflows/storytelling/instructions.md +293 -293
  476. package/bmad/cis/workflows/storytelling/story-types.csv +25 -25
  477. package/bmad/cis/workflows/storytelling/template.md +113 -113
  478. package/bmad/cis/workflows/storytelling/workflow.yaml +27 -27
  479. package/bmad/core/agents/bmad-master.md +57 -57
  480. package/bmad/core/config.yaml +9 -9
  481. package/bmad/core/resources/excalidraw/README.md +160 -160
  482. package/bmad/core/resources/excalidraw/excalidraw-helpers.md +127 -127
  483. package/bmad/core/resources/excalidraw/library-loader.md +50 -50
  484. package/bmad/core/resources/excalidraw/validate-json-instructions.md +79 -79
  485. package/bmad/core/tasks/index-docs.xml +64 -64
  486. package/bmad/core/tasks/review-adversarial-general.xml +41 -41
  487. package/bmad/core/tasks/shard-doc.xml +108 -108
  488. package/bmad/core/tasks/validate-workflow.xml +88 -88
  489. package/bmad/core/tasks/workflow.xml +234 -234
  490. package/bmad/core/workflows/advanced-elicitation/methods.csv +51 -51
  491. package/bmad/core/workflows/advanced-elicitation/workflow.xml +116 -116
  492. package/bmad/core/workflows/brainstorming/brain-methods.csv +61 -61
  493. package/bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -197
  494. package/bmad/core/workflows/brainstorming/steps/step-01b-continue.md +122 -122
  495. package/bmad/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -225
  496. package/bmad/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -237
  497. package/bmad/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -209
  498. package/bmad/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -264
  499. package/bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +340 -340
  500. package/bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -303
  501. package/bmad/core/workflows/brainstorming/template.md +15 -15
  502. package/bmad/core/workflows/brainstorming/workflow.md +51 -51
  503. package/bmad/core/workflows/party-mode/steps/step-01-agent-loading.md +139 -139
  504. package/bmad/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +204 -204
  505. package/bmad/core/workflows/party-mode/steps/step-03-graceful-exit.md +159 -159
  506. package/bmad/core/workflows/party-mode/workflow.md +206 -206
  507. package/claude/hooks/file-restriction-hook.py +51 -51
  508. package/claude/hooks/track-agent.py +67 -67
  509. package/claude/settings.local.json +76 -76
  510. package/gemini/commands/BMad/agents/analyst.toml +6 -0
  511. package/gemini/commands/BMad/agents/architect.toml +6 -0
  512. package/gemini/commands/BMad/agents/bmad-master.toml +6 -0
  513. package/gemini/commands/BMad/agents/bmad-orchestrator.toml +6 -0
  514. package/gemini/commands/BMad/agents/dev.toml +6 -0
  515. package/gemini/commands/BMad/agents/pm.toml +6 -0
  516. package/gemini/commands/BMad/agents/po.toml +6 -0
  517. package/gemini/commands/BMad/agents/qa.toml +6 -0
  518. package/gemini/commands/BMad/agents/sm.toml +6 -0
  519. package/gemini/commands/BMad/agents/ux-expert.toml +6 -0
  520. package/gemini/commands/BMad/tasks/advanced-elicitation.toml +6 -0
  521. package/gemini/commands/BMad/tasks/apply-qa-fixes.toml +6 -0
  522. package/gemini/commands/BMad/tasks/brownfield-create-epic.toml +6 -0
  523. package/gemini/commands/BMad/tasks/brownfield-create-story.toml +6 -0
  524. package/gemini/commands/BMad/tasks/correct-course.toml +6 -0
  525. package/gemini/commands/BMad/tasks/create-brownfield-story.toml +6 -0
  526. package/gemini/commands/BMad/tasks/create-deep-research-prompt.toml +6 -0
  527. package/gemini/commands/BMad/tasks/create-doc.toml +6 -0
  528. package/gemini/commands/BMad/tasks/create-next-story.toml +6 -0
  529. package/gemini/commands/BMad/tasks/document-project.toml +6 -0
  530. package/gemini/commands/BMad/tasks/execute-checklist.toml +6 -0
  531. package/gemini/commands/BMad/tasks/facilitate-brainstorming-session.toml +6 -0
  532. package/gemini/commands/BMad/tasks/generate-ai-frontend-prompt.toml +6 -0
  533. package/gemini/commands/BMad/tasks/index-docs.toml +6 -0
  534. package/gemini/commands/BMad/tasks/kb-mode-interaction.toml +6 -0
  535. package/gemini/commands/BMad/tasks/nfr-assess.toml +6 -0
  536. package/gemini/commands/BMad/tasks/qa-gate.toml +6 -0
  537. package/gemini/commands/BMad/tasks/review-story.toml +6 -0
  538. package/gemini/commands/BMad/tasks/risk-profile.toml +6 -0
  539. package/gemini/commands/BMad/tasks/shard-doc.toml +6 -0
  540. package/gemini/commands/BMad/tasks/test-design.toml +6 -0
  541. package/gemini/commands/BMad/tasks/trace-requirements.toml +6 -0
  542. package/gemini/commands/BMad/tasks/validate-next-story.toml +6 -0
  543. package/github/workflows/publish.yml +150 -150
  544. package/index.js +9 -9
  545. package/mcp.json +14 -14
  546. package/package.json +41 -40
  547. package/resources/images/Siesa_Logosimbolo_Azul.svg +24 -24
  548. package/resources/images/Siesa_Logosimbolo_Blanco.svg +24 -24
  549. package/resources/images/Siesa_Simbolo_Azul.svg +14 -14
  550. package/resources/images/Siesa_Simbolo_Blanco.svg +14 -14
  551. package/vscode/mcp.json +15 -15
  552. package/vscode/settings.json +12 -12
@@ -1,806 +1,806 @@
1
- <!-- Powered by BMAD-CORE™ -->
2
-
3
- # Acceptance Test-Driven Development (ATDD)
4
-
5
- **Workflow ID**: `_bmad/bmm/testarch/atdd`
6
- **Version**: 4.0 (BMad v6)
7
-
8
- ---
9
-
10
- ## Overview
11
-
12
- Generates failing acceptance tests BEFORE implementation following TDD's red-green-refactor cycle. This workflow creates comprehensive test coverage at appropriate levels (E2E, API, Component) with supporting infrastructure (fixtures, factories, mocks) and provides an implementation checklist to guide development.
13
-
14
- **Core Principle**: Tests fail first (red phase), then guide development to green, then enable confident refactoring.
15
-
16
- ---
17
-
18
- ## Preflight Requirements
19
-
20
- **Critical:** Verify these requirements before proceeding. If any fail, HALT and notify the user.
21
-
22
- - ✅ Story approved with clear acceptance criteria
23
- - ✅ Development sandbox/environment ready
24
- - ✅ Framework scaffolding exists (run `framework` workflow if missing)
25
- - ✅ Test framework configuration available (playwright.config.ts or cypress.config.ts)
26
-
27
- ---
28
-
29
- ## Step 1: Load Story Context and Requirements
30
-
31
- ### Actions
32
-
33
- 1. **Read Story Markdown**
34
- - Load story file from `{story_file}` variable
35
- - Extract acceptance criteria (all testable requirements)
36
- - Identify affected systems and components
37
- - Note any technical constraints or dependencies
38
-
39
- 2. **Load Framework Configuration**
40
- - Read framework config (playwright.config.ts or cypress.config.ts)
41
- - Identify test directory structure
42
- - Check existing fixture patterns
43
- - Note test runner capabilities
44
-
45
- 3. **Load Existing Test Patterns**
46
- - Search `{test_dir}` for similar tests
47
- - Identify reusable fixtures and helpers
48
- - Check data factory patterns
49
- - Note naming conventions
50
-
51
- 4. **Check Playwright Utils Flag**
52
-
53
- Read `{config_source}` and check `config.tea_use_playwright_utils`.
54
-
55
- 5. **Load Knowledge Base Fragments**
56
-
57
- **Critical:** Consult `{project-root}/_bmad/bmm/testarch/tea-index.csv` to load:
58
-
59
- **Core Patterns (Always load):**
60
- - `data-factories.md` - Factory patterns using faker (override patterns, nested factories, API seeding, 498 lines, 5 examples)
61
- - `component-tdd.md` - Component test strategies (red-green-refactor, provider isolation, accessibility, visual regression, 480 lines, 4 examples)
62
- - `test-quality.md` - Test design principles (deterministic tests, isolated with cleanup, explicit assertions, length limits, execution time optimization, 658 lines, 5 examples)
63
- - `test-healing-patterns.md` - Common failure patterns and healing strategies (stale selectors, race conditions, dynamic data, network errors, hard waits, 648 lines, 5 examples)
64
- - `selector-resilience.md` - Selector best practices (data-testid > ARIA > text > CSS hierarchy, dynamic patterns, anti-patterns, 541 lines, 4 examples)
65
- - `timing-debugging.md` - Race condition prevention and async debugging (network-first, deterministic waiting, anti-patterns, 370 lines, 3 examples)
66
-
67
- **If `config.tea_use_playwright_utils: true` (All Utilities):**
68
- - `overview.md` - Playwright utils for ATDD patterns
69
- - `api-request.md` - API test examples with schema validation
70
- - `network-recorder.md` - HAR record/playback for UI acceptance tests
71
- - `auth-session.md` - Auth setup for acceptance tests
72
- - `intercept-network-call.md` - Network interception in ATDD scenarios
73
- - `recurse.md` - Polling for async acceptance criteria
74
- - `log.md` - Logging in ATDD tests
75
- - `file-utils.md` - File download validation in acceptance tests
76
- - `network-error-monitor.md` - Catch silent failures in ATDD
77
- - `fixtures-composition.md` - Composing utilities for ATDD
78
-
79
- **If `config.tea_use_playwright_utils: false`:**
80
- - `fixture-architecture.md` - Test fixture patterns with auto-cleanup (pure function → fixture → mergeTests composition, 406 lines, 5 examples)
81
- - `network-first.md` - Route interception patterns (intercept before navigate, HAR capture, deterministic waiting, 489 lines, 5 examples)
82
-
83
- **Halt Condition:** If story has no acceptance criteria or framework is missing, HALT with message: "ATDD requires clear acceptance criteria and test framework setup"
84
-
85
- ---
86
-
87
- ## Step 1.5: Generation Mode Selection (NEW - Phase 2.5)
88
-
89
- ### Actions
90
-
91
- 1. **Detect Generation Mode**
92
-
93
- Determine mode based on scenario complexity:
94
-
95
- **AI Generation Mode (DEFAULT)**:
96
- - Clear acceptance criteria with standard patterns
97
- - Uses: AI-generated tests from requirements
98
- - Appropriate for: CRUD, auth, navigation, API tests
99
- - Fastest approach
100
-
101
- **Recording Mode (OPTIONAL - Complex UI)**:
102
- - Complex UI interactions (drag-drop, wizards, multi-page flows)
103
- - Uses: Interactive test recording with Playwright MCP
104
- - Appropriate for: Visual workflows, unclear requirements
105
- - Only if config.tea_use_mcp_enhancements is true AND MCP available
106
-
107
- 2. **AI Generation Mode (DEFAULT - Continue to Step 2)**
108
-
109
- For standard scenarios:
110
- - Continue with existing workflow (Step 2: Select Test Levels and Strategy)
111
- - AI generates tests based on acceptance criteria from Step 1
112
- - Use knowledge base patterns for test structure
113
-
114
- 3. **Recording Mode (OPTIONAL - Complex UI Only)**
115
-
116
- For complex UI scenarios AND config.tea_use_mcp_enhancements is true:
117
-
118
- **A. Check MCP Availability**
119
-
120
- If Playwright MCP tools are available in your IDE:
121
- - Use MCP recording mode (Step 3.B)
122
-
123
- If MCP unavailable:
124
- - Fallback to AI generation mode (silent, automatic)
125
- - Continue to Step 2
126
-
127
- **B. Interactive Test Recording (MCP-Based)**
128
-
129
- Use Playwright MCP test-generator tools:
130
-
131
- **Setup:**
132
-
133
- ```
134
- 1. Use generator_setup_page to initialize recording session
135
- 2. Navigate to application starting URL (from story context)
136
- 3. Ready to record user interactions
137
- ```
138
-
139
- **Recording Process (Per Acceptance Criterion):**
140
-
141
- ```
142
- 4. Read acceptance criterion from story
143
- 5. Manually execute test scenario using browser_* tools:
144
- - browser_navigate: Navigate to pages
145
- - browser_click: Click buttons, links, elements
146
- - browser_type: Fill form fields
147
- - browser_select: Select dropdown options
148
- - browser_check: Check/uncheck checkboxes
149
- 6. Add verification steps using browser_verify_* tools:
150
- - browser_verify_text: Verify text content
151
- - browser_verify_visible: Verify element visibility
152
- - browser_verify_url: Verify URL navigation
153
- 7. Capture interaction log with generator_read_log
154
- 8. Generate test file with generator_write_test
155
- 9. Repeat for next acceptance criterion
156
- ```
157
-
158
- **Post-Recording Enhancement:**
159
-
160
- ```
161
- 10. Review generated test code
162
- 11. Enhance with knowledge base patterns:
163
- - Add Given-When-Then comments
164
- - Replace recorded selectors with data-testid (if needed)
165
- - Add network-first interception (from network-first.md)
166
- - Add fixtures for auth/data setup (from fixture-architecture.md)
167
- - Use factories for test data (from data-factories.md)
168
- 12. Verify tests fail (missing implementation)
169
- 13. Continue to Step 4 (Build Data Infrastructure)
170
- ```
171
-
172
- **When to Use Recording Mode:**
173
- - ✅ Complex UI interactions (drag-drop, multi-step forms, wizards)
174
- - ✅ Visual workflows (modals, dialogs, animations)
175
- - ✅ Unclear requirements (exploratory, discovering expected behavior)
176
- - ✅ Multi-page flows (checkout, registration, onboarding)
177
- - ❌ NOT for simple CRUD (AI generation faster)
178
- - ❌ NOT for API-only tests (no UI to record)
179
-
180
- **When to Use AI Generation (Default):**
181
- - ✅ Clear acceptance criteria available
182
- - ✅ Standard patterns (login, CRUD, navigation)
183
- - ✅ Need many tests quickly
184
- - ✅ API/backend tests (no UI interaction)
185
-
186
- 4. **Proceed to Test Level Selection**
187
-
188
- After mode selection:
189
- - AI Generation: Continue to Step 2 (Select Test Levels and Strategy)
190
- - Recording: Skip to Step 4 (Build Data Infrastructure) - tests already generated
191
-
192
- ---
193
-
194
- ## Step 2: Select Test Levels and Strategy
195
-
196
- ### Actions
197
-
198
- 1. **Analyze Acceptance Criteria**
199
-
200
- For each acceptance criterion, determine:
201
- - Does it require full user journey? → E2E test
202
- - Does it test business logic/API contract? → API test
203
- - Does it validate UI component behavior? → Component test
204
- - Can it be unit tested? → Unit test
205
-
206
- 2. **Apply Test Level Selection Framework**
207
-
208
- **Knowledge Base Reference**: `test-levels-framework.md`
209
-
210
- **E2E (End-to-End)**:
211
- - Critical user journeys (login, checkout, core workflow)
212
- - Multi-system integration
213
- - User-facing acceptance criteria
214
- - **Characteristics**: High confidence, slow execution, brittle
215
-
216
- **API (Integration)**:
217
- - Business logic validation
218
- - Service contracts
219
- - Data transformations
220
- - **Characteristics**: Fast feedback, good balance, stable
221
-
222
- **Component**:
223
- - UI component behavior (buttons, forms, modals)
224
- - Interaction testing
225
- - Visual regression
226
- - **Characteristics**: Fast, isolated, granular
227
-
228
- **Unit**:
229
- - Pure business logic
230
- - Edge cases
231
- - Error handling
232
- - **Characteristics**: Fastest, most granular
233
-
234
- 3. **Avoid Duplicate Coverage**
235
-
236
- Don't test same behavior at multiple levels unless necessary:
237
- - Use E2E for critical happy path only
238
- - Use API tests for complex business logic variations
239
- - Use component tests for UI interaction edge cases
240
- - Use unit tests for pure logic edge cases
241
-
242
- 4. **Prioritize Tests**
243
-
244
- If test-design document exists, align with priority levels:
245
- - P0 scenarios → Must cover in failing tests
246
- - P1 scenarios → Should cover if time permits
247
- - P2/P3 scenarios → Optional for this iteration
248
-
249
- **Decision Point:** Set `primary_level` variable to main test level for this story (typically E2E or API)
250
-
251
- ---
252
-
253
- ## Step 3: Generate Failing Tests
254
-
255
- ### Actions
256
-
257
- 1. **Create Test File Structure**
258
-
259
- ```
260
- tests/
261
- ├── e2e/
262
- │ └── {feature-name}.spec.ts # E2E acceptance tests
263
- ├── api/
264
- │ └── {feature-name}.api.spec.ts # API contract tests
265
- ├── component/
266
- │ └── {ComponentName}.test.tsx # Component tests
267
- └── support/
268
- ├── fixtures/ # Test fixtures
269
- ├── factories/ # Data factories
270
- └── helpers/ # Utility functions
271
- ```
272
-
273
- 2. **Write Failing E2E Tests (If Applicable)**
274
-
275
- **Use Given-When-Then format:**
276
-
277
- ```typescript
278
- import { test, expect } from '@playwright/test';
279
-
280
- test.describe('User Login', () => {
281
- test('should display error for invalid credentials', async ({ page }) => {
282
- // GIVEN: User is on login page
283
- await page.goto('/login');
284
-
285
- // WHEN: User submits invalid credentials
286
- await page.fill('[data-testid="email-input"]', 'invalid@example.com');
287
- await page.fill('[data-testid="password-input"]', 'wrongpassword');
288
- await page.click('[data-testid="login-button"]');
289
-
290
- // THEN: Error message is displayed
291
- await expect(page.locator('[data-testid="error-message"]')).toHaveText('Invalid email or password');
292
- });
293
- });
294
- ```
295
-
296
- **Critical patterns:**
297
- - One assertion per test (atomic tests)
298
- - Explicit waits (no hard waits/sleeps)
299
- - Network-first approach (route interception before navigation)
300
- - data-testid selectors for stability
301
- - Clear Given-When-Then structure
302
-
303
- 3. **Apply Network-First Pattern**
304
-
305
- **Knowledge Base Reference**: `network-first.md`
306
-
307
- ```typescript
308
- test('should load user dashboard after login', async ({ page }) => {
309
- // CRITICAL: Intercept routes BEFORE navigation
310
- await page.route('**/api/user', (route) =>
311
- route.fulfill({
312
- status: 200,
313
- body: JSON.stringify({ id: 1, name: 'Test User' }),
314
- }),
315
- );
316
-
317
- // NOW navigate
318
- await page.goto('/dashboard');
319
-
320
- await expect(page.locator('[data-testid="user-name"]')).toHaveText('Test User');
321
- });
322
- ```
323
-
324
- 4. **Write Failing API Tests (If Applicable)**
325
-
326
- ```typescript
327
- import { test, expect } from '@playwright/test';
328
-
329
- test.describe('User API', () => {
330
- test('POST /api/users - should create new user', async ({ request }) => {
331
- // GIVEN: Valid user data
332
- const userData = {
333
- email: 'newuser@example.com',
334
- name: 'New User',
335
- };
336
-
337
- // WHEN: Creating user via API
338
- const response = await request.post('/api/users', {
339
- data: userData,
340
- });
341
-
342
- // THEN: User is created successfully
343
- expect(response.status()).toBe(201);
344
- const body = await response.json();
345
- expect(body).toMatchObject({
346
- email: userData.email,
347
- name: userData.name,
348
- id: expect.any(Number),
349
- });
350
- });
351
- });
352
- ```
353
-
354
- 5. **Write Failing Component Tests (If Applicable)**
355
-
356
- **Knowledge Base Reference**: `component-tdd.md`
357
-
358
- ```typescript
359
- import { test, expect } from '@playwright/experimental-ct-react';
360
- import { LoginForm } from './LoginForm';
361
-
362
- test.describe('LoginForm Component', () => {
363
- test('should disable submit button when fields are empty', async ({ mount }) => {
364
- // GIVEN: LoginForm is mounted
365
- const component = await mount(<LoginForm />);
366
-
367
- // WHEN: Form is initially rendered
368
- const submitButton = component.locator('button[type="submit"]');
369
-
370
- // THEN: Submit button is disabled
371
- await expect(submitButton).toBeDisabled();
372
- });
373
- });
374
- ```
375
-
376
- 6. **Verify Tests Fail Initially**
377
-
378
- **Critical verification:**
379
- - Run tests locally to confirm they fail
380
- - Failure should be due to missing implementation, not test errors
381
- - Failure messages should be clear and actionable
382
- - All tests must be in RED phase before sharing with DEV
383
-
384
- **Important:** Tests MUST fail initially. If a test passes before implementation, it's not a valid acceptance test.
385
-
386
- ---
387
-
388
- ## Step 4: Build Data Infrastructure
389
-
390
- ### Actions
391
-
392
- 1. **Create Data Factories**
393
-
394
- **Knowledge Base Reference**: `data-factories.md`
395
-
396
- ```typescript
397
- // tests/support/factories/user.factory.ts
398
- import { faker } from '@faker-js/faker';
399
-
400
- export const createUser = (overrides = {}) => ({
401
- id: faker.number.int(),
402
- email: faker.internet.email(),
403
- name: faker.person.fullName(),
404
- createdAt: faker.date.recent().toISOString(),
405
- ...overrides,
406
- });
407
-
408
- export const createUsers = (count: number) => Array.from({ length: count }, () => createUser());
409
- ```
410
-
411
- **Factory principles:**
412
- - Use faker for random data (no hardcoded values)
413
- - Support overrides for specific scenarios
414
- - Generate complete valid objects
415
- - Include helper functions for bulk creation
416
-
417
- 2. **Create Test Fixtures**
418
-
419
- **Knowledge Base Reference**: `fixture-architecture.md`
420
-
421
- ```typescript
422
- // tests/support/fixtures/auth.fixture.ts
423
- import { test as base } from '@playwright/test';
424
-
425
- export const test = base.extend({
426
- authenticatedUser: async ({ page }, use) => {
427
- // Setup: Create and authenticate user
428
- const user = await createUser();
429
- await page.goto('/login');
430
- await page.fill('[data-testid="email"]', user.email);
431
- await page.fill('[data-testid="password"]', 'password123');
432
- await page.click('[data-testid="login-button"]');
433
- await page.waitForURL('/dashboard');
434
-
435
- // Provide to test
436
- await use(user);
437
-
438
- // Cleanup: Delete user
439
- await deleteUser(user.id);
440
- },
441
- });
442
- ```
443
-
444
- **Fixture principles:**
445
- - Auto-cleanup (always delete created data)
446
- - Composable (fixtures can use other fixtures)
447
- - Isolated (each test gets fresh data)
448
- - Type-safe
449
-
450
- 3. **Document Mock Requirements**
451
-
452
- If external services need mocking, document requirements:
453
-
454
- ```markdown
455
- ### Mock Requirements for DEV Team
456
-
457
- **Payment Gateway Mock**:
458
-
459
- - Endpoint: `POST /api/payments`
460
- - Success response: `{ status: 'success', transactionId: '123' }`
461
- - Failure response: `{ status: 'failed', error: 'Insufficient funds' }`
462
-
463
- **Email Service Mock**:
464
-
465
- - Should not send real emails in test environment
466
- - Log email contents for verification
467
- ```
468
-
469
- 4. **List Required data-testid Attributes**
470
-
471
- ```markdown
472
- ### Required data-testid Attributes
473
-
474
- **Login Page**:
475
-
476
- - `email-input` - Email input field
477
- - `password-input` - Password input field
478
- - `login-button` - Submit button
479
- - `error-message` - Error message container
480
-
481
- **Dashboard Page**:
482
-
483
- - `user-name` - User name display
484
- - `logout-button` - Logout button
485
- ```
486
-
487
- ---
488
-
489
- ## Step 5: Create Implementation Checklist
490
-
491
- ### Actions
492
-
493
- 1. **Map Tests to Implementation Tasks**
494
-
495
- For each failing test, create corresponding implementation task:
496
-
497
- ```markdown
498
- ## Implementation Checklist
499
-
500
- ### Epic X - User Authentication
501
-
502
- #### Test: User Login with Valid Credentials
503
-
504
- - [ ] Create `/login` route
505
- - [ ] Implement login form component
506
- - [ ] Add email/password validation
507
- - [ ] Integrate authentication API
508
- - [ ] Add `data-testid` attributes: `email-input`, `password-input`, `login-button`
509
- - [ ] Implement error handling
510
- - [ ] Run test: `npm run test:e2e -- login.spec.ts`
511
- - [ ] ✅ Test passes (green phase)
512
-
513
- #### Test: Display Error for Invalid Credentials
514
-
515
- - [ ] Add error state management
516
- - [ ] Display error message UI
517
- - [ ] Add `data-testid="error-message"`
518
- - [ ] Run test: `npm run test:e2e -- login.spec.ts`
519
- - [ ] ✅ Test passes (green phase)
520
- ```
521
-
522
- 2. **Include Red-Green-Refactor Guidance**
523
-
524
- ```markdown
525
- ## Red-Green-Refactor Workflow
526
-
527
- **RED Phase** (Complete):
528
-
529
- - ✅ All tests written and failing
530
- - ✅ Fixtures and factories created
531
- - ✅ Mock requirements documented
532
-
533
- **GREEN Phase** (DEV Team):
534
-
535
- 1. Pick one failing test
536
- 2. Implement minimal code to make it pass
537
- 3. Run test to verify green
538
- 4. Move to next test
539
- 5. Repeat until all tests pass
540
-
541
- **REFACTOR Phase** (DEV Team):
542
-
543
- 1. All tests passing (green)
544
- 2. Improve code quality
545
- 3. Extract duplications
546
- 4. Optimize performance
547
- 5. Ensure tests still pass
548
- ```
549
-
550
- 3. **Add Execution Commands**
551
-
552
- ````markdown
553
- ## Running Tests
554
-
555
- ```bash
556
- # Run all failing tests
557
- npm run test:e2e
558
-
559
- # Run specific test file
560
- npm run test:e2e -- login.spec.ts
561
-
562
- # Run tests in headed mode (see browser)
563
- npm run test:e2e -- --headed
564
-
565
- # Debug specific test
566
- npm run test:e2e -- login.spec.ts --debug
567
- ```
568
- ````
569
-
570
- ```
571
-
572
- ```
573
-
574
- ---
575
-
576
- ## Step 6: Generate Deliverables
577
-
578
- ### Actions
579
-
580
- 1. **Create ATDD Checklist Document**
581
-
582
- Use template structure at `{installed_path}/atdd-checklist-template.md`:
583
- - Story summary
584
- - Acceptance criteria breakdown
585
- - Test files created (with paths)
586
- - Data factories created
587
- - Fixtures created
588
- - Mock requirements
589
- - Required data-testid attributes
590
- - Implementation checklist
591
- - Red-green-refactor workflow
592
- - Execution commands
593
-
594
- 2. **Verify All Tests Fail**
595
-
596
- Before finalizing:
597
- - Run full test suite locally
598
- - Confirm all tests in RED phase
599
- - Document expected failure messages
600
- - Ensure failures are due to missing implementation, not test bugs
601
-
602
- 3. **Write to Output File**
603
-
604
- Save to `{output_folder}/atdd-checklist-{story_id}.md`
605
-
606
- ---
607
-
608
- ## Important Notes
609
-
610
- ### Red-Green-Refactor Cycle
611
-
612
- **RED Phase** (TEA responsibility):
613
-
614
- - Write failing tests first
615
- - Tests define expected behavior
616
- - Tests must fail for right reason (missing implementation)
617
-
618
- **GREEN Phase** (DEV responsibility):
619
-
620
- - Implement minimal code to pass tests
621
- - One test at a time
622
- - Don't over-engineer
623
-
624
- **REFACTOR Phase** (DEV responsibility):
625
-
626
- - Improve code quality with confidence
627
- - Tests provide safety net
628
- - Extract duplications, optimize
629
-
630
- ### Given-When-Then Structure
631
-
632
- **GIVEN** (Setup):
633
-
634
- - Arrange test preconditions
635
- - Create necessary data
636
- - Navigate to starting point
637
-
638
- **WHEN** (Action):
639
-
640
- - Execute the behavior being tested
641
- - Single action per test
642
-
643
- **THEN** (Assertion):
644
-
645
- - Verify expected outcome
646
- - One assertion per test (atomic)
647
-
648
- ### Network-First Testing
649
-
650
- **Critical pattern:**
651
-
652
- ```typescript
653
- // ✅ CORRECT: Intercept BEFORE navigation
654
- await page.route('**/api/data', handler);
655
- await page.goto('/page');
656
-
657
- // ❌ WRONG: Navigate then intercept (race condition)
658
- await page.goto('/page');
659
- await page.route('**/api/data', handler); // Too late!
660
- ```
661
-
662
- ### Data Factory Best Practices
663
-
664
- **Use faker for all test data:**
665
-
666
- ```typescript
667
- // ✅ CORRECT: Random data
668
- email: faker.internet.email();
669
-
670
- // ❌ WRONG: Hardcoded data (collisions, maintenance burden)
671
- email: 'test@example.com';
672
- ```
673
-
674
- **Auto-cleanup principle:**
675
-
676
- - Every factory that creates data must provide cleanup
677
- - Fixtures automatically cleanup in teardown
678
- - No manual cleanup in test code
679
-
680
- ### One Assertion Per Test
681
-
682
- **Atomic test design:**
683
-
684
- ```typescript
685
- // ✅ CORRECT: One assertion
686
- test('should display user name', async ({ page }) => {
687
- await expect(page.locator('[data-testid="user-name"]')).toHaveText('John');
688
- });
689
-
690
- // ❌ WRONG: Multiple assertions (not atomic)
691
- test('should display user info', async ({ page }) => {
692
- await expect(page.locator('[data-testid="user-name"]')).toHaveText('John');
693
- await expect(page.locator('[data-testid="user-email"]')).toHaveText('john@example.com');
694
- });
695
- ```
696
-
697
- **Why?** If second assertion fails, you don't know if first is still valid.
698
-
699
- ### Component Test Strategy
700
-
701
- **When to use component tests:**
702
-
703
- - Complex UI interactions (drag-drop, keyboard nav)
704
- - Form validation logic
705
- - State management within component
706
- - Visual edge cases
707
-
708
- **When NOT to use:**
709
-
710
- - Simple rendering (snapshot tests are sufficient)
711
- - Integration with backend (use E2E or API tests)
712
- - Full user journeys (use E2E tests)
713
-
714
- ### Knowledge Base Integration
715
-
716
- **Core Fragments (Auto-loaded in Step 1):**
717
-
718
- - `fixture-architecture.md` - Pure function → fixture → mergeTests patterns (406 lines, 5 examples)
719
- - `data-factories.md` - Factory patterns with faker, overrides, API seeding (498 lines, 5 examples)
720
- - `component-tdd.md` - Red-green-refactor, provider isolation, accessibility, visual regression (480 lines, 4 examples)
721
- - `network-first.md` - Intercept before navigate, HAR capture, deterministic waiting (489 lines, 5 examples)
722
- - `test-quality.md` - Deterministic tests, cleanup, explicit assertions, length/time limits (658 lines, 5 examples)
723
- - `test-healing-patterns.md` - Common failure patterns: stale selectors, race conditions, dynamic data, network errors, hard waits (648 lines, 5 examples)
724
- - `selector-resilience.md` - Selector hierarchy (data-testid > ARIA > text > CSS), dynamic patterns, anti-patterns (541 lines, 4 examples)
725
- - `timing-debugging.md` - Race condition prevention, deterministic waiting, async debugging (370 lines, 3 examples)
726
-
727
- **Reference for Test Level Selection:**
728
-
729
- - `test-levels-framework.md` - E2E vs API vs Component vs Unit decision framework (467 lines, 4 examples)
730
-
731
- **Manual Reference (Optional):**
732
-
733
- - Use `tea-index.csv` to find additional specialized fragments as needed
734
-
735
- ---
736
-
737
- ## Output Summary
738
-
739
- After completing this workflow, provide a summary:
740
-
741
- ```markdown
742
- ## ATDD Complete - Tests in RED Phase
743
-
744
- **Story**: {story_id}
745
- **Primary Test Level**: {primary_level}
746
-
747
- **Failing Tests Created**:
748
-
749
- - E2E tests: {e2e_count} tests in {e2e_files}
750
- - API tests: {api_count} tests in {api_files}
751
- - Component tests: {component_count} tests in {component_files}
752
-
753
- **Supporting Infrastructure**:
754
-
755
- - Data factories: {factory_count} factories created
756
- - Fixtures: {fixture_count} fixtures with auto-cleanup
757
- - Mock requirements: {mock_count} services documented
758
-
759
- **Implementation Checklist**:
760
-
761
- - Total tasks: {task_count}
762
- - Estimated effort: {effort_estimate} hours
763
-
764
- **Required data-testid Attributes**: {data_testid_count} attributes documented
765
-
766
- **Next Steps for DEV Team**:
767
-
768
- 1. Run failing tests: `npm run test:e2e`
769
- 2. Review implementation checklist
770
- 3. Implement one test at a time (RED → GREEN)
771
- 4. Refactor with confidence (tests provide safety net)
772
- 5. Share progress in daily standup
773
-
774
- **Output File**: {output_file}
775
- **Manual Handoff**: Share `{output_file}` and failing tests with the dev workflow (not auto-consumed).
776
-
777
- **Knowledge Base References Applied**:
778
-
779
- - Fixture architecture patterns
780
- - Data factory patterns with faker
781
- - Network-first route interception
782
- - Component TDD strategies
783
- - Test quality principles
784
- ```
785
-
786
- ---
787
-
788
- ## Validation
789
-
790
- After completing all steps, verify:
791
-
792
- - [ ] Story acceptance criteria analyzed and mapped to tests
793
- - [ ] Appropriate test levels selected (E2E, API, Component)
794
- - [ ] All tests written in Given-When-Then format
795
- - [ ] All tests fail initially (RED phase verified)
796
- - [ ] Network-first pattern applied (route interception before navigation)
797
- - [ ] Data factories created with faker
798
- - [ ] Fixtures created with auto-cleanup
799
- - [ ] Mock requirements documented for DEV team
800
- - [ ] Required data-testid attributes listed
801
- - [ ] Implementation checklist created with clear tasks
802
- - [ ] Red-green-refactor workflow documented
803
- - [ ] Execution commands provided
804
- - [ ] Output file created and formatted correctly
805
-
806
- Refer to `checklist.md` for comprehensive validation criteria.
1
+ <!-- Powered by BMAD-CORE™ -->
2
+
3
+ # Acceptance Test-Driven Development (ATDD)
4
+
5
+ **Workflow ID**: `_bmad/bmm/testarch/atdd`
6
+ **Version**: 4.0 (BMad v6)
7
+
8
+ ---
9
+
10
+ ## Overview
11
+
12
+ Generates failing acceptance tests BEFORE implementation following TDD's red-green-refactor cycle. This workflow creates comprehensive test coverage at appropriate levels (E2E, API, Component) with supporting infrastructure (fixtures, factories, mocks) and provides an implementation checklist to guide development.
13
+
14
+ **Core Principle**: Tests fail first (red phase), then guide development to green, then enable confident refactoring.
15
+
16
+ ---
17
+
18
+ ## Preflight Requirements
19
+
20
+ **Critical:** Verify these requirements before proceeding. If any fail, HALT and notify the user.
21
+
22
+ - ✅ Story approved with clear acceptance criteria
23
+ - ✅ Development sandbox/environment ready
24
+ - ✅ Framework scaffolding exists (run `framework` workflow if missing)
25
+ - ✅ Test framework configuration available (playwright.config.ts or cypress.config.ts)
26
+
27
+ ---
28
+
29
+ ## Step 1: Load Story Context and Requirements
30
+
31
+ ### Actions
32
+
33
+ 1. **Read Story Markdown**
34
+ - Load story file from `{story_file}` variable
35
+ - Extract acceptance criteria (all testable requirements)
36
+ - Identify affected systems and components
37
+ - Note any technical constraints or dependencies
38
+
39
+ 2. **Load Framework Configuration**
40
+ - Read framework config (playwright.config.ts or cypress.config.ts)
41
+ - Identify test directory structure
42
+ - Check existing fixture patterns
43
+ - Note test runner capabilities
44
+
45
+ 3. **Load Existing Test Patterns**
46
+ - Search `{test_dir}` for similar tests
47
+ - Identify reusable fixtures and helpers
48
+ - Check data factory patterns
49
+ - Note naming conventions
50
+
51
+ 4. **Check Playwright Utils Flag**
52
+
53
+ Read `{config_source}` and check `config.tea_use_playwright_utils`.
54
+
55
+ 5. **Load Knowledge Base Fragments**
56
+
57
+ **Critical:** Consult `{project-root}/_bmad/bmm/testarch/tea-index.csv` to load:
58
+
59
+ **Core Patterns (Always load):**
60
+ - `data-factories.md` - Factory patterns using faker (override patterns, nested factories, API seeding, 498 lines, 5 examples)
61
+ - `component-tdd.md` - Component test strategies (red-green-refactor, provider isolation, accessibility, visual regression, 480 lines, 4 examples)
62
+ - `test-quality.md` - Test design principles (deterministic tests, isolated with cleanup, explicit assertions, length limits, execution time optimization, 658 lines, 5 examples)
63
+ - `test-healing-patterns.md` - Common failure patterns and healing strategies (stale selectors, race conditions, dynamic data, network errors, hard waits, 648 lines, 5 examples)
64
+ - `selector-resilience.md` - Selector best practices (data-testid > ARIA > text > CSS hierarchy, dynamic patterns, anti-patterns, 541 lines, 4 examples)
65
+ - `timing-debugging.md` - Race condition prevention and async debugging (network-first, deterministic waiting, anti-patterns, 370 lines, 3 examples)
66
+
67
+ **If `config.tea_use_playwright_utils: true` (All Utilities):**
68
+ - `overview.md` - Playwright utils for ATDD patterns
69
+ - `api-request.md` - API test examples with schema validation
70
+ - `network-recorder.md` - HAR record/playback for UI acceptance tests
71
+ - `auth-session.md` - Auth setup for acceptance tests
72
+ - `intercept-network-call.md` - Network interception in ATDD scenarios
73
+ - `recurse.md` - Polling for async acceptance criteria
74
+ - `log.md` - Logging in ATDD tests
75
+ - `file-utils.md` - File download validation in acceptance tests
76
+ - `network-error-monitor.md` - Catch silent failures in ATDD
77
+ - `fixtures-composition.md` - Composing utilities for ATDD
78
+
79
+ **If `config.tea_use_playwright_utils: false`:**
80
+ - `fixture-architecture.md` - Test fixture patterns with auto-cleanup (pure function → fixture → mergeTests composition, 406 lines, 5 examples)
81
+ - `network-first.md` - Route interception patterns (intercept before navigate, HAR capture, deterministic waiting, 489 lines, 5 examples)
82
+
83
+ **Halt Condition:** If story has no acceptance criteria or framework is missing, HALT with message: "ATDD requires clear acceptance criteria and test framework setup"
84
+
85
+ ---
86
+
87
+ ## Step 1.5: Generation Mode Selection (NEW - Phase 2.5)
88
+
89
+ ### Actions
90
+
91
+ 1. **Detect Generation Mode**
92
+
93
+ Determine mode based on scenario complexity:
94
+
95
+ **AI Generation Mode (DEFAULT)**:
96
+ - Clear acceptance criteria with standard patterns
97
+ - Uses: AI-generated tests from requirements
98
+ - Appropriate for: CRUD, auth, navigation, API tests
99
+ - Fastest approach
100
+
101
+ **Recording Mode (OPTIONAL - Complex UI)**:
102
+ - Complex UI interactions (drag-drop, wizards, multi-page flows)
103
+ - Uses: Interactive test recording with Playwright MCP
104
+ - Appropriate for: Visual workflows, unclear requirements
105
+ - Only if config.tea_use_mcp_enhancements is true AND MCP available
106
+
107
+ 2. **AI Generation Mode (DEFAULT - Continue to Step 2)**
108
+
109
+ For standard scenarios:
110
+ - Continue with existing workflow (Step 2: Select Test Levels and Strategy)
111
+ - AI generates tests based on acceptance criteria from Step 1
112
+ - Use knowledge base patterns for test structure
113
+
114
+ 3. **Recording Mode (OPTIONAL - Complex UI Only)**
115
+
116
+ For complex UI scenarios AND config.tea_use_mcp_enhancements is true:
117
+
118
+ **A. Check MCP Availability**
119
+
120
+ If Playwright MCP tools are available in your IDE:
121
+ - Use MCP recording mode (Step 3.B)
122
+
123
+ If MCP unavailable:
124
+ - Fallback to AI generation mode (silent, automatic)
125
+ - Continue to Step 2
126
+
127
+ **B. Interactive Test Recording (MCP-Based)**
128
+
129
+ Use Playwright MCP test-generator tools:
130
+
131
+ **Setup:**
132
+
133
+ ```
134
+ 1. Use generator_setup_page to initialize recording session
135
+ 2. Navigate to application starting URL (from story context)
136
+ 3. Ready to record user interactions
137
+ ```
138
+
139
+ **Recording Process (Per Acceptance Criterion):**
140
+
141
+ ```
142
+ 4. Read acceptance criterion from story
143
+ 5. Manually execute test scenario using browser_* tools:
144
+ - browser_navigate: Navigate to pages
145
+ - browser_click: Click buttons, links, elements
146
+ - browser_type: Fill form fields
147
+ - browser_select: Select dropdown options
148
+ - browser_check: Check/uncheck checkboxes
149
+ 6. Add verification steps using browser_verify_* tools:
150
+ - browser_verify_text: Verify text content
151
+ - browser_verify_visible: Verify element visibility
152
+ - browser_verify_url: Verify URL navigation
153
+ 7. Capture interaction log with generator_read_log
154
+ 8. Generate test file with generator_write_test
155
+ 9. Repeat for next acceptance criterion
156
+ ```
157
+
158
+ **Post-Recording Enhancement:**
159
+
160
+ ```
161
+ 10. Review generated test code
162
+ 11. Enhance with knowledge base patterns:
163
+ - Add Given-When-Then comments
164
+ - Replace recorded selectors with data-testid (if needed)
165
+ - Add network-first interception (from network-first.md)
166
+ - Add fixtures for auth/data setup (from fixture-architecture.md)
167
+ - Use factories for test data (from data-factories.md)
168
+ 12. Verify tests fail (missing implementation)
169
+ 13. Continue to Step 4 (Build Data Infrastructure)
170
+ ```
171
+
172
+ **When to Use Recording Mode:**
173
+ - ✅ Complex UI interactions (drag-drop, multi-step forms, wizards)
174
+ - ✅ Visual workflows (modals, dialogs, animations)
175
+ - ✅ Unclear requirements (exploratory, discovering expected behavior)
176
+ - ✅ Multi-page flows (checkout, registration, onboarding)
177
+ - ❌ NOT for simple CRUD (AI generation faster)
178
+ - ❌ NOT for API-only tests (no UI to record)
179
+
180
+ **When to Use AI Generation (Default):**
181
+ - ✅ Clear acceptance criteria available
182
+ - ✅ Standard patterns (login, CRUD, navigation)
183
+ - ✅ Need many tests quickly
184
+ - ✅ API/backend tests (no UI interaction)
185
+
186
+ 4. **Proceed to Test Level Selection**
187
+
188
+ After mode selection:
189
+ - AI Generation: Continue to Step 2 (Select Test Levels and Strategy)
190
+ - Recording: Skip to Step 4 (Build Data Infrastructure) - tests already generated
191
+
192
+ ---
193
+
194
+ ## Step 2: Select Test Levels and Strategy
195
+
196
+ ### Actions
197
+
198
+ 1. **Analyze Acceptance Criteria**
199
+
200
+ For each acceptance criterion, determine:
201
+ - Does it require full user journey? → E2E test
202
+ - Does it test business logic/API contract? → API test
203
+ - Does it validate UI component behavior? → Component test
204
+ - Can it be unit tested? → Unit test
205
+
206
+ 2. **Apply Test Level Selection Framework**
207
+
208
+ **Knowledge Base Reference**: `test-levels-framework.md`
209
+
210
+ **E2E (End-to-End)**:
211
+ - Critical user journeys (login, checkout, core workflow)
212
+ - Multi-system integration
213
+ - User-facing acceptance criteria
214
+ - **Characteristics**: High confidence, slow execution, brittle
215
+
216
+ **API (Integration)**:
217
+ - Business logic validation
218
+ - Service contracts
219
+ - Data transformations
220
+ - **Characteristics**: Fast feedback, good balance, stable
221
+
222
+ **Component**:
223
+ - UI component behavior (buttons, forms, modals)
224
+ - Interaction testing
225
+ - Visual regression
226
+ - **Characteristics**: Fast, isolated, granular
227
+
228
+ **Unit**:
229
+ - Pure business logic
230
+ - Edge cases
231
+ - Error handling
232
+ - **Characteristics**: Fastest, most granular
233
+
234
+ 3. **Avoid Duplicate Coverage**
235
+
236
+ Don't test same behavior at multiple levels unless necessary:
237
+ - Use E2E for critical happy path only
238
+ - Use API tests for complex business logic variations
239
+ - Use component tests for UI interaction edge cases
240
+ - Use unit tests for pure logic edge cases
241
+
242
+ 4. **Prioritize Tests**
243
+
244
+ If test-design document exists, align with priority levels:
245
+ - P0 scenarios → Must cover in failing tests
246
+ - P1 scenarios → Should cover if time permits
247
+ - P2/P3 scenarios → Optional for this iteration
248
+
249
+ **Decision Point:** Set `primary_level` variable to main test level for this story (typically E2E or API)
250
+
251
+ ---
252
+
253
+ ## Step 3: Generate Failing Tests
254
+
255
+ ### Actions
256
+
257
+ 1. **Create Test File Structure**
258
+
259
+ ```
260
+ tests/
261
+ ├── e2e/
262
+ │ └── {feature-name}.spec.ts # E2E acceptance tests
263
+ ├── api/
264
+ │ └── {feature-name}.api.spec.ts # API contract tests
265
+ ├── component/
266
+ │ └── {ComponentName}.test.tsx # Component tests
267
+ └── support/
268
+ ├── fixtures/ # Test fixtures
269
+ ├── factories/ # Data factories
270
+ └── helpers/ # Utility functions
271
+ ```
272
+
273
+ 2. **Write Failing E2E Tests (If Applicable)**
274
+
275
+ **Use Given-When-Then format:**
276
+
277
+ ```typescript
278
+ import { test, expect } from '@playwright/test';
279
+
280
+ test.describe('User Login', () => {
281
+ test('should display error for invalid credentials', async ({ page }) => {
282
+ // GIVEN: User is on login page
283
+ await page.goto('/login');
284
+
285
+ // WHEN: User submits invalid credentials
286
+ await page.fill('[data-testid="email-input"]', 'invalid@example.com');
287
+ await page.fill('[data-testid="password-input"]', 'wrongpassword');
288
+ await page.click('[data-testid="login-button"]');
289
+
290
+ // THEN: Error message is displayed
291
+ await expect(page.locator('[data-testid="error-message"]')).toHaveText('Invalid email or password');
292
+ });
293
+ });
294
+ ```
295
+
296
+ **Critical patterns:**
297
+ - One assertion per test (atomic tests)
298
+ - Explicit waits (no hard waits/sleeps)
299
+ - Network-first approach (route interception before navigation)
300
+ - data-testid selectors for stability
301
+ - Clear Given-When-Then structure
302
+
303
+ 3. **Apply Network-First Pattern**
304
+
305
+ **Knowledge Base Reference**: `network-first.md`
306
+
307
+ ```typescript
308
+ test('should load user dashboard after login', async ({ page }) => {
309
+ // CRITICAL: Intercept routes BEFORE navigation
310
+ await page.route('**/api/user', (route) =>
311
+ route.fulfill({
312
+ status: 200,
313
+ body: JSON.stringify({ id: 1, name: 'Test User' }),
314
+ }),
315
+ );
316
+
317
+ // NOW navigate
318
+ await page.goto('/dashboard');
319
+
320
+ await expect(page.locator('[data-testid="user-name"]')).toHaveText('Test User');
321
+ });
322
+ ```
323
+
324
+ 4. **Write Failing API Tests (If Applicable)**
325
+
326
+ ```typescript
327
+ import { test, expect } from '@playwright/test';
328
+
329
+ test.describe('User API', () => {
330
+ test('POST /api/users - should create new user', async ({ request }) => {
331
+ // GIVEN: Valid user data
332
+ const userData = {
333
+ email: 'newuser@example.com',
334
+ name: 'New User',
335
+ };
336
+
337
+ // WHEN: Creating user via API
338
+ const response = await request.post('/api/users', {
339
+ data: userData,
340
+ });
341
+
342
+ // THEN: User is created successfully
343
+ expect(response.status()).toBe(201);
344
+ const body = await response.json();
345
+ expect(body).toMatchObject({
346
+ email: userData.email,
347
+ name: userData.name,
348
+ id: expect.any(Number),
349
+ });
350
+ });
351
+ });
352
+ ```
353
+
354
+ 5. **Write Failing Component Tests (If Applicable)**
355
+
356
+ **Knowledge Base Reference**: `component-tdd.md`
357
+
358
+ ```typescript
359
+ import { test, expect } from '@playwright/experimental-ct-react';
360
+ import { LoginForm } from './LoginForm';
361
+
362
+ test.describe('LoginForm Component', () => {
363
+ test('should disable submit button when fields are empty', async ({ mount }) => {
364
+ // GIVEN: LoginForm is mounted
365
+ const component = await mount(<LoginForm />);
366
+
367
+ // WHEN: Form is initially rendered
368
+ const submitButton = component.locator('button[type="submit"]');
369
+
370
+ // THEN: Submit button is disabled
371
+ await expect(submitButton).toBeDisabled();
372
+ });
373
+ });
374
+ ```
375
+
376
+ 6. **Verify Tests Fail Initially**
377
+
378
+ **Critical verification:**
379
+ - Run tests locally to confirm they fail
380
+ - Failure should be due to missing implementation, not test errors
381
+ - Failure messages should be clear and actionable
382
+ - All tests must be in RED phase before sharing with DEV
383
+
384
+ **Important:** Tests MUST fail initially. If a test passes before implementation, it's not a valid acceptance test.
385
+
386
+ ---
387
+
388
+ ## Step 4: Build Data Infrastructure
389
+
390
+ ### Actions
391
+
392
+ 1. **Create Data Factories**
393
+
394
+ **Knowledge Base Reference**: `data-factories.md`
395
+
396
+ ```typescript
397
+ // tests/support/factories/user.factory.ts
398
+ import { faker } from '@faker-js/faker';
399
+
400
+ export const createUser = (overrides = {}) => ({
401
+ id: faker.number.int(),
402
+ email: faker.internet.email(),
403
+ name: faker.person.fullName(),
404
+ createdAt: faker.date.recent().toISOString(),
405
+ ...overrides,
406
+ });
407
+
408
+ export const createUsers = (count: number) => Array.from({ length: count }, () => createUser());
409
+ ```
410
+
411
+ **Factory principles:**
412
+ - Use faker for random data (no hardcoded values)
413
+ - Support overrides for specific scenarios
414
+ - Generate complete valid objects
415
+ - Include helper functions for bulk creation
416
+
417
+ 2. **Create Test Fixtures**
418
+
419
+ **Knowledge Base Reference**: `fixture-architecture.md`
420
+
421
+ ```typescript
422
+ // tests/support/fixtures/auth.fixture.ts
423
+ import { test as base } from '@playwright/test';
424
+
425
+ export const test = base.extend({
426
+ authenticatedUser: async ({ page }, use) => {
427
+ // Setup: Create and authenticate user
428
+ const user = await createUser();
429
+ await page.goto('/login');
430
+ await page.fill('[data-testid="email"]', user.email);
431
+ await page.fill('[data-testid="password"]', 'password123');
432
+ await page.click('[data-testid="login-button"]');
433
+ await page.waitForURL('/dashboard');
434
+
435
+ // Provide to test
436
+ await use(user);
437
+
438
+ // Cleanup: Delete user
439
+ await deleteUser(user.id);
440
+ },
441
+ });
442
+ ```
443
+
444
+ **Fixture principles:**
445
+ - Auto-cleanup (always delete created data)
446
+ - Composable (fixtures can use other fixtures)
447
+ - Isolated (each test gets fresh data)
448
+ - Type-safe
449
+
450
+ 3. **Document Mock Requirements**
451
+
452
+ If external services need mocking, document requirements:
453
+
454
+ ```markdown
455
+ ### Mock Requirements for DEV Team
456
+
457
+ **Payment Gateway Mock**:
458
+
459
+ - Endpoint: `POST /api/payments`
460
+ - Success response: `{ status: 'success', transactionId: '123' }`
461
+ - Failure response: `{ status: 'failed', error: 'Insufficient funds' }`
462
+
463
+ **Email Service Mock**:
464
+
465
+ - Should not send real emails in test environment
466
+ - Log email contents for verification
467
+ ```
468
+
469
+ 4. **List Required data-testid Attributes**
470
+
471
+ ```markdown
472
+ ### Required data-testid Attributes
473
+
474
+ **Login Page**:
475
+
476
+ - `email-input` - Email input field
477
+ - `password-input` - Password input field
478
+ - `login-button` - Submit button
479
+ - `error-message` - Error message container
480
+
481
+ **Dashboard Page**:
482
+
483
+ - `user-name` - User name display
484
+ - `logout-button` - Logout button
485
+ ```
486
+
487
+ ---
488
+
489
+ ## Step 5: Create Implementation Checklist
490
+
491
+ ### Actions
492
+
493
+ 1. **Map Tests to Implementation Tasks**
494
+
495
+ For each failing test, create corresponding implementation task:
496
+
497
+ ```markdown
498
+ ## Implementation Checklist
499
+
500
+ ### Epic X - User Authentication
501
+
502
+ #### Test: User Login with Valid Credentials
503
+
504
+ - [ ] Create `/login` route
505
+ - [ ] Implement login form component
506
+ - [ ] Add email/password validation
507
+ - [ ] Integrate authentication API
508
+ - [ ] Add `data-testid` attributes: `email-input`, `password-input`, `login-button`
509
+ - [ ] Implement error handling
510
+ - [ ] Run test: `npm run test:e2e -- login.spec.ts`
511
+ - [ ] ✅ Test passes (green phase)
512
+
513
+ #### Test: Display Error for Invalid Credentials
514
+
515
+ - [ ] Add error state management
516
+ - [ ] Display error message UI
517
+ - [ ] Add `data-testid="error-message"`
518
+ - [ ] Run test: `npm run test:e2e -- login.spec.ts`
519
+ - [ ] ✅ Test passes (green phase)
520
+ ```
521
+
522
+ 2. **Include Red-Green-Refactor Guidance**
523
+
524
+ ```markdown
525
+ ## Red-Green-Refactor Workflow
526
+
527
+ **RED Phase** (Complete):
528
+
529
+ - ✅ All tests written and failing
530
+ - ✅ Fixtures and factories created
531
+ - ✅ Mock requirements documented
532
+
533
+ **GREEN Phase** (DEV Team):
534
+
535
+ 1. Pick one failing test
536
+ 2. Implement minimal code to make it pass
537
+ 3. Run test to verify green
538
+ 4. Move to next test
539
+ 5. Repeat until all tests pass
540
+
541
+ **REFACTOR Phase** (DEV Team):
542
+
543
+ 1. All tests passing (green)
544
+ 2. Improve code quality
545
+ 3. Extract duplications
546
+ 4. Optimize performance
547
+ 5. Ensure tests still pass
548
+ ```
549
+
550
+ 3. **Add Execution Commands**
551
+
552
+ ````markdown
553
+ ## Running Tests
554
+
555
+ ```bash
556
+ # Run all failing tests
557
+ npm run test:e2e
558
+
559
+ # Run specific test file
560
+ npm run test:e2e -- login.spec.ts
561
+
562
+ # Run tests in headed mode (see browser)
563
+ npm run test:e2e -- --headed
564
+
565
+ # Debug specific test
566
+ npm run test:e2e -- login.spec.ts --debug
567
+ ```
568
+ ````
569
+
570
+ ```
571
+
572
+ ```
573
+
574
+ ---
575
+
576
+ ## Step 6: Generate Deliverables
577
+
578
+ ### Actions
579
+
580
+ 1. **Create ATDD Checklist Document**
581
+
582
+ Use template structure at `{installed_path}/atdd-checklist-template.md`:
583
+ - Story summary
584
+ - Acceptance criteria breakdown
585
+ - Test files created (with paths)
586
+ - Data factories created
587
+ - Fixtures created
588
+ - Mock requirements
589
+ - Required data-testid attributes
590
+ - Implementation checklist
591
+ - Red-green-refactor workflow
592
+ - Execution commands
593
+
594
+ 2. **Verify All Tests Fail**
595
+
596
+ Before finalizing:
597
+ - Run full test suite locally
598
+ - Confirm all tests in RED phase
599
+ - Document expected failure messages
600
+ - Ensure failures are due to missing implementation, not test bugs
601
+
602
+ 3. **Write to Output File**
603
+
604
+ Save to `{output_folder}/atdd-checklist-{story_id}.md`
605
+
606
+ ---
607
+
608
+ ## Important Notes
609
+
610
+ ### Red-Green-Refactor Cycle
611
+
612
+ **RED Phase** (TEA responsibility):
613
+
614
+ - Write failing tests first
615
+ - Tests define expected behavior
616
+ - Tests must fail for right reason (missing implementation)
617
+
618
+ **GREEN Phase** (DEV responsibility):
619
+
620
+ - Implement minimal code to pass tests
621
+ - One test at a time
622
+ - Don't over-engineer
623
+
624
+ **REFACTOR Phase** (DEV responsibility):
625
+
626
+ - Improve code quality with confidence
627
+ - Tests provide safety net
628
+ - Extract duplications, optimize
629
+
630
+ ### Given-When-Then Structure
631
+
632
+ **GIVEN** (Setup):
633
+
634
+ - Arrange test preconditions
635
+ - Create necessary data
636
+ - Navigate to starting point
637
+
638
+ **WHEN** (Action):
639
+
640
+ - Execute the behavior being tested
641
+ - Single action per test
642
+
643
+ **THEN** (Assertion):
644
+
645
+ - Verify expected outcome
646
+ - One assertion per test (atomic)
647
+
648
+ ### Network-First Testing
649
+
650
+ **Critical pattern:**
651
+
652
+ ```typescript
653
+ // ✅ CORRECT: Intercept BEFORE navigation
654
+ await page.route('**/api/data', handler);
655
+ await page.goto('/page');
656
+
657
+ // ❌ WRONG: Navigate then intercept (race condition)
658
+ await page.goto('/page');
659
+ await page.route('**/api/data', handler); // Too late!
660
+ ```
661
+
662
+ ### Data Factory Best Practices
663
+
664
+ **Use faker for all test data:**
665
+
666
+ ```typescript
667
+ // ✅ CORRECT: Random data
668
+ email: faker.internet.email();
669
+
670
+ // ❌ WRONG: Hardcoded data (collisions, maintenance burden)
671
+ email: 'test@example.com';
672
+ ```
673
+
674
+ **Auto-cleanup principle:**
675
+
676
+ - Every factory that creates data must provide cleanup
677
+ - Fixtures automatically cleanup in teardown
678
+ - No manual cleanup in test code
679
+
680
+ ### One Assertion Per Test
681
+
682
+ **Atomic test design:**
683
+
684
+ ```typescript
685
+ // ✅ CORRECT: One assertion
686
+ test('should display user name', async ({ page }) => {
687
+ await expect(page.locator('[data-testid="user-name"]')).toHaveText('John');
688
+ });
689
+
690
+ // ❌ WRONG: Multiple assertions (not atomic)
691
+ test('should display user info', async ({ page }) => {
692
+ await expect(page.locator('[data-testid="user-name"]')).toHaveText('John');
693
+ await expect(page.locator('[data-testid="user-email"]')).toHaveText('john@example.com');
694
+ });
695
+ ```
696
+
697
+ **Why?** If second assertion fails, you don't know if first is still valid.
698
+
699
+ ### Component Test Strategy
700
+
701
+ **When to use component tests:**
702
+
703
+ - Complex UI interactions (drag-drop, keyboard nav)
704
+ - Form validation logic
705
+ - State management within component
706
+ - Visual edge cases
707
+
708
+ **When NOT to use:**
709
+
710
+ - Simple rendering (snapshot tests are sufficient)
711
+ - Integration with backend (use E2E or API tests)
712
+ - Full user journeys (use E2E tests)
713
+
714
+ ### Knowledge Base Integration
715
+
716
+ **Core Fragments (Auto-loaded in Step 1):**
717
+
718
+ - `fixture-architecture.md` - Pure function → fixture → mergeTests patterns (406 lines, 5 examples)
719
+ - `data-factories.md` - Factory patterns with faker, overrides, API seeding (498 lines, 5 examples)
720
+ - `component-tdd.md` - Red-green-refactor, provider isolation, accessibility, visual regression (480 lines, 4 examples)
721
+ - `network-first.md` - Intercept before navigate, HAR capture, deterministic waiting (489 lines, 5 examples)
722
+ - `test-quality.md` - Deterministic tests, cleanup, explicit assertions, length/time limits (658 lines, 5 examples)
723
+ - `test-healing-patterns.md` - Common failure patterns: stale selectors, race conditions, dynamic data, network errors, hard waits (648 lines, 5 examples)
724
+ - `selector-resilience.md` - Selector hierarchy (data-testid > ARIA > text > CSS), dynamic patterns, anti-patterns (541 lines, 4 examples)
725
+ - `timing-debugging.md` - Race condition prevention, deterministic waiting, async debugging (370 lines, 3 examples)
726
+
727
+ **Reference for Test Level Selection:**
728
+
729
+ - `test-levels-framework.md` - E2E vs API vs Component vs Unit decision framework (467 lines, 4 examples)
730
+
731
+ **Manual Reference (Optional):**
732
+
733
+ - Use `tea-index.csv` to find additional specialized fragments as needed
734
+
735
+ ---
736
+
737
+ ## Output Summary
738
+
739
+ After completing this workflow, provide a summary:
740
+
741
+ ```markdown
742
+ ## ATDD Complete - Tests in RED Phase
743
+
744
+ **Story**: {story_id}
745
+ **Primary Test Level**: {primary_level}
746
+
747
+ **Failing Tests Created**:
748
+
749
+ - E2E tests: {e2e_count} tests in {e2e_files}
750
+ - API tests: {api_count} tests in {api_files}
751
+ - Component tests: {component_count} tests in {component_files}
752
+
753
+ **Supporting Infrastructure**:
754
+
755
+ - Data factories: {factory_count} factories created
756
+ - Fixtures: {fixture_count} fixtures with auto-cleanup
757
+ - Mock requirements: {mock_count} services documented
758
+
759
+ **Implementation Checklist**:
760
+
761
+ - Total tasks: {task_count}
762
+ - Estimated effort: {effort_estimate} hours
763
+
764
+ **Required data-testid Attributes**: {data_testid_count} attributes documented
765
+
766
+ **Next Steps for DEV Team**:
767
+
768
+ 1. Run failing tests: `npm run test:e2e`
769
+ 2. Review implementation checklist
770
+ 3. Implement one test at a time (RED → GREEN)
771
+ 4. Refactor with confidence (tests provide safety net)
772
+ 5. Share progress in daily standup
773
+
774
+ **Output File**: {output_file}
775
+ **Manual Handoff**: Share `{output_file}` and failing tests with the dev workflow (not auto-consumed).
776
+
777
+ **Knowledge Base References Applied**:
778
+
779
+ - Fixture architecture patterns
780
+ - Data factory patterns with faker
781
+ - Network-first route interception
782
+ - Component TDD strategies
783
+ - Test quality principles
784
+ ```
785
+
786
+ ---
787
+
788
+ ## Validation
789
+
790
+ After completing all steps, verify:
791
+
792
+ - [ ] Story acceptance criteria analyzed and mapped to tests
793
+ - [ ] Appropriate test levels selected (E2E, API, Component)
794
+ - [ ] All tests written in Given-When-Then format
795
+ - [ ] All tests fail initially (RED phase verified)
796
+ - [ ] Network-first pattern applied (route interception before navigation)
797
+ - [ ] Data factories created with faker
798
+ - [ ] Fixtures created with auto-cleanup
799
+ - [ ] Mock requirements documented for DEV team
800
+ - [ ] Required data-testid attributes listed
801
+ - [ ] Implementation checklist created with clear tasks
802
+ - [ ] Red-green-refactor workflow documented
803
+ - [ ] Execution commands provided
804
+ - [ ] Output file created and formatted correctly
805
+
806
+ Refer to `checklist.md` for comprehensive validation criteria.