@jhl8041/dooray-mcp 0.1.4 → 0.1.6

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 (396) hide show
  1. package/.claude/commands/bmad_agent_bmad-master.md +14 -0
  2. package/.claude/commands/bmad_bmm_agent_analyst.md +14 -0
  3. package/.claude/commands/bmad_bmm_agent_architect.md +14 -0
  4. package/.claude/commands/bmad_bmm_agent_dev.md +14 -0
  5. package/.claude/commands/bmad_bmm_agent_pm.md +14 -0
  6. package/.claude/commands/bmad_bmm_agent_quick-flow-solo-dev.md +14 -0
  7. package/.claude/commands/bmad_bmm_agent_sm.md +14 -0
  8. package/.claude/commands/bmad_bmm_agent_tea.md +14 -0
  9. package/.claude/commands/bmad_bmm_agent_tech-writer_tech-writer.md +14 -0
  10. package/.claude/commands/bmad_bmm_agent_ux-designer.md +14 -0
  11. package/.claude/commands/bmad_bmm_check-implementation-readiness.md +5 -0
  12. package/.claude/commands/bmad_bmm_code-review.md +13 -0
  13. package/.claude/commands/bmad_bmm_correct-course.md +13 -0
  14. package/.claude/commands/bmad_bmm_create-architecture.md +5 -0
  15. package/.claude/commands/bmad_bmm_create-epics-and-stories.md +5 -0
  16. package/.claude/commands/bmad_bmm_create-excalidraw-dataflow.md +13 -0
  17. package/.claude/commands/bmad_bmm_create-excalidraw-diagram.md +13 -0
  18. package/.claude/commands/bmad_bmm_create-excalidraw-flowchart.md +13 -0
  19. package/.claude/commands/bmad_bmm_create-excalidraw-wireframe.md +13 -0
  20. package/.claude/commands/bmad_bmm_create-prd.md +5 -0
  21. package/.claude/commands/bmad_bmm_create-product-brief.md +5 -0
  22. package/.claude/commands/bmad_bmm_create-story.md +13 -0
  23. package/.claude/commands/bmad_bmm_create-ux-design.md +5 -0
  24. package/.claude/commands/bmad_bmm_dev-story.md +13 -0
  25. package/.claude/commands/bmad_bmm_document-project.md +13 -0
  26. package/.claude/commands/bmad_bmm_quick-dev.md +5 -0
  27. package/.claude/commands/bmad_bmm_quick-spec.md +5 -0
  28. package/.claude/commands/bmad_bmm_research.md +5 -0
  29. package/.claude/commands/bmad_bmm_retrospective.md +13 -0
  30. package/.claude/commands/bmad_bmm_sprint-planning.md +13 -0
  31. package/.claude/commands/bmad_bmm_sprint-status.md +13 -0
  32. package/.claude/commands/bmad_bmm_testarch-atdd.md +13 -0
  33. package/.claude/commands/bmad_bmm_testarch-automate.md +13 -0
  34. package/.claude/commands/bmad_bmm_testarch-ci.md +13 -0
  35. package/.claude/commands/bmad_bmm_testarch-framework.md +13 -0
  36. package/.claude/commands/bmad_bmm_testarch-nfr.md +13 -0
  37. package/.claude/commands/bmad_bmm_testarch-test-design.md +13 -0
  38. package/.claude/commands/bmad_bmm_testarch-test-review.md +13 -0
  39. package/.claude/commands/bmad_bmm_testarch-trace.md +13 -0
  40. package/.claude/commands/bmad_brainstorming.md +5 -0
  41. package/.claude/commands/bmad_editorial-review-prose.md +9 -0
  42. package/.claude/commands/bmad_editorial-review-structure.md +10 -0
  43. package/.claude/commands/bmad_help.md +9 -0
  44. package/.claude/commands/bmad_index-docs.md +9 -0
  45. package/.claude/commands/bmad_party-mode.md +5 -0
  46. package/.claude/commands/bmad_review-adversarial-general.md +9 -0
  47. package/.claude/commands/bmad_shard-doc.md +9 -0
  48. package/_bmad/_config/agent-manifest.csv +11 -0
  49. package/_bmad/_config/agents/bmm-analyst.customize.yaml +41 -0
  50. package/_bmad/_config/agents/bmm-architect.customize.yaml +41 -0
  51. package/_bmad/_config/agents/bmm-dev.customize.yaml +41 -0
  52. package/_bmad/_config/agents/bmm-pm.customize.yaml +41 -0
  53. package/_bmad/_config/agents/bmm-quick-flow-solo-dev.customize.yaml +41 -0
  54. package/_bmad/_config/agents/bmm-sm.customize.yaml +41 -0
  55. package/_bmad/_config/agents/bmm-tea.customize.yaml +41 -0
  56. package/_bmad/_config/agents/bmm-tech-writer.customize.yaml +41 -0
  57. package/_bmad/_config/agents/bmm-ux-designer.customize.yaml +41 -0
  58. package/_bmad/_config/agents/core-bmad-master.customize.yaml +41 -0
  59. package/_bmad/_config/bmad-help.csv +40 -0
  60. package/_bmad/_config/files-manifest.csv +281 -0
  61. package/_bmad/_config/manifest.yaml +21 -0
  62. package/_bmad/_config/task-manifest.csv +9 -0
  63. package/_bmad/_config/tool-manifest.csv +1 -0
  64. package/_bmad/_config/workflow-manifest.csv +32 -0
  65. package/_bmad/bmm/agents/analyst.md +76 -0
  66. package/_bmad/bmm/agents/architect.md +58 -0
  67. package/_bmad/bmm/agents/dev.md +69 -0
  68. package/_bmad/bmm/agents/pm.md +72 -0
  69. package/_bmad/bmm/agents/quick-flow-solo-dev.md +69 -0
  70. package/_bmad/bmm/agents/sm.md +70 -0
  71. package/_bmad/bmm/agents/tea.md +70 -0
  72. package/_bmad/bmm/agents/tech-writer/tech-writer.md +70 -0
  73. package/_bmad/bmm/agents/ux-designer.md +57 -0
  74. package/_bmad/bmm/config.yaml +16 -0
  75. package/_bmad/bmm/data/project-context-template.md +26 -0
  76. package/_bmad/bmm/module-help.csv +32 -0
  77. package/_bmad/bmm/teams/default-party.csv +21 -0
  78. package/_bmad/bmm/teams/team-fullstack.yaml +12 -0
  79. package/_bmad/bmm/testarch/knowledge/adr-quality-readiness-checklist.md +350 -0
  80. package/_bmad/bmm/testarch/knowledge/api-request.md +442 -0
  81. package/_bmad/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
  82. package/_bmad/bmm/testarch/knowledge/auth-session.md +552 -0
  83. package/_bmad/bmm/testarch/knowledge/burn-in.md +273 -0
  84. package/_bmad/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  85. package/_bmad/bmm/testarch/knowledge/component-tdd.md +486 -0
  86. package/_bmad/bmm/testarch/knowledge/contract-testing.md +957 -0
  87. package/_bmad/bmm/testarch/knowledge/data-factories.md +500 -0
  88. package/_bmad/bmm/testarch/knowledge/email-auth.md +721 -0
  89. package/_bmad/bmm/testarch/knowledge/error-handling.md +725 -0
  90. package/_bmad/bmm/testarch/knowledge/feature-flags.md +750 -0
  91. package/_bmad/bmm/testarch/knowledge/file-utils.md +463 -0
  92. package/_bmad/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  93. package/_bmad/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  94. package/_bmad/bmm/testarch/knowledge/intercept-network-call.md +430 -0
  95. package/_bmad/bmm/testarch/knowledge/log.md +429 -0
  96. package/_bmad/bmm/testarch/knowledge/network-error-monitor.md +405 -0
  97. package/_bmad/bmm/testarch/knowledge/network-first.md +486 -0
  98. package/_bmad/bmm/testarch/knowledge/network-recorder.md +527 -0
  99. package/_bmad/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  100. package/_bmad/bmm/testarch/knowledge/overview.md +286 -0
  101. package/_bmad/bmm/testarch/knowledge/playwright-config.md +730 -0
  102. package/_bmad/bmm/testarch/knowledge/probability-impact.md +601 -0
  103. package/_bmad/bmm/testarch/knowledge/recurse.md +421 -0
  104. package/_bmad/bmm/testarch/knowledge/risk-governance.md +615 -0
  105. package/_bmad/bmm/testarch/knowledge/selective-testing.md +732 -0
  106. package/_bmad/bmm/testarch/knowledge/selector-resilience.md +527 -0
  107. package/_bmad/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  108. package/_bmad/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  109. package/_bmad/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  110. package/_bmad/bmm/testarch/knowledge/test-quality.md +664 -0
  111. package/_bmad/bmm/testarch/knowledge/timing-debugging.md +372 -0
  112. package/_bmad/bmm/testarch/knowledge/visual-debugging.md +524 -0
  113. package/_bmad/bmm/testarch/tea-index.csv +35 -0
  114. package/_bmad/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  115. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  116. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  117. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  118. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  119. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  120. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  121. package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
  122. package/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
  123. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  124. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  125. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  126. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  127. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  128. package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  129. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  130. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  131. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
  132. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  133. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  134. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  135. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  136. package/_bmad/bmm/workflows/1-analysis/research/research.template.md +29 -0
  137. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  138. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  139. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  140. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  141. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
  142. package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  143. package/_bmad/bmm/workflows/1-analysis/research/workflow.md +173 -0
  144. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +13 -0
  145. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  146. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  147. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
  148. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +153 -0
  149. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
  150. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
  151. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
  152. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
  153. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
  154. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
  155. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
  156. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
  157. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
  158. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
  159. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
  160. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
  161. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  162. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
  163. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
  164. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
  165. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +218 -0
  166. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
  167. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
  168. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
  169. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  170. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
  171. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
  172. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  173. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  174. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
  175. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
  176. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  177. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
  178. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
  179. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
  180. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/validation-report-prd-workflow.md +433 -0
  181. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow.md +150 -0
  182. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  183. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  184. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  185. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  186. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  187. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  188. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  189. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  190. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  191. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  192. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  193. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  194. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  195. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  196. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
  197. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  198. package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
  199. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
  200. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
  201. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
  202. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
  203. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
  204. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +135 -0
  205. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  206. package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
  207. package/_bmad/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  208. package/_bmad/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
  209. package/_bmad/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  210. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  211. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
  212. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  213. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
  214. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  215. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  216. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  217. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  218. package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
  219. package/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
  220. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  221. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  222. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  223. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
  224. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  225. package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
  226. package/_bmad/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  227. package/_bmad/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  228. package/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +50 -0
  229. package/_bmad/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  230. package/_bmad/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
  231. package/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +58 -0
  232. package/_bmad/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  233. package/_bmad/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
  234. package/_bmad/bmm/workflows/4-implementation/create-story/template.md +49 -0
  235. package/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +59 -0
  236. package/_bmad/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  237. package/_bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  238. package/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +25 -0
  239. package/_bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
  240. package/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +57 -0
  241. package/_bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  242. package/_bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
  243. package/_bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  244. package/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +52 -0
  245. package/_bmad/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
  246. package/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +35 -0
  247. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +176 -0
  248. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  249. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
  250. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  251. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  252. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +149 -0
  253. package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
  254. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +192 -0
  255. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +145 -0
  256. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
  257. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +201 -0
  258. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  259. package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  260. package/_bmad/bmm/workflows/document-project/checklist.md +245 -0
  261. package/_bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  262. package/_bmad/bmm/workflows/document-project/instructions.md +221 -0
  263. package/_bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  264. package/_bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
  265. package/_bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  266. package/_bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  267. package/_bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  268. package/_bmad/bmm/workflows/document-project/workflow.yaml +28 -0
  269. package/_bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  270. package/_bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  271. package/_bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  272. package/_bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  273. package/_bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
  274. package/_bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
  275. package/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
  276. package/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
  277. package/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +26 -0
  278. package/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
  279. package/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
  280. package/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +26 -0
  281. package/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
  282. package/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
  283. package/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +26 -0
  284. package/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
  285. package/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
  286. package/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +26 -0
  287. package/_bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  288. package/_bmad/bmm/workflows/testarch/atdd/checklist.md +374 -0
  289. package/_bmad/bmm/workflows/testarch/atdd/instructions.md +806 -0
  290. package/_bmad/bmm/workflows/testarch/atdd/workflow.yaml +45 -0
  291. package/_bmad/bmm/workflows/testarch/automate/checklist.md +582 -0
  292. package/_bmad/bmm/workflows/testarch/automate/instructions.md +1324 -0
  293. package/_bmad/bmm/workflows/testarch/automate/workflow.yaml +52 -0
  294. package/_bmad/bmm/workflows/testarch/ci/checklist.md +247 -0
  295. package/_bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -0
  296. package/_bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
  297. package/_bmad/bmm/workflows/testarch/ci/instructions.md +536 -0
  298. package/_bmad/bmm/workflows/testarch/ci/workflow.yaml +45 -0
  299. package/_bmad/bmm/workflows/testarch/framework/checklist.md +320 -0
  300. package/_bmad/bmm/workflows/testarch/framework/instructions.md +481 -0
  301. package/_bmad/bmm/workflows/testarch/framework/workflow.yaml +47 -0
  302. package/_bmad/bmm/workflows/testarch/nfr-assess/checklist.md +407 -0
  303. package/_bmad/bmm/workflows/testarch/nfr-assess/instructions.md +726 -0
  304. package/_bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +461 -0
  305. package/_bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +47 -0
  306. package/_bmad/bmm/workflows/testarch/test-design/checklist.md +407 -0
  307. package/_bmad/bmm/workflows/testarch/test-design/instructions.md +1158 -0
  308. package/_bmad/bmm/workflows/testarch/test-design/test-design-architecture-template.md +213 -0
  309. package/_bmad/bmm/workflows/testarch/test-design/test-design-qa-template.md +286 -0
  310. package/_bmad/bmm/workflows/testarch/test-design/test-design-template.md +294 -0
  311. package/_bmad/bmm/workflows/testarch/test-design/workflow.yaml +69 -0
  312. package/_bmad/bmm/workflows/testarch/test-review/checklist.md +472 -0
  313. package/_bmad/bmm/workflows/testarch/test-review/instructions.md +628 -0
  314. package/_bmad/bmm/workflows/testarch/test-review/test-review-template.md +390 -0
  315. package/_bmad/bmm/workflows/testarch/test-review/workflow.yaml +46 -0
  316. package/_bmad/bmm/workflows/testarch/trace/checklist.md +642 -0
  317. package/_bmad/bmm/workflows/testarch/trace/instructions.md +1030 -0
  318. package/_bmad/bmm/workflows/testarch/trace/trace-template.md +675 -0
  319. package/_bmad/bmm/workflows/testarch/trace/workflow.yaml +55 -0
  320. package/_bmad/core/agents/bmad-master.md +56 -0
  321. package/_bmad/core/config.yaml +9 -0
  322. package/_bmad/core/module-help.csv +9 -0
  323. package/_bmad/core/resources/excalidraw/README.md +160 -0
  324. package/_bmad/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  325. package/_bmad/core/resources/excalidraw/library-loader.md +50 -0
  326. package/_bmad/core/resources/excalidraw/validate-json-instructions.md +79 -0
  327. package/_bmad/core/tasks/editorial-review-prose.xml +100 -0
  328. package/_bmad/core/tasks/editorial-review-structure.xml +209 -0
  329. package/_bmad/core/tasks/help.md +62 -0
  330. package/_bmad/core/tasks/index-docs.xml +65 -0
  331. package/_bmad/core/tasks/review-adversarial-general.xml +48 -0
  332. package/_bmad/core/tasks/shard-doc.xml +109 -0
  333. package/_bmad/core/tasks/workflow.xml +235 -0
  334. package/_bmad/core/workflows/advanced-elicitation/methods.csv +51 -0
  335. package/_bmad/core/workflows/advanced-elicitation/workflow.xml +117 -0
  336. package/_bmad/core/workflows/brainstorming/brain-methods.csv +62 -0
  337. package/_bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  338. package/_bmad/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  339. package/_bmad/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  340. package/_bmad/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  341. package/_bmad/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  342. package/_bmad/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  343. package/_bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  344. package/_bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  345. package/_bmad/core/workflows/brainstorming/template.md +15 -0
  346. package/_bmad/core/workflows/brainstorming/workflow.md +58 -0
  347. package/_bmad/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  348. package/_bmad/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  349. package/_bmad/core/workflows/party-mode/steps/step-03-graceful-exit.md +157 -0
  350. package/_bmad/core/workflows/party-mode/workflow.md +194 -0
  351. package/dist/api/client.d.ts +16 -1
  352. package/dist/api/client.d.ts.map +1 -1
  353. package/dist/api/client.js +91 -5
  354. package/dist/api/client.js.map +1 -1
  355. package/dist/api/projects.d.ts +23 -2
  356. package/dist/api/projects.d.ts.map +1 -1
  357. package/dist/api/projects.js +32 -0
  358. package/dist/api/projects.js.map +1 -1
  359. package/dist/index.js +15 -0
  360. package/dist/index.js.map +1 -1
  361. package/dist/tools/projects/delete-attachment-from-task.d.ts.map +1 -0
  362. package/dist/tools/projects/delete-attachment-from-task.js.map +1 -0
  363. package/dist/tools/projects/delete-attachment.d.ts +55 -0
  364. package/dist/tools/projects/delete-attachment.d.ts.map +1 -0
  365. package/dist/tools/projects/delete-attachment.js +115 -0
  366. package/dist/tools/projects/delete-attachment.js.map +1 -0
  367. package/dist/tools/projects/download-attachment.d.ts +55 -0
  368. package/dist/tools/projects/download-attachment.d.ts.map +1 -0
  369. package/dist/tools/projects/download-attachment.js +153 -0
  370. package/dist/tools/projects/download-attachment.js.map +1 -0
  371. package/dist/tools/projects/get-attachment-list.d.ts +48 -0
  372. package/dist/tools/projects/get-attachment-list.d.ts.map +1 -0
  373. package/dist/tools/projects/get-attachment-list.js +118 -0
  374. package/dist/tools/projects/get-attachment-list.js.map +1 -0
  375. package/dist/tools/projects/get-attachment-metadata.d.ts +55 -0
  376. package/dist/tools/projects/get-attachment-metadata.d.ts.map +1 -0
  377. package/dist/tools/projects/get-attachment-metadata.js +120 -0
  378. package/dist/tools/projects/get-attachment-metadata.js.map +1 -0
  379. package/dist/tools/projects/register-attachment-to-task.d.ts.map +1 -0
  380. package/dist/tools/projects/register-attachment-to-task.js.map +1 -0
  381. package/dist/tools/projects/update-task.d.ts +4 -4
  382. package/dist/tools/projects/update-task.js +12 -12
  383. package/dist/tools/projects/update-task.js.map +1 -1
  384. package/dist/tools/projects/upload-attachment.d.ts +69 -0
  385. package/dist/tools/projects/upload-attachment.d.ts.map +1 -0
  386. package/dist/tools/projects/upload-attachment.js +109 -0
  387. package/dist/tools/projects/upload-attachment.js.map +1 -0
  388. package/dist/types/dooray-api.d.ts +15 -0
  389. package/dist/types/dooray-api.d.ts.map +1 -1
  390. package/docs/architecture.md +227 -0
  391. package/docs/development-guide.md +336 -0
  392. package/docs/index.md +115 -0
  393. package/docs/project-overview.md +105 -0
  394. package/docs/project-scan-report.json +120 -0
  395. package/docs/source-tree-analysis.md +240 -0
  396. package/package.json +1 -1
@@ -0,0 +1,382 @@
1
+ # Fixtures Composition with mergeTests
2
+
3
+ ## Principle
4
+
5
+ Combine multiple Playwright fixtures using `mergeTests` to create a unified test object with all capabilities. Build composable test infrastructure by merging playwright-utils fixtures with custom project fixtures.
6
+
7
+ ## Rationale
8
+
9
+ Using fixtures from multiple sources requires combining them:
10
+
11
+ - Importing from multiple fixture files is verbose
12
+ - Name conflicts between fixtures
13
+ - Duplicate fixture definitions
14
+ - No clear single test object
15
+
16
+ Playwright's `mergeTests` provides:
17
+
18
+ - **Single test object**: All fixtures in one import
19
+ - **Conflict resolution**: Handles name collisions automatically
20
+ - **Composition pattern**: Mix utilities, custom fixtures, third-party fixtures
21
+ - **Type safety**: Full TypeScript support for merged fixtures
22
+ - **Maintainability**: One place to manage all fixtures
23
+
24
+ ## Pattern Examples
25
+
26
+ ### Example 1: Basic Fixture Merging
27
+
28
+ **Context**: Combine multiple playwright-utils fixtures into single test object.
29
+
30
+ **Implementation**:
31
+
32
+ ```typescript
33
+ // playwright/support/merged-fixtures.ts
34
+ import { mergeTests } from '@playwright/test';
35
+ import { test as apiRequestFixture } from '@seontechnologies/playwright-utils/api-request/fixtures';
36
+ import { test as authFixture } from '@seontechnologies/playwright-utils/auth-session/fixtures';
37
+ import { test as recurseFixture } from '@seontechnologies/playwright-utils/recurse/fixtures';
38
+
39
+ // Merge all fixtures
40
+ export const test = mergeTests(apiRequestFixture, authFixture, recurseFixture);
41
+
42
+ export { expect } from '@playwright/test';
43
+ ```
44
+
45
+ ```typescript
46
+ // In your tests - import from merged fixtures
47
+ import { test, expect } from '../support/merged-fixtures';
48
+
49
+ test('all utilities available', async ({
50
+ apiRequest, // From api-request fixture
51
+ authToken, // From auth fixture
52
+ recurse, // From recurse fixture
53
+ }) => {
54
+ // All fixtures available in single test signature
55
+ const { body } = await apiRequest({
56
+ method: 'GET',
57
+ path: '/api/protected',
58
+ headers: { Authorization: `Bearer ${authToken}` },
59
+ });
60
+
61
+ await recurse(
62
+ () => apiRequest({ method: 'GET', path: `/status/${body.id}` }),
63
+ (res) => res.body.ready === true,
64
+ );
65
+ });
66
+ ```
67
+
68
+ **Key Points**:
69
+
70
+ - Create one `merged-fixtures.ts` per project
71
+ - Import test object from merged fixtures in all test files
72
+ - All utilities available without multiple imports
73
+ - Type-safe access to all fixtures
74
+
75
+ ### Example 2: Combining with Custom Fixtures
76
+
77
+ **Context**: Add project-specific fixtures alongside playwright-utils.
78
+
79
+ **Implementation**:
80
+
81
+ ```typescript
82
+ // playwright/support/custom-fixtures.ts - Your project fixtures
83
+ import { test as base } from '@playwright/test';
84
+ import { createUser } from './factories/user-factory';
85
+ import { seedDatabase } from './helpers/db-seeder';
86
+
87
+ export const test = base.extend({
88
+ // Custom fixture 1: Auto-seeded user
89
+ testUser: async ({ request }, use) => {
90
+ const user = await createUser({ role: 'admin' });
91
+ await seedDatabase('users', [user]);
92
+ await use(user);
93
+ // Cleanup happens automatically
94
+ },
95
+
96
+ // Custom fixture 2: Database helpers
97
+ db: async ({}, use) => {
98
+ await use({
99
+ seed: seedDatabase,
100
+ clear: () => seedDatabase.truncate(),
101
+ });
102
+ },
103
+ });
104
+
105
+ // playwright/support/merged-fixtures.ts - Combine everything
106
+ import { mergeTests } from '@playwright/test';
107
+ import { test as apiRequestFixture } from '@seontechnologies/playwright-utils/api-request/fixtures';
108
+ import { test as authFixture } from '@seontechnologies/playwright-utils/auth-session/fixtures';
109
+ import { test as customFixtures } from './custom-fixtures';
110
+
111
+ export const test = mergeTests(
112
+ apiRequestFixture,
113
+ authFixture,
114
+ customFixtures, // Your project fixtures
115
+ );
116
+
117
+ export { expect } from '@playwright/test';
118
+ ```
119
+
120
+ ```typescript
121
+ // In tests - all fixtures available
122
+ import { test, expect } from '../support/merged-fixtures';
123
+
124
+ test('using mixed fixtures', async ({
125
+ apiRequest, // playwright-utils
126
+ authToken, // playwright-utils
127
+ testUser, // custom
128
+ db, // custom
129
+ }) => {
130
+ // Use playwright-utils
131
+ const { body } = await apiRequest({
132
+ method: 'GET',
133
+ path: `/api/users/${testUser.id}`,
134
+ headers: { Authorization: `Bearer ${authToken}` },
135
+ });
136
+
137
+ // Use custom fixture
138
+ await db.clear();
139
+ });
140
+ ```
141
+
142
+ **Key Points**:
143
+
144
+ - Custom fixtures extend `base` test
145
+ - Merge custom with playwright-utils fixtures
146
+ - All available in one test signature
147
+ - Maintainable separation of concerns
148
+
149
+ ### Example 3: Full Utility Suite Integration
150
+
151
+ **Context**: Production setup with all core playwright-utils and custom fixtures.
152
+
153
+ **Implementation**:
154
+
155
+ ```typescript
156
+ // playwright/support/merged-fixtures.ts
157
+ import { mergeTests } from '@playwright/test';
158
+
159
+ // Playwright utils fixtures
160
+ import { test as apiRequestFixture } from '@seontechnologies/playwright-utils/api-request/fixtures';
161
+ import { test as authFixture } from '@seontechnologies/playwright-utils/auth-session/fixtures';
162
+ import { test as interceptFixture } from '@seontechnologies/playwright-utils/intercept-network-call/fixtures';
163
+ import { test as recurseFixture } from '@seontechnologies/playwright-utils/recurse/fixtures';
164
+ import { test as networkRecorderFixture } from '@seontechnologies/playwright-utils/network-recorder/fixtures';
165
+
166
+ // Custom project fixtures
167
+ import { test as customFixtures } from './custom-fixtures';
168
+
169
+ // Merge everything
170
+ export const test = mergeTests(apiRequestFixture, authFixture, interceptFixture, recurseFixture, networkRecorderFixture, customFixtures);
171
+
172
+ export { expect } from '@playwright/test';
173
+ ```
174
+
175
+ ```typescript
176
+ // In tests
177
+ import { test, expect } from '../support/merged-fixtures';
178
+
179
+ test('full integration', async ({
180
+ page,
181
+ context,
182
+ apiRequest,
183
+ authToken,
184
+ interceptNetworkCall,
185
+ recurse,
186
+ networkRecorder,
187
+ testUser, // custom
188
+ }) => {
189
+ // All utilities + custom fixtures available
190
+ await networkRecorder.setup(context);
191
+
192
+ const usersCall = interceptNetworkCall({ url: '**/api/users' });
193
+
194
+ await page.goto('/users');
195
+ const { responseJson } = await usersCall;
196
+
197
+ expect(responseJson).toContainEqual(expect.objectContaining({ id: testUser.id }));
198
+ });
199
+ ```
200
+
201
+ **Key Points**:
202
+
203
+ - One merged-fixtures.ts for entire project
204
+ - Combine all playwright-utils you use
205
+ - Add custom project fixtures
206
+ - Single import in all test files
207
+
208
+ ### Example 4: Fixture Override Pattern
209
+
210
+ **Context**: Override default options for specific test files or describes.
211
+
212
+ **Implementation**:
213
+
214
+ ```typescript
215
+ import { test, expect } from '../support/merged-fixtures';
216
+
217
+ // Override auth options for entire file
218
+ test.use({
219
+ authOptions: {
220
+ userIdentifier: 'admin',
221
+ environment: 'staging',
222
+ },
223
+ });
224
+
225
+ test('uses admin on staging', async ({ authToken }) => {
226
+ // Token is for admin user on staging environment
227
+ });
228
+
229
+ // Override for specific describe block
230
+ test.describe('manager tests', () => {
231
+ test.use({
232
+ authOptions: {
233
+ userIdentifier: 'manager',
234
+ },
235
+ });
236
+
237
+ test('manager can access reports', async ({ page }) => {
238
+ // Uses manager token
239
+ await page.goto('/reports');
240
+ });
241
+ });
242
+ ```
243
+
244
+ **Key Points**:
245
+
246
+ - `test.use()` overrides fixture options
247
+ - Can override at file or describe level
248
+ - Options merge with defaults
249
+ - Type-safe overrides
250
+
251
+ ### Example 5: Avoiding Fixture Conflicts
252
+
253
+ **Context**: Handle name collisions when merging fixtures with same names.
254
+
255
+ **Implementation**:
256
+
257
+ ```typescript
258
+ // If two fixtures have same name, last one wins
259
+ import { test as fixture1 } from './fixture1'; // has 'user' fixture
260
+ import { test as fixture2 } from './fixture2'; // also has 'user' fixture
261
+
262
+ const test = mergeTests(fixture1, fixture2);
263
+ // fixture2's 'user' overrides fixture1's 'user'
264
+
265
+ // Better: Rename fixtures before merging
266
+ import { test as base } from '@playwright/test';
267
+ import { test as fixture1 } from './fixture1';
268
+
269
+ const fixture1Renamed = base.extend({
270
+ user1: fixture1._extend.user, // Rename to avoid conflict
271
+ });
272
+
273
+ const test = mergeTests(fixture1Renamed, fixture2);
274
+ // Now both 'user1' and 'user' available
275
+
276
+ // Best: Design fixtures without conflicts
277
+ // - Prefix custom fixtures: 'myAppUser', 'myAppDb'
278
+ // - Playwright-utils uses descriptive names: 'apiRequest', 'authToken'
279
+ ```
280
+
281
+ **Key Points**:
282
+
283
+ - Last fixture wins in conflicts
284
+ - Rename fixtures to avoid collisions
285
+ - Design fixtures with unique names
286
+ - Playwright-utils uses descriptive names (no conflicts)
287
+
288
+ ## Recommended Project Structure
289
+
290
+ ```
291
+ playwright/
292
+ ├── support/
293
+ │ ├── merged-fixtures.ts # ⭐ Single test object for project
294
+ │ ├── custom-fixtures.ts # Your project-specific fixtures
295
+ │ ├── auth/
296
+ │ │ ├── auth-fixture.ts # Auth wrapper (if needed)
297
+ │ │ └── custom-auth-provider.ts
298
+ │ ├── fixtures/
299
+ │ │ ├── user-fixture.ts
300
+ │ │ ├── db-fixture.ts
301
+ │ │ └── api-fixture.ts
302
+ │ └── utils/
303
+ │ └── factories/
304
+ └── tests/
305
+ ├── api/
306
+ │ └── users.spec.ts # import { test } from '../../support/merged-fixtures'
307
+ ├── e2e/
308
+ │ └── login.spec.ts # import { test } from '../../support/merged-fixtures'
309
+ └── component/
310
+ └── button.spec.ts # import { test } from '../../support/merged-fixtures'
311
+ ```
312
+
313
+ ## Benefits of Fixture Composition
314
+
315
+ **Compared to direct imports:**
316
+
317
+ ```typescript
318
+ // ❌ Without mergeTests (verbose)
319
+ import { test as base } from '@playwright/test';
320
+ import { apiRequest } from '@seontechnologies/playwright-utils/api-request';
321
+ import { getAuthToken } from './auth';
322
+ import { createUser } from './factories';
323
+
324
+ test('verbose', async ({ request }) => {
325
+ const token = await getAuthToken();
326
+ const user = await createUser();
327
+ const response = await apiRequest({ request, method: 'GET', path: '/api/users' });
328
+ // Manual wiring everywhere
329
+ });
330
+
331
+ // ✅ With mergeTests (clean)
332
+ import { test } from '../support/merged-fixtures';
333
+
334
+ test('clean', async ({ apiRequest, authToken, testUser }) => {
335
+ const { body } = await apiRequest({ method: 'GET', path: '/api/users' });
336
+ // All fixtures auto-wired
337
+ });
338
+ ```
339
+
340
+ **Reduction:** ~10 lines per test → ~2 lines
341
+
342
+ ## Related Fragments
343
+
344
+ - `overview.md` - Installation and design principles
345
+ - `api-request.md`, `auth-session.md`, `recurse.md` - Utilities to merge
346
+ - `network-recorder.md`, `intercept-network-call.md`, `log.md` - Additional utilities
347
+
348
+ ## Anti-Patterns
349
+
350
+ **❌ Importing test from multiple fixture files:**
351
+
352
+ ```typescript
353
+ import { test } from '@seontechnologies/playwright-utils/api-request/fixtures';
354
+ // Also need auth...
355
+ import { test as authTest } from '@seontechnologies/playwright-utils/auth-session/fixtures';
356
+ // Name conflict! Which test to use?
357
+ ```
358
+
359
+ **✅ Use merged fixtures:**
360
+
361
+ ```typescript
362
+ import { test } from '../support/merged-fixtures';
363
+ // All utilities available, no conflicts
364
+ ```
365
+
366
+ **❌ Merging too many fixtures (kitchen sink):**
367
+
368
+ ```typescript
369
+ // Merging 20+ fixtures makes test signature huge
370
+ const test = mergeTests(...20 different fixtures)
371
+
372
+ test('my test', async ({ fixture1, fixture2, ..., fixture20 }) => {
373
+ // Cognitive overload
374
+ })
375
+ ```
376
+
377
+ **✅ Merge only what you actually use:**
378
+
379
+ ```typescript
380
+ // Merge the 4-6 fixtures your project actually needs
381
+ const test = mergeTests(apiRequestFixture, authFixture, recurseFixture, customFixtures);
382
+ ```