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,280 @@
1
+ # Intercept Network Call Utility
2
+
3
+ ## Principle
4
+
5
+ Intercept network requests with a single declarative call that returns a Promise. Automatically parse JSON responses, support both spy (observe) and stub (mock) patterns, and use powerful glob pattern matching for URL filtering.
6
+
7
+ ## Rationale
8
+
9
+ Vanilla Playwright's network interception requires multiple steps:
10
+
11
+ - `page.route()` to setup, `page.waitForResponse()` to capture
12
+ - Manual JSON parsing
13
+ - Verbose syntax for conditional handling
14
+ - Complex filter predicates
15
+
16
+ The `interceptNetworkCall` utility provides:
17
+
18
+ - **Single declarative call**: Setup and wait in one statement
19
+ - **Automatic JSON parsing**: Response pre-parsed, strongly typed
20
+ - **Flexible URL patterns**: Glob matching with picomatch
21
+ - **Spy or stub modes**: Observe real traffic or mock responses
22
+ - **Concise API**: Reduces boilerplate by 60-70%
23
+
24
+ ## Pattern Examples
25
+
26
+ ### Example 1: Spy on Network (Observe Real Traffic)
27
+
28
+ **Context**: Capture and inspect real API responses for validation.
29
+
30
+ **Implementation**:
31
+
32
+ ```typescript
33
+ import { test } from '@seontechnologies/playwright-utils/intercept-network-call/fixtures';
34
+
35
+ test('should spy on users API', async ({ page, interceptNetworkCall }) => {
36
+ // Setup interception BEFORE navigation
37
+ const usersCall = interceptNetworkCall({
38
+ url: '**/api/users', // Glob pattern
39
+ });
40
+
41
+ await page.goto('/dashboard');
42
+
43
+ // Wait for response and access parsed data
44
+ const { responseJson, status } = await usersCall;
45
+
46
+ expect(status).toBe(200);
47
+ expect(responseJson).toHaveLength(10);
48
+ expect(responseJson[0]).toHaveProperty('name');
49
+ });
50
+ ```
51
+
52
+ **Key Points**:
53
+
54
+ - Intercept before navigation (critical for race-free tests)
55
+ - Returns Promise with `{ responseJson, status, requestBody }`
56
+ - Glob patterns (`**` matches any path segment)
57
+ - JSON automatically parsed
58
+
59
+ ### Example 2: Stub Network (Mock Response)
60
+
61
+ **Context**: Mock API responses for testing UI behavior without backend.
62
+
63
+ **Implementation**:
64
+
65
+ ```typescript
66
+ test('should stub users API', async ({ page, interceptNetworkCall }) => {
67
+ const mockUsers = [
68
+ { id: 1, name: 'Test User 1' },
69
+ { id: 2, name: 'Test User 2' },
70
+ ];
71
+
72
+ const usersCall = interceptNetworkCall({
73
+ url: '**/api/users',
74
+ fulfillResponse: {
75
+ status: 200,
76
+ body: mockUsers,
77
+ },
78
+ });
79
+
80
+ await page.goto('/dashboard');
81
+ await usersCall;
82
+
83
+ // UI shows mocked data
84
+ await expect(page.getByText('Test User 1')).toBeVisible();
85
+ await expect(page.getByText('Test User 2')).toBeVisible();
86
+ });
87
+ ```
88
+
89
+ **Key Points**:
90
+
91
+ - `fulfillResponse` mocks the API
92
+ - No backend needed
93
+ - Test UI logic in isolation
94
+ - Status code and body fully controllable
95
+
96
+ ### Example 3: Conditional Response Handling
97
+
98
+ **Context**: Different responses based on request method or parameters.
99
+
100
+ **Implementation**:
101
+
102
+ ```typescript
103
+ test('conditional mocking', async ({ page, interceptNetworkCall }) => {
104
+ await interceptNetworkCall({
105
+ url: '**/api/data',
106
+ handler: async (route, request) => {
107
+ if (request.method() === 'POST') {
108
+ // Mock POST success
109
+ await route.fulfill({
110
+ status: 201,
111
+ body: JSON.stringify({ id: 'new-id', success: true }),
112
+ });
113
+ } else if (request.method() === 'GET') {
114
+ // Mock GET with data
115
+ await route.fulfill({
116
+ status: 200,
117
+ body: JSON.stringify([{ id: 1, name: 'Item' }]),
118
+ });
119
+ } else {
120
+ // Let other methods through
121
+ await route.continue();
122
+ }
123
+ },
124
+ });
125
+
126
+ await page.goto('/data-page');
127
+ });
128
+ ```
129
+
130
+ **Key Points**:
131
+
132
+ - `handler` function for complex logic
133
+ - Access full `route` and `request` objects
134
+ - Can mock, continue, or abort
135
+ - Flexible for advanced scenarios
136
+
137
+ ### Example 4: Error Simulation
138
+
139
+ **Context**: Testing error handling in UI when API fails.
140
+
141
+ **Implementation**:
142
+
143
+ ```typescript
144
+ test('should handle API errors gracefully', async ({ page, interceptNetworkCall }) => {
145
+ // Simulate 500 error
146
+ const errorCall = interceptNetworkCall({
147
+ url: '**/api/users',
148
+ fulfillResponse: {
149
+ status: 500,
150
+ body: { error: 'Internal Server Error' },
151
+ },
152
+ });
153
+
154
+ await page.goto('/dashboard');
155
+ await errorCall;
156
+
157
+ // Verify UI shows error state
158
+ await expect(page.getByText('Failed to load users')).toBeVisible();
159
+ await expect(page.getByTestId('retry-button')).toBeVisible();
160
+ });
161
+
162
+ // Simulate network timeout
163
+ test('should handle timeout', async ({ page, interceptNetworkCall }) => {
164
+ await interceptNetworkCall({
165
+ url: '**/api/slow',
166
+ handler: async (route) => {
167
+ // Never respond - simulates timeout
168
+ await new Promise(() => {});
169
+ },
170
+ });
171
+
172
+ await page.goto('/slow-page');
173
+
174
+ // UI should show timeout error
175
+ await expect(page.getByText('Request timed out')).toBeVisible({ timeout: 10000 });
176
+ });
177
+ ```
178
+
179
+ **Key Points**:
180
+
181
+ - Mock error statuses (4xx, 5xx)
182
+ - Test timeout scenarios
183
+ - Validate error UI states
184
+ - No real failures needed
185
+
186
+ ### Example 5: Multiple Intercepts (Order Matters!)
187
+
188
+ **Context**: Intercepting different endpoints in same test - setup order is critical.
189
+
190
+ **Implementation**:
191
+
192
+ ```typescript
193
+ test('multiple intercepts', async ({ page, interceptNetworkCall }) => {
194
+ // ✅ CORRECT: Setup all intercepts BEFORE navigation
195
+ const usersCall = interceptNetworkCall({ url: '**/api/users' });
196
+ const productsCall = interceptNetworkCall({ url: '**/api/products' });
197
+ const ordersCall = interceptNetworkCall({ url: '**/api/orders' });
198
+
199
+ // THEN navigate
200
+ await page.goto('/dashboard');
201
+
202
+ // Wait for all (or specific ones)
203
+ const [users, products] = await Promise.all([usersCall, productsCall]);
204
+
205
+ expect(users.responseJson).toHaveLength(10);
206
+ expect(products.responseJson).toHaveLength(50);
207
+ });
208
+ ```
209
+
210
+ **Key Points**:
211
+
212
+ - Setup all intercepts before triggering actions
213
+ - Use `Promise.all()` to wait for multiple calls
214
+ - Order: intercept → navigate → await
215
+ - Prevents race conditions
216
+
217
+ ## URL Pattern Matching
218
+
219
+ **Supported glob patterns:**
220
+
221
+ ```typescript
222
+ '**/api/users'; // Any path ending with /api/users
223
+ '/api/users'; // Exact match
224
+ '**/users/*'; // Any users sub-path
225
+ '**/api/{users,products}'; // Either users or products
226
+ '**/api/users?id=*'; // With query params
227
+ ```
228
+
229
+ **Uses picomatch library** - same pattern syntax as Playwright's `page.route()` but cleaner API.
230
+
231
+ ## Comparison with Vanilla Playwright
232
+
233
+ | Vanilla Playwright | intercept-network-call |
234
+ | ----------------------------------------------------------- | ------------------------------------------------------------ |
235
+ | `await page.route('/api/users', route => route.continue())` | `const call = interceptNetworkCall({ url: '**/api/users' })` |
236
+ | `const resp = await page.waitForResponse('/api/users')` | (Combined in single statement) |
237
+ | `const json = await resp.json()` | `const { responseJson } = await call` |
238
+ | `const status = resp.status()` | `const { status } = await call` |
239
+ | Complex filter predicates | Simple glob patterns |
240
+
241
+ **Reduction:** ~5-7 lines → ~2-3 lines per interception
242
+
243
+ ## Related Fragments
244
+
245
+ - `network-first.md` - Core pattern: intercept before navigate
246
+ - `network-recorder.md` - HAR-based offline testing
247
+ - `overview.md` - Fixture composition basics
248
+
249
+ ## Anti-Patterns
250
+
251
+ **❌ Intercepting after navigation:**
252
+
253
+ ```typescript
254
+ await page.goto('/dashboard'); // Navigation starts
255
+ const usersCall = interceptNetworkCall({ url: '**/api/users' }); // Too late!
256
+ ```
257
+
258
+ **✅ Intercept before navigate:**
259
+
260
+ ```typescript
261
+ const usersCall = interceptNetworkCall({ url: '**/api/users' }); // First
262
+ await page.goto('/dashboard'); // Then navigate
263
+ const { responseJson } = await usersCall; // Then await
264
+ ```
265
+
266
+ **❌ Ignoring the returned Promise:**
267
+
268
+ ```typescript
269
+ interceptNetworkCall({ url: '**/api/users' }); // Not awaited!
270
+ await page.goto('/dashboard');
271
+ // No deterministic wait - race condition
272
+ ```
273
+
274
+ **✅ Always await the intercept:**
275
+
276
+ ```typescript
277
+ const usersCall = interceptNetworkCall({ url: '**/api/users' });
278
+ await page.goto('/dashboard');
279
+ await usersCall; // Deterministic wait
280
+ ```
@@ -0,0 +1,294 @@
1
+ # Log Utility
2
+
3
+ ## Principle
4
+
5
+ Use structured logging that integrates with Playwright's test reports. Support object logging, test step decoration, and multiple log levels (info, step, success, warning, error, debug).
6
+
7
+ ## Rationale
8
+
9
+ Console.log in Playwright tests has limitations:
10
+
11
+ - Not visible in HTML reports
12
+ - No test step integration
13
+ - No structured output
14
+ - Lost in terminal noise during CI
15
+
16
+ The `log` utility provides:
17
+
18
+ - **Report integration**: Logs appear in Playwright HTML reports
19
+ - **Test step decoration**: `log.step()` creates collapsible steps in UI
20
+ - **Object logging**: Automatically formats objects/arrays
21
+ - **Multiple levels**: info, step, success, warning, error, debug
22
+ - **Optional console**: Can disable console output but keep report logs
23
+
24
+ ## Pattern Examples
25
+
26
+ ### Example 1: Basic Logging Levels
27
+
28
+ **Context**: Log different types of messages throughout test execution.
29
+
30
+ **Implementation**:
31
+
32
+ ```typescript
33
+ import { log } from '@seontechnologies/playwright-utils';
34
+
35
+ test('logging demo', async ({ page }) => {
36
+ await log.step('Navigate to login page');
37
+ await page.goto('/login');
38
+
39
+ await log.info('Entering credentials');
40
+ await page.fill('#username', 'testuser');
41
+
42
+ await log.success('Login successful');
43
+
44
+ await log.warning('Rate limit approaching');
45
+
46
+ await log.debug({ userId: '123', sessionId: 'abc' });
47
+
48
+ // Errors still throw but get logged first
49
+ try {
50
+ await page.click('#nonexistent');
51
+ } catch (error) {
52
+ await log.error('Click failed', false); // false = no console output
53
+ throw error;
54
+ }
55
+ });
56
+ ```
57
+
58
+ **Key Points**:
59
+
60
+ - `step()` creates collapsible steps in Playwright UI
61
+ - `info()`, `success()`, `warning()` for different message types
62
+ - `debug()` for detailed data (objects/arrays)
63
+ - `error()` with optional console suppression
64
+ - All logs appear in test reports
65
+
66
+ ### Example 2: Object and Array Logging
67
+
68
+ **Context**: Log structured data for debugging without cluttering console.
69
+
70
+ **Implementation**:
71
+
72
+ ```typescript
73
+ test('object logging', async ({ apiRequest }) => {
74
+ const { body } = await apiRequest({
75
+ method: 'GET',
76
+ path: '/api/users',
77
+ });
78
+
79
+ // Log array of objects
80
+ await log.debug(body); // Formatted as JSON in report
81
+
82
+ // Log specific object
83
+ await log.info({
84
+ totalUsers: body.length,
85
+ firstUser: body[0]?.name,
86
+ timestamp: new Date().toISOString(),
87
+ });
88
+
89
+ // Complex nested structures
90
+ await log.debug({
91
+ request: {
92
+ method: 'GET',
93
+ path: '/api/users',
94
+ timestamp: Date.now(),
95
+ },
96
+ response: {
97
+ status: 200,
98
+ body: body.slice(0, 3), // First 3 items
99
+ },
100
+ });
101
+ });
102
+ ```
103
+
104
+ **Key Points**:
105
+
106
+ - Objects auto-formatted as pretty JSON
107
+ - Arrays handled gracefully
108
+ - Nested structures supported
109
+ - All visible in Playwright report attachments
110
+
111
+ ### Example 3: Test Step Organization
112
+
113
+ **Context**: Organize test execution into collapsible steps for better readability in reports.
114
+
115
+ **Implementation**:
116
+
117
+ ```typescript
118
+ test('organized with steps', async ({ page, apiRequest }) => {
119
+ await log.step('ARRANGE: Setup test data');
120
+ const { body: user } = await apiRequest({
121
+ method: 'POST',
122
+ path: '/api/users',
123
+ body: { name: 'Test User' },
124
+ });
125
+
126
+ await log.step('ACT: Perform user action');
127
+ await page.goto(`/users/${user.id}`);
128
+ await page.click('#edit');
129
+ await page.fill('#name', 'Updated Name');
130
+ await page.click('#save');
131
+
132
+ await log.step('ASSERT: Verify changes');
133
+ await expect(page.getByText('Updated Name')).toBeVisible();
134
+
135
+ // In Playwright UI, each step is collapsible
136
+ });
137
+ ```
138
+
139
+ **Key Points**:
140
+
141
+ - `log.step()` creates collapsible sections
142
+ - Organize by Arrange-Act-Assert
143
+ - Steps visible in Playwright trace viewer
144
+ - Better debugging when tests fail
145
+
146
+ ### Example 4: Conditional Logging
147
+
148
+ **Context**: Log different messages based on environment or test conditions.
149
+
150
+ **Implementation**:
151
+
152
+ ```typescript
153
+ test('conditional logging', async ({ page }) => {
154
+ const isCI = process.env.CI === 'true';
155
+
156
+ if (isCI) {
157
+ await log.info('Running in CI environment');
158
+ } else {
159
+ await log.debug('Running locally');
160
+ }
161
+
162
+ const isKafkaWorking = await checkKafkaHealth();
163
+
164
+ if (!isKafkaWorking) {
165
+ await log.warning('Kafka unavailable - skipping event checks');
166
+ } else {
167
+ await log.step('Verifying Kafka events');
168
+ // ... event verification
169
+ }
170
+ });
171
+ ```
172
+
173
+ **Key Points**:
174
+
175
+ - Log based on environment
176
+ - Skip logging with conditionals
177
+ - Use appropriate log levels
178
+ - Debug info for local, minimal for CI
179
+
180
+ ### Example 5: Integration with Auth and API
181
+
182
+ **Context**: Log authenticated API requests with tokens (safely).
183
+
184
+ **Implementation**:
185
+
186
+ ```typescript
187
+ import { test } from '@seontechnologies/playwright-utils/fixtures';
188
+
189
+ // Helper to create safe token preview
190
+ function createTokenPreview(token: string): string {
191
+ if (!token || token.length < 10) return '[invalid]';
192
+ return `${token.slice(0, 6)}...${token.slice(-4)}`;
193
+ }
194
+
195
+ test('should log auth flow', async ({ authToken, apiRequest }) => {
196
+ await log.info(`Using token: ${createTokenPreview(authToken)}`);
197
+
198
+ await log.step('Fetch protected resource');
199
+ const { status, body } = await apiRequest({
200
+ method: 'GET',
201
+ path: '/api/protected',
202
+ headers: { Authorization: `Bearer ${authToken}` },
203
+ });
204
+
205
+ await log.debug({
206
+ status,
207
+ bodyPreview: {
208
+ id: body.id,
209
+ recordCount: body.data?.length,
210
+ },
211
+ });
212
+
213
+ await log.success('Protected resource accessed successfully');
214
+ });
215
+ ```
216
+
217
+ **Key Points**:
218
+
219
+ - Never log full tokens (security risk)
220
+ - Use preview functions for sensitive data
221
+ - Combine with auth and API utilities
222
+ - Log at appropriate detail level
223
+
224
+ ## Log Levels Guide
225
+
226
+ | Level | When to Use | Shows in Report | Shows in Console |
227
+ | --------- | ----------------------------------- | -------------------- | ---------------- |
228
+ | `step` | Test organization, major actions | ✅ Collapsible steps | ✅ Yes |
229
+ | `info` | General information, state changes | ✅ Yes | ✅ Yes |
230
+ | `success` | Successful operations | ✅ Yes | ✅ Yes |
231
+ | `warning` | Non-critical issues, skipped checks | ✅ Yes | ✅ Yes |
232
+ | `error` | Failures, exceptions | ✅ Yes | ✅ Configurable |
233
+ | `debug` | Detailed data, objects | ✅ Yes (attached) | ✅ Configurable |
234
+
235
+ ## Comparison with console.log
236
+
237
+ | console.log | log Utility |
238
+ | ----------------------- | ------------------------- |
239
+ | Not in reports | Appears in reports |
240
+ | No test steps | Creates collapsible steps |
241
+ | Manual JSON.stringify() | Auto-formats objects |
242
+ | No log levels | 6 log levels |
243
+ | Lost in CI output | Preserved in artifacts |
244
+
245
+ ## Related Fragments
246
+
247
+ - `overview.md` - Basic usage and imports
248
+ - `api-request.md` - Log API requests
249
+ - `auth-session.md` - Log auth flow (safely)
250
+ - `recurse.md` - Log polling progress
251
+
252
+ ## Anti-Patterns
253
+
254
+ **❌ Logging objects in steps:**
255
+
256
+ ```typescript
257
+ await log.step({ user: 'test', action: 'create' }); // Shows empty in UI
258
+ ```
259
+
260
+ **✅ Use strings for steps, objects for debug:**
261
+
262
+ ```typescript
263
+ await log.step('Creating user: test'); // Readable in UI
264
+ await log.debug({ user: 'test', action: 'create' }); // Detailed data
265
+ ```
266
+
267
+ **❌ Logging sensitive data:**
268
+
269
+ ```typescript
270
+ await log.info(`Password: ${password}`); // Security risk!
271
+ await log.info(`Token: ${authToken}`); // Full token exposed!
272
+ ```
273
+
274
+ **✅ Use previews or omit sensitive data:**
275
+
276
+ ```typescript
277
+ await log.info('User authenticated successfully'); // No sensitive data
278
+ await log.debug({ tokenPreview: token.slice(0, 6) + '...' });
279
+ ```
280
+
281
+ **❌ Excessive logging in loops:**
282
+
283
+ ```typescript
284
+ for (const item of items) {
285
+ await log.info(`Processing ${item.id}`); // 100 log entries!
286
+ }
287
+ ```
288
+
289
+ **✅ Log summary or use debug level:**
290
+
291
+ ```typescript
292
+ await log.step(`Processing ${items.length} items`);
293
+ await log.debug({ itemIds: items.map((i) => i.id) }); // One log entry
294
+ ```