bmad-method 6.0.0-alpha.6 → 6.0.0-alpha.7

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 (367) hide show
  1. package/.claude/settings.local.json +13 -6
  2. package/.github/workflows/{lint.yaml → quality.yaml} +19 -2
  3. package/.husky/pre-commit +4 -0
  4. package/README.md +59 -1
  5. package/bmad/_cfg/agent-manifest.csv +2 -8
  6. package/bmad/_cfg/files-manifest.csv +8 -202
  7. package/bmad/_cfg/ides/claude-code.yaml +3 -4
  8. package/bmad/_cfg/manifest.yaml +5 -4
  9. package/bmad/_cfg/task-manifest.csv +8 -1
  10. package/bmad/_cfg/tool-manifest.csv +2 -0
  11. package/bmad/_cfg/workflow-manifest.csv +4 -31
  12. package/bmad/bmb/config.yaml +2 -2
  13. package/bmad/bmb/workflows/create-agent/instructions.md +25 -9
  14. package/bmad/bmb/workflows/create-module/module-structure.md +34 -0
  15. package/bmad/core/config.yaml +2 -2
  16. package/docs/installers-bundlers/installers-modules-platforms-reference.md +61 -0
  17. package/package.json +5 -3
  18. package/src/core/tasks/adv-elicit.xml +1 -1
  19. package/src/modules/bmb/workflows/create-agent/instructions.md +25 -9
  20. package/src/modules/bmb/workflows/create-module/module-structure.md +34 -0
  21. package/src/modules/bmgd/README.md +208 -0
  22. package/src/modules/bmgd/_module-installer/install-config.yaml +66 -0
  23. package/src/modules/{bmm → bmgd}/agents/game-architect.agent.yaml +5 -12
  24. package/src/modules/{bmm → bmgd}/agents/game-designer.agent.yaml +10 -22
  25. package/src/modules/{bmm → bmgd}/agents/game-dev.agent.yaml +9 -10
  26. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +70 -0
  27. package/{bmad/bmm → src/modules/bmgd}/teams/team-gamedev.yaml +3 -1
  28. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/workflow.yaml +7 -7
  29. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/workflow.yaml +9 -9
  30. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +81 -0
  31. package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/workflow.yaml +6 -6
  32. package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/workflow.yaml +16 -16
  33. package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/code-review/workflow.yaml +3 -1
  34. package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/correct-course/workflow.yaml +3 -1
  35. package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/create-story/workflow.yaml +3 -1
  36. package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/dev-story/workflow.yaml +3 -1
  37. package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/epic-tech-context/workflow.yaml +3 -1
  38. package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/retrospective/workflow.yaml +3 -1
  39. package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/sprint-planning/workflow.yaml +3 -1
  40. package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-context/workflow.yaml +3 -1
  41. package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-done/workflow.yaml +3 -1
  42. package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-ready/workflow.yaml +3 -1
  43. package/src/modules/bmm/docs/README.md +8 -9
  44. package/src/modules/bmm/docs/agents-guide.md +0 -1
  45. package/src/modules/bmm/docs/brownfield-guide.md +5 -9
  46. package/src/modules/bmm/docs/faq.md +4 -6
  47. package/src/modules/bmm/docs/glossary.md +0 -1
  48. package/src/modules/bmm/docs/quick-spec-flow.md +4 -4
  49. package/src/modules/bmm/docs/quick-start.md +4 -4
  50. package/src/modules/bmm/docs/scale-adaptive-system.md +5 -5
  51. package/src/modules/bmm/docs/test-architecture.md +183 -118
  52. package/src/modules/bmm/docs/workflows-analysis.md +203 -539
  53. package/src/modules/bmm/docs/workflows-planning.md +326 -850
  54. package/src/modules/bmm/docs/workflows-solutioning.md +250 -505
  55. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +65 -32
  56. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +4 -0
  57. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +1 -1
  58. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +34 -5
  59. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +1 -1
  60. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +8 -0
  61. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +6 -0
  62. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +47 -0
  63. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +50 -0
  64. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +18 -11
  65. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +18 -11
  66. package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +42 -65
  67. package/test/test-installation-components.js +214 -0
  68. package/tools/cli/bundlers/web-bundler.js +127 -8
  69. package/tools/cli/installers/lib/ide/auggie.js +9 -20
  70. package/tools/cli/installers/lib/ide/claude-code.js +33 -3
  71. package/tools/cli/installers/lib/ide/cursor.js +17 -0
  72. package/tools/cli/installers/lib/modules/manager.js +128 -0
  73. package/tools/cli/lib/yaml-xml-builder.js +9 -1
  74. package/tools/schema/agent.js +1 -0
  75. package/v6-open-items.md +3 -9
  76. package/web-bundles/bmm/agents/analyst.xml +5028 -0
  77. package/web-bundles/bmm/agents/architect.xml +2047 -0
  78. package/web-bundles/bmm/agents/dev.xml +68 -0
  79. package/web-bundles/bmm/agents/pm.xml +3808 -0
  80. package/web-bundles/bmm/agents/sm.xml +77 -0
  81. package/web-bundles/bmm/agents/tea.xml +66 -0
  82. package/web-bundles/bmm/agents/tech-writer.xml +84 -0
  83. package/web-bundles/bmm/agents/ux-designer.xml +2018 -0
  84. package/web-bundles/bmm/teams/team-fullstack.xml +12039 -0
  85. package/.claude/agents/bmad-analysis/api-documenter.md +0 -102
  86. package/.claude/agents/bmad-analysis/codebase-analyzer.md +0 -82
  87. package/.claude/agents/bmad-analysis/data-analyst.md +0 -101
  88. package/.claude/agents/bmad-analysis/pattern-detector.md +0 -84
  89. package/.claude/agents/bmad-planning/dependency-mapper.md +0 -83
  90. package/.claude/agents/bmad-planning/epic-optimizer.md +0 -81
  91. package/.claude/agents/bmad-planning/requirements-analyst.md +0 -61
  92. package/.claude/agents/bmad-planning/technical-decisions-curator.md +0 -168
  93. package/.claude/agents/bmad-planning/trend-spotter.md +0 -115
  94. package/.claude/agents/bmad-planning/user-journey-mapper.md +0 -123
  95. package/.claude/agents/bmad-planning/user-researcher.md +0 -72
  96. package/.claude/agents/bmad-research/market-researcher.md +0 -51
  97. package/.claude/agents/bmad-research/tech-debt-auditor.md +0 -106
  98. package/.claude/agents/bmad-review/document-reviewer.md +0 -102
  99. package/.claude/agents/bmad-review/technical-evaluator.md +0 -68
  100. package/.claude/agents/bmad-review/test-coverage-analyzer.md +0 -108
  101. package/.claude/commands/bmad/bmb/workflows/README.md +0 -67
  102. package/.claude/commands/bmad/bmm/agents/analyst.md +0 -67
  103. package/.claude/commands/bmad/bmm/agents/architect.md +0 -72
  104. package/.claude/commands/bmad/bmm/agents/dev.md +0 -69
  105. package/.claude/commands/bmad/bmm/agents/pm.md +0 -76
  106. package/.claude/commands/bmad/bmm/agents/sm.md +0 -85
  107. package/.claude/commands/bmad/bmm/agents/tea.md +0 -72
  108. package/.claude/commands/bmad/bmm/agents/tech-writer.md +0 -82
  109. package/.claude/commands/bmad/bmm/agents/ux-designer.md +0 -71
  110. package/.claude/commands/bmad/bmm/workflows/README.md +0 -132
  111. package/.claude/commands/bmad/bmm/workflows/architecture.md +0 -15
  112. package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +0 -15
  113. package/.claude/commands/bmad/bmm/workflows/code-review.md +0 -15
  114. package/.claude/commands/bmad/bmm/workflows/correct-course.md +0 -15
  115. package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +0 -15
  116. package/.claude/commands/bmad/bmm/workflows/create-story.md +0 -15
  117. package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +0 -15
  118. package/.claude/commands/bmad/bmm/workflows/dev-story.md +0 -15
  119. package/.claude/commands/bmad/bmm/workflows/document-project.md +0 -15
  120. package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +0 -15
  121. package/.claude/commands/bmad/bmm/workflows/narrative.md +0 -15
  122. package/.claude/commands/bmad/bmm/workflows/prd.md +0 -15
  123. package/.claude/commands/bmad/bmm/workflows/product-brief.md +0 -15
  124. package/.claude/commands/bmad/bmm/workflows/research.md +0 -15
  125. package/.claude/commands/bmad/bmm/workflows/retrospective.md +0 -15
  126. package/.claude/commands/bmad/bmm/workflows/solutioning-gate-check.md +0 -15
  127. package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +0 -15
  128. package/.claude/commands/bmad/bmm/workflows/story-context.md +0 -15
  129. package/.claude/commands/bmad/bmm/workflows/story-done.md +0 -15
  130. package/.claude/commands/bmad/bmm/workflows/story-ready.md +0 -15
  131. package/.claude/commands/bmad/bmm/workflows/tech-spec.md +0 -15
  132. package/.claude/commands/bmad/bmm/workflows/workflow-init.md +0 -15
  133. package/.claude/commands/bmad/bmm/workflows/workflow-status.md +0 -15
  134. package/.claude/commands/bmad/cis/agents/README.md +0 -104
  135. package/.claude/commands/bmad/cis/agents/brainstorming-coach.md +0 -62
  136. package/.claude/commands/bmad/cis/agents/creative-problem-solver.md +0 -62
  137. package/.claude/commands/bmad/cis/agents/design-thinking-coach.md +0 -62
  138. package/.claude/commands/bmad/cis/agents/innovation-strategist.md +0 -62
  139. package/.claude/commands/bmad/cis/agents/storyteller.md +0 -59
  140. package/.claude/commands/bmad/cis/workflows/README.md +0 -37
  141. package/.claude/commands/bmad/cis/workflows/design-thinking.md +0 -15
  142. package/.claude/commands/bmad/cis/workflows/innovation-strategy.md +0 -15
  143. package/.claude/commands/bmad/cis/workflows/problem-solving.md +0 -15
  144. package/.claude/commands/bmad/cis/workflows/storytelling.md +0 -15
  145. package/.claude/commands/bmad/core/workflows/README.md +0 -27
  146. package/bmad/_cfg/agents/bmm-analyst.customize.yaml +0 -42
  147. package/bmad/_cfg/agents/bmm-architect.customize.yaml +0 -42
  148. package/bmad/_cfg/agents/bmm-dev.customize.yaml +0 -42
  149. package/bmad/_cfg/agents/bmm-pm.customize.yaml +0 -42
  150. package/bmad/_cfg/agents/bmm-sm.customize.yaml +0 -42
  151. package/bmad/_cfg/agents/bmm-tea.customize.yaml +0 -42
  152. package/bmad/_cfg/agents/bmm-tech-writer.customize.yaml +0 -42
  153. package/bmad/_cfg/agents/bmm-ux-designer.customize.yaml +0 -42
  154. package/bmad/bmm/README.md +0 -128
  155. package/bmad/bmm/agents/analyst.md +0 -67
  156. package/bmad/bmm/agents/architect.md +0 -72
  157. package/bmad/bmm/agents/dev.md +0 -69
  158. package/bmad/bmm/agents/pm.md +0 -76
  159. package/bmad/bmm/agents/sm.md +0 -85
  160. package/bmad/bmm/agents/tea.md +0 -72
  161. package/bmad/bmm/agents/tech-writer.md +0 -82
  162. package/bmad/bmm/agents/ux-designer.md +0 -71
  163. package/bmad/bmm/config.yaml +0 -18
  164. package/bmad/bmm/tasks/daily-standup.xml +0 -85
  165. package/bmad/bmm/teams/team-fullstack.yaml +0 -11
  166. package/bmad/bmm/testarch/knowledge/ci-burn-in.md +0 -675
  167. package/bmad/bmm/testarch/knowledge/component-tdd.md +0 -486
  168. package/bmad/bmm/testarch/knowledge/contract-testing.md +0 -957
  169. package/bmad/bmm/testarch/knowledge/data-factories.md +0 -500
  170. package/bmad/bmm/testarch/knowledge/email-auth.md +0 -721
  171. package/bmad/bmm/testarch/knowledge/error-handling.md +0 -725
  172. package/bmad/bmm/testarch/knowledge/feature-flags.md +0 -750
  173. package/bmad/bmm/testarch/knowledge/fixture-architecture.md +0 -401
  174. package/bmad/bmm/testarch/knowledge/network-first.md +0 -486
  175. package/bmad/bmm/testarch/knowledge/nfr-criteria.md +0 -670
  176. package/bmad/bmm/testarch/knowledge/playwright-config.md +0 -730
  177. package/bmad/bmm/testarch/knowledge/probability-impact.md +0 -601
  178. package/bmad/bmm/testarch/knowledge/risk-governance.md +0 -615
  179. package/bmad/bmm/testarch/knowledge/selective-testing.md +0 -732
  180. package/bmad/bmm/testarch/knowledge/selector-resilience.md +0 -527
  181. package/bmad/bmm/testarch/knowledge/test-healing-patterns.md +0 -644
  182. package/bmad/bmm/testarch/knowledge/test-levels-framework.md +0 -473
  183. package/bmad/bmm/testarch/knowledge/test-priorities-matrix.md +0 -373
  184. package/bmad/bmm/testarch/knowledge/test-quality.md +0 -664
  185. package/bmad/bmm/testarch/knowledge/timing-debugging.md +0 -372
  186. package/bmad/bmm/testarch/knowledge/visual-debugging.md +0 -524
  187. package/bmad/bmm/testarch/tea-index.csv +0 -22
  188. package/bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -110
  189. package/bmad/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
  190. package/bmad/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -26
  191. package/bmad/bmm/workflows/1-analysis/domain-research/instructions.md +0 -423
  192. package/bmad/bmm/workflows/1-analysis/domain-research/template.md +0 -180
  193. package/bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -36
  194. package/bmad/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
  195. package/bmad/bmm/workflows/1-analysis/product-brief/instructions.md +0 -524
  196. package/bmad/bmm/workflows/1-analysis/product-brief/template.md +0 -181
  197. package/bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -45
  198. package/bmad/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
  199. package/bmad/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
  200. package/bmad/bmm/workflows/1-analysis/research/checklist.md +0 -299
  201. package/bmad/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
  202. package/bmad/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -439
  203. package/bmad/bmm/workflows/1-analysis/research/instructions-market.md +0 -679
  204. package/bmad/bmm/workflows/1-analysis/research/instructions-router.md +0 -133
  205. package/bmad/bmm/workflows/1-analysis/research/instructions-technical.md +0 -538
  206. package/bmad/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
  207. package/bmad/bmm/workflows/1-analysis/research/template-market.md +0 -347
  208. package/bmad/bmm/workflows/1-analysis/research/template-technical.md +0 -245
  209. package/bmad/bmm/workflows/1-analysis/research/workflow.yaml +0 -44
  210. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
  211. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1301
  212. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +0 -145
  213. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -64
  214. package/bmad/bmm/workflows/2-plan-workflows/narrative/workflow.yaml +0 -29
  215. package/bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -350
  216. package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +0 -52
  217. package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +0 -169
  218. package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +0 -45
  219. package/bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +0 -13
  220. package/bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -408
  221. package/bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +0 -237
  222. package/bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +0 -11
  223. package/bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -46
  224. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -214
  225. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -80
  226. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +0 -200
  227. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +0 -451
  228. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -1115
  229. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
  230. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -90
  231. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -60
  232. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +0 -175
  233. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +0 -305
  234. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +0 -146
  235. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -189
  236. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +0 -64
  237. package/bmad/bmm/workflows/document-project/checklist.md +0 -245
  238. package/bmad/bmm/workflows/document-project/documentation-requirements.csv +0 -12
  239. package/bmad/bmm/workflows/document-project/instructions.md +0 -222
  240. package/bmad/bmm/workflows/document-project/templates/deep-dive-template.md +0 -345
  241. package/bmad/bmm/workflows/document-project/templates/index-template.md +0 -169
  242. package/bmad/bmm/workflows/document-project/templates/project-overview-template.md +0 -103
  243. package/bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +0 -160
  244. package/bmad/bmm/workflows/document-project/templates/source-tree-template.md +0 -135
  245. package/bmad/bmm/workflows/document-project/workflow.yaml +0 -34
  246. package/bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +0 -298
  247. package/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +0 -31
  248. package/bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +0 -1106
  249. package/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +0 -31
  250. package/bmad/bmm/workflows/techdoc/documentation-standards.md +0 -262
  251. package/bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +0 -363
  252. package/bmad/bmm/workflows/testarch/atdd/checklist.md +0 -373
  253. package/bmad/bmm/workflows/testarch/atdd/instructions.md +0 -785
  254. package/bmad/bmm/workflows/testarch/atdd/workflow.yaml +0 -52
  255. package/bmad/bmm/workflows/testarch/automate/checklist.md +0 -580
  256. package/bmad/bmm/workflows/testarch/automate/instructions.md +0 -1303
  257. package/bmad/bmm/workflows/testarch/automate/workflow.yaml +0 -61
  258. package/bmad/bmm/workflows/testarch/ci/checklist.md +0 -246
  259. package/bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +0 -165
  260. package/bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +0 -128
  261. package/bmad/bmm/workflows/testarch/ci/instructions.md +0 -517
  262. package/bmad/bmm/workflows/testarch/ci/workflow.yaml +0 -53
  263. package/bmad/bmm/workflows/testarch/framework/checklist.md +0 -321
  264. package/bmad/bmm/workflows/testarch/framework/instructions.md +0 -455
  265. package/bmad/bmm/workflows/testarch/framework/workflow.yaml +0 -53
  266. package/bmad/bmm/workflows/testarch/nfr-assess/checklist.md +0 -405
  267. package/bmad/bmm/workflows/testarch/nfr-assess/instructions.md +0 -722
  268. package/bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +0 -443
  269. package/bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +0 -56
  270. package/bmad/bmm/workflows/testarch/test-design/checklist.md +0 -234
  271. package/bmad/bmm/workflows/testarch/test-design/instructions.md +0 -621
  272. package/bmad/bmm/workflows/testarch/test-design/test-design-template.md +0 -285
  273. package/bmad/bmm/workflows/testarch/test-design/workflow.yaml +0 -52
  274. package/bmad/bmm/workflows/testarch/test-review/checklist.md +0 -470
  275. package/bmad/bmm/workflows/testarch/test-review/instructions.md +0 -608
  276. package/bmad/bmm/workflows/testarch/test-review/test-review-template.md +0 -388
  277. package/bmad/bmm/workflows/testarch/test-review/workflow.yaml +0 -53
  278. package/bmad/bmm/workflows/testarch/trace/checklist.md +0 -654
  279. package/bmad/bmm/workflows/testarch/trace/instructions.md +0 -1045
  280. package/bmad/bmm/workflows/testarch/trace/trace-template.md +0 -673
  281. package/bmad/bmm/workflows/testarch/trace/workflow.yaml +0 -66
  282. package/bmad/bmm/workflows/workflow-status/init/instructions.md +0 -771
  283. package/bmad/bmm/workflows/workflow-status/init/workflow.yaml +0 -27
  284. package/bmad/bmm/workflows/workflow-status/instructions.md +0 -386
  285. package/bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +0 -120
  286. package/bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +0 -108
  287. package/bmad/bmm/workflows/workflow-status/paths/game-design.yaml +0 -75
  288. package/bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +0 -97
  289. package/bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +0 -88
  290. package/bmad/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
  291. package/bmad/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
  292. package/bmad/bmm/workflows/workflow-status/project-levels.yaml +0 -59
  293. package/bmad/bmm/workflows/workflow-status/sample-level-3-workflow.yaml +0 -49
  294. package/bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +0 -31
  295. package/bmad/bmm/workflows/workflow-status/workflow.yaml +0 -28
  296. package/src/modules/bmm/docs/troubleshooting.md +0 -680
  297. package/src/modules/bmm/teams/team-gamedev.yaml +0 -14
  298. package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +0 -81
  299. package/src/modules/bmm/workflows/2-plan-workflows/narrative/checklist.md +0 -139
  300. package/src/modules/bmm/workflows/2-plan-workflows/narrative/instructions-narrative.md +0 -608
  301. package/src/modules/bmm/workflows/2-plan-workflows/narrative/narrative-template.md +0 -195
  302. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-brain-methods.csv +0 -0
  303. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-context.md +0 -0
  304. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/instructions.md +0 -0
  305. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/checklist.md +0 -0
  306. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/instructions.md +0 -0
  307. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/template.md +0 -0
  308. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/checklist.md +0 -0
  309. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/action-platformer.md +0 -0
  310. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/adventure.md +0 -0
  311. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/card-game.md +0 -0
  312. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/fighting.md +0 -0
  313. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/horror.md +0 -0
  314. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/idle-incremental.md +0 -0
  315. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/metroidvania.md +0 -0
  316. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/moba.md +0 -0
  317. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/party-game.md +0 -0
  318. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/puzzle.md +0 -0
  319. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/racing.md +0 -0
  320. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rhythm.md +0 -0
  321. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/roguelike.md +0 -0
  322. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rpg.md +0 -0
  323. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sandbox.md +0 -0
  324. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/shooter.md +0 -0
  325. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/simulation.md +0 -0
  326. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sports.md +0 -0
  327. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/strategy.md +0 -0
  328. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/survival.md +0 -0
  329. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/text-based.md +0 -0
  330. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/tower-defense.md +0 -0
  331. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/turn-based-tactics.md +0 -0
  332. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/visual-novel.md +0 -0
  333. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types.csv +0 -0
  334. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/gdd-template.md +0 -0
  335. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/instructions-gdd.md +0 -0
  336. /package/{bmad/bmm/workflows/2-plan-workflows → src/modules/bmgd/workflows/2-design}/narrative/checklist.md +0 -0
  337. /package/{bmad/bmm/workflows/2-plan-workflows → src/modules/bmgd/workflows/2-design}/narrative/instructions-narrative.md +0 -0
  338. /package/{bmad/bmm/workflows/2-plan-workflows → src/modules/bmgd/workflows/2-design}/narrative/narrative-template.md +0 -0
  339. /package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/architecture-patterns.yaml +0 -0
  340. /package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/architecture-template.md +0 -0
  341. /package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/checklist.md +0 -0
  342. /package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/decision-catalog.yaml +0 -0
  343. /package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/instructions.md +0 -0
  344. /package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/pattern-categories.csv +0 -0
  345. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/code-review/backlog_template.md +0 -0
  346. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/code-review/checklist.md +0 -0
  347. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/code-review/instructions.md +0 -0
  348. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/correct-course/checklist.md +0 -0
  349. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/correct-course/instructions.md +0 -0
  350. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/create-story/checklist.md +0 -0
  351. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/create-story/instructions.md +0 -0
  352. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/create-story/template.md +0 -0
  353. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/dev-story/AUDIT-REPORT.md +0 -0
  354. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/dev-story/checklist.md +0 -0
  355. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/dev-story/instructions.md +0 -0
  356. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/epic-tech-context/checklist.md +0 -0
  357. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/epic-tech-context/instructions.md +0 -0
  358. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/epic-tech-context/template.md +0 -0
  359. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/retrospective/instructions.md +0 -0
  360. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/sprint-planning/checklist.md +0 -0
  361. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/sprint-planning/instructions.md +0 -0
  362. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/sprint-planning/sprint-status-template.yaml +0 -0
  363. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-context/checklist.md +0 -0
  364. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-context/context-template.xml +0 -0
  365. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-context/instructions.md +0 -0
  366. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-done/instructions.md +0 -0
  367. /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-ready/instructions.md +0 -0
@@ -1,524 +0,0 @@
1
- # Visual Debugging and Developer Ergonomics
2
-
3
- ## Principle
4
-
5
- Fast feedback loops and transparent debugging artifacts are critical for maintaining test reliability and developer confidence. Visual debugging tools (trace viewers, screenshots, videos, HAR files) turn cryptic test failures into actionable insights, reducing triage time from hours to minutes.
6
-
7
- ## Rationale
8
-
9
- **The Problem**: CI failures often provide minimal context—a timeout, a selector mismatch, or a network error—forcing developers to reproduce issues locally (if they can). This wastes time and discourages test maintenance.
10
-
11
- **The Solution**: Capture rich debugging artifacts **only on failure** to balance storage costs with diagnostic value. Modern tools like Playwright Trace Viewer, Cypress Debug UI, and HAR recordings provide interactive, time-travel debugging that reveals exactly what the test saw at each step.
12
-
13
- **Why This Matters**:
14
-
15
- - Reduces failure triage time by 80-90% (visual context vs logs alone)
16
- - Enables debugging without local reproduction
17
- - Improves test maintenance confidence (clear failure root cause)
18
- - Catches timing/race conditions that are hard to reproduce locally
19
-
20
- ## Pattern Examples
21
-
22
- ### Example 1: Playwright Trace Viewer Configuration (Production Pattern)
23
-
24
- **Context**: Capture traces on first retry only (balances storage and diagnostics)
25
-
26
- **Implementation**:
27
-
28
- ```typescript
29
- // playwright.config.ts
30
- import { defineConfig } from '@playwright/test';
31
-
32
- export default defineConfig({
33
- use: {
34
- // Visual debugging artifacts (space-efficient)
35
- trace: 'on-first-retry', // Only when test fails once
36
- screenshot: 'only-on-failure', // Not on success
37
- video: 'retain-on-failure', // Delete on pass
38
-
39
- // Context for debugging
40
- baseURL: process.env.BASE_URL || 'http://localhost:3000',
41
-
42
- // Timeout context
43
- actionTimeout: 15_000, // 15s for clicks/fills
44
- navigationTimeout: 30_000, // 30s for page loads
45
- },
46
-
47
- // CI-specific artifact retention
48
- reporter: [
49
- ['html', { outputFolder: 'playwright-report', open: 'never' }],
50
- ['junit', { outputFile: 'results.xml' }],
51
- ['list'], // Console output
52
- ],
53
-
54
- // Failure handling
55
- retries: process.env.CI ? 2 : 0, // Retry in CI to capture trace
56
- workers: process.env.CI ? 1 : undefined,
57
- });
58
- ```
59
-
60
- **Opening and Using Trace Viewer**:
61
-
62
- ```bash
63
- # After test failure in CI, download trace artifact
64
- # Then open locally:
65
- npx playwright show-trace path/to/trace.zip
66
-
67
- # Or serve trace viewer:
68
- npx playwright show-report
69
- ```
70
-
71
- **Key Features to Use in Trace Viewer**:
72
-
73
- 1. **Timeline**: See each action (click, navigate, assertion) with timing
74
- 2. **Snapshots**: Hover over timeline to see DOM state at that moment
75
- 3. **Network Tab**: Inspect all API calls, headers, payloads, timing
76
- 4. **Console Tab**: View console.log/error messages
77
- 5. **Source Tab**: See test code with execution markers
78
- 6. **Metadata**: Browser, OS, test duration, screenshots
79
-
80
- **Why This Works**:
81
-
82
- - `on-first-retry` avoids capturing traces for flaky passes (saves storage)
83
- - Screenshots + video give visual context without trace overhead
84
- - Interactive timeline makes timing issues obvious (race conditions, slow API)
85
-
86
- ---
87
-
88
- ### Example 2: HAR File Recording for Network Debugging
89
-
90
- **Context**: Capture all network activity for reproducible API debugging
91
-
92
- **Implementation**:
93
-
94
- ```typescript
95
- // tests/e2e/checkout-with-har.spec.ts
96
- import { test, expect } from '@playwright/test';
97
- import path from 'path';
98
-
99
- test.describe('Checkout Flow with HAR Recording', () => {
100
- test('should complete payment with full network capture', async ({ page, context }) => {
101
- // Start HAR recording BEFORE navigation
102
- await context.routeFromHAR(path.join(__dirname, '../fixtures/checkout.har'), {
103
- url: '**/api/**', // Only capture API calls
104
- update: true, // Update HAR if file exists
105
- });
106
-
107
- await page.goto('/checkout');
108
-
109
- // Interact with page
110
- await page.getByTestId('payment-method').selectOption('credit-card');
111
- await page.getByTestId('card-number').fill('4242424242424242');
112
- await page.getByTestId('submit-payment').click();
113
-
114
- // Wait for payment confirmation
115
- await expect(page.getByTestId('success-message')).toBeVisible();
116
-
117
- // HAR file saved to fixtures/checkout.har
118
- // Contains all network requests/responses for replay
119
- });
120
- });
121
- ```
122
-
123
- **Using HAR for Deterministic Mocking**:
124
-
125
- ```typescript
126
- // tests/e2e/checkout-replay-har.spec.ts
127
- import { test, expect } from '@playwright/test';
128
- import path from 'path';
129
-
130
- test('should replay checkout flow from HAR', async ({ page, context }) => {
131
- // Replay network from HAR (no real API calls)
132
- await context.routeFromHAR(path.join(__dirname, '../fixtures/checkout.har'), {
133
- url: '**/api/**',
134
- update: false, // Read-only mode
135
- });
136
-
137
- await page.goto('/checkout');
138
-
139
- // Same test, but network responses come from HAR file
140
- await page.getByTestId('payment-method').selectOption('credit-card');
141
- await page.getByTestId('card-number').fill('4242424242424242');
142
- await page.getByTestId('submit-payment').click();
143
-
144
- await expect(page.getByTestId('success-message')).toBeVisible();
145
- });
146
- ```
147
-
148
- **Key Points**:
149
-
150
- - **`update: true`** records new HAR or updates existing (for flaky API debugging)
151
- - **`update: false`** replays from HAR (deterministic, no real API)
152
- - Filter by URL pattern (`**/api/**`) to avoid capturing static assets
153
- - HAR files are human-readable JSON (easy to inspect/modify)
154
-
155
- **When to Use HAR**:
156
-
157
- - Debugging flaky tests caused by API timing/responses
158
- - Creating deterministic mocks for integration tests
159
- - Analyzing third-party API behavior (Stripe, Auth0)
160
- - Reproducing production issues locally (record HAR in staging)
161
-
162
- ---
163
-
164
- ### Example 3: Custom Artifact Capture (Console Logs + Network on Failure)
165
-
166
- **Context**: Capture additional debugging context automatically on test failure
167
-
168
- **Implementation**:
169
-
170
- ```typescript
171
- // playwright/support/fixtures/debug-fixture.ts
172
- import { test as base } from '@playwright/test';
173
- import fs from 'fs';
174
- import path from 'path';
175
-
176
- type DebugFixture = {
177
- captureDebugArtifacts: () => Promise<void>;
178
- };
179
-
180
- export const test = base.extend<DebugFixture>({
181
- captureDebugArtifacts: async ({ page }, use, testInfo) => {
182
- const consoleLogs: string[] = [];
183
- const networkRequests: Array<{ url: string; status: number; method: string }> = [];
184
-
185
- // Capture console messages
186
- page.on('console', (msg) => {
187
- consoleLogs.push(`[${msg.type()}] ${msg.text()}`);
188
- });
189
-
190
- // Capture network requests
191
- page.on('request', (request) => {
192
- networkRequests.push({
193
- url: request.url(),
194
- method: request.method(),
195
- status: 0, // Will be updated on response
196
- });
197
- });
198
-
199
- page.on('response', (response) => {
200
- const req = networkRequests.find((r) => r.url === response.url());
201
- if (req) req.status = response.status();
202
- });
203
-
204
- await use(async () => {
205
- // This function can be called manually in tests
206
- // But it also runs automatically on failure via afterEach
207
- });
208
-
209
- // After test completes, save artifacts if failed
210
- if (testInfo.status !== testInfo.expectedStatus) {
211
- const artifactDir = path.join(testInfo.outputDir, 'debug-artifacts');
212
- fs.mkdirSync(artifactDir, { recursive: true });
213
-
214
- // Save console logs
215
- fs.writeFileSync(path.join(artifactDir, 'console.log'), consoleLogs.join('\n'), 'utf-8');
216
-
217
- // Save network summary
218
- fs.writeFileSync(path.join(artifactDir, 'network.json'), JSON.stringify(networkRequests, null, 2), 'utf-8');
219
-
220
- console.log(`Debug artifacts saved to: ${artifactDir}`);
221
- }
222
- },
223
- });
224
- ```
225
-
226
- **Usage in Tests**:
227
-
228
- ```typescript
229
- // tests/e2e/payment-with-debug.spec.ts
230
- import { test, expect } from '../support/fixtures/debug-fixture';
231
-
232
- test('payment flow captures debug artifacts on failure', async ({ page, captureDebugArtifacts }) => {
233
- await page.goto('/checkout');
234
-
235
- // Test will automatically capture console + network on failure
236
- await page.getByTestId('submit-payment').click();
237
- await expect(page.getByTestId('success-message')).toBeVisible({ timeout: 5000 });
238
-
239
- // If this fails, console.log and network.json saved automatically
240
- });
241
- ```
242
-
243
- **CI Integration (GitHub Actions)**:
244
-
245
- ```yaml
246
- # .github/workflows/e2e.yml
247
- name: E2E Tests with Artifacts
248
- on: [push, pull_request]
249
-
250
- jobs:
251
- test:
252
- runs-on: ubuntu-latest
253
- steps:
254
- - uses: actions/checkout@v4
255
- - uses: actions/setup-node@v4
256
- with:
257
- node-version-file: '.nvmrc'
258
-
259
- - name: Install dependencies
260
- run: npm ci
261
-
262
- - name: Run Playwright tests
263
- run: npm run test:e2e
264
- continue-on-error: true # Capture artifacts even on failure
265
-
266
- - name: Upload test artifacts on failure
267
- if: failure()
268
- uses: actions/upload-artifact@v4
269
- with:
270
- name: playwright-artifacts
271
- path: |
272
- test-results/
273
- playwright-report/
274
- retention-days: 30
275
- ```
276
-
277
- **Key Points**:
278
-
279
- - Fixtures automatically capture context without polluting test code
280
- - Only saves artifacts on failure (storage-efficient)
281
- - CI uploads artifacts for post-mortem analysis
282
- - `continue-on-error: true` ensures artifact upload even when tests fail
283
-
284
- ---
285
-
286
- ### Example 4: Accessibility Debugging Integration (axe-core in Trace Viewer)
287
-
288
- **Context**: Catch accessibility regressions during visual debugging
289
-
290
- **Implementation**:
291
-
292
- ```typescript
293
- // playwright/support/fixtures/a11y-fixture.ts
294
- import { test as base } from '@playwright/test';
295
- import AxeBuilder from '@axe-core/playwright';
296
-
297
- type A11yFixture = {
298
- checkA11y: () => Promise<void>;
299
- };
300
-
301
- export const test = base.extend<A11yFixture>({
302
- checkA11y: async ({ page }, use) => {
303
- await use(async () => {
304
- // Run axe accessibility scan
305
- const results = await new AxeBuilder({ page }).analyze();
306
-
307
- // Attach results to test report (visible in trace viewer)
308
- if (results.violations.length > 0) {
309
- console.log(`Found ${results.violations.length} accessibility violations:`);
310
- results.violations.forEach((violation) => {
311
- console.log(`- [${violation.impact}] ${violation.id}: ${violation.description}`);
312
- console.log(` Help: ${violation.helpUrl}`);
313
- });
314
-
315
- throw new Error(`Accessibility violations found: ${results.violations.length}`);
316
- }
317
- });
318
- },
319
- });
320
- ```
321
-
322
- **Usage with Visual Debugging**:
323
-
324
- ```typescript
325
- // tests/e2e/checkout-a11y.spec.ts
326
- import { test, expect } from '../support/fixtures/a11y-fixture';
327
-
328
- test('checkout page is accessible', async ({ page, checkA11y }) => {
329
- await page.goto('/checkout');
330
-
331
- // Verify page loaded
332
- await expect(page.getByRole('heading', { name: 'Checkout' })).toBeVisible();
333
-
334
- // Run accessibility check
335
- await checkA11y();
336
-
337
- // If violations found, test fails and trace captures:
338
- // - Screenshot showing the problematic element
339
- // - Console log with violation details
340
- // - Network tab showing any failed resource loads
341
- });
342
- ```
343
-
344
- **Trace Viewer Benefits**:
345
-
346
- - **Screenshot shows visual context** of accessibility issue (contrast, missing labels)
347
- - **Console tab shows axe-core violations** with impact level and helpUrl
348
- - **DOM snapshot** allows inspecting ARIA attributes at failure point
349
- - **Network tab** reveals if icon fonts or images failed (common a11y issue)
350
-
351
- **Cypress Equivalent**:
352
-
353
- ```javascript
354
- // cypress/support/commands.ts
355
- import 'cypress-axe';
356
-
357
- Cypress.Commands.add('checkA11y', (context = null, options = {}) => {
358
- cy.injectAxe(); // Inject axe-core
359
- cy.checkA11y(context, options, (violations) => {
360
- if (violations.length) {
361
- cy.task('log', `Found ${violations.length} accessibility violations`);
362
- violations.forEach((violation) => {
363
- cy.task('log', `- [${violation.impact}] ${violation.id}: ${violation.description}`);
364
- });
365
- }
366
- });
367
- });
368
-
369
- // tests/e2e/checkout-a11y.cy.ts
370
- describe('Checkout Accessibility', () => {
371
- it('should have no a11y violations', () => {
372
- cy.visit('/checkout');
373
- cy.injectAxe();
374
- cy.checkA11y();
375
- // On failure, Cypress UI shows:
376
- // - Screenshot of page
377
- // - Console log with violation details
378
- // - Network tab with API calls
379
- });
380
- });
381
- ```
382
-
383
- **Key Points**:
384
-
385
- - Accessibility checks integrate seamlessly with visual debugging
386
- - Violations are captured in trace viewer/Cypress UI automatically
387
- - Provides actionable links (helpUrl) to fix issues
388
- - Screenshots show visual context (contrast, layout)
389
-
390
- ---
391
-
392
- ### Example 5: Time-Travel Debugging Workflow (Playwright Inspector)
393
-
394
- **Context**: Debug tests interactively with step-through execution
395
-
396
- **Implementation**:
397
-
398
- ```typescript
399
- // tests/e2e/checkout-debug.spec.ts
400
- import { test, expect } from '@playwright/test';
401
-
402
- test('debug checkout flow step-by-step', async ({ page }) => {
403
- // Set breakpoint by uncommenting this:
404
- // await page.pause()
405
-
406
- await page.goto('/checkout');
407
-
408
- // Use Playwright Inspector to:
409
- // 1. Step through each action
410
- // 2. Inspect DOM at each step
411
- // 3. View network calls per action
412
- // 4. Take screenshots manually
413
-
414
- await page.getByTestId('payment-method').selectOption('credit-card');
415
-
416
- // Pause here to inspect form state
417
- // await page.pause()
418
-
419
- await page.getByTestId('card-number').fill('4242424242424242');
420
- await page.getByTestId('submit-payment').click();
421
-
422
- await expect(page.getByTestId('success-message')).toBeVisible();
423
- });
424
- ```
425
-
426
- **Running with Inspector**:
427
-
428
- ```bash
429
- # Open Playwright Inspector (GUI debugger)
430
- npx playwright test --debug
431
-
432
- # Or use headed mode with slowMo
433
- npx playwright test --headed --slow-mo=1000
434
-
435
- # Debug specific test
436
- npx playwright test checkout-debug.spec.ts --debug
437
-
438
- # Set environment variable for persistent debugging
439
- PWDEBUG=1 npx playwright test
440
- ```
441
-
442
- **Inspector Features**:
443
-
444
- 1. **Step-through execution**: Click "Next" to execute one action at a time
445
- 2. **DOM inspector**: Hover over elements to see selectors
446
- 3. **Network panel**: See API calls with timing
447
- 4. **Console panel**: View console.log output
448
- 5. **Pick locator**: Click element in browser to get selector
449
- 6. **Record mode**: Record interactions to generate test code
450
-
451
- **Common Debugging Patterns**:
452
-
453
- ```typescript
454
- // Pattern 1: Debug selector issues
455
- test('debug selector', async ({ page }) => {
456
- await page.goto('/dashboard');
457
- await page.pause(); // Inspector opens
458
-
459
- // In Inspector console, test selectors:
460
- // page.getByTestId('user-menu') ✅
461
- // page.getByRole('button', { name: 'Profile' }) ✅
462
- // page.locator('.btn-primary') ❌ (fragile)
463
- });
464
-
465
- // Pattern 2: Debug timing issues
466
- test('debug network timing', async ({ page }) => {
467
- await page.goto('/dashboard');
468
-
469
- // Set up network listener BEFORE interaction
470
- const responsePromise = page.waitForResponse('**/api/users');
471
- await page.getByTestId('load-users').click();
472
-
473
- await page.pause(); // Check network panel for timing
474
-
475
- const response = await responsePromise;
476
- expect(response.status()).toBe(200);
477
- });
478
-
479
- // Pattern 3: Debug state changes
480
- test('debug state mutation', async ({ page }) => {
481
- await page.goto('/cart');
482
-
483
- // Check initial state
484
- await expect(page.getByTestId('cart-count')).toHaveText('0');
485
-
486
- await page.pause(); // Inspect DOM
487
-
488
- await page.getByTestId('add-to-cart').click();
489
-
490
- await page.pause(); // Inspect DOM again (compare state)
491
-
492
- await expect(page.getByTestId('cart-count')).toHaveText('1');
493
- });
494
- ```
495
-
496
- **Key Points**:
497
-
498
- - `page.pause()` opens Inspector at that exact moment
499
- - Inspector shows DOM state, network activity, console at pause point
500
- - "Pick locator" feature helps find robust selectors
501
- - Record mode generates test code from manual interactions
502
-
503
- ---
504
-
505
- ## Visual Debugging Checklist
506
-
507
- Before deploying tests to CI, ensure:
508
-
509
- - [ ] **Artifact configuration**: `trace: 'on-first-retry'`, `screenshot: 'only-on-failure'`, `video: 'retain-on-failure'`
510
- - [ ] **CI artifact upload**: GitHub Actions/GitLab CI configured to upload `test-results/` and `playwright-report/`
511
- - [ ] **HAR recording**: Set up for flaky API tests (record once, replay deterministically)
512
- - [ ] **Custom debug fixtures**: Console logs + network summary captured on failure
513
- - [ ] **Accessibility integration**: axe-core violations visible in trace viewer
514
- - [ ] **Trace viewer docs**: README explains how to open traces locally (`npx playwright show-trace`)
515
- - [ ] **Inspector workflow**: Document `--debug` flag for interactive debugging
516
- - [ ] **Storage optimization**: Artifacts deleted after 30 days (CI retention policy)
517
-
518
- ## Integration Points
519
-
520
- - **Used in workflows**: `*framework` (initial setup), `*ci` (artifact upload), `*test-review` (validate artifact config)
521
- - **Related fragments**: `playwright-config.md` (artifact configuration), `ci-burn-in.md` (CI artifact upload), `test-quality.md` (debugging best practices)
522
- - **Tools**: Playwright Trace Viewer, Cypress Debug UI, axe-core, HAR files
523
-
524
- _Source: Playwright official docs, Murat testing philosophy (visual debugging manifesto), SEON production debugging patterns_
@@ -1,22 +0,0 @@
1
- id,name,description,tags,fragment_file
2
- fixture-architecture,Fixture Architecture,"Composable fixture patterns (pure function → fixture → merge) and reuse rules","fixtures,architecture,playwright,cypress",knowledge/fixture-architecture.md
3
- network-first,Network-First Safeguards,"Intercept-before-navigate workflow, HAR capture, deterministic waits, edge mocking","network,stability,playwright,cypress",knowledge/network-first.md
4
- data-factories,Data Factories and API Setup,"Factories with overrides, API seeding, cleanup discipline","data,factories,setup,api",knowledge/data-factories.md
5
- component-tdd,Component TDD Loop,"Red→green→refactor workflow, provider isolation, accessibility assertions","component-testing,tdd,ui",knowledge/component-tdd.md
6
- playwright-config,Playwright Config Guardrails,"Environment switching, timeout standards, artifact outputs","playwright,config,env",knowledge/playwright-config.md
7
- ci-burn-in,CI and Burn-In Strategy,"Staged jobs, shard orchestration, burn-in loops, artifact policy","ci,automation,flakiness",knowledge/ci-burn-in.md
8
- selective-testing,Selective Test Execution,"Tag/grep usage, spec filters, diff-based runs, promotion rules","risk-based,selection,strategy",knowledge/selective-testing.md
9
- feature-flags,Feature Flag Governance,"Enum management, targeting helpers, cleanup, release checklists","feature-flags,governance,launchdarkly",knowledge/feature-flags.md
10
- contract-testing,Contract Testing Essentials,"Pact publishing, provider verification, resilience coverage","contract-testing,pact,api",knowledge/contract-testing.md
11
- email-auth,Email Authentication Testing,"Magic link extraction, state preservation, caching, negative flows","email-authentication,security,workflow",knowledge/email-auth.md
12
- error-handling,Error Handling Checks,"Scoped exception handling, retry validation, telemetry logging","resilience,error-handling,stability",knowledge/error-handling.md
13
- visual-debugging,Visual Debugging Toolkit,"Trace viewer usage, artifact expectations, accessibility integration","debugging,dx,tooling",knowledge/visual-debugging.md
14
- risk-governance,Risk Governance,"Scoring matrix, category ownership, gate decision rules","risk,governance,gates",knowledge/risk-governance.md
15
- probability-impact,Probability and Impact Scale,"Shared definitions for scoring matrix and gate thresholds","risk,scoring,scale",knowledge/probability-impact.md
16
- test-quality,Test Quality Definition of Done,"Execution limits, isolation rules, green criteria","quality,definition-of-done,tests",knowledge/test-quality.md
17
- nfr-criteria,NFR Review Criteria,"Security, performance, reliability, maintainability status definitions","nfr,assessment,quality",knowledge/nfr-criteria.md
18
- test-levels,Test Levels Framework,"Guidelines for choosing unit, integration, or end-to-end coverage","testing,levels,selection",knowledge/test-levels-framework.md
19
- test-priorities,Test Priorities Matrix,"P0–P3 criteria, coverage targets, execution ordering","testing,prioritization,risk",knowledge/test-priorities-matrix.md
20
- test-healing-patterns,Test Healing Patterns,"Common failure patterns and automated fixes","healing,debugging,patterns",knowledge/test-healing-patterns.md
21
- selector-resilience,Selector Resilience,"Robust selector strategies and debugging techniques","selectors,locators,debugging",knowledge/selector-resilience.md
22
- timing-debugging,Timing Debugging,"Race condition identification and deterministic wait fixes","timing,async,debugging",knowledge/timing-debugging.md
@@ -1,110 +0,0 @@
1
- # Brainstorm Project - Workflow Instructions
2
-
3
- ```xml
4
- <critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.xml</critical>
5
- <critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
6
- <critical>Communicate all responses in {communication_language}</critical>
7
- <critical>This is a meta-workflow that orchestrates the CIS brainstorming workflow with project-specific context</critical>
8
-
9
- <workflow>
10
-
11
- <step n="1" goal="Validate workflow readiness" tag="workflow-status">
12
- <action>Check if {output_folder}/bmm-workflow-status.yaml exists</action>
13
-
14
- <check if="status file not found">
15
- <output>No workflow status file found. Brainstorming is optional - you can continue without status tracking.</output>
16
- <action>Set standalone_mode = true</action>
17
- </check>
18
-
19
- <check if="status file found">
20
- <action>Load the FULL file: {output_folder}/bmm-workflow-status.yaml</action>
21
- <action>Parse workflow_status section</action>
22
- <action>Check status of "brainstorm-project" workflow</action>
23
- <action>Get project_level from YAML metadata</action>
24
- <action>Find first non-completed workflow (next expected workflow)</action>
25
-
26
- <check if="brainstorm-project status is file path (already completed)">
27
- <output>⚠️ Brainstorming session already completed: {{brainstorm-project status}}</output>
28
- <ask>Re-running will create a new session. Continue? (y/n)</ask>
29
- <check if="n">
30
- <output>Exiting. Use workflow-status to see your next step.</output>
31
- <action>Exit workflow</action>
32
- </check>
33
- </check>
34
-
35
- <check if="brainstorm-project is not the next expected workflow (anything after brainstorm-project is completed already)">
36
- <output>⚠️ Next expected workflow: {{next_workflow}}. Brainstorming is out of sequence.</output>
37
- <ask>Continue with brainstorming anyway? (y/n)</ask>
38
- <check if="n">
39
- <output>Exiting. Run {{next_workflow}} instead.</output>
40
- <action>Exit workflow</action>
41
- </check>
42
- </check>
43
-
44
- <action>Set standalone_mode = false</action>
45
- </check>
46
- </step>
47
-
48
- <step n="2" goal="Load project brainstorming context">
49
- <action>Read the project context document from: {project_context}</action>
50
- <action>This context provides project-specific guidance including:
51
- - Focus areas for project ideation
52
- - Key considerations for software/product projects
53
- - Recommended techniques for project brainstorming
54
- - Output structure guidance
55
- </action>
56
- </step>
57
-
58
- <step n="3" goal="Invoke core brainstorming with project context">
59
- <action>Execute the CIS brainstorming workflow with project context</action>
60
- <invoke-workflow path="{core_brainstorming}" data="{project_context}">
61
- The CIS brainstorming workflow will:
62
- - Present interactive brainstorming techniques menu
63
- - Guide the user through selected ideation methods
64
- - Generate and capture brainstorming session results
65
- - Save output to: {output_folder}/brainstorming-session-results-{{date}}.md
66
- </invoke-workflow>
67
- </step>
68
-
69
- <step n="4" goal="Update status and complete" tag="workflow-status">
70
- <check if="standalone_mode != true">
71
- <action>Load the FULL file: {output_folder}/bmm-workflow-status.yaml</action>
72
- <action>Find workflow_status key "brainstorm-project"</action>
73
- <critical>ONLY write the file path as the status value - no other text, notes, or metadata</critical>
74
- <action>Update workflow_status["brainstorm-project"] = "{output_folder}/bmm-brainstorming-session-{{date}}.md"</action>
75
- <action>Save file, preserving ALL comments and structure including STATUS DEFINITIONS</action>
76
-
77
- <action>Find first non-completed workflow in workflow_status (next workflow to do)</action>
78
- <action>Determine next agent from path file based on next workflow</action>
79
- </check>
80
-
81
- <output>**✅ Brainstorming Session Complete, {user_name}!**
82
-
83
- **Session Results:**
84
-
85
- - Brainstorming results saved to: {output_folder}/bmm-brainstorming-session-{{date}}.md
86
-
87
- {{#if standalone_mode != true}}
88
- **Status Updated:**
89
-
90
- - Progress tracking updated
91
-
92
- **Next Steps:**
93
-
94
- - **Next required:** {{next_workflow}} ({{next_agent}} agent)
95
- - **Optional:** You can run other analysis workflows (research, product-brief) before proceeding
96
-
97
- Check status anytime with: `workflow-status`
98
- {{else}}
99
- **Next Steps:**
100
-
101
- Since no workflow is in progress:
102
-
103
- - Refer to the BMM workflow guide if unsure what to do next
104
- - Or run `workflow-init` to create a workflow path and get guided next steps
105
- {{/if}}
106
- </output>
107
- </step>
108
-
109
- </workflow>
110
- ```
@@ -1,25 +0,0 @@
1
- # Project Brainstorming Context
2
-
3
- This context guide provides project-specific considerations for brainstorming sessions focused on software and product development.
4
-
5
- ## Session Focus Areas
6
-
7
- When brainstorming for projects, consider exploring:
8
-
9
- - **User Problems and Pain Points** - What challenges do users face?
10
- - **Feature Ideas and Capabilities** - What could the product do?
11
- - **Technical Approaches** - How might we build it?
12
- - **User Experience** - How will users interact with it?
13
- - **Business Model and Value** - How does it create value?
14
- - **Market Differentiation** - What makes it unique?
15
- - **Technical Risks and Challenges** - What could go wrong?
16
- - **Success Metrics** - How will we measure success?
17
-
18
- ## Integration with Project Workflow
19
-
20
- Brainstorming sessions typically feed into:
21
-
22
- - **Product Briefs** - Initial product vision and strategy
23
- - **PRDs** - Detailed requirements documents
24
- - **Technical Specifications** - Architecture and implementation plans
25
- - **Research Activities** - Areas requiring further investigation