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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (812) hide show
  1. package/.coderabbit.yaml +2 -2
  2. package/.github/workflows/docs.yaml +3 -12
  3. package/.vscode/settings.json +1 -0
  4. package/CHANGELOG.md +309 -0
  5. package/CNAME +1 -0
  6. package/CONTRIBUTING.md +9 -7
  7. package/README.md +41 -207
  8. package/docs/404.md +9 -0
  9. package/{src/modules/bmm/docs/images/README.md → docs/_README_WORKFLOW_DIAGRAMS.md} +4 -1
  10. package/docs/_STYLE_GUIDE.md +347 -0
  11. package/docs/_archive/getting-started-bmadv4.md +247 -0
  12. package/{website/src/pages → docs}/downloads.md +17 -26
  13. package/{src/modules/bmm/docs/quick-flow-solo-dev.md → docs/explanation/agents/barry-quick-flow.md} +18 -15
  14. package/docs/explanation/agents/index.md +28 -0
  15. package/docs/explanation/architecture/four-phases.md +126 -0
  16. package/docs/explanation/architecture/preventing-agent-conflicts.md +138 -0
  17. package/docs/explanation/architecture/why-solutioning-matters.md +91 -0
  18. package/docs/{custom-content.md → explanation/bmad-builder/custom-content-types.md} +19 -21
  19. package/docs/explanation/bmad-builder/index.md +66 -0
  20. package/docs/explanation/bmm/index.md +135 -0
  21. package/docs/explanation/core/index.md +18 -0
  22. package/docs/explanation/core-concepts/agent-roles.md +204 -0
  23. package/docs/explanation/core-concepts/index.md +40 -0
  24. package/docs/explanation/core-concepts/what-are-agents.md +96 -0
  25. package/docs/explanation/core-concepts/what-are-modules.md +79 -0
  26. package/docs/explanation/core-concepts/what-are-workflows.md +217 -0
  27. package/{src/modules/cis/docs → docs/explanation/creative-intelligence}/index.md +26 -54
  28. package/docs/explanation/faq/brownfield-faq.md +73 -0
  29. package/docs/explanation/faq/getting-started-faq.md +62 -0
  30. package/docs/explanation/faq/implementation-faq.md +52 -0
  31. package/docs/explanation/faq/index.md +16 -0
  32. package/docs/explanation/faq/levels-and-tracks-faq.md +52 -0
  33. package/docs/explanation/faq/planning-faq.md +41 -0
  34. package/docs/explanation/faq/tools-faq.md +253 -0
  35. package/docs/explanation/faq/workflows-faq.md +61 -0
  36. package/docs/explanation/features/advanced-elicitation.md +108 -0
  37. package/docs/explanation/features/brainstorming-techniques.md +103 -0
  38. package/{src/modules/bmm/docs → docs/explanation/features}/party-mode.md +11 -123
  39. package/docs/explanation/features/quick-flow.md +169 -0
  40. package/{src/modules/bmm/docs/test-architecture.md → docs/explanation/features/tea-overview.md} +160 -118
  41. package/docs/explanation/features/web-bundles.md +35 -0
  42. package/{src/modules/bmgd/docs/agents-guide.md → docs/explanation/game-dev/agents.md} +8 -5
  43. package/docs/explanation/game-dev/bmgd-vs-bmm.md +150 -0
  44. package/{src/modules/bmgd/docs/game-types-guide.md → docs/explanation/game-dev/game-types.md} +7 -4
  45. package/docs/explanation/game-dev/index.md +85 -0
  46. package/docs/explanation/philosophy/facilitation-over-generation.md +121 -0
  47. package/docs/explanation/philosophy/testing-as-engineering.md +119 -0
  48. package/docs/how-to/brownfield/add-feature-to-existing.md +91 -0
  49. package/docs/how-to/brownfield/document-existing-project.md +84 -0
  50. package/docs/how-to/brownfield/index.md +102 -0
  51. package/docs/how-to/brownfield/quick-fix-in-brownfield.md +94 -0
  52. package/docs/{agent-customization-guide.md → how-to/customization/customize-agents.md} +10 -10
  53. package/docs/how-to/customization/customize-workflows.md +33 -0
  54. package/docs/how-to/customization/index.md +27 -0
  55. package/docs/how-to/customization/shard-large-documents.md +125 -0
  56. package/docs/how-to/customization/vendor-workflows.md +45 -0
  57. package/docs/how-to/get-answers-about-bmad.md +98 -0
  58. package/docs/how-to/installation/index.md +15 -0
  59. package/docs/how-to/installation/install-bmad.md +138 -0
  60. package/docs/{custom-content-installation.md → how-to/installation/install-custom-modules.md} +17 -14
  61. package/docs/how-to/installation/upgrade-to-v6.md +147 -0
  62. package/{src/modules/bmgd/docs/troubleshooting.md → docs/how-to/troubleshooting/bmgd-troubleshooting.md} +7 -5
  63. package/{src/modules/bmgd/docs/quick-flow-guide.md → docs/how-to/workflows/bmgd-quick-flow.md} +8 -5
  64. package/docs/how-to/workflows/conduct-research.md +130 -0
  65. package/docs/how-to/workflows/create-architecture.md +147 -0
  66. package/docs/how-to/workflows/create-epics-and-stories.md +136 -0
  67. package/docs/how-to/workflows/create-prd.md +130 -0
  68. package/docs/how-to/workflows/create-product-brief.md +117 -0
  69. package/docs/how-to/workflows/create-story.md +119 -0
  70. package/docs/how-to/workflows/create-ux-design.md +117 -0
  71. package/docs/how-to/workflows/implement-story.md +127 -0
  72. package/docs/how-to/workflows/quick-spec.md +159 -0
  73. package/docs/how-to/workflows/run-brainstorming-session.md +94 -0
  74. package/docs/how-to/workflows/run-code-review.md +141 -0
  75. package/docs/how-to/workflows/run-implementation-readiness.md +162 -0
  76. package/docs/how-to/workflows/run-sprint-planning.md +111 -0
  77. package/docs/how-to/workflows/run-test-design.md +128 -0
  78. package/docs/how-to/workflows/setup-party-mode.md +117 -0
  79. package/docs/how-to/workflows/setup-test-framework.md +113 -0
  80. package/docs/index.md +33 -113
  81. package/{src/modules/bmm/docs/agents-guide.md → docs/reference/agents/index.md} +36 -39
  82. package/docs/reference/configuration/core-tasks.md +67 -0
  83. package/docs/reference/configuration/global-config.md +14 -0
  84. package/{src/modules/bmm/docs/glossary.md → docs/reference/glossary/index.md} +90 -24
  85. package/{src/modules/bmgd/docs/workflows-guide.md → docs/reference/workflows/bmgd-workflows.md} +11 -8
  86. package/docs/reference/workflows/core-workflows.md +33 -0
  87. package/docs/reference/workflows/document-project.md +74 -0
  88. package/docs/reference/workflows/index.md +16 -0
  89. package/docs/tutorials/advanced/create-custom-agent.md +171 -0
  90. package/docs/tutorials/getting-started/getting-started-bmadv6.md +246 -0
  91. package/docs/tutorials/getting-started/quick-start-bmgd.md +260 -0
  92. package/docs/tutorials/getting-started/workflow-overview.jpg +0 -0
  93. package/eslint.config.mjs +2 -2
  94. package/package.json +10 -10
  95. package/samples/sample-custom-modules/README.md +1 -1
  96. package/samples/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml +1 -0
  97. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +0 -5
  98. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +1 -1
  99. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +1 -1
  100. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md +3 -3
  101. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md +3 -3
  102. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md +3 -3
  103. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md +3 -3
  104. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md +3 -3
  105. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md +3 -3
  106. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md +3 -3
  107. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md +3 -3
  108. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md +3 -3
  109. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md +3 -3
  110. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md +3 -3
  111. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md +2 -2
  112. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md +1 -1
  113. package/samples/sample-custom-modules/sample-wellness-module/agents/meditation-guide.agent.yaml +1 -0
  114. package/src/core/agents/bmad-master.agent.yaml +1 -0
  115. package/src/core/{tools → tasks}/shard-doc.xml +2 -2
  116. package/src/core/tasks/workflow.xml +1 -1
  117. package/src/core/{tasks/advanced-elicitation.xml → workflows/advanced-elicitation/workflow.xml} +3 -2
  118. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +1 -0
  119. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +1 -0
  120. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +1 -0
  121. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +1 -0
  122. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +1 -0
  123. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +1 -0
  124. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +69 -9
  125. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +1 -0
  126. package/src/core/workflows/brainstorming/workflow.md +8 -1
  127. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +1 -0
  128. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +1 -0
  129. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +1 -0
  130. package/src/core/workflows/party-mode/workflow.md +1 -1
  131. package/src/modules/bmb/agents/agent-builder.agent.yaml +7 -2
  132. package/src/modules/bmb/agents/module-builder.agent.yaml +5 -8
  133. package/src/modules/bmb/agents/workflow-builder.agent.yaml +16 -7
  134. package/src/modules/bmb/workflows/agent/data/agent-compilation.md +273 -0
  135. package/src/modules/bmb/workflows/agent/data/agent-menu-patterns.md +233 -0
  136. package/src/modules/bmb/workflows/agent/data/agent-metadata.md +208 -0
  137. package/src/modules/bmb/workflows/{create-agent → agent}/data/brainstorm-context.md +3 -10
  138. package/src/modules/bmb/workflows/{create-agent → agent}/data/communication-presets.csv +1 -1
  139. package/src/modules/bmb/workflows/agent/data/critical-actions.md +120 -0
  140. package/src/modules/bmb/workflows/agent/data/expert-agent-architecture.md +236 -0
  141. package/src/modules/bmb/workflows/agent/data/expert-agent-validation.md +174 -0
  142. package/src/modules/bmb/workflows/agent/data/module-agent-validation.md +126 -0
  143. package/src/modules/bmb/workflows/agent/data/persona-properties.md +266 -0
  144. package/src/modules/bmb/workflows/agent/data/principles-crafting.md +292 -0
  145. package/src/modules/bmb/workflows/agent/data/reference/expert-examples/journal-keeper/journal-keeper-sidecar/entries/yy-mm-dd-entry-template.md +17 -0
  146. package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/expert-examples/journal-keeper/journal-keeper.agent.yaml +26 -25
  147. package/src/modules/bmb/workflows/agent/data/reference/module-examples/architect.agent.yaml +32 -0
  148. package/src/modules/bmb/workflows/agent/data/reference/module-examples/architect.md +68 -0
  149. package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/module-examples/security-engineer.agent.yaml +1 -0
  150. package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/module-examples/trend-analyst.agent.yaml +1 -0
  151. package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/simple-examples/commit-poet.agent.yaml +15 -14
  152. package/src/modules/bmb/workflows/agent/data/simple-agent-architecture.md +204 -0
  153. package/src/modules/bmb/workflows/agent/data/simple-agent-validation.md +133 -0
  154. package/src/modules/bmb/workflows/agent/data/understanding-agent-types.md +222 -0
  155. package/src/modules/bmb/workflows/{create-agent/steps → agent/steps-c}/step-01-brainstorm.md +9 -26
  156. package/src/modules/bmb/workflows/agent/steps-c/step-02-discovery.md +170 -0
  157. package/src/modules/bmb/workflows/agent/steps-c/step-03-type-metadata.md +296 -0
  158. package/src/modules/bmb/workflows/agent/steps-c/step-04-persona.md +212 -0
  159. package/src/modules/bmb/workflows/agent/steps-c/step-05-commands-menu.md +178 -0
  160. package/src/modules/bmb/workflows/agent/steps-c/step-06-activation.md +279 -0
  161. package/src/modules/bmb/workflows/agent/steps-c/step-07a-build-simple.md +187 -0
  162. package/src/modules/bmb/workflows/agent/steps-c/step-07b-build-expert.md +201 -0
  163. package/src/modules/bmb/workflows/agent/steps-c/step-07c-build-module.md +258 -0
  164. package/src/modules/bmb/workflows/agent/steps-c/step-08-celebrate.md +249 -0
  165. package/src/modules/bmb/workflows/agent/steps-e/e-01-load-existing.md +221 -0
  166. package/src/modules/bmb/workflows/agent/steps-e/e-02-discover-edits.md +193 -0
  167. package/src/modules/bmb/workflows/agent/steps-e/e-03-placeholder.md +1 -0
  168. package/src/modules/bmb/workflows/agent/steps-e/e-04-type-metadata.md +124 -0
  169. package/src/modules/bmb/workflows/agent/steps-e/e-05-persona.md +134 -0
  170. package/src/modules/bmb/workflows/agent/steps-e/e-06-commands-menu.md +122 -0
  171. package/src/modules/bmb/workflows/agent/steps-e/e-07-activation.md +125 -0
  172. package/src/modules/bmb/workflows/agent/steps-e/e-08a-edit-simple.md +137 -0
  173. package/src/modules/bmb/workflows/agent/steps-e/e-08b-edit-expert.md +119 -0
  174. package/src/modules/bmb/workflows/agent/steps-e/e-08c-edit-module.md +123 -0
  175. package/src/modules/bmb/workflows/agent/steps-e/e-09-celebrate.md +155 -0
  176. package/src/modules/bmb/workflows/agent/steps-v/v-01-load-review.md +136 -0
  177. package/src/modules/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +116 -0
  178. package/src/modules/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +124 -0
  179. package/src/modules/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +145 -0
  180. package/src/modules/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +136 -0
  181. package/src/modules/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +136 -0
  182. package/src/modules/bmb/workflows/agent/steps-v/v-03-summary.md +104 -0
  183. package/src/modules/bmb/workflows/agent/templates/agent-plan.template.md +5 -0
  184. package/src/modules/bmb/workflows/agent/templates/expert-agent-template/expert-agent-sidecar/instructions.md.template +20 -0
  185. package/src/modules/bmb/workflows/agent/templates/expert-agent-template/expert-agent-sidecar/memories.md.template +18 -0
  186. package/src/modules/bmb/workflows/agent/templates/expert-agent-template/expert-agent.template.md +77 -0
  187. package/src/modules/bmb/workflows/agent/templates/simple-agent.template.md +72 -0
  188. package/src/modules/bmb/workflows/agent/workflow.md +123 -0
  189. package/src/modules/bmb/workflows/module/data/agent-architecture.md +179 -0
  190. package/src/modules/bmb/workflows/module/data/agent-spec-template.md +79 -0
  191. package/src/modules/bmb/workflows/module/data/module-installer-standards.md +348 -0
  192. package/src/modules/bmb/workflows/module/data/module-standards.md +280 -0
  193. package/src/modules/bmb/workflows/module/data/module-yaml-conventions.md +392 -0
  194. package/src/modules/bmb/workflows/module/steps-b/step-01-welcome.md +147 -0
  195. package/src/modules/bmb/workflows/module/steps-b/step-02-spark.md +140 -0
  196. package/src/modules/bmb/workflows/module/steps-b/step-03-module-type.md +148 -0
  197. package/src/modules/bmb/workflows/module/steps-b/step-04-vision.md +82 -0
  198. package/src/modules/bmb/workflows/module/steps-b/step-05-identity.md +96 -0
  199. package/src/modules/bmb/workflows/module/steps-b/step-06-users.md +85 -0
  200. package/src/modules/bmb/workflows/module/steps-b/step-07-value.md +75 -0
  201. package/src/modules/bmb/workflows/module/steps-b/step-08-agents.md +96 -0
  202. package/src/modules/bmb/workflows/module/steps-b/step-09-workflows.md +82 -0
  203. package/src/modules/bmb/workflows/module/steps-b/step-10-tools.md +90 -0
  204. package/src/modules/bmb/workflows/module/steps-b/step-11-scenarios.md +83 -0
  205. package/src/modules/bmb/workflows/module/steps-b/step-12-creative.md +94 -0
  206. package/src/modules/bmb/workflows/module/steps-b/step-13-review.md +104 -0
  207. package/src/modules/bmb/workflows/module/steps-b/step-14-finalize.md +117 -0
  208. package/src/modules/bmb/workflows/module/steps-c/step-01-load-brief.md +178 -0
  209. package/src/modules/bmb/workflows/module/steps-c/step-01b-continue.md +83 -0
  210. package/src/modules/bmb/workflows/module/steps-c/step-02-structure.md +109 -0
  211. package/src/modules/bmb/workflows/module/steps-c/step-03-config.md +118 -0
  212. package/src/modules/bmb/workflows/module/steps-c/step-04-installer.md +160 -0
  213. package/src/modules/bmb/workflows/module/steps-c/step-05-agents.md +167 -0
  214. package/src/modules/bmb/workflows/module/steps-c/step-06-workflows.md +183 -0
  215. package/src/modules/bmb/workflows/module/steps-c/step-07-docs.md +402 -0
  216. package/src/modules/bmb/workflows/module/steps-c/step-08-complete.md +123 -0
  217. package/src/modules/bmb/workflows/module/steps-e/step-01-load-target.md +81 -0
  218. package/src/modules/bmb/workflows/module/steps-e/step-02-select-edit.md +77 -0
  219. package/src/modules/bmb/workflows/module/steps-e/step-03-apply-edit.md +77 -0
  220. package/src/modules/bmb/workflows/module/steps-e/step-04-review.md +80 -0
  221. package/src/modules/bmb/workflows/module/steps-e/step-05-confirm.md +75 -0
  222. package/src/modules/bmb/workflows/module/steps-v/step-01-load-target.md +96 -0
  223. package/src/modules/bmb/workflows/module/steps-v/step-02-file-structure.md +94 -0
  224. package/src/modules/bmb/workflows/module/steps-v/step-03-module-yaml.md +99 -0
  225. package/src/modules/bmb/workflows/module/steps-v/step-04-agent-specs.md +152 -0
  226. package/src/modules/bmb/workflows/module/steps-v/step-05-workflow-specs.md +152 -0
  227. package/src/modules/bmb/workflows/module/steps-v/step-06-documentation.md +143 -0
  228. package/src/modules/bmb/workflows/module/steps-v/step-07-installation.md +113 -0
  229. package/src/modules/bmb/workflows/module/steps-v/step-08-report.md +197 -0
  230. package/src/modules/bmb/workflows/module/templates/brief-template.md +154 -0
  231. package/src/modules/bmb/workflows/module/templates/workflow-spec-template.md +96 -0
  232. package/src/modules/bmb/workflows/module/workflow.md +100 -0
  233. package/src/modules/bmb/workflows/workflow/data/architecture.md +152 -0
  234. package/src/modules/bmb/{docs/workflows → workflows/workflow/data}/common-workflow-tools.csv +1 -1
  235. package/src/modules/bmb/workflows/workflow/data/csv-data-file-standards.md +81 -0
  236. package/src/modules/bmb/workflows/workflow/data/frontmatter-standards.md +225 -0
  237. package/src/modules/bmb/workflows/workflow/data/input-discovery-standards.md +269 -0
  238. package/src/modules/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +50 -0
  239. package/src/modules/bmb/workflows/workflow/data/menu-handling-standards.md +167 -0
  240. package/src/modules/bmb/workflows/workflow/data/output-format-standards.md +188 -0
  241. package/src/modules/bmb/workflows/workflow/data/step-file-rules.md +235 -0
  242. package/src/modules/bmb/workflows/workflow/data/step-type-patterns.md +311 -0
  243. package/src/modules/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +386 -0
  244. package/src/modules/bmb/workflows/workflow/data/trimodal-workflow-structure.md +209 -0
  245. package/src/modules/bmb/workflows/workflow/data/workflow-chaining-standards.md +271 -0
  246. package/src/modules/bmb/workflows/workflow/data/workflow-examples.md +276 -0
  247. package/src/modules/bmb/workflows/workflow/data/workflow-type-criteria.md +172 -0
  248. package/src/modules/bmb/workflows/workflow/steps-c/step-00-conversion.md +262 -0
  249. package/src/modules/bmb/workflows/workflow/steps-c/step-01-discovery.md +194 -0
  250. package/src/modules/bmb/workflows/workflow/steps-c/step-01b-continuation.md +3 -0
  251. package/src/modules/bmb/workflows/workflow/steps-c/step-02-classification.md +269 -0
  252. package/src/modules/bmb/workflows/workflow/steps-c/step-03-requirements.md +282 -0
  253. package/src/modules/bmb/workflows/workflow/steps-c/step-04-tools.md +281 -0
  254. package/src/modules/bmb/workflows/workflow/steps-c/step-05-plan-review.md +242 -0
  255. package/src/modules/bmb/workflows/{create-workflow/steps → workflow/steps-c}/step-06-design.md +96 -38
  256. package/src/modules/bmb/workflows/workflow/steps-c/step-07-foundation.md +238 -0
  257. package/src/modules/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +377 -0
  258. package/src/modules/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +350 -0
  259. package/src/modules/bmb/workflows/workflow/steps-c/step-10-confirmation.md +320 -0
  260. package/src/modules/bmb/workflows/workflow/steps-c/step-11-completion.md +191 -0
  261. package/src/modules/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +237 -0
  262. package/src/modules/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +248 -0
  263. package/src/modules/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +252 -0
  264. package/src/modules/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +275 -0
  265. package/src/modules/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +154 -0
  266. package/src/modules/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +190 -0
  267. package/src/modules/bmb/workflows/workflow/steps-e/step-e-07-complete.md +206 -0
  268. package/src/modules/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +109 -0
  269. package/src/modules/bmb/workflows/workflow/steps-v/step-01-validate.md +221 -0
  270. package/src/modules/bmb/workflows/workflow/steps-v/step-01b-structure.md +152 -0
  271. package/src/modules/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +199 -0
  272. package/src/modules/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +265 -0
  273. package/src/modules/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +164 -0
  274. package/src/modules/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +211 -0
  275. package/src/modules/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +200 -0
  276. package/src/modules/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +195 -0
  277. package/src/modules/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +209 -0
  278. package/src/modules/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +199 -0
  279. package/src/modules/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +179 -0
  280. package/src/modules/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +186 -0
  281. package/src/modules/bmb/workflows/workflow/steps-v/step-10-report-complete.md +154 -0
  282. package/src/modules/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +237 -0
  283. package/src/modules/bmb/workflows/workflow/templates/minimal-output-template.md +11 -0
  284. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-01-init-continuable-template.md +3 -3
  285. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-1b-template.md +1 -1
  286. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-template.md +15 -15
  287. package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/workflow-template.md +2 -4
  288. package/src/modules/bmb/workflows/workflow/workflow.md +109 -0
  289. package/src/modules/bmgd/agents/game-architect.agent.yaml +1 -0
  290. package/src/modules/bmgd/agents/game-designer.agent.yaml +1 -0
  291. package/src/modules/bmgd/agents/game-dev.agent.yaml +2 -1
  292. package/src/modules/bmgd/agents/game-qa.agent.yaml +2 -1
  293. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +2 -1
  294. package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +3 -2
  295. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +1 -1
  296. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +5 -3
  297. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +4 -3
  298. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +52 -46
  299. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +2 -1
  300. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +5 -1
  301. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +3 -3
  302. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +4 -3
  303. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +2 -1
  304. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +4 -3
  305. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +4 -3
  306. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +4 -3
  307. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +4 -3
  308. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +4 -3
  309. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +4 -3
  310. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +2 -1
  311. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.md +1 -0
  312. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +4 -3
  313. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +2 -1
  314. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +4 -3
  315. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +4 -3
  316. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +4 -3
  317. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +4 -3
  318. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +4 -3
  319. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +4 -3
  320. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +4 -3
  321. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +4 -3
  322. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +4 -3
  323. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +4 -3
  324. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +4 -3
  325. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +4 -3
  326. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +2 -1
  327. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +1 -1
  328. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +4 -3
  329. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +12 -11
  330. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +4 -3
  331. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +4 -3
  332. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +4 -3
  333. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +4 -3
  334. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +4 -3
  335. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +4 -3
  336. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +4 -3
  337. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +4 -3
  338. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +4 -3
  339. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +2 -1
  340. package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +2 -1
  341. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +4 -3
  342. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +10 -9
  343. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +4 -3
  344. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +4 -3
  345. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +4 -3
  346. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +4 -3
  347. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +6 -5
  348. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +4 -3
  349. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +6 -5
  350. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +2 -1
  351. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +2 -1
  352. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-01-discover.md +1 -0
  353. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-02-generate.md +2 -1
  354. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-03-complete.md +1 -0
  355. package/src/modules/bmgd/workflows/3-technical/generate-project-context/workflow.md +1 -0
  356. package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +1 -0
  357. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +1 -1
  358. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +1 -1
  359. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +2 -2
  360. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +1 -1
  361. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +1 -1
  362. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +1 -1
  363. package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +2 -2
  364. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +1 -1
  365. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml +1 -1
  366. package/src/modules/bmgd/workflows/bmgd-quick-flow/{create-tech-spec → quick-spec}/workflow.yaml +3 -3
  367. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +2 -2
  368. package/src/modules/bmm/agents/analyst.agent.yaml +3 -2
  369. package/src/modules/bmm/agents/architect.agent.yaml +3 -1
  370. package/src/modules/bmm/agents/dev.agent.yaml +4 -3
  371. package/src/modules/bmm/agents/pm.agent.yaml +16 -5
  372. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +3 -2
  373. package/src/modules/bmm/agents/sm.agent.yaml +1 -0
  374. package/src/modules/bmm/agents/tea.agent.yaml +6 -3
  375. package/src/modules/bmm/agents/tech-writer.agent.yaml +1 -0
  376. package/src/modules/bmm/agents/ux-designer.agent.yaml +1 -0
  377. package/src/modules/bmm/module.yaml +1 -1
  378. package/src/modules/bmm/testarch/knowledge/api-request.md +155 -16
  379. package/src/modules/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
  380. package/src/modules/bmm/testarch/knowledge/auth-session.md +197 -1
  381. package/src/modules/bmm/testarch/knowledge/file-utils.md +257 -54
  382. package/src/modules/bmm/testarch/knowledge/intercept-network-call.md +159 -9
  383. package/src/modules/bmm/testarch/knowledge/log.md +170 -35
  384. package/src/modules/bmm/testarch/knowledge/network-error-monitor.md +228 -95
  385. package/src/modules/bmm/testarch/knowledge/network-recorder.md +314 -52
  386. package/src/modules/bmm/testarch/knowledge/overview.md +15 -12
  387. package/src/modules/bmm/testarch/knowledge/recurse.md +173 -48
  388. package/src/modules/bmm/testarch/tea-index.csv +19 -18
  389. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +4 -8
  390. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +1 -5
  391. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +3 -7
  392. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +3 -7
  393. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +3 -7
  394. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +3 -7
  395. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +1 -5
  396. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +1 -0
  397. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +1 -0
  398. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +1 -0
  399. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +1 -0
  400. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +1 -0
  401. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +1 -0
  402. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +1 -0
  403. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +1 -0
  404. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +1 -0
  405. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +1 -0
  406. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +1 -0
  407. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +1 -0
  408. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +1 -0
  409. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +1 -0
  410. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +1 -0
  411. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +1 -0
  412. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +1 -0
  413. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +1 -0
  414. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +1 -0
  415. package/src/modules/bmm/workflows/1-analysis/research/workflow.md +1 -1
  416. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +1 -0
  417. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +1 -0
  418. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +2 -1
  419. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +3 -2
  420. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +3 -2
  421. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +3 -2
  422. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +3 -2
  423. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +3 -2
  424. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +3 -2
  425. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +3 -2
  426. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +3 -2
  427. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +3 -2
  428. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +3 -2
  429. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +3 -2
  430. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +1 -0
  431. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +2 -1
  432. package/src/modules/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +197 -0
  433. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-01-init.md +8 -13
  434. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-01b-continue.md +37 -49
  435. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +224 -0
  436. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-03-success.md +52 -115
  437. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +213 -0
  438. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +207 -0
  439. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-06-innovation.md +45 -80
  440. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-07-project-type.md +39 -59
  441. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-08-scoping.md +45 -115
  442. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-09-functional.md +23 -61
  443. package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-10-nonfunctional.md +34 -85
  444. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +217 -0
  445. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +180 -0
  446. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +247 -0
  447. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  448. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +249 -0
  449. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +253 -0
  450. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +168 -0
  451. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +218 -0
  452. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
  453. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
  454. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
  455. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  456. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
  457. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
  458. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  459. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  460. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
  461. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
  462. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  463. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
  464. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
  465. package/src/modules/bmm/workflows/2-plan-workflows/prd/{prd-template.md → templates/prd-template.md} +0 -1
  466. package/src/modules/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +433 -0
  467. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +97 -8
  468. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +3 -2
  469. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +3 -2
  470. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +3 -2
  471. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +3 -2
  472. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +3 -2
  473. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +2 -1
  474. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +2 -1
  475. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +1 -1
  476. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +1 -0
  477. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +3 -2
  478. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +3 -2
  479. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +3 -2
  480. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +3 -2
  481. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +3 -2
  482. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +3 -2
  483. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +1 -0
  484. package/src/modules/bmm/workflows/3-solutioning/create-architecture/workflow.md +1 -0
  485. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +5 -4
  486. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +4 -3
  487. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +4 -3
  488. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +3 -2
  489. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +1 -0
  490. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +2 -0
  491. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +9 -12
  492. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +1 -1
  493. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +2 -2
  494. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +2 -1
  495. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +13 -12
  496. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +2 -1
  497. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +3 -3
  498. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +11 -10
  499. package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +2 -2
  500. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +7 -7
  501. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +2 -2
  502. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +2 -2
  503. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +2 -2
  504. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +3 -3
  505. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +1 -1
  506. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +4 -3
  507. package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +189 -0
  508. package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +144 -0
  509. package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
  510. package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +173 -0
  511. package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  512. package/src/modules/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  513. package/src/modules/bmm/workflows/document-project/checklist.md +2 -2
  514. package/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +1 -1
  515. package/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +1 -1
  516. package/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +1 -1
  517. package/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +1 -1
  518. package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +1 -0
  519. package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +2 -1
  520. package/src/modules/bmm/workflows/generate-project-context/steps/step-03-complete.md +1 -0
  521. package/src/modules/bmm/workflows/generate-project-context/workflow.md +1 -0
  522. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +2 -2
  523. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +6 -6
  524. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +2 -1
  525. package/src/modules/bmm/workflows/workflow-status/instructions.md +8 -8
  526. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +44 -63
  527. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +44 -54
  528. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +38 -41
  529. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +26 -22
  530. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +2 -1
  531. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +1 -0
  532. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +1 -0
  533. package/src/modules/cis/agents/innovation-strategist.agent.yaml +1 -0
  534. package/src/modules/cis/agents/presentation-master.agent.yaml +1 -0
  535. package/src/modules/cis/module.yaml +1 -0
  536. package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
  537. package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
  538. package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
  539. package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
  540. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +1 -0
  541. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +1 -0
  542. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +1 -0
  543. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +1 -0
  544. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +1 -0
  545. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +1 -0
  546. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +1 -0
  547. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +1 -0
  548. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +1 -0
  549. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +1 -0
  550. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +1 -0
  551. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +1 -0
  552. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +1 -0
  553. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +1 -0
  554. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +1 -0
  555. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +1 -0
  556. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +1 -0
  557. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +1 -0
  558. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +1 -0
  559. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +1 -0
  560. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +1 -0
  561. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +1 -0
  562. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +1 -0
  563. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +1 -0
  564. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +1 -0
  565. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +1 -0
  566. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +1 -0
  567. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +1 -0
  568. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +1 -0
  569. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +1 -0
  570. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +1 -0
  571. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +1 -0
  572. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +1 -0
  573. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +1 -0
  574. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +1 -0
  575. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +1 -0
  576. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +1 -0
  577. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +1 -0
  578. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +1 -0
  579. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +1 -0
  580. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +1 -0
  581. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +1 -0
  582. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +1 -0
  583. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +1 -0
  584. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +1 -0
  585. package/tools/build-docs.js +200 -271
  586. package/tools/cli/bmad-cli.js +18 -0
  587. package/tools/cli/commands/install.js +15 -13
  588. package/tools/cli/installers/install-messages.yaml +33 -27
  589. package/tools/cli/installers/lib/core/config-collector.js +11 -1
  590. package/tools/cli/installers/lib/core/detector.js +5 -115
  591. package/tools/cli/installers/lib/core/installer.js +48 -80
  592. package/tools/cli/installers/lib/core/manifest-generator.js +46 -2
  593. package/tools/cli/installers/lib/ide/antigravity.js +3 -3
  594. package/tools/cli/installers/lib/ide/claude-code.js +3 -3
  595. package/tools/cli/installers/lib/ide/codex.js +1 -1
  596. package/tools/cli/installers/lib/ide/cursor.js +57 -304
  597. package/tools/cli/installers/lib/ide/github-copilot.js +1 -1
  598. package/tools/cli/lib/agent/compiler.js +0 -4
  599. package/tools/cli/lib/ui.js +22 -1
  600. package/tools/docs/index.md +2 -0
  601. package/tools/fix-doc-links.js +288 -0
  602. package/tools/schema/agent.js +1 -0
  603. package/tools/validate-doc-links.js +363 -0
  604. package/website/README.md +76 -0
  605. package/website/astro.config.mjs +218 -0
  606. package/website/src/components/Banner.astro +59 -0
  607. package/website/src/components/Header.astro +121 -0
  608. package/website/src/components/MobileMenuFooter.astro +53 -0
  609. package/website/src/content/config.ts +6 -0
  610. package/website/src/lib/site-url.js +25 -0
  611. package/website/src/rehype-markdown-links.js +102 -0
  612. package/website/src/styles/custom.css +483 -0
  613. package/docs/document-sharding-guide.md +0 -449
  614. package/docs/getting-started/installation.md +0 -76
  615. package/docs/ide-info/auggie.md +0 -31
  616. package/docs/ide-info/claude-code.md +0 -25
  617. package/docs/ide-info/cline.md +0 -31
  618. package/docs/ide-info/codex.md +0 -21
  619. package/docs/ide-info/crush.md +0 -30
  620. package/docs/ide-info/cursor.md +0 -25
  621. package/docs/ide-info/gemini.md +0 -25
  622. package/docs/ide-info/github-copilot.md +0 -26
  623. package/docs/ide-info/iflow.md +0 -33
  624. package/docs/ide-info/index.md +0 -24
  625. package/docs/ide-info/kilo.md +0 -24
  626. package/docs/ide-info/opencode.md +0 -24
  627. package/docs/ide-info/qwen.md +0 -25
  628. package/docs/ide-info/roo.md +0 -27
  629. package/docs/ide-info/rovo-dev.md +0 -22
  630. package/docs/ide-info/trae.md +0 -25
  631. package/docs/ide-info/windsurf.md +0 -22
  632. package/docs/v4-to-v6-upgrade.md +0 -227
  633. package/docs/web-bundles-gemini-gpt-guide.md +0 -21
  634. package/src/core/tasks/validate-workflow.xml +0 -89
  635. package/src/modules/bmb/docs/agents/agent-compilation.md +0 -340
  636. package/src/modules/bmb/docs/agents/agent-menu-patterns.md +0 -523
  637. package/src/modules/bmb/docs/agents/expert-agent-architecture.md +0 -363
  638. package/src/modules/bmb/docs/agents/index.md +0 -55
  639. package/src/modules/bmb/docs/agents/kb.csv +0 -0
  640. package/src/modules/bmb/docs/agents/simple-agent-architecture.md +0 -257
  641. package/src/modules/bmb/docs/agents/understanding-agent-types.md +0 -184
  642. package/src/modules/bmb/docs/index.md +0 -247
  643. package/src/modules/bmb/docs/workflows/architecture.md +0 -220
  644. package/src/modules/bmb/docs/workflows/csv-data-file-standards.md +0 -206
  645. package/src/modules/bmb/docs/workflows/index.md +0 -45
  646. package/src/modules/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +0 -220
  647. package/src/modules/bmb/docs/workflows/kb.csv +0 -0
  648. package/src/modules/bmb/docs/workflows/templates/step-file.md +0 -139
  649. package/src/modules/bmb/docs/workflows/templates/workflow.md +0 -58
  650. package/src/modules/bmb/docs/workflows/terms.md +0 -97
  651. package/src/modules/bmb/reference/README.md +0 -3
  652. package/src/modules/bmb/reference/agents/simple-examples/README.md +0 -223
  653. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +0 -18
  654. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +0 -16
  655. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +0 -28
  656. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +0 -176
  657. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +0 -120
  658. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +0 -164
  659. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +0 -153
  660. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +0 -182
  661. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +0 -167
  662. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +0 -194
  663. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +0 -25
  664. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +0 -68
  665. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +0 -29
  666. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +0 -47
  667. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +0 -37
  668. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +0 -18
  669. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +0 -58
  670. package/src/modules/bmb/workflows/create-agent/data/agent-validation-checklist.md +0 -174
  671. package/src/modules/bmb/workflows/create-agent/data/info-and-installation-guide.md +0 -29
  672. package/src/modules/bmb/workflows/create-agent/data/reference/README.md +0 -3
  673. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/README.md +0 -242
  674. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +0 -48
  675. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +0 -223
  676. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +0 -18
  677. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +0 -16
  678. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +0 -28
  679. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +0 -177
  680. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +0 -150
  681. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +0 -164
  682. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +0 -152
  683. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +0 -182
  684. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +0 -167
  685. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +0 -194
  686. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +0 -25
  687. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +0 -68
  688. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +0 -29
  689. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/profile-section.md +0 -47
  690. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +0 -37
  691. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +0 -18
  692. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +0 -58
  693. package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +0 -305
  694. package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +0 -206
  695. package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +0 -260
  696. package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +0 -237
  697. package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +0 -232
  698. package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +0 -186
  699. package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +0 -234
  700. package/src/modules/bmb/workflows/create-agent/steps/step-08-celebrate.md +0 -218
  701. package/src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md +0 -3
  702. package/src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md +0 -364
  703. package/src/modules/bmb/workflows/create-agent/templates/simple-agent.template.md +0 -257
  704. package/src/modules/bmb/workflows/create-agent/workflow.md +0 -58
  705. package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +0 -155
  706. package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +0 -169
  707. package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +0 -217
  708. package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +0 -267
  709. package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +0 -228
  710. package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +0 -233
  711. package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +0 -296
  712. package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +0 -228
  713. package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +0 -186
  714. package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +0 -309
  715. package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +0 -337
  716. package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +0 -335
  717. package/src/modules/bmb/workflows/create-module/templates/agent.template.md +0 -313
  718. package/src/modules/bmb/workflows/create-module/templates/installer.template.js +0 -47
  719. package/src/modules/bmb/workflows/create-module/templates/module-plan.template.md +0 -5
  720. package/src/modules/bmb/workflows/create-module/templates/module.template.yaml +0 -53
  721. package/src/modules/bmb/workflows/create-module/templates/workflow-plan-template.md +0 -23
  722. package/src/modules/bmb/workflows/create-module/validation.md +0 -126
  723. package/src/modules/bmb/workflows/create-module/workflow.md +0 -55
  724. package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +0 -157
  725. package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +0 -211
  726. package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +0 -250
  727. package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +0 -216
  728. package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +0 -289
  729. package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +0 -308
  730. package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +0 -284
  731. package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +0 -187
  732. package/src/modules/bmb/workflows/create-workflow/workflow.md +0 -58
  733. package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +0 -134
  734. package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +0 -202
  735. package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +0 -157
  736. package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +0 -150
  737. package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +0 -150
  738. package/src/modules/bmb/workflows/edit-agent/workflow.md +0 -58
  739. package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +0 -217
  740. package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +0 -253
  741. package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +0 -217
  742. package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +0 -193
  743. package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +0 -245
  744. package/src/modules/bmb/workflows/edit-workflow/templates/completion-summary.md +0 -75
  745. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md +0 -68
  746. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md +0 -40
  747. package/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md +0 -51
  748. package/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md +0 -56
  749. package/src/modules/bmb/workflows/edit-workflow/workflow.md +0 -58
  750. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +0 -152
  751. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +0 -243
  752. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +0 -274
  753. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +0 -295
  754. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +0 -264
  755. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +0 -360
  756. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +0 -258
  757. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +0 -301
  758. package/src/modules/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +0 -140
  759. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +0 -58
  760. package/src/modules/bmb/workflows-legacy/edit-module/README.md +0 -171
  761. package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +0 -163
  762. package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +0 -340
  763. package/src/modules/bmb/workflows-legacy/edit-module/workflow.yaml +0 -34
  764. package/src/modules/bmb/workflows-legacy/module-brief/README.md +0 -264
  765. package/src/modules/bmb/workflows-legacy/module-brief/checklist.md +0 -116
  766. package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +0 -268
  767. package/src/modules/bmb/workflows-legacy/module-brief/template.md +0 -275
  768. package/src/modules/bmb/workflows-legacy/module-brief/workflow.yaml +0 -36
  769. package/src/modules/bmgd/docs/glossary.md +0 -294
  770. package/src/modules/bmgd/docs/index.md +0 -180
  771. package/src/modules/bmgd/docs/quick-start.md +0 -250
  772. package/src/modules/bmm/README.md +0 -127
  773. package/src/modules/bmm/docs/bmad-quick-flow.md +0 -506
  774. package/src/modules/bmm/docs/brownfield-guide.md +0 -748
  775. package/src/modules/bmm/docs/enterprise-agentic-development.md +0 -686
  776. package/src/modules/bmm/docs/faq.md +0 -542
  777. package/src/modules/bmm/docs/index.md +0 -168
  778. package/src/modules/bmm/docs/quick-spec-flow.md +0 -638
  779. package/src/modules/bmm/docs/quick-start.md +0 -366
  780. package/src/modules/bmm/docs/scale-adaptive-system.md +0 -618
  781. package/src/modules/bmm/docs/troubleshooting.md +0 -661
  782. package/src/modules/bmm/docs/workflow-architecture-reference.md +0 -366
  783. package/src/modules/bmm/docs/workflow-document-project-reference.md +0 -489
  784. package/src/modules/bmm/docs/workflows-analysis.md +0 -266
  785. package/src/modules/bmm/docs/workflows-implementation.md +0 -210
  786. package/src/modules/bmm/docs/workflows-planning.md +0 -451
  787. package/src/modules/bmm/docs/workflows-solutioning.md +0 -509
  788. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +0 -420
  789. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +0 -290
  790. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +0 -270
  791. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +0 -185
  792. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/instructions.md +0 -115
  793. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +0 -28
  794. package/website/css/custom.css +0 -52
  795. package/website/docusaurus.config.js +0 -179
  796. package/website/sidebars.js +0 -157
  797. package/website/src/pages/index.js +0 -50
  798. /package/{src/modules/bmm/docs → docs/tutorials/getting-started}/images/workflow-method-greenfield.excalidraw +0 -0
  799. /package/{src/modules/bmm/docs → docs/tutorials/getting-started}/images/workflow-method-greenfield.svg +0 -0
  800. /package/{src/modules/bmgd/docs → docs/tutorials/getting-started/images}/workflow-overview.jpg +0 -0
  801. /package/src/core/{tasks/advanced-elicitation-methods.csv → workflows/advanced-elicitation/methods.csv} +0 -0
  802. /package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +0 -0
  803. /package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +0 -0
  804. /package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +0 -0
  805. /package/src/modules/bmb/workflows/{create-agent/data/reference/agents → agent/data/reference}/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +0 -0
  806. /package/src/modules/bmgd/workflows/bmgd-quick-flow/{create-tech-spec → quick-spec}/instructions.md +0 -0
  807. /package/src/modules/bmm/workflows/2-plan-workflows/prd/{domain-complexity.csv → data/domain-complexity.csv} +0 -0
  808. /package/src/modules/bmm/workflows/2-plan-workflows/prd/{project-types.csv → data/project-types.csv} +0 -0
  809. /package/{docs → tools/docs}/BUNDLE_DISTRIBUTION_SETUP.md +0 -0
  810. /package/website/{static → public}/favicon.ico +0 -0
  811. /package/website/{static → public}/img/logo.svg +0 -0
  812. /package/website/{static → public}/robots.txt +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Principle
4
4
 
5
- Persist authentication tokens to disk and reuse across test runs. Support multiple user identifiers, ephemeral authentication, and worker-specific accounts for parallel execution. Fetch tokens once, use everywhere.
5
+ Persist authentication tokens to disk and reuse across test runs. Support multiple user identifiers, ephemeral authentication, and worker-specific accounts for parallel execution. Fetch tokens once, use everywhere. **Works for both API-only tests and browser tests.**
6
6
 
7
7
  ## Rationale
8
8
 
@@ -22,6 +22,7 @@ The `auth-session` utility provides:
22
22
  - **Worker-specific accounts**: Parallel execution with isolated user accounts
23
23
  - **Automatic token management**: Checks validity, renews if expired
24
24
  - **Flexible provider pattern**: Adapt to any auth system (OAuth2, JWT, custom)
25
+ - **API-first design**: Get tokens for API tests without browser overhead
25
26
 
26
27
  ## Pattern Examples
27
28
 
@@ -244,6 +245,200 @@ test('parallel test 2', async ({ page }) => {
244
245
  - Token management automatic per worker
245
246
  - Scales to any number of workers
246
247
 
248
+ ### Example 6: Pure API Authentication (No Browser)
249
+
250
+ **Context**: Get auth tokens for API-only tests using auth-session disk persistence.
251
+
252
+ **Implementation**:
253
+
254
+ ```typescript
255
+ // Step 1: Create API-only auth provider (no browser needed)
256
+ // playwright/support/api-auth-provider.ts
257
+ import { type AuthProvider } from '@seontechnologies/playwright-utils/auth-session';
258
+
259
+ const apiAuthProvider: AuthProvider = {
260
+ getEnvironment: (options) => options.environment || 'local',
261
+ getUserIdentifier: (options) => options.userIdentifier || 'api-user',
262
+
263
+ extractToken: (storageState) => {
264
+ // Token stored in localStorage format for disk persistence
265
+ const tokenEntry = storageState.origins?.[0]?.localStorage?.find(
266
+ (item) => item.name === 'auth_token'
267
+ );
268
+ return tokenEntry?.value;
269
+ },
270
+
271
+ isTokenExpired: (storageState) => {
272
+ const expiryEntry = storageState.origins?.[0]?.localStorage?.find(
273
+ (item) => item.name === 'token_expiry'
274
+ );
275
+ if (!expiryEntry) return true;
276
+ return Date.now() > parseInt(expiryEntry.value, 10);
277
+ },
278
+
279
+ manageAuthToken: async (request, options) => {
280
+ const email = process.env.TEST_USER_EMAIL;
281
+ const password = process.env.TEST_USER_PASSWORD;
282
+
283
+ if (!email || !password) {
284
+ throw new Error('TEST_USER_EMAIL and TEST_USER_PASSWORD must be set');
285
+ }
286
+
287
+ // Pure API login - no browser!
288
+ const response = await request.post('/api/auth/login', {
289
+ data: { email, password },
290
+ });
291
+
292
+ if (!response.ok()) {
293
+ throw new Error(`Auth failed: ${response.status()}`);
294
+ }
295
+
296
+ const { token, expiresIn } = await response.json();
297
+ const expiryTime = Date.now() + expiresIn * 1000;
298
+
299
+ // Return storage state format for disk persistence
300
+ return {
301
+ cookies: [],
302
+ origins: [
303
+ {
304
+ origin: process.env.API_BASE_URL || 'http://localhost:3000',
305
+ localStorage: [
306
+ { name: 'auth_token', value: token },
307
+ { name: 'token_expiry', value: String(expiryTime) },
308
+ ],
309
+ },
310
+ ],
311
+ };
312
+ },
313
+ };
314
+
315
+ export default apiAuthProvider;
316
+
317
+ // Step 2: Create auth fixture
318
+ // playwright/support/fixtures.ts
319
+ import { test as base } from '@playwright/test';
320
+ import { createAuthFixtures, setAuthProvider } from '@seontechnologies/playwright-utils/auth-session';
321
+ import apiAuthProvider from './api-auth-provider';
322
+
323
+ setAuthProvider(apiAuthProvider);
324
+
325
+ export const test = base.extend(createAuthFixtures());
326
+
327
+ // Step 3: Use in tests - token persisted to disk!
328
+ // tests/api/authenticated-api.spec.ts
329
+ import { test } from '../support/fixtures';
330
+ import { expect } from '@playwright/test';
331
+
332
+ test('should access protected endpoint', async ({ authToken, apiRequest }) => {
333
+ // authToken is automatically loaded from disk or fetched if expired
334
+ const { status, body } = await apiRequest({
335
+ method: 'GET',
336
+ path: '/api/me',
337
+ headers: { Authorization: `Bearer ${authToken}` },
338
+ });
339
+
340
+ expect(status).toBe(200);
341
+ });
342
+
343
+ test('should create resource with auth', async ({ authToken, apiRequest }) => {
344
+ const { status, body } = await apiRequest({
345
+ method: 'POST',
346
+ path: '/api/orders',
347
+ headers: { Authorization: `Bearer ${authToken}` },
348
+ body: { items: [{ productId: 'prod-1', quantity: 2 }] },
349
+ });
350
+
351
+ expect(status).toBe(201);
352
+ expect(body.id).toBeDefined();
353
+ });
354
+ ```
355
+
356
+ **Key Points**:
357
+
358
+ - Token persisted to disk (not in-memory) - survives test reruns
359
+ - Provider fetches token once, reuses until expired
360
+ - Pure API authentication - no browser context needed
361
+ - `authToken` fixture handles disk read/write automatically
362
+ - Environment variables validated with clear error message
363
+
364
+ ### Example 7: Service-to-Service Authentication
365
+
366
+ **Context**: Test microservice authentication patterns (API keys, service tokens) with proper environment validation.
367
+
368
+ **Implementation**:
369
+
370
+ ```typescript
371
+ // tests/api/service-auth.spec.ts
372
+ import { test as base, expect } from '@playwright/test';
373
+ import { test as apiFixture } from '@seontechnologies/playwright-utils/api-request/fixtures';
374
+ import { mergeTests } from '@playwright/test';
375
+
376
+ // Validate environment variables at module load
377
+ const SERVICE_API_KEY = process.env.SERVICE_API_KEY;
378
+ const INTERNAL_SERVICE_URL = process.env.INTERNAL_SERVICE_URL;
379
+
380
+ if (!SERVICE_API_KEY) {
381
+ throw new Error('SERVICE_API_KEY environment variable is required');
382
+ }
383
+ if (!INTERNAL_SERVICE_URL) {
384
+ throw new Error('INTERNAL_SERVICE_URL environment variable is required');
385
+ }
386
+
387
+ const test = mergeTests(base, apiFixture);
388
+
389
+ test.describe('Service-to-Service Auth', () => {
390
+ test('should authenticate with API key', async ({ apiRequest }) => {
391
+ const { status, body } = await apiRequest({
392
+ method: 'GET',
393
+ path: '/internal/health',
394
+ baseUrl: INTERNAL_SERVICE_URL,
395
+ headers: { 'X-API-Key': SERVICE_API_KEY },
396
+ });
397
+
398
+ expect(status).toBe(200);
399
+ expect(body.status).toBe('healthy');
400
+ });
401
+
402
+ test('should reject invalid API key', async ({ apiRequest }) => {
403
+ const { status, body } = await apiRequest({
404
+ method: 'GET',
405
+ path: '/internal/health',
406
+ baseUrl: INTERNAL_SERVICE_URL,
407
+ headers: { 'X-API-Key': 'invalid-key' },
408
+ });
409
+
410
+ expect(status).toBe(401);
411
+ expect(body.code).toBe('INVALID_API_KEY');
412
+ });
413
+
414
+ test('should call downstream service with propagated auth', async ({ apiRequest }) => {
415
+ const { status, body } = await apiRequest({
416
+ method: 'POST',
417
+ path: '/internal/aggregate-data',
418
+ baseUrl: INTERNAL_SERVICE_URL,
419
+ headers: {
420
+ 'X-API-Key': SERVICE_API_KEY,
421
+ 'X-Request-ID': `test-${Date.now()}`,
422
+ },
423
+ body: { sources: ['users', 'orders', 'inventory'] },
424
+ });
425
+
426
+ expect(status).toBe(200);
427
+ expect(body.aggregatedFrom).toHaveLength(3);
428
+ });
429
+ });
430
+ ```
431
+
432
+ **Key Points**:
433
+
434
+ - Environment variables validated at module load with clear errors
435
+ - API key authentication (simpler than OAuth - no disk persistence needed)
436
+ - Test internal/service endpoints
437
+ - Validate auth rejection scenarios
438
+ - Correlation ID for request tracing
439
+
440
+ > **Note**: API keys are typically static secrets that don't expire, so disk persistence (auth-session) isn't needed. For rotating service tokens, use the auth-session provider pattern from Example 6.
441
+
247
442
  ## Custom Auth Provider Pattern
248
443
 
249
444
  **Context**: Adapt auth-session to your authentication system (OAuth2, JWT, SAML, custom).
@@ -310,6 +505,7 @@ test('authenticated API call', async ({ apiRequest, authToken }) => {
310
505
 
311
506
  ## Related Fragments
312
507
 
508
+ - `api-testing-patterns.md` - Pure API testing patterns (no browser)
313
509
  - `overview.md` - Installation and fixture composition
314
510
  - `api-request.md` - Authenticated API requests
315
511
  - `fixtures-composition.md` - Merging auth with other utilities
@@ -22,6 +22,16 @@ The `file-utils` module provides:
22
22
  - **Validation helpers**: Row count, header checks, content validation
23
23
  - **Format support**: Multiple sheet support (XLSX), text extraction (PDF), archive extraction (ZIP)
24
24
 
25
+ ## Why Use This Instead of Vanilla Playwright?
26
+
27
+ | Vanilla Playwright | File Utils |
28
+ | ------------------------------------------- | ------------------------------------------------ |
29
+ | ~80 lines per CSV flow (download + parse) | ~10 lines end-to-end |
30
+ | Manual event orchestration for downloads | Encapsulated in `handleDownload()` |
31
+ | Manual path handling and `saveAs` | Returns a ready-to-use file path |
32
+ | Manual existence checks and error handling | Centralized in one place via utility patterns |
33
+ | Manual CSV parsing config (headers, typing) | `readCSV()` returns `{ data, headers }` directly |
34
+
25
35
  ## Pattern Examples
26
36
 
27
37
  ### Example 1: UI-Triggered CSV Download
@@ -40,20 +50,18 @@ test('should download and validate CSV', async ({ page }) => {
40
50
  const downloadPath = await handleDownload({
41
51
  page,
42
52
  downloadDir: DOWNLOAD_DIR,
43
- trigger: () => page.click('[data-testid="export-csv"]'),
53
+ trigger: () => page.getByTestId('download-button-text/csv').click(),
44
54
  });
45
55
 
46
- const { content } = await readCSV({ filePath: downloadPath });
56
+ const csvResult = await readCSV({ filePath: downloadPath });
47
57
 
48
- // Validate headers
49
- expect(content.headers).toEqual(['ID', 'Name', 'Email', 'Role']);
50
-
51
- // Validate data
52
- expect(content.data).toHaveLength(10);
53
- expect(content.data[0]).toMatchObject({
58
+ // Access parsed data and headers
59
+ const { data, headers } = csvResult.content;
60
+ expect(headers).toEqual(['ID', 'Name', 'Email']);
61
+ expect(data[0]).toMatchObject({
54
62
  ID: expect.any(String),
55
63
  Name: expect.any(String),
56
- Email: expect.stringMatching(/@/),
64
+ Email: expect.any(String),
57
65
  });
58
66
  });
59
67
  ```
@@ -81,25 +89,27 @@ test('should read multi-sheet XLSX', async () => {
81
89
  trigger: () => page.click('[data-testid="export-xlsx"]'),
82
90
  });
83
91
 
84
- const { content } = await readXLSX({ filePath: downloadPath });
92
+ const xlsxResult = await readXLSX({ filePath: downloadPath });
85
93
 
86
- // Access specific sheets
87
- const summarySheet = content.sheets.find((s) => s.name === 'Summary');
88
- const detailsSheet = content.sheets.find((s) => s.name === 'Details');
94
+ // Verify worksheet structure
95
+ expect(xlsxResult.content.worksheets.length).toBeGreaterThan(0);
96
+ const worksheet = xlsxResult.content.worksheets[0];
97
+ expect(worksheet).toBeDefined();
98
+ expect(worksheet).toHaveProperty('name');
89
99
 
90
- // Validate summary
91
- expect(summarySheet.data).toHaveLength(1);
92
- expect(summarySheet.data[0].TotalRecords).toBe('150');
100
+ // Access sheet data
101
+ const sheetData = worksheet?.data;
102
+ expect(Array.isArray(sheetData)).toBe(true);
93
103
 
94
- // Validate details
95
- expect(detailsSheet.data).toHaveLength(150);
96
- expect(detailsSheet.headers).toContain('TransactionID');
104
+ // Use type assertion for type safety
105
+ const firstRow = sheetData![0] as Record<string, unknown>;
106
+ expect(firstRow).toHaveProperty('id');
97
107
  });
98
108
  ```
99
109
 
100
110
  **Key Points**:
101
111
 
102
- - `sheets` array with `name` and `data` properties
112
+ - `worksheets` array with `name` and `data` properties
103
113
  - Access sheets by name
104
114
  - Each sheet has its own headers and data
105
115
  - Type-safe sheet iteration
@@ -117,26 +127,48 @@ test('should validate PDF report', async () => {
117
127
  const downloadPath = await handleDownload({
118
128
  page,
119
129
  downloadDir: DOWNLOAD_DIR,
120
- trigger: () => page.click('[data-testid="download-report"]'),
130
+ trigger: () => page.getByTestId('download-button-Text-based PDF Document').click(),
121
131
  });
122
132
 
123
- const { content } = await readPDF({ filePath: downloadPath });
133
+ const pdfResult = await readPDF({ filePath: downloadPath });
124
134
 
125
- // content.text is extracted text from all pages
126
- expect(content.text).toContain('Financial Report Q4 2024');
127
- expect(content.text).toContain('Total Revenue:');
135
+ // content is extracted text from all pages
136
+ expect(pdfResult.pagesCount).toBe(1);
137
+ expect(pdfResult.fileName).toContain('.pdf');
138
+ expect(pdfResult.content).toContain('All you need is the free Adobe Acrobat Reader');
139
+ });
140
+ ```
141
+
142
+ **PDF Reader Options:**
128
143
 
129
- // Validate page count
130
- expect(content.numpages).toBeGreaterThan(10);
144
+ ```typescript
145
+ const result = await readPDF({
146
+ filePath: '/path/to/document.pdf',
147
+ mergePages: false, // Keep pages separate (default: true)
148
+ debug: true, // Enable debug logging
149
+ maxPages: 10, // Limit processing to first 10 pages
131
150
  });
132
151
  ```
133
152
 
134
- **Key Points**:
153
+ **Important Limitation - Vector-based PDFs:**
135
154
 
136
- - `content.text` contains all extracted text
137
- - `content.numpages` for page count
138
- - PDF parsing handles multi-page documents
139
- - Search for specific phrases
155
+ Text extraction may fail for PDFs that store text as vector graphics (e.g., those generated by jsPDF):
156
+
157
+ ```typescript
158
+ // Vector-based PDF example (extraction fails gracefully)
159
+ const pdfResult = await readPDF({ filePath: downloadPath });
160
+
161
+ expect(pdfResult.pagesCount).toBe(1);
162
+ expect(pdfResult.info.extractionNotes).toContain(
163
+ 'Text extraction from vector-based PDFs is not supported.'
164
+ );
165
+ ```
166
+
167
+ Such PDFs will have:
168
+
169
+ - `textExtractionSuccess: false`
170
+ - `isVectorBased: true`
171
+ - Explanatory message in `extractionNotes`
140
172
 
141
173
  ### Example 4: ZIP Archive Validation
142
174
 
@@ -154,25 +186,33 @@ test('should validate ZIP archive', async () => {
154
186
  trigger: () => page.click('[data-testid="download-backup"]'),
155
187
  });
156
188
 
157
- const { content } = await readZIP({ filePath: downloadPath });
189
+ const zipResult = await readZIP({ filePath: downloadPath });
158
190
 
159
191
  // Check file list
160
- expect(content.files).toContain('data.csv');
161
- expect(content.files).toContain('config.json');
162
- expect(content.files).toContain('readme.txt');
163
-
164
- // Read specific file from archive
165
- const configContent = content.zip.readAsText('config.json');
166
- const config = JSON.parse(configContent);
192
+ expect(Array.isArray(zipResult.content.entries)).toBe(true);
193
+ expect(zipResult.content.entries).toContain(
194
+ 'Case_53125_10-19-22_AM/Case_53125_10-19-22_AM_case_data.csv'
195
+ );
196
+
197
+ // Extract specific file
198
+ const targetFile = 'Case_53125_10-19-22_AM/Case_53125_10-19-22_AM_case_data.csv';
199
+ const zipWithExtraction = await readZIP({
200
+ filePath: downloadPath,
201
+ fileToExtract: targetFile,
202
+ });
167
203
 
168
- expect(config.version).toBe('2.0');
204
+ // Access extracted file buffer
205
+ const extractedFiles = zipWithExtraction.content.extractedFiles || {};
206
+ const fileBuffer = extractedFiles[targetFile];
207
+ expect(fileBuffer).toBeInstanceOf(Buffer);
208
+ expect(fileBuffer?.length).toBeGreaterThan(0);
169
209
  });
170
210
  ```
171
211
 
172
212
  **Key Points**:
173
213
 
174
- - `content.files` lists all files in archive
175
- - `content.zip.readAsText()` extracts specific files
214
+ - `content.entries` lists all files in archive
215
+ - `fileToExtract` extracts specific files to Buffer
176
216
  - Validate archive structure
177
217
  - Read and parse individual files from ZIP
178
218
 
@@ -185,7 +225,7 @@ test('should validate ZIP archive', async () => {
185
225
  ```typescript
186
226
  test('should download via API', async ({ page, request }) => {
187
227
  const downloadPath = await handleDownload({
188
- page,
228
+ page, // Still need page for download events
189
229
  downloadDir: DOWNLOAD_DIR,
190
230
  trigger: async () => {
191
231
  const response = await request.get('/api/export/csv', {
@@ -211,20 +251,123 @@ test('should download via API', async ({ page, request }) => {
211
251
  - Still need `page` for download events
212
252
  - Works with authenticated endpoints
213
253
 
214
- ## Validation Helpers
254
+ ### Example 6: Reading CSV from Buffer (ZIP extraction)
255
+
256
+ **Context**: Read CSV content directly from a Buffer (e.g., extracted from ZIP).
257
+
258
+ **Implementation**:
215
259
 
216
260
  ```typescript
217
- // CSV validation
218
- const { isValid, errors } = await validateCSV({
219
- filePath: downloadPath,
220
- expectedRowCount: 10,
221
- requiredHeaders: ['ID', 'Name', 'Email'],
261
+ // Read from a Buffer (e.g., extracted from a ZIP)
262
+ const zipResult = await readZIP({
263
+ filePath: 'archive.zip',
264
+ fileToExtract: 'data.csv',
222
265
  });
266
+ const fileBuffer = zipResult.content.extractedFiles?.['data.csv'];
267
+ const csvFromBuffer = await readCSV({ content: fileBuffer });
268
+
269
+ // Read from a string
270
+ const csvString = 'name,age\nJohn,30\nJane,25';
271
+ const csvFromString = await readCSV({ content: csvString });
272
+
273
+ const { data, headers } = csvFromString.content;
274
+ expect(headers).toContain('name');
275
+ expect(headers).toContain('age');
276
+ ```
277
+
278
+ ## API Reference
279
+
280
+ ### CSV Reader Options
281
+
282
+ | Option | Type | Default | Description |
283
+ | -------------- | ------------------ | -------- | -------------------------------------- |
284
+ | `filePath` | `string` | - | Path to CSV file (mutually exclusive) |
285
+ | `content` | `string \| Buffer` | - | Direct content (mutually exclusive) |
286
+ | `delimiter` | `string \| 'auto'` | `','` | Value separator, auto-detect if 'auto' |
287
+ | `encoding` | `string` | `'utf8'` | File encoding |
288
+ | `parseHeaders` | `boolean` | `true` | Use first row as headers |
289
+ | `trim` | `boolean` | `true` | Trim whitespace from values |
290
+
291
+ ### XLSX Reader Options
292
+
293
+ | Option | Type | Description |
294
+ | ----------- | -------- | ------------------------------ |
295
+ | `filePath` | `string` | Path to XLSX file |
296
+ | `sheetName` | `string` | Name of sheet to set as active |
297
+
298
+ ### PDF Reader Options
299
+
300
+ | Option | Type | Default | Description |
301
+ | ------------ | --------- | ------- | --------------------------- |
302
+ | `filePath` | `string` | - | Path to PDF file (required) |
303
+ | `mergePages` | `boolean` | `true` | Merge text from all pages |
304
+ | `maxPages` | `number` | - | Maximum pages to extract |
305
+ | `debug` | `boolean` | `false` | Enable debug logging |
306
+
307
+ ### ZIP Reader Options
308
+
309
+ | Option | Type | Description |
310
+ | --------------- | -------- | ---------------------------------- |
311
+ | `filePath` | `string` | Path to ZIP file |
312
+ | `fileToExtract` | `string` | Specific file to extract to Buffer |
313
+
314
+ ### Return Values
223
315
 
224
- expect(isValid).toBe(true);
225
- expect(errors).toHaveLength(0);
316
+ #### CSV Reader Return Value
317
+
318
+ ```typescript
319
+ {
320
+ content: {
321
+ data: Array<Array<string | number>>, // Parsed rows (excludes header row if parseHeaders: true)
322
+ headers: string[] | null // Column headers (null if parseHeaders: false)
323
+ }
324
+ }
226
325
  ```
227
326
 
327
+ #### XLSX Reader Return Value
328
+
329
+ ```typescript
330
+ {
331
+ content: {
332
+ worksheets: Array<{
333
+ name: string, // Sheet name
334
+ rows: Array<Array<any>>, // All rows including headers
335
+ headers?: string[] // First row as headers (if present)
336
+ }>
337
+ }
338
+ }
339
+ ```
340
+
341
+ #### PDF Reader Return Value
342
+
343
+ ```typescript
344
+ {
345
+ content: string, // Extracted text (merged or per-page based on mergePages)
346
+ pagesCount: number, // Total pages in PDF
347
+ fileName?: string, // Original filename if available
348
+ info?: Record<string, any> // PDF metadata (author, title, etc.)
349
+ }
350
+ ```
351
+
352
+ > **Note**: When `mergePages: false`, `content` is an array of strings (one per page). When `maxPages` is set, only that many pages are extracted.
353
+
354
+ #### ZIP Reader Return Value
355
+
356
+ ```typescript
357
+ {
358
+ content: {
359
+ entries: Array<{
360
+ name: string, // File/directory path within ZIP
361
+ size: number, // Uncompressed size in bytes
362
+ isDirectory: boolean // True for directories
363
+ }>,
364
+ extractedFiles: Record<string, Buffer | string> // Extracted file contents by path
365
+ }
366
+ }
367
+ ```
368
+
369
+ > **Note**: When `fileToExtract` is specified, only that file appears in `extractedFiles`.
370
+
228
371
  ## Download Cleanup Pattern
229
372
 
230
373
  ```typescript
@@ -234,6 +377,66 @@ test.afterEach(async () => {
234
377
  });
235
378
  ```
236
379
 
380
+ ## Comparison with Vanilla Playwright
381
+
382
+ Vanilla Playwright (real test) snippet:
383
+
384
+ ```typescript
385
+ // ~80 lines of boilerplate!
386
+ const [download] = await Promise.all([
387
+ page.waitForEvent('download'),
388
+ page.getByTestId('download-button-CSV Export').click(),
389
+ ]);
390
+
391
+ const failure = await download.failure();
392
+ expect(failure).toBeNull();
393
+
394
+ const filePath = testInfo.outputPath(download.suggestedFilename());
395
+ await download.saveAs(filePath);
396
+
397
+ await expect
398
+ .poll(
399
+ async () => {
400
+ try {
401
+ await fs.access(filePath);
402
+ return true;
403
+ } catch {
404
+ return false;
405
+ }
406
+ },
407
+ { timeout: 5000, intervals: [100, 200, 500] }
408
+ )
409
+ .toBe(true);
410
+
411
+ const csvContent = await fs.readFile(filePath, 'utf-8');
412
+
413
+ const parseResult = parse(csvContent, {
414
+ header: true,
415
+ skipEmptyLines: true,
416
+ dynamicTyping: true,
417
+ transformHeader: (header: string) => header.trim(),
418
+ });
419
+
420
+ if (parseResult.errors.length > 0) {
421
+ throw new Error(`CSV parsing errors: ${JSON.stringify(parseResult.errors)}`);
422
+ }
423
+
424
+ const data = parseResult.data as Array<Record<string, unknown>>;
425
+ const headers = parseResult.meta.fields || [];
426
+ ```
427
+
428
+ With File Utils, the same flow becomes:
429
+
430
+ ```typescript
431
+ const downloadPath = await handleDownload({
432
+ page,
433
+ downloadDir: DOWNLOAD_DIR,
434
+ trigger: () => page.getByTestId('download-button-text/csv').click(),
435
+ });
436
+
437
+ const { data, headers } = (await readCSV({ filePath: downloadPath })).content;
438
+ ```
439
+
237
440
  ## Related Fragments
238
441
 
239
442
  - `overview.md` - Installation and imports
@@ -242,7 +445,7 @@ test.afterEach(async () => {
242
445
 
243
446
  ## Anti-Patterns
244
447
 
245
- **❌ Not cleaning up downloads:**
448
+ **DON'T leave downloads in place:**
246
449
 
247
450
  ```typescript
248
451
  test('creates file', async () => {
@@ -251,7 +454,7 @@ test('creates file', async () => {
251
454
  })
252
455
  ```
253
456
 
254
- **✅ Clean up after tests:**
457
+ **DO clean up after tests:**
255
458
 
256
459
  ```typescript
257
460
  test.afterEach(async () => {