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,128 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, religion, or sexual identity
10
+ and orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
19
+
20
+ * Demonstrating empathy and kindness toward other people
21
+ * Being respectful of differing opinions, viewpoints, and experiences
22
+ * Giving and gracefully accepting constructive feedback
23
+ * Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ * Focusing on what is best not just for us as individuals, but for the
26
+ overall community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ * The use of sexualized language or imagery, and sexual attention or
31
+ advances of any kind
32
+ * Trolling, insulting or derogatory comments, and personal or political attacks
33
+ * Public or private harassment
34
+ * Publishing others' private information, such as a physical or email
35
+ address, without their explicit permission
36
+ * Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official e-mail address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
58
+
59
+ ## Enforcement
60
+
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement at
63
+ the official BMAD Discord server (<https://discord.com/invite/gk8jAdXWmj>) - DM a moderator or flag a post.
64
+ All complaints will be reviewed and investigated promptly and fairly.
65
+
66
+ All community leaders are obligated to respect the privacy and security of the
67
+ reporter of any incident.
68
+
69
+ ## Enforcement Guidelines
70
+
71
+ Community leaders will follow these Community Impact Guidelines in determining
72
+ the consequences for any action they deem in violation of this Code of Conduct:
73
+
74
+ ### 1. Correction
75
+
76
+ **Community Impact**: Use of inappropriate language or other behavior deemed
77
+ unprofessional or unwelcome in the community.
78
+
79
+ **Consequence**: A private, written warning from community leaders, providing
80
+ clarity around the nature of the violation and an explanation of why the
81
+ behavior was inappropriate. A public apology may be requested.
82
+
83
+ ### 2. Warning
84
+
85
+ **Community Impact**: A violation through a single incident or series
86
+ of actions.
87
+
88
+ **Consequence**: A warning with consequences for continued behavior. No
89
+ interaction with the people involved, including unsolicited interaction with
90
+ those enforcing the Code of Conduct, for a specified period of time. This
91
+ includes avoiding interactions in community spaces as well as external channels
92
+ like social media. Violating these terms may lead to a temporary or
93
+ permanent ban.
94
+
95
+ ### 3. Temporary Ban
96
+
97
+ **Community Impact**: A serious violation of community standards, including
98
+ sustained inappropriate behavior.
99
+
100
+ **Consequence**: A temporary ban from any sort of interaction or public
101
+ communication with the community for a specified period of time. No public or
102
+ private interaction with the people involved, including unsolicited interaction
103
+ with those enforcing the Code of Conduct, is allowed during this period.
104
+ Violating these terms may lead to a permanent ban.
105
+
106
+ ### 4. Permanent Ban
107
+
108
+ **Community Impact**: Demonstrating a pattern of violation of community
109
+ standards, including sustained inappropriate behavior, harassment of an
110
+ individual, or aggression toward or disparagement of classes of individuals.
111
+
112
+ **Consequence**: A permanent ban from any sort of public interaction within
113
+ the community.
114
+
115
+ ## Attribution
116
+
117
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
+ version 2.0, available at
119
+ <https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.
120
+
121
+ Community Impact Guidelines were inspired by [Mozilla's code of conduct
122
+ enforcement ladder](https://github.com/mozilla/diversity).
123
+
124
+ [homepage]: https://www.contributor-covenant.org
125
+
126
+ For answers to common questions about this code of conduct, see the FAQ at
127
+ <https://www.contributor-covenant.org/faq>. Translations are available at
128
+ <https://www.contributor-covenant.org/translations>.
@@ -0,0 +1,15 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4
+ patreon: # Replace with a single Patreon username
5
+ open_collective: # Replace with a single Open Collective username
6
+ ko_fi: # Replace with a single Ko-fi username
7
+ tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8
+ community_bridge: # Replace with a single Community Bridge project_name e.g., cloud-foundry
9
+ liberapay: # Replace with a single Liberapay username
10
+ issuehunt: # Replace with a single IssueHunt username
11
+ lfx_crowdfunding: # Replace with a single LFX Crowdfunding project_name e.g., cloud-foundry
12
+ polar: # Replace with a single Polar username
13
+ buy_me_a_coffee: bmad
14
+ thanks_dev: # Replace with a single thanks.dev username
15
+ custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
@@ -0,0 +1,11 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: 📚 Documentation
4
+ url: https://test-architect.bmad-method.org
5
+ about: Check the docs first — tutorials, guides, and reference
6
+ - name: 💬 GitHub Discussions
7
+ url: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/discussions
8
+ about: Ask questions and discuss TEA usage before opening an issue
9
+ - name: 🐛 Troubleshooting Guide
10
+ url: https://test-architect.bmad-method.org/reference/troubleshooting
11
+ about: Common issues and solutions
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Suggest an idea or new feature for TEA
4
+ title: ''
5
+ labels: 'enhancement'
6
+ assignees: ''
7
+ ---
8
+
9
+ **Describe your idea**
10
+ A clear and concise description of what you'd like to see added or changed in TEA.
11
+
12
+ **Why is this needed?**
13
+ Explain the problem this solves or the benefit it brings to:
14
+
15
+ - TEA users
16
+ - Test automation practices
17
+ - Quality engineering workflows
18
+ - Testing best practices
19
+
20
+ **Which component would this affect?**
21
+ Please check all that apply:
22
+
23
+ - [ ] Workflows (test-design, automate, atdd, test-review, trace, nfr-assess, ci, framework)
24
+ - [ ] Knowledge Base (new testing patterns or fragments)
25
+ - [ ] Subprocess Architecture (parallel execution)
26
+ - [ ] Configuration (module variables or settings)
27
+ - [ ] Documentation (guides, tutorials, or references)
28
+ - [ ] Integrations (Playwright Utils, MCP, or other tools)
29
+ - [ ] Quality Gates (risk assessment, traceability, scoring)
30
+ - [ ] Other (please specify)
31
+
32
+ **How should it work?**
33
+ Describe your proposed solution:
34
+
35
+ 1. What would the user experience look like?
36
+ 2. What workflow would be affected?
37
+ 3. What knowledge base updates would be needed?
38
+ 4. Any implementation ideas?
39
+
40
+ **Use Case Example**
41
+ Provide a concrete example of how this feature would be used:
42
+
43
+ ```
44
+ Example scenario:
45
+ User wants to [specific goal]
46
+ Currently: [what happens now]
47
+ With this feature: [what would happen]
48
+ ```
49
+
50
+ **Alternatives considered**
51
+ Have you considered any alternative solutions or workarounds?
52
+
53
+ **Impact & Priority**
54
+ How important is this feature?
55
+
56
+ - [ ] Critical - blocking adoption or major workflow
57
+ - [ ] High - significantly improves user experience
58
+ - [ ] Medium - nice to have, would help some users
59
+ - [ ] Low - minor improvement or edge case
60
+
61
+ **Contribution**
62
+ If you'd like to contribute, please indicate you're working on this or link to your PR. Please review [CONTRIBUTING.md](../../CONTRIBUTING.md) — contributions are always welcome!
63
+
64
+ **Additional context**
65
+ Add any other context, screenshots, or links that help explain your idea:
66
+
67
+ - Related workflows or knowledge fragments
68
+ - Testing frameworks this would support
69
+ - Industry standards or best practices this aligns with
70
+ - Links to similar features in other tools
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Report a problem or something that's not working with TEA
4
+ title: ''
5
+ labels: 'bug'
6
+ assignees: ''
7
+ ---
8
+
9
+ **Describe the bug**
10
+ A clear and concise description of what the bug is.
11
+
12
+ **Steps to reproduce**
13
+
14
+ 1. What TEA workflow were you running? (e.g., `test-design`, `automate`, `atdd`)
15
+ 2. What steps can recreate the issue?
16
+ 3. What was the exact command or trigger used?
17
+
18
+ **Expected behavior**
19
+ A clear and concise description of what you expected to happen.
20
+
21
+ **Environment**
22
+
23
+ - **TEA Version**: [e.g., 1.0.0]
24
+ - **BMAD Method Version**: [e.g., 7.0.0]
25
+ - **Node Version**: [output of `node --version`]
26
+ - **Operating System**: [e.g., macOS 14.0, Ubuntu 22.04, Windows 11]
27
+ - **Agentic IDE**: [e.g., Claude Code, Windsurf, Cursor]
28
+ - **Model Used**: [e.g., Claude Sonnet 4.5, GPT-4]
29
+
30
+ **Workflow Details (if applicable)**
31
+
32
+ - **Workflow**: [e.g., test-design, automate, atdd, test-review, trace, nfr-assess, ci, framework]
33
+ - **Test Framework**: [e.g., Playwright, Cypress]
34
+ - **Playwright Utils Enabled**: [yes/no]
35
+ - **MCP Enhancements Enabled**: [yes/no]
36
+
37
+ **Screenshots or output**
38
+ If applicable, add:
39
+
40
+ - Screenshots of the issue
41
+ - Console output or error messages
42
+ - Generated test files or reports
43
+
44
+ **Additional context**
45
+ Add any other context about the problem:
46
+
47
+ - Project type (greenfield/brownfield)
48
+ - Codebase size
49
+ - Any custom TEA configuration
50
+ - Related workflows or knowledge fragments
51
+
52
+ **Troubleshooting Checklist**
53
+ Before submitting, please check:
54
+
55
+ - [ ] I've read the [Troubleshooting Guide](https://test-architect.bmad-method.org/reference/troubleshooting)
56
+ - [ ] I've verified TEA is installed: `ls -la _bmad/tea/`
57
+ - [ ] I'm using the correct command namespace: `/bmad:tea:*` not `/bmad:bmm:tea:*`
58
+ - [ ] I've checked for existing issues on GitHub
59
+
60
+ **Contribution**
61
+ If you'd like to contribute a fix, please indicate you're working on it or link to your PR. See [CONTRIBUTING.md](../../CONTRIBUTING.md) — contributions are always welcome!
@@ -0,0 +1,66 @@
1
+ name: Deploy Documentation
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ paths:
8
+ - "docs/**"
9
+ - "website/**"
10
+ - "tools/build-docs.js"
11
+ - ".github/workflows/docs.yaml"
12
+ workflow_dispatch:
13
+
14
+ permissions:
15
+ contents: read
16
+ pages: write
17
+ id-token: write
18
+
19
+ concurrency:
20
+ group: "pages"
21
+ cancel-in-progress: false
22
+
23
+ jobs:
24
+ build:
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - name: Checkout repository
28
+ uses: actions/checkout@v4
29
+ with:
30
+ fetch-depth: 0
31
+
32
+ - name: Setup Node.js
33
+ uses: actions/setup-node@v4
34
+ with:
35
+ node-version: "20"
36
+ cache: "npm"
37
+
38
+ - name: Install root dependencies
39
+ run: npm ci
40
+
41
+ - name: Install website dependencies
42
+ run: cd website && npm ci
43
+
44
+ - name: Build documentation
45
+ env:
46
+ # Let astro.config.mjs compute the correct URL from GITHUB_REPOSITORY
47
+ # This will automatically use: https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise
48
+ # To use custom domain, set SITE_URL repository variable to: https://test-architect.bmad-method.org
49
+ SITE_URL: ${{ vars.SITE_URL }}
50
+ run: npm run docs:build
51
+
52
+ - name: Upload artifact
53
+ uses: actions/upload-pages-artifact@v3
54
+ with:
55
+ path: build/site
56
+
57
+ deploy:
58
+ environment:
59
+ name: github-pages
60
+ url: ${{ steps.deployment.outputs.page_url }}
61
+ runs-on: ubuntu-latest
62
+ needs: build
63
+ steps:
64
+ - name: Deploy to GitHub Pages
65
+ id: deployment
66
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,195 @@
1
+ name: Manual Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version_bump:
7
+ description: Version bump type
8
+ required: true
9
+ default: beta
10
+ type: choice
11
+ options:
12
+ - beta
13
+ - alpha
14
+ - patch
15
+ - minor
16
+ - major
17
+
18
+ permissions:
19
+ contents: write
20
+ packages: write
21
+
22
+ jobs:
23
+ release:
24
+ runs-on: ubuntu-latest
25
+ steps:
26
+ - name: Checkout
27
+ uses: actions/checkout@v4
28
+ with:
29
+ fetch-depth: 0
30
+ token: ${{ secrets.GITHUB_TOKEN }}
31
+
32
+ - name: Setup Node.js
33
+ uses: actions/setup-node@v4
34
+ with:
35
+ node-version-file: ".nvmrc"
36
+ cache: npm
37
+ registry-url: https://registry.npmjs.org
38
+
39
+ - name: Install dependencies
40
+ run: npm ci
41
+
42
+ - name: Run tests and validation
43
+ run: |
44
+ npm run validate:schemas
45
+ npm run format:check
46
+ npm run lint
47
+
48
+ - name: Configure Git
49
+ run: |
50
+ git config user.name "github-actions[bot]"
51
+ git config user.email "github-actions[bot]@users.noreply.github.com"
52
+
53
+ - name: Bump version
54
+ run: |
55
+ case "${{ github.event.inputs.version_bump }}" in
56
+ alpha|beta) npm version prerelease --no-git-tag-version --preid=${{ github.event.inputs.version_bump }} ;;
57
+ *) npm version ${{ github.event.inputs.version_bump }} --no-git-tag-version ;;
58
+ esac
59
+
60
+ - name: Get new version and previous tag
61
+ id: version
62
+ run: |
63
+ echo "new_version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
64
+ echo "previous_tag=$(git describe --tags --abbrev=0 2>/dev/null || echo 'v0.0.0')" >> $GITHUB_OUTPUT
65
+
66
+ - name: Commit version bump
67
+ run: |
68
+ git add .
69
+ git commit -m "release: bump to v${{ steps.version.outputs.new_version }}"
70
+
71
+ - name: Generate release notes
72
+ id: release_notes
73
+ run: |
74
+ # Get commits since last tag (or all commits if no tags exist)
75
+ if [ "${{ steps.version.outputs.previous_tag }}" = "v0.0.0" ]; then
76
+ COMMITS=$(git log --pretty=format:"- %s" --reverse)
77
+ else
78
+ COMMITS=$(git log ${{ steps.version.outputs.previous_tag }}..HEAD --pretty=format:"- %s" --reverse)
79
+ fi
80
+
81
+ # Categorize commits
82
+ FEATURES=$(echo "$COMMITS" | grep -E "^- (feat|Feature)" || true)
83
+ FIXES=$(echo "$COMMITS" | grep -E "^- (fix|Fix)" || true)
84
+ CHORES=$(echo "$COMMITS" | grep -E "^- (chore|Chore)" || true)
85
+ OTHERS=$(echo "$COMMITS" | grep -v -E "^- (feat|Feature|fix|Fix|chore|Chore|release:|Release:)" || true)
86
+
87
+ # Build release notes
88
+ cat > release_notes.md << 'EOF'
89
+ ## 🚀 What's New in v${{ steps.version.outputs.new_version }}
90
+
91
+ EOF
92
+
93
+ if [ ! -z "$FEATURES" ]; then
94
+ echo "### ✨ New Features" >> release_notes.md
95
+ echo "$FEATURES" >> release_notes.md
96
+ echo "" >> release_notes.md
97
+ fi
98
+
99
+ if [ ! -z "$FIXES" ]; then
100
+ echo "### 🐛 Bug Fixes" >> release_notes.md
101
+ echo "$FIXES" >> release_notes.md
102
+ echo "" >> release_notes.md
103
+ fi
104
+
105
+ if [ ! -z "$OTHERS" ]; then
106
+ echo "### 📦 Other Changes" >> release_notes.md
107
+ echo "$OTHERS" >> release_notes.md
108
+ echo "" >> release_notes.md
109
+ fi
110
+
111
+ if [ ! -z "$CHORES" ]; then
112
+ echo "### 🔧 Maintenance" >> release_notes.md
113
+ echo "$CHORES" >> release_notes.md
114
+ echo "" >> release_notes.md
115
+ fi
116
+
117
+ cat >> release_notes.md << 'EOF'
118
+
119
+ ## 📦 Installation
120
+
121
+ ```bash
122
+ npx bmad-method install
123
+ # Select "Test Architect" from module menu
124
+ ```
125
+ EOF
126
+
127
+ # Add changelog link only if there was a previous tag
128
+ if [ "${{ steps.version.outputs.previous_tag }}" != "v0.0.0" ]; then
129
+ echo "" >> release_notes.md
130
+ echo "**Full Changelog**: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/compare/${{ steps.version.outputs.previous_tag }}...v${{ steps.version.outputs.new_version }}" >> release_notes.md
131
+ fi
132
+
133
+ # Output for GitHub Actions
134
+ echo "RELEASE_NOTES<<EOF" >> $GITHUB_OUTPUT
135
+ cat release_notes.md >> $GITHUB_OUTPUT
136
+ echo "EOF" >> $GITHUB_OUTPUT
137
+
138
+ - name: Create and push tag
139
+ run: |
140
+ # Check if tag already exists
141
+ if git rev-parse "v${{ steps.version.outputs.new_version }}" >/dev/null 2>&1; then
142
+ echo "Tag v${{ steps.version.outputs.new_version }} already exists, skipping tag creation"
143
+ else
144
+ git tag -a "v${{ steps.version.outputs.new_version }}" -m "Release v${{ steps.version.outputs.new_version }}"
145
+ git push origin "v${{ steps.version.outputs.new_version }}"
146
+ fi
147
+
148
+ - name: Push changes to main
149
+ run: |
150
+ if git push origin HEAD:main 2>/dev/null; then
151
+ echo "✅ Successfully pushed to main branch"
152
+ else
153
+ echo "⚠️ Could not push to main (protected branch). This is expected."
154
+ echo "📝 Version bump and tag were created successfully."
155
+ fi
156
+
157
+ - name: Publish to NPM
158
+ env:
159
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
160
+ run: |
161
+ VERSION="${{ steps.version.outputs.new_version }}"
162
+ if [[ "$VERSION" == *"alpha"* ]]; then
163
+ echo "Publishing alpha prerelease version with --tag alpha"
164
+ npm publish --tag alpha
165
+ elif [[ "$VERSION" == *"beta"* ]]; then
166
+ echo "Publishing beta prerelease version with --tag latest"
167
+ npm publish --tag latest
168
+ else
169
+ echo "Publishing stable version with --tag latest"
170
+ npm publish --tag latest
171
+ fi
172
+
173
+ - name: Create GitHub Release
174
+ uses: softprops/action-gh-release@v2
175
+ with:
176
+ tag_name: v${{ steps.version.outputs.new_version }}
177
+ name: "Test Architect v${{ steps.version.outputs.new_version }}"
178
+ body: |
179
+ ${{ steps.release_notes.outputs.RELEASE_NOTES }}
180
+ draft: false
181
+ prerelease: ${{ contains(steps.version.outputs.new_version, 'alpha') || contains(steps.version.outputs.new_version, 'beta') }}
182
+
183
+ - name: Summary
184
+ run: |
185
+ echo "## 🎉 Successfully released v${{ steps.version.outputs.new_version }}!" >> $GITHUB_STEP_SUMMARY
186
+ echo "" >> $GITHUB_STEP_SUMMARY
187
+ echo "### 📦 Distribution" >> $GITHUB_STEP_SUMMARY
188
+ echo "- **NPM**: Published to npmjs.org" >> $GITHUB_STEP_SUMMARY
189
+ echo "- **GitHub Release**: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/releases/tag/v${{ steps.version.outputs.new_version }}" >> $GITHUB_STEP_SUMMARY
190
+ echo "" >> $GITHUB_STEP_SUMMARY
191
+ echo "### ✅ Installation" >> $GITHUB_STEP_SUMMARY
192
+ echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
193
+ echo "npx bmad-method install" >> $GITHUB_STEP_SUMMARY
194
+ echo "# Select \"Test Architect\"" >> $GITHUB_STEP_SUMMARY
195
+ echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
@@ -0,0 +1,114 @@
1
+ name: Quality & Validation
2
+
3
+ # Runs comprehensive quality checks on all PRs:
4
+ # - Prettier (formatting)
5
+ # - ESLint (linting)
6
+ # - markdownlint (markdown quality)
7
+ # - Schema validation (YAML structure)
8
+ # - Agent schema tests (fixture-based validation)
9
+ # - Installation component tests (compilation)
10
+
11
+ "on":
12
+ pull_request:
13
+ branches: ["**"]
14
+ workflow_dispatch:
15
+
16
+ jobs:
17
+ prettier:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - name: Checkout
21
+ uses: actions/checkout@v4
22
+
23
+ - name: Setup Node
24
+ uses: actions/setup-node@v4
25
+ with:
26
+ node-version-file: ".nvmrc"
27
+ cache: "npm"
28
+
29
+ - name: Install dependencies
30
+ run: npm ci
31
+
32
+ - name: Prettier format check
33
+ run: npm run format:check
34
+
35
+ eslint:
36
+ runs-on: ubuntu-latest
37
+ steps:
38
+ - name: Checkout
39
+ uses: actions/checkout@v4
40
+
41
+ - name: Setup Node
42
+ uses: actions/setup-node@v4
43
+ with:
44
+ node-version-file: ".nvmrc"
45
+ cache: "npm"
46
+
47
+ - name: Install dependencies
48
+ run: npm ci
49
+
50
+ - name: ESLint
51
+ run: npm run lint
52
+
53
+ markdownlint:
54
+ runs-on: ubuntu-latest
55
+ steps:
56
+ - name: Checkout
57
+ uses: actions/checkout@v4
58
+
59
+ - name: Setup Node
60
+ uses: actions/setup-node@v4
61
+ with:
62
+ node-version-file: ".nvmrc"
63
+ cache: "npm"
64
+
65
+ - name: Install dependencies
66
+ run: npm ci
67
+
68
+ - name: markdownlint
69
+ run: npm run lint:md
70
+
71
+ docs:
72
+ runs-on: ubuntu-latest
73
+ steps:
74
+ - name: Checkout
75
+ uses: actions/checkout@v4
76
+
77
+ - name: Setup Node
78
+ uses: actions/setup-node@v4
79
+ with:
80
+ node-version-file: ".nvmrc"
81
+ cache: "npm"
82
+
83
+ - name: Install dependencies
84
+ run: npm ci
85
+
86
+ - name: Validate documentation links
87
+ run: npm run docs:validate-links
88
+
89
+ - name: Build documentation
90
+ run: npm run docs:build
91
+
92
+ validate:
93
+ runs-on: ubuntu-latest
94
+ steps:
95
+ - name: Checkout
96
+ uses: actions/checkout@v4
97
+
98
+ - name: Setup Node
99
+ uses: actions/setup-node@v4
100
+ with:
101
+ node-version-file: ".nvmrc"
102
+ cache: "npm"
103
+
104
+ - name: Install dependencies
105
+ run: npm ci
106
+
107
+ - name: Validate YAML schemas
108
+ run: npm run validate:schemas
109
+
110
+ - name: Run agent schema validation tests
111
+ run: npm run test:schemas
112
+
113
+ - name: Test agent compilation components
114
+ run: npm run test:install
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env sh
2
+
3
+ # Auto-fix changed files and stage them
4
+ npx --no-install lint-staged
5
+
6
+ # Validate everything
7
+ npm test
8
+
9
+ # Validate docs links only when docs change
10
+ if command -v rg >/dev/null 2>&1; then
11
+ if git diff --cached --name-only | rg -q '^docs/'; then
12
+ npm run docs:validate-links
13
+ npm run docs:build
14
+ fi
15
+ else
16
+ if git diff --cached --name-only | grep -Eq '^docs/'; then
17
+ npm run docs:validate-links
18
+ npm run docs:build
19
+ fi
20
+ fi