bmad-method 6.0.0-alpha.12 → 6.0.0-alpha.13

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 (491) hide show
  1. package/.github/workflows/bundle-latest.yaml +79 -27
  2. package/CHANGELOG.md +159 -1
  3. package/README.md +3 -1
  4. package/custom/src/agents/commit-poet/commit-poet.agent.yaml +129 -0
  5. package/custom/src/agents/commit-poet/installation-guide.md +36 -0
  6. package/custom/src/agents/toolsmith/installation-guide.md +36 -0
  7. package/custom/src/agents/toolsmith/toolsmith-sidecar/instructions.md +70 -0
  8. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +111 -0
  9. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +70 -0
  10. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +114 -0
  11. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +134 -0
  12. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +161 -0
  13. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +103 -0
  14. package/custom/src/agents/toolsmith/toolsmith-sidecar/memories.md +17 -0
  15. package/custom/src/agents/toolsmith/toolsmith.agent.yaml +108 -0
  16. package/docs/custom-agent-installation.md +31 -17
  17. package/docs/ide-info/rovo-dev.md +388 -0
  18. package/docs/index.md +6 -81
  19. package/docs/installers-bundlers/installers-modules-platforms-reference.md +1 -1
  20. package/package.json +1 -1
  21. package/src/core/agents/bmad-master.agent.yaml +1 -1
  22. package/src/core/agents/bmad-web-orchestrator.agent.xml +1 -1
  23. package/src/core/tasks/advanced-elicitation-methods.csv +51 -21
  24. package/src/core/tasks/advanced-elicitation.xml +18 -8
  25. package/src/core/tasks/workflow.xml +36 -71
  26. package/src/core/workflows/brainstorming/brain-methods.csv +62 -36
  27. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +196 -0
  28. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +121 -0
  29. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +224 -0
  30. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +236 -0
  31. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +208 -0
  32. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +263 -0
  33. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +339 -0
  34. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +302 -0
  35. package/src/core/workflows/brainstorming/template.md +13 -104
  36. package/src/core/workflows/brainstorming/workflow.md +51 -0
  37. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  38. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +203 -0
  39. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +159 -0
  40. package/src/core/workflows/party-mode/workflow.md +207 -0
  41. package/src/modules/bmb/README.md +153 -86
  42. package/src/modules/bmb/_module-installer/install-config.yaml +3 -3
  43. package/src/modules/bmb/agents/bmad-builder.agent.yaml +45 -31
  44. package/src/modules/bmb/docs/{agent-menu-patterns.md → agents/agent-menu-patterns.md} +1 -1
  45. package/src/modules/bmb/docs/agents/kb.csv +0 -0
  46. package/src/modules/bmb/docs/{module-agent-architecture.md → agents/module-agent-architecture.md} +1 -1
  47. package/src/modules/bmb/docs/{simple-agent-architecture.md → agents/simple-agent-architecture.md} +1 -1
  48. package/src/modules/bmb/docs/workflows/architecture.md +220 -0
  49. package/src/modules/bmb/docs/workflows/common-workflow-tools.csv +19 -0
  50. package/src/modules/bmb/docs/workflows/csv-data-file-standards.md +206 -0
  51. package/src/modules/bmb/docs/workflows/index.md +45 -0
  52. package/src/modules/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +220 -0
  53. package/src/modules/bmb/docs/workflows/kb.csv +0 -0
  54. package/src/modules/bmb/docs/workflows/step-template.md +283 -0
  55. package/src/modules/bmb/docs/workflows/terms.md +97 -0
  56. package/src/modules/bmb/docs/workflows/workflow-template.md +152 -0
  57. package/src/modules/bmb/reference/agents/module-examples/README.md +1 -1
  58. package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +2 -2
  59. package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +1 -1
  60. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  61. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  62. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  63. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
  64. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
  65. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  66. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
  67. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  68. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  69. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  70. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  71. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  72. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  73. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  74. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  75. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  76. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  77. package/src/modules/bmb/workflows/create-agent/data/info-and-installation-guide.md +17 -0
  78. package/src/modules/bmb/workflows/create-agent/data/reference/README.md +3 -0
  79. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/README.md +242 -0
  80. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
  81. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
  82. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
  83. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
  84. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
  85. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +50 -0
  86. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
  87. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
  88. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +223 -0
  89. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
  90. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  91. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  92. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  93. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
  94. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
  95. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  96. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
  97. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  98. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  99. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  100. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  101. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  102. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  103. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  104. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  105. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  106. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  107. package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +305 -0
  108. package/src/modules/bmb/workflows/create-agent/steps/step-01-brainstorm.md +145 -0
  109. package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +210 -0
  110. package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +260 -0
  111. package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +237 -0
  112. package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +231 -0
  113. package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +224 -0
  114. package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +234 -0
  115. package/src/modules/bmb/workflows/create-agent/steps/step-08-setup.md +179 -0
  116. package/src/modules/bmb/workflows/create-agent/steps/step-09-customize.md +197 -0
  117. package/src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md +180 -0
  118. package/src/modules/bmb/workflows/create-agent/steps/step-11-celebrate.md +222 -0
  119. package/src/modules/bmb/workflows/create-agent/templates/agent_commands.md +21 -0
  120. package/src/modules/bmb/workflows/create-agent/templates/agent_persona.md +25 -0
  121. package/src/modules/bmb/workflows/create-agent/templates/agent_purpose_and_type.md +23 -0
  122. package/src/modules/bmb/workflows/create-agent/workflow.md +91 -0
  123. package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +168 -0
  124. package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +233 -0
  125. package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-overview.md +127 -0
  126. package/src/modules/bmb/workflows/create-workflow/steps/step-04-core-tools.md +145 -0
  127. package/src/modules/bmb/workflows/create-workflow/steps/step-05-memory-requirements.md +136 -0
  128. package/src/modules/bmb/workflows/create-workflow/steps/step-06-external-tools.md +154 -0
  129. package/src/modules/bmb/workflows/create-workflow/steps/step-07-installation-guidance.md +159 -0
  130. package/src/modules/bmb/workflows/create-workflow/steps/step-08-tools-summary.md +167 -0
  131. package/src/modules/bmb/workflows/create-workflow/steps/step-09-design.md +239 -0
  132. package/src/modules/bmb/workflows/create-workflow/steps/step-10-plan-review.md +215 -0
  133. package/src/modules/bmb/workflows/create-workflow/steps/step-11-build.md +262 -0
  134. package/src/modules/bmb/workflows/create-workflow/steps/step-12-review.md +270 -0
  135. package/src/modules/bmb/workflows/create-workflow/templates/build-summary.md +36 -0
  136. package/src/modules/bmb/workflows/create-workflow/templates/completion-section.md +39 -0
  137. package/src/modules/bmb/workflows/create-workflow/templates/content-template.md +21 -0
  138. package/src/modules/bmb/workflows/create-workflow/templates/design-section.md +53 -0
  139. package/src/modules/bmb/workflows/create-workflow/templates/project-info.md +18 -0
  140. package/src/modules/bmb/workflows/create-workflow/templates/requirements-section.md +47 -0
  141. package/src/modules/bmb/workflows/create-workflow/templates/review-section.md +56 -0
  142. package/src/modules/bmb/workflows/create-workflow/templates/step-file.md +139 -0
  143. package/src/modules/bmb/workflows/create-workflow/templates/workflow-plan.md +54 -0
  144. package/src/modules/bmb/workflows/create-workflow/templates/workflow.md +58 -0
  145. package/src/modules/bmb/workflows/create-workflow/workflow.md +58 -0
  146. package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +134 -0
  147. package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +202 -0
  148. package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +157 -0
  149. package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +150 -0
  150. package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +150 -0
  151. package/src/modules/bmb/workflows/edit-agent/workflow.md +58 -0
  152. package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +221 -0
  153. package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +253 -0
  154. package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +217 -0
  155. package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +193 -0
  156. package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +245 -0
  157. package/src/modules/bmb/workflows/edit-workflow/templates/completion-summary.md +75 -0
  158. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md +68 -0
  159. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md +40 -0
  160. package/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md +51 -0
  161. package/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md +56 -0
  162. package/src/modules/bmb/workflows/edit-workflow/workflow.md +58 -0
  163. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +152 -0
  164. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +243 -0
  165. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +274 -0
  166. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +295 -0
  167. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +264 -0
  168. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +360 -0
  169. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +258 -0
  170. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +301 -0
  171. package/src/modules/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +140 -0
  172. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +58 -0
  173. package/src/modules/bmgd/agents/game-architect.agent.yaml +1 -1
  174. package/src/modules/bmgd/agents/game-designer.agent.yaml +1 -1
  175. package/src/modules/bmgd/agents/game-dev.agent.yaml +1 -1
  176. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +1 -1
  177. package/src/modules/bmm/_module-installer/install-config.yaml +9 -15
  178. package/src/modules/bmm/agents/analyst.agent.yaml +14 -14
  179. package/src/modules/bmm/agents/architect.agent.yaml +12 -10
  180. package/src/modules/bmm/agents/dev.agent.yaml +20 -16
  181. package/src/modules/bmm/agents/pm.agent.yaml +13 -31
  182. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +36 -0
  183. package/src/modules/bmm/agents/sm.agent.yaml +13 -31
  184. package/src/modules/bmm/agents/tea.agent.yaml +10 -7
  185. package/src/modules/bmm/agents/tech-writer.agent.yaml +7 -20
  186. package/src/modules/bmm/agents/ux-designer.agent.yaml +12 -10
  187. package/src/modules/bmm/data/README.md +29 -0
  188. package/src/modules/bmm/data/project-context-template.md +40 -0
  189. package/src/modules/bmm/docs/README.md +21 -9
  190. package/src/modules/bmm/docs/agents-guide.md +69 -23
  191. package/src/modules/bmm/docs/bmad-quick-flow.md +528 -0
  192. package/src/modules/bmm/docs/brownfield-guide.md +9 -10
  193. package/src/modules/bmm/docs/enterprise-agentic-development.md +1 -1
  194. package/src/modules/bmm/docs/glossary.md +5 -5
  195. package/src/modules/bmm/docs/images/workflow-method-greenfield.excalidraw +909 -1654
  196. package/src/modules/bmm/docs/images/workflow-method-greenfield.svg +2 -2
  197. package/src/modules/bmm/docs/quick-flow-solo-dev.md +337 -0
  198. package/src/modules/bmm/docs/scale-adaptive-system.md +5 -5
  199. package/src/modules/bmm/docs/test-architecture.md +84 -18
  200. package/src/modules/bmm/docs/workflows-analysis.md +36 -140
  201. package/src/modules/bmm/docs/workflows-implementation.md +32 -157
  202. package/src/modules/bmm/docs/workflows-planning.md +51 -212
  203. package/src/modules/bmm/docs/workflows-solutioning.md +24 -69
  204. package/src/modules/bmm/teams/default-party.csv +15 -14
  205. package/src/modules/bmm/teams/team-fullstack.yaml +0 -1
  206. package/src/modules/bmm/testarch/knowledge/api-request.md +303 -0
  207. package/src/modules/bmm/testarch/knowledge/auth-session.md +356 -0
  208. package/src/modules/bmm/testarch/knowledge/burn-in.md +273 -0
  209. package/src/modules/bmm/testarch/knowledge/file-utils.md +260 -0
  210. package/src/modules/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  211. package/src/modules/bmm/testarch/knowledge/intercept-network-call.md +280 -0
  212. package/src/modules/bmm/testarch/knowledge/log.md +294 -0
  213. package/src/modules/bmm/testarch/knowledge/network-error-monitor.md +272 -0
  214. package/src/modules/bmm/testarch/knowledge/network-recorder.md +265 -0
  215. package/src/modules/bmm/testarch/knowledge/overview.md +284 -0
  216. package/src/modules/bmm/testarch/knowledge/recurse.md +296 -0
  217. package/src/modules/bmm/testarch/tea-index.csv +11 -0
  218. package/src/modules/bmm/workflows/1-analysis/product-brief/product-brief.template.md +8 -0
  219. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-01-init.md +192 -0
  220. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-01b-continue.md +167 -0
  221. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-02-vision.md +203 -0
  222. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-03-users.md +206 -0
  223. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-04-metrics.md +209 -0
  224. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-05-scope.md +223 -0
  225. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-06-complete.md +199 -0
  226. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.md +58 -0
  227. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +136 -0
  228. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +228 -0
  229. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +237 -0
  230. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +205 -0
  231. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +233 -0
  232. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  233. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  234. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +235 -0
  235. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +198 -0
  236. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +247 -0
  237. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +257 -0
  238. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +175 -0
  239. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  240. package/src/modules/bmm/workflows/1-analysis/research/research.template.md +16 -0
  241. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +136 -0
  242. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +237 -0
  243. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +246 -0
  244. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +200 -0
  245. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +237 -0
  246. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  247. package/src/modules/bmm/workflows/1-analysis/research/workflow.md +198 -0
  248. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +159 -0
  249. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +126 -0
  250. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +209 -0
  251. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +215 -0
  252. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +218 -0
  253. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +233 -0
  254. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +251 -0
  255. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +253 -0
  256. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +223 -0
  257. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +223 -0
  258. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +240 -0
  259. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +247 -0
  260. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +236 -0
  261. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +263 -0
  262. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +226 -0
  263. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +6 -138
  264. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +53 -0
  265. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +5 -200
  266. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +161 -0
  267. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +123 -0
  268. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +275 -0
  269. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +271 -0
  270. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +272 -0
  271. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +249 -0
  272. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +240 -0
  273. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +236 -0
  274. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +280 -0
  275. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +251 -0
  276. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +275 -0
  277. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +210 -0
  278. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +61 -0
  279. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-decision-template.md +13 -0
  280. package/src/modules/bmm/workflows/3-solutioning/architecture/data/domain-complexity.csv +11 -0
  281. package/src/modules/bmm/workflows/3-solutioning/architecture/data/project-types.csv +7 -0
  282. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-01-init.md +194 -0
  283. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-01b-continue.md +163 -0
  284. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-02-context.md +223 -0
  285. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-03-starter.md +330 -0
  286. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-04-decisions.md +317 -0
  287. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-05-patterns.md +358 -0
  288. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-06-structure.md +378 -0
  289. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-07-validation.md +358 -0
  290. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-08-complete.md +351 -0
  291. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.md +48 -0
  292. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/instructions.md +247 -476
  293. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.yaml +8 -18
  294. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +176 -0
  295. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +4 -11
  296. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +332 -214
  297. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +324 -0
  298. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +21 -34
  299. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +65 -23
  300. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +406 -0
  301. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +6 -37
  302. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +4 -3
  303. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +2 -0
  304. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/instructions.md +115 -0
  305. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +26 -0
  306. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/checklist.md +25 -0
  307. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/instructions.md +105 -0
  308. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml +29 -0
  309. package/src/modules/bmm/workflows/generate-project-context/project-context-template.md +20 -0
  310. package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +193 -0
  311. package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +317 -0
  312. package/src/modules/bmm/workflows/generate-project-context/steps/step-03-complete.md +277 -0
  313. package/src/modules/bmm/workflows/generate-project-context/workflow.md +48 -0
  314. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +23 -3
  315. package/src/modules/bmm/workflows/testarch/automate/instructions.md +23 -2
  316. package/src/modules/bmm/workflows/testarch/ci/instructions.md +18 -1
  317. package/src/modules/bmm/workflows/testarch/framework/instructions.md +27 -1
  318. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +8 -2
  319. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +28 -8
  320. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +66 -54
  321. package/src/modules/bmm/workflows/workflow-status/instructions.md +11 -4
  322. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +3 -2
  323. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +3 -2
  324. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +3 -2
  325. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +3 -2
  326. package/src/modules/cis/agents/README.md +1 -1
  327. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +3 -2
  328. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +2 -1
  329. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +2 -1
  330. package/src/modules/cis/agents/innovation-strategist.agent.yaml +2 -1
  331. package/src/modules/cis/agents/presentation-master.agent.yaml +3 -2
  332. package/src/modules/cis/agents/storyteller.agent.yaml +2 -1
  333. package/src/modules/cis/teams/default-party.csv +6 -5
  334. package/src/utility/models/agent-activation-ide.xml +4 -4
  335. package/src/utility/models/agent-activation-web.xml +1 -11
  336. package/src/utility/models/fragments/activation-rules.xml +5 -6
  337. package/src/utility/models/fragments/handler-exec.xml +6 -5
  338. package/src/utility/models/fragments/handler-multi.xml +14 -0
  339. package/test/README.md +1 -1
  340. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +1 -3
  341. package/tools/cli/README.md +1 -0
  342. package/tools/cli/bundlers/web-bundler.js +3 -14
  343. package/tools/cli/commands/agent-install.js +8 -8
  344. package/tools/cli/commands/cleanup.js +141 -0
  345. package/tools/cli/commands/install.js +48 -3
  346. package/tools/cli/installers/lib/core/config-collector.js +24 -0
  347. package/tools/cli/installers/lib/core/installer.js +612 -43
  348. package/tools/cli/installers/lib/ide/antigravity.js +51 -7
  349. package/tools/cli/installers/lib/ide/auggie.js +53 -0
  350. package/tools/cli/installers/lib/ide/claude-code.js +1 -6
  351. package/tools/cli/installers/lib/ide/cline.js +49 -0
  352. package/tools/cli/installers/lib/ide/codex.js +2 -2
  353. package/tools/cli/installers/lib/ide/crush.js +47 -0
  354. package/tools/cli/installers/lib/ide/gemini.js +47 -0
  355. package/tools/cli/installers/lib/ide/github-copilot.js +59 -48
  356. package/tools/cli/installers/lib/ide/iflow.js +47 -0
  357. package/tools/cli/installers/lib/ide/kilo.js +74 -0
  358. package/tools/cli/installers/lib/ide/qwen.js +54 -0
  359. package/tools/cli/installers/lib/ide/roo.js +71 -0
  360. package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
  361. package/tools/cli/installers/lib/ide/trae.js +47 -0
  362. package/tools/cli/lib/agent/compiler.js +156 -22
  363. package/tools/cli/lib/agent/installer.js +13 -3
  364. package/tools/cli/lib/agent-analyzer.js +46 -18
  365. package/tools/cli/lib/ui.js +204 -9
  366. package/tools/cli/lib/yaml-xml-builder.js +123 -24
  367. package/tools/platform-codes.yaml +12 -0
  368. package/tools/schema/agent.js +169 -20
  369. package/src/core/tasks/adv-elicit-methods.csv +0 -39
  370. package/src/core/workflows/brainstorming/README.md +0 -261
  371. package/src/core/workflows/brainstorming/instructions.md +0 -315
  372. package/src/core/workflows/brainstorming/workflow.yaml +0 -38
  373. package/src/core/workflows/party-mode/instructions.md +0 -183
  374. package/src/core/workflows/party-mode/workflow.yaml +0 -28
  375. package/src/modules/bmb/workflows/audit-workflow/checklist.md +0 -142
  376. package/src/modules/bmb/workflows/audit-workflow/instructions.md +0 -341
  377. package/src/modules/bmb/workflows/audit-workflow/template.md +0 -118
  378. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +0 -25
  379. package/src/modules/bmb/workflows/convert-legacy/README.md +0 -262
  380. package/src/modules/bmb/workflows/convert-legacy/checklist.md +0 -205
  381. package/src/modules/bmb/workflows/convert-legacy/instructions.md +0 -377
  382. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +0 -30
  383. package/src/modules/bmb/workflows/create-agent/instructions.md +0 -519
  384. package/src/modules/bmb/workflows/create-agent/workflow.yaml +0 -55
  385. package/src/modules/bmb/workflows/create-workflow/README.md +0 -277
  386. package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  387. package/src/modules/bmb/workflows/create-workflow/checklist.md +0 -94
  388. package/src/modules/bmb/workflows/create-workflow/instructions.md +0 -725
  389. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1327
  390. package/src/modules/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  391. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -15
  392. package/src/modules/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  393. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -61
  394. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +0 -41
  395. package/src/modules/bmb/workflows/edit-agent/README.md +0 -239
  396. package/src/modules/bmb/workflows/edit-agent/instructions.md +0 -654
  397. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +0 -49
  398. package/src/modules/bmb/workflows/edit-workflow/README.md +0 -119
  399. package/src/modules/bmb/workflows/edit-workflow/checklist.md +0 -70
  400. package/src/modules/bmb/workflows/edit-workflow/instructions.md +0 -342
  401. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +0 -27
  402. package/src/modules/bmm/_module-installer/assets/bmm-kb.md +0 -1
  403. package/src/modules/bmm/_module-installer/assets/technical-decisions.md +0 -30
  404. package/src/modules/bmm/docs/quick-spec-flow.md +0 -652
  405. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -112
  406. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
  407. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -39
  408. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +0 -425
  409. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +0 -180
  410. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -56
  411. package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
  412. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +0 -524
  413. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +0 -181
  414. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -61
  415. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
  416. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
  417. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +0 -299
  418. package/src/modules/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
  419. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -438
  420. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +0 -675
  421. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +0 -134
  422. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +0 -534
  423. package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
  424. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +0 -347
  425. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +0 -245
  426. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +0 -62
  427. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
  428. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1308
  429. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -93
  430. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -346
  431. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -703
  432. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -78
  433. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -217
  434. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -74
  435. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +0 -436
  436. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -980
  437. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
  438. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -90
  439. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -60
  440. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -321
  441. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
  442. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +0 -240
  443. package/src/modules/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -222
  444. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +0 -768
  445. package/src/modules/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -13
  446. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -100
  447. package/src/modules/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -12
  448. package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +0 -22
  449. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +0 -398
  450. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +0 -256
  451. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +0 -267
  452. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
  453. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -164
  454. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
  455. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -58
  456. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
  457. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
  458. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +0 -209
  459. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -63
  460. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
  461. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -28
  462. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
  463. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -25
  464. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
  465. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
  466. /package/src/modules/bmb/docs/{agent-compilation.md → agents/agent-compilation.md} +0 -0
  467. /package/src/modules/bmb/docs/{expert-agent-architecture.md → agents/expert-agent-architecture.md} +0 -0
  468. /package/src/modules/bmb/docs/{index.md → agents/index.md} +0 -0
  469. /package/src/modules/bmb/docs/{understanding-agent-types.md → agents/understanding-agent-types.md} +0 -0
  470. /package/src/modules/bmb/reference/{readme.md → README.md} +0 -0
  471. /package/src/modules/bmb/workflows/create-agent/{agent-validation-checklist.md → data/agent-validation-checklist.md} +0 -0
  472. /package/src/modules/bmb/workflows/create-agent/{brainstorm-context.md → data/brainstorm-context.md} +0 -0
  473. /package/src/modules/bmb/workflows/create-agent/{communication-presets.csv → data/communication-presets.csv} +0 -0
  474. /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/README.md +0 -0
  475. /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/brainstorm-context.md +0 -0
  476. /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/checklist.md +0 -0
  477. /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/installer-templates/install-config.yaml +0 -0
  478. /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/installer-templates/installer.js +0 -0
  479. /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/instructions.md +0 -0
  480. /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/module-structure.md +0 -0
  481. /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/workflow.yaml +0 -0
  482. /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/README.md +0 -0
  483. /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/checklist.md +0 -0
  484. /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/instructions.md +0 -0
  485. /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/workflow.yaml +0 -0
  486. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/README.md +0 -0
  487. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/checklist.md +0 -0
  488. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/instructions.md +0 -0
  489. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/template.md +0 -0
  490. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/workflow.yaml +0 -0
  491. /package/src/modules/bmm/{workflows/techdoc → data}/documentation-standards.md +0 -0
@@ -0,0 +1,265 @@
1
+ # Network Recorder Utility
2
+
3
+ ## Principle
4
+
5
+ Record network traffic to HAR files during test execution, then play back from disk for offline testing. Enables frontend tests to run in complete isolation from backend services with intelligent stateful CRUD detection for realistic API behavior.
6
+
7
+ ## Rationale
8
+
9
+ Traditional E2E tests require live backend services:
10
+
11
+ - Slow (real network latency)
12
+ - Flaky (backend instability affects tests)
13
+ - Expensive (full stack running for UI tests)
14
+ - Coupled (UI tests break when API changes)
15
+
16
+ HAR-based recording/playback provides:
17
+
18
+ - **True offline testing**: UI tests run without backend
19
+ - **Deterministic behavior**: Same responses every time
20
+ - **Fast execution**: No network latency
21
+ - **Stateful mocking**: CRUD operations work naturally (not just read-only)
22
+ - **Environment flexibility**: Map URLs for any environment
23
+
24
+ ## Pattern Examples
25
+
26
+ ### Example 1: Basic Record and Playback
27
+
28
+ **Context**: The fundamental pattern - record traffic once, play back for all subsequent runs.
29
+
30
+ **Implementation**:
31
+
32
+ ```typescript
33
+ import { test } from '@seontechnologies/playwright-utils/network-recorder/fixtures';
34
+
35
+ // Set mode in test file (recommended)
36
+ process.env.PW_NET_MODE = 'playback'; // or 'record'
37
+
38
+ test('CRUD operations work offline', async ({ page, context, networkRecorder }) => {
39
+ // Setup recorder (records or plays back based on PW_NET_MODE)
40
+ await networkRecorder.setup(context);
41
+
42
+ await page.goto('/');
43
+
44
+ // First time (record mode): Records all network traffic to HAR
45
+ // Subsequent runs (playback mode): Plays back from HAR (no backend!)
46
+ await page.fill('#movie-name', 'Inception');
47
+ await page.click('#add-movie');
48
+
49
+ // Intelligent CRUD detection makes this work offline!
50
+ await expect(page.getByText('Inception')).toBeVisible();
51
+ });
52
+ ```
53
+
54
+ **Key Points**:
55
+
56
+ - `PW_NET_MODE=record` captures traffic to HAR files
57
+ - `PW_NET_MODE=playback` replays from HAR files
58
+ - Set mode in test file or via environment variable
59
+ - HAR files auto-organized by test name
60
+ - Stateful mocking detects CRUD operations
61
+
62
+ ### Example 2: Complete CRUD Flow with HAR
63
+
64
+ **Context**: Full create-read-update-delete flow that works completely offline.
65
+
66
+ **Implementation**:
67
+
68
+ ```typescript
69
+ process.env.PW_NET_MODE = 'playback';
70
+
71
+ test.describe('Movie CRUD - offline with network recorder', () => {
72
+ test.beforeEach(async ({ page, networkRecorder, context }) => {
73
+ await networkRecorder.setup(context);
74
+ await page.goto('/');
75
+ });
76
+
77
+ test('should add, edit, delete movie browser-only', async ({ page, interceptNetworkCall }) => {
78
+ // Create
79
+ await page.fill('#movie-name', 'Inception');
80
+ await page.fill('#year', '2010');
81
+ await page.click('#add-movie');
82
+
83
+ // Verify create (reads from stateful HAR)
84
+ await expect(page.getByText('Inception')).toBeVisible();
85
+
86
+ // Update
87
+ await page.getByText('Inception').click();
88
+ await page.fill('#movie-name', "Inception Director's Cut");
89
+
90
+ const updateCall = interceptNetworkCall({
91
+ method: 'PUT',
92
+ url: '/movies/*',
93
+ });
94
+
95
+ await page.click('#save');
96
+ await updateCall; // Wait for update
97
+
98
+ // Verify update (HAR reflects state change!)
99
+ await page.click('#back');
100
+ await expect(page.getByText("Inception Director's Cut")).toBeVisible();
101
+
102
+ // Delete
103
+ await page.click(`[data-testid="delete-Inception Director's Cut"]`);
104
+
105
+ // Verify delete (HAR reflects removal!)
106
+ await expect(page.getByText("Inception Director's Cut")).not.toBeVisible();
107
+ });
108
+ });
109
+ ```
110
+
111
+ **Key Points**:
112
+
113
+ - Full CRUD operations work offline
114
+ - Stateful HAR mocking tracks creates/updates/deletes
115
+ - Combine with `interceptNetworkCall` for deterministic waits
116
+ - First run records, subsequent runs replay
117
+
118
+ ### Example 3: Environment Switching
119
+
120
+ **Context**: Record in dev environment, play back in CI with different base URLs.
121
+
122
+ **Implementation**:
123
+
124
+ ```typescript
125
+ // playwright.config.ts - Map URLs for different environments
126
+ export default defineConfig({
127
+ use: {
128
+ baseURL: process.env.CI ? 'https://app.ci.example.com' : 'http://localhost:3000',
129
+ },
130
+ });
131
+
132
+ // Test works in both environments
133
+ test('cross-environment playback', async ({ page, context, networkRecorder }) => {
134
+ await networkRecorder.setup(context);
135
+
136
+ // In dev: hits http://localhost:3000/api/movies
137
+ // In CI: HAR replays with https://app.ci.example.com/api/movies
138
+ await page.goto('/movies');
139
+
140
+ // Network recorder auto-maps URLs
141
+ await expect(page.getByTestId('movie-list')).toBeVisible();
142
+ });
143
+ ```
144
+
145
+ **Key Points**:
146
+
147
+ - HAR files record absolute URLs
148
+ - Playback maps to current baseURL
149
+ - Same HAR works across environments
150
+ - No manual URL rewriting needed
151
+
152
+ ### Example 4: Automatic vs Manual Mode Control
153
+
154
+ **Context**: Choose between environment-based switching or in-test mode control.
155
+
156
+ **Implementation**:
157
+
158
+ ```typescript
159
+ // Option 1: Environment variable (recommended for CI)
160
+ PW_NET_MODE=record npm run test:pw # Record traffic
161
+ PW_NET_MODE=playback npm run test:pw # Playback traffic
162
+
163
+ // Option 2: In-test control (recommended for development)
164
+ process.env.PW_NET_MODE = 'record' // Set at top of test file
165
+
166
+ test('my test', async ({ page, context, networkRecorder }) => {
167
+ await networkRecorder.setup(context)
168
+ // ...
169
+ })
170
+
171
+ // Option 3: Auto-fallback (record if HAR missing, else playback)
172
+ // This is the default behavior when PW_NET_MODE not set
173
+ test('auto mode', async ({ page, context, networkRecorder }) => {
174
+ await networkRecorder.setup(context)
175
+ // First run: auto-records
176
+ // Subsequent runs: auto-plays back
177
+ })
178
+ ```
179
+
180
+ **Key Points**:
181
+
182
+ - Three mode options: record, playback, auto
183
+ - `PW_NET_MODE` environment variable
184
+ - In-test `process.env.PW_NET_MODE` assignment
185
+ - Auto-fallback when no mode specified
186
+
187
+ ## Why Use This Instead of Native Playwright?
188
+
189
+ | Native Playwright (`routeFromHAR`) | network-recorder Utility |
190
+ | ---------------------------------- | ------------------------------ |
191
+ | ~80 lines setup boilerplate | ~5 lines total |
192
+ | Manual HAR file management | Automatic file organization |
193
+ | Complex setup/teardown | Automatic cleanup via fixtures |
194
+ | **Read-only tests** | **Full CRUD support** |
195
+ | **Stateless** | **Stateful mocking** |
196
+ | Manual URL mapping | Automatic environment mapping |
197
+
198
+ **The game-changer: Stateful CRUD detection**
199
+
200
+ Native Playwright HAR playback is stateless - a POST create followed by GET list won't show the created item. This utility intelligently tracks CRUD operations in memory to reflect state changes, making offline tests behave like real APIs.
201
+
202
+ ## Integration with Other Utilities
203
+
204
+ **With interceptNetworkCall** (deterministic waits):
205
+
206
+ ```typescript
207
+ test('use both utilities', async ({ page, context, networkRecorder, interceptNetworkCall }) => {
208
+ await networkRecorder.setup(context);
209
+
210
+ const createCall = interceptNetworkCall({
211
+ method: 'POST',
212
+ url: '/api/movies',
213
+ });
214
+
215
+ await page.click('#add-movie');
216
+ await createCall; // Wait for create (works with HAR!)
217
+
218
+ // Network recorder provides playback, intercept provides determinism
219
+ });
220
+ ```
221
+
222
+ ## Related Fragments
223
+
224
+ - `overview.md` - Installation and fixture patterns
225
+ - `intercept-network-call.md` - Combine for deterministic offline tests
226
+ - `auth-session.md` - Record authenticated traffic
227
+ - `network-first.md` - Core pattern for intercept-before-navigate
228
+
229
+ ## Anti-Patterns
230
+
231
+ **❌ Mixing record and playback in same test:**
232
+
233
+ ```typescript
234
+ process.env.PW_NET_MODE = 'record';
235
+ // ... some test code ...
236
+ process.env.PW_NET_MODE = 'playback'; // Don't switch mid-test
237
+ ```
238
+
239
+ **✅ One mode per test:**
240
+
241
+ ```typescript
242
+ process.env.PW_NET_MODE = 'playback'; // Set once at top
243
+
244
+ test('my test', async ({ page, context, networkRecorder }) => {
245
+ await networkRecorder.setup(context);
246
+ // Entire test uses playback mode
247
+ });
248
+ ```
249
+
250
+ **❌ Forgetting to call setup:**
251
+
252
+ ```typescript
253
+ test('broken', async ({ page, networkRecorder }) => {
254
+ await page.goto('/'); // HAR not active!
255
+ });
256
+ ```
257
+
258
+ **✅ Always call setup before navigation:**
259
+
260
+ ```typescript
261
+ test('correct', async ({ page, context, networkRecorder }) => {
262
+ await networkRecorder.setup(context); // Must setup first
263
+ await page.goto('/'); // Now HAR is active
264
+ });
265
+ ```
@@ -0,0 +1,284 @@
1
+ # Playwright Utils Overview
2
+
3
+ ## Principle
4
+
5
+ Use production-ready, fixture-based utilities from `@seontechnologies/playwright-utils` for common Playwright testing patterns. Build test helpers as pure functions first, then wrap in framework-specific fixtures for composability and reuse.
6
+
7
+ ## Rationale
8
+
9
+ Writing Playwright utilities from scratch for every project leads to:
10
+
11
+ - Duplicated code across test suites
12
+ - Inconsistent patterns and quality
13
+ - Maintenance burden when Playwright APIs change
14
+ - Missing advanced features (schema validation, HAR recording, auth persistence)
15
+
16
+ `@seontechnologies/playwright-utils` provides:
17
+
18
+ - **Production-tested utilities**: Used at SEON Technologies in production
19
+ - **Functional-first design**: Core logic as pure functions, fixtures for convenience
20
+ - **Composable fixtures**: Use `mergeTests` to combine utilities
21
+ - **TypeScript support**: Full type safety with generic types
22
+ - **Comprehensive coverage**: API requests, auth, network, logging, file handling, burn-in
23
+
24
+ ## Installation
25
+
26
+ ```bash
27
+ npm install -D @seontechnologies/playwright-utils
28
+ ```
29
+
30
+ **Peer Dependencies:**
31
+
32
+ - `@playwright/test` >= 1.54.1 (required)
33
+ - `ajv` >= 8.0.0 (optional - for JSON Schema validation)
34
+ - `js-yaml` >= 4.0.0 (optional - for YAML schema support)
35
+ - `zod` >= 3.0.0 (optional - for Zod schema validation)
36
+
37
+ ## Available Utilities
38
+
39
+ ### Core Testing Utilities
40
+
41
+ | Utility | Purpose | Test Context |
42
+ | -------------------------- | ------------------------------------------ | ------------- |
43
+ | **api-request** | Typed HTTP client with schema validation | API tests |
44
+ | **network-recorder** | HAR record/playback for offline testing | UI tests |
45
+ | **auth-session** | Token persistence, multi-user auth | Both UI & API |
46
+ | **recurse** | Cypress-style polling for async conditions | Both UI & API |
47
+ | **intercept-network-call** | Network spy/stub with auto JSON parsing | UI tests |
48
+ | **log** | Playwright report-integrated logging | Both UI & API |
49
+ | **file-utils** | CSV/XLSX/PDF/ZIP reading & validation | Both UI & API |
50
+ | **burn-in** | Smart test selection with git diff | CI/CD |
51
+ | **network-error-monitor** | Automatic HTTP 4xx/5xx detection | UI tests |
52
+
53
+ ## Design Patterns
54
+
55
+ ### Pattern 1: Functional Core, Fixture Shell
56
+
57
+ **Context**: All utilities follow the same architectural pattern - pure function as core, fixture as wrapper.
58
+
59
+ **Implementation**:
60
+
61
+ ```typescript
62
+ // Direct import (pass Playwright context explicitly)
63
+ import { apiRequest } from '@seontechnologies/playwright-utils';
64
+
65
+ test('direct usage', async ({ request }) => {
66
+ const { status, body } = await apiRequest({
67
+ request, // Must pass request context
68
+ method: 'GET',
69
+ path: '/api/users',
70
+ });
71
+ });
72
+
73
+ // Fixture import (context injected automatically)
74
+ import { test } from '@seontechnologies/playwright-utils/fixtures';
75
+
76
+ test('fixture usage', async ({ apiRequest }) => {
77
+ const { status, body } = await apiRequest({
78
+ // No need to pass request context
79
+ method: 'GET',
80
+ path: '/api/users',
81
+ });
82
+ });
83
+ ```
84
+
85
+ **Key Points**:
86
+
87
+ - Pure functions testable without Playwright running
88
+ - Fixtures inject framework dependencies automatically
89
+ - Choose direct import (more control) or fixture (convenience)
90
+
91
+ ### Pattern 2: Subpath Imports for Tree-Shaking
92
+
93
+ **Context**: Import only what you need to keep bundle sizes small.
94
+
95
+ **Implementation**:
96
+
97
+ ```typescript
98
+ // Import specific utility
99
+ import { apiRequest } from '@seontechnologies/playwright-utils/api-request';
100
+
101
+ // Import specific fixture
102
+ import { test } from '@seontechnologies/playwright-utils/api-request/fixtures';
103
+
104
+ // Import everything (use sparingly)
105
+ import { apiRequest, recurse, log } from '@seontechnologies/playwright-utils';
106
+ ```
107
+
108
+ **Key Points**:
109
+
110
+ - Subpath imports enable tree-shaking
111
+ - Keep bundle sizes minimal
112
+ - Import from specific paths for production builds
113
+
114
+ ### Pattern 3: Fixture Composition with mergeTests
115
+
116
+ **Context**: Combine multiple playwright-utils fixtures with your own custom fixtures.
117
+
118
+ **Implementation**:
119
+
120
+ ```typescript
121
+ // playwright/support/merged-fixtures.ts
122
+ import { mergeTests } from '@playwright/test';
123
+ import { test as apiRequestFixture } from '@seontechnologies/playwright-utils/api-request/fixtures';
124
+ import { test as authFixture } from '@seontechnologies/playwright-utils/auth-session/fixtures';
125
+ import { test as recurseFixture } from '@seontechnologies/playwright-utils/recurse/fixtures';
126
+ import { test as logFixture } from '@seontechnologies/playwright-utils/log/fixtures';
127
+
128
+ // Merge all fixtures into one test object
129
+ export const test = mergeTests(apiRequestFixture, authFixture, recurseFixture, logFixture);
130
+
131
+ export { expect } from '@playwright/test';
132
+ ```
133
+
134
+ ```typescript
135
+ // In your tests
136
+ import { test, expect } from '../support/merged-fixtures';
137
+
138
+ test('all utilities available', async ({ apiRequest, authToken, recurse, log }) => {
139
+ await log.step('Making authenticated API request');
140
+
141
+ const { body } = await apiRequest({
142
+ method: 'GET',
143
+ path: '/api/protected',
144
+ headers: { Authorization: `Bearer ${authToken}` },
145
+ });
146
+
147
+ await recurse(
148
+ () => apiRequest({ method: 'GET', path: `/status/${body.id}` }),
149
+ (res) => res.body.ready === true,
150
+ );
151
+ });
152
+ ```
153
+
154
+ **Key Points**:
155
+
156
+ - `mergeTests` combines multiple fixtures without conflicts
157
+ - Create one merged-fixtures.ts file per project
158
+ - Import test object from your merged fixtures in all tests
159
+ - All utilities available in single test signature
160
+
161
+ ## Integration with Existing Tests
162
+
163
+ ### Gradual Adoption Strategy
164
+
165
+ **1. Start with logging** (zero breaking changes):
166
+
167
+ ```typescript
168
+ import { log } from '@seontechnologies/playwright-utils';
169
+
170
+ test('existing test', async ({ page }) => {
171
+ await log.step('Navigate to page'); // Just add logging
172
+ await page.goto('/dashboard');
173
+ // Rest of test unchanged
174
+ });
175
+ ```
176
+
177
+ **2. Add API utilities** (for API tests):
178
+
179
+ ```typescript
180
+ import { test } from '@seontechnologies/playwright-utils/api-request/fixtures';
181
+
182
+ test('API test', async ({ apiRequest }) => {
183
+ const { status, body } = await apiRequest({
184
+ method: 'GET',
185
+ path: '/api/users',
186
+ });
187
+
188
+ expect(status).toBe(200);
189
+ });
190
+ ```
191
+
192
+ **3. Expand to network utilities** (for UI tests):
193
+
194
+ ```typescript
195
+ import { test } from '@seontechnologies/playwright-utils/fixtures';
196
+
197
+ test('UI with network control', async ({ page, interceptNetworkCall }) => {
198
+ const usersCall = interceptNetworkCall({
199
+ url: '**/api/users',
200
+ });
201
+
202
+ await page.goto('/dashboard');
203
+ const { responseJson } = await usersCall;
204
+
205
+ expect(responseJson).toHaveLength(10);
206
+ });
207
+ ```
208
+
209
+ **4. Full integration** (merged fixtures):
210
+
211
+ Create merged-fixtures.ts and use across all tests.
212
+
213
+ ## Related Fragments
214
+
215
+ - `api-request.md` - HTTP client with schema validation
216
+ - `network-recorder.md` - HAR-based offline testing
217
+ - `auth-session.md` - Token management
218
+ - `intercept-network-call.md` - Network interception
219
+ - `recurse.md` - Polling patterns
220
+ - `log.md` - Logging utility
221
+ - `file-utils.md` - File operations
222
+ - `fixtures-composition.md` - Advanced mergeTests patterns
223
+
224
+ ## Anti-Patterns
225
+
226
+ **❌ Don't mix direct and fixture imports in same test:**
227
+
228
+ ```typescript
229
+ import { apiRequest } from '@seontechnologies/playwright-utils';
230
+ import { test } from '@seontechnologies/playwright-utils/auth-session/fixtures';
231
+
232
+ test('bad', async ({ request, authToken }) => {
233
+ // Confusing - mixing direct (needs request) and fixture (has authToken)
234
+ await apiRequest({ request, method: 'GET', path: '/api/users' });
235
+ });
236
+ ```
237
+
238
+ **✅ Use consistent import style:**
239
+
240
+ ```typescript
241
+ import { test } from '../support/merged-fixtures';
242
+
243
+ test('good', async ({ apiRequest, authToken }) => {
244
+ // Clean - all from fixtures
245
+ await apiRequest({ method: 'GET', path: '/api/users' });
246
+ });
247
+ ```
248
+
249
+ **❌ Don't import everything when you need one utility:**
250
+
251
+ ```typescript
252
+ import * as utils from '@seontechnologies/playwright-utils'; // Large bundle
253
+ ```
254
+
255
+ **✅ Use subpath imports:**
256
+
257
+ ```typescript
258
+ import { apiRequest } from '@seontechnologies/playwright-utils/api-request'; // Small bundle
259
+ ```
260
+
261
+ ## Reference Implementation
262
+
263
+ The official `@seontechnologies/playwright-utils` repository provides working examples of all patterns described in these fragments.
264
+
265
+ **Repository:** https://github.com/seontechnologies/playwright-utils
266
+
267
+ **Key resources:**
268
+
269
+ - **Test examples:** `playwright/tests` - All utilities in action
270
+ - **Framework setup:** `playwright.config.ts`, `playwright/support/merged-fixtures.ts`
271
+ - **CI patterns:** `.github/workflows/` - GitHub Actions with sharding, parallelization
272
+
273
+ **Quick start:**
274
+
275
+ ```bash
276
+ git clone https://github.com/seontechnologies/playwright-utils.git
277
+ cd playwright-utils
278
+ nvm use
279
+ npm install
280
+ npm run test:pw-ui # Explore tests with Playwright UI
281
+ npm run test:pw
282
+ ```
283
+
284
+ All patterns in TEA fragments are production-tested in this repository.