ma-agents 3.12.3 → 3.13.1

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 (257) hide show
  1. package/bin/cli.js +67 -13
  2. package/docs/architecture.md +18 -0
  3. package/lib/bmad-cache/bmb/.claude-plugin/marketplace.json +1 -1
  4. package/lib/bmad-cache/bmb/_git_preserved/hooks/commit-msg.sample +52 -2
  5. package/lib/bmad-cache/bmb/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
  6. package/lib/bmad-cache/bmb/_git_preserved/index +0 -0
  7. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-8f8b045fef5af6911495cf3b2a89f1ed75e120f7.idx +0 -0
  8. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-8f8b045fef5af6911495cf3b2a89f1ed75e120f7.pack +0 -0
  9. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-8f8b045fef5af6911495cf3b2a89f1ed75e120f7.rev +0 -0
  10. package/lib/bmad-cache/bmb/_git_preserved/packed-refs +1 -1
  11. package/lib/bmad-cache/bmb/_git_preserved/refs/heads/main +1 -1
  12. package/lib/bmad-cache/bmb/_git_preserved/shallow +1 -1
  13. package/lib/bmad-cache/bmb/package-lock.json +2 -2
  14. package/lib/bmad-cache/bmb/package.json +1 -1
  15. package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/assets/module-help.csv +1 -1
  16. package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/scripts/merge-config.py +33 -0
  17. package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/scripts/merge-help-csv.py +28 -0
  18. package/lib/bmad-cache/bmb/samples/sample-module-setup/assets/module-help.csv +1 -1
  19. package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/cleanup-legacy.py +28 -0
  20. package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-config.py +33 -0
  21. package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-help-csv.py +28 -0
  22. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/assets/module-help.csv +1 -1
  23. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/cleanup-legacy.py +28 -0
  24. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/merge-config.py +33 -0
  25. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/merge-help-csv.py +28 -0
  26. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/assets/Dockerfile +29 -0
  27. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/docker_setup.py +115 -0
  28. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/generate_report.py +184 -0
  29. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/pty_runner.py +171 -0
  30. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/run_evals.py +492 -0
  31. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/run_triggers.py +366 -0
  32. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/utils.py +260 -0
  33. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/assets/module-help.csv +1 -1
  34. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/cleanup-legacy.py +28 -0
  35. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/merge-config.py +33 -0
  36. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/merge-help-csv.py +28 -0
  37. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/standalone-module-template/merge-config.py +33 -0
  38. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/standalone-module-template/merge-help-csv.py +28 -0
  39. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/tests/test-validate-module.py +74 -1
  40. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/validate-module.py +24 -13
  41. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/assets/sample-customize-product-brief.toml +48 -33
  42. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/extract-report-json.py +287 -0
  43. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/generate-html-report.py +57 -8
  44. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/prepass-prompt-metrics.py +7 -7
  45. package/lib/bmad-cache/bmb/skills/module-help.csv +1 -1
  46. package/lib/bmad-cache/bmb/website/public/img/eval-test-types.png +0 -0
  47. package/lib/bmad-cache/cache-manifest.json +17 -18
  48. package/lib/bmad-cache/cis/_git_preserved/hooks/commit-msg.sample +52 -2
  49. package/lib/bmad-cache/cis/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
  50. package/lib/bmad-cache/cis/_git_preserved/index +0 -0
  51. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-18c8290560a98bcb7bf0676e6cc9b2ac5ca2823e.idx +0 -0
  52. package/lib/bmad-cache/cis/_git_preserved/objects/pack/{pack-42ffc048f54e58ce94c6331bc6be97ebbb7936f2.pack → pack-18c8290560a98bcb7bf0676e6cc9b2ac5ca2823e.pack} +0 -0
  53. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-18c8290560a98bcb7bf0676e6cc9b2ac5ca2823e.rev +0 -0
  54. package/lib/bmad-cache/cis/_git_preserved/packed-refs +1 -1
  55. package/lib/bmad-cache/cis/_git_preserved/refs/heads/main +1 -1
  56. package/lib/bmad-cache/cis/_git_preserved/refs/tags/v0.2.1 +1 -0
  57. package/lib/bmad-cache/cis/_git_preserved/shallow +1 -1
  58. package/lib/bmad-cache/cis/package-lock.json +2 -2
  59. package/lib/bmad-cache/cis/package.json +1 -1
  60. package/lib/bmad-cache/cis/src/module-help.csv +1 -1
  61. package/lib/bmad-cache/gds/.claude-plugin/marketplace.json +4 -7
  62. package/lib/bmad-cache/gds/README.md +3 -1
  63. package/lib/bmad-cache/gds/_git_preserved/hooks/commit-msg.sample +52 -2
  64. package/lib/bmad-cache/gds/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
  65. package/lib/bmad-cache/gds/_git_preserved/index +0 -0
  66. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.idx +0 -0
  67. package/lib/bmad-cache/gds/_git_preserved/objects/pack/{pack-9427a146a90c00bb542cba038874bf9671ba4dc0.pack → pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.pack} +0 -0
  68. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.rev +0 -0
  69. package/lib/bmad-cache/gds/_git_preserved/packed-refs +1 -1
  70. package/lib/bmad-cache/gds/_git_preserved/refs/heads/main +1 -1
  71. package/lib/bmad-cache/gds/_git_preserved/shallow +1 -1
  72. package/lib/bmad-cache/gds/package.json +1 -1
  73. package/lib/bmad-cache/gds/src/agents/gds-agent-game-designer/customize.toml +5 -5
  74. package/lib/bmad-cache/gds/src/agents/gds-agent-game-dev/customize.toml +5 -5
  75. package/lib/bmad-cache/gds/src/agents/gds-agent-game-solo-dev/customize.toml +0 -5
  76. package/lib/bmad-cache/gds/src/module-help.csv +6 -12
  77. package/lib/bmad-cache/gds/src/module.yaml +1 -1
  78. package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-create-game-brief/customize.toml +97 -22
  79. package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/assets/validation-report-template.html +190 -0
  80. package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/customize.toml +99 -0
  81. package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/scripts/render-validation-html.py +290 -0
  82. package/lib/bmad-cache/gds/src/workflows/2-design/gds-prd/assets/validation-report-template.html +190 -0
  83. package/lib/bmad-cache/gds/src/workflows/2-design/gds-prd/customize.toml +84 -0
  84. package/lib/bmad-cache/gds/src/workflows/2-design/gds-ux/assets/validation-report-template.html +319 -0
  85. package/lib/bmad-cache/gds/src/workflows/2-design/gds-ux/customize.toml +101 -0
  86. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/architecture-patterns.yaml +1 -0
  87. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/decision-catalog.yaml +88 -0
  88. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/engine-mcps.yaml +124 -2
  89. package/lib/bmad-cache/gds/src/workflows/4-production/gds-investigate/customize.toml +62 -0
  90. package/lib/bmad-cache/tea/.claude-plugin/marketplace.json +1 -1
  91. package/lib/bmad-cache/tea/.github/workflows/docs.yaml +3 -3
  92. package/lib/bmad-cache/tea/.github/workflows/quality.yaml +10 -10
  93. package/lib/bmad-cache/tea/AGENTS.md +31 -0
  94. package/lib/bmad-cache/tea/CHANGELOG.md +42 -1
  95. package/lib/bmad-cache/tea/README.md +8 -5
  96. package/lib/bmad-cache/tea/_git_preserved/hooks/commit-msg.sample +52 -2
  97. package/lib/bmad-cache/tea/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
  98. package/lib/bmad-cache/tea/_git_preserved/index +0 -0
  99. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-9e4197e37df7763dd7a05c2965ee921dfd2eb617.idx +0 -0
  100. package/lib/bmad-cache/tea/_git_preserved/objects/pack/{pack-f0df537f2649464ff6c5aee241165eb9c8664227.pack → pack-9e4197e37df7763dd7a05c2965ee921dfd2eb617.pack} +0 -0
  101. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-9e4197e37df7763dd7a05c2965ee921dfd2eb617.rev +0 -0
  102. package/lib/bmad-cache/tea/_git_preserved/packed-refs +1 -1
  103. package/lib/bmad-cache/tea/_git_preserved/refs/heads/main +1 -1
  104. package/lib/bmad-cache/tea/_git_preserved/refs/tags/v1.19.0 +1 -0
  105. package/lib/bmad-cache/tea/_git_preserved/shallow +1 -1
  106. package/lib/bmad-cache/tea/docs/explanation/engagement-models.md +15 -16
  107. package/lib/bmad-cache/tea/docs/explanation/knowledge-base-system.md +2 -0
  108. package/lib/bmad-cache/tea/docs/explanation/risk-based-testing.md +1 -1
  109. package/lib/bmad-cache/tea/docs/explanation/tea-overview.md +88 -52
  110. package/lib/bmad-cache/tea/docs/explanation/testing-as-engineering.md +13 -12
  111. package/lib/bmad-cache/tea/docs/glossary/index.md +2 -2
  112. package/lib/bmad-cache/tea/docs/how-to/brownfield/use-tea-for-enterprise.md +19 -18
  113. package/lib/bmad-cache/tea/docs/how-to/brownfield/use-tea-with-existing-tests.md +1 -1
  114. package/lib/bmad-cache/tea/docs/how-to/workflows/run-nfr-assess.md +32 -26
  115. package/lib/bmad-cache/tea/docs/how-to/workflows/run-test-design.md +20 -14
  116. package/lib/bmad-cache/tea/docs/how-to/workflows/run-trace.md +3 -3
  117. package/lib/bmad-cache/tea/docs/index.md +13 -11
  118. package/lib/bmad-cache/tea/docs/reference/commands.md +37 -13
  119. package/lib/bmad-cache/tea/docs/reference/knowledge-base.md +2 -2
  120. package/lib/bmad-cache/tea/package-lock.json +2 -2
  121. package/lib/bmad-cache/tea/package.json +1 -1
  122. package/lib/bmad-cache/tea/src/agents/bmad-tea/customize.toml +20 -15
  123. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/confidence-gate.md +73 -0
  124. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/test-quality.md +1 -0
  125. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/tea-index.csv +2 -1
  126. package/lib/bmad-cache/tea/src/module-help.csv +2 -2
  127. package/lib/bmad-cache/tea/src/workflows/testarch/README.md +5 -4
  128. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/data/role-paths.yaml +1 -1
  129. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/data/tea-resources-index.yaml +1 -1
  130. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-01.md +2 -2
  131. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-07.md +1 -1
  132. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/templates/certificate-template.md +1 -1
  133. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/tea-index.csv +1 -1
  134. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/tea-index.csv +1 -1
  135. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/tea-index.csv +1 -1
  136. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/tea-index.csv +1 -1
  137. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/SKILL.md +3 -3
  138. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/checklist.md +11 -11
  139. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/instructions.md +4 -2
  140. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/nfr-report-template.md +5 -5
  141. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/tea-index.csv +1 -1
  142. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-01-load-context.md +1 -1
  143. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-01b-resume.md +1 -1
  144. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-02-define-thresholds.md +14 -3
  145. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04-evaluate-and-score.md +7 -7
  146. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04a-subagent-security.md +4 -4
  147. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04b-subagent-performance.md +4 -4
  148. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04c-subagent-reliability.md +4 -4
  149. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04d-subagent-scalability.md +4 -4
  150. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04e-aggregate-nfr.md +4 -4
  151. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-05-generate-report.md +1 -1
  152. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/workflow-plan.md +1 -1
  153. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/workflow.yaml +3 -3
  154. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/checklist.md +23 -3
  155. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/tea-index.csv +1 -1
  156. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-02-load-context.md +7 -0
  157. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-03-risk-and-testability.md +16 -2
  158. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-04-coverage-plan.md +20 -4
  159. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-05-generate-output.md +2 -0
  160. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-architecture-template.md +17 -0
  161. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-qa-template.md +15 -0
  162. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-template.md +16 -0
  163. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/tea-index.csv +1 -1
  164. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/checklist.md +1 -1
  165. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/tea-index.csv +1 -1
  166. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/trace-template.md +1 -1
  167. package/lib/bmad-cache/tea/test/test-installation-components.js +49 -0
  168. package/lib/bmad-cache/tea/website/astro.config.mjs +2 -2
  169. package/lib/bmad-cache/wds/README.md +1 -1
  170. package/lib/bmad-cache/wds/_git_preserved/hooks/commit-msg.sample +52 -2
  171. package/lib/bmad-cache/wds/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
  172. package/lib/bmad-cache/wds/_git_preserved/index +0 -0
  173. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.idx +0 -0
  174. package/lib/bmad-cache/wds/_git_preserved/objects/pack/{pack-96877c1c09123cccb1f91c1412184b11d2b492ad.pack → pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.pack} +0 -0
  175. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.rev +0 -0
  176. package/lib/bmad-cache/wds/_git_preserved/packed-refs +1 -1
  177. package/lib/bmad-cache/wds/_git_preserved/refs/heads/main +1 -1
  178. package/lib/bmad-cache/wds/_git_preserved/refs/tags/v0.4.3 +1 -0
  179. package/lib/bmad-cache/wds/_git_preserved/shallow +1 -1
  180. package/lib/bmad-cache/wds/eslint.config.mjs +1 -1
  181. package/lib/bmad-cache/wds/package.json +1 -1
  182. package/lib/bmad-cache/wds/src/agents/wds-agent-freya-ux/customize.toml +80 -0
  183. package/lib/bmad-cache/wds/src/agents/wds-agent-mimir-builder/customize.toml +52 -0
  184. package/lib/bmad-cache/wds/src/agents/wds-agent-saga-analyst/customize.toml +70 -0
  185. package/lib/bmad-cache/wds/src/module-help.csv +19 -19
  186. package/lib/bmad-cache/wds/src/module.yaml +28 -0
  187. package/lib/bmad-cache/wds/src/scripts/README.md +155 -0
  188. package/lib/bmad-cache/wds/src/scripts/wds-add-object.js +202 -0
  189. package/lib/bmad-cache/wds/src/scripts/wds-add-spacing.js +158 -0
  190. package/lib/bmad-cache/wds/src/scripts/wds-init-page.js +229 -0
  191. package/lib/bmad-cache/wds/src/scripts/wds-init-scenario.js +120 -0
  192. package/lib/bmad-cache/wds/src/scripts/wds-nav.js +201 -0
  193. package/lib/bmad-cache/wds/src/scripts/wds-validate.js +301 -0
  194. package/lib/bmad-cache/wds/src/workflows/wds-3-scenarios/workflow.xml +450 -0
  195. package/lib/bmad-cache/wds/src/workflows/wds-4-ux-design/workflow-specify.xml +387 -0
  196. package/lib/bmad-extension/.claude-plugin/marketplace.json.template +1 -1
  197. package/lib/bmad-extension-plugin/.claude-plugin/marketplace.json +2 -2
  198. package/lib/bmad.js +361 -18
  199. package/lib/installer.js +296 -26
  200. package/lib/mil498-templates/OCD.md +169 -169
  201. package/lib/mil498-templates/README.md +4 -4
  202. package/lib/mil498-templates/SDD.md +163 -163
  203. package/lib/mil498-templates/SDP.md +307 -307
  204. package/lib/mil498-templates/SRS.md +219 -219
  205. package/lib/mil498-templates/SSDD.md +154 -154
  206. package/lib/mil498-templates/SSS.md +225 -225
  207. package/lib/mil498-templates/STD.md +188 -188
  208. package/lib/profile.js +96 -5
  209. package/lib/templates/instruction-block-git.template.md +25 -0
  210. package/lib/templates/instruction-block-onprem.template.md +86 -86
  211. package/lib/templates/instruction-block-universal.template.md +29 -29
  212. package/package.json +5 -4
  213. package/scripts/build-bmad-cache.js +143 -42
  214. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.idx +0 -0
  215. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.pack +0 -0
  216. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.rev +0 -0
  217. package/lib/bmad-cache/bmb/_git_preserved/refs/remotes/origin/HEAD +0 -1
  218. package/lib/bmad-cache/bmb/_git_preserved/refs/tags/v1.7.0 +0 -1
  219. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/generate-convert-report.py +0 -406
  220. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/tests/test_generate_convert_report.py +0 -243
  221. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-42ffc048f54e58ce94c6331bc6be97ebbb7936f2.idx +0 -0
  222. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-42ffc048f54e58ce94c6331bc6be97ebbb7936f2.rev +0 -0
  223. package/lib/bmad-cache/cis/_git_preserved/refs/remotes/origin/HEAD +0 -1
  224. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-9427a146a90c00bb542cba038874bf9671ba4dc0.idx +0 -0
  225. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-9427a146a90c00bb542cba038874bf9671ba4dc0.rev +0 -0
  226. package/lib/bmad-cache/gds/_git_preserved/refs/remotes/origin/HEAD +0 -1
  227. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-gdd/customize.toml +0 -41
  228. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-prd/customize.toml +0 -41
  229. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-prd/data/domain-complexity.csv +0 -15
  230. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-prd/data/project-types.csv +0 -11
  231. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-ux-design/customize.toml +0 -41
  232. package/lib/bmad-cache/gds/src/workflows/2-design/gds-edit-gdd/customize.toml +0 -41
  233. package/lib/bmad-cache/gds/src/workflows/2-design/gds-edit-prd/customize.toml +0 -41
  234. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-gdd/customize.toml +0 -41
  235. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/customize.toml +0 -41
  236. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/data/domain-complexity.csv +0 -15
  237. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/data/project-types.csv +0 -11
  238. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-f0df537f2649464ff6c5aee241165eb9c8664227.idx +0 -0
  239. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-f0df537f2649464ff6c5aee241165eb9c8664227.rev +0 -0
  240. package/lib/bmad-cache/tea/_git_preserved/refs/remotes/origin/HEAD +0 -1
  241. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-96877c1c09123cccb1f91c1412184b11d2b492ad.idx +0 -0
  242. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-96877c1c09123cccb1f91c1412184b11d2b492ad.rev +0 -0
  243. package/lib/bmad-cache/wds/_git_preserved/refs/remotes/origin/HEAD +0 -1
  244. package/lib/bmad-cache/wds/src/agents/wds-agent-freya-ux/bmad-skill-manifest.yaml +0 -12
  245. package/lib/bmad-cache/wds/src/agents/wds-agent-saga-analyst/bmad-skill-manifest.yaml +0 -12
  246. package/lib/bmad-cache/wds/src/workflows/wds-0-alignment-signoff/bmad-skill-manifest.yaml +0 -1
  247. package/lib/bmad-cache/wds/src/workflows/wds-0-project-setup/bmad-skill-manifest.yaml +0 -1
  248. package/lib/bmad-cache/wds/src/workflows/wds-1-project-brief/bmad-skill-manifest.yaml +0 -1
  249. package/lib/bmad-cache/wds/src/workflows/wds-2-trigger-mapping/bmad-skill-manifest.yaml +0 -1
  250. package/lib/bmad-cache/wds/src/workflows/wds-3-scenarios/bmad-skill-manifest.yaml +0 -1
  251. package/lib/bmad-cache/wds/src/workflows/wds-4-ux-design/bmad-skill-manifest.yaml +0 -1
  252. package/lib/bmad-cache/wds/src/workflows/wds-5-agentic-development/bmad-skill-manifest.yaml +0 -1
  253. package/lib/bmad-cache/wds/src/workflows/wds-6-asset-generation/bmad-skill-manifest.yaml +0 -1
  254. package/lib/bmad-cache/wds/src/workflows/wds-7-design-system/bmad-skill-manifest.yaml +0 -1
  255. package/lib/bmad-cache/wds/src/workflows/wds-8-product-evolution/bmad-skill-manifest.yaml +0 -1
  256. /package/lib/bmad-cache/gds/src/workflows/2-design/{gds-create-gdd → gds-gdd/assets}/game-types.csv +0 -0
  257. /package/lib/bmad-cache/gds/src/workflows/2-design/{gds-validate-gdd/data → gds-gdd/assets}/genre-complexity.csv +0 -0
@@ -60,6 +60,29 @@ engine_mcps:
60
60
  license: "MIT"
61
61
  benefit_summary: "Broad Unity version support (2021.3+) with natural language control and fast batch operations for AI-driven scene building."
62
62
 
63
+ unity_mcp_official:
64
+ name: "Unity MCP (Official)"
65
+ repo: "Unity AI Assistant package (com.unity.ai.assistant)"
66
+ search_term: "Unity MCP official Unity AI Assistant docs"
67
+ description: "Unity's first-party MCP server, bundled with the Unity AI Assistant, exposing the Editor to external AI clients"
68
+ capabilities:
69
+ - "Manage scenes and GameObjects"
70
+ - "Run asset operations"
71
+ - "Edit scripts"
72
+ - "Read Unity console output"
73
+ - "Automate in-editor tasks"
74
+ install_type: "Bundled in the Unity AI Assistant package - no separate server"
75
+ install_steps:
76
+ - "Open Edit > Project Settings > AI > Unity MCP"
77
+ - "The MCP bridge starts automatically with the Editor"
78
+ - "Approve direct connections from your AI client"
79
+ requirements: "Unity 6+ with the AI Assistant package; paid Unity AI subscription (~$10/month - verify current pricing)"
80
+ supported_clients: ["Claude Code", "Cursor"]
81
+ license: "Proprietary (Unity)"
82
+ docs: "https://docs.unity3d.com/Packages/com.unity.ai.assistant@2.8/manual/integration/unity-mcp-overview.html"
83
+ note: "Requires a paid Unity AI subscription. The free open-source MCPs (mcp_unity, unity_mcp_coplay) cover the same workflow - prefer those unless the user already pays for Unity AI."
84
+ benefit_summary: "First-party MCP built into the Unity Editor, but gated behind a paid Unity AI subscription; the open-source alternatives are free."
85
+
63
86
  unreal:
64
87
  engine: "Unreal Engine"
65
88
  mcps:
@@ -162,6 +185,53 @@ engine_mcps:
162
185
  license: "MIT"
163
186
  benefit_summary: "Full bidirectional Godot integration - AI agents can read and write scripts, scenes, and nodes directly."
164
187
 
188
+ godot_mcp_gopeak:
189
+ name: "GoPeak (HaD0Yun)"
190
+ repo: "HaD0Yun/Gopeak-godot-mcp"
191
+ search_term: "Gopeak godot mcp github"
192
+ description: "Comprehensive MCP server for Godot 4.x with ~95+ tools spanning the full edit-run-inspect-fix workflow"
193
+ capabilities:
194
+ - "Find, launch, and manage Godot projects and editor execution"
195
+ - "Create and modify scenes and GDScript files with typed properties"
196
+ - "Work with resources, materials, shaders, and imports"
197
+ - "Debug via logs, LSP diagnostics, DAP breakpoints, and runtime inspection"
198
+ - "Capture screenshots and inspect the live scene tree"
199
+ - "Inject input and call runtime methods for testing"
200
+ - "Discover tools through a catalog with dynamic capability groups"
201
+ - "Access ClassDB introspection and a CC0 asset library"
202
+ install_type: "Node.js MCP server (npx, no Godot plugin needed)"
203
+ install_steps:
204
+ - "Run via 'npx -y gopeak' (or 'npm install -g gopeak')"
205
+ - "Configure your MCP client with paths to the Godot executable and a tool profile"
206
+ - "Choose a tool exposure profile: compact, full, or legacy"
207
+ requirements: "Godot 4.x (4.4+ for UID features), Node.js"
208
+ supported_clients: ["Claude Desktop", "Claude Code", "Cursor"]
209
+ license: "MIT"
210
+ benefit_summary: "The most capable Godot MCP - ~95+ tools, active development, and a one-command npx launch with no Godot plugin required."
211
+
212
+ godot_mcp_tugcantopaloglu:
213
+ name: "Godot MCP (tugcantopaloglu)"
214
+ repo: "tugcantopaloglu/godot-mcp"
215
+ search_term: "tugcantopaloglu godot-mcp github"
216
+ description: "MCP server for Godot 4.x with 149 tools, including runtime GDScript execution over a TCP channel"
217
+ capabilities:
218
+ - "Execute arbitrary GDScript at runtime; manipulate nodes and signals"
219
+ - "Control animation, input, raycasting, audio, and video playback"
220
+ - "Headless scene parsing, project-setting edits, and resource creation"
221
+ - "3D/2D rendering, physics joints, skeletal animation, particles, and shaders"
222
+ - "UI theming and networking (HTTP, WebSocket, multiplayer)"
223
+ install_type: "Node.js MCP server + runtime GDScript autoload (no editor plugin)"
224
+ install_steps:
225
+ - "git clone https://github.com/tugcantopaloglu/godot-mcp.git"
226
+ - "cd godot-mcp && npm install && npm run build"
227
+ - "Copy the MCP interaction server GDScript into your project"
228
+ - "Register it as an autoload named 'McpInteractionServer' in Project Settings"
229
+ - "Configure your MCP client with the built server path"
230
+ requirements: "Godot 4.x (4.4+ for UID features), Node.js 18+; TCP port 9090 for runtime tools"
231
+ supported_clients: ["Claude Code", "Cursor", "Cline"]
232
+ license: "MIT"
233
+ benefit_summary: "Largest tool surface (149 tools) with runtime GDScript execution over TCP - strong for live in-game AI interaction and testing."
234
+
165
235
  godot_mcp_docs:
166
236
  name: "Godot MCP Docs"
167
237
  repo: "Nihilantropy/godot-mcp-docs"
@@ -181,6 +251,55 @@ engine_mcps:
181
251
  license: "MIT"
182
252
  benefit_summary: "AI agents get access to the full Godot documentation for accurate API usage without relying on training data."
183
253
 
254
+ roblox:
255
+ engine: "Roblox Studio"
256
+ mcps:
257
+ roblox_studio_mcp:
258
+ name: "Roblox Studio MCP (Official)"
259
+ repo: "Official Roblox Studio plugin — not a community GitHub repo"
260
+ search_term: "Roblox Studio MCP plugin Claude Code setup"
261
+ description: "First-party MCP server built into Roblox Studio. Gives AI agents direct access to the DataModel, scripts, live Luau execution, asset generation, and playtest control — no copy-pasting needed."
262
+ capabilities:
263
+ # DataModel exploration
264
+ - "Investigate the place in parallel and return a compact summary (explore_subagent)"
265
+ - "Explore the instance hierarchy as a flat JSON array (search_game_tree)"
266
+ - "Inspect any Instance's properties, attributes, and children in detail (inspect_instance)"
267
+ # Script tools
268
+ - "Read Scripts, LocalScripts, and ModuleScripts with line numbers (script_read)"
269
+ - "Search all script contents by string or Luau pattern (script_grep)"
270
+ - "Find scripts by name via fuzzy match (script_search)"
271
+ - "Apply multiple edits to a script atomically (multi_edit)"
272
+ # Live execution
273
+ - "Execute arbitrary Luau in the live game context and return the result (execute_luau)"
274
+ - "Retrieve output logs while the game is running (console_output)"
275
+ # Playtest control
276
+ - "Start or stop a playtesting session (start_stop_play)"
277
+ - "Spawn a test character that runs through gameplay scenarios in its own context (playtest_subagent)"
278
+ - "Move the player character to a position or Instance during play (character_navigation)"
279
+ - "Simulate key presses, key holds, and text input (keyboard_input)"
280
+ - "Simulate mouse clicks, movement, and scrolling (mouse_input)"
281
+ # Visual
282
+ - "Capture the current Studio viewport in Play mode (screen_capture)"
283
+ # AI asset generation
284
+ - "Generate a textured 3D mesh from a text prompt (generate_mesh)"
285
+ - "Generate a custom material or texture (generate_material)"
286
+ - "Generate custom procedural models that scale and adapt automatically (generate_procedural_model)"
287
+ - "Insert assets, plugins, and models from the Creator Store (insert_from_creator_store)"
288
+ # Multi-studio
289
+ - "List all connected Studio instances and switch the active one (list_roblox_studios, set_active_studio)"
290
+ install_type: "Roblox Studio Plugin (official, bundled with Studio or available via Plugin Manager)"
291
+ install_steps:
292
+ - "Open Roblox Studio"
293
+ - "Install the MCP plugin from the Studio Plugin Manager if not already present"
294
+ - "The plugin starts a local MCP server when Studio is running"
295
+ - "In Claude Code: claude mcp add roblox-studio <server-command> (verify exact command via Roblox docs)"
296
+ - "Confirm the active Studio instance with list_roblox_studios before making edits"
297
+ requirements: "Roblox Studio (latest version recommended)"
298
+ supported_clients: ["Claude Code", "Claude Desktop"]
299
+ license: "Proprietary (Roblox)"
300
+ note: "Unlike community MCPs for other engines, this is a first-party tool maintained by Roblox. The execute_luau tool — which runs arbitrary Luau in the live game context — is a capability no community engine MCP currently matches. Verify install steps via current Roblox documentation, as the plugin ecosystem evolves."
301
+ benefit_summary: "The official Roblox Studio MCP gives AI agents 21 tools covering the full edit → script → run → inspect → fix loop. The standout capability is execute_luau: run assertions, inspect live state, fire RemoteEvents, and verify game behavior directly from the AI session without leaving Claude Code."
302
+
184
303
  general:
185
304
  engine: "Any"
186
305
  description: "General-purpose MCPs useful for any game engine"
@@ -215,9 +334,12 @@ recommendation_rules:
215
334
  note: "When multiple MCPs exist for an engine, present the top 1-2 options and let the user choose"
216
335
  unity_default: "mcp_unity"
217
336
  unity_alternative: "unity_mcp_coplay"
337
+ unity_official_note: "unity_mcp_official exists but needs a paid Unity AI subscription - recommend it only when the user already has one"
218
338
  unreal_default: "unreal_mcp"
219
- godot_default: "godot_mcp_bradypp"
220
- godot_alternative: "godot_mcp_ee0pdt"
339
+ godot_default: "godot_mcp_gopeak"
340
+ godot_alternative: "godot_mcp_tugcantopaloglu"
341
+ roblox_default: "roblox_studio_mcp"
342
+ roblox_note: "Only one MCP exists for Roblox and it is first-party and official — recommend it unconditionally"
221
343
 
222
344
  recommend_if:
223
345
  godot_docs_needed:
@@ -0,0 +1,62 @@
1
+ # DO NOT EDIT -- overwritten on every update.
2
+ #
3
+ # Workflow customization surface for gds-investigate. Mirrors the
4
+ # agent customization shape under the [workflow] namespace.
5
+
6
+ [workflow]
7
+
8
+ # --- Configurable below. Overrides merge per BMad structural rules: ---
9
+ # scalars: override wins • arrays (persistent_facts, activation_steps_*): append
10
+ # arrays-of-tables with `code`/`id`: replace matching items, append new ones.
11
+
12
+ # Steps to run before the standard activation (config load, greet).
13
+ # Overrides append. Use for pre-flight loads, compliance checks, etc.
14
+
15
+ activation_steps_prepend = []
16
+
17
+ # Steps to run after greet but before the workflow begins.
18
+ # Overrides append. Use for context-heavy setup that should happen
19
+ # once the user has been acknowledged.
20
+
21
+ activation_steps_append = []
22
+
23
+ # Persistent facts the workflow keeps in mind for the whole run.
24
+ # Use for citation conventions (path:line vs path#L42), grading-scale
25
+ # overrides (ITIL severity 1-5 instead of High/Medium/Low), tone
26
+ # directives (engineering vs exec-facing), or compliance constraints
27
+ # the case file must respect.
28
+ # Distinct from the runtime memory sidecar — these are static context
29
+ # loaded on activation. Overrides append.
30
+ #
31
+ # Each entry is either:
32
+ # - a literal sentence, e.g. "Use ITIL severity 1-5 instead of High/Medium/Low for confidence."
33
+ # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
34
+ # (glob patterns are supported; the file's contents are loaded and treated as facts).
35
+
36
+ persistent_facts = [
37
+ "file:{project-root}/**/project-context.md",
38
+ ]
39
+
40
+ # Scalar: path to the case-file template, resolved from the skill root.
41
+ # Override to point at an org-shaped template (compliance sections,
42
+ # SLA fields, post-mortem hooks, ITIL fields).
43
+
44
+ case_file_template = "references/case-file-template.md"
45
+
46
+ # Scalar: subdirectory under {implementation_artifacts} where case files land.
47
+ # Override for org taxonomies (forensics/, cases/, incidents/, bug-bash/).
48
+
49
+ case_file_subdir = "investigations"
50
+
51
+ # Scalar: filename pattern for new case files. {slug} expands to the
52
+ # ticket ID or a short user-agreed name.
53
+
54
+ case_file_filename = "{slug}-investigation.md"
55
+
56
+ # Scalar: executed when the workflow finalizes the case file at Outcome 5,
57
+ # after the conclusion is presented. Override wins. Use for post-case
58
+ # automation: post the case to Slack/Teams, push fields back to ticketing,
59
+ # link the case to a sprint, trigger a follow-up retro.
60
+ # Leave empty for no custom post-completion behavior.
61
+
62
+ on_complete = ""
@@ -12,7 +12,7 @@
12
12
  "name": "bmad-method-test-architecture-enterprise",
13
13
  "source": "./",
14
14
  "description": "Master Test Architect module for quality strategy, test automation, CI/CD quality gates, and structured testing education. Part of the BMad Method ecosystem.",
15
- "version": "1.15.1",
15
+ "version": "1.19.0",
16
16
  "author": {
17
17
  "name": "Murat K Ozcan (TEA Creator) & Brian (BMad) Madison"
18
18
  },
@@ -25,14 +25,14 @@ jobs:
25
25
  runs-on: ubuntu-latest
26
26
  steps:
27
27
  - name: Checkout repository
28
- uses: actions/checkout@v4
28
+ uses: actions/checkout@v5
29
29
  with:
30
30
  fetch-depth: 0
31
31
 
32
32
  - name: Setup Node.js
33
- uses: actions/setup-node@v4
33
+ uses: actions/setup-node@v6
34
34
  with:
35
- node-version: "20"
35
+ node-version-file: ".nvmrc"
36
36
  cache: "npm"
37
37
 
38
38
  - name: Install root dependencies
@@ -18,10 +18,10 @@ jobs:
18
18
  runs-on: ubuntu-latest
19
19
  steps:
20
20
  - name: Checkout
21
- uses: actions/checkout@v4
21
+ uses: actions/checkout@v5
22
22
 
23
23
  - name: Setup Node
24
- uses: actions/setup-node@v4
24
+ uses: actions/setup-node@v6
25
25
  with:
26
26
  node-version-file: ".nvmrc"
27
27
  cache: "npm"
@@ -36,10 +36,10 @@ jobs:
36
36
  runs-on: ubuntu-latest
37
37
  steps:
38
38
  - name: Checkout
39
- uses: actions/checkout@v4
39
+ uses: actions/checkout@v5
40
40
 
41
41
  - name: Setup Node
42
- uses: actions/setup-node@v4
42
+ uses: actions/setup-node@v6
43
43
  with:
44
44
  node-version-file: ".nvmrc"
45
45
  cache: "npm"
@@ -54,10 +54,10 @@ jobs:
54
54
  runs-on: ubuntu-latest
55
55
  steps:
56
56
  - name: Checkout
57
- uses: actions/checkout@v4
57
+ uses: actions/checkout@v5
58
58
 
59
59
  - name: Setup Node
60
- uses: actions/setup-node@v4
60
+ uses: actions/setup-node@v6
61
61
  with:
62
62
  node-version-file: ".nvmrc"
63
63
  cache: "npm"
@@ -72,10 +72,10 @@ jobs:
72
72
  runs-on: ubuntu-latest
73
73
  steps:
74
74
  - name: Checkout
75
- uses: actions/checkout@v4
75
+ uses: actions/checkout@v5
76
76
 
77
77
  - name: Setup Node
78
- uses: actions/setup-node@v4
78
+ uses: actions/setup-node@v6
79
79
  with:
80
80
  node-version-file: ".nvmrc"
81
81
  cache: "npm"
@@ -93,10 +93,10 @@ jobs:
93
93
  runs-on: ubuntu-latest
94
94
  steps:
95
95
  - name: Checkout
96
- uses: actions/checkout@v4
96
+ uses: actions/checkout@v5
97
97
 
98
98
  - name: Setup Node
99
- uses: actions/setup-node@v4
99
+ uses: actions/setup-node@v6
100
100
  with:
101
101
  node-version-file: ".nvmrc"
102
102
  cache: "npm"
@@ -0,0 +1,31 @@
1
+ # Repository Guidelines
2
+
3
+ ## Project Shape
4
+
5
+ - Core TEA module content lives in `src/`.
6
+ - Public documentation lives in `docs/`; the Starlight site consumes it through `website/`.
7
+ - GitHub Actions workflows live in `.github/workflows/`.
8
+ - Release metadata must stay synchronized across `package.json`, `package-lock.json`, and `.claude-plugin/marketplace.json`.
9
+
10
+ ## Common Commands
11
+
12
+ - `npm test`: full quality gate used before release.
13
+ - `npm run format:check`: Prettier check.
14
+ - `npm run lint`: ESLint check.
15
+ - `npm run lint:md`: markdownlint check.
16
+ - `npm run docs:validate-links`: docs link validation.
17
+ - `npm run docs:build`: full docs and site build.
18
+ - `npm run test:release-metadata`: package/lockfile/marketplace version sync check.
19
+
20
+ ## Changelog Discipline
21
+
22
+ - For any user-facing change, documentation change, workflow/CI change, release behavior change, or bug fix, update `CHANGELOG.md` in the same PR.
23
+ - Put unreleased work under the top `## [Unreleased]` section using Keep a Changelog headings such as `Added`, `Changed`, `Fixed`, `Deprecated`, or `Removed`.
24
+ - When preparing or repairing a stable release, convert the relevant `[Unreleased]` notes into an exact version section like `## [1.16.0] - YYYY-MM-DD`.
25
+ - Do not leave release-worthy changes only in GitHub auto-generated notes. The publish workflow can fall back to `[Unreleased]`, but an exact version entry is preferred for stable releases.
26
+
27
+ ## PR Notes
28
+
29
+ - Mention validation commands actually run.
30
+ - For docs-only changes, at minimum run `npm run docs:validate-links`, `npm run lint:md`, and `npm run format:check`.
31
+ - For workflow or release changes, run `npm run format:check`, `npm run lint:md`, `npm run lint`, and `npm run test:release-metadata`.
@@ -5,6 +5,47 @@ All notable changes to the Test Architect (TEA) module will be documented in thi
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [Unreleased]
9
+
10
+ ### Changed
11
+
12
+ - NFR workflow boundary clarified: `test-design` now owns NFR planning (thresholds, planned evidence, NFR-derived risks) and `nfr-assess` is reframed as NFR Evidence Audit — evaluating implementation evidence against planned thresholds after code exists.
13
+ - `nfr-assess` step-02 now checks for an existing `test-design` NFR plan first and uses it as the primary threshold source, falling back to raw documents only for missing or UNKNOWN thresholds.
14
+ - TEA agent menu gains a `GATE` routing intent that guides users through the release gate sequence (optional test-review → optional nfr-assess → trace Phase 2 gate) without merging those workflows.
15
+ - NFR domains in `nfr-assess` corrected from "maintainability" to "scalability" to match the four parallel subagent domains (security, performance, reliability, scalability).
16
+ - TEA phase table updated: `nfr-assess` marked optional at the Release phase.
17
+ - NFR planning items in `test-design` step-05 output checklist conditioned on NFR scope.
18
+ - Engagement models table: TEA Solo row for NFR Evidence Audit updated from No to Optional.
19
+ - GitHub Actions workflow dependencies upgraded to Node 24-compatible major versions:
20
+ - `actions/checkout@v5`
21
+ - `actions/setup-node@v6`
22
+ - `actions/create-github-app-token@v3`
23
+ - Publish releases now use `[Unreleased]` changelog notes before falling back to generated GitHub release notes when an exact version section is missing.
24
+ - Documented workflow-local knowledge resources as intentional self-contained skill packaging and added validation for workflow-local knowledge indexes.
25
+
26
+ ---
27
+
28
+ ## [1.16.0] - 2026-05-08
29
+
30
+ ### Added
31
+
32
+ - Claude Cowork marketplace plugin support.
33
+ - TEA Phase 3 command examples in the overview docs, including direct slash commands and Codex skill invocations.
34
+ - System-level and per-epic `test-design` usage examples in the TEA overview docs.
35
+
36
+ ### Changed
37
+
38
+ - Catalog dependency metadata now uses `preceded-by` and `followed-by` column names.
39
+ - TEA overview command guidance now distinguishes workflow names, TEA menu codes, slash commands, and Codex skills.
40
+
41
+ ### Fixed
42
+
43
+ - Normalized `module-help.csv` to the documented 13-column schema.
44
+ - Clarified the exact `/bmad:tea:ci` command path for Phase 3 CI setup.
45
+ - Clarified the difference between Phase 3 system-level `test-design` and Phase 4 per-epic `test-design`.
46
+
47
+ ---
48
+
8
49
  ## [1.2.4] - 2026-02-22
9
50
 
10
51
  ### Changed
@@ -15,7 +56,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
15
56
  - Affected workflows: `atdd`, `automate`, `ci`, `framework`, `nfr-assess`, `teach-me-testing`, `test-design`, `test-review`, `trace`
16
57
  - Removed redundant `web_bundle: false` from workflow.yaml files
17
58
 
18
- ## [Unreleased]
59
+ ## [Historical Unreleased Notes]
19
60
 
20
61
  ### Added
21
62
 
@@ -3,7 +3,7 @@
3
3
  [![Python Version](https://img.shields.io/badge/python-%3E%3D3.10-blue?logo=python&logoColor=white)](https://www.python.org)
4
4
  [![uv](https://img.shields.io/badge/uv-package%20manager-blueviolet?logo=uv)](https://docs.astral.sh/uv/)
5
5
 
6
- TEA (Test Engineering Architect) is a standalone BMAD module that delivers risk-based test strategy, test automation guidance, and release gate decisions. It provides a single expert agent (Murat, Master Test Architect and Quality Advisor) and nine workflows spanning Teach Me Testing (TEA Academy), framework setup, test design, ATDD, automation, traceability, NFR assessment, CI guidance, and test review.
6
+ TEA (Test Engineering Architect) is a standalone BMAD module that delivers risk-based test strategy, test automation guidance, and release gate decisions. It provides a single expert agent (Murat, Master Test Architect and Quality Advisor) and nine workflows spanning Teach Me Testing (TEA Academy), test design, framework setup, CI guidance, ATDD, automation, test review, NFR Evidence Audit, and traceability.
7
7
 
8
8
  Docs: <https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/>
9
9
 
@@ -43,9 +43,12 @@ TEA has two layers of files, and each has a specific job:
43
43
  | `steps-v/*.md` | **Validate** steps — always 1 file: evaluate against checklist | On demand |
44
44
  | `checklist.md` | Validation criteria — what "done" looks like for this workflow | Read by steps-v |
45
45
  | `*-template.md` | Output skeleton with `{PLACEHOLDER}` vars — steps fill these in to produce the final artifact | Read by steps-c when generating output |
46
- | `src/agents/bmad-tea/resources/tea-index.csv` | Knowledge fragment index — id, name, tags, tier (core/extended/specialized), file path | Read to decide which shared TEA fragments to load |
46
+ | `src/agents/bmad-tea/resources/tea-index.csv` | Agent-level knowledge fragment index — id, name, tags, tier (core/extended/specialized), file path | Read by the TEA agent for direct recommendations |
47
+ | `src/workflows/testarch/<workflow>/resources/` | Workflow-local knowledge index and fragments | Read by workflow steps from that workflow's skill root |
47
48
  | `resources/knowledge/*.md` | Reusable fragments — standards, patterns, API references | Selectively read into context based on tier + config |
48
49
 
50
+ Workflow resource directories intentionally duplicate the TEA knowledge base. Each workflow skill must stay self-contained so it can be installed, copied, or invoked without reaching across skill boundaries. When knowledge changes, propagate the intended updates to the affected workflow resource directories instead of replacing them with a central runtime path.
51
+
49
52
  ```mermaid
50
53
  flowchart LR
51
54
  U[User] --> A[Agent Persona]
@@ -120,7 +123,7 @@ npx bmad-method install
120
123
  1. Install TEA (above)
121
124
  2. Load the TEA menu with `$bmad-tea` if you want a conversational entrypoint.
122
125
  3. Run one of the core workflows:
123
- - `TD` / `/bmad:tea:test-design` / `$bmad-tea-testarch-test-design` — test design and risk assessment
126
+ - `TD` / `/bmad:tea:test-design` / `$bmad-tea-testarch-test-design` — test design, risk assessment, and NFR planning
124
127
  - `AT` / `/bmad:tea:atdd` / `$bmad-tea-testarch-atdd` — failing acceptance tests first (TDD red phase)
125
128
  - `TA` / `/bmad:tea:automate` / `$bmad-tea-testarch-automate` — expand automation coverage
126
129
  4. Or use in party mode: `/party` to include TEA with other agents
@@ -137,14 +140,14 @@ npx bmad-method install
137
140
  | Trigger | Slash Command | Codex Skill | Purpose |
138
141
  | ------- | ---------------------------- | -------------------------------- | --------------------------------------------------------- |
139
142
  | TMT | `/bmad:tea:teach-me-testing` | `$bmad-tea-teach-me-testing` | Teach Me Testing (TEA Academy) |
143
+ | TD | `/bmad:tea:test-design` | `$bmad-tea-testarch-test-design` | System-level or epic-level test design and NFR planning |
140
144
  | TF | `/bmad:tea:framework` | `$bmad-tea-testarch-framework` | Scaffold test framework (frontend, backend, or fullstack) |
141
145
  | CI | `/bmad:tea:ci` | `$bmad-tea-testarch-ci` | Set up CI/CD quality pipeline (multi-platform) |
142
- | TD | `/bmad:tea:test-design` | `$bmad-tea-testarch-test-design` | System-level or epic-level test design |
143
146
  | AT | `/bmad:tea:atdd` | `$bmad-tea-testarch-atdd` | Generate failing acceptance tests + checklist |
144
147
  | TA | `/bmad:tea:automate` | `$bmad-tea-testarch-automate` | Expand test automation coverage |
145
148
  | RV | `/bmad:tea:test-review` | `$bmad-tea-testarch-test-review` | Review test quality and score |
149
+ | NR | `/bmad:tea:nfr-assess` | `$bmad-tea-testarch-nfr` | Audit implemented NFR evidence |
146
150
  | TR | `/bmad:tea:trace` | `$bmad-tea-testarch-trace` | Trace requirements to tests + gate decision |
147
- | NR | `/bmad:tea:nfr-assess` | `$bmad-tea-testarch-nfr` | Assess non-functional requirements |
148
151
 
149
152
  ## Configuration
150
153
 
@@ -15,10 +15,60 @@
15
15
  # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
16
16
  # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
17
17
 
18
- # This example catches duplicate Signed-off-by lines.
18
+ # This example catches duplicate Signed-off-by lines and messages that
19
+ # would confuse 'git am'.
20
+
21
+ ret=0
19
22
 
20
23
  test "" = "$(grep '^Signed-off-by: ' "$1" |
21
24
  sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
22
25
  echo >&2 Duplicate Signed-off-by lines.
23
- exit 1
26
+ ret=1
24
27
  }
28
+
29
+ comment_re="$(
30
+ {
31
+ git config --get-regexp "^core\.comment(char|string)\$" ||
32
+ echo '#'
33
+ } | sed -n -e '
34
+ ${
35
+ s/^[^ ]* //
36
+ s|[][*./\]|\\&|g
37
+ s/^auto$/[#;@!$%^&|:]/
38
+ p
39
+ }'
40
+ )"
41
+ scissors_line="^${comment_re} -\{8,\} >8 -\{8,\}\$"
42
+ comment_line="^${comment_re}.*"
43
+ blank_line='^[ ]*$'
44
+ # Disallow lines starting with "diff -" or "Index: " in the body of the
45
+ # message. Stop looking if we see a scissors line.
46
+ line="$(sed -n -e "
47
+ # Skip comments and blank lines at the start of the file.
48
+ /${scissors_line}/q
49
+ /${comment_line}/d
50
+ /${blank_line}/d
51
+ # The first paragraph will become the subject header so
52
+ # does not need to be checked.
53
+ : subject
54
+ n
55
+ /${scissors_line}/q
56
+ /${blank_line}/!b subject
57
+ # Check the body of the message for problematic
58
+ # prefixes.
59
+ : body
60
+ n
61
+ /${scissors_line}/q
62
+ /${comment_line}/b body
63
+ /^diff -/{p;q;}
64
+ /^Index: /{p;q;}
65
+ b body
66
+ " "$1")"
67
+ if test -n "$line"
68
+ then
69
+ echo >&2 "Message contains a diff that will confuse 'git am'."
70
+ echo >&2 "To fix this indent the diff."
71
+ ret=1
72
+ fi
73
+
74
+ exit $ret
@@ -29,8 +29,6 @@ if ($version ne 2) {
29
29
 
30
30
  my $git_work_tree = get_working_dir();
31
31
 
32
- my $retry = 1;
33
-
34
32
  my $json_pkg;
35
33
  eval {
36
34
  require JSON::XS;
@@ -123,8 +121,7 @@ sub watchman_query {
123
121
  sub is_work_tree_watched {
124
122
  my ($output) = @_;
125
123
  my $error = $output->{error};
126
- if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
127
- $retry--;
124
+ if ($error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
128
125
  my $response = qx/watchman watch "$git_work_tree"/;
129
126
  die "Failed to make watchman watch '$git_work_tree'.\n" .
130
127
  "Falling back to scanning...\n" if $? != 0;
@@ -142,15 +139,12 @@ sub is_work_tree_watched {
142
139
  # Watchman query just to get it over with now so we won't pay
143
140
  # the cost in git to look up each individual file.
144
141
  my $o = watchman_clock();
145
- $error = $output->{error};
142
+ $error = $o->{error};
146
143
 
147
144
  die "Watchman: $error.\n" .
148
145
  "Falling back to scanning...\n" if $error;
149
146
 
150
147
  output_result($o->{clock}, ("/"));
151
- $last_update_token = $o->{clock};
152
-
153
- eval { launch_watchman() };
154
148
  return 0;
155
149
  }
156
150
 
@@ -1,2 +1,2 @@
1
1
  # pack-refs with: peeled fully-peeled sorted
2
- b0ee2a5128d0f0b9f32c30a0017722a846518349 refs/remotes/origin/main
2
+ 8734d51f24071ddbcb3617390b5fcddb4128ef77 refs/remotes/origin/main
@@ -1 +1 @@
1
- b0ee2a5128d0f0b9f32c30a0017722a846518349
1
+ 8734d51f24071ddbcb3617390b5fcddb4128ef77
@@ -0,0 +1 @@
1
+ 452c9dd80219cf7cf7fd5666f9724067cb5c5d11
@@ -1 +1 @@
1
- b0ee2a5128d0f0b9f32c30a0017722a846518349
1
+ 8734d51f24071ddbcb3617390b5fcddb4128ef77
@@ -205,12 +205,11 @@ Steps:
205
205
  **Phase 2: Planning**
206
206
 
207
207
  - PM creates PRD with NFRs
208
- - (Optional) TEA runs `nfr-assess` (Enterprise only)
209
208
 
210
209
  **Phase 3: Solutioning**
211
210
 
212
211
  - Architect creates architecture
213
- - TEA runs `test-design` (system-level) → testability review
212
+ - TEA runs `test-design` (system-level) → testability review and NFR evidence plan
214
213
  - TEA runs `framework` → test infrastructure
215
214
  - TEA runs `ci` → CI/CD pipeline
216
215
  - Architect runs `implementation-readiness` (fed by test design)
@@ -229,7 +228,7 @@ Steps:
229
228
  **Release Gate:**
230
229
 
231
230
  - (Optional) TEA runs `test-review` → final audit
232
- - (Optional) TEA runs `nfr-assess` → validate NFRs
231
+ - (Optional) TEA runs `nfr-assess` → audit NFR evidence
233
232
  - TEA runs `trace` Phase 2 → gate decision (PASS/CONCERNS/FAIL/WAIVED)
234
233
 
235
234
  **What You Get:**
@@ -396,7 +395,7 @@ flowchart TD
396
395
  | -------------------------- | --------------------------- | ----------------------------- |
397
396
  | **None** | Any model | Choose based on project needs |
398
397
  | **Light** (internal audit) | TEA Solo or Integrated | Gate decisions helpful |
399
- | **Heavy** (SOC 2, HIPAA) | TEA Integrated (Enterprise) | NFR assessment mandatory |
398
+ | **Heavy** (SOC 2, HIPAA) | TEA Integrated (Enterprise) | NFR evidence audit mandatory |
400
399
 
401
400
  ## Switching Between Models
402
401
 
@@ -444,17 +443,17 @@ Result: TEA where it adds value, skip where it doesn't
444
443
 
445
444
  ## Comparison Table
446
445
 
447
- | Aspect | No TEA | TEA Lite | TEA Solo | Integrated (Green) | Integrated (Brown) |
448
- | --------------------- | ------- | --------- | ---------- | ------------------ | ------------------ |
449
- | **BMad Required** | No | No | No | Yes | Yes |
450
- | **Learning Curve** | None | Low | Medium | High | High |
451
- | **Setup Time** | 0 | 30 min | 2 hours | 1 day | 2 days |
452
- | **Workflows Used** | 0 | 2-3 | 4-6 | 8 | 8 |
453
- | **Test Planning** | Manual | Optional | Yes | Systematic | + Regression focus |
454
- | **Quality Gates** | No | No | Optional | Yes | Yes + baseline |
455
- | **NFR Assessment** | No | No | No | Optional | Recommended |
456
- | **Coverage Tracking** | Manual | No | Optional | Yes | Yes + trending |
457
- | **Best For** | Experts | Beginners | Standalone | New projects | Legacy code |
446
+ | Aspect | No TEA | TEA Lite | TEA Solo | Integrated (Green) | Integrated (Brown) |
447
+ | ---------------------- | ------- | --------- | ---------- | ------------------ | ------------------ |
448
+ | **BMad Required** | No | No | No | Yes | Yes |
449
+ | **Learning Curve** | None | Low | Medium | High | High |
450
+ | **Setup Time** | 0 | 30 min | 2 hours | 1 day | 2 days |
451
+ | **Workflows Used** | 0 | 2-3 | 4-6 | 8 | 8 |
452
+ | **Test Planning** | Manual | Optional | Yes | Systematic | + Regression focus |
453
+ | **Quality Gates** | No | No | Optional | Yes | Yes + baseline |
454
+ | **NFR Evidence Audit** | No | No | Optional | Optional | Recommended |
455
+ | **Coverage Tracking** | Manual | No | Optional | Yes | Yes + trending |
456
+ | **Best For** | Experts | Beginners | Standalone | New projects | Legacy code |
458
457
 
459
458
  ## Real-World Examples
460
459
 
@@ -496,7 +495,7 @@ Decision: Full BMad Method + TEA Integrated
496
495
  Result:
497
496
  - Full lifecycle integration
498
497
  - Quality gates before releases
499
- - NFR assessment for enterprise customers
498
+ - NFR evidence audit for enterprise customers
500
499
  ```
501
500
 
502
501
  ### Example 2: Enterprise (TEA Integrated - Brownfield)