bmad-method-test-architecture-enterprise 0.1.1-beta.0

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 (320) hide show
  1. package/.github/CODE_OF_CONDUCT.md +128 -0
  2. package/.github/FUNDING.yaml +15 -0
  3. package/.github/ISSUE_TEMPLATE/config.yaml +11 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +70 -0
  5. package/.github/ISSUE_TEMPLATE/issue.md +61 -0
  6. package/.github/workflows/docs.yaml +66 -0
  7. package/.github/workflows/manual-release.yaml +195 -0
  8. package/.github/workflows/quality.yaml +114 -0
  9. package/.husky/pre-commit +20 -0
  10. package/.markdownlint-cli2.yaml +36 -0
  11. package/.nvmrc +1 -0
  12. package/.prettierignore +9 -0
  13. package/.vscode/settings.json +47 -0
  14. package/CHANGELOG.md +217 -0
  15. package/CONTRIBUTING.md +268 -0
  16. package/LICENSE +26 -0
  17. package/README.md +300 -0
  18. package/SECURITY.md +85 -0
  19. package/TEA-MODULE-MIGRATION-PLAN.md +3788 -0
  20. package/docs/404.md +20 -0
  21. package/docs/MIGRATION.md +447 -0
  22. package/docs/explanation/engagement-models.md +767 -0
  23. package/docs/explanation/fixture-architecture.md +484 -0
  24. package/docs/explanation/knowledge-base-system.md +599 -0
  25. package/docs/explanation/network-first-patterns.md +884 -0
  26. package/docs/explanation/risk-based-testing.md +628 -0
  27. package/docs/explanation/step-file-architecture.md +609 -0
  28. package/docs/explanation/subprocess-architecture.md +578 -0
  29. package/docs/explanation/subprocess-implementation-status.md +327 -0
  30. package/docs/explanation/tea-overview.md +425 -0
  31. package/docs/explanation/test-quality-standards.md +965 -0
  32. package/docs/explanation/testing-as-engineering.md +111 -0
  33. package/docs/glossary/index.md +160 -0
  34. package/docs/how-to/brownfield/use-tea-for-enterprise.md +571 -0
  35. package/docs/how-to/brownfield/use-tea-with-existing-tests.md +631 -0
  36. package/docs/how-to/customization/enable-tea-mcp-enhancements.md +455 -0
  37. package/docs/how-to/customization/integrate-playwright-utils.md +846 -0
  38. package/docs/how-to/workflows/run-atdd.md +460 -0
  39. package/docs/how-to/workflows/run-automate.md +690 -0
  40. package/docs/how-to/workflows/run-nfr-assess.md +731 -0
  41. package/docs/how-to/workflows/run-test-design.md +144 -0
  42. package/docs/how-to/workflows/run-test-review.md +638 -0
  43. package/docs/how-to/workflows/run-trace.md +951 -0
  44. package/docs/how-to/workflows/setup-ci.md +761 -0
  45. package/docs/how-to/workflows/setup-test-framework.md +99 -0
  46. package/docs/index.md +122 -0
  47. package/docs/reference/commands.md +300 -0
  48. package/docs/reference/configuration.md +729 -0
  49. package/docs/reference/knowledge-base.md +365 -0
  50. package/docs/reference/troubleshooting.md +717 -0
  51. package/docs/tutorials/tea-lite-quickstart.md +465 -0
  52. package/eslint.config.mjs +152 -0
  53. package/package.json +117 -0
  54. package/prettier.config.mjs +32 -0
  55. package/release_notes.md +28 -0
  56. package/src/_module-installer/installer.js +92 -0
  57. package/src/agents/tea.agent.yaml +63 -0
  58. package/src/module-help.csv +9 -0
  59. package/src/module.yaml +91 -0
  60. package/src/testarch/knowledge/adr-quality-readiness-checklist.md +377 -0
  61. package/src/testarch/knowledge/api-request.md +442 -0
  62. package/src/testarch/knowledge/api-testing-patterns.md +851 -0
  63. package/src/testarch/knowledge/auth-session.md +548 -0
  64. package/src/testarch/knowledge/burn-in.md +273 -0
  65. package/src/testarch/knowledge/ci-burn-in.md +675 -0
  66. package/src/testarch/knowledge/component-tdd.md +486 -0
  67. package/src/testarch/knowledge/contract-testing.md +957 -0
  68. package/src/testarch/knowledge/data-factories.md +500 -0
  69. package/src/testarch/knowledge/email-auth.md +721 -0
  70. package/src/testarch/knowledge/error-handling.md +725 -0
  71. package/src/testarch/knowledge/feature-flags.md +750 -0
  72. package/src/testarch/knowledge/file-utils.md +456 -0
  73. package/src/testarch/knowledge/fixture-architecture.md +401 -0
  74. package/src/testarch/knowledge/fixtures-composition.md +382 -0
  75. package/src/testarch/knowledge/intercept-network-call.md +426 -0
  76. package/src/testarch/knowledge/log.md +426 -0
  77. package/src/testarch/knowledge/network-error-monitor.md +401 -0
  78. package/src/testarch/knowledge/network-first.md +486 -0
  79. package/src/testarch/knowledge/network-recorder.md +527 -0
  80. package/src/testarch/knowledge/nfr-criteria.md +670 -0
  81. package/src/testarch/knowledge/overview.md +286 -0
  82. package/src/testarch/knowledge/playwright-config.md +730 -0
  83. package/src/testarch/knowledge/probability-impact.md +601 -0
  84. package/src/testarch/knowledge/recurse.md +421 -0
  85. package/src/testarch/knowledge/risk-governance.md +615 -0
  86. package/src/testarch/knowledge/selective-testing.md +732 -0
  87. package/src/testarch/knowledge/selector-resilience.md +527 -0
  88. package/src/testarch/knowledge/test-healing-patterns.md +644 -0
  89. package/src/testarch/knowledge/test-levels-framework.md +473 -0
  90. package/src/testarch/knowledge/test-priorities-matrix.md +373 -0
  91. package/src/testarch/knowledge/test-quality.md +664 -0
  92. package/src/testarch/knowledge/timing-debugging.md +372 -0
  93. package/src/testarch/knowledge/visual-debugging.md +524 -0
  94. package/src/testarch/tea-index.csv +35 -0
  95. package/src/workflows/testarch/README.md +74 -0
  96. package/src/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  97. package/src/workflows/testarch/atdd/checklist.md +374 -0
  98. package/src/workflows/testarch/atdd/instructions.md +38 -0
  99. package/src/workflows/testarch/atdd/steps-c/step-01-preflight-and-context.md +110 -0
  100. package/src/workflows/testarch/atdd/steps-c/step-02-generation-mode.md +79 -0
  101. package/src/workflows/testarch/atdd/steps-c/step-03-test-strategy.md +76 -0
  102. package/src/workflows/testarch/atdd/steps-c/step-04-generate-tests.md +228 -0
  103. package/src/workflows/testarch/atdd/steps-c/step-04a-subprocess-api-failing.md +215 -0
  104. package/src/workflows/testarch/atdd/steps-c/step-04b-subprocess-e2e-failing.md +212 -0
  105. package/src/workflows/testarch/atdd/steps-c/step-04c-aggregate.md +329 -0
  106. package/src/workflows/testarch/atdd/steps-c/step-05-validate-and-complete.md +68 -0
  107. package/src/workflows/testarch/atdd/steps-e/step-01-assess.md +65 -0
  108. package/src/workflows/testarch/atdd/steps-e/step-02-apply-edit.md +60 -0
  109. package/src/workflows/testarch/atdd/steps-v/step-01-validate.md +67 -0
  110. package/src/workflows/testarch/atdd/validation-report-20260127-095021.md +73 -0
  111. package/src/workflows/testarch/atdd/validation-report-20260127-102401.md +116 -0
  112. package/src/workflows/testarch/atdd/workflow-plan.md +21 -0
  113. package/src/workflows/testarch/atdd/workflow.md +39 -0
  114. package/src/workflows/testarch/atdd/workflow.yaml +47 -0
  115. package/src/workflows/testarch/automate/checklist.md +582 -0
  116. package/src/workflows/testarch/automate/instructions.md +43 -0
  117. package/src/workflows/testarch/automate/steps-c/step-01-preflight-and-context.md +127 -0
  118. package/src/workflows/testarch/automate/steps-c/step-02-identify-targets.md +95 -0
  119. package/src/workflows/testarch/automate/steps-c/step-03-generate-tests.md +199 -0
  120. package/src/workflows/testarch/automate/steps-c/step-03a-subprocess-api.md +183 -0
  121. package/src/workflows/testarch/automate/steps-c/step-03b-subprocess-e2e.md +181 -0
  122. package/src/workflows/testarch/automate/steps-c/step-03c-aggregate.md +300 -0
  123. package/src/workflows/testarch/automate/steps-c/step-04-validate-and-summarize.md +69 -0
  124. package/src/workflows/testarch/automate/steps-e/step-01-assess.md +65 -0
  125. package/src/workflows/testarch/automate/steps-e/step-02-apply-edit.md +60 -0
  126. package/src/workflows/testarch/automate/steps-v/step-01-validate.md +67 -0
  127. package/src/workflows/testarch/automate/validation-report-20260127-095021.md +72 -0
  128. package/src/workflows/testarch/automate/validation-report-20260127-102401.md +114 -0
  129. package/src/workflows/testarch/automate/workflow-plan.md +20 -0
  130. package/src/workflows/testarch/automate/workflow.md +39 -0
  131. package/src/workflows/testarch/automate/workflow.yaml +54 -0
  132. package/src/workflows/testarch/ci/checklist.md +247 -0
  133. package/src/workflows/testarch/ci/github-actions-template.yaml +198 -0
  134. package/src/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
  135. package/src/workflows/testarch/ci/instructions.md +38 -0
  136. package/src/workflows/testarch/ci/steps-c/step-01-preflight.md +92 -0
  137. package/src/workflows/testarch/ci/steps-c/step-02-generate-pipeline.md +82 -0
  138. package/src/workflows/testarch/ci/steps-c/step-03-configure-quality-gates.md +75 -0
  139. package/src/workflows/testarch/ci/steps-c/step-04-validate-and-summary.md +67 -0
  140. package/src/workflows/testarch/ci/steps-e/step-01-assess.md +65 -0
  141. package/src/workflows/testarch/ci/steps-e/step-02-apply-edit.md +60 -0
  142. package/src/workflows/testarch/ci/steps-v/step-01-validate.md +67 -0
  143. package/src/workflows/testarch/ci/validation-report-20260127-095021.md +72 -0
  144. package/src/workflows/testarch/ci/validation-report-20260127-102401.md +114 -0
  145. package/src/workflows/testarch/ci/workflow-plan.md +20 -0
  146. package/src/workflows/testarch/ci/workflow.md +39 -0
  147. package/src/workflows/testarch/ci/workflow.yaml +47 -0
  148. package/src/workflows/testarch/framework/checklist.md +320 -0
  149. package/src/workflows/testarch/framework/instructions.md +38 -0
  150. package/src/workflows/testarch/framework/steps-c/step-01-preflight.md +75 -0
  151. package/src/workflows/testarch/framework/steps-c/step-02-select-framework.md +73 -0
  152. package/src/workflows/testarch/framework/steps-c/step-03-scaffold-framework.md +120 -0
  153. package/src/workflows/testarch/framework/steps-c/step-04-docs-and-scripts.md +70 -0
  154. package/src/workflows/testarch/framework/steps-c/step-05-validate-and-summary.md +68 -0
  155. package/src/workflows/testarch/framework/steps-e/step-01-assess.md +65 -0
  156. package/src/workflows/testarch/framework/steps-e/step-02-apply-edit.md +60 -0
  157. package/src/workflows/testarch/framework/steps-v/step-01-validate.md +67 -0
  158. package/src/workflows/testarch/framework/validation-report-20260127-095021.md +73 -0
  159. package/src/workflows/testarch/framework/validation-report-20260127-102401.md +116 -0
  160. package/src/workflows/testarch/framework/workflow-plan.md +22 -0
  161. package/src/workflows/testarch/framework/workflow.md +39 -0
  162. package/src/workflows/testarch/framework/workflow.yaml +49 -0
  163. package/src/workflows/testarch/nfr-assess/checklist.md +407 -0
  164. package/src/workflows/testarch/nfr-assess/instructions.md +36 -0
  165. package/src/workflows/testarch/nfr-assess/nfr-report-template.md +462 -0
  166. package/src/workflows/testarch/nfr-assess/steps-c/step-01-load-context.md +85 -0
  167. package/src/workflows/testarch/nfr-assess/steps-c/step-02-define-thresholds.md +82 -0
  168. package/src/workflows/testarch/nfr-assess/steps-c/step-03-gather-evidence.md +64 -0
  169. package/src/workflows/testarch/nfr-assess/steps-c/step-04-evaluate-and-score.md +140 -0
  170. package/src/workflows/testarch/nfr-assess/steps-c/step-04a-subprocess-security.md +138 -0
  171. package/src/workflows/testarch/nfr-assess/steps-c/step-04b-subprocess-performance.md +84 -0
  172. package/src/workflows/testarch/nfr-assess/steps-c/step-04c-subprocess-reliability.md +85 -0
  173. package/src/workflows/testarch/nfr-assess/steps-c/step-04d-subprocess-scalability.md +88 -0
  174. package/src/workflows/testarch/nfr-assess/steps-c/step-04e-aggregate-nfr.md +219 -0
  175. package/src/workflows/testarch/nfr-assess/steps-c/step-05-generate-report.md +71 -0
  176. package/src/workflows/testarch/nfr-assess/steps-e/step-01-assess.md +65 -0
  177. package/src/workflows/testarch/nfr-assess/steps-e/step-02-apply-edit.md +60 -0
  178. package/src/workflows/testarch/nfr-assess/steps-v/step-01-validate.md +67 -0
  179. package/src/workflows/testarch/nfr-assess/validation-report-20260127-095021.md +73 -0
  180. package/src/workflows/testarch/nfr-assess/validation-report-20260127-102401.md +116 -0
  181. package/src/workflows/testarch/nfr-assess/workflow-plan.md +19 -0
  182. package/src/workflows/testarch/nfr-assess/workflow.md +39 -0
  183. package/src/workflows/testarch/nfr-assess/workflow.yaml +49 -0
  184. package/src/workflows/testarch/test-design/checklist.md +410 -0
  185. package/src/workflows/testarch/test-design/instructions.md +52 -0
  186. package/src/workflows/testarch/test-design/steps-c/step-01-detect-mode.md +109 -0
  187. package/src/workflows/testarch/test-design/steps-c/step-02-load-context.md +127 -0
  188. package/src/workflows/testarch/test-design/steps-c/step-03-risk-and-testability.md +85 -0
  189. package/src/workflows/testarch/test-design/steps-c/step-04-coverage-plan.md +98 -0
  190. package/src/workflows/testarch/test-design/steps-c/step-05-generate-output.md +97 -0
  191. package/src/workflows/testarch/test-design/steps-e/step-01-assess.md +65 -0
  192. package/src/workflows/testarch/test-design/steps-e/step-02-apply-edit.md +60 -0
  193. package/src/workflows/testarch/test-design/steps-v/step-01-validate.md +67 -0
  194. package/src/workflows/testarch/test-design/test-design-architecture-template.md +222 -0
  195. package/src/workflows/testarch/test-design/test-design-qa-template.md +296 -0
  196. package/src/workflows/testarch/test-design/test-design-template.md +294 -0
  197. package/src/workflows/testarch/test-design/validation-report-20260127-095021.md +73 -0
  198. package/src/workflows/testarch/test-design/validation-report-20260127-102401.md +116 -0
  199. package/src/workflows/testarch/test-design/workflow-plan.md +22 -0
  200. package/src/workflows/testarch/test-design/workflow.md +39 -0
  201. package/src/workflows/testarch/test-design/workflow.yaml +71 -0
  202. package/src/workflows/testarch/test-review/checklist.md +472 -0
  203. package/src/workflows/testarch/test-review/instructions.md +36 -0
  204. package/src/workflows/testarch/test-review/steps-c/step-01-load-context.md +101 -0
  205. package/src/workflows/testarch/test-review/steps-c/step-02-discover-tests.md +69 -0
  206. package/src/workflows/testarch/test-review/steps-c/step-03-quality-evaluation.md +184 -0
  207. package/src/workflows/testarch/test-review/steps-c/step-03a-subprocess-determinism.md +214 -0
  208. package/src/workflows/testarch/test-review/steps-c/step-03b-subprocess-isolation.md +125 -0
  209. package/src/workflows/testarch/test-review/steps-c/step-03c-subprocess-maintainability.md +102 -0
  210. package/src/workflows/testarch/test-review/steps-c/step-03d-subprocess-coverage.md +111 -0
  211. package/src/workflows/testarch/test-review/steps-c/step-03e-subprocess-performance.md +117 -0
  212. package/src/workflows/testarch/test-review/steps-c/step-03f-aggregate-scores.md +246 -0
  213. package/src/workflows/testarch/test-review/steps-c/step-04-generate-report.md +72 -0
  214. package/src/workflows/testarch/test-review/steps-e/step-01-assess.md +65 -0
  215. package/src/workflows/testarch/test-review/steps-e/step-02-apply-edit.md +60 -0
  216. package/src/workflows/testarch/test-review/steps-v/step-01-validate.md +67 -0
  217. package/src/workflows/testarch/test-review/test-review-template.md +390 -0
  218. package/src/workflows/testarch/test-review/validation-report-20260127-095021.md +72 -0
  219. package/src/workflows/testarch/test-review/validation-report-20260127-102401.md +114 -0
  220. package/src/workflows/testarch/test-review/workflow-plan.md +18 -0
  221. package/src/workflows/testarch/test-review/workflow.md +39 -0
  222. package/src/workflows/testarch/test-review/workflow.yaml +48 -0
  223. package/src/workflows/testarch/trace/checklist.md +642 -0
  224. package/src/workflows/testarch/trace/instructions.md +36 -0
  225. package/src/workflows/testarch/trace/steps-c/step-01-load-context.md +80 -0
  226. package/src/workflows/testarch/trace/steps-c/step-02-discover-tests.md +69 -0
  227. package/src/workflows/testarch/trace/steps-c/step-03-map-criteria.md +65 -0
  228. package/src/workflows/testarch/trace/steps-c/step-04-analyze-gaps.md +244 -0
  229. package/src/workflows/testarch/trace/steps-c/step-05-gate-decision.md +232 -0
  230. package/src/workflows/testarch/trace/steps-e/step-01-assess.md +65 -0
  231. package/src/workflows/testarch/trace/steps-e/step-02-apply-edit.md +60 -0
  232. package/src/workflows/testarch/trace/steps-v/step-01-validate.md +67 -0
  233. package/src/workflows/testarch/trace/trace-template.md +675 -0
  234. package/src/workflows/testarch/trace/validation-report-20260127-095021.md +73 -0
  235. package/src/workflows/testarch/trace/validation-report-20260127-102401.md +116 -0
  236. package/src/workflows/testarch/trace/workflow-plan.md +21 -0
  237. package/src/workflows/testarch/trace/workflow.md +39 -0
  238. package/src/workflows/testarch/trace/workflow.yaml +57 -0
  239. package/test/README.md +23 -0
  240. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +27 -0
  241. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +30 -0
  242. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +22 -0
  243. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +20 -0
  244. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +25 -0
  245. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +24 -0
  246. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +25 -0
  247. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +25 -0
  248. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +25 -0
  249. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +31 -0
  250. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +25 -0
  251. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +25 -0
  252. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +25 -0
  253. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +25 -0
  254. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
  255. package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
  256. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +27 -0
  257. package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
  258. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +24 -0
  259. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +27 -0
  260. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +27 -0
  261. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +24 -0
  262. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +29 -0
  263. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +31 -0
  264. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +28 -0
  265. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +28 -0
  266. package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
  267. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +28 -0
  268. package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
  269. package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
  270. package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
  271. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +24 -0
  272. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +22 -0
  273. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +27 -0
  274. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +31 -0
  275. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +22 -0
  276. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +38 -0
  277. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +24 -0
  278. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +31 -0
  279. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +34 -0
  280. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +24 -0
  281. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +24 -0
  282. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +24 -0
  283. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +24 -0
  284. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +23 -0
  285. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +24 -0
  286. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +24 -0
  287. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +24 -0
  288. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +22 -0
  289. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +28 -0
  290. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +30 -0
  291. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +24 -0
  292. package/test/schema/agent.js +491 -0
  293. package/test/test-agent-schema.js +387 -0
  294. package/test/test-installation-components.js +183 -0
  295. package/test/test-knowledge-base.js +199 -0
  296. package/test/unit-test-schema.js +133 -0
  297. package/test/validate-agent-schema.js +110 -0
  298. package/tools/build-docs.js +575 -0
  299. package/tools/fix-doc-links.js +288 -0
  300. package/tools/schema/agent.js +491 -0
  301. package/tools/validate-agent-schema.js +111 -0
  302. package/tools/validate-doc-links.js +371 -0
  303. package/tools/verify-paths.js +100 -0
  304. package/website/README.md +137 -0
  305. package/website/astro.config.mjs +158 -0
  306. package/website/package-lock.json +6856 -0
  307. package/website/package.json +23 -0
  308. package/website/public/favicon.ico +0 -0
  309. package/website/public/img/tea-logo.svg +7 -0
  310. package/website/public/robots.txt +37 -0
  311. package/website/src/components/Banner.astro +59 -0
  312. package/website/src/components/Header.astro +121 -0
  313. package/website/src/components/MobileMenuFooter.astro +53 -0
  314. package/website/src/content/config.ts +6 -0
  315. package/website/src/lib/site-url.js +25 -0
  316. package/website/src/pages/404.astro +11 -0
  317. package/website/src/rehype-base-paths.js +89 -0
  318. package/website/src/rehype-markdown-links.js +117 -0
  319. package/website/src/styles/custom.css +499 -0
  320. package/website/tsconfig.json +9 -0
@@ -0,0 +1,761 @@
1
+ ---
2
+ title: 'How to Set Up CI Pipeline with TEA'
3
+ description: Configure automated test execution with selective testing and burn-in loops using TEA
4
+ ---
5
+
6
+ # How to Set Up CI Pipeline with TEA
7
+
8
+ Use TEA's `ci` workflow to scaffold production-ready CI/CD configuration for automated test execution with selective testing, parallel sharding, and flakiness detection.
9
+
10
+ ## When to Use This
11
+
12
+ - Need to automate test execution in CI/CD
13
+ - Want selective testing (only run affected tests)
14
+ - Need parallel execution for faster feedback
15
+ - Want burn-in loops for flakiness detection
16
+ - Setting up new CI/CD pipeline
17
+ - Optimizing existing CI/CD workflow
18
+
19
+ ## Prerequisites
20
+
21
+ - BMad Method installed
22
+ - TEA agent available
23
+ - Test framework configured (run `framework` first)
24
+ - Tests written (have something to run in CI)
25
+ - CI/CD platform access (GitHub Actions, GitLab CI, etc.)
26
+
27
+ ## Steps
28
+
29
+ ### 1. Load TEA Agent
30
+
31
+ Start a fresh chat and load TEA:
32
+
33
+ ```
34
+ tea
35
+ ```
36
+
37
+ ### 2. Run the CI Workflow
38
+
39
+ ```
40
+ ci
41
+ ```
42
+
43
+ ### 3. Select CI/CD Platform
44
+
45
+ TEA will ask which platform you're using.
46
+
47
+ **Supported Platforms:**
48
+
49
+ - **GitHub Actions** (most common)
50
+ - **GitLab CI**
51
+ - **Circle CI**
52
+ - **Jenkins**
53
+ - **Other** (TEA provides generic template)
54
+
55
+ **Example:**
56
+
57
+ ```
58
+ GitHub Actions
59
+ ```
60
+
61
+ ### 4. Configure Test Strategy
62
+
63
+ TEA will ask about your test execution strategy.
64
+
65
+ #### Repository Structure
66
+
67
+ **Question:** "What's your repository structure?"
68
+
69
+ **Options:**
70
+
71
+ - **Single app** - One application in root
72
+ - **Monorepo** - Multiple apps/packages
73
+ - **Monorepo with affected detection** - Only test changed packages
74
+
75
+ **Example:**
76
+
77
+ ```
78
+ Monorepo with multiple apps
79
+ Need selective testing for changed packages only
80
+ ```
81
+
82
+ #### Parallel Execution
83
+
84
+ **Question:** "Want to shard tests for parallel execution?"
85
+
86
+ **Options:**
87
+
88
+ - **No sharding** - Run tests sequentially
89
+ - **Shard by workers** - Split across N workers
90
+ - **Shard by file** - Each file runs in parallel
91
+
92
+ **Example:**
93
+
94
+ ```
95
+ Yes, shard across 4 workers for faster execution
96
+ ```
97
+
98
+ **Why Shard?**
99
+
100
+ - **4 workers:** 20-minute suite → 5 minutes
101
+ - **Better resource usage:** Utilize CI runners efficiently
102
+ - **Faster feedback:** Developers wait less
103
+
104
+ #### Burn-In Loops
105
+
106
+ **Question:** "Want burn-in loops for flakiness detection?"
107
+
108
+ **Options:**
109
+
110
+ - **No burn-in** - Run tests once
111
+ - **PR burn-in** - Run tests multiple times on PRs
112
+ - **Nightly burn-in** - Dedicated flakiness detection job
113
+
114
+ **Example:**
115
+
116
+ ```
117
+ Yes, run tests 5 times on PRs to catch flaky tests early
118
+ ```
119
+
120
+ **Why Burn-In?**
121
+
122
+ - Catches flaky tests before they merge
123
+ - Prevents intermittent CI failures
124
+ - Builds confidence in test suite
125
+
126
+ ### 5. Review Generated CI Configuration
127
+
128
+ TEA generates platform-specific workflow files.
129
+
130
+ #### GitHub Actions (`.github/workflows/test.yml`):
131
+
132
+ ```yaml
133
+ name: Test Suite
134
+
135
+ on:
136
+ pull_request:
137
+ push:
138
+ branches: [main, develop]
139
+ schedule:
140
+ - cron: '0 2 * * *' # Nightly at 2 AM
141
+
142
+ jobs:
143
+ # Main test job with sharding
144
+ test:
145
+ name: Test (Shard ${{ matrix.shard }})
146
+ runs-on: ubuntu-latest
147
+ timeout-minutes: 15
148
+
149
+ strategy:
150
+ fail-fast: false
151
+ matrix:
152
+ shard: [1, 2, 3, 4]
153
+
154
+ steps:
155
+ - name: Checkout code
156
+ uses: actions/checkout@v4
157
+
158
+ - name: Setup Node.js
159
+ uses: actions/setup-node@v4
160
+ with:
161
+ node-version-file: '.nvmrc'
162
+ cache: 'npm'
163
+
164
+ - name: Install dependencies
165
+ run: npm ci
166
+
167
+ - name: Install Playwright browsers
168
+ run: npx playwright install --with-deps
169
+
170
+ - name: Run tests
171
+ run: npx playwright test --shard=${{ matrix.shard }}/4
172
+
173
+ - name: Upload test results
174
+ if: always()
175
+ uses: actions/upload-artifact@v4
176
+ with:
177
+ name: test-results-${{ matrix.shard }}
178
+ path: test-results/
179
+ retention-days: 7
180
+
181
+ - name: Upload test report
182
+ if: always()
183
+ uses: actions/upload-artifact@v4
184
+ with:
185
+ name: playwright-report-${{ matrix.shard }}
186
+ path: playwright-report/
187
+ retention-days: 7
188
+
189
+ # Burn-in job for flakiness detection (PRs only)
190
+ burn-in:
191
+ name: Burn-In (Flakiness Detection)
192
+ runs-on: ubuntu-latest
193
+ if: github.event_name == 'pull_request'
194
+ timeout-minutes: 30
195
+
196
+ steps:
197
+ - name: Checkout code
198
+ uses: actions/checkout@v4
199
+
200
+ - name: Setup Node.js
201
+ uses: actions/setup-node@v4
202
+ with:
203
+ node-version-file: '.nvmrc'
204
+ cache: 'npm'
205
+
206
+ - name: Install dependencies
207
+ run: npm ci
208
+
209
+ - name: Install Playwright browsers
210
+ run: npx playwright install --with-deps
211
+
212
+ - name: Run burn-in loop
213
+ run: |
214
+ for i in {1..5}; do
215
+ echo "=== Burn-in iteration $i/5 ==="
216
+ npx playwright test --grep-invert "@skip" || exit 1
217
+ done
218
+
219
+ - name: Upload burn-in results
220
+ if: failure()
221
+ uses: actions/upload-artifact@v4
222
+ with:
223
+ name: burn-in-failures
224
+ path: test-results/
225
+
226
+ # Selective testing (changed files only)
227
+ selective:
228
+ name: Selective Tests
229
+ runs-on: ubuntu-latest
230
+ if: github.event_name == 'pull_request'
231
+
232
+ steps:
233
+ - name: Checkout code
234
+ uses: actions/checkout@v4
235
+ with:
236
+ fetch-depth: 0 # Full history for git diff
237
+
238
+ - name: Setup Node.js
239
+ uses: actions/setup-node@v4
240
+ with:
241
+ node-version-file: '.nvmrc'
242
+ cache: 'npm'
243
+
244
+ - name: Install dependencies
245
+ run: npm ci
246
+
247
+ - name: Install Playwright browsers
248
+ run: npx playwright install --with-deps
249
+
250
+ - name: Run selective tests
251
+ run: npm run test:changed
252
+ ```
253
+
254
+ #### GitLab CI (`.gitlab-ci.yml`):
255
+
256
+ ```yaml
257
+ variables:
258
+ NODE_VERSION: '18'
259
+
260
+ stages:
261
+ - test
262
+ - burn-in
263
+
264
+ # Test job with parallel execution
265
+ test:
266
+ stage: test
267
+ image: node:$NODE_VERSION
268
+ parallel: 4
269
+ script:
270
+ - npm ci
271
+ - npx playwright install --with-deps
272
+ - npx playwright test --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL
273
+ artifacts:
274
+ when: always
275
+ paths:
276
+ - test-results/
277
+ - playwright-report/
278
+ expire_in: 7 days
279
+ rules:
280
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
281
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
282
+
283
+ # Burn-in job for flakiness detection
284
+ burn-in:
285
+ stage: burn-in
286
+ image: node:$NODE_VERSION
287
+ script:
288
+ - npm ci
289
+ - npx playwright install --with-deps
290
+ - |
291
+ for i in {1..5}; do
292
+ echo "=== Burn-in iteration $i/5 ==="
293
+ npx playwright test || exit 1
294
+ done
295
+ artifacts:
296
+ when: on_failure
297
+ paths:
298
+ - test-results/
299
+ rules:
300
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
301
+ ```
302
+
303
+ #### Burn-In Testing
304
+
305
+ **Option 1: Classic Burn-In (Playwright Built-In)**
306
+
307
+ ```json
308
+ {
309
+ "scripts": {
310
+ "test": "playwright test",
311
+ "test:burn-in": "playwright test --repeat-each=5 --retries=0"
312
+ }
313
+ }
314
+ ```
315
+
316
+ **How it works:**
317
+
318
+ - Runs every test 5 times
319
+ - Fails if any iteration fails
320
+ - Detects flakiness before merge
321
+
322
+ **Use when:** Small test suite, want to run everything multiple times
323
+
324
+ ---
325
+
326
+ **Option 2: Smart Burn-In (Playwright Utils)**
327
+
328
+ If `tea_use_playwright_utils: true`:
329
+
330
+ **scripts/burn-in-changed.ts:**
331
+
332
+ ```typescript
333
+ import { runBurnIn } from '@seontechnologies/playwright-utils/burn-in';
334
+
335
+ await runBurnIn({
336
+ configPath: 'playwright.burn-in.config.ts',
337
+ baseBranch: 'main',
338
+ });
339
+ ```
340
+
341
+ **playwright.burn-in.config.ts:**
342
+
343
+ ```typescript
344
+ import type { BurnInConfig } from '@seontechnologies/playwright-utils/burn-in';
345
+
346
+ const config: BurnInConfig = {
347
+ skipBurnInPatterns: ['**/config/**', '**/*.md', '**/*types*'],
348
+ burnInTestPercentage: 0.3,
349
+ burnIn: { repeatEach: 5, retries: 0 },
350
+ };
351
+
352
+ export default config;
353
+ ```
354
+
355
+ **package.json:**
356
+
357
+ ```json
358
+ {
359
+ "scripts": {
360
+ "test:burn-in": "tsx scripts/burn-in-changed.ts"
361
+ }
362
+ }
363
+ ```
364
+
365
+ **How it works:**
366
+
367
+ - Git diff analysis (only affected tests)
368
+ - Smart filtering (skip configs, docs, types)
369
+ - Volume control (run 30% of affected tests)
370
+ - Each test runs 5 times
371
+
372
+ **Use when:** Large test suite, want intelligent selection
373
+
374
+ ---
375
+
376
+ **Comparison:**
377
+
378
+ | Feature | Classic Burn-In | Smart Burn-In (PW-Utils) |
379
+ | -------------- | ---------------------------------- | ----------------------------------- |
380
+ | Changed 1 file | Runs all 500 tests × 5 = 2500 runs | Runs 3 affected tests × 5 = 15 runs |
381
+ | Config change | Runs all tests | Skips (no tests affected) |
382
+ | Type change | Runs all tests | Skips (no runtime impact) |
383
+ | Setup | Zero config | Requires config file |
384
+
385
+ **Recommendation:** Start with classic (simple), upgrade to smart (faster) when suite grows.
386
+
387
+ ### 6. Configure Secrets
388
+
389
+ TEA provides a secrets checklist.
390
+
391
+ **Required Secrets** (add to CI/CD platform):
392
+
393
+ ```markdown
394
+ ## GitHub Actions Secrets
395
+
396
+ Repository Settings → Secrets and variables → Actions
397
+
398
+ ### Required
399
+
400
+ - None (tests run without external auth)
401
+
402
+ ### Optional
403
+
404
+ - `TEST_USER_EMAIL` - Test user credentials
405
+ - `TEST_USER_PASSWORD` - Test user password
406
+ - `API_BASE_URL` - API endpoint for tests
407
+ - `DATABASE_URL` - Test database (if needed)
408
+ ```
409
+
410
+ **How to Add Secrets:**
411
+
412
+ **GitHub Actions:**
413
+
414
+ 1. Go to repo Settings → Secrets → Actions
415
+ 2. Click "New repository secret"
416
+ 3. Add name and value
417
+ 4. Use in workflow: `${{ secrets.TEST_USER_EMAIL }}`
418
+
419
+ **GitLab CI:**
420
+
421
+ 1. Go to Project Settings → CI/CD → Variables
422
+ 2. Add variable name and value
423
+ 3. Use in workflow: `$TEST_USER_EMAIL`
424
+
425
+ ### 7. Test the CI Pipeline
426
+
427
+ #### Push and Verify
428
+
429
+ **Commit the workflow file:**
430
+
431
+ ```bash
432
+ git add .github/workflows/test.yml
433
+ git commit -m "ci: add automated test pipeline"
434
+ git push
435
+ ```
436
+
437
+ **Watch the CI run:**
438
+
439
+ - GitHub Actions: Go to Actions tab
440
+ - GitLab CI: Go to CI/CD → Pipelines
441
+ - Circle CI: Go to Pipelines
442
+
443
+ **Expected Result:**
444
+
445
+ ```
446
+ ✓ test (shard 1/4) - 3m 24s
447
+ ✓ test (shard 2/4) - 3m 18s
448
+ ✓ test (shard 3/4) - 3m 31s
449
+ ✓ test (shard 4/4) - 3m 15s
450
+ ✓ burn-in - 15m 42s
451
+ ```
452
+
453
+ #### Test on Pull Request
454
+
455
+ **Create test PR:**
456
+
457
+ ```bash
458
+ git checkout -b test-ci-setup
459
+ echo "# Test" > test.md
460
+ git add test.md
461
+ git commit -m "test: verify CI setup"
462
+ git push -u origin test-ci-setup
463
+ ```
464
+
465
+ **Open PR and verify:**
466
+
467
+ - Tests run automatically
468
+ - Burn-in runs (if configured for PRs)
469
+ - Selective tests run (if applicable)
470
+ - All checks pass ✓
471
+
472
+ ## What You Get
473
+
474
+ ### Automated Test Execution
475
+
476
+ - **On every PR** - Catch issues before merge
477
+ - **On every push to main** - Protect production
478
+ - **Nightly** - Comprehensive regression testing
479
+
480
+ ### Parallel Execution
481
+
482
+ - **4x faster feedback** - Shard across multiple workers
483
+ - **Efficient resource usage** - Maximize CI runner utilization
484
+
485
+ ### Selective Testing
486
+
487
+ - **Run only affected tests** - Git diff-based selection
488
+ - **Faster PR feedback** - Don't run entire suite every time
489
+
490
+ ### Flakiness Detection
491
+
492
+ - **Burn-in loops** - Run tests multiple times
493
+ - **Early detection** - Catch flaky tests in PRs
494
+ - **Confidence building** - Know tests are reliable
495
+
496
+ ### Artifact Collection
497
+
498
+ - **Test results** - Saved for 7 days
499
+ - **Screenshots** - On test failures
500
+ - **Videos** - Full test recordings
501
+ - **Traces** - Playwright trace files for debugging
502
+
503
+ ## Tips
504
+
505
+ ### Start Simple, Add Complexity
506
+
507
+ **Week 1:** Basic pipeline
508
+
509
+ ```yaml
510
+ - Run tests on PR
511
+ - Single worker (no sharding)
512
+ ```
513
+
514
+ **Week 2:** Add parallelization
515
+
516
+ ```yaml
517
+ - Shard across 4 workers
518
+ - Faster feedback
519
+ ```
520
+
521
+ **Week 3:** Add selective testing
522
+
523
+ ```yaml
524
+ - Git diff-based selection
525
+ - Skip unaffected tests
526
+ ```
527
+
528
+ **Week 4:** Add burn-in
529
+
530
+ ```yaml
531
+ - Detect flaky tests
532
+ - Run on PR and nightly
533
+ ```
534
+
535
+ ### Optimize for Feedback Speed
536
+
537
+ **Goal:** PR feedback in < 5 minutes
538
+
539
+ **Strategies:**
540
+
541
+ - Shard tests across workers (4 workers = 4x faster)
542
+ - Use selective testing (run 20% of tests, not 100%)
543
+ - Cache dependencies (`actions/cache`, `cache: 'npm'`)
544
+ - Run smoke tests first, full suite after
545
+
546
+ **Example fast workflow:**
547
+
548
+ ```yaml
549
+ jobs:
550
+ smoke:
551
+ # Run critical path tests (2 min)
552
+ run: npm run test:smoke
553
+
554
+ full:
555
+ needs: smoke
556
+ # Run full suite only if smoke passes (10 min)
557
+ run: npm test
558
+ ```
559
+
560
+ ### Use Test Tags
561
+
562
+ Tag tests for selective execution:
563
+
564
+ ```typescript
565
+ // Critical path tests (always run)
566
+ test('@critical should login', async ({ page }) => {});
567
+
568
+ // Smoke tests (run first)
569
+ test('@smoke should load homepage', async ({ page }) => {});
570
+
571
+ // Slow tests (run nightly only)
572
+ test('@slow should process large file', async ({ page }) => {});
573
+
574
+ // Skip in CI
575
+ test('@local-only should use local service', async ({ page }) => {});
576
+ ```
577
+
578
+ **In CI:**
579
+
580
+ ```bash
581
+ # PR: Run critical and smoke only
582
+ npx playwright test --grep "@critical|@smoke"
583
+
584
+ # Nightly: Run everything except local-only
585
+ npx playwright test --grep-invert "@local-only"
586
+ ```
587
+
588
+ ### Monitor CI Performance
589
+
590
+ Track metrics:
591
+
592
+ ```markdown
593
+ ## CI Metrics
594
+
595
+ | Metric | Target | Current | Status |
596
+ | ---------------- | -------- | ------- | ------ |
597
+ | PR feedback time | < 5 min | 3m 24s | ✅ |
598
+ | Full suite time | < 15 min | 12m 18s | ✅ |
599
+ | Flakiness rate | < 1% | 0.3% | ✅ |
600
+ | CI cost/month | < $100 | $75 | ✅ |
601
+ ```
602
+
603
+ ### Handle Flaky Tests
604
+
605
+ When burn-in detects flakiness:
606
+
607
+ 1. **Quarantine flaky test:**
608
+
609
+ ```typescript
610
+ test.skip('flaky test - investigating', async ({ page }) => {
611
+ // TODO: Fix flakiness
612
+ });
613
+ ```
614
+
615
+ 2. **Investigate with trace viewer:**
616
+
617
+ ```bash
618
+ npx playwright show-trace test-results/trace.zip
619
+ ```
620
+
621
+ 3. **Fix root cause:**
622
+
623
+ - Add network-first patterns
624
+ - Remove hard waits
625
+ - Fix race conditions
626
+
627
+ 4. **Verify fix:**
628
+
629
+ ```bash
630
+ npm run test:burn-in -- tests/flaky.spec.ts --repeat 20
631
+ ```
632
+
633
+ ### Secure Secrets
634
+
635
+ **Don't commit secrets to code:**
636
+
637
+ ```yaml
638
+ # ❌ Bad
639
+ - run: API_KEY=sk-1234... npm test
640
+
641
+ # ✅ Good
642
+ - run: npm test
643
+ env:
644
+ API_KEY: ${{ secrets.API_KEY }}
645
+ ```
646
+
647
+ **Use environment-specific secrets:**
648
+
649
+ - `STAGING_API_URL`
650
+ - `PROD_API_URL`
651
+ - `TEST_API_URL`
652
+
653
+ ### Cache Aggressively
654
+
655
+ Speed up CI with caching:
656
+
657
+ ```yaml
658
+ # Cache node_modules
659
+ - uses: actions/setup-node@v4
660
+ with:
661
+ cache: 'npm'
662
+
663
+ # Cache Playwright browsers
664
+ - name: Cache Playwright browsers
665
+ uses: actions/cache@v4
666
+ with:
667
+ path: ~/.cache/ms-playwright
668
+ key: playwright-${{ hashFiles('package-lock.json') }}
669
+ ```
670
+
671
+ ## Common Issues
672
+
673
+ ### Tests Pass Locally, Fail in CI
674
+
675
+ **Symptoms:**
676
+
677
+ - Green locally, red in CI
678
+ - "Works on my machine"
679
+
680
+ **Common Causes:**
681
+
682
+ - Different Node version
683
+ - Different browser version
684
+ - Missing environment variables
685
+ - Timezone differences
686
+ - Race conditions (CI slower)
687
+
688
+ **Solutions:**
689
+
690
+ ```yaml
691
+ # Pin Node version
692
+ - uses: actions/setup-node@v4
693
+ with:
694
+ node-version-file: '.nvmrc'
695
+
696
+ # Pin browser versions
697
+ - run: npx playwright install --with-deps chromium@1.40.0
698
+
699
+ # Set timezone
700
+ env:
701
+ TZ: 'America/New_York'
702
+ ```
703
+
704
+ ### CI Takes Too Long
705
+
706
+ **Problem:** CI takes 30+ minutes, developers wait too long.
707
+
708
+ **Solutions:**
709
+
710
+ 1. **Shard tests:** 4 workers = 4x faster
711
+ 2. **Selective testing:** Only run affected tests on PR
712
+ 3. **Smoke tests first:** Run critical path (2 min), full suite after
713
+ 4. **Cache dependencies:** `npm ci` with cache
714
+ 5. **Optimize tests:** Remove slow tests, hard waits
715
+
716
+ ### Burn-In Always Fails
717
+
718
+ **Problem:** Burn-in job fails every time.
719
+
720
+ **Cause:** Test suite is flaky.
721
+
722
+ **Solution:**
723
+
724
+ 1. Identify flaky tests (check which iteration fails)
725
+ 2. Fix flaky tests using `test-review`
726
+ 3. Re-run burn-in on specific files:
727
+
728
+ ```bash
729
+ npm run test:burn-in tests/flaky.spec.ts
730
+ ```
731
+
732
+ ### Out of CI Minutes
733
+
734
+ **Problem:** Using too many CI minutes, hitting plan limit.
735
+
736
+ **Solutions:**
737
+
738
+ 1. Run full suite only on main branch
739
+ 2. Use selective testing on PRs
740
+ 3. Run expensive tests nightly only
741
+ 4. Self-host runners (for GitHub Actions)
742
+
743
+ ## Related Guides
744
+
745
+ - [How to Set Up Test Framework](/docs/how-to/workflows/setup-test-framework.md) - Run first
746
+ - [How to Run Test Review](/docs/how-to/workflows/run-test-review.md) - Audit CI tests
747
+ - [Integrate Playwright Utils](/docs/how-to/customization/integrate-playwright-utils.md) - Burn-in utility
748
+
749
+ ## Understanding the Concepts
750
+
751
+ - [Test Quality Standards](/docs/explanation/test-quality-standards.md) - Why determinism matters
752
+ - [Network-First Patterns](/docs/explanation/network-first-patterns.md) - Avoid CI flakiness
753
+
754
+ ## Reference
755
+
756
+ - [Command: \*ci](/docs/reference/commands.md#ci) - Full command reference
757
+ - [TEA Configuration](/docs/reference/configuration.md) - CI-related config options
758
+
759
+ ---
760
+
761
+ Generated with [BMad Method](https://bmad-method.org) - TEA (Test Architect)