bmad-method 6.0.0-alpha.22 → 6.0.0-alpha.23

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 (668) hide show
  1. package/.coderabbit.yaml +2 -2
  2. package/.github/workflows/docs.yaml +3 -12
  3. package/CHANGELOG.md +153 -0
  4. package/CNAME +1 -0
  5. package/CONTRIBUTING.md +9 -7
  6. package/README.md +40 -198
  7. package/docs/404.md +9 -0
  8. package/docs/{modules/bmm-bmad-method/images/README.md → _README_WORKFLOW_DIAGRAMS.md} +4 -1
  9. package/docs/_STYLE_GUIDE.md +347 -0
  10. package/docs/_archive/getting-started-bmadv4.md +247 -0
  11. package/{website/src/pages → docs}/downloads.md +17 -11
  12. package/docs/{modules/bmm-bmad-method/quick-flow-solo-dev.md → explanation/agents/barry-quick-flow.md} +18 -15
  13. package/docs/explanation/agents/index.md +28 -0
  14. package/docs/explanation/architecture/four-phases.md +126 -0
  15. package/docs/explanation/architecture/preventing-agent-conflicts.md +138 -0
  16. package/docs/explanation/architecture/why-solutioning-matters.md +91 -0
  17. package/docs/{modules/bmb-bmad-builder/custom-content.md → explanation/bmad-builder/custom-content-types.md} +17 -18
  18. package/docs/explanation/bmad-builder/index.md +66 -0
  19. package/docs/{modules/bmm-bmad-method → explanation/bmm}/index.md +27 -22
  20. package/docs/explanation/core/index.md +18 -0
  21. package/docs/explanation/core-concepts/agent-roles.md +204 -0
  22. package/docs/explanation/core-concepts/index.md +40 -0
  23. package/docs/{bmad-core-concepts/agents.md → explanation/core-concepts/what-are-agents.md} +8 -5
  24. package/docs/{bmad-core-concepts/modules.md → explanation/core-concepts/what-are-modules.md} +12 -9
  25. package/docs/explanation/core-concepts/what-are-workflows.md +217 -0
  26. package/docs/{modules/cis-creative-intelligence-suite → explanation/creative-intelligence}/index.md +26 -54
  27. package/docs/explanation/faq/brownfield-faq.md +73 -0
  28. package/docs/explanation/faq/getting-started-faq.md +62 -0
  29. package/docs/explanation/faq/implementation-faq.md +52 -0
  30. package/docs/explanation/faq/index.md +16 -0
  31. package/docs/explanation/faq/levels-and-tracks-faq.md +52 -0
  32. package/docs/explanation/faq/planning-faq.md +41 -0
  33. package/docs/explanation/faq/tools-faq.md +253 -0
  34. package/docs/explanation/faq/workflows-faq.md +61 -0
  35. package/docs/{modules/core → explanation/features}/advanced-elicitation.md +5 -2
  36. package/docs/{modules/core/brainstorming.md → explanation/features/brainstorming-techniques.md} +4 -1
  37. package/docs/{modules/bmm-bmad-method → explanation/features}/party-mode.md +7 -9
  38. package/docs/explanation/features/quick-flow.md +169 -0
  39. package/docs/{modules/bmm-bmad-method/test-architecture.md → explanation/features/tea-overview.md} +144 -98
  40. package/docs/{bmad-core-concepts/web-bundles/index.md → explanation/features/web-bundles.md} +6 -5
  41. package/docs/{modules/bmgd-bmad-game-dev/agents-guide.md → explanation/game-dev/agents.md} +8 -5
  42. package/docs/explanation/game-dev/bmgd-vs-bmm.md +150 -0
  43. package/docs/{modules/bmgd-bmad-game-dev/game-types-guide.md → explanation/game-dev/game-types.md} +7 -4
  44. package/docs/explanation/game-dev/index.md +85 -0
  45. package/docs/explanation/philosophy/facilitation-over-generation.md +121 -0
  46. package/docs/explanation/philosophy/testing-as-engineering.md +119 -0
  47. package/docs/how-to/brownfield/add-feature-to-existing.md +91 -0
  48. package/docs/how-to/brownfield/document-existing-project.md +84 -0
  49. package/docs/how-to/brownfield/index.md +102 -0
  50. package/docs/how-to/brownfield/quick-fix-in-brownfield.md +94 -0
  51. package/docs/{bmad-core-concepts/bmad-customization/agents.md → how-to/customization/customize-agents.md} +8 -10
  52. package/docs/{bmad-core-concepts/bmad-customization/workflows.md → how-to/customization/customize-workflows.md} +8 -5
  53. package/docs/how-to/customization/index.md +27 -0
  54. package/docs/{modules/core/document-sharding-guide.md → how-to/customization/shard-large-documents.md} +9 -17
  55. package/docs/{modules/bmb-bmad-builder/workflow-vendoring-customization-inheritance.md → how-to/customization/vendor-workflows.md} +4 -1
  56. package/docs/how-to/get-answers-about-bmad.md +98 -0
  57. package/docs/how-to/installation/index.md +15 -0
  58. package/docs/how-to/installation/install-bmad.md +138 -0
  59. package/docs/{modules/bmb-bmad-builder/custom-content-installation.md → how-to/installation/install-custom-modules.md} +12 -9
  60. package/docs/{bmad-core-concepts/installing/upgrading.md → how-to/installation/upgrade-to-v6.md} +6 -3
  61. package/docs/{modules/bmgd-bmad-game-dev/troubleshooting.md → how-to/troubleshooting/bmgd-troubleshooting.md} +7 -5
  62. package/docs/{modules/bmgd-bmad-game-dev/quick-flow-guide.md → how-to/workflows/bmgd-quick-flow.md} +8 -5
  63. package/docs/how-to/workflows/conduct-research.md +130 -0
  64. package/docs/how-to/workflows/create-architecture.md +147 -0
  65. package/docs/how-to/workflows/create-epics-and-stories.md +136 -0
  66. package/docs/how-to/workflows/create-prd.md +130 -0
  67. package/docs/how-to/workflows/create-product-brief.md +117 -0
  68. package/docs/how-to/workflows/create-story.md +119 -0
  69. package/docs/how-to/workflows/create-ux-design.md +117 -0
  70. package/docs/how-to/workflows/implement-story.md +127 -0
  71. package/docs/how-to/workflows/quick-spec.md +159 -0
  72. package/docs/how-to/workflows/run-brainstorming-session.md +94 -0
  73. package/docs/how-to/workflows/run-code-review.md +141 -0
  74. package/docs/how-to/workflows/run-implementation-readiness.md +162 -0
  75. package/docs/how-to/workflows/run-sprint-planning.md +111 -0
  76. package/docs/how-to/workflows/run-test-design.md +128 -0
  77. package/docs/how-to/workflows/setup-party-mode.md +117 -0
  78. package/docs/how-to/workflows/setup-test-framework.md +113 -0
  79. package/docs/index.md +35 -83
  80. package/docs/{modules/bmm-bmad-method/agents-guide.md → reference/agents/index.md} +36 -39
  81. package/docs/{modules/core → reference/configuration}/core-tasks.md +5 -2
  82. package/docs/{modules/core/global-core-config.md → reference/configuration/global-config.md} +4 -1
  83. package/docs/{modules/bmm-bmad-method/glossary.md → reference/glossary/index.md} +90 -24
  84. package/docs/{modules/bmgd-bmad-game-dev/workflows-guide.md → reference/workflows/bmgd-workflows.md} +11 -8
  85. package/docs/{modules/core → reference/workflows}/core-workflows.md +9 -6
  86. package/docs/{modules/bmm-bmad-method/workflow-document-project-reference.md → reference/workflows/document-project.md} +7 -4
  87. package/docs/reference/workflows/index.md +16 -0
  88. package/docs/tutorials/advanced/create-custom-agent.md +171 -0
  89. package/docs/tutorials/getting-started/getting-started-bmadv6.md +246 -0
  90. package/docs/tutorials/getting-started/quick-start-bmgd.md +260 -0
  91. package/docs/tutorials/getting-started/workflow-overview.jpg +0 -0
  92. package/eslint.config.mjs +2 -2
  93. package/package.json +10 -10
  94. package/samples/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml +1 -0
  95. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +1 -1
  96. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +1 -1
  97. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md +3 -3
  98. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md +3 -3
  99. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md +3 -3
  100. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md +3 -3
  101. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md +3 -3
  102. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md +3 -3
  103. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md +3 -3
  104. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md +3 -3
  105. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md +3 -3
  106. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md +3 -3
  107. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md +3 -3
  108. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md +2 -2
  109. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md +1 -1
  110. package/samples/sample-custom-modules/sample-wellness-module/agents/meditation-guide.agent.yaml +1 -0
  111. package/src/core/agents/bmad-master.agent.yaml +1 -0
  112. package/src/core/tasks/shard-doc.xml +2 -2
  113. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +68 -9
  114. package/src/core/workflows/brainstorming/workflow.md +7 -0
  115. package/src/modules/bmb/agents/agent-builder.agent.yaml +5 -0
  116. package/src/modules/bmb/agents/module-builder.agent.yaml +5 -8
  117. package/src/modules/bmb/agents/workflow-builder.agent.yaml +16 -7
  118. package/src/modules/bmb/workflows/agent/data/agent-menu-patterns.md +5 -5
  119. package/src/modules/bmb/workflows/agent/data/critical-actions.md +2 -2
  120. package/src/modules/bmb/workflows/agent/data/expert-agent-architecture.md +1 -1
  121. package/src/modules/bmb/workflows/agent/data/expert-agent-validation.md +2 -1
  122. package/src/modules/bmb/workflows/agent/data/module-agent-validation.md +2 -0
  123. package/src/modules/bmb/workflows/agent/data/reference/expert-examples/journal-keeper/journal-keeper.agent.yaml +1 -0
  124. package/src/modules/bmb/workflows/agent/data/reference/module-examples/architect.agent.yaml +1 -0
  125. package/src/modules/bmb/workflows/agent/data/reference/module-examples/security-engineer.agent.yaml +1 -0
  126. package/src/modules/bmb/workflows/agent/data/reference/module-examples/trend-analyst.agent.yaml +1 -0
  127. package/src/modules/bmb/workflows/agent/data/reference/simple-examples/commit-poet.agent.yaml +1 -0
  128. package/src/modules/bmb/workflows/agent/data/simple-agent-validation.md +2 -1
  129. package/src/modules/bmb/workflows/agent/steps-c/step-01-brainstorm.md +3 -1
  130. package/src/modules/bmb/workflows/agent/steps-c/step-02-discovery.md +3 -1
  131. package/src/modules/bmb/workflows/agent/steps-c/step-03-type-metadata.md +6 -4
  132. package/src/modules/bmb/workflows/agent/steps-c/step-04-persona.md +4 -2
  133. package/src/modules/bmb/workflows/agent/steps-c/step-05-commands-menu.md +4 -2
  134. package/src/modules/bmb/workflows/agent/steps-c/step-06-activation.md +11 -7
  135. package/src/modules/bmb/workflows/agent/steps-c/step-07a-build-simple.md +7 -5
  136. package/src/modules/bmb/workflows/agent/steps-c/step-07b-build-expert.md +16 -16
  137. package/src/modules/bmb/workflows/agent/steps-c/step-07c-build-module.md +2 -2
  138. package/src/modules/bmb/workflows/agent/steps-c/{step-09-celebrate.md → step-08-celebrate.md} +14 -9
  139. package/src/modules/bmb/workflows/agent/steps-e/e-01-load-existing.md +12 -5
  140. package/src/modules/bmb/workflows/agent/steps-e/e-02-discover-edits.md +5 -3
  141. package/src/modules/bmb/workflows/agent/steps-e/e-03-placeholder.md +1 -0
  142. package/src/modules/bmb/workflows/agent/steps-e/e-04-type-metadata.md +3 -1
  143. package/src/modules/bmb/workflows/agent/steps-e/e-05-persona.md +3 -1
  144. package/src/modules/bmb/workflows/agent/steps-e/e-06-commands-menu.md +3 -1
  145. package/src/modules/bmb/workflows/agent/steps-e/e-07-activation.md +13 -10
  146. package/src/modules/bmb/workflows/agent/steps-e/e-08a-edit-simple.md +8 -5
  147. package/src/modules/bmb/workflows/agent/steps-e/e-08b-edit-expert.md +7 -5
  148. package/src/modules/bmb/workflows/agent/steps-e/e-08c-edit-module.md +8 -5
  149. package/src/modules/bmb/workflows/agent/steps-e/{e-10-celebrate.md → e-09-celebrate.md} +13 -8
  150. package/src/modules/bmb/workflows/agent/steps-v/v-01-load-review.md +14 -6
  151. package/src/modules/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +54 -11
  152. package/src/modules/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +62 -10
  153. package/src/modules/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +84 -10
  154. package/src/modules/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +75 -10
  155. package/src/modules/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +76 -16
  156. package/src/modules/bmb/workflows/agent/steps-v/v-03-summary.md +5 -1
  157. package/src/modules/bmb/workflows/agent/templates/expert-agent-template/expert-agent.template.md +1 -0
  158. package/src/modules/bmb/workflows/agent/templates/simple-agent.template.md +1 -0
  159. package/src/modules/bmb/workflows/module/data/agent-architecture.md +179 -0
  160. package/src/modules/bmb/workflows/module/data/agent-spec-template.md +79 -0
  161. package/src/modules/bmb/workflows/module/data/module-installer-standards.md +348 -0
  162. package/src/modules/bmb/workflows/module/data/module-standards.md +280 -0
  163. package/src/modules/bmb/workflows/module/data/module-yaml-conventions.md +392 -0
  164. package/src/modules/bmb/workflows/module/steps-b/step-01-welcome.md +147 -0
  165. package/src/modules/bmb/workflows/module/steps-b/step-02-spark.md +140 -0
  166. package/src/modules/bmb/workflows/module/steps-b/step-03-module-type.md +148 -0
  167. package/src/modules/bmb/workflows/module/steps-b/step-04-vision.md +82 -0
  168. package/src/modules/bmb/workflows/module/steps-b/step-05-identity.md +96 -0
  169. package/src/modules/bmb/workflows/module/steps-b/step-06-users.md +85 -0
  170. package/src/modules/bmb/workflows/module/steps-b/step-07-value.md +75 -0
  171. package/src/modules/bmb/workflows/module/steps-b/step-08-agents.md +96 -0
  172. package/src/modules/bmb/workflows/module/steps-b/step-09-workflows.md +82 -0
  173. package/src/modules/bmb/workflows/module/steps-b/step-10-tools.md +90 -0
  174. package/src/modules/bmb/workflows/module/steps-b/step-11-scenarios.md +83 -0
  175. package/src/modules/bmb/workflows/module/steps-b/step-12-creative.md +94 -0
  176. package/src/modules/bmb/workflows/module/steps-b/step-13-review.md +104 -0
  177. package/src/modules/bmb/workflows/module/steps-b/step-14-finalize.md +117 -0
  178. package/src/modules/bmb/workflows/module/steps-c/step-01-load-brief.md +178 -0
  179. package/src/modules/bmb/workflows/module/steps-c/step-01b-continue.md +83 -0
  180. package/src/modules/bmb/workflows/module/steps-c/step-02-structure.md +109 -0
  181. package/src/modules/bmb/workflows/module/steps-c/step-03-config.md +118 -0
  182. package/src/modules/bmb/workflows/module/steps-c/step-04-installer.md +160 -0
  183. package/src/modules/bmb/workflows/module/steps-c/step-05-agents.md +167 -0
  184. package/src/modules/bmb/workflows/module/steps-c/step-06-workflows.md +183 -0
  185. package/src/modules/bmb/workflows/module/steps-c/step-07-docs.md +402 -0
  186. package/src/modules/bmb/workflows/module/steps-c/step-08-complete.md +123 -0
  187. package/src/modules/bmb/workflows/module/steps-e/step-01-load-target.md +81 -0
  188. package/src/modules/bmb/workflows/module/steps-e/step-02-select-edit.md +77 -0
  189. package/src/modules/bmb/workflows/module/steps-e/step-03-apply-edit.md +77 -0
  190. package/src/modules/bmb/workflows/module/steps-e/step-04-review.md +80 -0
  191. package/src/modules/bmb/workflows/module/steps-e/step-05-confirm.md +75 -0
  192. package/src/modules/bmb/workflows/module/steps-v/step-01-load-target.md +96 -0
  193. package/src/modules/bmb/workflows/module/steps-v/step-02-file-structure.md +94 -0
  194. package/src/modules/bmb/workflows/module/steps-v/step-03-module-yaml.md +99 -0
  195. package/src/modules/bmb/workflows/module/steps-v/step-04-agent-specs.md +152 -0
  196. package/src/modules/bmb/workflows/module/steps-v/step-05-workflow-specs.md +152 -0
  197. package/src/modules/bmb/workflows/module/steps-v/step-06-documentation.md +143 -0
  198. package/src/modules/bmb/workflows/module/steps-v/step-07-installation.md +113 -0
  199. package/src/modules/bmb/workflows/module/steps-v/step-08-report.md +197 -0
  200. package/src/modules/bmb/workflows/module/templates/brief-template.md +154 -0
  201. package/src/modules/bmb/workflows/module/templates/workflow-spec-template.md +96 -0
  202. package/src/modules/bmb/workflows/module/workflow.md +100 -0
  203. package/src/modules/bmb/workflows/workflow/data/architecture.md +152 -0
  204. package/src/modules/bmb/workflows/workflow/data/csv-data-file-standards.md +81 -0
  205. package/src/modules/bmb/workflows/workflow/data/frontmatter-standards.md +225 -0
  206. package/src/modules/bmb/workflows/workflow/data/input-discovery-standards.md +269 -0
  207. package/src/modules/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +50 -0
  208. package/src/modules/bmb/workflows/workflow/data/menu-handling-standards.md +167 -0
  209. package/src/modules/bmb/workflows/workflow/data/output-format-standards.md +188 -0
  210. package/src/modules/bmb/workflows/workflow/data/step-file-rules.md +235 -0
  211. package/src/modules/bmb/workflows/workflow/data/step-type-patterns.md +311 -0
  212. package/src/modules/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +386 -0
  213. package/src/modules/bmb/workflows/workflow/data/trimodal-workflow-structure.md +209 -0
  214. package/src/modules/bmb/workflows/workflow/data/workflow-chaining-standards.md +271 -0
  215. package/src/modules/bmb/workflows/workflow/data/workflow-examples.md +276 -0
  216. package/src/modules/bmb/workflows/workflow/data/workflow-type-criteria.md +172 -0
  217. package/src/modules/bmb/workflows/workflow/steps-c/step-00-conversion.md +262 -0
  218. package/src/modules/bmb/workflows/workflow/steps-c/step-01-discovery.md +194 -0
  219. package/src/modules/bmb/workflows/workflow/steps-c/step-01b-continuation.md +3 -0
  220. package/src/modules/bmb/workflows/workflow/steps-c/step-02-classification.md +269 -0
  221. package/src/modules/bmb/workflows/workflow/steps-c/step-03-requirements.md +282 -0
  222. package/src/modules/bmb/workflows/workflow/steps-c/step-04-tools.md +281 -0
  223. package/src/modules/bmb/workflows/workflow/steps-c/step-05-plan-review.md +242 -0
  224. package/src/modules/bmb/workflows/{create-workflow/steps → workflow/steps-c}/step-06-design.md +92 -35
  225. package/src/modules/bmb/workflows/workflow/steps-c/step-07-foundation.md +238 -0
  226. package/src/modules/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +377 -0
  227. package/src/modules/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +350 -0
  228. package/src/modules/bmb/workflows/workflow/steps-c/step-10-confirmation.md +320 -0
  229. package/src/modules/bmb/workflows/workflow/steps-c/step-11-completion.md +191 -0
  230. package/src/modules/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +237 -0
  231. package/src/modules/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +248 -0
  232. package/src/modules/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +252 -0
  233. package/src/modules/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +275 -0
  234. package/src/modules/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +154 -0
  235. package/src/modules/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +190 -0
  236. package/src/modules/bmb/workflows/workflow/steps-e/step-e-07-complete.md +206 -0
  237. package/src/modules/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +109 -0
  238. package/src/modules/bmb/workflows/workflow/steps-v/step-01-validate.md +221 -0
  239. package/src/modules/bmb/workflows/workflow/steps-v/step-01b-structure.md +152 -0
  240. package/src/modules/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +199 -0
  241. package/src/modules/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +265 -0
  242. package/src/modules/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +164 -0
  243. package/src/modules/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +211 -0
  244. package/src/modules/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +200 -0
  245. package/src/modules/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +195 -0
  246. package/src/modules/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +209 -0
  247. package/src/modules/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +199 -0
  248. package/src/modules/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +179 -0
  249. package/src/modules/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +186 -0
  250. package/src/modules/bmb/workflows/workflow/steps-v/step-10-report-complete.md +154 -0
  251. package/src/modules/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +237 -0
  252. package/src/modules/bmb/workflows/workflow/templates/minimal-output-template.md +11 -0
  253. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-01-init-continuable-template.md +3 -3
  254. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-1b-template.md +1 -1
  255. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-template.md +14 -14
  256. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/workflow-template.md +2 -4
  257. package/src/modules/bmb/workflows/workflow/workflow.md +109 -0
  258. package/src/modules/bmgd/agents/game-architect.agent.yaml +1 -0
  259. package/src/modules/bmgd/agents/game-designer.agent.yaml +1 -0
  260. package/src/modules/bmgd/agents/game-dev.agent.yaml +1 -0
  261. package/src/modules/bmgd/agents/game-qa.agent.yaml +1 -0
  262. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +1 -0
  263. package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +2 -1
  264. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +1 -1
  265. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +4 -3
  266. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +3 -3
  267. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +50 -45
  268. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +1 -1
  269. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +4 -1
  270. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +3 -3
  271. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +3 -3
  272. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +1 -1
  273. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +2 -2
  274. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +2 -2
  275. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +2 -2
  276. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +2 -2
  277. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +2 -2
  278. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +2 -2
  279. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +1 -1
  280. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +3 -3
  281. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +1 -1
  282. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +2 -2
  283. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +2 -2
  284. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +2 -2
  285. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +2 -2
  286. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +2 -2
  287. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +2 -2
  288. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +2 -2
  289. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +2 -2
  290. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +2 -2
  291. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +2 -2
  292. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +2 -2
  293. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +2 -2
  294. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +1 -1
  295. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +1 -1
  296. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +3 -3
  297. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +11 -11
  298. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +2 -2
  299. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +2 -2
  300. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +2 -2
  301. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +2 -2
  302. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +2 -2
  303. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +2 -2
  304. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +2 -2
  305. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +2 -2
  306. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +2 -2
  307. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +1 -1
  308. package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +1 -1
  309. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +3 -3
  310. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +9 -9
  311. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +2 -2
  312. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +2 -2
  313. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +2 -2
  314. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +2 -2
  315. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +2 -2
  316. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +2 -2
  317. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +2 -2
  318. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +1 -1
  319. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +1 -1
  320. package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +1 -0
  321. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +1 -1
  322. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +1 -1
  323. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +2 -2
  324. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +1 -1
  325. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +1 -1
  326. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +1 -1
  327. package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +2 -2
  328. package/src/modules/bmgd/workflows/bmgd-quick-flow/{create-tech-spec → quick-spec}/workflow.yaml +2 -2
  329. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +2 -2
  330. package/src/modules/bmm/agents/analyst.agent.yaml +3 -2
  331. package/src/modules/bmm/agents/architect.agent.yaml +3 -1
  332. package/src/modules/bmm/agents/dev.agent.yaml +4 -3
  333. package/src/modules/bmm/agents/pm.agent.yaml +11 -2
  334. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +3 -2
  335. package/src/modules/bmm/agents/sm.agent.yaml +1 -0
  336. package/src/modules/bmm/agents/tea.agent.yaml +6 -3
  337. package/src/modules/bmm/agents/tech-writer.agent.yaml +1 -0
  338. package/src/modules/bmm/agents/ux-designer.agent.yaml +1 -0
  339. package/src/modules/bmm/module.yaml +1 -1
  340. package/src/modules/bmm/testarch/knowledge/api-request.md +155 -16
  341. package/src/modules/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
  342. package/src/modules/bmm/testarch/knowledge/auth-session.md +197 -1
  343. package/src/modules/bmm/testarch/knowledge/file-utils.md +257 -54
  344. package/src/modules/bmm/testarch/knowledge/intercept-network-call.md +159 -9
  345. package/src/modules/bmm/testarch/knowledge/log.md +170 -35
  346. package/src/modules/bmm/testarch/knowledge/network-error-monitor.md +228 -95
  347. package/src/modules/bmm/testarch/knowledge/network-recorder.md +314 -52
  348. package/src/modules/bmm/testarch/knowledge/overview.md +15 -12
  349. package/src/modules/bmm/testarch/knowledge/recurse.md +173 -48
  350. package/src/modules/bmm/testarch/tea-index.csv +19 -18
  351. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +3 -8
  352. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +0 -5
  353. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +1 -6
  354. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +1 -6
  355. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +1 -6
  356. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +1 -6
  357. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +0 -5
  358. package/src/modules/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +197 -0
  359. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-01-init.md +7 -13
  360. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-01b-continue.md +36 -49
  361. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +224 -0
  362. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-03-success.md +50 -114
  363. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +213 -0
  364. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +207 -0
  365. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-06-innovation.md +43 -79
  366. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-07-project-type.md +37 -58
  367. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-08-scoping.md +43 -114
  368. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-09-functional.md +21 -60
  369. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-10-nonfunctional.md +32 -84
  370. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +217 -0
  371. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +180 -0
  372. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +247 -0
  373. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  374. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +249 -0
  375. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +253 -0
  376. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +168 -0
  377. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +218 -0
  378. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
  379. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
  380. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
  381. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  382. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
  383. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
  384. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  385. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  386. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
  387. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
  388. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  389. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
  390. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
  391. package/src/modules/bmm/workflows/2-plan-workflows/prd/{prd-template.md → templates/prd-template.md} +0 -1
  392. package/src/modules/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +433 -0
  393. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +96 -9
  394. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +2 -2
  395. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +2 -2
  396. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +2 -2
  397. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +2 -2
  398. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +2 -2
  399. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +1 -1
  400. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +1 -1
  401. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +2 -2
  402. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +2 -2
  403. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +2 -2
  404. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +1 -1
  405. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +2 -0
  406. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +1 -1
  407. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +2 -2
  408. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +2 -1
  409. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +1 -1
  410. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +2 -1
  411. package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +2 -2
  412. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +6 -6
  413. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +2 -2
  414. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +2 -2
  415. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +2 -2
  416. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +2 -2
  417. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +1 -1
  418. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +1 -1
  419. package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-01-understand.md +3 -3
  420. package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-02-investigate.md +1 -1
  421. package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-03-generate.md +1 -1
  422. package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-04-review.md +1 -1
  423. package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/workflow.md +2 -2
  424. package/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +1 -1
  425. package/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +1 -1
  426. package/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +1 -1
  427. package/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +1 -1
  428. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +2 -2
  429. package/src/modules/bmm/workflows/workflow-status/instructions.md +4 -4
  430. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +2 -1
  431. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +1 -0
  432. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +1 -0
  433. package/src/modules/cis/agents/innovation-strategist.agent.yaml +1 -0
  434. package/src/modules/cis/agents/presentation-master.agent.yaml +1 -0
  435. package/src/modules/cis/module.yaml +1 -0
  436. package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
  437. package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
  438. package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
  439. package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
  440. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +1 -0
  441. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +1 -0
  442. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +1 -0
  443. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +1 -0
  444. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +1 -0
  445. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +1 -0
  446. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +1 -0
  447. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +1 -0
  448. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +1 -0
  449. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +1 -0
  450. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +1 -0
  451. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +1 -0
  452. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +1 -0
  453. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +1 -0
  454. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +1 -0
  455. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +1 -0
  456. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +1 -0
  457. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +1 -0
  458. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +1 -0
  459. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +1 -0
  460. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +1 -0
  461. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +1 -0
  462. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +1 -0
  463. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +1 -0
  464. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +1 -0
  465. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +1 -0
  466. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +1 -0
  467. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +1 -0
  468. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +1 -0
  469. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +1 -0
  470. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +1 -0
  471. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +1 -0
  472. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +1 -0
  473. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +1 -0
  474. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +1 -0
  475. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +1 -0
  476. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +1 -0
  477. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +1 -0
  478. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +1 -0
  479. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +1 -0
  480. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +1 -0
  481. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +1 -0
  482. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +1 -0
  483. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +1 -0
  484. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +1 -0
  485. package/tools/build-docs.js +200 -271
  486. package/tools/cli/commands/install.js +8 -2
  487. package/tools/cli/installers/install-messages.yaml +36 -36
  488. package/tools/cli/installers/lib/core/config-collector.js +11 -1
  489. package/tools/cli/installers/lib/core/installer.js +3 -4
  490. package/tools/cli/installers/lib/core/manifest-generator.js +46 -2
  491. package/tools/cli/installers/lib/ide/antigravity.js +3 -3
  492. package/tools/cli/installers/lib/ide/claude-code.js +3 -3
  493. package/tools/cli/installers/lib/ide/codex.js +1 -1
  494. package/tools/cli/installers/lib/ide/cursor.js +57 -304
  495. package/tools/cli/installers/lib/ide/github-copilot.js +1 -1
  496. package/tools/cli/lib/ui.js +22 -1
  497. package/tools/fix-doc-links.js +288 -0
  498. package/tools/schema/agent.js +1 -0
  499. package/tools/validate-doc-links.js +363 -0
  500. package/website/README.md +76 -0
  501. package/website/astro.config.mjs +218 -0
  502. package/website/src/components/Banner.astro +59 -0
  503. package/website/src/components/Header.astro +121 -0
  504. package/website/src/components/MobileMenuFooter.astro +53 -0
  505. package/website/src/content/config.ts +6 -0
  506. package/website/src/lib/site-url.js +25 -0
  507. package/website/src/rehype-markdown-links.js +102 -0
  508. package/website/src/styles/custom.css +483 -0
  509. package/docs/bmad-core-concepts/bmad-customization/index.md +0 -26
  510. package/docs/bmad-core-concepts/index.md +0 -37
  511. package/docs/bmad-core-concepts/installing/index.md +0 -77
  512. package/docs/bmad-core-concepts/workflows.md +0 -89
  513. package/docs/modules/bmb-bmad-builder/agent-creation-guide.md +0 -166
  514. package/docs/modules/bmb-bmad-builder/index.md +0 -60
  515. package/docs/modules/bmgd-bmad-game-dev/glossary.md +0 -293
  516. package/docs/modules/bmgd-bmad-game-dev/index.md +0 -175
  517. package/docs/modules/bmgd-bmad-game-dev/quick-start.md +0 -250
  518. package/docs/modules/bmm-bmad-method/bmad-quick-flow.md +0 -506
  519. package/docs/modules/bmm-bmad-method/brownfield-guide.md +0 -747
  520. package/docs/modules/bmm-bmad-method/faq.md +0 -540
  521. package/docs/modules/bmm-bmad-method/quick-spec-flow.md +0 -622
  522. package/docs/modules/bmm-bmad-method/quick-start.md +0 -363
  523. package/docs/modules/bmm-bmad-method/troubleshooting.md +0 -3
  524. package/docs/modules/bmm-bmad-method/workflows-analysis.md +0 -199
  525. package/docs/modules/bmm-bmad-method/workflows-implementation.md +0 -210
  526. package/docs/modules/bmm-bmad-method/workflows-planning.md +0 -89
  527. package/docs/modules/bmm-bmad-method/workflows-solutioning.md +0 -509
  528. package/docs/modules/core/index.md +0 -15
  529. package/docs/modules/core/party-mode.md +0 -50
  530. package/src/core/tasks/validate-workflow.xml +0 -89
  531. package/src/modules/bmb/docs/workflows/architecture.md +0 -220
  532. package/src/modules/bmb/docs/workflows/csv-data-file-standards.md +0 -206
  533. package/src/modules/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +0 -220
  534. package/src/modules/bmb/docs/workflows/step-file-rules.md +0 -469
  535. package/src/modules/bmb/docs/workflows/templates/step-file.md +0 -139
  536. package/src/modules/bmb/docs/workflows/templates/workflow.md +0 -58
  537. package/src/modules/bmb/docs/workflows/terms.md +0 -97
  538. package/src/modules/bmb/reference/agents/simple-examples/README.md +0 -223
  539. package/src/modules/bmb/reference/readme.md +0 -3
  540. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +0 -18
  541. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +0 -16
  542. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +0 -28
  543. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +0 -177
  544. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +0 -121
  545. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +0 -165
  546. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +0 -154
  547. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +0 -183
  548. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +0 -168
  549. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +0 -195
  550. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +0 -25
  551. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +0 -68
  552. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +0 -29
  553. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +0 -47
  554. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +0 -37
  555. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +0 -18
  556. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +0 -59
  557. package/src/modules/bmb/workflows/agent/steps-c/step-08a-plan-traceability.md +0 -203
  558. package/src/modules/bmb/workflows/agent/steps-c/step-08b-metadata-validation.md +0 -135
  559. package/src/modules/bmb/workflows/agent/steps-c/step-08c-persona-validation.md +0 -161
  560. package/src/modules/bmb/workflows/agent/steps-c/step-08d-menu-validation.md +0 -158
  561. package/src/modules/bmb/workflows/agent/steps-c/step-08e-structure-validation.md +0 -306
  562. package/src/modules/bmb/workflows/agent/steps-c/step-08f-sidecar-validation.md +0 -462
  563. package/src/modules/bmb/workflows/agent/steps-e/e-03a-validate-metadata.md +0 -78
  564. package/src/modules/bmb/workflows/agent/steps-e/e-03b-validate-persona.md +0 -76
  565. package/src/modules/bmb/workflows/agent/steps-e/e-03c-validate-menu.md +0 -75
  566. package/src/modules/bmb/workflows/agent/steps-e/e-03d-validate-structure.md +0 -75
  567. package/src/modules/bmb/workflows/agent/steps-e/e-03e-validate-sidecar.md +0 -78
  568. package/src/modules/bmb/workflows/agent/steps-e/e-03f-validation-summary.md +0 -119
  569. package/src/modules/bmb/workflows/agent/steps-e/e-09a-validate-metadata.md +0 -70
  570. package/src/modules/bmb/workflows/agent/steps-e/e-09b-validate-persona.md +0 -70
  571. package/src/modules/bmb/workflows/agent/steps-e/e-09c-validate-menu.md +0 -69
  572. package/src/modules/bmb/workflows/agent/steps-e/e-09d-validate-structure.md +0 -69
  573. package/src/modules/bmb/workflows/agent/steps-e/e-09e-validate-sidecar.md +0 -70
  574. package/src/modules/bmb/workflows/agent/steps-e/e-09f-validation-summary.md +0 -111
  575. package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +0 -156
  576. package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +0 -170
  577. package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +0 -218
  578. package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +0 -268
  579. package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +0 -229
  580. package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +0 -234
  581. package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +0 -297
  582. package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +0 -229
  583. package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +0 -187
  584. package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +0 -310
  585. package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +0 -338
  586. package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +0 -336
  587. package/src/modules/bmb/workflows/create-module/templates/agent.template.md +0 -313
  588. package/src/modules/bmb/workflows/create-module/templates/installer.template.js +0 -47
  589. package/src/modules/bmb/workflows/create-module/templates/module-plan.template.md +0 -5
  590. package/src/modules/bmb/workflows/create-module/templates/module.template.yaml +0 -53
  591. package/src/modules/bmb/workflows/create-module/templates/workflow-plan-template.md +0 -23
  592. package/src/modules/bmb/workflows/create-module/validation.md +0 -126
  593. package/src/modules/bmb/workflows/create-module/workflow.md +0 -56
  594. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/dietary-restrictions.csv +0 -18
  595. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/macro-calculator.csv +0 -16
  596. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/recipe-database.csv +0 -28
  597. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-01-init.md +0 -177
  598. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-01b-continue.md +0 -150
  599. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-02-profile.md +0 -164
  600. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-03-assessment.md +0 -152
  601. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-04-strategy.md +0 -182
  602. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-05-shopping.md +0 -167
  603. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-06-prep-schedule.md +0 -194
  604. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/assessment-section.md +0 -25
  605. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/nutrition-plan.md +0 -68
  606. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/prep-schedule-section.md +0 -29
  607. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/profile-section.md +0 -47
  608. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/shopping-section.md +0 -37
  609. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/strategy-section.md +0 -18
  610. package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/workflow.md +0 -58
  611. package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +0 -158
  612. package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +0 -212
  613. package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +0 -251
  614. package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +0 -217
  615. package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +0 -290
  616. package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +0 -323
  617. package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +0 -285
  618. package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +0 -188
  619. package/src/modules/bmb/workflows/create-workflow/workflow.md +0 -59
  620. package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +0 -217
  621. package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +0 -254
  622. package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +0 -218
  623. package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +0 -194
  624. package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +0 -246
  625. package/src/modules/bmb/workflows/edit-workflow/templates/completion-summary.md +0 -75
  626. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md +0 -68
  627. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md +0 -40
  628. package/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md +0 -51
  629. package/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md +0 -56
  630. package/src/modules/bmb/workflows/edit-workflow/workflow.md +0 -59
  631. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +0 -153
  632. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +0 -244
  633. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +0 -275
  634. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +0 -296
  635. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +0 -265
  636. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +0 -361
  637. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +0 -259
  638. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +0 -302
  639. package/src/modules/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +0 -140
  640. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +0 -59
  641. package/src/modules/bmb/workflows-legacy/edit-module/README.md +0 -171
  642. package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +0 -163
  643. package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +0 -340
  644. package/src/modules/bmb/workflows-legacy/edit-module/workflow.yaml +0 -34
  645. package/src/modules/bmb/workflows-legacy/module-brief/README.md +0 -264
  646. package/src/modules/bmb/workflows-legacy/module-brief/checklist.md +0 -116
  647. package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +0 -268
  648. package/src/modules/bmb/workflows-legacy/module-brief/template.md +0 -275
  649. package/src/modules/bmb/workflows-legacy/module-brief/workflow.yaml +0 -36
  650. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +0 -421
  651. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +0 -291
  652. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +0 -271
  653. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +0 -186
  654. package/website/css/custom.css +0 -52
  655. package/website/docusaurus.config.js +0 -179
  656. package/website/sidebars.js +0 -139
  657. package/website/src/pages/index.js +0 -50
  658. /package/docs/{modules/bmm-bmad-method → tutorials/getting-started}/images/workflow-method-greenfield.excalidraw +0 -0
  659. /package/docs/{modules/bmm-bmad-method → tutorials/getting-started}/images/workflow-method-greenfield.svg +0 -0
  660. /package/docs/{modules/bmgd-bmad-game-dev → tutorials/getting-started/images}/workflow-overview.jpg +0 -0
  661. /package/src/modules/bmb/{docs/workflows → workflows/workflow/data}/common-workflow-tools.csv +0 -0
  662. /package/src/modules/bmgd/workflows/bmgd-quick-flow/{create-tech-spec → quick-spec}/instructions.md +0 -0
  663. /package/src/modules/bmm/workflows/2-plan-workflows/prd/{domain-complexity.csv → data/domain-complexity.csv} +0 -0
  664. /package/src/modules/bmm/workflows/2-plan-workflows/prd/{project-types.csv → data/project-types.csv} +0 -0
  665. /package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/tech-spec-template.md +0 -0
  666. /package/website/{static → public}/favicon.ico +0 -0
  667. /package/website/{static → public}/img/logo.svg +0 -0
  668. /package/website/{static → public}/robots.txt +0 -0
@@ -21,6 +21,46 @@ HAR-based recording/playback provides:
21
21
  - **Stateful mocking**: CRUD operations work naturally (not just read-only)
22
22
  - **Environment flexibility**: Map URLs for any environment
23
23
 
24
+ ## Quick Start
25
+
26
+ ### 1. Record Network Traffic
27
+
28
+ ```typescript
29
+ // Set mode to 'record' to capture network traffic
30
+ process.env.PW_NET_MODE = 'record';
31
+
32
+ test('should add, edit and delete a movie', async ({ page, context, networkRecorder }) => {
33
+ // Setup network recorder - it will record all network traffic
34
+ await networkRecorder.setup(context);
35
+
36
+ // Your normal test code
37
+ await page.goto('/');
38
+ await page.fill('#movie-name', 'Inception');
39
+ await page.click('#add-movie');
40
+
41
+ // Network traffic is automatically saved to HAR file
42
+ });
43
+ ```
44
+
45
+ ### 2. Playback Network Traffic
46
+
47
+ ```typescript
48
+ // Set mode to 'playback' to use recorded traffic
49
+ process.env.PW_NET_MODE = 'playback';
50
+
51
+ test('should add, edit and delete a movie', async ({ page, context, networkRecorder }) => {
52
+ // Setup network recorder - it will replay from HAR file
53
+ await networkRecorder.setup(context);
54
+
55
+ // Same test code runs without hitting real backend!
56
+ await page.goto('/');
57
+ await page.fill('#movie-name', 'Inception');
58
+ await page.click('#add-movie');
59
+ });
60
+ ```
61
+
62
+ That's it! Your tests now run completely offline using recorded network traffic.
63
+
24
64
  ## Pattern Examples
25
65
 
26
66
  ### Example 1: Basic Record and Playback
@@ -115,74 +155,173 @@ test.describe('Movie CRUD - offline with network recorder', () => {
115
155
  - Combine with `interceptNetworkCall` for deterministic waits
116
156
  - First run records, subsequent runs replay
117
157
 
118
- ### Example 3: Environment Switching
158
+ ### Example 3: Common Patterns
119
159
 
120
- **Context**: Record in dev environment, play back in CI with different base URLs.
160
+ **Recording Only API Calls**:
121
161
 
122
- **Implementation**:
162
+ ```typescript
163
+ await networkRecorder.setup(context, {
164
+ recording: {
165
+ urlFilter: /\/api\// // Only record API calls, ignore static assets
166
+ }
167
+ });
168
+ ```
169
+
170
+ **Playback with Fallback**:
123
171
 
124
172
  ```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
- },
173
+ await networkRecorder.setup(context, {
174
+ playback: {
175
+ fallback: true // Fall back to live requests if HAR entry missing
176
+ }
130
177
  });
178
+ ```
131
179
 
132
- // Test works in both environments
133
- test('cross-environment playback', async ({ page, context, networkRecorder }) => {
134
- await networkRecorder.setup(context);
180
+ **Custom HAR File Location**:
135
181
 
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');
182
+ ```typescript
183
+ await networkRecorder.setup(context, {
184
+ harFile: {
185
+ harDir: 'recordings/api-calls',
186
+ baseName: 'user-journey',
187
+ organizeByTestFile: false // Optional: flatten directory structure
188
+ }
189
+ });
190
+ ```
139
191
 
140
- // Network recorder auto-maps URLs
141
- await expect(page.getByTestId('movie-list')).toBeVisible();
192
+ **Directory Organization:**
193
+
194
+ - `organizeByTestFile: true` (default): `har-files/test-file-name/baseName-test-title.har`
195
+ - `organizeByTestFile: false`: `har-files/baseName-test-title.har`
196
+
197
+ ### Example 4: Response Content Storage - Embed vs Attach
198
+
199
+ **Context**: Choose how response content is stored in HAR files.
200
+
201
+ **`embed` (Default - Recommended):**
202
+
203
+ ```typescript
204
+ await networkRecorder.setup(context, {
205
+ recording: {
206
+ content: 'embed' // Store content inline (default)
207
+ }
142
208
  });
143
209
  ```
144
210
 
145
- **Key Points**:
211
+ **Pros:**
146
212
 
147
- - HAR files record absolute URLs
148
- - Playback maps to current baseURL
149
- - Same HAR works across environments
150
- - No manual URL rewriting needed
213
+ - Single self-contained file - Easy to share, version control
214
+ - Better for small-medium responses (API JSON, HTML pages)
215
+ - HAR specification compliant
151
216
 
152
- ### Example 4: Automatic vs Manual Mode Control
217
+ **Cons:**
153
218
 
154
- **Context**: Choose between environment-based switching or in-test mode control.
219
+ - Larger HAR files
220
+ - Not ideal for large binary content (images, videos)
155
221
 
156
- **Implementation**:
222
+ **`attach` (Alternative):**
157
223
 
158
224
  ```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
225
+ await networkRecorder.setup(context, {
226
+ recording: {
227
+ content: 'attach' // Store content separately
228
+ }
229
+ });
230
+ ```
162
231
 
163
- // Option 2: In-test control (recommended for development)
164
- process.env.PW_NET_MODE = 'record' // Set at top of test file
232
+ **Pros:**
165
233
 
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
- })
234
+ - Smaller HAR files
235
+ - Better for large responses (images, videos, documents)
236
+
237
+ **Cons:**
238
+
239
+ - Multiple files to manage
240
+ - Harder to share
241
+
242
+ **When to Use Each:**
243
+
244
+ | Use `embed` (default) when | Use `attach` when |
245
+ |---------------------------|-------------------|
246
+ | Recording API responses (JSON, XML) | Recording large images, videos |
247
+ | Small to medium HTML pages | HAR file size >50MB |
248
+ | You want a single, portable file | Maximum disk efficiency needed |
249
+ | Sharing HAR files with team | Working with ZIP archive output |
250
+
251
+ ### Example 5: Cross-Environment Compatibility (URL Mapping)
252
+
253
+ **Context**: Record in dev environment, play back in CI with different base URLs.
254
+
255
+ **The Problem**: HAR files contain URLs for the recording environment (e.g., `dev.example.com`). Playing back on a different environment fails.
256
+
257
+ **Simple Hostname Mapping:**
258
+
259
+ ```typescript
260
+ await networkRecorder.setup(context, {
261
+ playback: {
262
+ urlMapping: {
263
+ hostMapping: {
264
+ 'preview.example.com': 'dev.example.com',
265
+ 'staging.example.com': 'dev.example.com',
266
+ 'localhost:3000': 'dev.example.com'
267
+ }
268
+ }
269
+ }
270
+ });
178
271
  ```
179
272
 
180
- **Key Points**:
273
+ **Pattern-Based Mapping (Recommended):**
274
+
275
+ ```typescript
276
+ await networkRecorder.setup(context, {
277
+ playback: {
278
+ urlMapping: {
279
+ patterns: [
280
+ // Map any preview-XXXX subdomain to dev
281
+ { match: /preview-\d+\.example\.com/, replace: 'dev.example.com' }
282
+ ]
283
+ }
284
+ }
285
+ });
286
+ ```
287
+
288
+ **Custom Function:**
289
+
290
+ ```typescript
291
+ await networkRecorder.setup(context, {
292
+ playback: {
293
+ urlMapping: {
294
+ mapUrl: (url) => url.replace('staging.example.com', 'dev.example.com')
295
+ }
296
+ }
297
+ });
298
+ ```
299
+
300
+ **Complex Multi-Environment Example:**
301
+
302
+ ```typescript
303
+ await networkRecorder.setup(context, {
304
+ playback: {
305
+ urlMapping: {
306
+ hostMapping: {
307
+ 'localhost:3000': 'admin.seondev.space',
308
+ 'admin-staging.seon.io': 'admin.seondev.space',
309
+ 'admin.seon.io': 'admin.seondev.space',
310
+ },
311
+ patterns: [
312
+ { match: /admin-\d+\.seondev\.space/, replace: 'admin.seondev.space' },
313
+ { match: /admin-staging-pr-\w+-\d\.seon\.io/, replace: 'admin.seondev.space' }
314
+ ]
315
+ }
316
+ }
317
+ });
318
+ ```
319
+
320
+ **Benefits:**
181
321
 
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
322
+ - Record once on dev, all environments map back to recordings
323
+ - CORS headers automatically updated based on request origin
324
+ - Debug with: `LOG_LEVEL=debug npm run test`
186
325
 
187
326
  ## Why Use This Instead of Native Playwright?
188
327
 
@@ -191,7 +330,7 @@ test('auto mode', async ({ page, context, networkRecorder }) => {
191
330
  | ~80 lines setup boilerplate | ~5 lines total |
192
331
  | Manual HAR file management | Automatic file organization |
193
332
  | Complex setup/teardown | Automatic cleanup via fixtures |
194
- | **Read-only tests** | **Full CRUD support** |
333
+ | **Read-only tests only** | **Full CRUD support** |
195
334
  | **Stateless** | **Stateful mocking** |
196
335
  | Manual URL mapping | Automatic environment mapping |
197
336
 
@@ -199,9 +338,132 @@ test('auto mode', async ({ page, context, networkRecorder }) => {
199
338
 
200
339
  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
340
 
341
+ ## How Stateful CRUD Detection Works
342
+
343
+ When in playback mode, the Network Recorder automatically analyzes your HAR file to detect CRUD patterns. If it finds:
344
+
345
+ - Multiple GET requests to the same resource endpoint (e.g., `/movies`)
346
+ - Mutation operations (POST, PUT, DELETE) to those resources
347
+ - Evidence of state changes between identical requests
348
+
349
+ It automatically switches from static HAR playback to an intelligent stateful mock that:
350
+
351
+ - Maintains state across requests
352
+ - Auto-generates IDs for new resources
353
+ - Returns proper 404s for deleted resources
354
+ - Supports polling scenarios where state changes over time
355
+
356
+ **This happens automatically - no configuration needed!**
357
+
358
+ ## API Reference
359
+
360
+ ### NetworkRecorder Methods
361
+
362
+ | Method | Return Type | Description |
363
+ | -------------------- | ------------------------ | ----------------------------------------------------- |
364
+ | `setup(context)` | `Promise<void>` | Sets up recording/playback on browser context |
365
+ | `cleanup()` | `Promise<void>` | Flushes data to disk and cleans up memory |
366
+ | `getContext()` | `NetworkRecorderContext` | Gets current recorder context information |
367
+ | `getStatusMessage()` | `string` | Gets human-readable status message |
368
+ | `getHarStats()` | `Promise<HarFileStats>` | Gets HAR file statistics and metadata |
369
+
370
+ ### Understanding `cleanup()`
371
+
372
+ The `cleanup()` method performs memory and resource cleanup - **it does NOT delete HAR files**:
373
+
374
+ **What it does:**
375
+
376
+ - Flushes recorded data to disk (writes HAR file in recording mode)
377
+ - Releases file locks
378
+ - Clears in-memory data
379
+ - Resets internal state
380
+
381
+ **What it does NOT do:**
382
+
383
+ - Delete HAR files from disk
384
+ - Remove recorded network traffic
385
+ - Clear browser context or cookies
386
+
387
+ ### Configuration Options
388
+
389
+ ```typescript
390
+ type NetworkRecorderConfig = {
391
+ harFile?: {
392
+ harDir?: string // Directory for HAR files (default: 'har-files')
393
+ baseName?: string // Base name for HAR files (default: 'network-traffic')
394
+ organizeByTestFile?: boolean // Organize by test file (default: true)
395
+ }
396
+
397
+ recording?: {
398
+ content?: 'embed' | 'attach' // Response content handling (default: 'embed')
399
+ urlFilter?: string | RegExp // URL filter for recording
400
+ update?: boolean // Update existing HAR files (default: false)
401
+ }
402
+
403
+ playback?: {
404
+ fallback?: boolean // Fall back to live requests (default: false)
405
+ urlFilter?: string | RegExp // URL filter for playback
406
+ updateMode?: boolean // Update mode during playback (default: false)
407
+ }
408
+
409
+ forceMode?: 'record' | 'playback' | 'disabled'
410
+ }
411
+ ```
412
+
413
+ ## Environment Configuration
414
+
415
+ Control the recording mode using the `PW_NET_MODE` environment variable:
416
+
417
+ ```bash
418
+ # Record mode - captures network traffic to HAR files
419
+ PW_NET_MODE=record npm run test:pw
420
+
421
+ # Playback mode - replays network traffic from HAR files
422
+ PW_NET_MODE=playback npm run test:pw
423
+
424
+ # Disabled mode - no network recording/playback
425
+ PW_NET_MODE=disabled npm run test:pw
426
+
427
+ # Default behavior (when PW_NET_MODE is empty/unset) - same as disabled
428
+ npm run test:pw
429
+ ```
430
+
431
+ **Tip**: We recommend setting `process.env.PW_NET_MODE` directly in your test file for better control.
432
+
433
+ ## Troubleshooting
434
+
435
+ ### HAR File Not Found
436
+
437
+ If you see "HAR file not found" errors during playback:
438
+
439
+ 1. Ensure you've recorded the test first with `PW_NET_MODE=record`
440
+ 2. Check the HAR file exists in the expected location (usually `har-files/`)
441
+ 3. Enable fallback mode: `playback: { fallback: true }`
442
+
443
+ ### Authentication and Network Recording
444
+
445
+ The network recorder works seamlessly with authentication:
446
+
447
+ ```typescript
448
+ test('Authenticated recording', async ({ page, context, authSession, networkRecorder }) => {
449
+ // First authenticate
450
+ await authSession.login('testuser', 'password');
451
+
452
+ // Then setup network recording with authenticated context
453
+ await networkRecorder.setup(context);
454
+
455
+ // Test authenticated flows
456
+ await page.goto('/dashboard');
457
+ });
458
+ ```
459
+
460
+ ### Concurrent Test Issues
461
+
462
+ The recorder includes built-in file locking for safe parallel execution. Each test gets its own HAR file based on the test name.
463
+
202
464
  ## Integration with Other Utilities
203
465
 
204
- **With interceptNetworkCall** (deterministic waits):
466
+ **With interceptNetworkCall (deterministic waits):**
205
467
 
206
468
  ```typescript
207
469
  test('use both utilities', async ({ page, context, networkRecorder, interceptNetworkCall }) => {
@@ -228,7 +490,7 @@ test('use both utilities', async ({ page, context, networkRecorder, interceptNet
228
490
 
229
491
  ## Anti-Patterns
230
492
 
231
- **❌ Mixing record and playback in same test:**
493
+ **DON'T mix record and playback in same test:**
232
494
 
233
495
  ```typescript
234
496
  process.env.PW_NET_MODE = 'record';
@@ -236,7 +498,7 @@ process.env.PW_NET_MODE = 'record';
236
498
  process.env.PW_NET_MODE = 'playback'; // Don't switch mid-test
237
499
  ```
238
500
 
239
- **✅ One mode per test:**
501
+ **DO use one mode per test:**
240
502
 
241
503
  ```typescript
242
504
  process.env.PW_NET_MODE = 'playback'; // Set once at top
@@ -247,7 +509,7 @@ test('my test', async ({ page, context, networkRecorder }) => {
247
509
  });
248
510
  ```
249
511
 
250
- **❌ Forgetting to call setup:**
512
+ **DON'T forget to call setup:**
251
513
 
252
514
  ```typescript
253
515
  test('broken', async ({ page, networkRecorder }) => {
@@ -255,7 +517,7 @@ test('broken', async ({ page, networkRecorder }) => {
255
517
  });
256
518
  ```
257
519
 
258
- **✅ Always call setup before navigation:**
520
+ **DO always call setup before navigation:**
259
521
 
260
522
  ```typescript
261
523
  test('correct', async ({ page, context, networkRecorder }) => {
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Principle
4
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.
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. **Works equally well for pure API testing (no browser) and UI testing.**
6
6
 
7
7
  ## Rationale
8
8
 
@@ -20,6 +20,7 @@ Writing Playwright utilities from scratch for every project leads to:
20
20
  - **Composable fixtures**: Use `mergeTests` to combine utilities
21
21
  - **TypeScript support**: Full type safety with generic types
22
22
  - **Comprehensive coverage**: API requests, auth, network, logging, file handling, burn-in
23
+ - **Backend-first mentality**: Most utilities work without a browser - pure API/service testing is a first-class use case
23
24
 
24
25
  ## Installation
25
26
 
@@ -37,17 +38,19 @@ npm install -D @seontechnologies/playwright-utils
37
38
 
38
39
  ### Core Testing Utilities
39
40
 
40
- | Utility | Purpose | Test Context |
41
- | -------------------------- | ------------------------------------------ | ------------- |
42
- | **api-request** | Typed HTTP client with schema validation | API tests |
43
- | **network-recorder** | HAR record/playback for offline testing | UI tests |
44
- | **auth-session** | Token persistence, multi-user auth | Both UI & API |
45
- | **recurse** | Cypress-style polling for async conditions | Both UI & API |
46
- | **intercept-network-call** | Network spy/stub with auto JSON parsing | UI tests |
47
- | **log** | Playwright report-integrated logging | Both UI & API |
48
- | **file-utils** | CSV/XLSX/PDF/ZIP reading & validation | Both UI & API |
49
- | **burn-in** | Smart test selection with git diff | CI/CD |
50
- | **network-error-monitor** | Automatic HTTP 4xx/5xx detection | UI tests |
41
+ | Utility | Purpose | Test Context |
42
+ | -------------------------- | ---------------------------------------------------- | ------------------ |
43
+ | **api-request** | Typed HTTP client with schema validation and retry | **API/Backend** |
44
+ | **recurse** | Polling for async operations, background jobs | **API/Backend** |
45
+ | **auth-session** | Token persistence, multi-user, service-to-service | **API/Backend/UI** |
46
+ | **log** | Playwright report-integrated logging | **API/Backend/UI** |
47
+ | **file-utils** | CSV/XLSX/PDF/ZIP reading & validation | **API/Backend/UI** |
48
+ | **burn-in** | Smart test selection with git diff | **CI/CD** |
49
+ | **network-recorder** | HAR record/playback for offline testing | UI only |
50
+ | **intercept-network-call** | Network spy/stub with auto JSON parsing | UI only |
51
+ | **network-error-monitor** | Automatic HTTP 4xx/5xx detection | UI only |
52
+
53
+ **Note**: 6 of 9 utilities work without a browser. Only 3 are UI-specific (network-recorder, intercept-network-call, network-error-monitor).
51
54
 
52
55
  ## Design Patterns
53
56