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
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Principle
4
4
 
5
- Use Cypress-style polling with Playwright's `expect.poll` to wait for asynchronous conditions. Provides configurable timeout, interval, logging, and post-polling callbacks with enhanced error categorization.
5
+ Use Cypress-style polling with Playwright's `expect.poll` to wait for asynchronous conditions. Provides configurable timeout, interval, logging, and post-polling callbacks with enhanced error categorization. **Ideal for backend testing**: polling API endpoints for job completion, database eventual consistency, message queue processing, and cache propagation.
6
6
 
7
7
  ## Rationale
8
8
 
@@ -21,6 +21,29 @@ The `recurse` utility provides:
21
21
  - **Post-poll callbacks**: Process results after success
22
22
  - **Type-safe**: Full TypeScript generic support
23
23
 
24
+ ## Quick Start
25
+
26
+ ```typescript
27
+ import { test } from '@seontechnologies/playwright-utils/recurse/fixtures';
28
+
29
+ test('wait for job completion', async ({ recurse, apiRequest }) => {
30
+ const { body } = await apiRequest({
31
+ method: 'POST',
32
+ path: '/api/jobs',
33
+ body: { type: 'export' },
34
+ });
35
+
36
+ // Poll until job completes
37
+ const result = await recurse(
38
+ () => apiRequest({ method: 'GET', path: `/api/jobs/${body.id}` }),
39
+ (response) => response.body.status === 'completed',
40
+ { timeout: 60000 }
41
+ );
42
+
43
+ expect(result.body.downloadUrl).toBeDefined();
44
+ });
45
+ ```
46
+
24
47
  ## Pattern Examples
25
48
 
26
49
  ### Example 1: Basic Polling
@@ -48,7 +71,7 @@ test('should wait for job completion', async ({ recurse, apiRequest }) => {
48
71
  timeout: 60000, // 60 seconds max
49
72
  interval: 2000, // Check every 2 seconds
50
73
  log: 'Waiting for export job to complete',
51
- },
74
+ }
52
75
  );
53
76
 
54
77
  expect(result.body.downloadUrl).toBeDefined();
@@ -62,7 +85,7 @@ test('should wait for job completion', async ({ recurse, apiRequest }) => {
62
85
  - Options: timeout, interval, log message
63
86
  - Returns the value when predicate returns true
64
87
 
65
- ### Example 2: Polling with Assertions
88
+ ### Example 2: Working with Assertions
66
89
 
67
90
  **Context**: Use assertions directly in predicate for more expressive tests.
68
91
 
@@ -76,35 +99,76 @@ test('should poll with assertions', async ({ recurse, apiRequest }) => {
76
99
  body: { type: 'user-created', userId: '123' },
77
100
  });
78
101
 
79
- // Poll with assertions in predicate
102
+ // Poll with assertions in predicate - no return true needed!
80
103
  await recurse(
81
104
  async () => {
82
105
  const { body } = await apiRequest({ method: 'GET', path: '/api/events/123' });
83
106
  return body;
84
107
  },
85
108
  (event) => {
86
- // Use assertions instead of boolean returns
109
+ // If all assertions pass, predicate succeeds
87
110
  expect(event.processed).toBe(true);
88
111
  expect(event.timestamp).toBeDefined();
89
- // If assertions pass, predicate succeeds
112
+ // No need to return true - just let assertions pass
90
113
  },
91
- { timeout: 30000 },
114
+ { timeout: 30000 }
92
115
  );
93
116
  });
94
117
  ```
95
118
 
96
- **Key Points**:
119
+ **Why no `return true` needed?**
97
120
 
98
- - Predicate can use `expect()` assertions
99
- - If assertions throw, polling continues
100
- - If assertions pass, polling succeeds
101
- - More expressive than boolean returns
121
+ The predicate checks for "truthiness" of the return value. But there's a catch - in JavaScript, an empty `return` (or no return) returns `undefined`, which is falsy!
102
122
 
103
- ### Example 3: Custom Error Messages
123
+ The utility handles this by checking if:
104
124
 
105
- **Context**: Provide context-specific error messages for timeout failures.
125
+ 1. The predicate didn't throw (assertions passed)
126
+ 2. The return value was either `undefined` (implicit return) or truthy
106
127
 
107
- **Implementation**:
128
+ So you can:
129
+
130
+ ```typescript
131
+ // Option 1: Use assertions only (recommended)
132
+ (event) => {
133
+ expect(event.processed).toBe(true);
134
+ };
135
+
136
+ // Option 2: Return boolean (also works)
137
+ (event) => event.processed === true;
138
+
139
+ // Option 3: Mixed (assertions + explicit return)
140
+ (event) => {
141
+ expect(event.processed).toBe(true);
142
+ return true;
143
+ };
144
+ ```
145
+
146
+ ### Example 3: Error Handling
147
+
148
+ **Context**: Understanding the different error types.
149
+
150
+ **Error Types:**
151
+
152
+ ```typescript
153
+ // RecurseTimeoutError - Predicate never returned true within timeout
154
+ // Contains last command value and predicate error
155
+ try {
156
+ await recurse(/* ... */);
157
+ } catch (error) {
158
+ if (error instanceof RecurseTimeoutError) {
159
+ console.log('Timed out. Last value:', error.lastCommandValue);
160
+ console.log('Last predicate error:', error.lastPredicateError);
161
+ }
162
+ }
163
+
164
+ // RecurseCommandError - Command function threw an error
165
+ // The command itself failed (e.g., network error, API error)
166
+
167
+ // RecursePredicateError - Predicate function threw (not from assertions failing)
168
+ // Logic error in your predicate code
169
+ ```
170
+
171
+ **Custom Error Messages:**
108
172
 
109
173
  ```typescript
110
174
  test('custom error on timeout', async ({ recurse, apiRequest }) => {
@@ -115,7 +179,7 @@ test('custom error on timeout', async ({ recurse, apiRequest }) => {
115
179
  {
116
180
  timeout: 10000,
117
181
  error: 'System failed to become ready within 10 seconds - check background workers',
118
- },
182
+ }
119
183
  );
120
184
  } catch (error) {
121
185
  // Error message includes custom context
@@ -125,13 +189,6 @@ test('custom error on timeout', async ({ recurse, apiRequest }) => {
125
189
  });
126
190
  ```
127
191
 
128
- **Key Points**:
129
-
130
- - `error` option provides custom message
131
- - Replaces default "Timed out after X ms"
132
- - Include debugging hints in error message
133
- - Helps diagnose failures faster
134
-
135
192
  ### Example 4: Post-Polling Callback
136
193
 
137
194
  **Context**: Process or log results after successful polling.
@@ -151,7 +208,7 @@ test('post-poll processing', async ({ recurse, apiRequest }) => {
151
208
  console.log(`Processed ${result.body.itemsProcessed} items`);
152
209
  return result.body;
153
210
  },
154
- },
211
+ }
155
212
  );
156
213
 
157
214
  expect(finalResult.itemsProcessed).toBeGreaterThan(0);
@@ -165,7 +222,67 @@ test('post-poll processing', async ({ recurse, apiRequest }) => {
165
222
  - Can transform or log results
166
223
  - Return value becomes final `recurse` result
167
224
 
168
- ### Example 5: Integration with API Request (Common Pattern)
225
+ ### Example 5: UI Testing Scenarios
226
+
227
+ **Context**: Wait for UI elements to reach a specific state through polling.
228
+
229
+ **Implementation**:
230
+
231
+ ```typescript
232
+ test('table data loads', async ({ page, recurse }) => {
233
+ await page.goto('/reports');
234
+
235
+ // Poll for table rows to appear
236
+ await recurse(
237
+ async () => page.locator('table tbody tr').count(),
238
+ (count) => count >= 10, // Wait for at least 10 rows
239
+ {
240
+ timeout: 15000,
241
+ interval: 500,
242
+ log: 'Waiting for table data to load',
243
+ }
244
+ );
245
+
246
+ // Now safe to interact with table
247
+ await page.locator('table tbody tr').first().click();
248
+ });
249
+ ```
250
+
251
+ ### Example 6: Event-Based Systems (Kafka/Message Queues)
252
+
253
+ **Context**: Testing eventual consistency with message queue processing.
254
+
255
+ **Implementation**:
256
+
257
+ ```typescript
258
+ test('kafka event processed', async ({ recurse, apiRequest }) => {
259
+ // Trigger action that publishes Kafka event
260
+ await apiRequest({
261
+ method: 'POST',
262
+ path: '/api/orders',
263
+ body: { productId: 'ABC123', quantity: 2 },
264
+ });
265
+
266
+ // Poll for downstream effect of Kafka consumer processing
267
+ const inventoryResult = await recurse(
268
+ () => apiRequest({ method: 'GET', path: '/api/inventory/ABC123' }),
269
+ (res) => {
270
+ // Assumes test fixture seeds inventory at 100; in production tests,
271
+ // fetch baseline first and assert: expect(res.body.available).toBe(baseline - 2)
272
+ expect(res.body.available).toBeLessThanOrEqual(98);
273
+ },
274
+ {
275
+ timeout: 30000, // Kafka processing may take time
276
+ interval: 1000,
277
+ log: 'Waiting for Kafka event to be processed',
278
+ }
279
+ );
280
+
281
+ expect(inventoryResult.body.lastOrderId).toBeDefined();
282
+ });
283
+ ```
284
+
285
+ ### Example 7: Integration with API Request (Common Pattern)
169
286
 
170
287
  **Context**: Most common use case - polling API endpoints for state changes.
171
288
 
@@ -193,7 +310,7 @@ test('end-to-end polling', async ({ apiRequest, recurse }) => {
193
310
  timeout: 120000, // 2 minutes for large imports
194
311
  interval: 5000, // Check every 5 seconds
195
312
  log: `Polling import ${createResp.importId}`,
196
- },
313
+ }
197
314
  );
198
315
 
199
316
  expect(importResult.body.rowsImported).toBeGreaterThan(1000);
@@ -208,20 +325,26 @@ test('end-to-end polling', async ({ apiRequest, recurse }) => {
208
325
  - Complex predicates with multiple conditions
209
326
  - Logging shows polling progress in test reports
210
327
 
211
- ## Enhanced Error Types
328
+ ## API Reference
212
329
 
213
- The utility categorizes errors for easier debugging:
330
+ ### RecurseOptions
214
331
 
215
- ```typescript
216
- // TimeoutError - Predicate never returned true
217
- Error: Polling timed out after 30000ms: Job never completed
332
+ | Option | Type | Default | Description |
333
+ | ---------- | ------------------ | ----------- | ------------------------------------ |
334
+ | `timeout` | `number` | `30000` | Maximum time to wait (ms) |
335
+ | `interval` | `number` | `1000` | Time between polls (ms) |
336
+ | `log` | `string` | `undefined` | Message logged on each poll |
337
+ | `error` | `string` | `undefined` | Custom error message for timeout |
338
+ | `post` | `(result: T) => R` | `undefined` | Callback after successful poll |
339
+ | `delay` | `number` | `0` | Initial delay before first poll (ms) |
218
340
 
219
- // CommandError - Command function threw
220
- Error: Command failed: Request failed with status 500
341
+ ### Error Types
221
342
 
222
- // PredicateError - Predicate function threw (not from assertions)
223
- Error: Predicate failed: Cannot read property 'status' of undefined
224
- ```
343
+ | Error Type | When Thrown | Properties |
344
+ | ----------------------- | --------------------------------------- | ---------------------------------------- |
345
+ | `RecurseTimeoutError` | Predicate never passed within timeout | `lastCommandValue`, `lastPredicateError` |
346
+ | `RecurseCommandError` | Command function threw an error | `cause` (original error) |
347
+ | `RecursePredicateError` | Predicate threw (not assertion failure) | `cause` (original error) |
225
348
 
226
349
  ## Comparison with Vanilla Playwright
227
350
 
@@ -236,11 +359,11 @@ Error: Predicate failed: Cannot read property 'status' of undefined
236
359
 
237
360
  **Use recurse for:**
238
361
 
239
- - Background job completion
240
- - Webhook/event processing
241
- - Database eventual consistency
242
- - Cache propagation
243
- - State machine transitions
362
+ - Background job completion
363
+ - Webhook/event processing
364
+ - Database eventual consistency
365
+ - Cache propagation
366
+ - State machine transitions
244
367
 
245
368
  **Stick with vanilla expect.poll for:**
246
369
 
@@ -250,13 +373,15 @@ Error: Predicate failed: Cannot read property 'status' of undefined
250
373
 
251
374
  ## Related Fragments
252
375
 
376
+ - `api-testing-patterns.md` - Comprehensive pure API testing patterns
253
377
  - `api-request.md` - Combine for API endpoint polling
254
378
  - `overview.md` - Fixture composition patterns
255
379
  - `fixtures-composition.md` - Using with mergeTests
380
+ - `contract-testing.md` - Contract testing with async verification
256
381
 
257
382
  ## Anti-Patterns
258
383
 
259
- **❌ Using hard waits instead of polling:**
384
+ **DON'T use hard waits instead of polling:**
260
385
 
261
386
  ```typescript
262
387
  await page.click('#export');
@@ -264,33 +389,33 @@ await page.waitForTimeout(5000); // Arbitrary wait
264
389
  expect(await page.textContent('#status')).toBe('Ready');
265
390
  ```
266
391
 
267
- **✅ Poll for actual condition:**
392
+ **DO poll for actual condition:**
268
393
 
269
394
  ```typescript
270
395
  await page.click('#export');
271
396
  await recurse(
272
397
  () => page.textContent('#status'),
273
398
  (status) => status === 'Ready',
274
- { timeout: 10000 },
399
+ { timeout: 10000 }
275
400
  );
276
401
  ```
277
402
 
278
- **❌ Polling too frequently:**
403
+ **DON'T poll too frequently:**
279
404
 
280
405
  ```typescript
281
406
  await recurse(
282
407
  () => apiRequest({ method: 'GET', path: '/status' }),
283
408
  (res) => res.body.ready,
284
- { interval: 100 }, // Hammers API every 100ms!
409
+ { interval: 100 } // Hammers API every 100ms!
285
410
  );
286
411
  ```
287
412
 
288
- **✅ Reasonable interval for API calls:**
413
+ **DO use reasonable interval for API calls:**
289
414
 
290
415
  ```typescript
291
416
  await recurse(
292
417
  () => apiRequest({ method: 'GET', path: '/status' }),
293
418
  (res) => res.body.ready,
294
- { interval: 2000 }, // Check every 2 seconds (reasonable)
419
+ { interval: 2000 } // Check every 2 seconds (reasonable)
295
420
  );
296
421
  ```
@@ -1,33 +1,34 @@
1
1
  id,name,description,tags,fragment_file
2
2
  fixture-architecture,Fixture Architecture,"Composable fixture patterns (pure function → fixture → merge) and reuse rules","fixtures,architecture,playwright,cypress",knowledge/fixture-architecture.md
3
- network-first,Network-First Safeguards,"Intercept-before-navigate workflow, HAR capture, deterministic waits, edge mocking","network,stability,playwright,cypress",knowledge/network-first.md
4
- data-factories,Data Factories and API Setup,"Factories with overrides, API seeding, cleanup discipline","data,factories,setup,api",knowledge/data-factories.md
3
+ network-first,Network-First Safeguards,"Intercept-before-navigate workflow, HAR capture, deterministic waits, edge mocking","network,stability,playwright,cypress,ui",knowledge/network-first.md
4
+ data-factories,Data Factories and API Setup,"Factories with overrides, API seeding, cleanup discipline","data,factories,setup,api,backend,seeding",knowledge/data-factories.md
5
5
  component-tdd,Component TDD Loop,"Red→green→refactor workflow, provider isolation, accessibility assertions","component-testing,tdd,ui",knowledge/component-tdd.md
6
6
  playwright-config,Playwright Config Guardrails,"Environment switching, timeout standards, artifact outputs","playwright,config,env",knowledge/playwright-config.md
7
7
  ci-burn-in,CI and Burn-In Strategy,"Staged jobs, shard orchestration, burn-in loops, artifact policy","ci,automation,flakiness",knowledge/ci-burn-in.md
8
8
  selective-testing,Selective Test Execution,"Tag/grep usage, spec filters, diff-based runs, promotion rules","risk-based,selection,strategy",knowledge/selective-testing.md
9
9
  feature-flags,Feature Flag Governance,"Enum management, targeting helpers, cleanup, release checklists","feature-flags,governance,launchdarkly",knowledge/feature-flags.md
10
- contract-testing,Contract Testing Essentials,"Pact publishing, provider verification, resilience coverage","contract-testing,pact,api",knowledge/contract-testing.md
10
+ contract-testing,Contract Testing Essentials,"Pact publishing, provider verification, resilience coverage","contract-testing,pact,api,backend,microservices,service-contract",knowledge/contract-testing.md
11
11
  email-auth,Email Authentication Testing,"Magic link extraction, state preservation, caching, negative flows","email-authentication,security,workflow",knowledge/email-auth.md
12
- error-handling,Error Handling Checks,"Scoped exception handling, retry validation, telemetry logging","resilience,error-handling,stability",knowledge/error-handling.md
13
- visual-debugging,Visual Debugging Toolkit,"Trace viewer usage, artifact expectations, accessibility integration","debugging,dx,tooling",knowledge/visual-debugging.md
12
+ error-handling,Error Handling Checks,"Scoped exception handling, retry validation, telemetry logging","resilience,error-handling,stability,api,backend",knowledge/error-handling.md
13
+ visual-debugging,Visual Debugging Toolkit,"Trace viewer usage, artifact expectations, accessibility integration","debugging,dx,tooling,ui",knowledge/visual-debugging.md
14
14
  risk-governance,Risk Governance,"Scoring matrix, category ownership, gate decision rules","risk,governance,gates",knowledge/risk-governance.md
15
15
  probability-impact,Probability and Impact Scale,"Shared definitions for scoring matrix and gate thresholds","risk,scoring,scale",knowledge/probability-impact.md
16
16
  test-quality,Test Quality Definition of Done,"Execution limits, isolation rules, green criteria","quality,definition-of-done,tests",knowledge/test-quality.md
17
17
  nfr-criteria,NFR Review Criteria,"Security, performance, reliability, maintainability status definitions","nfr,assessment,quality",knowledge/nfr-criteria.md
18
- test-levels,Test Levels Framework,"Guidelines for choosing unit, integration, or end-to-end coverage","testing,levels,selection",knowledge/test-levels-framework.md
18
+ test-levels,Test Levels Framework,"Guidelines for choosing unit, integration, or end-to-end coverage","testing,levels,selection,api,backend,ui",knowledge/test-levels-framework.md
19
19
  test-priorities,Test Priorities Matrix,"P0–P3 criteria, coverage targets, execution ordering","testing,prioritization,risk",knowledge/test-priorities-matrix.md
20
20
  test-healing-patterns,Test Healing Patterns,"Common failure patterns and automated fixes","healing,debugging,patterns",knowledge/test-healing-patterns.md
21
- selector-resilience,Selector Resilience,"Robust selector strategies and debugging techniques","selectors,locators,debugging",knowledge/selector-resilience.md
21
+ selector-resilience,Selector Resilience,"Robust selector strategies and debugging techniques","selectors,locators,debugging,ui",knowledge/selector-resilience.md
22
22
  timing-debugging,Timing Debugging,"Race condition identification and deterministic wait fixes","timing,async,debugging",knowledge/timing-debugging.md
23
- overview,Playwright Utils Overview,"Installation, design principles, fixture patterns","playwright-utils,fixtures",knowledge/overview.md
24
- api-request,API Request,"Typed HTTP client, schema validation","api,playwright-utils",knowledge/api-request.md
25
- network-recorder,Network Recorder,"HAR record/playback, CRUD detection","network,playwright-utils",knowledge/network-recorder.md
26
- auth-session,Auth Session,"Token persistence, multi-user","auth,playwright-utils",knowledge/auth-session.md
27
- intercept-network-call,Intercept Network Call,"Network spy/stub, JSON parsing","network,playwright-utils",knowledge/intercept-network-call.md
28
- recurse,Recurse Polling,"Async polling, condition waiting","polling,playwright-utils",knowledge/recurse.md
29
- log,Log Utility,"Report logging, structured output","logging,playwright-utils",knowledge/log.md
30
- file-utils,File Utilities,"CSV/XLSX/PDF/ZIP validation","files,playwright-utils",knowledge/file-utils.md
31
- burn-in,Burn-in Runner,"Smart test selection, git diff","ci,playwright-utils",knowledge/burn-in.md
32
- network-error-monitor,Network Error Monitor,"HTTP 4xx/5xx detection","monitoring,playwright-utils",knowledge/network-error-monitor.md
33
- fixtures-composition,Fixtures Composition,"mergeTests composition patterns","fixtures,playwright-utils",knowledge/fixtures-composition.md
23
+ overview,Playwright Utils Overview,"Installation, design principles, fixture patterns for API and UI testing","playwright-utils,fixtures,api,backend,ui",knowledge/overview.md
24
+ api-request,API Request,"Typed HTTP client, schema validation, retry logic for API and service testing","api,backend,service-testing,api-testing,playwright-utils",knowledge/api-request.md
25
+ network-recorder,Network Recorder,"HAR record/playback, CRUD detection for offline UI testing","network,playwright-utils,ui,har",knowledge/network-recorder.md
26
+ auth-session,Auth Session,"Token persistence, multi-user, API and browser authentication","auth,playwright-utils,api,backend,jwt,token",knowledge/auth-session.md
27
+ intercept-network-call,Intercept Network Call,"Network spy/stub, JSON parsing for UI tests","network,playwright-utils,ui",knowledge/intercept-network-call.md
28
+ recurse,Recurse Polling,"Async polling for API responses, background jobs, eventual consistency","polling,playwright-utils,api,backend,async,eventual-consistency",knowledge/recurse.md
29
+ log,Log Utility,"Report logging, structured output for API and UI tests","logging,playwright-utils,api,ui",knowledge/log.md
30
+ file-utils,File Utilities,"CSV/XLSX/PDF/ZIP validation for API exports and UI downloads","files,playwright-utils,api,backend,ui",knowledge/file-utils.md
31
+ burn-in,Burn-in Runner,"Smart test selection, git diff for CI optimization","ci,playwright-utils",knowledge/burn-in.md
32
+ network-error-monitor,Network Error Monitor,"HTTP 4xx/5xx detection for UI tests","monitoring,playwright-utils,ui",knowledge/network-error-monitor.md
33
+ fixtures-composition,Fixtures Composition,"mergeTests composition patterns for combining utilities","fixtures,playwright-utils",knowledge/fixtures-composition.md
34
+ api-testing-patterns,API Testing Patterns,"Pure API test patterns without browser: service testing, microservices, GraphQL","api,backend,service-testing,api-testing,microservices,graphql,no-browser",knowledge/api-testing-patterns.md
@@ -2,17 +2,12 @@
2
2
  name: 'step-01-init'
3
3
  description: 'Initialize the product brief workflow by detecting continuation state and setting up the document'
4
4
 
5
- # Path Definitions
6
- workflow_path: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief'
7
-
8
5
  # File References
9
- thisStepFile: '{workflow_path}/steps/step-01-init.md'
10
- nextStepFile: '{workflow_path}/steps/step-02-vision.md'
11
- workflowFile: '{workflow_path}/workflow.md'
6
+ nextStepFile: './step-02-vision.md'
12
7
  outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
13
8
 
14
9
  # Template References
15
- productBriefTemplate: '{workflow_path}/product-brief.template.md'
10
+ productBriefTemplate: '../product-brief.template.md'
16
11
  ---
17
12
 
18
13
  # Step 1: Product Brief Initialization
@@ -78,7 +73,7 @@ If the document exists and has frontmatter with `stepsCompleted`:
78
73
 
79
74
  **Continuation Protocol:**
80
75
 
81
- - **STOP immediately** and load `{workflow_path}/steps/step-01b-continue.md`
76
+ - **STOP immediately** and load `./step-01b-continue.md`
82
77
  - Do not proceed with any initialization tasks
83
78
  - Let step-01b handle all continuation logic
84
79
  - This is an auto-proceed situation - no user choice needed
@@ -2,12 +2,7 @@
2
2
  name: 'step-01b-continue'
3
3
  description: 'Resume the product brief workflow from where it was left off, ensuring smooth continuation'
4
4
 
5
- # Path Definitions
6
- workflow_path: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief'
7
-
8
5
  # File References
9
- thisStepFile: '{workflow_path}/steps/step-01b-continue.md'
10
- workflowFile: '{workflow_path}/workflow.md'
11
6
  outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
12
7
  ---
13
8
 
@@ -2,13 +2,8 @@
2
2
  name: 'step-02-vision'
3
3
  description: 'Discover and define the core product vision, problem statement, and unique value proposition'
4
4
 
5
- # Path Definitions
6
- workflow_path: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief'
7
-
8
5
  # File References
9
- thisStepFile: '{workflow_path}/steps/step-02-vision.md'
10
- nextStepFile: '{workflow_path}/steps/step-03-users.md'
11
- workflowFile: '{workflow_path}/workflow.md'
6
+ nextStepFile: './step-03-users.md'
12
7
  outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
13
8
 
14
9
  # Task References
@@ -2,13 +2,8 @@
2
2
  name: 'step-03-users'
3
3
  description: 'Define target users with rich personas and map their key interactions with the product'
4
4
 
5
- # Path Definitions
6
- workflow_path: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief'
7
-
8
5
  # File References
9
- thisStepFile: '{workflow_path}/steps/step-03-users.md'
10
- nextStepFile: '{workflow_path}/steps/step-04-metrics.md'
11
- workflowFile: '{workflow_path}/workflow.md'
6
+ nextStepFile: './step-04-metrics.md'
12
7
  outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
13
8
 
14
9
  # Task References
@@ -2,13 +2,8 @@
2
2
  name: 'step-04-metrics'
3
3
  description: 'Define comprehensive success metrics that include user success, business objectives, and key performance indicators'
4
4
 
5
- # Path Definitions
6
- workflow_path: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief'
7
-
8
5
  # File References
9
- thisStepFile: '{workflow_path}/steps/step-04-metrics.md'
10
- nextStepFile: '{workflow_path}/steps/step-05-scope.md'
11
- workflowFile: '{workflow_path}/workflow.md'
6
+ nextStepFile: './step-05-scope.md'
12
7
  outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
13
8
 
14
9
  # Task References
@@ -2,13 +2,8 @@
2
2
  name: 'step-05-scope'
3
3
  description: 'Define MVP scope with clear boundaries and outline future vision while managing scope creep'
4
4
 
5
- # Path Definitions
6
- workflow_path: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief'
7
-
8
5
  # File References
9
- thisStepFile: '{workflow_path}/steps/step-05-scope.md'
10
- nextStepFile: '{workflow_path}/steps/step-06-complete.md'
11
- workflowFile: '{workflow_path}/workflow.md'
6
+ nextStepFile: './step-06-complete.md'
12
7
  outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
13
8
 
14
9
  # Task References
@@ -2,12 +2,7 @@
2
2
  name: 'step-06-complete'
3
3
  description: 'Complete the product brief workflow, update status files, and suggest next steps for the project'
4
4
 
5
- # Path Definitions
6
- workflow_path: '{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief'
7
-
8
5
  # File References
9
- thisStepFile: '{workflow_path}/steps/step-06-complete.md'
10
- workflowFile: '{workflow_path}/workflow.md'
11
6
  outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
12
7
  ---
13
8