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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/.claude/commands/bmad/bmm/agents/analyst.md +67 -0
  2. package/.claude/commands/bmad/bmm/agents/architect.md +72 -0
  3. package/.claude/commands/bmad/bmm/agents/dev.md +69 -0
  4. package/.claude/commands/bmad/bmm/agents/paige.md +82 -0
  5. package/.claude/commands/bmad/bmm/agents/pm.md +76 -0
  6. package/.claude/commands/bmad/bmm/agents/sm.md +85 -0
  7. package/.claude/commands/bmad/bmm/agents/tea.md +72 -0
  8. package/.claude/commands/bmad/bmm/agents/tech-writer.md +82 -0
  9. package/.claude/commands/bmad/bmm/agents/ux-designer.md +71 -0
  10. package/.claude/commands/bmad/bmm/workflows/README.md +132 -0
  11. package/.claude/commands/bmad/bmm/workflows/architecture.md +15 -0
  12. package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +15 -0
  13. package/.claude/commands/bmad/bmm/workflows/code-review.md +15 -0
  14. package/.claude/commands/bmad/bmm/workflows/correct-course.md +15 -0
  15. package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +15 -0
  16. package/.claude/commands/bmad/bmm/workflows/create-story.md +15 -0
  17. package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +15 -0
  18. package/.claude/commands/bmad/bmm/workflows/dev-story.md +15 -0
  19. package/.claude/commands/bmad/bmm/workflows/document-project.md +15 -0
  20. package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +15 -0
  21. package/.claude/commands/bmad/bmm/workflows/narrative.md +15 -0
  22. package/.claude/commands/bmad/bmm/workflows/prd.md +15 -0
  23. package/.claude/commands/bmad/bmm/workflows/product-brief.md +15 -0
  24. package/.claude/commands/bmad/bmm/workflows/research.md +15 -0
  25. package/.claude/commands/bmad/bmm/workflows/retrospective.md +15 -0
  26. package/.claude/commands/bmad/bmm/workflows/solutioning-gate-check.md +15 -0
  27. package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +15 -0
  28. package/.claude/commands/bmad/bmm/workflows/story-context.md +15 -0
  29. package/.claude/commands/bmad/bmm/workflows/story-done.md +15 -0
  30. package/.claude/commands/bmad/bmm/workflows/story-ready.md +15 -0
  31. package/.claude/commands/bmad/bmm/workflows/tech-spec-sm.md +15 -0
  32. package/.claude/commands/bmad/bmm/workflows/tech-spec.md +15 -0
  33. package/.claude/commands/bmad/bmm/workflows/workflow-init.md +15 -0
  34. package/.claude/commands/bmad/bmm/workflows/workflow-status.md +15 -0
  35. package/.claude/commands/bmad/cis/agents/README.md +104 -0
  36. package/.claude/commands/bmad/cis/agents/brainstorming-coach.md +62 -0
  37. package/.claude/commands/bmad/cis/agents/creative-problem-solver.md +62 -0
  38. package/.claude/commands/bmad/cis/agents/design-thinking-coach.md +62 -0
  39. package/.claude/commands/bmad/cis/agents/innovation-strategist.md +62 -0
  40. package/.claude/commands/bmad/cis/agents/storyteller.md +59 -0
  41. package/.claude/commands/bmad/cis/workflows/README.md +37 -0
  42. package/.claude/commands/bmad/cis/workflows/design-thinking.md +15 -0
  43. package/.claude/commands/bmad/cis/workflows/innovation-strategy.md +15 -0
  44. package/.claude/commands/bmad/cis/workflows/problem-solving.md +15 -0
  45. package/.claude/commands/bmad/cis/workflows/storytelling.md +15 -0
  46. package/.claude/commands/bmad/core/workflows/README.md +10 -0
  47. package/.claude/settings.local.json +7 -42
  48. package/CHANGELOG.md +544 -0
  49. package/README.md +266 -101
  50. package/bmad/_cfg/agent-manifest.csv +13 -3
  51. package/bmad/_cfg/agents/bmm-dev.customize.yaml +42 -0
  52. package/bmad/_cfg/agents/bmm-paige.customize.yaml +42 -0
  53. package/bmad/_cfg/agents/bmm-pm.customize.yaml +42 -0
  54. package/bmad/_cfg/agents/bmm-sm.customize.yaml +42 -0
  55. package/bmad/_cfg/agents/bmm-tea.customize.yaml +42 -0
  56. package/bmad/_cfg/agents/bmm-tech-writer.customize.yaml +42 -0
  57. package/bmad/_cfg/agents/bmm-ux-designer.customize.yaml +42 -0
  58. package/bmad/_cfg/agents/cis-brainstorming-coach.customize.yaml +42 -0
  59. package/bmad/_cfg/agents/cis-creative-problem-solver.customize.yaml +42 -0
  60. package/bmad/_cfg/agents/cis-design-thinking-coach.customize.yaml +42 -0
  61. package/bmad/_cfg/agents/cis-innovation-strategist.customize.yaml +42 -0
  62. package/bmad/_cfg/agents/cis-storyteller.customize.yaml +42 -0
  63. package/bmad/_cfg/files-manifest.csv +267 -22
  64. package/bmad/_cfg/ides/claude-code.yaml +6 -0
  65. package/bmad/_cfg/manifest.yaml +5 -5
  66. package/bmad/_cfg/task-manifest.csv +5 -0
  67. package/bmad/_cfg/tool-manifest.csv +1 -0
  68. package/bmad/_cfg/workflow-manifest.csv +37 -2
  69. package/bmad/bmb/README.md +135 -73
  70. package/bmad/bmb/agents/bmad-builder.md.bak +70 -0
  71. package/bmad/bmb/config.yaml +2 -2
  72. package/bmad/bmb/workflows/audit-workflow/instructions.md +1 -1
  73. package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +3 -1
  74. package/bmad/bmb/workflows/create-agent/README.md +126 -243
  75. package/bmad/bmb/workflows/create-agent/instructions.md +25 -12
  76. package/bmad/bmb/workflows/create-module/README.md +163 -154
  77. package/bmad/bmb/workflows/create-module/workflow.yaml.bak +2 -0
  78. package/bmad/bmb/workflows/create-workflow/instructions.md +16 -8
  79. package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +158 -0
  80. package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +2 -0
  81. package/bmad/bmb/workflows/edit-agent/workflow.yaml.bak +33 -0
  82. package/bmad/bmb/workflows/edit-module/workflow.yaml.bak +34 -0
  83. package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +2 -0
  84. package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +2 -0
  85. package/bmad/bmb/workflows/redoc/workflow.yaml.bak +1 -0
  86. package/bmad/bmm/README.md +128 -0
  87. package/bmad/bmm/README.md.bak +169 -0
  88. package/bmad/bmm/agents/analyst.md +67 -0
  89. package/bmad/bmm/agents/analyst.md.bak +67 -0
  90. package/bmad/bmm/agents/architect.md +72 -0
  91. package/bmad/bmm/agents/architect.md.bak +73 -0
  92. package/bmad/bmm/agents/dev.md +69 -0
  93. package/bmad/bmm/agents/dev.md.bak +69 -0
  94. package/bmad/bmm/agents/paige.md.bak +82 -0
  95. package/bmad/bmm/agents/pm.md +76 -0
  96. package/bmad/bmm/agents/pm.md.bak +76 -0
  97. package/bmad/bmm/agents/sm.md +85 -0
  98. package/bmad/bmm/agents/sm.md.bak +85 -0
  99. package/bmad/bmm/agents/tea.md +72 -0
  100. package/bmad/bmm/agents/tea.md.bak +72 -0
  101. package/bmad/bmm/agents/tech-writer.md +82 -0
  102. package/bmad/bmm/agents/ux-designer.md +71 -0
  103. package/bmad/bmm/agents/ux-designer.md.bak +71 -0
  104. package/bmad/bmm/config.yaml +17 -0
  105. package/bmad/bmm/docs/README.md +235 -0
  106. package/bmad/bmm/docs/agents-guide.md +1057 -0
  107. package/bmad/bmm/docs/brownfield-guide.md +759 -0
  108. package/bmad/bmm/docs/enterprise-agentic-development.md +680 -0
  109. package/bmad/bmm/docs/faq.md +589 -0
  110. package/bmad/bmm/docs/glossary.md +321 -0
  111. package/bmad/bmm/docs/party-mode.md +224 -0
  112. package/bmad/bmm/docs/quick-spec-flow.md +652 -0
  113. package/{docs/BMad-Method-V6-Quick-Start.md → bmad/bmm/docs/quick-start.md} +72 -47
  114. package/bmad/bmm/docs/scale-adaptive-system.md +599 -0
  115. package/bmad/bmm/docs/troubleshooting.md +680 -0
  116. package/{src/modules/bmm/workflows/3-solutioning/architecture/README.md → bmad/bmm/docs/workflow-architecture-reference.md} +130 -77
  117. package/{src/modules/bmm/workflows/document-project/README.md → bmad/bmm/docs/workflow-document-project-reference.md} +45 -2
  118. package/bmad/bmm/docs/workflows-analysis.md +670 -0
  119. package/bmad/bmm/docs/workflows-implementation.md +1758 -0
  120. package/bmad/bmm/docs/workflows-planning.md +1086 -0
  121. package/bmad/bmm/docs/workflows-solutioning.md +726 -0
  122. package/bmad/bmm/tasks/daily-standup.xml +85 -0
  123. package/bmad/bmm/teams/team-fullstack.yaml +11 -0
  124. package/bmad/bmm/teams/team-gamedev.yaml +14 -0
  125. package/bmad/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  126. package/bmad/bmm/testarch/knowledge/component-tdd.md +486 -0
  127. package/bmad/bmm/testarch/knowledge/contract-testing.md +957 -0
  128. package/bmad/bmm/testarch/knowledge/data-factories.md +500 -0
  129. package/bmad/bmm/testarch/knowledge/email-auth.md +721 -0
  130. package/bmad/bmm/testarch/knowledge/error-handling.md +725 -0
  131. package/bmad/bmm/testarch/knowledge/feature-flags.md +750 -0
  132. package/bmad/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  133. package/bmad/bmm/testarch/knowledge/network-first.md +486 -0
  134. package/bmad/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  135. package/bmad/bmm/testarch/knowledge/playwright-config.md +730 -0
  136. package/bmad/bmm/testarch/knowledge/probability-impact.md +601 -0
  137. package/bmad/bmm/testarch/knowledge/risk-governance.md +615 -0
  138. package/bmad/bmm/testarch/knowledge/selective-testing.md +732 -0
  139. package/bmad/bmm/testarch/knowledge/selector-resilience.md +527 -0
  140. package/bmad/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  141. package/bmad/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  142. package/bmad/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  143. package/bmad/bmm/testarch/knowledge/test-quality.md +664 -0
  144. package/bmad/bmm/testarch/knowledge/timing-debugging.md +372 -0
  145. package/bmad/bmm/testarch/knowledge/visual-debugging.md +524 -0
  146. package/bmad/bmm/testarch/tea-index.csv +22 -0
  147. package/bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +110 -0
  148. package/bmad/bmm/workflows/1-analysis/brainstorm-project/project-context.md +25 -0
  149. package/bmad/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +26 -0
  150. package/bmad/bmm/workflows/1-analysis/domain-research/instructions.md +423 -0
  151. package/bmad/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  152. package/bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +36 -0
  153. package/bmad/bmm/workflows/1-analysis/product-brief/checklist.md +115 -0
  154. package/bmad/bmm/workflows/1-analysis/product-brief/instructions.md +524 -0
  155. package/bmad/bmm/workflows/1-analysis/product-brief/template.md +181 -0
  156. package/bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml +45 -0
  157. package/bmad/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  158. package/bmad/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  159. package/bmad/bmm/workflows/1-analysis/research/checklist.md +299 -0
  160. package/bmad/bmm/workflows/1-analysis/research/claude-code/injections.yaml +114 -0
  161. package/bmad/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +439 -0
  162. package/bmad/bmm/workflows/1-analysis/research/instructions-market.md +679 -0
  163. package/bmad/bmm/workflows/1-analysis/research/instructions-router.md +133 -0
  164. package/bmad/bmm/workflows/1-analysis/research/instructions-technical.md +538 -0
  165. package/bmad/bmm/workflows/1-analysis/research/template-deep-prompt.md +94 -0
  166. package/bmad/bmm/workflows/1-analysis/research/template-market.md +347 -0
  167. package/bmad/bmm/workflows/1-analysis/research/template-technical.md +245 -0
  168. package/bmad/bmm/workflows/1-analysis/research/workflow.yaml +44 -0
  169. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +310 -0
  170. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1319 -0
  171. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +145 -0
  172. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +64 -0
  173. package/bmad/bmm/workflows/2-plan-workflows/narrative/checklist.md +139 -0
  174. package/bmad/bmm/workflows/2-plan-workflows/narrative/instructions-narrative.md +608 -0
  175. package/bmad/bmm/workflows/2-plan-workflows/narrative/narrative-template.md +195 -0
  176. package/bmad/bmm/workflows/2-plan-workflows/narrative/workflow.yaml +29 -0
  177. package/bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +349 -0
  178. package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +395 -0
  179. package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +33 -0
  180. package/bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  181. package/bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +423 -0
  182. package/bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +237 -0
  183. package/bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  184. package/bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +46 -0
  185. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +214 -0
  186. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +58 -0
  187. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +200 -0
  188. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +451 -0
  189. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +1133 -0
  190. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +181 -0
  191. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +87 -0
  192. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +60 -0
  193. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml.bak +60 -0
  194. package/bmad/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +347 -0
  195. package/bmad/bmm/workflows/3-solutioning/architecture/architecture-template.md +103 -0
  196. package/bmad/bmm/workflows/3-solutioning/architecture/checklist.md +244 -0
  197. package/bmad/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +222 -0
  198. package/bmad/bmm/workflows/3-solutioning/architecture/instructions.md +715 -0
  199. package/bmad/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +13 -0
  200. package/bmad/bmm/workflows/3-solutioning/architecture/workflow.yaml +67 -0
  201. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +175 -0
  202. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +322 -0
  203. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +146 -0
  204. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +189 -0
  205. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +64 -0
  206. package/bmad/bmm/workflows/4-implementation/code-review/backlog_template.md +12 -0
  207. package/bmad/bmm/workflows/4-implementation/code-review/checklist.md +22 -0
  208. package/bmad/bmm/workflows/4-implementation/code-review/instructions.md +420 -0
  209. package/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +74 -0
  210. package/bmad/bmm/workflows/4-implementation/correct-course/checklist.md +279 -0
  211. package/bmad/bmm/workflows/4-implementation/correct-course/instructions.md +201 -0
  212. package/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +43 -0
  213. package/bmad/bmm/workflows/4-implementation/create-story/checklist.md +240 -0
  214. package/bmad/bmm/workflows/4-implementation/create-story/instructions.md +283 -0
  215. package/bmad/bmm/workflows/4-implementation/create-story/template.md +51 -0
  216. package/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +74 -0
  217. package/bmad/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +367 -0
  218. package/bmad/bmm/workflows/4-implementation/dev-story/checklist.md +38 -0
  219. package/bmad/bmm/workflows/4-implementation/dev-story/instructions.md +262 -0
  220. package/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +26 -0
  221. package/bmad/bmm/workflows/4-implementation/epic-tech-context/checklist.md +17 -0
  222. package/bmad/bmm/workflows/4-implementation/epic-tech-context/instructions.md +189 -0
  223. package/bmad/bmm/workflows/4-implementation/epic-tech-context/template.md +76 -0
  224. package/bmad/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +58 -0
  225. package/bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1460 -0
  226. package/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +71 -0
  227. package/bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  228. package/bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +238 -0
  229. package/bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  230. package/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +47 -0
  231. package/bmad/bmm/workflows/4-implementation/story-context/checklist.md +16 -0
  232. package/bmad/bmm/workflows/4-implementation/story-context/context-template.xml +34 -0
  233. package/bmad/bmm/workflows/4-implementation/story-context/instructions.md +234 -0
  234. package/bmad/bmm/workflows/4-implementation/story-context/workflow.yaml +57 -0
  235. package/bmad/bmm/workflows/4-implementation/story-done/instructions.md +111 -0
  236. package/bmad/bmm/workflows/4-implementation/story-done/workflow.yaml +25 -0
  237. package/bmad/bmm/workflows/4-implementation/story-ready/instructions.md +117 -0
  238. package/bmad/bmm/workflows/4-implementation/story-ready/workflow.yaml +25 -0
  239. package/bmad/bmm/workflows/document-project/checklist.md +245 -0
  240. package/bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  241. package/bmad/bmm/workflows/document-project/instructions.md +222 -0
  242. package/bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  243. package/bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
  244. package/bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  245. package/bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  246. package/bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  247. package/bmad/bmm/workflows/document-project/workflow.yaml +34 -0
  248. package/bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  249. package/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  250. package/bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  251. package/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  252. package/bmad/bmm/workflows/techdoc/documentation-standards.md +239 -0
  253. package/bmad/bmm/workflows/techdoc/documentation-standards.md.bak +238 -0
  254. package/bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  255. package/bmad/bmm/workflows/testarch/atdd/checklist.md +373 -0
  256. package/bmad/bmm/workflows/testarch/atdd/instructions.md +785 -0
  257. package/bmad/bmm/workflows/testarch/atdd/workflow.yaml +52 -0
  258. package/bmad/bmm/workflows/testarch/automate/checklist.md +580 -0
  259. package/bmad/bmm/workflows/testarch/automate/instructions.md +1303 -0
  260. package/bmad/bmm/workflows/testarch/automate/workflow.yaml +61 -0
  261. package/bmad/bmm/workflows/testarch/ci/checklist.md +246 -0
  262. package/bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +165 -0
  263. package/bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +128 -0
  264. package/bmad/bmm/workflows/testarch/ci/instructions.md +517 -0
  265. package/bmad/bmm/workflows/testarch/ci/workflow.yaml +53 -0
  266. package/bmad/bmm/workflows/testarch/framework/checklist.md +321 -0
  267. package/bmad/bmm/workflows/testarch/framework/instructions.md +455 -0
  268. package/bmad/bmm/workflows/testarch/framework/workflow.yaml +53 -0
  269. package/bmad/bmm/workflows/testarch/nfr-assess/checklist.md +405 -0
  270. package/bmad/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
  271. package/bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +443 -0
  272. package/bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +56 -0
  273. package/bmad/bmm/workflows/testarch/test-design/checklist.md +234 -0
  274. package/bmad/bmm/workflows/testarch/test-design/instructions.md +621 -0
  275. package/bmad/bmm/workflows/testarch/test-design/test-design-template.md +285 -0
  276. package/bmad/bmm/workflows/testarch/test-design/workflow.yaml +52 -0
  277. package/bmad/bmm/workflows/testarch/test-review/checklist.md +470 -0
  278. package/bmad/bmm/workflows/testarch/test-review/instructions.md +608 -0
  279. package/bmad/bmm/workflows/testarch/test-review/test-review-template.md +388 -0
  280. package/bmad/bmm/workflows/testarch/test-review/workflow.yaml +53 -0
  281. package/bmad/bmm/workflows/testarch/trace/checklist.md +654 -0
  282. package/bmad/bmm/workflows/testarch/trace/instructions.md +1045 -0
  283. package/bmad/bmm/workflows/testarch/trace/trace-template.md +673 -0
  284. package/bmad/bmm/workflows/testarch/trace/workflow.yaml +66 -0
  285. package/bmad/bmm/workflows/workflow-status/init/instructions.md +771 -0
  286. package/bmad/bmm/workflows/workflow-status/init/workflow.yaml +27 -0
  287. package/bmad/bmm/workflows/workflow-status/init/workflow.yaml.bak +27 -0
  288. package/bmad/bmm/workflows/workflow-status/instructions.md +386 -0
  289. package/bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +120 -0
  290. package/bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +108 -0
  291. package/bmad/bmm/workflows/workflow-status/paths/game-design.yaml +75 -0
  292. package/{src/modules/bmm/workflows/workflow-status/paths/brownfield-level-3.yaml → bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml} +33 -31
  293. package/{src/modules/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml → bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml} +31 -21
  294. package/{src/modules/bmm/workflows/workflow-status/paths/brownfield-level-1.yaml → bmad/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml} +18 -18
  295. package/{src/modules/bmm/workflows/workflow-status/paths/greenfield-level-1.yaml → bmad/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml} +16 -18
  296. package/bmad/bmm/workflows/workflow-status/project-levels.yaml +59 -0
  297. package/bmad/bmm/workflows/workflow-status/sample-level-3-workflow.yaml +49 -0
  298. package/bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +31 -0
  299. package/bmad/bmm/workflows/workflow-status/workflow.yaml +28 -0
  300. package/bmad/cis/README.md +153 -0
  301. package/bmad/cis/agents/README.md +104 -0
  302. package/bmad/cis/agents/brainstorming-coach.md +62 -0
  303. package/bmad/cis/agents/brainstorming-coach.md.bak +62 -0
  304. package/bmad/cis/agents/creative-problem-solver.md +62 -0
  305. package/bmad/cis/agents/creative-problem-solver.md.bak +62 -0
  306. package/bmad/cis/agents/design-thinking-coach.md +62 -0
  307. package/bmad/cis/agents/design-thinking-coach.md.bak +62 -0
  308. package/bmad/cis/agents/innovation-strategist.md +62 -0
  309. package/bmad/cis/agents/innovation-strategist.md.bak +62 -0
  310. package/bmad/cis/agents/storyteller.md +59 -0
  311. package/bmad/cis/agents/storyteller.md.bak +59 -0
  312. package/bmad/{bmd → cis}/config.yaml +3 -3
  313. package/bmad/cis/teams/creative-squad.yaml +6 -0
  314. package/bmad/cis/workflows/README.md +139 -0
  315. package/bmad/cis/workflows/design-thinking/README.md +56 -0
  316. package/bmad/cis/workflows/design-thinking/design-methods.csv +31 -0
  317. package/bmad/cis/workflows/design-thinking/instructions.md +200 -0
  318. package/bmad/cis/workflows/design-thinking/template.md +111 -0
  319. package/bmad/cis/workflows/design-thinking/workflow.yaml +32 -0
  320. package/bmad/cis/workflows/innovation-strategy/README.md +56 -0
  321. package/bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +31 -0
  322. package/bmad/cis/workflows/innovation-strategy/instructions.md +274 -0
  323. package/bmad/cis/workflows/innovation-strategy/template.md +189 -0
  324. package/bmad/cis/workflows/innovation-strategy/workflow.yaml +32 -0
  325. package/bmad/cis/workflows/problem-solving/README.md +56 -0
  326. package/bmad/cis/workflows/problem-solving/instructions.md +250 -0
  327. package/bmad/cis/workflows/problem-solving/solving-methods.csv +31 -0
  328. package/bmad/cis/workflows/problem-solving/template.md +165 -0
  329. package/bmad/cis/workflows/problem-solving/workflow.yaml +32 -0
  330. package/bmad/cis/workflows/storytelling/README.md +58 -0
  331. package/bmad/cis/workflows/storytelling/instructions.md +291 -0
  332. package/bmad/cis/workflows/storytelling/story-types.csv +26 -0
  333. package/bmad/cis/workflows/storytelling/template.md +113 -0
  334. package/bmad/cis/workflows/storytelling/workflow.yaml +32 -0
  335. package/bmad/core/agents/bmad-master.md.bak +71 -0
  336. package/bmad/core/config.yaml +2 -2
  337. package/bmad/core/tasks/workflow.xml +1 -19
  338. package/bmad/core/tools/shard-doc.xml +8 -43
  339. package/docs/document-sharding-guide.md +447 -0
  340. package/docs/index.md +37 -41
  341. package/package.json +1 -1
  342. package/src/core/tasks/workflow.xml +1 -11
  343. package/src/core/tools/shard-doc.xml +8 -43
  344. package/src/modules/bmb/workflows/audit-workflow/instructions.md +1 -1
  345. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +158 -0
  346. package/src/modules/bmm/README.md +79 -95
  347. package/src/modules/bmm/agents/architect.agent.yaml +0 -4
  348. package/src/modules/bmm/agents/game-designer.agent.yaml +2 -2
  349. package/src/modules/bmm/agents/game-dev.agent.yaml +8 -12
  350. package/src/modules/bmm/agents/pm.agent.yaml +11 -1
  351. package/src/modules/bmm/agents/sm.agent.yaml +1 -1
  352. package/src/modules/bmm/agents/tech-writer.agent.yaml +69 -0
  353. package/src/modules/bmm/docs/README.md +235 -0
  354. package/src/modules/bmm/docs/agents-guide.md +1057 -0
  355. package/src/modules/bmm/docs/brownfield-guide.md +759 -0
  356. package/src/modules/bmm/docs/enterprise-agentic-development.md +680 -0
  357. package/src/modules/bmm/docs/faq.md +589 -0
  358. package/src/modules/bmm/docs/glossary.md +321 -0
  359. package/src/modules/bmm/docs/party-mode.md +224 -0
  360. package/src/modules/bmm/docs/quick-spec-flow.md +652 -0
  361. package/src/modules/bmm/docs/quick-start.md +366 -0
  362. package/src/modules/bmm/docs/scale-adaptive-system.md +599 -0
  363. package/src/modules/bmm/docs/troubleshooting.md +680 -0
  364. package/src/modules/bmm/docs/workflow-architecture-reference.md +371 -0
  365. package/src/modules/bmm/docs/workflow-document-project-reference.md +487 -0
  366. package/src/modules/bmm/docs/workflows-analysis.md +670 -0
  367. package/src/modules/bmm/docs/workflows-implementation.md +1758 -0
  368. package/src/modules/bmm/docs/workflows-planning.md +1086 -0
  369. package/src/modules/bmm/docs/workflows-solutioning.md +726 -0
  370. package/src/modules/bmm/tasks/daily-standup.xml +1 -1
  371. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +423 -0
  372. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  373. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +36 -0
  374. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +405 -213
  375. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +93 -77
  376. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +14 -0
  377. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  378. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  379. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +154 -57
  380. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +45 -29
  381. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +181 -104
  382. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +24 -32
  383. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +94 -46
  384. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +37 -1
  385. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +36 -1
  386. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +13 -0
  387. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1 -1
  388. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +22 -0
  389. package/src/modules/bmm/workflows/2-plan-workflows/gdd/instructions-gdd.md +18 -0
  390. package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +14 -0
  391. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +296 -63
  392. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +52 -0
  393. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +169 -0
  394. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +55 -0
  395. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  396. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +268 -291
  397. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +198 -23
  398. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  399. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +26 -8
  400. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +138 -31
  401. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +73 -4
  402. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +50 -17
  403. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +199 -26
  404. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +971 -109
  405. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +132 -6
  406. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +54 -20
  407. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +23 -2
  408. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +1 -1
  409. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +40 -32
  410. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +17 -4
  411. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +1 -0
  412. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +32 -6
  413. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +29 -0
  414. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +20 -0
  415. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +29 -0
  416. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +27 -0
  417. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +29 -0
  418. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +32 -6
  419. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1222 -241
  420. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +28 -0
  421. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +17 -0
  422. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +8 -0
  423. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +31 -1
  424. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +27 -0
  425. package/src/modules/bmm/workflows/techdoc/documentation-standards.md +239 -0
  426. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +623 -242
  427. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +120 -0
  428. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +108 -0
  429. package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-4.yaml → method-brownfield.yaml} +35 -26
  430. package/src/modules/bmm/workflows/workflow-status/paths/{greenfield-level-3.yaml → method-greenfield.yaml} +32 -17
  431. package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-0.yaml → quick-flow-brownfield.yaml} +23 -19
  432. package/src/modules/bmm/workflows/workflow-status/paths/{greenfield-level-0.yaml → quick-flow-greenfield.yaml} +18 -16
  433. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +4 -4
  434. package/tools/cli/commands/install.js +1 -1
  435. package/.claude/commands/bmad/bmd/agents/cli-chief.md +0 -108
  436. package/.claude/commands/bmad/bmd/agents/doc-keeper.md +0 -115
  437. package/.claude/commands/bmad/bmd/agents/release-chief.md +0 -109
  438. package/.claude/hooks/bmad-tts-injector.sh +0 -415
  439. package/.claude/hooks/bmad-voice-manager.sh +0 -511
  440. package/.claude/hooks/check-output-style.sh +0 -112
  441. package/.claude/hooks/download-extra-voices.sh +0 -244
  442. package/.claude/hooks/github-star-reminder.sh +0 -154
  443. package/.claude/hooks/language-manager.sh +0 -392
  444. package/.claude/hooks/learn-manager.sh +0 -475
  445. package/.claude/hooks/personality-manager.sh +0 -438
  446. package/.claude/hooks/piper-download-voices.sh +0 -165
  447. package/.claude/hooks/piper-installer.sh +0 -178
  448. package/.claude/hooks/piper-multispeaker-registry.sh +0 -165
  449. package/.claude/hooks/piper-voice-manager.sh +0 -293
  450. package/.claude/hooks/play-tts-elevenlabs.sh +0 -404
  451. package/.claude/hooks/play-tts-piper.sh +0 -338
  452. package/.claude/hooks/play-tts.sh +0 -100
  453. package/.claude/hooks/provider-commands.sh +0 -540
  454. package/.claude/hooks/provider-manager.sh +0 -298
  455. package/.claude/hooks/replay-target-audio.sh +0 -95
  456. package/.claude/hooks/sentiment-manager.sh +0 -201
  457. package/.claude/hooks/speed-manager.sh +0 -291
  458. package/.claude/hooks/voice-manager.sh +0 -594
  459. package/.claude/hooks/voices-config.sh +0 -70
  460. package/bmad/_cfg/agents/bmd-cli-chief.customize.yaml +0 -32
  461. package/bmad/bmb/workflows/create-agent/agent-architecture.md.bak +0 -412
  462. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md.bak +0 -759
  463. package/bmad/bmb/workflows/create-module/README.md.bak +0 -218
  464. package/bmad/bmb/workflows/create-module/checklist.md.bak +0 -245
  465. package/bmad/bmb/workflows/create-module/installer-templates/installer.js.bak +0 -231
  466. package/bmad/bmb/workflows/create-module/instructions.md.bak +0 -521
  467. package/bmad/bmb/workflows/create-module/module-structure.md.bak +0 -310
  468. package/bmad/bmd/README.md +0 -193
  469. package/bmad/bmd/README.md.bak +0 -193
  470. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  471. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md.bak +0 -102
  472. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  473. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md.bak +0 -68
  474. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  475. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md.bak +0 -123
  476. package/bmad/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  477. package/bmad/bmd/agents/cli-chief-sidecar/memories.md.bak +0 -53
  478. package/bmad/bmd/agents/cli-chief.md +0 -108
  479. package/bmad/bmd/agents/cli-chief.md.bak +0 -108
  480. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  481. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md.bak +0 -177
  482. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  483. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md.bak +0 -81
  484. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  485. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md.bak +0 -88
  486. package/bmad/bmd/agents/doc-keeper.md +0 -115
  487. package/bmad/bmd/agents/doc-keeper.md.bak +0 -115
  488. package/bmad/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  489. package/bmad/bmd/agents/release-chief-sidecar/instructions.md.bak +0 -164
  490. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  491. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md.bak +0 -82
  492. package/bmad/bmd/agents/release-chief-sidecar/memories.md +0 -73
  493. package/bmad/bmd/agents/release-chief-sidecar/memories.md.bak +0 -73
  494. package/bmad/bmd/agents/release-chief.md +0 -109
  495. package/bmad/bmd/agents/release-chief.md.bak +0 -109
  496. package/bmad/docs/codex-instructions.md +0 -21
  497. package/docs/bmad-brownfield-guide.md +0 -1260
  498. package/docs/conversion-report-shard-doc-2025-10-26.md +0 -188
  499. package/src/modules/bmm/tasks/retrospective.xml +0 -104
  500. package/src/modules/bmm/testarch/README.md +0 -311
  501. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/README.md +0 -38
  502. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/README.md +0 -113
  503. package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
  504. package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +0 -180
  505. package/src/modules/bmm/workflows/1-analysis/research/README.md +0 -454
  506. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
  507. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
  508. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
  509. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
  510. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
  511. package/src/modules/bmm/workflows/2-plan-workflows/README.md +0 -258
  512. package/src/modules/bmm/workflows/2-plan-workflows/gdd/README.md +0 -222
  513. package/src/modules/bmm/workflows/3-solutioning/README.md +0 -1
  514. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/README.md +0 -177
  515. package/src/modules/bmm/workflows/4-implementation/README.md +0 -221
  516. package/src/modules/bmm/workflows/4-implementation/code-review/README.md +0 -69
  517. package/src/modules/bmm/workflows/4-implementation/correct-course/README.md +0 -73
  518. package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -146
  519. package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -206
  520. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/README.md +0 -195
  521. package/src/modules/bmm/workflows/4-implementation/retrospective/README.md +0 -77
  522. package/src/modules/bmm/workflows/4-implementation/sprint-planning/README.md +0 -156
  523. package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
  524. package/src/modules/bmm/workflows/README.md +0 -215
  525. package/src/modules/bmm/workflows/document-project/templates/README.md +0 -38
  526. package/src/modules/bmm/workflows/testarch/README.md +0 -26
  527. package/src/modules/bmm/workflows/testarch/atdd/README.md +0 -672
  528. package/src/modules/bmm/workflows/testarch/automate/README.md +0 -869
  529. package/src/modules/bmm/workflows/testarch/ci/README.md +0 -493
  530. package/src/modules/bmm/workflows/testarch/framework/README.md +0 -340
  531. package/src/modules/bmm/workflows/testarch/nfr-assess/README.md +0 -469
  532. package/src/modules/bmm/workflows/testarch/test-design/README.md +0 -493
  533. package/src/modules/bmm/workflows/testarch/test-review/README.md +0 -775
  534. package/src/modules/bmm/workflows/testarch/trace/README.md +0 -802
  535. package/src/modules/bmm/workflows/workflow-status/README.md +0 -260
  536. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +0 -76
  537. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +0 -75
  538. /package/bmad/_cfg/agents/{bmd-doc-keeper.customize.yaml → bmm-analyst.customize.yaml} +0 -0
  539. /package/bmad/_cfg/agents/{bmd-release-chief.customize.yaml → bmm-architect.customize.yaml} +0 -0
  540. /package/{src/modules/bmm/workflows/2-plan-workflows/prd → bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories}/epics-template.md +0 -0
@@ -0,0 +1,486 @@
1
+ # Component Test-Driven Development Loop
2
+
3
+ ## Principle
4
+
5
+ Start every UI change with a failing component test (`cy.mount`, Playwright component test, or RTL `render`). Follow the Red-Green-Refactor cycle: write a failing test (red), make it pass with minimal code (green), then improve the implementation (refactor). Ship only after the cycle completes. Keep component tests under 100 lines, isolated with fresh providers per test, and validate accessibility alongside functionality.
6
+
7
+ ## Rationale
8
+
9
+ Component TDD provides immediate feedback during development. Failing tests (red) clarify requirements before writing code. Minimal implementations (green) prevent over-engineering. Refactoring with passing tests ensures changes don't break functionality. Isolated tests with fresh providers prevent state bleed in parallel runs. Accessibility assertions catch usability issues early. Visual debugging (Cypress runner, Storybook, Playwright trace viewer) accelerates diagnosis when tests fail.
10
+
11
+ ## Pattern Examples
12
+
13
+ ### Example 1: Red-Green-Refactor Loop
14
+
15
+ **Context**: When building a new component, start with a failing test that describes the desired behavior. Implement just enough to pass, then refactor for quality.
16
+
17
+ **Implementation**:
18
+
19
+ ```typescript
20
+ // Step 1: RED - Write failing test
21
+ // Button.cy.tsx (Cypress Component Test)
22
+ import { Button } from './Button';
23
+
24
+ describe('Button Component', () => {
25
+ it('should render with label', () => {
26
+ cy.mount(<Button label="Click Me" />);
27
+ cy.contains('Click Me').should('be.visible');
28
+ });
29
+
30
+ it('should call onClick when clicked', () => {
31
+ const onClickSpy = cy.stub().as('onClick');
32
+ cy.mount(<Button label="Submit" onClick={onClickSpy} />);
33
+
34
+ cy.get('button').click();
35
+ cy.get('@onClick').should('have.been.calledOnce');
36
+ });
37
+ });
38
+
39
+ // Run test: FAILS - Button component doesn't exist yet
40
+ // Error: "Cannot find module './Button'"
41
+
42
+ // Step 2: GREEN - Minimal implementation
43
+ // Button.tsx
44
+ type ButtonProps = {
45
+ label: string;
46
+ onClick?: () => void;
47
+ };
48
+
49
+ export const Button = ({ label, onClick }: ButtonProps) => {
50
+ return <button onClick={onClick}>{label}</button>;
51
+ };
52
+
53
+ // Run test: PASSES - Component renders and handles clicks
54
+
55
+ // Step 3: REFACTOR - Improve implementation
56
+ // Add disabled state, loading state, variants
57
+ type ButtonProps = {
58
+ label: string;
59
+ onClick?: () => void;
60
+ disabled?: boolean;
61
+ loading?: boolean;
62
+ variant?: 'primary' | 'secondary' | 'danger';
63
+ };
64
+
65
+ export const Button = ({
66
+ label,
67
+ onClick,
68
+ disabled = false,
69
+ loading = false,
70
+ variant = 'primary'
71
+ }: ButtonProps) => {
72
+ return (
73
+ <button
74
+ onClick={onClick}
75
+ disabled={disabled || loading}
76
+ className={`btn btn-${variant}`}
77
+ data-testid="button"
78
+ >
79
+ {loading ? <Spinner /> : label}
80
+ </button>
81
+ );
82
+ };
83
+
84
+ // Step 4: Expand tests for new features
85
+ describe('Button Component', () => {
86
+ it('should render with label', () => {
87
+ cy.mount(<Button label="Click Me" />);
88
+ cy.contains('Click Me').should('be.visible');
89
+ });
90
+
91
+ it('should call onClick when clicked', () => {
92
+ const onClickSpy = cy.stub().as('onClick');
93
+ cy.mount(<Button label="Submit" onClick={onClickSpy} />);
94
+
95
+ cy.get('button').click();
96
+ cy.get('@onClick').should('have.been.calledOnce');
97
+ });
98
+
99
+ it('should be disabled when disabled prop is true', () => {
100
+ cy.mount(<Button label="Submit" disabled={true} />);
101
+ cy.get('button').should('be.disabled');
102
+ });
103
+
104
+ it('should show spinner when loading', () => {
105
+ cy.mount(<Button label="Submit" loading={true} />);
106
+ cy.get('[data-testid="spinner"]').should('be.visible');
107
+ cy.get('button').should('be.disabled');
108
+ });
109
+
110
+ it('should apply variant styles', () => {
111
+ cy.mount(<Button label="Delete" variant="danger" />);
112
+ cy.get('button').should('have.class', 'btn-danger');
113
+ });
114
+ });
115
+
116
+ // Run tests: ALL PASS - Refactored component still works
117
+
118
+ // Playwright Component Test equivalent
119
+ import { test, expect } from '@playwright/experimental-ct-react';
120
+ import { Button } from './Button';
121
+
122
+ test.describe('Button Component', () => {
123
+ test('should call onClick when clicked', async ({ mount }) => {
124
+ let clicked = false;
125
+ const component = await mount(
126
+ <Button label="Submit" onClick={() => { clicked = true; }} />
127
+ );
128
+
129
+ await component.getByRole('button').click();
130
+ expect(clicked).toBe(true);
131
+ });
132
+
133
+ test('should be disabled when loading', async ({ mount }) => {
134
+ const component = await mount(<Button label="Submit" loading={true} />);
135
+ await expect(component.getByRole('button')).toBeDisabled();
136
+ await expect(component.getByTestId('spinner')).toBeVisible();
137
+ });
138
+ });
139
+ ```
140
+
141
+ **Key Points**:
142
+
143
+ - Red: Write failing test first - clarifies requirements before coding
144
+ - Green: Implement minimal code to pass - prevents over-engineering
145
+ - Refactor: Improve code quality while keeping tests green
146
+ - Expand: Add tests for new features after refactoring
147
+ - Cycle repeats: Each new feature starts with a failing test
148
+
149
+ ### Example 2: Provider Isolation Pattern
150
+
151
+ **Context**: When testing components that depend on context providers (React Query, Auth, Router), wrap them with required providers in each test to prevent state bleed between tests.
152
+
153
+ **Implementation**:
154
+
155
+ ```typescript
156
+ // test-utils/AllTheProviders.tsx
157
+ import { FC, ReactNode } from 'react';
158
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
159
+ import { BrowserRouter } from 'react-router-dom';
160
+ import { AuthProvider } from '../contexts/AuthContext';
161
+
162
+ type Props = {
163
+ children: ReactNode;
164
+ initialAuth?: { user: User | null; token: string | null };
165
+ };
166
+
167
+ export const AllTheProviders: FC<Props> = ({ children, initialAuth }) => {
168
+ // Create NEW QueryClient per test (prevent state bleed)
169
+ const queryClient = new QueryClient({
170
+ defaultOptions: {
171
+ queries: { retry: false },
172
+ mutations: { retry: false }
173
+ }
174
+ });
175
+
176
+ return (
177
+ <QueryClientProvider client={queryClient}>
178
+ <BrowserRouter>
179
+ <AuthProvider initialAuth={initialAuth}>
180
+ {children}
181
+ </AuthProvider>
182
+ </BrowserRouter>
183
+ </QueryClientProvider>
184
+ );
185
+ };
186
+
187
+ // Cypress custom mount command
188
+ // cypress/support/component.tsx
189
+ import { mount } from 'cypress/react18';
190
+ import { AllTheProviders } from '../../test-utils/AllTheProviders';
191
+
192
+ Cypress.Commands.add('wrappedMount', (component, options = {}) => {
193
+ const { initialAuth, ...mountOptions } = options;
194
+
195
+ return mount(
196
+ <AllTheProviders initialAuth={initialAuth}>
197
+ {component}
198
+ </AllTheProviders>,
199
+ mountOptions
200
+ );
201
+ });
202
+
203
+ // Usage in tests
204
+ // UserProfile.cy.tsx
205
+ import { UserProfile } from './UserProfile';
206
+
207
+ describe('UserProfile Component', () => {
208
+ it('should display user when authenticated', () => {
209
+ const user = { id: 1, name: 'John Doe', email: 'john@example.com' };
210
+
211
+ cy.wrappedMount(<UserProfile />, {
212
+ initialAuth: { user, token: 'fake-token' }
213
+ });
214
+
215
+ cy.contains('John Doe').should('be.visible');
216
+ cy.contains('john@example.com').should('be.visible');
217
+ });
218
+
219
+ it('should show login prompt when not authenticated', () => {
220
+ cy.wrappedMount(<UserProfile />, {
221
+ initialAuth: { user: null, token: null }
222
+ });
223
+
224
+ cy.contains('Please log in').should('be.visible');
225
+ });
226
+ });
227
+
228
+ // Playwright Component Test with providers
229
+ import { test, expect } from '@playwright/experimental-ct-react';
230
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
231
+ import { UserProfile } from './UserProfile';
232
+ import { AuthProvider } from '../contexts/AuthContext';
233
+
234
+ test.describe('UserProfile Component', () => {
235
+ test('should display user when authenticated', async ({ mount }) => {
236
+ const user = { id: 1, name: 'John Doe', email: 'john@example.com' };
237
+ const queryClient = new QueryClient();
238
+
239
+ const component = await mount(
240
+ <QueryClientProvider client={queryClient}>
241
+ <AuthProvider initialAuth={{ user, token: 'fake-token' }}>
242
+ <UserProfile />
243
+ </AuthProvider>
244
+ </QueryClientProvider>
245
+ );
246
+
247
+ await expect(component.getByText('John Doe')).toBeVisible();
248
+ await expect(component.getByText('john@example.com')).toBeVisible();
249
+ });
250
+ });
251
+ ```
252
+
253
+ **Key Points**:
254
+
255
+ - Create NEW providers per test (QueryClient, Router, Auth)
256
+ - Prevents state pollution between tests
257
+ - `initialAuth` prop allows testing different auth states
258
+ - Custom mount command (`wrappedMount`) reduces boilerplate
259
+ - Providers wrap component, not the entire test suite
260
+
261
+ ### Example 3: Accessibility Assertions
262
+
263
+ **Context**: When testing components, validate accessibility alongside functionality using axe-core, ARIA roles, labels, and keyboard navigation.
264
+
265
+ **Implementation**:
266
+
267
+ ```typescript
268
+ // Cypress with axe-core
269
+ // cypress/support/component.tsx
270
+ import 'cypress-axe';
271
+
272
+ // Form.cy.tsx
273
+ import { Form } from './Form';
274
+
275
+ describe('Form Component Accessibility', () => {
276
+ beforeEach(() => {
277
+ cy.wrappedMount(<Form />);
278
+ cy.injectAxe(); // Inject axe-core
279
+ });
280
+
281
+ it('should have no accessibility violations', () => {
282
+ cy.checkA11y(); // Run axe scan
283
+ });
284
+
285
+ it('should have proper ARIA labels', () => {
286
+ cy.get('input[name="email"]').should('have.attr', 'aria-label', 'Email address');
287
+ cy.get('input[name="password"]').should('have.attr', 'aria-label', 'Password');
288
+ cy.get('button[type="submit"]').should('have.attr', 'aria-label', 'Submit form');
289
+ });
290
+
291
+ it('should support keyboard navigation', () => {
292
+ // Tab through form fields
293
+ cy.get('input[name="email"]').focus().type('test@example.com');
294
+ cy.realPress('Tab'); // cypress-real-events plugin
295
+ cy.focused().should('have.attr', 'name', 'password');
296
+
297
+ cy.focused().type('password123');
298
+ cy.realPress('Tab');
299
+ cy.focused().should('have.attr', 'type', 'submit');
300
+
301
+ cy.realPress('Enter'); // Submit via keyboard
302
+ cy.contains('Form submitted').should('be.visible');
303
+ });
304
+
305
+ it('should announce errors to screen readers', () => {
306
+ cy.get('button[type="submit"]').click(); // Submit without data
307
+
308
+ // Error has role="alert" and aria-live="polite"
309
+ cy.get('[role="alert"]')
310
+ .should('be.visible')
311
+ .and('have.attr', 'aria-live', 'polite')
312
+ .and('contain', 'Email is required');
313
+ });
314
+
315
+ it('should have sufficient color contrast', () => {
316
+ cy.checkA11y(null, {
317
+ rules: {
318
+ 'color-contrast': { enabled: true }
319
+ }
320
+ });
321
+ });
322
+ });
323
+
324
+ // Playwright with axe-playwright
325
+ import { test, expect } from '@playwright/experimental-ct-react';
326
+ import AxeBuilder from '@axe-core/playwright';
327
+ import { Form } from './Form';
328
+
329
+ test.describe('Form Component Accessibility', () => {
330
+ test('should have no accessibility violations', async ({ mount, page }) => {
331
+ await mount(<Form />);
332
+
333
+ const accessibilityScanResults = await new AxeBuilder({ page })
334
+ .analyze();
335
+
336
+ expect(accessibilityScanResults.violations).toEqual([]);
337
+ });
338
+
339
+ test('should support keyboard navigation', async ({ mount, page }) => {
340
+ const component = await mount(<Form />);
341
+
342
+ await component.getByLabel('Email address').fill('test@example.com');
343
+ await page.keyboard.press('Tab');
344
+
345
+ await expect(component.getByLabel('Password')).toBeFocused();
346
+
347
+ await component.getByLabel('Password').fill('password123');
348
+ await page.keyboard.press('Tab');
349
+
350
+ await expect(component.getByRole('button', { name: 'Submit form' })).toBeFocused();
351
+
352
+ await page.keyboard.press('Enter');
353
+ await expect(component.getByText('Form submitted')).toBeVisible();
354
+ });
355
+ });
356
+ ```
357
+
358
+ **Key Points**:
359
+
360
+ - Use `cy.checkA11y()` (Cypress) or `AxeBuilder` (Playwright) for automated accessibility scanning
361
+ - Validate ARIA roles, labels, and live regions
362
+ - Test keyboard navigation (Tab, Enter, Escape)
363
+ - Ensure errors are announced to screen readers (`role="alert"`, `aria-live`)
364
+ - Check color contrast meets WCAG standards
365
+
366
+ ### Example 4: Visual Regression Test
367
+
368
+ **Context**: When testing components, capture screenshots to detect unintended visual changes. Use Playwright visual comparison or Cypress snapshot plugins.
369
+
370
+ **Implementation**:
371
+
372
+ ```typescript
373
+ // Playwright visual regression
374
+ import { test, expect } from '@playwright/experimental-ct-react';
375
+ import { Button } from './Button';
376
+
377
+ test.describe('Button Visual Regression', () => {
378
+ test('should match primary button snapshot', async ({ mount }) => {
379
+ const component = await mount(<Button label="Primary" variant="primary" />);
380
+
381
+ // Capture and compare screenshot
382
+ await expect(component).toHaveScreenshot('button-primary.png');
383
+ });
384
+
385
+ test('should match secondary button snapshot', async ({ mount }) => {
386
+ const component = await mount(<Button label="Secondary" variant="secondary" />);
387
+ await expect(component).toHaveScreenshot('button-secondary.png');
388
+ });
389
+
390
+ test('should match disabled button snapshot', async ({ mount }) => {
391
+ const component = await mount(<Button label="Disabled" disabled={true} />);
392
+ await expect(component).toHaveScreenshot('button-disabled.png');
393
+ });
394
+
395
+ test('should match loading button snapshot', async ({ mount }) => {
396
+ const component = await mount(<Button label="Loading" loading={true} />);
397
+ await expect(component).toHaveScreenshot('button-loading.png');
398
+ });
399
+ });
400
+
401
+ // Cypress visual regression with percy or snapshot plugins
402
+ import { Button } from './Button';
403
+
404
+ describe('Button Visual Regression', () => {
405
+ it('should match primary button snapshot', () => {
406
+ cy.wrappedMount(<Button label="Primary" variant="primary" />);
407
+
408
+ // Option 1: Percy (cloud-based visual testing)
409
+ cy.percySnapshot('Button - Primary');
410
+
411
+ // Option 2: cypress-plugin-snapshots (local snapshots)
412
+ cy.get('button').toMatchImageSnapshot({
413
+ name: 'button-primary',
414
+ threshold: 0.01 // 1% threshold for pixel differences
415
+ });
416
+ });
417
+
418
+ it('should match hover state', () => {
419
+ cy.wrappedMount(<Button label="Hover Me" />);
420
+ cy.get('button').realHover(); // cypress-real-events
421
+ cy.percySnapshot('Button - Hover State');
422
+ });
423
+
424
+ it('should match focus state', () => {
425
+ cy.wrappedMount(<Button label="Focus Me" />);
426
+ cy.get('button').focus();
427
+ cy.percySnapshot('Button - Focus State');
428
+ });
429
+ });
430
+
431
+ // Playwright configuration for visual regression
432
+ // playwright.config.ts
433
+ export default defineConfig({
434
+ expect: {
435
+ toHaveScreenshot: {
436
+ maxDiffPixels: 100, // Allow 100 pixels difference
437
+ threshold: 0.2 // 20% threshold
438
+ }
439
+ },
440
+ use: {
441
+ screenshot: 'only-on-failure'
442
+ }
443
+ });
444
+
445
+ // Update snapshots when intentional changes are made
446
+ // npx playwright test --update-snapshots
447
+ ```
448
+
449
+ **Key Points**:
450
+
451
+ - Playwright: Use `toHaveScreenshot()` for built-in visual comparison
452
+ - Cypress: Use Percy (cloud) or snapshot plugins (local) for visual testing
453
+ - Capture different states: default, hover, focus, disabled, loading
454
+ - Set threshold for acceptable pixel differences (avoid false positives)
455
+ - Update snapshots when visual changes are intentional
456
+ - Visual tests catch unintended CSS/layout regressions
457
+
458
+ ## Integration Points
459
+
460
+ - **Used in workflows**: `*atdd` (component test generation), `*automate` (component test expansion), `*framework` (component testing setup)
461
+ - **Related fragments**:
462
+ - `test-quality.md` - Keep component tests <100 lines, isolated, focused
463
+ - `fixture-architecture.md` - Provider wrapping patterns, custom mount commands
464
+ - `data-factories.md` - Factory functions for component props
465
+ - `test-levels-framework.md` - When to use component tests vs E2E tests
466
+
467
+ ## TDD Workflow Summary
468
+
469
+ **Red-Green-Refactor Cycle**:
470
+
471
+ 1. **Red**: Write failing test describing desired behavior
472
+ 2. **Green**: Implement minimal code to make test pass
473
+ 3. **Refactor**: Improve code quality, tests stay green
474
+ 4. **Repeat**: Each new feature starts with failing test
475
+
476
+ **Component Test Checklist**:
477
+
478
+ - [ ] Test renders with required props
479
+ - [ ] Test user interactions (click, type, submit)
480
+ - [ ] Test different states (loading, error, disabled)
481
+ - [ ] Test accessibility (ARIA, keyboard navigation)
482
+ - [ ] Test visual regression (snapshots)
483
+ - [ ] Isolate with fresh providers (no state bleed)
484
+ - [ ] Keep tests <100 lines (split by intent)
485
+
486
+ _Source: CCTDD repository, Murat component testing talks, Playwright/Cypress component testing docs._