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

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 (608) hide show
  1. package/.github/ISSUE_TEMPLATE/idea_submission.md +1 -1
  2. package/.github/scripts/discord-helpers.sh +15 -0
  3. package/.github/workflows/bundle-latest.yaml +79 -27
  4. package/.github/workflows/discord.yaml +278 -8
  5. package/.github/workflows/quality.yaml +19 -0
  6. package/.markdownlint-cli2.yaml +42 -0
  7. package/.prettierignore +3 -0
  8. package/CHANGELOG.md +254 -1
  9. package/CODE_OF_CONDUCT.md +128 -0
  10. package/README.md +3 -1
  11. package/bmad-method-6.0.0-alpha.14.tgz +0 -0
  12. package/docs/agent-customization-guide.md +2 -2
  13. package/docs/custom-agent-installation.md +58 -90
  14. package/docs/document-sharding-guide.md +1 -1
  15. package/docs/ide-info/rovo-dev.md +388 -0
  16. package/docs/index.md +6 -81
  17. package/docs/installers-bundlers/installers-modules-platforms-reference.md +1 -1
  18. package/eslint.config.mjs +14 -0
  19. package/example-custom-content/README.md +4 -0
  20. package/example-custom-content/agents/commit-poet/commit-poet.agent.yaml +129 -0
  21. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/instructions.md +70 -0
  22. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +111 -0
  23. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +70 -0
  24. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +114 -0
  25. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +134 -0
  26. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +161 -0
  27. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +103 -0
  28. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/memories.md +17 -0
  29. package/example-custom-content/agents/toolsmith/toolsmith.agent.yaml +109 -0
  30. package/example-custom-content/custom.yaml +3 -0
  31. package/example-custom-content/workflows/quiz-master/steps/step-01-init.md +168 -0
  32. package/example-custom-content/workflows/quiz-master/steps/step-02-q1.md +155 -0
  33. package/example-custom-content/workflows/quiz-master/steps/step-03-q2.md +89 -0
  34. package/example-custom-content/workflows/quiz-master/steps/step-04-q3.md +36 -0
  35. package/example-custom-content/workflows/quiz-master/steps/step-05-q4.md +36 -0
  36. package/example-custom-content/workflows/quiz-master/steps/step-06-q5.md +36 -0
  37. package/example-custom-content/workflows/quiz-master/steps/step-07-q6.md +36 -0
  38. package/example-custom-content/workflows/quiz-master/steps/step-08-q7.md +36 -0
  39. package/example-custom-content/workflows/quiz-master/steps/step-09-q8.md +36 -0
  40. package/example-custom-content/workflows/quiz-master/steps/step-10-q9.md +36 -0
  41. package/example-custom-content/workflows/quiz-master/steps/step-11-q10.md +36 -0
  42. package/example-custom-content/workflows/quiz-master/steps/step-12-results.md +150 -0
  43. package/example-custom-content/workflows/quiz-master/templates/csv-headers.template +1 -0
  44. package/example-custom-content/workflows/quiz-master/workflow-plan-quiz-master.md +269 -0
  45. package/example-custom-content/workflows/quiz-master/workflow.md +54 -0
  46. package/example-custom-content/workflows/wassup/workflow.md +26 -0
  47. package/example-custom-module/mwm/README.md +4 -0
  48. package/example-custom-module/mwm/_module-installer/install-config.yaml +27 -0
  49. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach-sidecar/cognitive-distortions.md +47 -0
  50. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach-sidecar/thought-records.md +17 -0
  51. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach.agent.yaml +150 -0
  52. package/example-custom-module/mwm/agents/crisis-navigator.agent.yaml +137 -0
  53. package/example-custom-module/mwm/agents/meditation-guide.agent.yaml +137 -0
  54. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/insights.md +13 -0
  55. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/instructions.md +30 -0
  56. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/memories.md +13 -0
  57. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/patterns.md +17 -0
  58. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion.agent.yaml +124 -0
  59. package/example-custom-module/mwm/workflows/cbt-thought-record/README.md +31 -0
  60. package/example-custom-module/mwm/workflows/cbt-thought-record/workflow.md +45 -0
  61. package/example-custom-module/mwm/workflows/crisis-support/README.md +31 -0
  62. package/example-custom-module/mwm/workflows/crisis-support/workflow.md +45 -0
  63. package/example-custom-module/mwm/workflows/daily-checkin/README.md +32 -0
  64. package/example-custom-module/mwm/workflows/daily-checkin/workflow.md +45 -0
  65. package/example-custom-module/mwm/workflows/guided-meditation/README.md +31 -0
  66. package/example-custom-module/mwm/workflows/guided-meditation/workflow.md +45 -0
  67. package/example-custom-module/mwm/workflows/wellness-journal/README.md +31 -0
  68. package/example-custom-module/mwm/workflows/wellness-journal/workflow.md +45 -0
  69. package/package.json +9 -4
  70. package/src/core/_module-installer/install-config.yaml +5 -1
  71. package/src/core/agents/bmad-master.agent.yaml +1 -1
  72. package/src/core/agents/bmad-web-orchestrator.agent.xml +1 -1
  73. package/src/core/resources/excalidraw/library-loader.md +2 -2
  74. package/src/core/tasks/advanced-elicitation-methods.csv +51 -21
  75. package/src/core/tasks/advanced-elicitation.xml +18 -8
  76. package/src/core/tasks/workflow.xml +36 -71
  77. package/src/core/workflows/brainstorming/brain-methods.csv +62 -36
  78. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +196 -0
  79. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +121 -0
  80. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +224 -0
  81. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +236 -0
  82. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +208 -0
  83. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +263 -0
  84. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +339 -0
  85. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +302 -0
  86. package/src/core/workflows/brainstorming/template.md +13 -104
  87. package/src/core/workflows/brainstorming/workflow.md +51 -0
  88. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  89. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +203 -0
  90. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +158 -0
  91. package/src/core/workflows/party-mode/workflow.md +206 -0
  92. package/src/modules/bmb/README.md +153 -86
  93. package/src/modules/bmb/_module-installer/install-config.yaml +4 -9
  94. package/src/modules/bmb/_module-installer/installer.js +76 -0
  95. package/src/modules/bmb/agents/bmad-builder.agent.yaml +75 -38
  96. package/src/modules/bmb/docs/{agent-menu-patterns.md → agents/agent-menu-patterns.md} +6 -6
  97. package/src/modules/bmb/docs/{expert-agent-architecture.md → agents/expert-agent-architecture.md} +20 -20
  98. package/src/modules/bmb/docs/agents/kb.csv +0 -0
  99. package/src/modules/bmb/docs/{module-agent-architecture.md → agents/module-agent-architecture.md} +46 -46
  100. package/src/modules/bmb/docs/{simple-agent-architecture.md → agents/simple-agent-architecture.md} +7 -3
  101. package/src/modules/bmb/docs/workflows/architecture.md +220 -0
  102. package/src/modules/bmb/docs/workflows/common-workflow-tools.csv +19 -0
  103. package/src/modules/bmb/docs/workflows/csv-data-file-standards.md +206 -0
  104. package/src/modules/bmb/docs/workflows/index.md +45 -0
  105. package/src/modules/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +220 -0
  106. package/src/modules/bmb/docs/workflows/kb.csv +0 -0
  107. package/src/modules/bmb/docs/workflows/templates/step-01-init-continuable-template.md +241 -0
  108. package/src/modules/bmb/docs/workflows/templates/step-1b-template.md +223 -0
  109. package/src/modules/bmb/docs/workflows/templates/step-file.md +139 -0
  110. package/src/modules/bmb/docs/workflows/templates/step-template.md +290 -0
  111. package/src/modules/bmb/docs/workflows/templates/workflow-template.md +104 -0
  112. package/src/modules/bmb/docs/workflows/templates/workflow.md +58 -0
  113. package/src/modules/bmb/docs/workflows/terms.md +97 -0
  114. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/README.md +4 -4
  115. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +8 -8
  116. package/src/modules/bmb/reference/agents/module-examples/README.md +1 -1
  117. package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +7 -7
  118. package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +7 -7
  119. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  120. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  121. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  122. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +176 -0
  123. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +120 -0
  124. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  125. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +153 -0
  126. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  127. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  128. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  129. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  130. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  131. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  132. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  133. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  134. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  135. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  136. package/src/modules/bmb/workflows/create-agent/data/info-and-installation-guide.md +29 -0
  137. package/src/modules/bmb/workflows/create-agent/data/reference/README.md +3 -0
  138. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/README.md +242 -0
  139. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
  140. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
  141. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
  142. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
  143. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
  144. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +50 -0
  145. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
  146. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
  147. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +223 -0
  148. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
  149. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  150. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  151. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  152. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
  153. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
  154. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  155. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
  156. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  157. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  158. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  159. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  160. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  161. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  162. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  163. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  164. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  165. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  166. package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +305 -0
  167. package/src/modules/bmb/workflows/create-agent/steps/step-01-brainstorm.md +145 -0
  168. package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +210 -0
  169. package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +260 -0
  170. package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +237 -0
  171. package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +231 -0
  172. package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +224 -0
  173. package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +234 -0
  174. package/src/modules/bmb/workflows/create-agent/steps/step-08-setup.md +179 -0
  175. package/src/modules/bmb/workflows/create-agent/steps/step-09-customize.md +197 -0
  176. package/src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md +180 -0
  177. package/src/modules/bmb/workflows/create-agent/steps/step-11-celebrate.md +222 -0
  178. package/src/modules/bmb/workflows/create-agent/templates/agent_commands.md +21 -0
  179. package/src/modules/bmb/workflows/create-agent/templates/agent_persona.md +25 -0
  180. package/src/modules/bmb/workflows/create-agent/templates/agent_purpose_and_type.md +23 -0
  181. package/src/modules/bmb/workflows/create-agent/workflow.md +91 -0
  182. package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +155 -0
  183. package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +169 -0
  184. package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +217 -0
  185. package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +267 -0
  186. package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +228 -0
  187. package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +233 -0
  188. package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +296 -0
  189. package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +228 -0
  190. package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +186 -0
  191. package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +308 -0
  192. package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +336 -0
  193. package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +335 -0
  194. package/src/modules/bmb/workflows/create-module/templates/agent.template.md +317 -0
  195. package/src/modules/bmb/workflows/create-module/templates/install-config.template.yaml +53 -0
  196. package/src/modules/bmb/workflows/create-module/templates/installer.template.js +47 -0
  197. package/src/modules/bmb/workflows/create-module/templates/module-plan.template.md +5 -0
  198. package/src/modules/bmb/workflows/create-module/templates/workflow-plan-template.md +23 -0
  199. package/src/modules/bmb/workflows/create-module/validation.md +126 -0
  200. package/src/modules/bmb/workflows/create-module/workflow.md +55 -0
  201. package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +157 -0
  202. package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +211 -0
  203. package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +250 -0
  204. package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +216 -0
  205. package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +289 -0
  206. package/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md +271 -0
  207. package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +308 -0
  208. package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +284 -0
  209. package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +187 -0
  210. package/src/modules/bmb/workflows/create-workflow/workflow.md +58 -0
  211. package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +134 -0
  212. package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +202 -0
  213. package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +157 -0
  214. package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +150 -0
  215. package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +150 -0
  216. package/src/modules/bmb/workflows/edit-agent/workflow.md +58 -0
  217. package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +217 -0
  218. package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +253 -0
  219. package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +217 -0
  220. package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +193 -0
  221. package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +245 -0
  222. package/src/modules/bmb/workflows/edit-workflow/templates/completion-summary.md +75 -0
  223. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md +68 -0
  224. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md +40 -0
  225. package/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md +51 -0
  226. package/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md +56 -0
  227. package/src/modules/bmb/workflows/edit-workflow/workflow.md +58 -0
  228. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +152 -0
  229. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +243 -0
  230. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +274 -0
  231. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +295 -0
  232. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +264 -0
  233. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +360 -0
  234. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +258 -0
  235. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +301 -0
  236. package/src/modules/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +140 -0
  237. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +58 -0
  238. package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/checklist.md +0 -1
  239. package/src/modules/bmgd/agents/game-architect.agent.yaml +1 -1
  240. package/src/modules/bmgd/agents/game-designer.agent.yaml +1 -1
  241. package/src/modules/bmgd/agents/game-dev.agent.yaml +1 -1
  242. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +1 -1
  243. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +8 -8
  244. package/src/modules/bmm/_module-installer/install-config.yaml +10 -16
  245. package/src/modules/bmm/agents/analyst.agent.yaml +25 -22
  246. package/src/modules/bmm/agents/architect.agent.yaml +12 -14
  247. package/src/modules/bmm/agents/dev.agent.yaml +20 -16
  248. package/src/modules/bmm/agents/pm.agent.yaml +14 -32
  249. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +36 -0
  250. package/src/modules/bmm/agents/sm.agent.yaml +13 -31
  251. package/src/modules/bmm/agents/tea.agent.yaml +10 -7
  252. package/src/modules/bmm/agents/tech-writer.agent.yaml +7 -20
  253. package/src/modules/bmm/agents/ux-designer.agent.yaml +12 -10
  254. package/src/modules/bmm/data/README.md +29 -0
  255. package/src/modules/bmm/data/project-context-template.md +40 -0
  256. package/src/modules/bmm/docs/README.md +44 -10
  257. package/src/modules/bmm/docs/agents-guide.md +80 -53
  258. package/src/modules/bmm/docs/bmad-quick-flow.md +528 -0
  259. package/src/modules/bmm/docs/brownfield-guide.md +25 -39
  260. package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
  261. package/src/modules/bmm/docs/faq.md +6 -39
  262. package/src/modules/bmm/docs/glossary.md +12 -25
  263. package/src/modules/bmm/docs/images/README.md +37 -0
  264. package/src/modules/bmm/docs/images/workflow-method-greenfield.excalidraw +960 -1845
  265. package/src/modules/bmm/docs/images/workflow-method-greenfield.svg +4 -2
  266. package/src/modules/bmm/docs/quick-flow-solo-dev.md +337 -0
  267. package/src/modules/bmm/docs/quick-spec-flow.md +5 -5
  268. package/src/modules/bmm/docs/quick-start.md +9 -25
  269. package/src/modules/bmm/docs/scale-adaptive-system.md +5 -5
  270. package/src/modules/bmm/docs/test-architecture.md +90 -24
  271. package/src/modules/bmm/docs/troubleshooting.md +680 -0
  272. package/src/modules/bmm/docs/workflow-document-project-reference.md +1 -1
  273. package/src/modules/bmm/docs/workflows-analysis.md +36 -140
  274. package/src/modules/bmm/docs/workflows-implementation.md +175 -160
  275. package/src/modules/bmm/docs/workflows-planning.md +51 -212
  276. package/src/modules/bmm/docs/workflows-solutioning.md +26 -71
  277. package/src/modules/bmm/tasks/daily-standup.xml +85 -0
  278. package/src/modules/bmm/teams/default-party.csv +15 -14
  279. package/src/modules/bmm/teams/team-fullstack.yaml +0 -1
  280. package/src/modules/bmm/testarch/knowledge/api-request.md +303 -0
  281. package/src/modules/bmm/testarch/knowledge/auth-session.md +356 -0
  282. package/src/modules/bmm/testarch/knowledge/burn-in.md +273 -0
  283. package/src/modules/bmm/testarch/knowledge/ci-burn-in.md +1 -1
  284. package/src/modules/bmm/testarch/knowledge/file-utils.md +260 -0
  285. package/src/modules/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  286. package/src/modules/bmm/testarch/knowledge/intercept-network-call.md +280 -0
  287. package/src/modules/bmm/testarch/knowledge/log.md +294 -0
  288. package/src/modules/bmm/testarch/knowledge/network-error-monitor.md +272 -0
  289. package/src/modules/bmm/testarch/knowledge/network-recorder.md +265 -0
  290. package/src/modules/bmm/testarch/knowledge/overview.md +284 -0
  291. package/src/modules/bmm/testarch/knowledge/recurse.md +296 -0
  292. package/src/modules/bmm/testarch/tea-index.csv +11 -0
  293. package/src/modules/bmm/workflows/1-analysis/product-brief/product-brief.template.md +8 -0
  294. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-01-init.md +192 -0
  295. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-01b-continue.md +167 -0
  296. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-02-vision.md +203 -0
  297. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-03-users.md +206 -0
  298. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-04-metrics.md +209 -0
  299. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-05-scope.md +223 -0
  300. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-06-complete.md +199 -0
  301. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.md +58 -0
  302. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +136 -0
  303. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +228 -0
  304. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +237 -0
  305. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +205 -0
  306. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +233 -0
  307. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +442 -0
  308. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +181 -0
  309. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +236 -0
  310. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +199 -0
  311. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +248 -0
  312. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +258 -0
  313. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +176 -0
  314. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +474 -0
  315. package/src/modules/bmm/workflows/1-analysis/research/research.template.md +15 -0
  316. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +136 -0
  317. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +238 -0
  318. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +247 -0
  319. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +201 -0
  320. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +238 -0
  321. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +485 -0
  322. package/src/modules/bmm/workflows/1-analysis/research/workflow.md +204 -0
  323. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +159 -0
  324. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +126 -0
  325. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +209 -0
  326. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +215 -0
  327. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +218 -0
  328. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +233 -0
  329. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +251 -0
  330. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +253 -0
  331. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +223 -0
  332. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +223 -0
  333. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +240 -0
  334. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +247 -0
  335. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +236 -0
  336. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +263 -0
  337. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +226 -0
  338. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +6 -138
  339. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +59 -0
  340. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +12 -200
  341. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +243 -0
  342. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +165 -0
  343. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +420 -0
  344. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +289 -0
  345. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +290 -0
  346. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +270 -0
  347. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +261 -0
  348. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +257 -0
  349. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +298 -0
  350. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +269 -0
  351. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +293 -0
  352. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +223 -0
  353. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +61 -0
  354. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-decision-template.md +13 -0
  355. package/src/modules/bmm/workflows/3-solutioning/architecture/data/domain-complexity.csv +11 -0
  356. package/src/modules/bmm/workflows/3-solutioning/architecture/data/project-types.csv +7 -0
  357. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-01-init.md +194 -0
  358. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-01b-continue.md +163 -0
  359. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-02-context.md +223 -0
  360. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-03-starter.md +330 -0
  361. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-04-decisions.md +317 -0
  362. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-05-patterns.md +358 -0
  363. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-06-structure.md +378 -0
  364. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-07-validation.md +358 -0
  365. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-08-complete.md +351 -0
  366. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.md +49 -0
  367. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +258 -0
  368. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +232 -0
  369. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +271 -0
  370. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +144 -0
  371. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  372. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
  373. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-01-document-discovery.md +189 -0
  374. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-02-prd-analysis.md +177 -0
  375. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-03-epic-coverage-validation.md +178 -0
  376. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-04-ux-alignment.md +138 -0
  377. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-05-epic-quality-review.md +251 -0
  378. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-06-final-assessment.md +132 -0
  379. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/templates/readiness-report-template.md +4 -0
  380. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.md +54 -0
  381. package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +2 -1
  382. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +224 -0
  383. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +4 -11
  384. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +332 -214
  385. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +354 -0
  386. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +21 -34
  387. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +65 -23
  388. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +406 -0
  389. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +6 -37
  390. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +3 -3
  391. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +19 -21
  392. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +11 -10
  393. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +2 -0
  394. package/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +174 -0
  395. package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +35 -0
  396. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/instructions.md +115 -0
  397. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +26 -0
  398. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/checklist.md +25 -0
  399. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/instructions.md +202 -0
  400. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml +33 -0
  401. package/src/modules/bmm/workflows/document-project/instructions.md +1 -1
  402. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +2 -2
  403. package/src/modules/bmm/workflows/generate-project-context/project-context-template.md +20 -0
  404. package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +193 -0
  405. package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +317 -0
  406. package/src/modules/bmm/workflows/generate-project-context/steps/step-03-complete.md +277 -0
  407. package/src/modules/bmm/workflows/generate-project-context/workflow.md +48 -0
  408. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +1 -1
  409. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +23 -3
  410. package/src/modules/bmm/workflows/testarch/automate/instructions.md +23 -2
  411. package/src/modules/bmm/workflows/testarch/ci/checklist.md +1 -1
  412. package/src/modules/bmm/workflows/testarch/ci/github-actions-template.yaml +36 -3
  413. package/src/modules/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +25 -4
  414. package/src/modules/bmm/workflows/testarch/ci/instructions.md +20 -3
  415. package/src/modules/bmm/workflows/testarch/framework/instructions.md +27 -1
  416. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +8 -2
  417. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +29 -9
  418. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +66 -54
  419. package/src/modules/bmm/workflows/workflow-status/instructions.md +11 -4
  420. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +4 -8
  421. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +4 -8
  422. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +4 -8
  423. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +4 -9
  424. package/src/modules/cis/agents/README.md +1 -1
  425. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +3 -2
  426. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +2 -1
  427. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +2 -1
  428. package/src/modules/cis/agents/innovation-strategist.agent.yaml +2 -1
  429. package/src/modules/cis/agents/presentation-master.agent.yaml +3 -2
  430. package/src/modules/cis/agents/storyteller.agent.yaml +2 -1
  431. package/src/modules/cis/teams/default-party.csv +6 -5
  432. package/src/utility/models/agent-activation-ide.xml +4 -4
  433. package/src/utility/models/agent-activation-web.xml +1 -11
  434. package/src/utility/models/fragments/activation-rules.xml +5 -6
  435. package/src/utility/models/fragments/handler-exec.xml +6 -5
  436. package/src/utility/models/fragments/handler-multi.xml +14 -0
  437. package/test/README.md +1 -1
  438. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +1 -3
  439. package/tools/cli/README.md +4 -3
  440. package/tools/cli/bundlers/web-bundler.js +3 -14
  441. package/tools/cli/commands/build.js +9 -184
  442. package/tools/cli/commands/install.js +42 -2
  443. package/tools/cli/installers/lib/core/config-collector.js +94 -10
  444. package/tools/cli/installers/lib/core/installer.js +389 -55
  445. package/tools/cli/installers/lib/core/manifest-generator.js +91 -30
  446. package/tools/cli/installers/lib/core/post-install-sidecar-replacement.js +79 -0
  447. package/tools/cli/installers/lib/custom/handler.js +266 -0
  448. package/tools/cli/installers/lib/ide/_base-ide.js +10 -0
  449. package/tools/cli/installers/lib/ide/antigravity.js +51 -7
  450. package/tools/cli/installers/lib/ide/auggie.js +72 -7
  451. package/tools/cli/installers/lib/ide/claude-code.js +1 -6
  452. package/tools/cli/installers/lib/ide/cline.js +49 -0
  453. package/tools/cli/installers/lib/ide/codex.js +2 -2
  454. package/tools/cli/installers/lib/ide/crush.js +66 -6
  455. package/tools/cli/installers/lib/ide/cursor.js +29 -13
  456. package/tools/cli/installers/lib/ide/gemini.js +96 -1
  457. package/tools/cli/installers/lib/ide/github-copilot.js +59 -48
  458. package/tools/cli/installers/lib/ide/iflow.js +67 -1
  459. package/tools/cli/installers/lib/ide/kilo.js +74 -0
  460. package/tools/cli/installers/lib/ide/kiro-cli.js +327 -0
  461. package/tools/cli/installers/lib/ide/opencode.js +3 -3
  462. package/tools/cli/installers/lib/ide/qwen.js +54 -0
  463. package/tools/cli/installers/lib/ide/roo.js +145 -138
  464. package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
  465. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +8 -2
  466. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +34 -19
  467. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +18 -14
  468. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +1 -1
  469. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
  470. package/tools/cli/installers/lib/ide/trae.js +47 -0
  471. package/tools/cli/installers/lib/modules/manager.js +486 -53
  472. package/tools/cli/lib/agent/compiler.js +210 -27
  473. package/tools/cli/lib/agent/installer.js +140 -30
  474. package/tools/cli/lib/agent-analyzer.js +46 -18
  475. package/tools/cli/lib/config.js +2 -1
  476. package/tools/cli/lib/ui.js +269 -13
  477. package/tools/cli/lib/yaml-xml-builder.js +123 -39
  478. package/tools/platform-codes.yaml +12 -0
  479. package/tools/schema/agent.js +229 -20
  480. package/tools/validate-svg-changes.sh +356 -0
  481. package/src/core/tasks/adv-elicit-methods.csv +0 -39
  482. package/src/core/workflows/brainstorming/README.md +0 -261
  483. package/src/core/workflows/brainstorming/instructions.md +0 -315
  484. package/src/core/workflows/brainstorming/workflow.yaml +0 -38
  485. package/src/core/workflows/party-mode/instructions.md +0 -183
  486. package/src/core/workflows/party-mode/workflow.yaml +0 -28
  487. package/src/modules/bmb/workflows/audit-workflow/checklist.md +0 -142
  488. package/src/modules/bmb/workflows/audit-workflow/instructions.md +0 -341
  489. package/src/modules/bmb/workflows/audit-workflow/template.md +0 -118
  490. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +0 -25
  491. package/src/modules/bmb/workflows/convert-legacy/README.md +0 -262
  492. package/src/modules/bmb/workflows/convert-legacy/checklist.md +0 -205
  493. package/src/modules/bmb/workflows/convert-legacy/instructions.md +0 -377
  494. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +0 -30
  495. package/src/modules/bmb/workflows/create-agent/instructions.md +0 -519
  496. package/src/modules/bmb/workflows/create-agent/workflow.yaml +0 -55
  497. package/src/modules/bmb/workflows/create-module/README.md +0 -229
  498. package/src/modules/bmb/workflows/create-module/brainstorm-context.md +0 -137
  499. package/src/modules/bmb/workflows/create-module/checklist.md +0 -235
  500. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  501. package/src/modules/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  502. package/src/modules/bmb/workflows/create-module/instructions.md +0 -577
  503. package/src/modules/bmb/workflows/create-module/module-structure.md +0 -400
  504. package/src/modules/bmb/workflows/create-module/workflow.yaml +0 -52
  505. package/src/modules/bmb/workflows/create-workflow/README.md +0 -277
  506. package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  507. package/src/modules/bmb/workflows/create-workflow/checklist.md +0 -94
  508. package/src/modules/bmb/workflows/create-workflow/instructions.md +0 -725
  509. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1327
  510. package/src/modules/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  511. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -15
  512. package/src/modules/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  513. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -61
  514. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +0 -41
  515. package/src/modules/bmb/workflows/edit-agent/README.md +0 -239
  516. package/src/modules/bmb/workflows/edit-agent/instructions.md +0 -654
  517. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +0 -49
  518. package/src/modules/bmb/workflows/edit-workflow/README.md +0 -119
  519. package/src/modules/bmb/workflows/edit-workflow/checklist.md +0 -70
  520. package/src/modules/bmb/workflows/edit-workflow/instructions.md +0 -342
  521. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +0 -27
  522. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +0 -22
  523. package/src/modules/bmm/_module-installer/assets/bmm-kb.md +0 -1
  524. package/src/modules/bmm/_module-installer/assets/technical-decisions.md +0 -30
  525. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -112
  526. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
  527. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -39
  528. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +0 -425
  529. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +0 -180
  530. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -56
  531. package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
  532. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +0 -524
  533. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +0 -181
  534. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -61
  535. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
  536. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
  537. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +0 -299
  538. package/src/modules/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
  539. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -438
  540. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +0 -675
  541. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +0 -134
  542. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +0 -534
  543. package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
  544. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +0 -347
  545. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +0 -245
  546. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +0 -62
  547. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
  548. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1308
  549. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -93
  550. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -346
  551. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -703
  552. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -78
  553. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -217
  554. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -74
  555. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +0 -436
  556. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -980
  557. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
  558. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -90
  559. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -60
  560. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -321
  561. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
  562. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +0 -240
  563. package/src/modules/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -222
  564. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +0 -768
  565. package/src/modules/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -13
  566. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -100
  567. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/epics-template.md +0 -80
  568. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/instructions.md +0 -616
  569. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.yaml +0 -63
  570. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +0 -169
  571. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +0 -332
  572. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/template.md +0 -146
  573. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +0 -64
  574. package/src/modules/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -12
  575. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +0 -398
  576. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +0 -256
  577. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +0 -267
  578. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
  579. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -164
  580. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
  581. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -58
  582. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
  583. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
  584. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +0 -209
  585. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -63
  586. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
  587. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -28
  588. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
  589. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -25
  590. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
  591. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
  592. package/tools/cli/commands/agent-install.js +0 -409
  593. /package/src/modules/bmb/docs/{agent-compilation.md → agents/agent-compilation.md} +0 -0
  594. /package/src/modules/bmb/docs/{index.md → agents/index.md} +0 -0
  595. /package/src/modules/bmb/docs/{understanding-agent-types.md → agents/understanding-agent-types.md} +0 -0
  596. /package/src/modules/bmb/reference/{readme.md → README.md} +0 -0
  597. /package/src/modules/bmb/workflows/create-agent/{agent-validation-checklist.md → data/agent-validation-checklist.md} +0 -0
  598. /package/src/modules/bmb/workflows/create-agent/{brainstorm-context.md → data/brainstorm-context.md} +0 -0
  599. /package/src/modules/bmb/workflows/create-agent/{communication-presets.csv → data/communication-presets.csv} +0 -0
  600. /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/README.md +0 -0
  601. /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/instructions.md +0 -0
  602. /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/workflow.yaml +0 -0
  603. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/README.md +0 -0
  604. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/checklist.md +0 -0
  605. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/instructions.md +0 -0
  606. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/template.md +0 -0
  607. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/workflow.yaml +0 -0
  608. /package/src/modules/bmm/{workflows/techdoc → data}/documentation-standards.md +0 -0
@@ -0,0 +1,284 @@
1
+ # Playwright Utils Overview
2
+
3
+ ## Principle
4
+
5
+ Use production-ready, fixture-based utilities from `@seontechnologies/playwright-utils` for common Playwright testing patterns. Build test helpers as pure functions first, then wrap in framework-specific fixtures for composability and reuse.
6
+
7
+ ## Rationale
8
+
9
+ Writing Playwright utilities from scratch for every project leads to:
10
+
11
+ - Duplicated code across test suites
12
+ - Inconsistent patterns and quality
13
+ - Maintenance burden when Playwright APIs change
14
+ - Missing advanced features (schema validation, HAR recording, auth persistence)
15
+
16
+ `@seontechnologies/playwright-utils` provides:
17
+
18
+ - **Production-tested utilities**: Used at SEON Technologies in production
19
+ - **Functional-first design**: Core logic as pure functions, fixtures for convenience
20
+ - **Composable fixtures**: Use `mergeTests` to combine utilities
21
+ - **TypeScript support**: Full type safety with generic types
22
+ - **Comprehensive coverage**: API requests, auth, network, logging, file handling, burn-in
23
+
24
+ ## Installation
25
+
26
+ ```bash
27
+ npm install -D @seontechnologies/playwright-utils
28
+ ```
29
+
30
+ **Peer Dependencies:**
31
+
32
+ - `@playwright/test` >= 1.54.1 (required)
33
+ - `ajv` >= 8.0.0 (optional - for JSON Schema validation)
34
+ - `js-yaml` >= 4.0.0 (optional - for YAML schema support)
35
+ - `zod` >= 3.0.0 (optional - for Zod schema validation)
36
+
37
+ ## Available Utilities
38
+
39
+ ### Core Testing Utilities
40
+
41
+ | Utility | Purpose | Test Context |
42
+ | -------------------------- | ------------------------------------------ | ------------- |
43
+ | **api-request** | Typed HTTP client with schema validation | API tests |
44
+ | **network-recorder** | HAR record/playback for offline testing | UI tests |
45
+ | **auth-session** | Token persistence, multi-user auth | Both UI & API |
46
+ | **recurse** | Cypress-style polling for async conditions | Both UI & API |
47
+ | **intercept-network-call** | Network spy/stub with auto JSON parsing | UI tests |
48
+ | **log** | Playwright report-integrated logging | Both UI & API |
49
+ | **file-utils** | CSV/XLSX/PDF/ZIP reading & validation | Both UI & API |
50
+ | **burn-in** | Smart test selection with git diff | CI/CD |
51
+ | **network-error-monitor** | Automatic HTTP 4xx/5xx detection | UI tests |
52
+
53
+ ## Design Patterns
54
+
55
+ ### Pattern 1: Functional Core, Fixture Shell
56
+
57
+ **Context**: All utilities follow the same architectural pattern - pure function as core, fixture as wrapper.
58
+
59
+ **Implementation**:
60
+
61
+ ```typescript
62
+ // Direct import (pass Playwright context explicitly)
63
+ import { apiRequest } from '@seontechnologies/playwright-utils';
64
+
65
+ test('direct usage', async ({ request }) => {
66
+ const { status, body } = await apiRequest({
67
+ request, // Must pass request context
68
+ method: 'GET',
69
+ path: '/api/users',
70
+ });
71
+ });
72
+
73
+ // Fixture import (context injected automatically)
74
+ import { test } from '@seontechnologies/playwright-utils/fixtures';
75
+
76
+ test('fixture usage', async ({ apiRequest }) => {
77
+ const { status, body } = await apiRequest({
78
+ // No need to pass request context
79
+ method: 'GET',
80
+ path: '/api/users',
81
+ });
82
+ });
83
+ ```
84
+
85
+ **Key Points**:
86
+
87
+ - Pure functions testable without Playwright running
88
+ - Fixtures inject framework dependencies automatically
89
+ - Choose direct import (more control) or fixture (convenience)
90
+
91
+ ### Pattern 2: Subpath Imports for Tree-Shaking
92
+
93
+ **Context**: Import only what you need to keep bundle sizes small.
94
+
95
+ **Implementation**:
96
+
97
+ ```typescript
98
+ // Import specific utility
99
+ import { apiRequest } from '@seontechnologies/playwright-utils/api-request';
100
+
101
+ // Import specific fixture
102
+ import { test } from '@seontechnologies/playwright-utils/api-request/fixtures';
103
+
104
+ // Import everything (use sparingly)
105
+ import { apiRequest, recurse, log } from '@seontechnologies/playwright-utils';
106
+ ```
107
+
108
+ **Key Points**:
109
+
110
+ - Subpath imports enable tree-shaking
111
+ - Keep bundle sizes minimal
112
+ - Import from specific paths for production builds
113
+
114
+ ### Pattern 3: Fixture Composition with mergeTests
115
+
116
+ **Context**: Combine multiple playwright-utils fixtures with your own custom fixtures.
117
+
118
+ **Implementation**:
119
+
120
+ ```typescript
121
+ // playwright/support/merged-fixtures.ts
122
+ import { mergeTests } from '@playwright/test';
123
+ import { test as apiRequestFixture } from '@seontechnologies/playwright-utils/api-request/fixtures';
124
+ import { test as authFixture } from '@seontechnologies/playwright-utils/auth-session/fixtures';
125
+ import { test as recurseFixture } from '@seontechnologies/playwright-utils/recurse/fixtures';
126
+ import { test as logFixture } from '@seontechnologies/playwright-utils/log/fixtures';
127
+
128
+ // Merge all fixtures into one test object
129
+ export const test = mergeTests(apiRequestFixture, authFixture, recurseFixture, logFixture);
130
+
131
+ export { expect } from '@playwright/test';
132
+ ```
133
+
134
+ ```typescript
135
+ // In your tests
136
+ import { test, expect } from '../support/merged-fixtures';
137
+
138
+ test('all utilities available', async ({ apiRequest, authToken, recurse, log }) => {
139
+ await log.step('Making authenticated API request');
140
+
141
+ const { body } = await apiRequest({
142
+ method: 'GET',
143
+ path: '/api/protected',
144
+ headers: { Authorization: `Bearer ${authToken}` },
145
+ });
146
+
147
+ await recurse(
148
+ () => apiRequest({ method: 'GET', path: `/status/${body.id}` }),
149
+ (res) => res.body.ready === true,
150
+ );
151
+ });
152
+ ```
153
+
154
+ **Key Points**:
155
+
156
+ - `mergeTests` combines multiple fixtures without conflicts
157
+ - Create one merged-fixtures.ts file per project
158
+ - Import test object from your merged fixtures in all tests
159
+ - All utilities available in single test signature
160
+
161
+ ## Integration with Existing Tests
162
+
163
+ ### Gradual Adoption Strategy
164
+
165
+ **1. Start with logging** (zero breaking changes):
166
+
167
+ ```typescript
168
+ import { log } from '@seontechnologies/playwright-utils';
169
+
170
+ test('existing test', async ({ page }) => {
171
+ await log.step('Navigate to page'); // Just add logging
172
+ await page.goto('/dashboard');
173
+ // Rest of test unchanged
174
+ });
175
+ ```
176
+
177
+ **2. Add API utilities** (for API tests):
178
+
179
+ ```typescript
180
+ import { test } from '@seontechnologies/playwright-utils/api-request/fixtures';
181
+
182
+ test('API test', async ({ apiRequest }) => {
183
+ const { status, body } = await apiRequest({
184
+ method: 'GET',
185
+ path: '/api/users',
186
+ });
187
+
188
+ expect(status).toBe(200);
189
+ });
190
+ ```
191
+
192
+ **3. Expand to network utilities** (for UI tests):
193
+
194
+ ```typescript
195
+ import { test } from '@seontechnologies/playwright-utils/fixtures';
196
+
197
+ test('UI with network control', async ({ page, interceptNetworkCall }) => {
198
+ const usersCall = interceptNetworkCall({
199
+ url: '**/api/users',
200
+ });
201
+
202
+ await page.goto('/dashboard');
203
+ const { responseJson } = await usersCall;
204
+
205
+ expect(responseJson).toHaveLength(10);
206
+ });
207
+ ```
208
+
209
+ **4. Full integration** (merged fixtures):
210
+
211
+ Create merged-fixtures.ts and use across all tests.
212
+
213
+ ## Related Fragments
214
+
215
+ - `api-request.md` - HTTP client with schema validation
216
+ - `network-recorder.md` - HAR-based offline testing
217
+ - `auth-session.md` - Token management
218
+ - `intercept-network-call.md` - Network interception
219
+ - `recurse.md` - Polling patterns
220
+ - `log.md` - Logging utility
221
+ - `file-utils.md` - File operations
222
+ - `fixtures-composition.md` - Advanced mergeTests patterns
223
+
224
+ ## Anti-Patterns
225
+
226
+ **❌ Don't mix direct and fixture imports in same test:**
227
+
228
+ ```typescript
229
+ import { apiRequest } from '@seontechnologies/playwright-utils';
230
+ import { test } from '@seontechnologies/playwright-utils/auth-session/fixtures';
231
+
232
+ test('bad', async ({ request, authToken }) => {
233
+ // Confusing - mixing direct (needs request) and fixture (has authToken)
234
+ await apiRequest({ request, method: 'GET', path: '/api/users' });
235
+ });
236
+ ```
237
+
238
+ **✅ Use consistent import style:**
239
+
240
+ ```typescript
241
+ import { test } from '../support/merged-fixtures';
242
+
243
+ test('good', async ({ apiRequest, authToken }) => {
244
+ // Clean - all from fixtures
245
+ await apiRequest({ method: 'GET', path: '/api/users' });
246
+ });
247
+ ```
248
+
249
+ **❌ Don't import everything when you need one utility:**
250
+
251
+ ```typescript
252
+ import * as utils from '@seontechnologies/playwright-utils'; // Large bundle
253
+ ```
254
+
255
+ **✅ Use subpath imports:**
256
+
257
+ ```typescript
258
+ import { apiRequest } from '@seontechnologies/playwright-utils/api-request'; // Small bundle
259
+ ```
260
+
261
+ ## Reference Implementation
262
+
263
+ The official `@seontechnologies/playwright-utils` repository provides working examples of all patterns described in these fragments.
264
+
265
+ **Repository:** <https://github.com/seontechnologies/playwright-utils>
266
+
267
+ **Key resources:**
268
+
269
+ - **Test examples:** `playwright/tests` - All utilities in action
270
+ - **Framework setup:** `playwright.config.ts`, `playwright/support/merged-fixtures.ts`
271
+ - **CI patterns:** `.github/workflows/` - GitHub Actions with sharding, parallelization
272
+
273
+ **Quick start:**
274
+
275
+ ```bash
276
+ git clone https://github.com/seontechnologies/playwright-utils.git
277
+ cd playwright-utils
278
+ nvm use
279
+ npm install
280
+ npm run test:pw-ui # Explore tests with Playwright UI
281
+ npm run test:pw
282
+ ```
283
+
284
+ All patterns in TEA fragments are production-tested in this repository.
@@ -0,0 +1,296 @@
1
+ # Recurse (Polling) Utility
2
+
3
+ ## Principle
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.
6
+
7
+ ## Rationale
8
+
9
+ Testing async operations (background jobs, eventual consistency, webhook processing) requires polling:
10
+
11
+ - Vanilla `expect.poll` is verbose
12
+ - No built-in logging for debugging
13
+ - Generic timeout errors
14
+ - No post-poll hooks
15
+
16
+ The `recurse` utility provides:
17
+
18
+ - **Clean syntax**: Inspired by cypress-recurse
19
+ - **Enhanced errors**: Timeout vs command failure vs predicate errors
20
+ - **Built-in logging**: Track polling progress
21
+ - **Post-poll callbacks**: Process results after success
22
+ - **Type-safe**: Full TypeScript generic support
23
+
24
+ ## Pattern Examples
25
+
26
+ ### Example 1: Basic Polling
27
+
28
+ **Context**: Wait for async operation to complete with custom timeout and interval.
29
+
30
+ **Implementation**:
31
+
32
+ ```typescript
33
+ import { test } from '@seontechnologies/playwright-utils/recurse/fixtures';
34
+
35
+ test('should wait for job completion', async ({ recurse, apiRequest }) => {
36
+ // Start job
37
+ const { body } = await apiRequest({
38
+ method: 'POST',
39
+ path: '/api/jobs',
40
+ body: { type: 'export' },
41
+ });
42
+
43
+ // Poll until ready
44
+ const result = await recurse(
45
+ () => apiRequest({ method: 'GET', path: `/api/jobs/${body.id}` }),
46
+ (response) => response.body.status === 'completed',
47
+ {
48
+ timeout: 60000, // 60 seconds max
49
+ interval: 2000, // Check every 2 seconds
50
+ log: 'Waiting for export job to complete',
51
+ },
52
+ );
53
+
54
+ expect(result.body.downloadUrl).toBeDefined();
55
+ });
56
+ ```
57
+
58
+ **Key Points**:
59
+
60
+ - First arg: command function (what to execute)
61
+ - Second arg: predicate function (when to stop)
62
+ - Options: timeout, interval, log message
63
+ - Returns the value when predicate returns true
64
+
65
+ ### Example 2: Polling with Assertions
66
+
67
+ **Context**: Use assertions directly in predicate for more expressive tests.
68
+
69
+ **Implementation**:
70
+
71
+ ```typescript
72
+ test('should poll with assertions', async ({ recurse, apiRequest }) => {
73
+ await apiRequest({
74
+ method: 'POST',
75
+ path: '/api/events',
76
+ body: { type: 'user-created', userId: '123' },
77
+ });
78
+
79
+ // Poll with assertions in predicate
80
+ await recurse(
81
+ async () => {
82
+ const { body } = await apiRequest({ method: 'GET', path: '/api/events/123' });
83
+ return body;
84
+ },
85
+ (event) => {
86
+ // Use assertions instead of boolean returns
87
+ expect(event.processed).toBe(true);
88
+ expect(event.timestamp).toBeDefined();
89
+ // If assertions pass, predicate succeeds
90
+ },
91
+ { timeout: 30000 },
92
+ );
93
+ });
94
+ ```
95
+
96
+ **Key Points**:
97
+
98
+ - Predicate can use `expect()` assertions
99
+ - If assertions throw, polling continues
100
+ - If assertions pass, polling succeeds
101
+ - More expressive than boolean returns
102
+
103
+ ### Example 3: Custom Error Messages
104
+
105
+ **Context**: Provide context-specific error messages for timeout failures.
106
+
107
+ **Implementation**:
108
+
109
+ ```typescript
110
+ test('custom error on timeout', async ({ recurse, apiRequest }) => {
111
+ try {
112
+ await recurse(
113
+ () => apiRequest({ method: 'GET', path: '/api/status' }),
114
+ (res) => res.body.ready === true,
115
+ {
116
+ timeout: 10000,
117
+ error: 'System failed to become ready within 10 seconds - check background workers',
118
+ },
119
+ );
120
+ } catch (error) {
121
+ // Error message includes custom context
122
+ expect(error.message).toContain('check background workers');
123
+ throw error;
124
+ }
125
+ });
126
+ ```
127
+
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
+ ### Example 4: Post-Polling Callback
136
+
137
+ **Context**: Process or log results after successful polling.
138
+
139
+ **Implementation**:
140
+
141
+ ```typescript
142
+ test('post-poll processing', async ({ recurse, apiRequest }) => {
143
+ const finalResult = await recurse(
144
+ () => apiRequest({ method: 'GET', path: '/api/batch-job/123' }),
145
+ (res) => res.body.status === 'completed',
146
+ {
147
+ timeout: 60000,
148
+ post: (result) => {
149
+ // Runs after successful polling
150
+ console.log(`Job completed in ${result.body.duration}ms`);
151
+ console.log(`Processed ${result.body.itemsProcessed} items`);
152
+ return result.body;
153
+ },
154
+ },
155
+ );
156
+
157
+ expect(finalResult.itemsProcessed).toBeGreaterThan(0);
158
+ });
159
+ ```
160
+
161
+ **Key Points**:
162
+
163
+ - `post` callback runs after predicate succeeds
164
+ - Receives the final result
165
+ - Can transform or log results
166
+ - Return value becomes final `recurse` result
167
+
168
+ ### Example 5: Integration with API Request (Common Pattern)
169
+
170
+ **Context**: Most common use case - polling API endpoints for state changes.
171
+
172
+ **Implementation**:
173
+
174
+ ```typescript
175
+ import { test } from '@seontechnologies/playwright-utils/fixtures';
176
+
177
+ test('end-to-end polling', async ({ apiRequest, recurse }) => {
178
+ // Trigger async operation
179
+ const { body: createResp } = await apiRequest({
180
+ method: 'POST',
181
+ path: '/api/data-import',
182
+ body: { source: 's3://bucket/data.csv' },
183
+ });
184
+
185
+ // Poll until import completes
186
+ const importResult = await recurse(
187
+ () => apiRequest({ method: 'GET', path: `/api/data-import/${createResp.importId}` }),
188
+ (response) => {
189
+ const { status, rowsImported } = response.body;
190
+ return status === 'completed' && rowsImported > 0;
191
+ },
192
+ {
193
+ timeout: 120000, // 2 minutes for large imports
194
+ interval: 5000, // Check every 5 seconds
195
+ log: `Polling import ${createResp.importId}`,
196
+ },
197
+ );
198
+
199
+ expect(importResult.body.rowsImported).toBeGreaterThan(1000);
200
+ expect(importResult.body.errors).toHaveLength(0);
201
+ });
202
+ ```
203
+
204
+ **Key Points**:
205
+
206
+ - Combine `apiRequest` + `recurse` for API polling
207
+ - Both from `@seontechnologies/playwright-utils/fixtures`
208
+ - Complex predicates with multiple conditions
209
+ - Logging shows polling progress in test reports
210
+
211
+ ## Enhanced Error Types
212
+
213
+ The utility categorizes errors for easier debugging:
214
+
215
+ ```typescript
216
+ // TimeoutError - Predicate never returned true
217
+ Error: Polling timed out after 30000ms: Job never completed
218
+
219
+ // CommandError - Command function threw
220
+ Error: Command failed: Request failed with status 500
221
+
222
+ // PredicateError - Predicate function threw (not from assertions)
223
+ Error: Predicate failed: Cannot read property 'status' of undefined
224
+ ```
225
+
226
+ ## Comparison with Vanilla Playwright
227
+
228
+ | Vanilla Playwright | recurse Utility |
229
+ | ----------------------------------------------------------------- | ------------------------------------------------------------------------- |
230
+ | `await expect.poll(() => { ... }, { timeout: 30000 }).toBe(true)` | `await recurse(() => { ... }, (val) => val === true, { timeout: 30000 })` |
231
+ | No logging | Built-in log option |
232
+ | Generic timeout errors | Categorized errors (timeout/command/predicate) |
233
+ | No post-poll hooks | `post` callback support |
234
+
235
+ ## When to Use
236
+
237
+ **Use recurse for:**
238
+
239
+ - ✅ Background job completion
240
+ - ✅ Webhook/event processing
241
+ - ✅ Database eventual consistency
242
+ - ✅ Cache propagation
243
+ - ✅ State machine transitions
244
+
245
+ **Stick with vanilla expect.poll for:**
246
+
247
+ - Simple UI element visibility (use `expect(locator).toBeVisible()`)
248
+ - Single-property checks
249
+ - Cases where logging isn't needed
250
+
251
+ ## Related Fragments
252
+
253
+ - `api-request.md` - Combine for API endpoint polling
254
+ - `overview.md` - Fixture composition patterns
255
+ - `fixtures-composition.md` - Using with mergeTests
256
+
257
+ ## Anti-Patterns
258
+
259
+ **❌ Using hard waits instead of polling:**
260
+
261
+ ```typescript
262
+ await page.click('#export');
263
+ await page.waitForTimeout(5000); // Arbitrary wait
264
+ expect(await page.textContent('#status')).toBe('Ready');
265
+ ```
266
+
267
+ **✅ Poll for actual condition:**
268
+
269
+ ```typescript
270
+ await page.click('#export');
271
+ await recurse(
272
+ () => page.textContent('#status'),
273
+ (status) => status === 'Ready',
274
+ { timeout: 10000 },
275
+ );
276
+ ```
277
+
278
+ **❌ Polling too frequently:**
279
+
280
+ ```typescript
281
+ await recurse(
282
+ () => apiRequest({ method: 'GET', path: '/status' }),
283
+ (res) => res.body.ready,
284
+ { interval: 100 }, // Hammers API every 100ms!
285
+ );
286
+ ```
287
+
288
+ **✅ Reasonable interval for API calls:**
289
+
290
+ ```typescript
291
+ await recurse(
292
+ () => apiRequest({ method: 'GET', path: '/status' }),
293
+ (res) => res.body.ready,
294
+ { interval: 2000 }, // Check every 2 seconds (reasonable)
295
+ );
296
+ ```
@@ -20,3 +20,14 @@ test-priorities,Test Priorities Matrix,"P0–P3 criteria, coverage targets, exec
20
20
  test-healing-patterns,Test Healing Patterns,"Common failure patterns and automated fixes","healing,debugging,patterns",knowledge/test-healing-patterns.md
21
21
  selector-resilience,Selector Resilience,"Robust selector strategies and debugging techniques","selectors,locators,debugging",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
@@ -0,0 +1,8 @@
1
+ # Product Brief: {{project_name}}
2
+
3
+ **Date:** {{date}}
4
+ **Author:** {{user_name}}
5
+
6
+ ---
7
+
8
+ <!-- Content will be appended sequentially through collaborative workflow steps -->