bmad-enhanced 1.3.8 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (671) hide show
  1. package/README.md +115 -131
  2. package/_bmad/_config/agent-manifest.csv +23 -0
  3. package/_bmad/_config/agents/bmb-agent-builder.customize.yaml +41 -0
  4. package/_bmad/_config/agents/bmb-module-builder.customize.yaml +41 -0
  5. package/_bmad/_config/agents/bmb-workflow-builder.customize.yaml +41 -0
  6. package/_bmad/_config/agents/bmm-analyst.customize.yaml +41 -0
  7. package/_bmad/_config/agents/bmm-architect.customize.yaml +41 -0
  8. package/_bmad/_config/agents/bmm-dev.customize.yaml +41 -0
  9. package/_bmad/_config/agents/bmm-pm.customize.yaml +41 -0
  10. package/_bmad/_config/agents/bmm-quick-flow-solo-dev.customize.yaml +41 -0
  11. package/_bmad/_config/agents/bmm-quinn.customize.yaml +41 -0
  12. package/_bmad/_config/agents/bmm-sm.customize.yaml +41 -0
  13. package/_bmad/_config/agents/bmm-tech-writer.customize.yaml +41 -0
  14. package/_bmad/_config/agents/bmm-ux-designer.customize.yaml +41 -0
  15. package/_bmad/_config/agents/cis-brainstorming-coach.customize.yaml +41 -0
  16. package/_bmad/_config/agents/cis-creative-problem-solver.customize.yaml +41 -0
  17. package/_bmad/_config/agents/cis-design-thinking-coach.customize.yaml +41 -0
  18. package/_bmad/_config/agents/cis-innovation-strategist.customize.yaml +41 -0
  19. package/_bmad/_config/agents/cis-presentation-master.customize.yaml +41 -0
  20. package/_bmad/_config/agents/cis-storyteller.customize.yaml +41 -0
  21. package/_bmad/_config/agents/core-bmad-master.customize.yaml +41 -0
  22. package/_bmad/_config/agents/tea-tea.customize.yaml +41 -0
  23. package/_bmad/_config/bmad-help.csv +66 -0
  24. package/_bmad/_config/files-manifest.csv +602 -0
  25. package/_bmad/_config/manifest.yaml +42 -0
  26. package/_bmad/_config/task-manifest.csv +9 -0
  27. package/_bmad/_config/tool-manifest.csv +1 -0
  28. package/_bmad/_config/workflow-manifest.csv +41 -0
  29. package/_bmad/_memory/config.yaml +11 -0
  30. package/_bmad/_memory/storyteller-sidecar/stories-told.md +7 -0
  31. package/_bmad/_memory/storyteller-sidecar/story-preferences.md +7 -0
  32. package/_bmad/bmb/agents/agent-builder.md +59 -0
  33. package/_bmad/bmb/agents/module-builder.md +60 -0
  34. package/_bmad/bmb/agents/workflow-builder.md +61 -0
  35. package/_bmad/bmb/config.yaml +12 -0
  36. package/_bmad/bmb/module-help.csv +13 -0
  37. package/_bmad/bmb/workflows/agent/data/agent-compilation.md +273 -0
  38. package/_bmad/bmb/workflows/agent/data/agent-menu-patterns.md +233 -0
  39. package/_bmad/bmb/workflows/agent/data/agent-metadata.md +208 -0
  40. package/_bmad/bmb/workflows/agent/data/brainstorm-context.md +146 -0
  41. package/_bmad/bmb/workflows/agent/data/communication-presets.csv +61 -0
  42. package/_bmad/bmb/workflows/agent/data/critical-actions.md +120 -0
  43. package/_bmad/bmb/workflows/agent/data/expert-agent-architecture.md +236 -0
  44. package/_bmad/bmb/workflows/agent/data/expert-agent-validation.md +174 -0
  45. package/_bmad/bmb/workflows/agent/data/module-agent-validation.md +126 -0
  46. package/_bmad/bmb/workflows/agent/data/persona-properties.md +266 -0
  47. package/_bmad/bmb/workflows/agent/data/principles-crafting.md +292 -0
  48. package/_bmad/bmb/workflows/agent/data/reference/module-examples/architect.md +68 -0
  49. package/_bmad/bmb/workflows/agent/data/simple-agent-architecture.md +204 -0
  50. package/_bmad/bmb/workflows/agent/data/simple-agent-validation.md +133 -0
  51. package/_bmad/bmb/workflows/agent/data/understanding-agent-types.md +222 -0
  52. package/_bmad/bmb/workflows/agent/steps-c/step-01-brainstorm.md +128 -0
  53. package/_bmad/bmb/workflows/agent/steps-c/step-02-discovery.md +170 -0
  54. package/_bmad/bmb/workflows/agent/steps-c/step-03-type-metadata.md +296 -0
  55. package/_bmad/bmb/workflows/agent/steps-c/step-04-persona.md +212 -0
  56. package/_bmad/bmb/workflows/agent/steps-c/step-05-commands-menu.md +178 -0
  57. package/_bmad/bmb/workflows/agent/steps-c/step-06-activation.md +279 -0
  58. package/_bmad/bmb/workflows/agent/steps-c/step-07a-build-simple.md +187 -0
  59. package/_bmad/bmb/workflows/agent/steps-c/step-07b-build-expert.md +201 -0
  60. package/_bmad/bmb/workflows/agent/steps-c/step-07c-build-module.md +258 -0
  61. package/_bmad/bmb/workflows/agent/steps-c/step-08-celebrate.md +249 -0
  62. package/_bmad/bmb/workflows/agent/steps-e/e-01-load-existing.md +221 -0
  63. package/_bmad/bmb/workflows/agent/steps-e/e-02-discover-edits.md +193 -0
  64. package/_bmad/bmb/workflows/agent/steps-e/e-03-placeholder.md +1 -0
  65. package/_bmad/bmb/workflows/agent/steps-e/e-04-type-metadata.md +124 -0
  66. package/_bmad/bmb/workflows/agent/steps-e/e-05-persona.md +134 -0
  67. package/_bmad/bmb/workflows/agent/steps-e/e-06-commands-menu.md +122 -0
  68. package/_bmad/bmb/workflows/agent/steps-e/e-07-activation.md +125 -0
  69. package/_bmad/bmb/workflows/agent/steps-e/e-08a-edit-simple.md +137 -0
  70. package/_bmad/bmb/workflows/agent/steps-e/e-08b-edit-expert.md +119 -0
  71. package/_bmad/bmb/workflows/agent/steps-e/e-08c-edit-module.md +123 -0
  72. package/_bmad/bmb/workflows/agent/steps-e/e-09-celebrate.md +155 -0
  73. package/_bmad/bmb/workflows/agent/steps-v/v-01-load-review.md +136 -0
  74. package/_bmad/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +116 -0
  75. package/_bmad/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +124 -0
  76. package/_bmad/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +145 -0
  77. package/_bmad/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +136 -0
  78. package/_bmad/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +136 -0
  79. package/_bmad/bmb/workflows/agent/steps-v/v-03-summary.md +104 -0
  80. package/_bmad/bmb/workflows/agent/templates/agent-plan.template.md +5 -0
  81. package/_bmad/bmb/workflows/agent/templates/expert-agent-template/expert-agent.template.md +77 -0
  82. package/_bmad/bmb/workflows/agent/templates/simple-agent.template.md +72 -0
  83. package/_bmad/bmb/workflows/agent/workflow.md +123 -0
  84. package/_bmad/bmb/workflows/module/data/agent-architecture.md +179 -0
  85. package/_bmad/bmb/workflows/module/data/agent-spec-template.md +79 -0
  86. package/_bmad/bmb/workflows/module/data/module-installer-standards.md +348 -0
  87. package/_bmad/bmb/workflows/module/data/module-standards.md +280 -0
  88. package/_bmad/bmb/workflows/module/data/module-yaml-conventions.md +392 -0
  89. package/_bmad/bmb/workflows/module/steps-b/step-01-welcome.md +147 -0
  90. package/_bmad/bmb/workflows/module/steps-b/step-02-spark.md +140 -0
  91. package/_bmad/bmb/workflows/module/steps-b/step-03-module-type.md +148 -0
  92. package/_bmad/bmb/workflows/module/steps-b/step-04-vision.md +82 -0
  93. package/_bmad/bmb/workflows/module/steps-b/step-05-identity.md +96 -0
  94. package/_bmad/bmb/workflows/module/steps-b/step-06-users.md +85 -0
  95. package/_bmad/bmb/workflows/module/steps-b/step-07-value.md +75 -0
  96. package/_bmad/bmb/workflows/module/steps-b/step-08-agents.md +96 -0
  97. package/_bmad/bmb/workflows/module/steps-b/step-09-workflows.md +82 -0
  98. package/_bmad/bmb/workflows/module/steps-b/step-10-tools.md +90 -0
  99. package/_bmad/bmb/workflows/module/steps-b/step-11-scenarios.md +83 -0
  100. package/_bmad/bmb/workflows/module/steps-b/step-12-creative.md +94 -0
  101. package/_bmad/bmb/workflows/module/steps-b/step-13-review.md +104 -0
  102. package/_bmad/bmb/workflows/module/steps-b/step-14-finalize.md +117 -0
  103. package/_bmad/bmb/workflows/module/steps-c/step-01-load-brief.md +178 -0
  104. package/_bmad/bmb/workflows/module/steps-c/step-01b-continue.md +83 -0
  105. package/_bmad/bmb/workflows/module/steps-c/step-02-structure.md +109 -0
  106. package/_bmad/bmb/workflows/module/steps-c/step-03-config.md +118 -0
  107. package/_bmad/bmb/workflows/module/steps-c/step-04-installer.md +160 -0
  108. package/_bmad/bmb/workflows/module/steps-c/step-05-agents.md +167 -0
  109. package/_bmad/bmb/workflows/module/steps-c/step-06-workflows.md +183 -0
  110. package/_bmad/bmb/workflows/module/steps-c/step-07-docs.md +402 -0
  111. package/_bmad/bmb/workflows/module/steps-c/step-08-complete.md +123 -0
  112. package/_bmad/bmb/workflows/module/steps-e/step-01-load-target.md +81 -0
  113. package/_bmad/bmb/workflows/module/steps-e/step-02-select-edit.md +77 -0
  114. package/_bmad/bmb/workflows/module/steps-e/step-03-apply-edit.md +77 -0
  115. package/_bmad/bmb/workflows/module/steps-e/step-04-review.md +80 -0
  116. package/_bmad/bmb/workflows/module/steps-e/step-05-confirm.md +75 -0
  117. package/_bmad/bmb/workflows/module/steps-v/step-01-load-target.md +96 -0
  118. package/_bmad/bmb/workflows/module/steps-v/step-02-file-structure.md +94 -0
  119. package/_bmad/bmb/workflows/module/steps-v/step-03-module-yaml.md +99 -0
  120. package/_bmad/bmb/workflows/module/steps-v/step-04-agent-specs.md +152 -0
  121. package/_bmad/bmb/workflows/module/steps-v/step-05-workflow-specs.md +152 -0
  122. package/_bmad/bmb/workflows/module/steps-v/step-06-documentation.md +143 -0
  123. package/_bmad/bmb/workflows/module/steps-v/step-07-installation.md +113 -0
  124. package/_bmad/bmb/workflows/module/steps-v/step-08-report.md +197 -0
  125. package/_bmad/bmb/workflows/module/templates/brief-template.md +154 -0
  126. package/_bmad/bmb/workflows/module/templates/workflow-spec-template.md +96 -0
  127. package/_bmad/bmb/workflows/module/workflow.md +100 -0
  128. package/_bmad/bmb/workflows/workflow/data/architecture.md +152 -0
  129. package/_bmad/bmb/workflows/workflow/data/common-workflow-tools.csv +19 -0
  130. package/_bmad/bmb/workflows/workflow/data/csv-data-file-standards.md +81 -0
  131. package/_bmad/bmb/workflows/workflow/data/frontmatter-standards.md +225 -0
  132. package/_bmad/bmb/workflows/workflow/data/input-discovery-standards.md +269 -0
  133. package/_bmad/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +50 -0
  134. package/_bmad/bmb/workflows/workflow/data/menu-handling-standards.md +167 -0
  135. package/_bmad/bmb/workflows/workflow/data/output-format-standards.md +188 -0
  136. package/_bmad/bmb/workflows/workflow/data/step-file-rules.md +235 -0
  137. package/_bmad/bmb/workflows/workflow/data/step-type-patterns.md +311 -0
  138. package/_bmad/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +386 -0
  139. package/_bmad/bmb/workflows/workflow/data/trimodal-workflow-structure.md +209 -0
  140. package/_bmad/bmb/workflows/workflow/data/workflow-chaining-standards.md +271 -0
  141. package/_bmad/bmb/workflows/workflow/data/workflow-examples.md +276 -0
  142. package/_bmad/bmb/workflows/workflow/data/workflow-type-criteria.md +172 -0
  143. package/_bmad/bmb/workflows/workflow/steps-c/step-00-conversion.md +262 -0
  144. package/_bmad/bmb/workflows/workflow/steps-c/step-01-discovery.md +194 -0
  145. package/_bmad/bmb/workflows/workflow/steps-c/step-01b-continuation.md +3 -0
  146. package/_bmad/bmb/workflows/workflow/steps-c/step-02-classification.md +269 -0
  147. package/_bmad/bmb/workflows/workflow/steps-c/step-03-requirements.md +282 -0
  148. package/_bmad/bmb/workflows/workflow/steps-c/step-04-tools.md +281 -0
  149. package/_bmad/bmb/workflows/workflow/steps-c/step-05-plan-review.md +242 -0
  150. package/_bmad/bmb/workflows/workflow/steps-c/step-06-design.md +329 -0
  151. package/_bmad/bmb/workflows/workflow/steps-c/step-07-foundation.md +238 -0
  152. package/_bmad/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +377 -0
  153. package/_bmad/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +350 -0
  154. package/_bmad/bmb/workflows/workflow/steps-c/step-10-confirmation.md +320 -0
  155. package/_bmad/bmb/workflows/workflow/steps-c/step-11-completion.md +191 -0
  156. package/_bmad/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +237 -0
  157. package/_bmad/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +248 -0
  158. package/_bmad/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +252 -0
  159. package/_bmad/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +275 -0
  160. package/_bmad/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +154 -0
  161. package/_bmad/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +190 -0
  162. package/_bmad/bmb/workflows/workflow/steps-e/step-e-07-complete.md +206 -0
  163. package/_bmad/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +109 -0
  164. package/_bmad/bmb/workflows/workflow/steps-v/step-01-validate.md +221 -0
  165. package/_bmad/bmb/workflows/workflow/steps-v/step-01b-structure.md +152 -0
  166. package/_bmad/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +199 -0
  167. package/_bmad/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +265 -0
  168. package/_bmad/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +164 -0
  169. package/_bmad/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +211 -0
  170. package/_bmad/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +200 -0
  171. package/_bmad/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +195 -0
  172. package/_bmad/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +209 -0
  173. package/_bmad/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +199 -0
  174. package/_bmad/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +179 -0
  175. package/_bmad/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +186 -0
  176. package/_bmad/bmb/workflows/workflow/steps-v/step-10-report-complete.md +154 -0
  177. package/_bmad/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +237 -0
  178. package/_bmad/bmb/workflows/workflow/templates/minimal-output-template.md +11 -0
  179. package/_bmad/bmb/workflows/workflow/templates/step-01-init-continuable-template.md +241 -0
  180. package/_bmad/bmb/workflows/workflow/templates/step-1b-template.md +223 -0
  181. package/_bmad/bmb/workflows/workflow/templates/step-template.md +290 -0
  182. package/_bmad/bmb/workflows/workflow/templates/workflow-template.md +102 -0
  183. package/_bmad/bmb/workflows/workflow/workflow.md +109 -0
  184. package/_bmad/bmm/agents/analyst.md +76 -0
  185. package/_bmad/bmm/agents/architect.md +58 -0
  186. package/_bmad/bmm/agents/dev.md +69 -0
  187. package/_bmad/bmm/agents/pm.md +72 -0
  188. package/_bmad/bmm/agents/qa.md +92 -0
  189. package/_bmad/bmm/agents/quick-flow-solo-dev.md +69 -0
  190. package/_bmad/bmm/agents/sm.md +70 -0
  191. package/_bmad/bmm/agents/tech-writer/tech-writer.md +70 -0
  192. package/_bmad/bmm/agents/ux-designer.md +57 -0
  193. package/_bmad/bmm/config.yaml +16 -0
  194. package/_bmad/bmm/data/project-context-template.md +26 -0
  195. package/_bmad/bmm/module-help.csv +32 -0
  196. package/_bmad/bmm/teams/default-party.csv +20 -0
  197. package/_bmad/bmm/teams/team-fullstack.yaml +12 -0
  198. package/_bmad/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  199. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  200. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  201. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  202. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  203. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  204. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  205. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
  206. package/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
  207. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  208. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  209. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  210. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  211. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  212. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  213. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  214. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  215. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
  216. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  217. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  218. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  219. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  220. package/_bmad/bmm/workflows/1-analysis/research/research.template.md +29 -0
  221. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  222. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  223. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  224. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  225. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
  226. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  227. package/_bmad/bmm/workflows/1-analysis/research/workflow.md +173 -0
  228. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +13 -0
  229. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  230. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  231. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
  232. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +153 -0
  233. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
  234. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
  235. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
  236. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
  237. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
  238. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
  239. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
  240. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
  241. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
  242. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
  243. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
  244. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
  245. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  246. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
  247. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
  248. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
  249. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +218 -0
  250. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
  251. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
  252. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
  253. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  254. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
  255. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
  256. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  257. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  258. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
  259. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
  260. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  261. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
  262. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
  263. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
  264. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/validation-report-prd-workflow.md +433 -0
  265. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow.md +150 -0
  266. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  267. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  268. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  269. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  270. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  271. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  272. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  273. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  274. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  275. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  276. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  277. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  278. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  279. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  280. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
  281. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  282. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
  283. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
  284. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
  285. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
  286. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
  287. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
  288. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +135 -0
  289. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  290. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
  291. package/_bmad/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  292. package/_bmad/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
  293. package/_bmad/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  294. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  295. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
  296. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  297. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
  298. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  299. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  300. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  301. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  302. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
  303. package/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
  304. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  305. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  306. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  307. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
  308. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  309. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
  310. package/_bmad/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  311. package/_bmad/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  312. package/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +50 -0
  313. package/_bmad/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  314. package/_bmad/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
  315. package/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +58 -0
  316. package/_bmad/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  317. package/_bmad/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
  318. package/_bmad/bmm/workflows/4-implementation/create-story/template.md +49 -0
  319. package/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +59 -0
  320. package/_bmad/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  321. package/_bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  322. package/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +25 -0
  323. package/_bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
  324. package/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +57 -0
  325. package/_bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  326. package/_bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
  327. package/_bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  328. package/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +53 -0
  329. package/_bmad/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
  330. package/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +35 -0
  331. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +176 -0
  332. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  333. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
  334. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  335. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  336. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +149 -0
  337. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
  338. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +192 -0
  339. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +145 -0
  340. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
  341. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +201 -0
  342. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  343. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  344. package/_bmad/bmm/workflows/document-project/checklist.md +245 -0
  345. package/_bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  346. package/_bmad/bmm/workflows/document-project/instructions.md +221 -0
  347. package/_bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  348. package/_bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
  349. package/_bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  350. package/_bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  351. package/_bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  352. package/_bmad/bmm/workflows/document-project/workflow.yaml +28 -0
  353. package/_bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  354. package/_bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  355. package/_bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  356. package/_bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  357. package/_bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
  358. package/_bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
  359. package/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
  360. package/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
  361. package/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +26 -0
  362. package/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
  363. package/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
  364. package/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +26 -0
  365. package/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
  366. package/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
  367. package/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +26 -0
  368. package/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
  369. package/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
  370. package/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +26 -0
  371. package/_bmad/bmm/workflows/qa/automate/checklist.md +33 -0
  372. package/_bmad/bmm/workflows/qa/automate/instructions.md +110 -0
  373. package/_bmad/bmm/workflows/qa/automate/workflow.yaml +47 -0
  374. package/_bmad/cis/agents/brainstorming-coach.md +61 -0
  375. package/_bmad/cis/agents/creative-problem-solver.md +61 -0
  376. package/_bmad/cis/agents/design-thinking-coach.md +61 -0
  377. package/_bmad/cis/agents/innovation-strategist.md +61 -0
  378. package/_bmad/cis/agents/presentation-master.md +67 -0
  379. package/_bmad/cis/agents/storyteller/storyteller.md +58 -0
  380. package/_bmad/cis/config.yaml +12 -0
  381. package/_bmad/cis/module-help.csv +6 -0
  382. package/_bmad/cis/teams/creative-squad.yaml +7 -0
  383. package/_bmad/cis/teams/default-party.csv +12 -0
  384. package/_bmad/cis/workflows/README.md +139 -0
  385. package/_bmad/cis/workflows/design-thinking/README.md +56 -0
  386. package/_bmad/cis/workflows/design-thinking/design-methods.csv +31 -0
  387. package/_bmad/cis/workflows/design-thinking/instructions.md +202 -0
  388. package/_bmad/cis/workflows/design-thinking/template.md +111 -0
  389. package/_bmad/cis/workflows/design-thinking/workflow.yaml +27 -0
  390. package/_bmad/cis/workflows/innovation-strategy/README.md +56 -0
  391. package/_bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +31 -0
  392. package/_bmad/cis/workflows/innovation-strategy/instructions.md +276 -0
  393. package/_bmad/cis/workflows/innovation-strategy/template.md +189 -0
  394. package/_bmad/cis/workflows/innovation-strategy/workflow.yaml +27 -0
  395. package/_bmad/cis/workflows/problem-solving/README.md +56 -0
  396. package/_bmad/cis/workflows/problem-solving/instructions.md +252 -0
  397. package/_bmad/cis/workflows/problem-solving/solving-methods.csv +31 -0
  398. package/_bmad/cis/workflows/problem-solving/template.md +165 -0
  399. package/_bmad/cis/workflows/problem-solving/workflow.yaml +27 -0
  400. package/_bmad/cis/workflows/storytelling/README.md +58 -0
  401. package/_bmad/cis/workflows/storytelling/instructions.md +293 -0
  402. package/_bmad/cis/workflows/storytelling/story-types.csv +26 -0
  403. package/_bmad/cis/workflows/storytelling/template.md +113 -0
  404. package/_bmad/cis/workflows/storytelling/workflow.yaml +27 -0
  405. package/_bmad/core/agents/bmad-master.md +56 -0
  406. package/_bmad/core/config.yaml +9 -0
  407. package/_bmad/core/module-help.csv +9 -0
  408. package/_bmad/core/resources/excalidraw/README.md +160 -0
  409. package/_bmad/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  410. package/_bmad/core/resources/excalidraw/library-loader.md +50 -0
  411. package/_bmad/core/resources/excalidraw/validate-json-instructions.md +79 -0
  412. package/_bmad/core/tasks/editorial-review-prose.xml +100 -0
  413. package/_bmad/core/tasks/editorial-review-structure.xml +209 -0
  414. package/_bmad/core/tasks/help.md +62 -0
  415. package/_bmad/core/tasks/index-docs.xml +65 -0
  416. package/_bmad/core/tasks/review-adversarial-general.xml +48 -0
  417. package/_bmad/core/tasks/shard-doc.xml +109 -0
  418. package/_bmad/core/tasks/workflow.xml +235 -0
  419. package/_bmad/core/workflows/advanced-elicitation/methods.csv +51 -0
  420. package/_bmad/core/workflows/advanced-elicitation/workflow.xml +117 -0
  421. package/_bmad/core/workflows/brainstorming/brain-methods.csv +62 -0
  422. package/_bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  423. package/_bmad/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  424. package/_bmad/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  425. package/_bmad/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  426. package/_bmad/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  427. package/_bmad/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  428. package/_bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  429. package/_bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  430. package/_bmad/core/workflows/brainstorming/template.md +15 -0
  431. package/_bmad/core/workflows/brainstorming/workflow.md +58 -0
  432. package/_bmad/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  433. package/_bmad/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  434. package/_bmad/core/workflows/party-mode/steps/step-03-graceful-exit.md +157 -0
  435. package/_bmad/core/workflows/party-mode/workflow.md +194 -0
  436. package/_bmad/tea/agents/tea.md +71 -0
  437. package/_bmad/tea/config.yaml +19 -0
  438. package/_bmad/tea/module-help.csv +10 -0
  439. package/_bmad/tea/teams/default-party.csv +2 -0
  440. package/_bmad/tea/testarch/knowledge/adr-quality-readiness-checklist.md +377 -0
  441. package/_bmad/tea/testarch/knowledge/api-request.md +442 -0
  442. package/_bmad/tea/testarch/knowledge/api-testing-patterns.md +851 -0
  443. package/_bmad/tea/testarch/knowledge/auth-session.md +548 -0
  444. package/_bmad/tea/testarch/knowledge/burn-in.md +273 -0
  445. package/_bmad/tea/testarch/knowledge/ci-burn-in.md +675 -0
  446. package/_bmad/tea/testarch/knowledge/component-tdd.md +486 -0
  447. package/_bmad/tea/testarch/knowledge/contract-testing.md +957 -0
  448. package/_bmad/tea/testarch/knowledge/data-factories.md +500 -0
  449. package/_bmad/tea/testarch/knowledge/email-auth.md +721 -0
  450. package/_bmad/tea/testarch/knowledge/error-handling.md +725 -0
  451. package/_bmad/tea/testarch/knowledge/feature-flags.md +750 -0
  452. package/_bmad/tea/testarch/knowledge/file-utils.md +456 -0
  453. package/_bmad/tea/testarch/knowledge/fixture-architecture.md +401 -0
  454. package/_bmad/tea/testarch/knowledge/fixtures-composition.md +382 -0
  455. package/_bmad/tea/testarch/knowledge/intercept-network-call.md +426 -0
  456. package/_bmad/tea/testarch/knowledge/log.md +426 -0
  457. package/_bmad/tea/testarch/knowledge/network-error-monitor.md +401 -0
  458. package/_bmad/tea/testarch/knowledge/network-first.md +486 -0
  459. package/_bmad/tea/testarch/knowledge/network-recorder.md +527 -0
  460. package/_bmad/tea/testarch/knowledge/nfr-criteria.md +670 -0
  461. package/_bmad/tea/testarch/knowledge/overview.md +286 -0
  462. package/_bmad/tea/testarch/knowledge/playwright-config.md +730 -0
  463. package/_bmad/tea/testarch/knowledge/probability-impact.md +601 -0
  464. package/_bmad/tea/testarch/knowledge/recurse.md +421 -0
  465. package/_bmad/tea/testarch/knowledge/risk-governance.md +615 -0
  466. package/_bmad/tea/testarch/knowledge/selective-testing.md +732 -0
  467. package/_bmad/tea/testarch/knowledge/selector-resilience.md +527 -0
  468. package/_bmad/tea/testarch/knowledge/test-healing-patterns.md +644 -0
  469. package/_bmad/tea/testarch/knowledge/test-levels-framework.md +473 -0
  470. package/_bmad/tea/testarch/knowledge/test-priorities-matrix.md +373 -0
  471. package/_bmad/tea/testarch/knowledge/test-quality.md +664 -0
  472. package/_bmad/tea/testarch/knowledge/timing-debugging.md +372 -0
  473. package/_bmad/tea/testarch/knowledge/visual-debugging.md +524 -0
  474. package/_bmad/tea/testarch/tea-index.csv +35 -0
  475. package/_bmad/tea/workflows/testarch/README.md +74 -0
  476. package/_bmad/tea/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  477. package/_bmad/tea/workflows/testarch/atdd/checklist.md +374 -0
  478. package/_bmad/tea/workflows/testarch/atdd/instructions.md +38 -0
  479. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-01-preflight-and-context.md +110 -0
  480. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-02-generation-mode.md +79 -0
  481. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-03-test-strategy.md +76 -0
  482. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04-generate-tests.md +228 -0
  483. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04a-subprocess-api-failing.md +215 -0
  484. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04b-subprocess-e2e-failing.md +212 -0
  485. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04c-aggregate.md +329 -0
  486. package/_bmad/tea/workflows/testarch/atdd/steps-c/step-05-validate-and-complete.md +68 -0
  487. package/_bmad/tea/workflows/testarch/atdd/steps-e/step-01-assess.md +65 -0
  488. package/_bmad/tea/workflows/testarch/atdd/steps-e/step-02-apply-edit.md +60 -0
  489. package/_bmad/tea/workflows/testarch/atdd/steps-v/step-01-validate.md +67 -0
  490. package/_bmad/tea/workflows/testarch/atdd/validation-report-20260127-095021.md +73 -0
  491. package/_bmad/tea/workflows/testarch/atdd/validation-report-20260127-102401.md +116 -0
  492. package/_bmad/tea/workflows/testarch/atdd/workflow-plan.md +21 -0
  493. package/_bmad/tea/workflows/testarch/atdd/workflow.md +39 -0
  494. package/_bmad/tea/workflows/testarch/atdd/workflow.yaml +45 -0
  495. package/_bmad/tea/workflows/testarch/automate/checklist.md +582 -0
  496. package/_bmad/tea/workflows/testarch/automate/instructions.md +43 -0
  497. package/_bmad/tea/workflows/testarch/automate/steps-c/step-01-preflight-and-context.md +127 -0
  498. package/_bmad/tea/workflows/testarch/automate/steps-c/step-02-identify-targets.md +95 -0
  499. package/_bmad/tea/workflows/testarch/automate/steps-c/step-03-generate-tests.md +199 -0
  500. package/_bmad/tea/workflows/testarch/automate/steps-c/step-03a-subprocess-api.md +183 -0
  501. package/_bmad/tea/workflows/testarch/automate/steps-c/step-03b-subprocess-e2e.md +181 -0
  502. package/_bmad/tea/workflows/testarch/automate/steps-c/step-03c-aggregate.md +300 -0
  503. package/_bmad/tea/workflows/testarch/automate/steps-c/step-04-validate-and-summarize.md +69 -0
  504. package/_bmad/tea/workflows/testarch/automate/steps-e/step-01-assess.md +65 -0
  505. package/_bmad/tea/workflows/testarch/automate/steps-e/step-02-apply-edit.md +60 -0
  506. package/_bmad/tea/workflows/testarch/automate/steps-v/step-01-validate.md +67 -0
  507. package/_bmad/tea/workflows/testarch/automate/validation-report-20260127-095021.md +72 -0
  508. package/_bmad/tea/workflows/testarch/automate/validation-report-20260127-102401.md +114 -0
  509. package/_bmad/tea/workflows/testarch/automate/workflow-plan.md +20 -0
  510. package/_bmad/tea/workflows/testarch/automate/workflow.md +39 -0
  511. package/_bmad/tea/workflows/testarch/automate/workflow.yaml +52 -0
  512. package/_bmad/tea/workflows/testarch/ci/checklist.md +247 -0
  513. package/_bmad/tea/workflows/testarch/ci/github-actions-template.yaml +198 -0
  514. package/_bmad/tea/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
  515. package/_bmad/tea/workflows/testarch/ci/instructions.md +38 -0
  516. package/_bmad/tea/workflows/testarch/ci/steps-c/step-01-preflight.md +92 -0
  517. package/_bmad/tea/workflows/testarch/ci/steps-c/step-02-generate-pipeline.md +82 -0
  518. package/_bmad/tea/workflows/testarch/ci/steps-c/step-03-configure-quality-gates.md +75 -0
  519. package/_bmad/tea/workflows/testarch/ci/steps-c/step-04-validate-and-summary.md +67 -0
  520. package/_bmad/tea/workflows/testarch/ci/steps-e/step-01-assess.md +65 -0
  521. package/_bmad/tea/workflows/testarch/ci/steps-e/step-02-apply-edit.md +60 -0
  522. package/_bmad/tea/workflows/testarch/ci/steps-v/step-01-validate.md +67 -0
  523. package/_bmad/tea/workflows/testarch/ci/validation-report-20260127-095021.md +72 -0
  524. package/_bmad/tea/workflows/testarch/ci/validation-report-20260127-102401.md +114 -0
  525. package/_bmad/tea/workflows/testarch/ci/workflow-plan.md +20 -0
  526. package/_bmad/tea/workflows/testarch/ci/workflow.md +39 -0
  527. package/_bmad/tea/workflows/testarch/ci/workflow.yaml +45 -0
  528. package/_bmad/tea/workflows/testarch/framework/checklist.md +320 -0
  529. package/_bmad/tea/workflows/testarch/framework/instructions.md +38 -0
  530. package/_bmad/tea/workflows/testarch/framework/steps-c/step-01-preflight.md +75 -0
  531. package/_bmad/tea/workflows/testarch/framework/steps-c/step-02-select-framework.md +73 -0
  532. package/_bmad/tea/workflows/testarch/framework/steps-c/step-03-scaffold-framework.md +120 -0
  533. package/_bmad/tea/workflows/testarch/framework/steps-c/step-04-docs-and-scripts.md +70 -0
  534. package/_bmad/tea/workflows/testarch/framework/steps-c/step-05-validate-and-summary.md +68 -0
  535. package/_bmad/tea/workflows/testarch/framework/steps-e/step-01-assess.md +65 -0
  536. package/_bmad/tea/workflows/testarch/framework/steps-e/step-02-apply-edit.md +60 -0
  537. package/_bmad/tea/workflows/testarch/framework/steps-v/step-01-validate.md +67 -0
  538. package/_bmad/tea/workflows/testarch/framework/validation-report-20260127-095021.md +73 -0
  539. package/_bmad/tea/workflows/testarch/framework/validation-report-20260127-102401.md +116 -0
  540. package/_bmad/tea/workflows/testarch/framework/workflow-plan.md +22 -0
  541. package/_bmad/tea/workflows/testarch/framework/workflow.md +39 -0
  542. package/_bmad/tea/workflows/testarch/framework/workflow.yaml +47 -0
  543. package/_bmad/tea/workflows/testarch/nfr-assess/checklist.md +407 -0
  544. package/_bmad/tea/workflows/testarch/nfr-assess/instructions.md +36 -0
  545. package/_bmad/tea/workflows/testarch/nfr-assess/nfr-report-template.md +462 -0
  546. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-01-load-context.md +85 -0
  547. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-02-define-thresholds.md +82 -0
  548. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-03-gather-evidence.md +64 -0
  549. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04-evaluate-and-score.md +140 -0
  550. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04a-subprocess-security.md +138 -0
  551. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04b-subprocess-performance.md +84 -0
  552. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04c-subprocess-reliability.md +85 -0
  553. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04d-subprocess-scalability.md +88 -0
  554. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04e-aggregate-nfr.md +219 -0
  555. package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-05-generate-report.md +71 -0
  556. package/_bmad/tea/workflows/testarch/nfr-assess/steps-e/step-01-assess.md +65 -0
  557. package/_bmad/tea/workflows/testarch/nfr-assess/steps-e/step-02-apply-edit.md +60 -0
  558. package/_bmad/tea/workflows/testarch/nfr-assess/steps-v/step-01-validate.md +67 -0
  559. package/_bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-095021.md +73 -0
  560. package/_bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-102401.md +116 -0
  561. package/_bmad/tea/workflows/testarch/nfr-assess/workflow-plan.md +19 -0
  562. package/_bmad/tea/workflows/testarch/nfr-assess/workflow.md +39 -0
  563. package/_bmad/tea/workflows/testarch/nfr-assess/workflow.yaml +47 -0
  564. package/_bmad/tea/workflows/testarch/teach-me-testing/checklist.md +197 -0
  565. package/_bmad/tea/workflows/testarch/teach-me-testing/data/curriculum.yaml +129 -0
  566. package/_bmad/tea/workflows/testarch/teach-me-testing/data/quiz-questions.yaml +206 -0
  567. package/_bmad/tea/workflows/testarch/teach-me-testing/data/role-paths.yaml +136 -0
  568. package/_bmad/tea/workflows/testarch/teach-me-testing/data/session-content-map.yaml +204 -0
  569. package/_bmad/tea/workflows/testarch/teach-me-testing/data/tea-resources-index.yaml +359 -0
  570. package/_bmad/tea/workflows/testarch/teach-me-testing/instructions.md +130 -0
  571. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-01-init.md +235 -0
  572. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-01b-continue.md +147 -0
  573. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-02-assess.md +258 -0
  574. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-03-session-menu.md +219 -0
  575. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-01.md +460 -0
  576. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-02.md +465 -0
  577. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-03.md +301 -0
  578. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-04.md +234 -0
  579. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-05.md +234 -0
  580. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-06.md +209 -0
  581. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-07.md +212 -0
  582. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-05-completion.md +339 -0
  583. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-e/step-e-01-assess-workflow.md +141 -0
  584. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-e/step-e-02-apply-edits.md +122 -0
  585. package/_bmad/tea/workflows/testarch/teach-me-testing/steps-v/step-v-01-validate.md +263 -0
  586. package/_bmad/tea/workflows/testarch/teach-me-testing/templates/certificate-template.md +86 -0
  587. package/_bmad/tea/workflows/testarch/teach-me-testing/templates/progress-template.yaml +95 -0
  588. package/_bmad/tea/workflows/testarch/teach-me-testing/templates/session-notes-template.md +83 -0
  589. package/_bmad/tea/workflows/testarch/teach-me-testing/workflow-plan-teach-me-testing.md +950 -0
  590. package/_bmad/tea/workflows/testarch/teach-me-testing/workflow.md +90 -0
  591. package/_bmad/tea/workflows/testarch/test-design/checklist.md +410 -0
  592. package/_bmad/tea/workflows/testarch/test-design/instructions.md +52 -0
  593. package/_bmad/tea/workflows/testarch/test-design/steps-c/step-01-detect-mode.md +109 -0
  594. package/_bmad/tea/workflows/testarch/test-design/steps-c/step-02-load-context.md +127 -0
  595. package/_bmad/tea/workflows/testarch/test-design/steps-c/step-03-risk-and-testability.md +85 -0
  596. package/_bmad/tea/workflows/testarch/test-design/steps-c/step-04-coverage-plan.md +98 -0
  597. package/_bmad/tea/workflows/testarch/test-design/steps-c/step-05-generate-output.md +97 -0
  598. package/_bmad/tea/workflows/testarch/test-design/steps-e/step-01-assess.md +65 -0
  599. package/_bmad/tea/workflows/testarch/test-design/steps-e/step-02-apply-edit.md +60 -0
  600. package/_bmad/tea/workflows/testarch/test-design/steps-v/step-01-validate.md +67 -0
  601. package/_bmad/tea/workflows/testarch/test-design/test-design-architecture-template.md +222 -0
  602. package/_bmad/tea/workflows/testarch/test-design/test-design-qa-template.md +296 -0
  603. package/_bmad/tea/workflows/testarch/test-design/test-design-template.md +294 -0
  604. package/_bmad/tea/workflows/testarch/test-design/validation-report-20260127-095021.md +73 -0
  605. package/_bmad/tea/workflows/testarch/test-design/validation-report-20260127-102401.md +116 -0
  606. package/_bmad/tea/workflows/testarch/test-design/workflow-plan.md +22 -0
  607. package/_bmad/tea/workflows/testarch/test-design/workflow.md +39 -0
  608. package/_bmad/tea/workflows/testarch/test-design/workflow.yaml +69 -0
  609. package/_bmad/tea/workflows/testarch/test-review/checklist.md +472 -0
  610. package/_bmad/tea/workflows/testarch/test-review/instructions.md +36 -0
  611. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-01-load-context.md +101 -0
  612. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-02-discover-tests.md +69 -0
  613. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03-quality-evaluation.md +184 -0
  614. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03a-subprocess-determinism.md +214 -0
  615. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03b-subprocess-isolation.md +125 -0
  616. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03c-subprocess-maintainability.md +102 -0
  617. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03d-subprocess-coverage.md +111 -0
  618. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03e-subprocess-performance.md +117 -0
  619. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03f-aggregate-scores.md +246 -0
  620. package/_bmad/tea/workflows/testarch/test-review/steps-c/step-04-generate-report.md +72 -0
  621. package/_bmad/tea/workflows/testarch/test-review/steps-e/step-01-assess.md +65 -0
  622. package/_bmad/tea/workflows/testarch/test-review/steps-e/step-02-apply-edit.md +60 -0
  623. package/_bmad/tea/workflows/testarch/test-review/steps-v/step-01-validate.md +67 -0
  624. package/_bmad/tea/workflows/testarch/test-review/test-review-template.md +390 -0
  625. package/_bmad/tea/workflows/testarch/test-review/validation-report-20260127-095021.md +72 -0
  626. package/_bmad/tea/workflows/testarch/test-review/validation-report-20260127-102401.md +114 -0
  627. package/_bmad/tea/workflows/testarch/test-review/workflow-plan.md +18 -0
  628. package/_bmad/tea/workflows/testarch/test-review/workflow.md +39 -0
  629. package/_bmad/tea/workflows/testarch/test-review/workflow.yaml +46 -0
  630. package/_bmad/tea/workflows/testarch/trace/checklist.md +642 -0
  631. package/_bmad/tea/workflows/testarch/trace/instructions.md +36 -0
  632. package/_bmad/tea/workflows/testarch/trace/steps-c/step-01-load-context.md +80 -0
  633. package/_bmad/tea/workflows/testarch/trace/steps-c/step-02-discover-tests.md +69 -0
  634. package/_bmad/tea/workflows/testarch/trace/steps-c/step-03-map-criteria.md +65 -0
  635. package/_bmad/tea/workflows/testarch/trace/steps-c/step-04-analyze-gaps.md +244 -0
  636. package/_bmad/tea/workflows/testarch/trace/steps-c/step-05-gate-decision.md +232 -0
  637. package/_bmad/tea/workflows/testarch/trace/steps-e/step-01-assess.md +65 -0
  638. package/_bmad/tea/workflows/testarch/trace/steps-e/step-02-apply-edit.md +60 -0
  639. package/_bmad/tea/workflows/testarch/trace/steps-v/step-01-validate.md +67 -0
  640. package/_bmad/tea/workflows/testarch/trace/trace-template.md +675 -0
  641. package/_bmad/tea/workflows/testarch/trace/validation-report-20260127-095021.md +73 -0
  642. package/_bmad/tea/workflows/testarch/trace/validation-report-20260127-102401.md +116 -0
  643. package/_bmad/tea/workflows/testarch/trace/workflow-plan.md +21 -0
  644. package/_bmad/tea/workflows/testarch/trace/workflow.md +39 -0
  645. package/_bmad/tea/workflows/testarch/trace/workflow.yaml +55 -0
  646. package/index.js +37 -58
  647. package/package.json +25 -4
  648. package/scripts/bmad-doctor.js +324 -0
  649. package/scripts/install-all-agents.js +55 -207
  650. package/scripts/install-emma.js +17 -14
  651. package/scripts/install-wade.js +17 -14
  652. package/scripts/postinstall.js +10 -7
  653. package/scripts/update/bmad-migrate.js +58 -5
  654. package/scripts/update/bmad-update.js +18 -8
  655. package/scripts/update/bmad-version.js +21 -7
  656. package/scripts/update/lib/backup-manager.js +22 -58
  657. package/scripts/update/lib/config-merger.js +4 -39
  658. package/scripts/update/lib/migration-runner.js +78 -114
  659. package/scripts/update/lib/refresh-installation.js +132 -0
  660. package/scripts/update/lib/utils.js +96 -0
  661. package/scripts/update/lib/validator.js +31 -151
  662. package/scripts/update/lib/version-detector.js +36 -41
  663. package/scripts/update/migrations/1.0.x-to-1.3.0.js +41 -222
  664. package/scripts/update/migrations/1.1.x-to-1.3.0.js +7 -188
  665. package/scripts/update/migrations/1.2.x-to-1.3.0.js +7 -188
  666. package/scripts/update/migrations/registry.js +27 -53
  667. package/_bmad-output/design-artifacts/EMMA-USER-GUIDE.md +0 -710
  668. package/_bmad-output/design-artifacts/WADE-USER-GUIDE.md +0 -1191
  669. package/_bmad-output/vortex-artifacts/EMMA-USER-GUIDE.md +0 -450
  670. package/_bmad-output/vortex-artifacts/WADE-USER-GUIDE.md +0 -471
  671. package/create-github-release.sh +0 -19
@@ -0,0 +1,442 @@
1
+ # API Request Utility
2
+
3
+ ## Principle
4
+
5
+ Use typed HTTP client with built-in schema validation and automatic retry for server errors. The utility handles URL resolution, header management, response parsing, and single-line response validation with proper TypeScript support. **Works without a browser** - ideal for pure API/service testing.
6
+
7
+ ## Rationale
8
+
9
+ Vanilla Playwright's request API requires boilerplate for common patterns:
10
+
11
+ - Manual JSON parsing (`await response.json()`)
12
+ - Repetitive status code checking
13
+ - No built-in retry logic for transient failures
14
+ - No schema validation
15
+ - Complex URL construction
16
+
17
+ The `apiRequest` utility provides:
18
+
19
+ - **Automatic JSON parsing**: Response body pre-parsed
20
+ - **Built-in retry**: 5xx errors retry with exponential backoff
21
+ - **Schema validation**: Single-line validation (JSON Schema, Zod, OpenAPI)
22
+ - **URL resolution**: Four-tier strategy (explicit > config > Playwright > direct)
23
+ - **TypeScript generics**: Type-safe response bodies
24
+ - **No browser required**: Pure API testing without browser overhead
25
+
26
+ ## Pattern Examples
27
+
28
+ ### Example 1: Basic API Request
29
+
30
+ **Context**: Making authenticated API requests with automatic retry and type safety.
31
+
32
+ **Implementation**:
33
+
34
+ ```typescript
35
+ import { test } from '@seontechnologies/playwright-utils/api-request/fixtures';
36
+
37
+ test('should fetch user data', async ({ apiRequest }) => {
38
+ const { status, body } = await apiRequest<User>({
39
+ method: 'GET',
40
+ path: '/api/users/123',
41
+ headers: { Authorization: 'Bearer token' },
42
+ });
43
+
44
+ expect(status).toBe(200);
45
+ expect(body.name).toBe('John Doe'); // TypeScript knows body is User
46
+ });
47
+ ```
48
+
49
+ **Key Points**:
50
+
51
+ - Generic type `<User>` provides TypeScript autocomplete for `body`
52
+ - Status and body destructured from response
53
+ - Headers passed as object
54
+ - Automatic retry for 5xx errors (configurable)
55
+
56
+ ### Example 2: Schema Validation (Single Line)
57
+
58
+ **Context**: Validate API responses match expected schema with single-line syntax.
59
+
60
+ **Implementation**:
61
+
62
+ ```typescript
63
+ import { test } from '@seontechnologies/playwright-utils/api-request/fixtures';
64
+ import { z } from 'zod';
65
+
66
+ // JSON Schema validation
67
+ test('should validate response schema (JSON Schema)', async ({ apiRequest }) => {
68
+ const { status, body } = await apiRequest({
69
+ method: 'GET',
70
+ path: '/api/users/123',
71
+ validateSchema: {
72
+ type: 'object',
73
+ required: ['id', 'name', 'email'],
74
+ properties: {
75
+ id: { type: 'string' },
76
+ name: { type: 'string' },
77
+ email: { type: 'string', format: 'email' },
78
+ },
79
+ },
80
+ });
81
+ // Throws if schema validation fails
82
+ expect(status).toBe(200);
83
+ });
84
+
85
+ // Zod schema validation
86
+ const UserSchema = z.object({
87
+ id: z.string(),
88
+ name: z.string(),
89
+ email: z.string().email(),
90
+ });
91
+
92
+ test('should validate response schema (Zod)', async ({ apiRequest }) => {
93
+ const { status, body } = await apiRequest({
94
+ method: 'GET',
95
+ path: '/api/users/123',
96
+ validateSchema: UserSchema,
97
+ });
98
+ // Response body is type-safe AND validated
99
+ expect(status).toBe(200);
100
+ expect(body.email).toContain('@');
101
+ });
102
+ ```
103
+
104
+ **Key Points**:
105
+
106
+ - Single `validateSchema` parameter
107
+ - Supports JSON Schema, Zod, YAML files, OpenAPI specs
108
+ - Throws on validation failure with detailed errors
109
+ - Zero boilerplate validation code
110
+
111
+ ### Example 3: POST with Body and Retry Configuration
112
+
113
+ **Context**: Creating resources with custom retry behavior for error testing.
114
+
115
+ **Implementation**:
116
+
117
+ ```typescript
118
+ test('should create user', async ({ apiRequest }) => {
119
+ const newUser = {
120
+ name: 'Jane Doe',
121
+ email: 'jane@example.com',
122
+ };
123
+
124
+ const { status, body } = await apiRequest({
125
+ method: 'POST',
126
+ path: '/api/users',
127
+ body: newUser, // Automatically sent as JSON
128
+ headers: { Authorization: 'Bearer token' },
129
+ });
130
+
131
+ expect(status).toBe(201);
132
+ expect(body.id).toBeDefined();
133
+ });
134
+
135
+ // Disable retry for error testing
136
+ test('should handle 500 errors', async ({ apiRequest }) => {
137
+ await expect(
138
+ apiRequest({
139
+ method: 'GET',
140
+ path: '/api/error',
141
+ retryConfig: { maxRetries: 0 }, // Disable retry
142
+ }),
143
+ ).rejects.toThrow('Request failed with status 500');
144
+ });
145
+ ```
146
+
147
+ **Key Points**:
148
+
149
+ - `body` parameter auto-serializes to JSON
150
+ - Default retry: 5xx errors, 3 retries, exponential backoff
151
+ - Disable retry with `retryConfig: { maxRetries: 0 }`
152
+ - Only 5xx errors retry (4xx errors fail immediately)
153
+
154
+ ### Example 4: URL Resolution Strategy
155
+
156
+ **Context**: Flexible URL handling for different environments and test contexts.
157
+
158
+ **Implementation**:
159
+
160
+ ```typescript
161
+ // Strategy 1: Explicit baseUrl (highest priority)
162
+ await apiRequest({
163
+ method: 'GET',
164
+ path: '/users',
165
+ baseUrl: 'https://api.example.com', // Uses https://api.example.com/users
166
+ });
167
+
168
+ // Strategy 2: Config baseURL (from fixture)
169
+ import { test } from '@seontechnologies/playwright-utils/api-request/fixtures';
170
+
171
+ test.use({ configBaseUrl: 'https://staging-api.example.com' });
172
+
173
+ test('uses config baseURL', async ({ apiRequest }) => {
174
+ await apiRequest({
175
+ method: 'GET',
176
+ path: '/users', // Uses https://staging-api.example.com/users
177
+ });
178
+ });
179
+
180
+ // Strategy 3: Playwright baseURL (from playwright.config.ts)
181
+ // playwright.config.ts
182
+ export default defineConfig({
183
+ use: {
184
+ baseURL: 'https://api.example.com',
185
+ },
186
+ });
187
+
188
+ test('uses Playwright baseURL', async ({ apiRequest }) => {
189
+ await apiRequest({
190
+ method: 'GET',
191
+ path: '/users', // Uses https://api.example.com/users
192
+ });
193
+ });
194
+
195
+ // Strategy 4: Direct path (full URL)
196
+ await apiRequest({
197
+ method: 'GET',
198
+ path: 'https://api.example.com/users', // Full URL works too
199
+ });
200
+ ```
201
+
202
+ **Key Points**:
203
+
204
+ - Four-tier resolution: explicit > config > Playwright > direct
205
+ - Trailing slashes normalized automatically
206
+ - Environment-specific baseUrl easy to configure
207
+
208
+ ### Example 5: Integration with Recurse (Polling)
209
+
210
+ **Context**: Waiting for async operations to complete (background jobs, eventual consistency).
211
+
212
+ **Implementation**:
213
+
214
+ ```typescript
215
+ import { test } from '@seontechnologies/playwright-utils/fixtures';
216
+
217
+ test('should poll until job completes', async ({ apiRequest, recurse }) => {
218
+ // Create job
219
+ const { body } = await apiRequest({
220
+ method: 'POST',
221
+ path: '/api/jobs',
222
+ body: { type: 'export' },
223
+ });
224
+
225
+ const jobId = body.id;
226
+
227
+ // Poll until ready
228
+ const completedJob = await recurse(
229
+ () => apiRequest({ method: 'GET', path: `/api/jobs/${jobId}` }),
230
+ (response) => response.body.status === 'completed',
231
+ { timeout: 60000, interval: 2000 },
232
+ );
233
+
234
+ expect(completedJob.body.result).toBeDefined();
235
+ });
236
+ ```
237
+
238
+ **Key Points**:
239
+
240
+ - `apiRequest` returns full response object
241
+ - `recurse` polls until predicate returns true
242
+ - Composable utilities work together seamlessly
243
+
244
+ ### Example 6: Microservice Testing (Multiple Services)
245
+
246
+ **Context**: Test interactions between microservices without a browser.
247
+
248
+ **Implementation**:
249
+
250
+ ```typescript
251
+ import { test, expect } from '@seontechnologies/playwright-utils/fixtures';
252
+
253
+ const USER_SERVICE = process.env.USER_SERVICE_URL || 'http://localhost:3001';
254
+ const ORDER_SERVICE = process.env.ORDER_SERVICE_URL || 'http://localhost:3002';
255
+
256
+ test.describe('Microservice Integration', () => {
257
+ test('should validate cross-service user lookup', async ({ apiRequest }) => {
258
+ // Create user in user-service
259
+ const { body: user } = await apiRequest({
260
+ method: 'POST',
261
+ path: '/api/users',
262
+ baseUrl: USER_SERVICE,
263
+ body: { name: 'Test User', email: 'test@example.com' },
264
+ });
265
+
266
+ // Create order in order-service (validates user via user-service)
267
+ const { status, body: order } = await apiRequest({
268
+ method: 'POST',
269
+ path: '/api/orders',
270
+ baseUrl: ORDER_SERVICE,
271
+ body: {
272
+ userId: user.id,
273
+ items: [{ productId: 'prod-1', quantity: 2 }],
274
+ },
275
+ });
276
+
277
+ expect(status).toBe(201);
278
+ expect(order.userId).toBe(user.id);
279
+ });
280
+
281
+ test('should reject order for invalid user', async ({ apiRequest }) => {
282
+ const { status, body } = await apiRequest({
283
+ method: 'POST',
284
+ path: '/api/orders',
285
+ baseUrl: ORDER_SERVICE,
286
+ body: {
287
+ userId: 'non-existent-user',
288
+ items: [{ productId: 'prod-1', quantity: 1 }],
289
+ },
290
+ });
291
+
292
+ expect(status).toBe(400);
293
+ expect(body.code).toBe('INVALID_USER');
294
+ });
295
+ });
296
+ ```
297
+
298
+ **Key Points**:
299
+
300
+ - Test multiple services without browser
301
+ - Use `baseUrl` to target different services
302
+ - Validate cross-service communication
303
+ - Pure API testing - fast and reliable
304
+
305
+ ### Example 7: GraphQL API Testing
306
+
307
+ **Context**: Test GraphQL endpoints with queries and mutations.
308
+
309
+ **Implementation**:
310
+
311
+ ```typescript
312
+ test.describe('GraphQL API', () => {
313
+ const GRAPHQL_ENDPOINT = '/graphql';
314
+
315
+ test('should query users via GraphQL', async ({ apiRequest }) => {
316
+ const query = `
317
+ query GetUsers($limit: Int) {
318
+ users(limit: $limit) {
319
+ id
320
+ name
321
+ email
322
+ }
323
+ }
324
+ `;
325
+
326
+ const { status, body } = await apiRequest({
327
+ method: 'POST',
328
+ path: GRAPHQL_ENDPOINT,
329
+ body: {
330
+ query,
331
+ variables: { limit: 10 },
332
+ },
333
+ });
334
+
335
+ expect(status).toBe(200);
336
+ expect(body.errors).toBeUndefined();
337
+ expect(body.data.users).toHaveLength(10);
338
+ });
339
+
340
+ test('should create user via mutation', async ({ apiRequest }) => {
341
+ const mutation = `
342
+ mutation CreateUser($input: CreateUserInput!) {
343
+ createUser(input: $input) {
344
+ id
345
+ name
346
+ }
347
+ }
348
+ `;
349
+
350
+ const { status, body } = await apiRequest({
351
+ method: 'POST',
352
+ path: GRAPHQL_ENDPOINT,
353
+ body: {
354
+ query: mutation,
355
+ variables: {
356
+ input: { name: 'GraphQL User', email: 'gql@example.com' },
357
+ },
358
+ },
359
+ });
360
+
361
+ expect(status).toBe(200);
362
+ expect(body.data.createUser.id).toBeDefined();
363
+ });
364
+ });
365
+ ```
366
+
367
+ **Key Points**:
368
+
369
+ - GraphQL via POST request
370
+ - Variables in request body
371
+ - Check `body.errors` for GraphQL errors (not status code)
372
+ - Works for queries and mutations
373
+
374
+ ## Comparison with Vanilla Playwright
375
+
376
+ | Vanilla Playwright | playwright-utils apiRequest |
377
+ | ---------------------------------------------- | ---------------------------------------------------------------------------------- |
378
+ | `const resp = await request.get('/api/users')` | `const { status, body } = await apiRequest({ method: 'GET', path: '/api/users' })` |
379
+ | `const body = await resp.json()` | Response already parsed |
380
+ | `expect(resp.ok()).toBeTruthy()` | Status code directly accessible |
381
+ | No retry logic | Auto-retry 5xx errors with backoff |
382
+ | No schema validation | Built-in multi-format validation |
383
+ | Manual error handling | Descriptive error messages |
384
+
385
+ ## When to Use
386
+
387
+ **Use apiRequest for:**
388
+
389
+ - ✅ Pure API/service testing (no browser needed)
390
+ - ✅ Microservice integration testing
391
+ - ✅ GraphQL API testing
392
+ - ✅ Schema validation needs
393
+ - ✅ Tests requiring retry logic
394
+ - ✅ Background API calls in UI tests
395
+ - ✅ Contract testing support
396
+
397
+ **Stick with vanilla Playwright for:**
398
+
399
+ - Simple one-off requests where utility overhead isn't worth it
400
+ - Testing Playwright's native features specifically
401
+ - Legacy tests where migration isn't justified
402
+
403
+ ## Related Fragments
404
+
405
+ - `api-testing-patterns.md` - Comprehensive pure API testing patterns
406
+ - `overview.md` - Installation and design principles
407
+ - `auth-session.md` - Authentication token management
408
+ - `recurse.md` - Polling for async operations
409
+ - `fixtures-composition.md` - Combining utilities with mergeTests
410
+ - `log.md` - Logging API requests
411
+ - `contract-testing.md` - Pact contract testing
412
+
413
+ ## Anti-Patterns
414
+
415
+ **❌ Ignoring retry failures:**
416
+
417
+ ```typescript
418
+ try {
419
+ await apiRequest({ method: 'GET', path: '/api/unstable' });
420
+ } catch {
421
+ // Silent failure - loses retry information
422
+ }
423
+ ```
424
+
425
+ **✅ Let retries happen, handle final failure:**
426
+
427
+ ```typescript
428
+ await expect(apiRequest({ method: 'GET', path: '/api/unstable' })).rejects.toThrow(); // Retries happen automatically, then final error caught
429
+ ```
430
+
431
+ **❌ Disabling TypeScript benefits:**
432
+
433
+ ```typescript
434
+ const response: any = await apiRequest({ method: 'GET', path: '/users' });
435
+ ```
436
+
437
+ **✅ Use generic types:**
438
+
439
+ ```typescript
440
+ const { body } = await apiRequest<User[]>({ method: 'GET', path: '/users' });
441
+ // body is typed as User[]
442
+ ```