ma-agents 3.6.2 → 3.9.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 (975) hide show
  1. package/CONTRIBUTING.md +139 -0
  2. package/README.md +26 -11
  3. package/bin/cli.js +138 -37
  4. package/docs/deployment/vllm-nemotron.md +4 -2
  5. package/lib/.bmad-extension-plugin.build-1264-1777348888201/.claude-plugin/marketplace.json +109 -0
  6. package/lib/{bmad-extension → .bmad-extension-plugin.build-1264-1777348888201/skills}/module-help.csv +5 -5
  7. package/lib/.bmad-extension-plugin.build-1264-1777348888201/skills/module.yaml +20 -0
  8. package/lib/.bmad-extension-plugin.build-24696-1777348768444/.claude-plugin/marketplace.json +109 -0
  9. package/lib/.bmad-extension-plugin.build-24696-1777348768444/skills/module-help.csv +62 -0
  10. package/lib/.bmad-extension-plugin.build-24696-1777348768444/skills/module.yaml +20 -0
  11. package/lib/.bmad-extension-plugin.build-25428-1777348694953/.claude-plugin/marketplace.json +109 -0
  12. package/lib/.bmad-extension-plugin.build-25428-1777348694953/skills/module-help.csv +62 -0
  13. package/lib/.bmad-extension-plugin.build-25428-1777348694953/skills/module.yaml +20 -0
  14. package/lib/agents.js +32 -10
  15. package/lib/bmad-cache/bmb/.claude-plugin/marketplace.json +4 -11
  16. package/lib/bmad-cache/bmb/README.md +1 -1
  17. package/lib/bmad-cache/bmb/_git_preserved/index +0 -0
  18. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.idx +0 -0
  19. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/{pack-554778ad4e7254827618ebd2497c3f4bce9054a4.pack → pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.pack} +0 -0
  20. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.rev +0 -0
  21. package/lib/bmad-cache/bmb/_git_preserved/packed-refs +1 -1
  22. package/lib/bmad-cache/bmb/_git_preserved/refs/heads/main +1 -1
  23. package/lib/bmad-cache/bmb/_git_preserved/refs/tags/v1.7.0 +1 -0
  24. package/lib/bmad-cache/bmb/_git_preserved/shallow +1 -1
  25. package/lib/bmad-cache/bmb/package-lock.json +2 -2
  26. package/lib/bmad-cache/bmb/package.json +2 -7
  27. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/assets/customize-template.toml +62 -0
  28. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/assets/sample-customize-analyst.toml +87 -0
  29. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/assets/customize-template.toml +56 -0
  30. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/assets/sample-customize-product-brief.toml +51 -0
  31. package/lib/bmad-cache/bmb/tools/validate-doc-links.cjs +6 -1
  32. package/lib/bmad-cache/bmb/website/astro.config.mjs +5 -1
  33. package/lib/bmad-cache/cache-manifest.json +13 -11
  34. package/lib/bmad-cache/cis/.claude-plugin/marketplace.json +1 -1
  35. package/lib/bmad-cache/cis/README.md +1 -1
  36. package/lib/bmad-cache/cis/_git_preserved/index +0 -0
  37. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-cad8ff313ea5db860ddcc7780f03917dcba1da8d.idx +0 -0
  38. package/lib/bmad-cache/cis/_git_preserved/objects/pack/{pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.pack → pack-cad8ff313ea5db860ddcc7780f03917dcba1da8d.pack} +0 -0
  39. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-cad8ff313ea5db860ddcc7780f03917dcba1da8d.rev +0 -0
  40. package/lib/bmad-cache/cis/_git_preserved/packed-refs +1 -1
  41. package/lib/bmad-cache/cis/_git_preserved/refs/heads/main +1 -1
  42. package/lib/bmad-cache/cis/_git_preserved/shallow +1 -1
  43. package/lib/bmad-cache/cis/package.json +1 -1
  44. package/lib/bmad-cache/cis/src/module.yaml +49 -0
  45. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-brainstorming-coach/customize.toml +38 -0
  46. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-creative-problem-solver/customize.toml +38 -0
  47. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-design-thinking-coach/customize.toml +39 -0
  48. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-innovation-strategist/customize.toml +38 -0
  49. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-presentation-master/customize.toml +73 -0
  50. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-storyteller/customize.toml +60 -0
  51. package/lib/bmad-cache/cis/src/skills/bmad-cis-design-thinking/customize.toml +41 -0
  52. package/lib/bmad-cache/cis/src/skills/bmad-cis-innovation-strategy/customize.toml +41 -0
  53. package/lib/bmad-cache/cis/src/skills/bmad-cis-problem-solving/customize.toml +42 -0
  54. package/lib/bmad-cache/cis/src/skills/bmad-cis-storytelling/customize.toml +41 -0
  55. package/lib/bmad-cache/cis/tools/build-docs.mjs +8 -0
  56. package/lib/bmad-cache/cis/website/astro.config.mjs +34 -4
  57. package/lib/bmad-cache/cis/website/src/content/config.ts +2 -1
  58. package/lib/bmad-cache/cis/website/src/content/i18n/zh-CN.json +28 -0
  59. package/lib/bmad-cache/cis/website/src/lib/locales.mjs +27 -0
  60. package/lib/bmad-cache/gds/.claude-plugin/marketplace.json +7 -6
  61. package/lib/bmad-cache/gds/README.md +5 -3
  62. package/lib/bmad-cache/gds/_git_preserved/index +0 -0
  63. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-c1322f7c8531a89dc4f3f34c4955d194f286c1e6.idx +0 -0
  64. package/lib/bmad-cache/gds/_git_preserved/objects/pack/{pack-ac967149d58fba215d07238ad8881bdbdad5c9c3.pack → pack-c1322f7c8531a89dc4f3f34c4955d194f286c1e6.pack} +0 -0
  65. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-c1322f7c8531a89dc4f3f34c4955d194f286c1e6.rev +0 -0
  66. package/lib/bmad-cache/gds/_git_preserved/packed-refs +1 -1
  67. package/lib/bmad-cache/gds/_git_preserved/refs/heads/main +1 -1
  68. package/lib/bmad-cache/gds/_git_preserved/shallow +1 -1
  69. package/lib/bmad-cache/gds/package.json +1 -1
  70. package/lib/bmad-cache/gds/src/agents/gds-agent-game-architect/customize.toml +57 -0
  71. package/lib/bmad-cache/gds/src/agents/gds-agent-game-designer/customize.toml +59 -0
  72. package/lib/bmad-cache/gds/src/agents/gds-agent-game-dev/customize.toml +129 -0
  73. package/lib/bmad-cache/gds/src/agents/gds-agent-game-solo-dev/customize.toml +60 -0
  74. package/lib/bmad-cache/gds/src/agents/gds-agent-tech-writer/customize.toml +65 -0
  75. package/lib/bmad-cache/gds/src/module-help.csv +4 -4
  76. package/lib/bmad-cache/gds/src/module.yaml +43 -1
  77. package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-brainstorm-game/customize.toml +41 -0
  78. package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-create-game-brief/customize.toml +41 -0
  79. package/lib/bmad-cache/gds/src/workflows/1-preproduction/research/gds-domain-research/customize.toml +41 -0
  80. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-gdd/customize.toml +41 -0
  81. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-narrative/customize.toml +41 -0
  82. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-prd/customize.toml +41 -0
  83. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-ux-design/customize.toml +41 -0
  84. package/lib/bmad-cache/gds/src/workflows/2-design/gds-edit-gdd/customize.toml +41 -0
  85. package/lib/bmad-cache/gds/src/workflows/2-design/gds-edit-prd/customize.toml +41 -0
  86. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-gdd/customize.toml +41 -0
  87. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-gdd/data/genre-complexity.csv +26 -0
  88. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/customize.toml +41 -0
  89. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/data/domain-complexity.csv +15 -0
  90. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/data/project-types.csv +11 -0
  91. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-check-implementation-readiness/customize.toml +41 -0
  92. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-create-epics-and-stories/customize.toml +41 -0
  93. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/customize.toml +41 -0
  94. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-generate-project-context/customize.toml +41 -0
  95. package/lib/bmad-cache/gds/src/workflows/4-production/gds-code-review/customize.toml +41 -0
  96. package/lib/bmad-cache/gds/src/workflows/4-production/gds-correct-course/customize.toml +41 -0
  97. package/lib/bmad-cache/gds/src/workflows/4-production/gds-create-story/customize.toml +41 -0
  98. package/lib/bmad-cache/gds/src/workflows/4-production/gds-dev-story/customize.toml +41 -0
  99. package/lib/bmad-cache/gds/src/workflows/4-production/gds-retrospective/customize.toml +41 -0
  100. package/lib/bmad-cache/gds/src/workflows/4-production/gds-sprint-planning/customize.toml +41 -0
  101. package/lib/bmad-cache/gds/src/workflows/4-production/gds-sprint-status/customize.toml +41 -0
  102. package/lib/bmad-cache/gds/src/workflows/gametest/gds-e2e-scaffold/customize.toml +41 -0
  103. package/lib/bmad-cache/gds/src/workflows/gametest/gds-performance-test/customize.toml +41 -0
  104. package/lib/bmad-cache/gds/src/workflows/gametest/gds-playtest-plan/customize.toml +41 -0
  105. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-automate/customize.toml +41 -0
  106. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-design/customize.toml +41 -0
  107. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-framework/customize.toml +41 -0
  108. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-review/customize.toml +41 -0
  109. package/lib/bmad-cache/gds/src/workflows/gds-document-project/customize.toml +41 -0
  110. package/lib/bmad-cache/gds/src/workflows/gds-quick-flow/gds-quick-dev/customize.toml +41 -0
  111. package/lib/bmad-cache/tea/.claude-plugin/marketplace.json +1 -1
  112. package/lib/bmad-cache/tea/.github/CODE_OF_CONDUCT.md +128 -0
  113. package/lib/bmad-cache/tea/.github/FUNDING.yaml +15 -0
  114. package/lib/bmad-cache/tea/.github/ISSUE_TEMPLATE/config.yaml +11 -0
  115. package/lib/bmad-cache/tea/.github/ISSUE_TEMPLATE/feature_request.md +70 -0
  116. package/lib/bmad-cache/tea/.github/ISSUE_TEMPLATE/issue.md +61 -0
  117. package/lib/bmad-cache/tea/.github/workflows/docs.yaml +66 -0
  118. package/lib/bmad-cache/tea/.github/workflows/manual-release.yaml +216 -0
  119. package/lib/bmad-cache/tea/.github/workflows/quality.yaml +117 -0
  120. package/lib/bmad-cache/tea/.vscode/settings.json +47 -0
  121. package/lib/bmad-cache/tea/README.md +63 -55
  122. package/lib/bmad-cache/tea/_git_preserved/index +0 -0
  123. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-9b16db8eb5022c18cef1f0a27d63b6e0f4bc2b2a.idx +0 -0
  124. package/lib/bmad-cache/tea/_git_preserved/objects/pack/{pack-e75385cd52b693dbb8a3b2afb50058952543b3a2.pack → pack-9b16db8eb5022c18cef1f0a27d63b6e0f4bc2b2a.pack} +0 -0
  125. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-9b16db8eb5022c18cef1f0a27d63b6e0f4bc2b2a.rev +0 -0
  126. package/lib/bmad-cache/tea/_git_preserved/packed-refs +1 -1
  127. package/lib/bmad-cache/tea/_git_preserved/refs/heads/main +1 -1
  128. package/lib/bmad-cache/tea/_git_preserved/shallow +1 -1
  129. package/lib/bmad-cache/tea/docs/explanation/engagement-models.md +1 -1
  130. package/lib/bmad-cache/tea/docs/explanation/tea-overview.md +1 -1
  131. package/lib/bmad-cache/tea/docs/glossary/index.md +1 -1
  132. package/lib/bmad-cache/tea/docs/how-to/customization/extend-tea-with-custom-workflows.md +29 -0
  133. package/lib/bmad-cache/tea/docs/how-to/workflows/run-trace.md +27 -20
  134. package/lib/bmad-cache/tea/docs/how-to/workflows/teach-me-testing.md +2 -2
  135. package/lib/bmad-cache/tea/docs/reference/commands.md +3 -3
  136. package/lib/bmad-cache/tea/docs/reference/troubleshooting.md +36 -0
  137. package/lib/bmad-cache/tea/docs/tutorials/learn-testing-tea-academy.md +1 -1
  138. package/lib/bmad-cache/tea/package-lock.json +2 -2
  139. package/lib/bmad-cache/tea/package.json +3 -3
  140. package/lib/bmad-cache/tea/src/agents/bmad-tea/SKILL.md +54 -44
  141. package/lib/bmad-cache/tea/src/agents/bmad-tea/customize.toml +104 -0
  142. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/contract-testing.md +32 -15
  143. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pact-broker-webhooks.md +237 -0
  144. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pact-consumer-framework-setup.md +134 -12
  145. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pact-mcp.md +1 -0
  146. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
  147. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pactjs-utils-overview.md +15 -12
  148. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
  149. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
  150. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-module-setup.md +122 -0
  151. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-providers.md +155 -0
  152. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-risk-guidance.md +114 -0
  153. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-template-matchers.md +160 -0
  154. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-testing-fundamentals.md +42 -0
  155. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-timeout-error.md +130 -0
  156. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-waiting-querying.md +167 -0
  157. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/tea-index.csv +13 -4
  158. package/lib/bmad-cache/tea/src/module.yaml +8 -0
  159. package/lib/bmad-cache/tea/src/workflows/testarch/README.md +5 -3
  160. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/SKILL.md +124 -1
  161. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/checklist.md +3 -2
  162. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/customize.toml +40 -0
  163. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/instructions.md +7 -0
  164. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-01-init.md +1 -1
  165. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-01b-continue.md +1 -1
  166. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-02-assess.md +1 -1
  167. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-01.md +1 -1
  168. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-02.md +1 -1
  169. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-03.md +1 -1
  170. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-04.md +1 -1
  171. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-05.md +1 -1
  172. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-06.md +1 -1
  173. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-07.md +1 -1
  174. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-05-completion.md +8 -0
  175. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-e/step-e-01-assess-workflow.md +2 -2
  176. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-e/step-e-02-apply-edits.md +9 -1
  177. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-v/step-v-01-validate.md +12 -3
  178. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/SKILL.md +80 -1
  179. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/customize.toml +40 -0
  180. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/instructions.md +2 -2
  181. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/contract-testing.md +32 -15
  182. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-broker-webhooks.md +237 -0
  183. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-consumer-framework-setup.md +134 -12
  184. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-mcp.md +1 -0
  185. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
  186. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-overview.md +15 -12
  187. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
  188. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
  189. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-module-setup.md +122 -0
  190. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-providers.md +155 -0
  191. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-risk-guidance.md +114 -0
  192. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-template-matchers.md +160 -0
  193. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-testing-fundamentals.md +42 -0
  194. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-timeout-error.md +130 -0
  195. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-waiting-querying.md +167 -0
  196. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/tea-index.csv +13 -4
  197. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-01-preflight-and-context.md +3 -3
  198. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-02-generation-mode.md +1 -1
  199. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-03-test-strategy.md +1 -1
  200. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-04-generate-tests.md +1 -1
  201. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-04a-subagent-api-failing.md +1 -1
  202. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-04c-aggregate.md +1 -1
  203. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-05-validate-and-complete.md +8 -0
  204. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-e/step-01-assess.md +1 -1
  205. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-e/step-02-apply-edit.md +8 -0
  206. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-v/step-01-validate.md +9 -1
  207. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/SKILL.md +80 -1
  208. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/customize.toml +40 -0
  209. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/instructions.md +2 -2
  210. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/contract-testing.md +18 -2
  211. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-broker-webhooks.md +237 -0
  212. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-consumer-framework-setup.md +134 -12
  213. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-mcp.md +1 -0
  214. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
  215. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
  216. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-module-setup.md +122 -0
  217. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-providers.md +155 -0
  218. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-risk-guidance.md +114 -0
  219. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-template-matchers.md +160 -0
  220. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-testing-fundamentals.md +42 -0
  221. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-timeout-error.md +130 -0
  222. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-waiting-querying.md +167 -0
  223. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/tea-index.csv +12 -4
  224. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-01-preflight-and-context.md +1 -1
  225. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-02-identify-targets.md +1 -1
  226. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-03-generate-tests.md +1 -1
  227. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-03a-subagent-api.md +9 -1
  228. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-03c-aggregate.md +1 -1
  229. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-04-validate-and-summarize.md +8 -0
  230. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-e/step-01-assess.md +1 -1
  231. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-e/step-02-apply-edit.md +8 -0
  232. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-v/step-01-validate.md +9 -1
  233. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/SKILL.md +80 -1
  234. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/customize.toml +40 -0
  235. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/instructions.md +2 -2
  236. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/contract-testing.md +18 -2
  237. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-broker-webhooks.md +237 -0
  238. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-consumer-framework-setup.md +134 -12
  239. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-mcp.md +1 -0
  240. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
  241. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
  242. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-module-setup.md +122 -0
  243. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-providers.md +155 -0
  244. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-risk-guidance.md +114 -0
  245. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-template-matchers.md +160 -0
  246. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-testing-fundamentals.md +42 -0
  247. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-timeout-error.md +130 -0
  248. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-waiting-querying.md +167 -0
  249. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/tea-index.csv +12 -4
  250. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-01-preflight.md +1 -1
  251. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-02-generate-pipeline.md +15 -7
  252. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-03-configure-quality-gates.md +7 -2
  253. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-04-validate-and-summary.md +8 -0
  254. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-e/step-01-assess.md +1 -1
  255. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-e/step-02-apply-edit.md +8 -0
  256. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-v/step-01-validate.md +9 -1
  257. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/SKILL.md +80 -1
  258. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/customize.toml +40 -0
  259. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/instructions.md +2 -2
  260. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/contract-testing.md +18 -2
  261. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-broker-webhooks.md +237 -0
  262. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-consumer-framework-setup.md +134 -12
  263. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-mcp.md +1 -0
  264. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
  265. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
  266. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-module-setup.md +122 -0
  267. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-providers.md +155 -0
  268. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-risk-guidance.md +114 -0
  269. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-template-matchers.md +160 -0
  270. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-testing-fundamentals.md +42 -0
  271. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-timeout-error.md +130 -0
  272. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-waiting-querying.md +167 -0
  273. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/tea-index.csv +12 -4
  274. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-01-preflight.md +1 -1
  275. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-02-select-framework.md +1 -1
  276. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-03-scaffold-framework.md +11 -7
  277. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-04-docs-and-scripts.md +1 -1
  278. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-05-validate-and-summary.md +8 -0
  279. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-e/step-01-assess.md +1 -1
  280. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-e/step-02-apply-edit.md +8 -0
  281. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-v/step-01-validate.md +9 -1
  282. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/SKILL.md +80 -1
  283. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/customize.toml +40 -0
  284. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/instructions.md +2 -2
  285. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/contract-testing.md +18 -2
  286. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-broker-webhooks.md +237 -0
  287. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-consumer-framework-setup.md +134 -12
  288. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-mcp.md +1 -0
  289. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
  290. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
  291. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-module-setup.md +122 -0
  292. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-providers.md +155 -0
  293. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-risk-guidance.md +114 -0
  294. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-template-matchers.md +160 -0
  295. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-testing-fundamentals.md +42 -0
  296. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-timeout-error.md +130 -0
  297. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-waiting-querying.md +167 -0
  298. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/tea-index.csv +12 -4
  299. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-01-load-context.md +1 -1
  300. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-02-define-thresholds.md +1 -1
  301. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-03-gather-evidence.md +1 -1
  302. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04-evaluate-and-score.md +1 -1
  303. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04e-aggregate-nfr.md +1 -1
  304. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-05-generate-report.md +8 -0
  305. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-e/step-01-assess.md +1 -1
  306. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-e/step-02-apply-edit.md +8 -0
  307. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-v/step-01-validate.md +9 -1
  308. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/SKILL.md +82 -1
  309. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/customize.toml +40 -0
  310. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/instructions.md +2 -2
  311. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/contract-testing.md +18 -2
  312. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-broker-webhooks.md +237 -0
  313. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-consumer-framework-setup.md +134 -12
  314. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-mcp.md +1 -0
  315. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
  316. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
  317. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-module-setup.md +122 -0
  318. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-providers.md +155 -0
  319. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-risk-guidance.md +114 -0
  320. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-template-matchers.md +160 -0
  321. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-testing-fundamentals.md +42 -0
  322. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-timeout-error.md +130 -0
  323. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-waiting-querying.md +167 -0
  324. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/tea-index.csv +12 -4
  325. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-01-detect-mode.md +7 -1
  326. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-01b-resume.md +29 -15
  327. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-02-load-context.md +7 -1
  328. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-03-risk-and-testability.md +7 -1
  329. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-04-coverage-plan.md +7 -1
  330. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-05-generate-output.md +14 -0
  331. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-e/step-01-assess.md +1 -1
  332. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-e/step-02-apply-edit.md +8 -0
  333. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-v/step-01-validate.md +9 -1
  334. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-architecture-template.md +3 -0
  335. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-qa-template.md +3 -0
  336. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-template.md +3 -0
  337. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/SKILL.md +80 -1
  338. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/customize.toml +40 -0
  339. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/instructions.md +2 -2
  340. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/contract-testing.md +18 -2
  341. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-broker-webhooks.md +237 -0
  342. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-consumer-framework-setup.md +134 -12
  343. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-mcp.md +1 -0
  344. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
  345. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
  346. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-module-setup.md +122 -0
  347. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-providers.md +155 -0
  348. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-risk-guidance.md +114 -0
  349. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-template-matchers.md +160 -0
  350. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-testing-fundamentals.md +42 -0
  351. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-timeout-error.md +130 -0
  352. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-waiting-querying.md +167 -0
  353. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/tea-index.csv +12 -4
  354. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-01-load-context.md +3 -3
  355. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-02-discover-tests.md +1 -1
  356. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-03-quality-evaluation.md +1 -1
  357. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-03a-subagent-determinism.md +43 -0
  358. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-03f-aggregate-scores.md +1 -1
  359. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-04-generate-report.md +8 -0
  360. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-e/step-01-assess.md +1 -1
  361. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-e/step-02-apply-edit.md +8 -0
  362. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-v/step-01-validate.md +9 -1
  363. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/SKILL.md +82 -1
  364. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/checklist.md +42 -18
  365. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/customize.toml +40 -0
  366. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/instructions.md +6 -4
  367. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/contract-testing.md +18 -2
  368. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-broker-webhooks.md +237 -0
  369. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-consumer-framework-setup.md +134 -12
  370. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-mcp.md +1 -0
  371. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
  372. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
  373. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-module-setup.md +122 -0
  374. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-providers.md +155 -0
  375. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-risk-guidance.md +114 -0
  376. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-template-matchers.md +160 -0
  377. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-testing-fundamentals.md +42 -0
  378. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-timeout-error.md +130 -0
  379. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-waiting-querying.md +167 -0
  380. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/tea-index.csv +12 -4
  381. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-01-load-context.md +74 -13
  382. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-01b-resume.md +1 -1
  383. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-02-discover-tests.md +24 -4
  384. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-03-map-criteria.md +15 -11
  385. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-04-analyze-gaps.md +210 -3
  386. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-05-gate-decision.md +477 -62
  387. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-e/step-01-assess.md +1 -1
  388. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-e/step-02-apply-edit.md +8 -0
  389. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-v/step-01-validate.md +9 -1
  390. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/trace-template.md +10 -2
  391. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/workflow-plan.md +14 -11
  392. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/workflow.yaml +24 -0
  393. package/lib/bmad-cache/tea/test/test-installation-components.js +210 -66
  394. package/lib/bmad-cache/tea/test/test-knowledge-base.js +6 -1
  395. package/lib/bmad-cache/tea/test/test-release-metadata.js +71 -0
  396. package/lib/bmad-cache/tea/tools/validate-agent-schema.js +73 -0
  397. package/lib/bmad-customize/bmm-qa.customize.yaml +1 -1
  398. package/lib/bmad-extension/.claude-plugin/marketplace.json.template +117 -0
  399. package/lib/bmad-extension/skills/add-sprint/SKILL.md +39 -0
  400. package/lib/bmad-extension/skills/add-to-sprint/SKILL.md +39 -0
  401. package/lib/bmad-extension/skills/bmad-dev-story/workflow.md +39 -0
  402. package/lib/bmad-extension/skills/bmad-sprint-planning/workflow.md +41 -0
  403. package/lib/bmad-extension/skills/bmad-sprint-status/workflow.md +39 -0
  404. package/lib/bmad-extension/skills/cleanup-done/SKILL.md +39 -0
  405. package/lib/bmad-extension/skills/close-sprint/SKILL.md +39 -0
  406. package/lib/bmad-extension/skills/generate-backlog/SKILL.md +41 -0
  407. package/lib/bmad-extension/skills/ma-agent-cyber/.gitkeep +0 -0
  408. package/lib/bmad-extension/skills/ma-agent-cyber/SKILL.md +49 -0
  409. package/lib/bmad-extension/skills/ma-agent-cyber/bmad-skill-manifest.yaml +11 -0
  410. package/lib/bmad-extension/skills/ma-agent-devops/.gitkeep +0 -0
  411. package/lib/bmad-extension/skills/ma-agent-devops/SKILL.md +49 -0
  412. package/lib/bmad-extension/skills/ma-agent-devops/bmad-skill-manifest.yaml +11 -0
  413. package/lib/bmad-extension/skills/ma-agent-ml/.gitkeep +0 -0
  414. package/lib/bmad-extension/skills/ma-agent-ml/SKILL.md +59 -0
  415. package/lib/bmad-extension/skills/ma-agent-ml/bmad-skill-manifest.yaml +11 -0
  416. package/lib/bmad-extension/skills/ma-agent-sqa/.gitkeep +0 -0
  417. package/lib/bmad-extension/skills/ma-agent-sqa/SKILL.md +59 -0
  418. package/lib/bmad-extension/skills/ma-agent-sqa/bmad-skill-manifest.yaml +11 -0
  419. package/lib/bmad-extension/skills/ma-agent-sre/.gitkeep +0 -0
  420. package/lib/bmad-extension/skills/ma-agent-sre/SKILL.md +49 -0
  421. package/lib/bmad-extension/skills/ma-agent-sre/bmad-skill-manifest.yaml +11 -0
  422. package/lib/bmad-extension/skills/modify-sprint/SKILL.md +39 -0
  423. package/lib/bmad-extension/skills/module-help.csv +62 -0
  424. package/lib/bmad-extension/skills/module.yaml +20 -0
  425. package/lib/bmad-extension/skills/prioritize-backlog/SKILL.md +39 -0
  426. package/lib/bmad-extension/skills/remove-from-sprint/SKILL.md +39 -0
  427. package/lib/bmad-extension/skills/sprint-status-view/SKILL.md +39 -0
  428. package/lib/bmad-extension-plugin/.claude-plugin/marketplace.json +109 -0
  429. package/lib/bmad-extension-plugin/skills/add-sprint/SKILL.md +214 -0
  430. package/lib/bmad-extension-plugin/skills/add-sprint/bmad-skill-manifest.yaml +3 -0
  431. package/lib/bmad-extension-plugin/skills/add-to-sprint/SKILL.md +282 -0
  432. package/lib/bmad-extension-plugin/skills/add-to-sprint/bmad-skill-manifest.yaml +3 -0
  433. package/lib/bmad-extension-plugin/skills/bmad-dev-story/SKILL.md +6 -0
  434. package/lib/bmad-extension-plugin/skills/bmad-dev-story/bmad-skill-manifest.yaml +3 -0
  435. package/lib/bmad-extension-plugin/skills/bmad-dev-story/checklist.md +80 -0
  436. package/lib/bmad-extension-plugin/skills/bmad-dev-story/workflow.md +548 -0
  437. package/lib/bmad-extension-plugin/skills/bmad-sprint-planning/SKILL.md +6 -0
  438. package/lib/bmad-extension-plugin/skills/bmad-sprint-planning/bmad-skill-manifest.yaml +3 -0
  439. package/lib/bmad-extension-plugin/skills/bmad-sprint-planning/checklist.md +74 -0
  440. package/lib/bmad-extension-plugin/skills/bmad-sprint-planning/sprint-status-template.yaml +89 -0
  441. package/lib/bmad-extension-plugin/skills/bmad-sprint-planning/workflow.md +413 -0
  442. package/lib/bmad-extension-plugin/skills/bmad-sprint-status/SKILL.md +6 -0
  443. package/lib/bmad-extension-plugin/skills/bmad-sprint-status/bmad-skill-manifest.yaml +3 -0
  444. package/lib/bmad-extension-plugin/skills/bmad-sprint-status/workflow.md +473 -0
  445. package/lib/bmad-extension-plugin/skills/cleanup-done/.gitkeep +0 -0
  446. package/lib/bmad-extension-plugin/skills/cleanup-done/SKILL.md +254 -0
  447. package/lib/bmad-extension-plugin/skills/cleanup-done/bmad-skill-manifest.yaml +3 -0
  448. package/lib/bmad-extension-plugin/skills/close-sprint/.gitkeep +0 -0
  449. package/lib/bmad-extension-plugin/skills/close-sprint/SKILL.md +418 -0
  450. package/lib/bmad-extension-plugin/skills/close-sprint/bmad-skill-manifest.yaml +3 -0
  451. package/lib/bmad-extension-plugin/skills/create-bug-story/.gitkeep +0 -0
  452. package/lib/bmad-extension-plugin/skills/create-bug-story/SKILL.md +195 -0
  453. package/lib/bmad-extension-plugin/skills/create-bug-story/bmad-skill-manifest.yaml +3 -0
  454. package/lib/bmad-extension-plugin/skills/cyber-generate-certs/.gitkeep +0 -0
  455. package/lib/bmad-extension-plugin/skills/cyber-generate-certs/SKILL.md +27 -0
  456. package/lib/bmad-extension-plugin/skills/cyber-generate-certs/bmad-skill-manifest.yaml +3 -0
  457. package/lib/bmad-extension-plugin/skills/cyber-immunity-estimation/.gitkeep +0 -0
  458. package/lib/bmad-extension-plugin/skills/cyber-immunity-estimation/SKILL.md +29 -0
  459. package/lib/bmad-extension-plugin/skills/cyber-immunity-estimation/bmad-skill-manifest.yaml +3 -0
  460. package/lib/bmad-extension-plugin/skills/cyber-security-audit/.gitkeep +0 -0
  461. package/lib/bmad-extension-plugin/skills/cyber-security-audit/SKILL.md +27 -0
  462. package/lib/bmad-extension-plugin/skills/cyber-security-audit/bmad-skill-manifest.yaml +3 -0
  463. package/lib/bmad-extension-plugin/skills/cyber-vault-secrets/.gitkeep +0 -0
  464. package/lib/bmad-extension-plugin/skills/cyber-vault-secrets/SKILL.md +28 -0
  465. package/lib/bmad-extension-plugin/skills/cyber-vault-secrets/bmad-skill-manifest.yaml +3 -0
  466. package/lib/bmad-extension-plugin/skills/cyber-verify-docker-users/.gitkeep +0 -0
  467. package/lib/bmad-extension-plugin/skills/cyber-verify-docker-users/SKILL.md +23 -0
  468. package/lib/bmad-extension-plugin/skills/cyber-verify-docker-users/bmad-skill-manifest.yaml +3 -0
  469. package/lib/bmad-extension-plugin/skills/cyber-verify-image-signature/.gitkeep +0 -0
  470. package/lib/bmad-extension-plugin/skills/cyber-verify-image-signature/SKILL.md +22 -0
  471. package/lib/bmad-extension-plugin/skills/cyber-verify-image-signature/bmad-skill-manifest.yaml +3 -0
  472. package/lib/bmad-extension-plugin/skills/cyber-vulnerability-scan/.gitkeep +0 -0
  473. package/lib/bmad-extension-plugin/skills/cyber-vulnerability-scan/SKILL.md +28 -0
  474. package/lib/bmad-extension-plugin/skills/cyber-vulnerability-scan/bmad-skill-manifest.yaml +3 -0
  475. package/lib/bmad-extension-plugin/skills/devops-configure-infrastructure/.gitkeep +0 -0
  476. package/lib/bmad-extension-plugin/skills/devops-configure-infrastructure/SKILL.md +27 -0
  477. package/lib/bmad-extension-plugin/skills/devops-configure-infrastructure/bmad-skill-manifest.yaml +3 -0
  478. package/lib/bmad-extension-plugin/skills/devops-disconnected-deployment/.gitkeep +0 -0
  479. package/lib/bmad-extension-plugin/skills/devops-disconnected-deployment/SKILL.md +27 -0
  480. package/lib/bmad-extension-plugin/skills/devops-disconnected-deployment/bmad-skill-manifest.yaml +3 -0
  481. package/lib/bmad-extension-plugin/skills/devops-docker-compose-setup/.gitkeep +0 -0
  482. package/lib/bmad-extension-plugin/skills/devops-docker-compose-setup/SKILL.md +26 -0
  483. package/lib/bmad-extension-plugin/skills/devops-docker-compose-setup/bmad-skill-manifest.yaml +3 -0
  484. package/lib/bmad-extension-plugin/skills/devops-manage-helm/.gitkeep +0 -0
  485. package/lib/bmad-extension-plugin/skills/devops-manage-helm/SKILL.md +28 -0
  486. package/lib/bmad-extension-plugin/skills/devops-manage-helm/bmad-skill-manifest.yaml +3 -0
  487. package/lib/bmad-extension-plugin/skills/devops-sign-docker-image/.gitkeep +0 -0
  488. package/lib/bmad-extension-plugin/skills/devops-sign-docker-image/SKILL.md +24 -0
  489. package/lib/bmad-extension-plugin/skills/devops-sign-docker-image/bmad-skill-manifest.yaml +3 -0
  490. package/lib/bmad-extension-plugin/skills/generate-backlog/.gitkeep +0 -0
  491. package/lib/bmad-extension-plugin/skills/generate-backlog/SKILL.md +236 -0
  492. package/lib/bmad-extension-plugin/skills/generate-backlog/bmad-skill-manifest.yaml +3 -0
  493. package/lib/bmad-extension-plugin/skills/ma-agent-cyber/.gitkeep +0 -0
  494. package/lib/{bmad-extension/skills/bmad-ma-agent-cyber → bmad-extension-plugin/skills/ma-agent-cyber}/SKILL.md +1 -1
  495. package/lib/{bmad-extension/skills/bmad-ma-agent-cyber → bmad-extension-plugin/skills/ma-agent-cyber}/bmad-skill-manifest.yaml +1 -1
  496. package/lib/bmad-extension-plugin/skills/ma-agent-devops/.gitkeep +0 -0
  497. package/lib/{bmad-extension/skills/bmad-ma-agent-devops → bmad-extension-plugin/skills/ma-agent-devops}/SKILL.md +1 -1
  498. package/lib/{bmad-extension/skills/bmad-ma-agent-devops → bmad-extension-plugin/skills/ma-agent-devops}/bmad-skill-manifest.yaml +1 -1
  499. package/lib/bmad-extension-plugin/skills/ma-agent-ml/.gitkeep +0 -0
  500. package/lib/{bmad-extension/skills/bmad-ma-agent-ml → bmad-extension-plugin/skills/ma-agent-ml}/SKILL.md +1 -1
  501. package/lib/{bmad-extension/skills/bmad-ma-agent-ml → bmad-extension-plugin/skills/ma-agent-ml}/bmad-skill-manifest.yaml +1 -1
  502. package/lib/bmad-extension-plugin/skills/ma-agent-sqa/.gitkeep +0 -0
  503. package/lib/{bmad-extension/skills/bmad-ma-agent-sqa → bmad-extension-plugin/skills/ma-agent-sqa}/SKILL.md +1 -1
  504. package/lib/{bmad-extension/skills/bmad-ma-agent-sqa → bmad-extension-plugin/skills/ma-agent-sqa}/bmad-skill-manifest.yaml +1 -1
  505. package/lib/bmad-extension-plugin/skills/ma-agent-sre/.gitkeep +0 -0
  506. package/lib/{bmad-extension/skills/bmad-ma-agent-sre → bmad-extension-plugin/skills/ma-agent-sre}/SKILL.md +1 -1
  507. package/lib/{bmad-extension/skills/bmad-ma-agent-sre → bmad-extension-plugin/skills/ma-agent-sre}/bmad-skill-manifest.yaml +1 -1
  508. package/lib/bmad-extension-plugin/skills/mil498-ocd/.gitkeep +0 -0
  509. package/lib/bmad-extension-plugin/skills/mil498-ocd/SKILL.md +30 -0
  510. package/lib/bmad-extension-plugin/skills/mil498-ocd/bmad-skill-manifest.yaml +5 -0
  511. package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/01-discover-project-artifacts.md +26 -0
  512. package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/02-load-template.md +10 -0
  513. package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/03-generate-document.md +90 -0
  514. package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/04-validate.md +14 -0
  515. package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/05-review.md +15 -0
  516. package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/06-save.md +15 -0
  517. package/lib/bmad-extension-plugin/skills/mil498-ocd/template.md +169 -0
  518. package/lib/bmad-extension-plugin/skills/mil498-requirement-quality/.gitkeep +0 -0
  519. package/lib/bmad-extension-plugin/skills/mil498-requirement-quality/SKILL.md +105 -0
  520. package/lib/bmad-extension-plugin/skills/mil498-requirement-quality/bmad-skill-manifest.yaml +5 -0
  521. package/lib/bmad-extension-plugin/skills/mil498-sdd/.gitkeep +0 -0
  522. package/lib/bmad-extension-plugin/skills/mil498-sdd/SKILL.md +30 -0
  523. package/lib/bmad-extension-plugin/skills/mil498-sdd/bmad-skill-manifest.yaml +5 -0
  524. package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/01-discover-project-artifacts.md +50 -0
  525. package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/02-load-template.md +10 -0
  526. package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/03-generate-document.md +98 -0
  527. package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/04-validate.md +16 -0
  528. package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/05-review.md +15 -0
  529. package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/06-save.md +19 -0
  530. package/lib/bmad-extension-plugin/skills/mil498-sdd/template.md +163 -0
  531. package/lib/bmad-extension-plugin/skills/mil498-sdp/.gitkeep +0 -0
  532. package/lib/bmad-extension-plugin/skills/mil498-sdp/SKILL.md +30 -0
  533. package/lib/bmad-extension-plugin/skills/mil498-sdp/bmad-skill-manifest.yaml +5 -0
  534. package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/01-discover-project-artifacts.md +32 -0
  535. package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/02-load-template.md +10 -0
  536. package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/03-generate-document.md +187 -0
  537. package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/04-validate.md +13 -0
  538. package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/05-review.md +15 -0
  539. package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/06-save.md +14 -0
  540. package/lib/bmad-extension-plugin/skills/mil498-sdp/template.md +307 -0
  541. package/lib/bmad-extension-plugin/skills/mil498-srs/.gitkeep +0 -0
  542. package/lib/bmad-extension-plugin/skills/mil498-srs/SKILL.md +30 -0
  543. package/lib/bmad-extension-plugin/skills/mil498-srs/bmad-skill-manifest.yaml +5 -0
  544. package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/01-discover-project-artifacts.md +42 -0
  545. package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/02-load-template.md +10 -0
  546. package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/03-generate-document.md +100 -0
  547. package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/04-validate.md +16 -0
  548. package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/05-review.md +15 -0
  549. package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/06-save.md +18 -0
  550. package/lib/bmad-extension-plugin/skills/mil498-srs/template.md +219 -0
  551. package/lib/bmad-extension-plugin/skills/mil498-ssdd/.gitkeep +0 -0
  552. package/lib/bmad-extension-plugin/skills/mil498-ssdd/SKILL.md +32 -0
  553. package/lib/bmad-extension-plugin/skills/mil498-ssdd/bmad-skill-manifest.yaml +5 -0
  554. package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/01-discover-project-artifacts.md +32 -0
  555. package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/02-load-template.md +10 -0
  556. package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/03-csci-discovery-interview.md +43 -0
  557. package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/04-generate-document.md +96 -0
  558. package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/05-validate.md +18 -0
  559. package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/06-review.md +16 -0
  560. package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/07-save.md +16 -0
  561. package/lib/bmad-extension-plugin/skills/mil498-ssdd/template.md +154 -0
  562. package/lib/bmad-extension-plugin/skills/mil498-sss/.gitkeep +0 -0
  563. package/lib/bmad-extension-plugin/skills/mil498-sss/SKILL.md +31 -0
  564. package/lib/bmad-extension-plugin/skills/mil498-sss/bmad-skill-manifest.yaml +5 -0
  565. package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/01-discover-project-artifacts.md +31 -0
  566. package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/02-load-template.md +10 -0
  567. package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/03-generate-document.md +108 -0
  568. package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/04-validate.md +16 -0
  569. package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/05-review.md +15 -0
  570. package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/06-save.md +15 -0
  571. package/lib/bmad-extension-plugin/skills/mil498-sss/template.md +225 -0
  572. package/lib/bmad-extension-plugin/skills/mil498-std/.gitkeep +0 -0
  573. package/lib/bmad-extension-plugin/skills/mil498-std/SKILL.md +30 -0
  574. package/lib/bmad-extension-plugin/skills/mil498-std/bmad-skill-manifest.yaml +5 -0
  575. package/lib/bmad-extension-plugin/skills/mil498-std/prompts/01-discover-project-artifacts.md +42 -0
  576. package/lib/bmad-extension-plugin/skills/mil498-std/prompts/02-load-template.md +10 -0
  577. package/lib/bmad-extension-plugin/skills/mil498-std/prompts/03-generate-document.md +117 -0
  578. package/lib/bmad-extension-plugin/skills/mil498-std/prompts/04-validate.md +15 -0
  579. package/lib/bmad-extension-plugin/skills/mil498-std/prompts/05-review.md +15 -0
  580. package/lib/bmad-extension-plugin/skills/mil498-std/prompts/06-save.md +15 -0
  581. package/lib/bmad-extension-plugin/skills/mil498-std/template.md +188 -0
  582. package/lib/bmad-extension-plugin/skills/ml-advise/.gitkeep +0 -0
  583. package/lib/bmad-extension-plugin/skills/ml-advise/SKILL.md +76 -0
  584. package/lib/bmad-extension-plugin/skills/ml-advise/bmad-skill-manifest.yaml +3 -0
  585. package/lib/bmad-extension-plugin/skills/ml-advise/skill.json +7 -0
  586. package/lib/bmad-extension-plugin/skills/ml-analysis/.gitkeep +0 -0
  587. package/lib/bmad-extension-plugin/skills/ml-analysis/SKILL.md +60 -0
  588. package/lib/bmad-extension-plugin/skills/ml-analysis/bmad-skill-manifest.yaml +3 -0
  589. package/lib/bmad-extension-plugin/skills/ml-analysis/skill.json +7 -0
  590. package/lib/bmad-extension-plugin/skills/ml-architecture/.gitkeep +0 -0
  591. package/lib/bmad-extension-plugin/skills/ml-architecture/SKILL.md +55 -0
  592. package/lib/bmad-extension-plugin/skills/ml-architecture/bmad-skill-manifest.yaml +3 -0
  593. package/lib/bmad-extension-plugin/skills/ml-architecture/skill.json +7 -0
  594. package/lib/bmad-extension-plugin/skills/ml-detailed-design/.gitkeep +0 -0
  595. package/lib/bmad-extension-plugin/skills/ml-detailed-design/SKILL.md +67 -0
  596. package/lib/bmad-extension-plugin/skills/ml-detailed-design/bmad-skill-manifest.yaml +3 -0
  597. package/lib/bmad-extension-plugin/skills/ml-detailed-design/skill.json +7 -0
  598. package/lib/bmad-extension-plugin/skills/ml-eda/.gitkeep +0 -0
  599. package/lib/bmad-extension-plugin/skills/ml-eda/SKILL.md +56 -0
  600. package/lib/bmad-extension-plugin/skills/ml-eda/bmad-skill-manifest.yaml +3 -0
  601. package/lib/bmad-extension-plugin/skills/ml-eda/scripts/baseline_classifier.py +522 -0
  602. package/lib/bmad-extension-plugin/skills/ml-eda/scripts/class_weights_calculator.py +295 -0
  603. package/lib/bmad-extension-plugin/skills/ml-eda/scripts/clustering_explorer.py +383 -0
  604. package/lib/bmad-extension-plugin/skills/ml-eda/scripts/eda_analyzer.py +654 -0
  605. package/lib/bmad-extension-plugin/skills/ml-eda/skill.json +7 -0
  606. package/lib/bmad-extension-plugin/skills/ml-experiment/.gitkeep +0 -0
  607. package/lib/bmad-extension-plugin/skills/ml-experiment/SKILL.md +74 -0
  608. package/lib/bmad-extension-plugin/skills/ml-experiment/assets/advanced_trainer_configs.py +430 -0
  609. package/lib/bmad-extension-plugin/skills/ml-experiment/assets/quick_trainer_setup.py +233 -0
  610. package/lib/bmad-extension-plugin/skills/ml-experiment/assets/template_datamodule.py +219 -0
  611. package/lib/bmad-extension-plugin/skills/ml-experiment/assets/template_gnn_module.py +341 -0
  612. package/lib/bmad-extension-plugin/skills/ml-experiment/assets/template_lightning_module.py +158 -0
  613. package/lib/bmad-extension-plugin/skills/ml-experiment/bmad-skill-manifest.yaml +3 -0
  614. package/lib/bmad-extension-plugin/skills/ml-experiment/skill.json +7 -0
  615. package/lib/bmad-extension-plugin/skills/ml-hparam/.gitkeep +0 -0
  616. package/lib/bmad-extension-plugin/skills/ml-hparam/SKILL.md +81 -0
  617. package/lib/bmad-extension-plugin/skills/ml-hparam/bmad-skill-manifest.yaml +3 -0
  618. package/lib/bmad-extension-plugin/skills/ml-hparam/skill.json +7 -0
  619. package/lib/bmad-extension-plugin/skills/ml-ideation/.gitkeep +0 -0
  620. package/lib/bmad-extension-plugin/skills/ml-ideation/SKILL.md +50 -0
  621. package/lib/bmad-extension-plugin/skills/ml-ideation/bmad-skill-manifest.yaml +3 -0
  622. package/lib/bmad-extension-plugin/skills/ml-ideation/scripts/validate_ml_prd.py +287 -0
  623. package/lib/bmad-extension-plugin/skills/ml-ideation/skill.json +7 -0
  624. package/lib/bmad-extension-plugin/skills/ml-infra/.gitkeep +0 -0
  625. package/lib/bmad-extension-plugin/skills/ml-infra/SKILL.md +58 -0
  626. package/lib/bmad-extension-plugin/skills/ml-infra/bmad-skill-manifest.yaml +3 -0
  627. package/lib/bmad-extension-plugin/skills/ml-infra/skill.json +7 -0
  628. package/lib/bmad-extension-plugin/skills/ml-retrospective/.gitkeep +0 -0
  629. package/lib/bmad-extension-plugin/skills/ml-retrospective/SKILL.md +63 -0
  630. package/lib/bmad-extension-plugin/skills/ml-retrospective/bmad-skill-manifest.yaml +3 -0
  631. package/lib/bmad-extension-plugin/skills/ml-retrospective/skill.json +7 -0
  632. package/lib/bmad-extension-plugin/skills/ml-revision/.gitkeep +0 -0
  633. package/lib/bmad-extension-plugin/skills/ml-revision/SKILL.md +82 -0
  634. package/lib/bmad-extension-plugin/skills/ml-revision/bmad-skill-manifest.yaml +3 -0
  635. package/lib/bmad-extension-plugin/skills/ml-revision/skill.json +7 -0
  636. package/lib/bmad-extension-plugin/skills/ml-techspec/.gitkeep +0 -0
  637. package/lib/bmad-extension-plugin/skills/ml-techspec/SKILL.md +80 -0
  638. package/lib/bmad-extension-plugin/skills/ml-techspec/bmad-skill-manifest.yaml +3 -0
  639. package/lib/bmad-extension-plugin/skills/ml-techspec/skill.json +7 -0
  640. package/lib/bmad-extension-plugin/skills/modify-sprint/.gitkeep +0 -0
  641. package/lib/bmad-extension-plugin/skills/modify-sprint/SKILL.md +350 -0
  642. package/lib/bmad-extension-plugin/skills/modify-sprint/bmad-skill-manifest.yaml +3 -0
  643. package/lib/bmad-extension-plugin/skills/module-help.csv +62 -0
  644. package/lib/bmad-extension-plugin/skills/module.yaml +20 -0
  645. package/lib/bmad-extension-plugin/skills/prioritize-backlog/.gitkeep +0 -0
  646. package/lib/bmad-extension-plugin/skills/prioritize-backlog/SKILL.md +256 -0
  647. package/lib/bmad-extension-plugin/skills/prioritize-backlog/bmad-skill-manifest.yaml +3 -0
  648. package/lib/bmad-extension-plugin/skills/project-context-expansion/.gitkeep +0 -0
  649. package/lib/bmad-extension-plugin/skills/project-context-expansion/SKILL.md +238 -0
  650. package/lib/bmad-extension-plugin/skills/project-context-expansion/bmad-skill-manifest.yaml +3 -0
  651. package/lib/bmad-extension-plugin/skills/remove-from-sprint/.gitkeep +0 -0
  652. package/lib/bmad-extension-plugin/skills/remove-from-sprint/SKILL.md +223 -0
  653. package/lib/bmad-extension-plugin/skills/remove-from-sprint/bmad-skill-manifest.yaml +3 -0
  654. package/lib/bmad-extension-plugin/skills/sprint-status-view/.gitkeep +0 -0
  655. package/lib/bmad-extension-plugin/skills/sprint-status-view/SKILL.md +216 -0
  656. package/lib/bmad-extension-plugin/skills/sprint-status-view/bmad-skill-manifest.yaml +3 -0
  657. package/lib/bmad-extension-plugin/skills/sqa-audit/.gitkeep +0 -0
  658. package/lib/bmad-extension-plugin/skills/sqa-audit/SKILL.md +279 -0
  659. package/lib/bmad-extension-plugin/skills/sqa-audit/bmad-skill-manifest.yaml +3 -0
  660. package/lib/bmad-extension-plugin/skills/sqa-ieee12207/.gitkeep +0 -0
  661. package/lib/bmad-extension-plugin/skills/sqa-ieee12207/SKILL.md +374 -0
  662. package/lib/bmad-extension-plugin/skills/sqa-ieee12207/bmad-skill-manifest.yaml +3 -0
  663. package/lib/bmad-extension-plugin/skills/sqa-requirements-quality/.gitkeep +0 -0
  664. package/lib/bmad-extension-plugin/skills/sqa-requirements-quality/SKILL.md +244 -0
  665. package/lib/bmad-extension-plugin/skills/sqa-requirements-quality/bmad-skill-manifest.yaml +3 -0
  666. package/lib/bmad-extension-plugin/skills/sre-check-deployment-status/.gitkeep +0 -0
  667. package/lib/bmad-extension-plugin/skills/sre-check-deployment-status/SKILL.md +32 -0
  668. package/lib/bmad-extension-plugin/skills/sre-check-deployment-status/bmad-skill-manifest.yaml +3 -0
  669. package/lib/bmad-extension-plugin/skills/sre-check-secrets/.gitkeep +0 -0
  670. package/lib/bmad-extension-plugin/skills/sre-check-secrets/SKILL.md +23 -0
  671. package/lib/bmad-extension-plugin/skills/sre-check-secrets/bmad-skill-manifest.yaml +3 -0
  672. package/lib/bmad-extension-plugin/skills/sre-check-system-status/.gitkeep +0 -0
  673. package/lib/bmad-extension-plugin/skills/sre-check-system-status/SKILL.md +27 -0
  674. package/lib/bmad-extension-plugin/skills/sre-check-system-status/bmad-skill-manifest.yaml +3 -0
  675. package/lib/bmad-extension-plugin/skills/sre-day-2-ops/.gitkeep +0 -0
  676. package/lib/bmad-extension-plugin/skills/sre-day-2-ops/SKILL.md +26 -0
  677. package/lib/bmad-extension-plugin/skills/sre-day-2-ops/bmad-skill-manifest.yaml +3 -0
  678. package/lib/bmad-extension-plugin/skills/sre-deployment-strategies/.gitkeep +0 -0
  679. package/lib/bmad-extension-plugin/skills/sre-deployment-strategies/SKILL.md +28 -0
  680. package/lib/bmad-extension-plugin/skills/sre-deployment-strategies/bmad-skill-manifest.yaml +3 -0
  681. package/lib/bmad-extension-plugin/skills/sre-fix-deployments/.gitkeep +0 -0
  682. package/lib/bmad-extension-plugin/skills/sre-fix-deployments/SKILL.md +25 -0
  683. package/lib/bmad-extension-plugin/skills/sre-fix-deployments/bmad-skill-manifest.yaml +3 -0
  684. package/lib/bmad-extension-plugin/skills/sre-gitops-status/.gitkeep +0 -0
  685. package/lib/bmad-extension-plugin/skills/sre-gitops-status/SKILL.md +25 -0
  686. package/lib/bmad-extension-plugin/skills/sre-gitops-status/bmad-skill-manifest.yaml +3 -0
  687. package/lib/bmad.js +1375 -372
  688. package/lib/installer.js +367 -2
  689. package/package.json +23 -5
  690. package/scripts/build-bmad-cache.js +250 -47
  691. package/scripts/build-plugin.js +574 -0
  692. package/skills/add-sprint/SKILL.md +39 -0
  693. package/skills/add-to-sprint/SKILL.md +39 -0
  694. package/skills/bmad-sprint-planning/SKILL.md +41 -0
  695. package/skills/bmad-sprint-status/SKILL.md +39 -0
  696. package/skills/cleanup-done/SKILL.md +39 -0
  697. package/skills/close-sprint/SKILL.md +39 -0
  698. package/skills/generate-backlog/SKILL.md +41 -0
  699. package/skills/modify-sprint/SKILL.md +39 -0
  700. package/skills/prioritize-backlog/SKILL.md +39 -0
  701. package/skills/remove-from-sprint/SKILL.md +39 -0
  702. package/skills/sprint-status-view/SKILL.md +39 -0
  703. package/skills/story-status-lookup/SKILL.md +38 -21
  704. package/.ma-agents.json +0 -10
  705. package/AGENTS.md +0 -97
  706. package/AiAudit.md +0 -12
  707. package/DEVELOPMENT.md +0 -173
  708. package/MANIFEST.yaml +0 -3
  709. package/_bmad-output/implementation-artifacts/16-4-validation-report.md +0 -79
  710. package/_bmad-output/implementation-artifacts/17-10-rework-generate-backlog.md +0 -237
  711. package/_bmad-output/implementation-artifacts/17-11-rework-add-to-sprint.md +0 -339
  712. package/_bmad-output/implementation-artifacts/17-12-rework-remove-from-sprint.md +0 -348
  713. package/_bmad-output/implementation-artifacts/17-13-rework-sprint-status-view.md +0 -383
  714. package/_bmad-output/implementation-artifacts/17-14-rework-cleanup-done.md +0 -348
  715. package/_bmad-output/implementation-artifacts/17-15-rework-bmad-sprint-planning.md +0 -385
  716. package/_bmad-output/implementation-artifacts/17-16-rework-add-sprint.md +0 -362
  717. package/_bmad-output/implementation-artifacts/17-17-rework-modify-sprint.md +0 -477
  718. package/_bmad-output/implementation-artifacts/17-18-rework-bmad-dev-story.md +0 -377
  719. package/_bmad-output/implementation-artifacts/17-19-rework-story-status-lookup.md +0 -301
  720. package/_bmad-output/implementation-artifacts/17-20-rework-bmad-sprint-status.md +0 -508
  721. package/_bmad-output/implementation-artifacts/17-21-new-close-sprint.md +0 -455
  722. package/_bmad-output/implementation-artifacts/17-22-jira-adapter-pattern.md +0 -325
  723. package/_bmad-output/implementation-artifacts/17-23-migration-deprecation-old-files.md +0 -403
  724. package/_bmad-output/implementation-artifacts/17-24-rework-prioritize-backlog.md +0 -344
  725. package/_bmad-output/implementation-artifacts/17-9-unified-sprint-status-schema.md +0 -279
  726. package/_bmad-output/implementation-artifacts/19-1-knowledge-graph-core-library.md +0 -239
  727. package/_bmad-output/implementation-artifacts/19-2-graph-emission-create-prd.md +0 -171
  728. package/_bmad-output/implementation-artifacts/19-3-graph-emission-create-architecture-epics.md +0 -179
  729. package/_bmad-output/implementation-artifacts/19-4-graph-emission-create-story-remaining.md +0 -190
  730. package/_bmad-output/implementation-artifacts/19-5-open-graph-skill.md +0 -213
  731. package/_bmad-output/implementation-artifacts/19-6-interactive-visualization-renderer.md +0 -259
  732. package/_bmad-output/implementation-artifacts/19-7-llm-writability-validation-tests.md +0 -280
  733. package/_bmad-output/implementation-artifacts/21-1-install-time-profile-prompt.md +0 -181
  734. package/_bmad-output/implementation-artifacts/21-10-profile-reconfigure.md +0 -161
  735. package/_bmad-output/implementation-artifacts/21-11-profile-uninstall.md +0 -150
  736. package/_bmad-output/implementation-artifacts/21-2-universal-instruction-block-expansion.md +0 -253
  737. package/_bmad-output/implementation-artifacts/21-3-roomodes-template-bmad-modes.md +0 -229
  738. package/_bmad-output/implementation-artifacts/21-4-agents-md-template-opencode.md +0 -275
  739. package/_bmad-output/implementation-artifacts/21-5-clinerules-template-extension.md +0 -221
  740. package/_bmad-output/implementation-artifacts/21-6-onprem-layered-guardrails.md +0 -287
  741. package/_bmad-output/implementation-artifacts/21-7-bmad-persona-phase-prefix.md +0 -258
  742. package/_bmad-output/implementation-artifacts/21-8-vllm-reference-doc-readme.md +0 -158
  743. package/_bmad-output/implementation-artifacts/21-9-tests-validation.md +0 -368
  744. package/_bmad-output/implementation-artifacts/4-1-vs-agent-registry-entry.md +0 -173
  745. package/_bmad-output/implementation-artifacts/4-2-vs-skill-template-format.md +0 -129
  746. package/_bmad-output/implementation-artifacts/5-5-explicit-parameter-passing.md +0 -274
  747. package/_bmad-output/implementation-artifacts/5-6-fix-space-in-path-bug.md +0 -186
  748. package/_bmad-output/implementation-artifacts/7-1-test-infrastructure-setup.md +0 -144
  749. package/_bmad-output/implementation-artifacts/7-2-installer-pipeline-tests.md +0 -132
  750. package/_bmad-output/implementation-artifacts/7-3-bmad-pipeline-tests.md +0 -119
  751. package/_bmad-output/implementation-artifacts/7-4-cli-command-routing-tests.md +0 -162
  752. package/_bmad-output/implementation-artifacts/bug-bmad-recompile-fails-on-airgapped-network.md +0 -112
  753. package/_bmad-output/implementation-artifacts/bug-experimentalwarning-about-commonjs-loading-es-module-during-install.md +0 -57
  754. package/_bmad-output/implementation-artifacts/deferred-work.md +0 -9
  755. package/_bmad-output/implementation-artifacts/done/1-1-ci-cd-yes-flag.md +0 -200
  756. package/_bmad-output/implementation-artifacts/done/10-1-ensure-bmad-output-not-gitignored.md +0 -172
  757. package/_bmad-output/implementation-artifacts/done/10-2-document-bmad-output-policy.md +0 -102
  758. package/_bmad-output/implementation-artifacts/done/11-1-auto-bug-detection-skill.md +0 -119
  759. package/_bmad-output/implementation-artifacts/done/11-2-bug-story-extension-workflow.md +0 -132
  760. package/_bmad-output/implementation-artifacts/done/11-3-integrate-bug-detection-code-review.md +0 -111
  761. package/_bmad-output/implementation-artifacts/done/12-1-add-sprint-workflow.md +0 -126
  762. package/_bmad-output/implementation-artifacts/done/12-2-add-to-sprint-workflow.md +0 -137
  763. package/_bmad-output/implementation-artifacts/done/12-3-modify-sprint-workflow.md +0 -127
  764. package/_bmad-output/implementation-artifacts/done/12-4-sprint-status-assigned-items.md +0 -129
  765. package/_bmad-output/implementation-artifacts/done/13-1-project-context-template-and-generator.md +0 -179
  766. package/_bmad-output/implementation-artifacts/done/13-2-install-pipeline-integration.md +0 -138
  767. package/_bmad-output/implementation-artifacts/done/13-3-bmad-critical-actions-update.md +0 -150
  768. package/_bmad-output/implementation-artifacts/done/13-4-retrospective-expansion-trigger.md +0 -128
  769. package/_bmad-output/implementation-artifacts/done/13-5-document-project-context-generation.md +0 -118
  770. package/_bmad-output/implementation-artifacts/done/15-1-bump-bmad-method-to-6-2-1.md +0 -132
  771. package/_bmad-output/implementation-artifacts/done/15-2-restructure-extension-module.md +0 -174
  772. package/_bmad-output/implementation-artifacts/done/15-3-convert-custom-agents-to-skill-folders.md +0 -183
  773. package/_bmad-output/implementation-artifacts/done/15-4-convert-mil498-workflows-to-skill-md.md +0 -252
  774. package/_bmad-output/implementation-artifacts/done/15-5-convert-sre-devops-cyber-workflows.md +0 -232
  775. package/_bmad-output/implementation-artifacts/done/15-6-separate-built-in-agent-customizations.md +0 -163
  776. package/_bmad-output/implementation-artifacts/done/15-7-migration-detection-and-upgrade-path.md +0 -133
  777. package/_bmad-output/implementation-artifacts/done/15-8-validate-migrated-agents-and-workflows.md +0 -172
  778. package/_bmad-output/implementation-artifacts/done/15-8-validation-report.md +0 -342
  779. package/_bmad-output/implementation-artifacts/done/16-1-repository-layout-wizard.md +0 -223
  780. package/_bmad-output/implementation-artifacts/done/16-2-config-storage-and-cross-reference.md +0 -180
  781. package/_bmad-output/implementation-artifacts/done/16-3-project-context-multi-repo-section.md +0 -136
  782. package/_bmad-output/implementation-artifacts/done/16-4-validate-cross-repo-path-resolution.md +0 -137
  783. package/_bmad-output/implementation-artifacts/done/16-4-validation-report.md +0 -79
  784. package/_bmad-output/implementation-artifacts/done/16-5-fix-config-lost-on-update.md +0 -110
  785. package/_bmad-output/implementation-artifacts/done/16-6-repo-sync-check-skill.md +0 -116
  786. package/_bmad-output/implementation-artifacts/done/16-7-portable-path-storage.md +0 -109
  787. package/_bmad-output/implementation-artifacts/done/16-8-cicd-remote-mode.md +0 -97
  788. package/_bmad-output/implementation-artifacts/done/16-9-reconfigure-layout-workflow.md +0 -125
  789. package/_bmad-output/implementation-artifacts/done/17-1-sprint-entity-model.md +0 -322
  790. package/_bmad-output/implementation-artifacts/done/17-2-flat-backlog-model.md +0 -264
  791. package/_bmad-output/implementation-artifacts/done/17-3-bug-as-story-type.md +0 -208
  792. package/_bmad-output/implementation-artifacts/done/17-4-backlog-to-sprint-workflow.md +0 -209
  793. package/_bmad-output/implementation-artifacts/done/17-5-sprint-to-backlog-workflow.md +0 -221
  794. package/_bmad-output/implementation-artifacts/done/17-6-done-item-cleanup.md +0 -273
  795. package/_bmad-output/implementation-artifacts/done/17-7-multi-criteria-prioritization.md +0 -235
  796. package/_bmad-output/implementation-artifacts/done/17-8-rework-sprint-status-display.md +0 -285
  797. package/_bmad-output/implementation-artifacts/done/2-1-cpp-coding-standards-skill.md +0 -188
  798. package/_bmad-output/implementation-artifacts/done/2-2-csharp-coding-standards-skill.md +0 -211
  799. package/_bmad-output/implementation-artifacts/done/2-3-python-coding-standards-skill.md +0 -189
  800. package/_bmad-output/implementation-artifacts/done/3-1-skill-scaffolding-tool.md +0 -184
  801. package/_bmad-output/implementation-artifacts/done/3-2-skill-validation-tool.md +0 -178
  802. package/_bmad-output/implementation-artifacts/done/3-3-mandatory-skill-designation.md +0 -136
  803. package/_bmad-output/implementation-artifacts/done/3-4-bmad-persona-customization-tooling.md +0 -141
  804. package/_bmad-output/implementation-artifacts/done/3-5-specialized-agent-development-tooling.md +0 -145
  805. package/_bmad-output/implementation-artifacts/done/5-1-bmad-method-direct-dependency.md +0 -188
  806. package/_bmad-output/implementation-artifacts/done/5-2-bmad-cache-build-script.md +0 -219
  807. package/_bmad-output/implementation-artifacts/done/5-3-pre-populate-bmad-cache.md +0 -234
  808. package/_bmad-output/implementation-artifacts/done/5-4-validate-bundled-installation.md +0 -274
  809. package/_bmad-output/implementation-artifacts/done/6-1-methodology-presentation-bundle.md +0 -173
  810. package/_bmad-output/implementation-artifacts/done/8-1-move-instruction-injection-to-top.md +0 -131
  811. package/_bmad-output/implementation-artifacts/done/8-2-agent-aware-injection-strategy.md +0 -124
  812. package/_bmad-output/implementation-artifacts/done/8-3-create-bmad-extension-module.md +0 -187
  813. package/_bmad-output/implementation-artifacts/done/8-4-integration-verification.md +0 -102
  814. package/_bmad-output/implementation-artifacts/done/8-5-per-agent-enforcement-hooks-research.md +0 -126
  815. package/_bmad-output/implementation-artifacts/done/8-6-context-persistence-research.md +0 -101
  816. package/_bmad-output/implementation-artifacts/done/9-1-register-opencode-agent.md +0 -73
  817. package/_bmad-output/implementation-artifacts/done/9-2-json-merge-injection.md +0 -91
  818. package/_bmad-output/implementation-artifacts/done/9-3-json-merge-existing.md +0 -113
  819. package/_bmad-output/implementation-artifacts/done/9-4-json-error-handling.md +0 -90
  820. package/_bmad-output/implementation-artifacts/epic-11-12-shared-guardrails.md +0 -53
  821. package/_bmad-output/implementation-artifacts/epic-15-adversarial-fixes.md +0 -287
  822. package/_bmad-output/implementation-artifacts/epic-16-adversarial-review.md +0 -49
  823. package/_bmad-output/implementation-artifacts/epic-16-edge-case-review.md +0 -230
  824. package/_bmad-output/implementation-artifacts/epic-17-adversarial-review.md +0 -37
  825. package/_bmad-output/implementation-artifacts/epic-17-edge-case-review.md +0 -140
  826. package/_bmad-output/implementation-artifacts/sprint-status.yaml +0 -139
  827. package/_bmad-output/planning-artifacts/adapter-pattern-spec.md +0 -508
  828. package/_bmad-output/planning-artifacts/architecture.md +0 -2023
  829. package/_bmad-output/planning-artifacts/domain-research-roocode-2026-03-31.md +0 -295
  830. package/_bmad-output/planning-artifacts/epics.md +0 -4232
  831. package/_bmad-output/planning-artifacts/mil498-workflow-audit.md +0 -290
  832. package/_bmad-output/planning-artifacts/prd.md +0 -811
  833. package/_bmad-output/planning-artifacts/product-brief-agents-2026-03-08.md +0 -214
  834. package/_bmad-output/planning-artifacts/sprint-status-schema.md +0 -506
  835. package/_bmad-output/planning-artifacts/validation-report-prd-2026-04-07.md +0 -330
  836. package/_bmad-output/project-context.md +0 -47
  837. package/agents.code-workspace +0 -11
  838. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-554778ad4e7254827618ebd2497c3f4bce9054a4.idx +0 -0
  839. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-554778ad4e7254827618ebd2497c3f4bce9054a4.rev +0 -0
  840. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.idx +0 -0
  841. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.rev +0 -0
  842. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-brainstorming-coach/bmad-skill-manifest.yaml +0 -11
  843. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-creative-problem-solver/bmad-skill-manifest.yaml +0 -11
  844. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-design-thinking-coach/bmad-skill-manifest.yaml +0 -11
  845. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-innovation-strategist/bmad-skill-manifest.yaml +0 -11
  846. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-presentation-master/bmad-skill-manifest.yaml +0 -11
  847. package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-storyteller/bmad-skill-manifest.yaml +0 -11
  848. package/lib/bmad-cache/cis/src/skills/bmad-cis-design-thinking/bmad-skill-manifest.yaml +0 -1
  849. package/lib/bmad-cache/cis/src/skills/bmad-cis-innovation-strategy/bmad-skill-manifest.yaml +0 -1
  850. package/lib/bmad-cache/cis/src/skills/bmad-cis-problem-solving/bmad-skill-manifest.yaml +0 -1
  851. package/lib/bmad-cache/cis/src/skills/bmad-cis-storytelling/bmad-skill-manifest.yaml +0 -1
  852. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-ac967149d58fba215d07238ad8881bdbdad5c9c3.idx +0 -0
  853. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-ac967149d58fba215d07238ad8881bdbdad5c9c3.rev +0 -0
  854. package/lib/bmad-cache/gds/src/agents/gds-agent-game-architect/bmad-skill-manifest.yaml +0 -11
  855. package/lib/bmad-cache/gds/src/agents/gds-agent-game-designer/bmad-skill-manifest.yaml +0 -11
  856. package/lib/bmad-cache/gds/src/agents/gds-agent-game-dev/bmad-skill-manifest.yaml +0 -11
  857. package/lib/bmad-cache/gds/src/agents/gds-agent-game-qa/bmad-skill-manifest.yaml +0 -11
  858. package/lib/bmad-cache/gds/src/agents/gds-agent-game-scrum-master/bmad-skill-manifest.yaml +0 -11
  859. package/lib/bmad-cache/gds/src/agents/gds-agent-game-solo-dev/bmad-skill-manifest.yaml +0 -11
  860. package/lib/bmad-cache/gds/src/agents/gds-agent-tech-writer/bmad-skill-manifest.yaml +0 -11
  861. package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-brainstorm-game/bmad-skill-manifest.yaml +0 -1
  862. package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-create-game-brief/bmad-skill-manifest.yaml +0 -1
  863. package/lib/bmad-cache/gds/src/workflows/1-preproduction/research/bmad-skill-manifest.yaml +0 -9
  864. package/lib/bmad-cache/gds/src/workflows/1-preproduction/research/gds-domain-research/bmad-skill-manifest.yaml +0 -1
  865. package/lib/bmad-cache/gds/src/workflows/2-design/create-prd/bmad-skill-manifest.yaml +0 -14
  866. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-gdd/bmad-skill-manifest.yaml +0 -1
  867. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-narrative/bmad-skill-manifest.yaml +0 -1
  868. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-ux-design/bmad-skill-manifest.yaml +0 -1
  869. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-check-implementation-readiness/bmad-skill-manifest.yaml +0 -1
  870. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-create-epics-and-stories/bmad-skill-manifest.yaml +0 -1
  871. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/bmad-skill-manifest.yaml +0 -1
  872. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-generate-project-context/bmad-skill-manifest.yaml +0 -1
  873. package/lib/bmad-cache/gds/src/workflows/4-production/gds-code-review/bmad-skill-manifest.yaml +0 -1
  874. package/lib/bmad-cache/gds/src/workflows/4-production/gds-correct-course/bmad-skill-manifest.yaml +0 -1
  875. package/lib/bmad-cache/gds/src/workflows/4-production/gds-create-story/bmad-skill-manifest.yaml +0 -1
  876. package/lib/bmad-cache/gds/src/workflows/4-production/gds-dev-story/bmad-skill-manifest.yaml +0 -1
  877. package/lib/bmad-cache/gds/src/workflows/4-production/gds-retrospective/bmad-skill-manifest.yaml +0 -1
  878. package/lib/bmad-cache/gds/src/workflows/4-production/gds-sprint-planning/bmad-skill-manifest.yaml +0 -1
  879. package/lib/bmad-cache/gds/src/workflows/4-production/gds-sprint-status/bmad-skill-manifest.yaml +0 -1
  880. package/lib/bmad-cache/gds/src/workflows/gametest/gds-e2e-scaffold/bmad-skill-manifest.yaml +0 -1
  881. package/lib/bmad-cache/gds/src/workflows/gametest/gds-performance-test/bmad-skill-manifest.yaml +0 -1
  882. package/lib/bmad-cache/gds/src/workflows/gametest/gds-playtest-plan/bmad-skill-manifest.yaml +0 -1
  883. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-automate/bmad-skill-manifest.yaml +0 -1
  884. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-design/bmad-skill-manifest.yaml +0 -1
  885. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-framework/bmad-skill-manifest.yaml +0 -1
  886. package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-review/bmad-skill-manifest.yaml +0 -1
  887. package/lib/bmad-cache/gds/src/workflows/gds-document-project/bmad-skill-manifest.yaml +0 -1
  888. package/lib/bmad-cache/gds/src/workflows/gds-quick-flow/gds-quick-dev/bmad-skill-manifest.yaml +0 -1
  889. package/lib/bmad-cache/gds/src/workflows/gds-quick-flow/gds-quick-dev-new-preview/bmad-skill-manifest.yaml +0 -1
  890. package/lib/bmad-cache/gds/src/workflows/gds-quick-flow/gds-quick-spec/bmad-skill-manifest.yaml +0 -1
  891. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-e75385cd52b693dbb8a3b2afb50058952543b3a2.idx +0 -0
  892. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-e75385cd52b693dbb8a3b2afb50058952543b3a2.rev +0 -0
  893. package/lib/bmad-cache/tea/_git_preserved/refs/tags/v1.10.0 +0 -1
  894. package/lib/bmad-cache/tea/src/agents/bmad-tea/bmad-skill-manifest.yaml +0 -14
  895. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/bmad-skill-manifest.yaml +0 -1
  896. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/workflow.md +0 -90
  897. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/bmad-skill-manifest.yaml +0 -1
  898. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/workflow.md +0 -41
  899. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/bmad-skill-manifest.yaml +0 -1
  900. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/workflow.md +0 -41
  901. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/bmad-skill-manifest.yaml +0 -1
  902. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/workflow.md +0 -41
  903. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/bmad-skill-manifest.yaml +0 -1
  904. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/workflow.md +0 -41
  905. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/bmad-skill-manifest.yaml +0 -1
  906. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/workflow.md +0 -41
  907. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/bmad-skill-manifest.yaml +0 -1
  908. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/workflow.md +0 -41
  909. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/bmad-skill-manifest.yaml +0 -1
  910. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/workflow.md +0 -41
  911. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/bmad-skill-manifest.yaml +0 -1
  912. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/workflow.md +0 -41
  913. package/lib/bmad-customizations/bmm-demerzel.customize.yaml +0 -36
  914. package/lib/bmad-customizations/demerzel.md +0 -32
  915. package/lib/bmad-customize/bmm-quick-flow-solo-dev.customize.yaml +0 -8
  916. package/lib/bmad-extension/module.yaml +0 -5
  917. package/out.txt +0 -0
  918. package/test/agent-injection-strategy.test.js +0 -129
  919. package/test/agents-md.test.js +0 -398
  920. package/test/bmad-extension.test.js +0 -283
  921. package/test/bmad-output-policy.test.js +0 -119
  922. package/test/bmad-persona-phase-prefix.test.js +0 -271
  923. package/test/bmad-version-bump.test.js +0 -313
  924. package/test/build-bmad-args.test.js +0 -368
  925. package/test/cicd-remote-mode.test.js +0 -224
  926. package/test/clinerules.test.js +0 -339
  927. package/test/config-layout.test.js +0 -230
  928. package/test/config-lost-on-update.test.js +0 -363
  929. package/test/config-storage.test.js +0 -275
  930. package/test/convert-agents-to-skills.test.js +0 -255
  931. package/test/create-agent.test.js +0 -232
  932. package/test/cross-repo-validation.test.js +0 -201
  933. package/test/enforcement-hooks.test.js +0 -324
  934. package/test/experimental-warning.test.js +0 -314
  935. package/test/extension-module-restructure.test.js +0 -407
  936. package/test/fixtures/README.md +0 -74
  937. package/test/fixtures/empty-project/README.md +0 -5
  938. package/test/fixtures/empty-project/package.json +0 -5
  939. package/test/fixtures/onprem-profile-baseline/.gitkeep +0 -2
  940. package/test/fixtures/standard-profile-baseline/.gitkeep +0 -2
  941. package/test/generate-project-context.test.js +0 -483
  942. package/test/instruction-block.test.js +0 -388
  943. package/test/instruction-injection.test.js +0 -336
  944. package/test/integration-verification.test.js +0 -433
  945. package/test/migration-validation.test.js +0 -506
  946. package/test/migration.test.js +0 -832
  947. package/test/offline-recompile.test.js +0 -267
  948. package/test/onprem-injection.test.js +0 -441
  949. package/test/onprem-layer.test.js +0 -419
  950. package/test/opencode-agent.test.js +0 -150
  951. package/test/opencode-json-error.test.js +0 -260
  952. package/test/opencode-json-injection.test.js +0 -264
  953. package/test/opencode-json-merge.test.js +0 -318
  954. package/test/portable-paths.test.js +0 -268
  955. package/test/profile.test.js +0 -301
  956. package/test/reconfigure.test.js +0 -436
  957. package/test/repo-layout.test.js +0 -246
  958. package/test/roo-code-agent.test.js +0 -166
  959. package/test/roo-code-injection.test.js +0 -172
  960. package/test/roomodes.test.js +0 -343
  961. package/test/skill-authoring.test.js +0 -272
  962. package/test/skill-customize-agent.test.js +0 -253
  963. package/test/skill-mandatory.test.js +0 -235
  964. package/test/skill-validation.test.js +0 -378
  965. package/test/story-15-5-workflow-skills.test.js +0 -311
  966. package/test/uninstall.test.js +0 -402
  967. package/test/yes-flag.test.js +0 -200
  968. /package/lib/bmad-cache/gds/src/{gametest → agents/gds-agent-game-dev/gametest}/qa-index.csv +0 -0
  969. /package/lib/bmad-cache/gds/src/workflows/2-design/{create-prd → gds-create-prd}/data/domain-complexity.csv +0 -0
  970. /package/lib/bmad-cache/gds/src/workflows/2-design/{create-prd → gds-create-prd}/data/project-types.csv +0 -0
  971. /package/lib/{bmad-extension/skills/bmad-ma-agent-cyber → bmad-extension-plugin/skills/add-sprint}/.gitkeep +0 -0
  972. /package/lib/{bmad-extension/skills/bmad-ma-agent-devops → bmad-extension-plugin/skills/add-to-sprint}/.gitkeep +0 -0
  973. /package/lib/{bmad-extension/skills/bmad-ma-agent-ml → bmad-extension-plugin/skills/bmad-dev-story}/.gitkeep +0 -0
  974. /package/lib/{bmad-extension/skills/bmad-ma-agent-sqa → bmad-extension-plugin/skills/bmad-sprint-planning}/.gitkeep +0 -0
  975. /package/lib/{bmad-extension/skills/bmad-ma-agent-sre → bmad-extension-plugin/skills/bmad-sprint-status}/.gitkeep +0 -0
@@ -1,368 +0,0 @@
1
- # Story 21.9: Tests and Validation
2
-
3
- Status: Draft
4
-
5
- ### Blockers (why not Ready)
6
-
7
- Tasks are NOT unconditional — they branch on upstream artifacts and surfaced gaps. Story is Draft until blockers below clear:
8
-
9
- 1. **Upstream artifacts not on disk.** Stories 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8 are all **status: backlog** per sprint-status.yaml. Task 1.2–1.8 explicitly HALT this story when prerequisites are missing. Ready requires at minimum 21.2, 21.3, 21.4, 21.5, 21.6, 21.7 merged (21.8 is doc-only and soft; 21.10 is soft).
10
- 2. **AC #6 implementation-path conditional.** Round-trip test path branches on Story 21.10 availability (reconfigure subcommand vs. direct `.ma-agents.json` edit). Resolve once 21.10 status is known.
11
- 3. **Open question on Story 21.7 loader branch (A vs B).** BF-O baseline capture shape differs between Branch A (post-deploy rewrite) and Branch B (dual-variant files). Cannot finalize Task 4.3 fixture layout until 21.7 lands its Branch decision in its Change Log.
12
- 4. **Test Coverage Gaps requiring in-story absorption** (see Dev Notes → Test Coverage Gaps). The gaps tagged as in-story-closeable (21.4 AC #5 append branch, 21.4 AC #9 exception, 21.5 AC #2 cross-file identity, 21.5 AC #9 manifest-path substitution, 21.6 AC #12 cross-profile fileRegex equality, 21.7 AC #4/#8 deployed-customize coverage, 21.8 AC #8 README presence) must be folded into Tasks 2/3/4 or filed as follow-up bug stories before promoting to Ready.
13
-
14
- ## Story
15
-
16
- As a **chief architect**,
17
- I want automated regression tests for the profile system and the universal/on-prem instruction-block injection,
18
- So that future changes to installer or templates do not silently regress on-prem support or break standard installs.
19
-
20
- ## Acceptance Criteria
21
-
22
- Numbered ACs derive from the Epic 21 Story 21.9 spec (`_bmad-output/planning-artifacts/epics.md` lines 4132–4152). ACs flagged **(gap-fill)** are additions this story introduces to make the epic spec concretely testable — they do not contradict the epic, they operationalize it.
23
-
24
- 1. A test file `test/onprem-injection.test.js` exists and covers the five sub-cases called out in the epic (lines 4144):
25
- - **(a)** Standard profile produces NO occurrences of the explicit literal strings `["/no_think", "str_replace_editor", "~/.claude/"]` (EXHAUSTIVE negative assertion set) anywhere in generated instruction files, per Story 21.6 AC #4 scope narrowing — covers NFR44. Reasoning-mode and sampling-parameter prose (e.g., `temperature`, `top_p`) are NOT in this negative set; they are verified positive-side only under the on-prem profile in sub-test (b).
26
- - **(b)** On-prem profile produces BOTH the universal block content AND the on-prem block content in the expected target files (CLAUDE.md / `.roo/rules/00-ma-agents.md` / `.clinerules` / `.cline/clinerules.md` / `AGENTS.md` / `.roomodes` `customInstructions`).
27
- - **(c)** Idempotency — two consecutive installs with the same profile produce byte-identical marker-block content across all ma-agents-stamped files — covers NFR46.
28
- - **(d)** `.roomodes` slug-collision: the four ma-agents-owned slugs (`bmad-pm`, `bmad-architect`, `bmad-techlead`, `bmad-dev`) overwrite existing entries with the same slug; non-colliding user slugs are preserved byte-for-byte.
29
- - **(e)** NFR47 enforcement contract: the generated `.roomodes` `fileRegex` patterns reject `.ts` and `.py` paths under `bmad-architect`. The test asserts the regex pattern, not a running Roo Code process (per epic technical note, line 4152).
30
-
31
- 2. `test/profile.test.js` already exists (delivered by Story 21.1, verified at `D:\Code\agents\test\profile.test.js`); Story 21.9 confirms it covers: `getProfile`, `setProfile`, `resolveProfile` precedence (persisted > yes-default > null), persistence round-trip, and missing-file handling. If any of those are missing, this story adds them rather than creating a second file.
32
-
33
- 3. After Story 21.9 merges, `npm test` passes with all new tests green AND all pre-Epic-21 tests still green (epic AC, lines 4146–4149) — no regressions.
34
-
35
- 4. **(gap-fill)** The integration tests isolate the repo's own `.ma-agents.json` by operating exclusively in per-test temp directories via `fs.mkdtempSync(path.join(os.tmpdir(), 'ma-agents-21-9-'))`. The test run must NOT mutate `D:\Code\agents\.ma-agents.json` or any file at the repo root. Tests run sequentially (`for...of` with `await`), never `Promise.all`, because the installer writes shared template-derived files (see existing race in `test/generate-project-context.test.js` — lessons learned).
36
-
37
- 5. **(gap-fill)** `fileRegex` matrix (NFR47, AC (e) expansion). For each of the four BMAD modes the test asserts accept/reject behavior against a pinned path set so implementation drift in the regex is caught:
38
- - `bmad-pm`: accepts `.md`; rejects `.ts`, `.py`, `.js`, `.go`, `.yaml`, `.json`, `.xml`, `.drawio`
39
- - `bmad-architect`: accepts `.md`, `.xml`, `.drawio`; rejects `.ts`, `.py`, `.js`, `.go`, `.yaml`, `.json`
40
- - `bmad-techlead`: accepts `.md`, `.json`, `.yaml`, `.yml`; rejects `.ts`, `.py`, `.js`, `.go`, `.xml`, `.drawio`
41
- - `bmad-dev`: accepts all of the above (full access — no `fileRegex` restriction, or `.*` equivalent)
42
-
43
- 6. **(gap-fill)** Profile switch round-trip. The test performs: install with `profile=standard` → switch to `on-prem` (by rewriting `.ma-agents.json` directly in the temp dir and re-running the installer entry point — Story 21.10's `reconfigure` subcommand is a dependency for a non-workaround path, but this story must not block on 21.10) → switch back to `standard`. The final state's ma-agents-owned regions must be byte-identical to the first standard-profile install. User content outside markers is preserved across all three installs.
44
-
45
- 7. **(gap-fill)** The test harness exercises the installer via its actual programmatic entry point — the exported top-level install function reachable from `bin/cli.js` — NOT via internal-only helpers. Unit-level template rendering tests are allowed and encouraged but are ADDITIONAL to the end-to-end harness; they do not replace it. Rationale: unit tests pass while wiring bugs (profile resolution, file-path routing, merger dispatch) silently break end-to-end install.
46
-
47
- 8. **(gap-fill)** A per-profile baseline fixture lives under `test/fixtures/`:
48
- - `test/fixtures/empty-project/` — minimal canonical project seed (`README.md`, `package.json`, no other files that affect install output). Already present (placeholder — see Change Log 2026-04-14 entry); Story 21.9 implementation populates/refreshes it if empty.
49
- - `test/fixtures/standard-profile-baseline/` — full rendered output for a canonical `install --yes` run against `empty-project` with standard profile.
50
- - `test/fixtures/onprem-profile-baseline/` — same for on-prem profile (seeded via a pre-written `.ma-agents.json` with `"profile": "on-prem"`).
51
- The harness diffs every generated file against its baseline byte-for-byte; any drift is a test failure naming the file and diff region. A regeneration procedure is documented in `test/fixtures/README.md` (already present; verify it covers both profiles and is accurate).
52
-
53
- 9. **(gap-fill)** PR body coverage table (added to the PR, not the story file) tabulates each Epic 21 NFR (NFR44, NFR45, NFR46, NFR47) → the specific test name(s) asserting it. If any NFR is uncovered, the gap is filed as a bug story — not silently shipped.
54
-
55
- > **Open question:** AC #6 (profile switch round-trip) assumes the installer entry point is re-runnable in-process and that writing a new `"profile"` value to `.ma-agents.json` between runs is sufficient to trigger the profile-dependent re-stamping. If Story 21.10's `reconfigure` is merged first, prefer calling it; otherwise document the direct-edit approach and flag Story 21.10 as the preferred path in the test comment.
56
-
57
- > **Open question:** Does the `bmad-dev` mode spec permit `fileRegex: '.*'` or omit `fileRegex` entirely? Story 21.3 spec says "full access" but doesn't pin the YAML shape. Defer to the template produced by Story 21.3; if ambiguous at implementation time, prefer omission (more permissive, matches Roo Code default).
58
-
59
- > **Open question:** NFR45 (CI/CD `--yes` default to `standard`; non-TTY silent default) is already covered by `test/profile.test.js` (Story 21.1). This story does not duplicate that coverage — it only cites it in the NFR coverage table (AC #9). Confirm with reviewer that this non-duplication is acceptable.
60
-
61
- ## Tasks / Subtasks
62
-
63
- - [ ] **Task 1: Verify prerequisite artifacts exist on disk** (precondition for all subsequent tasks)
64
- - [ ] 1.1 Verify `D:\Code\agents\lib\profile.js` exists and exports `getProfile`, `setProfile`, `resolveProfile` (Story 21.1)
65
- - [ ] 1.2 Verify `D:\Code\agents\lib\templates\instruction-block-universal.template.md` exists (Story 21.2) — **(new)** as of epic plan; verify before writing tests that consume it
66
- - [ ] 1.3 Verify `D:\Code\agents\lib\templates\roomodes.template.yaml` and `D:\Code\agents\lib\merge\roomodes.js` exist (Story 21.3) — **(new)**
67
- - [ ] 1.4 Verify `D:\Code\agents\lib\templates\agents-md.template.md` exists (Story 21.4) — **(new)**
68
- - [ ] 1.5 Verify `D:\Code\agents\lib\templates\clinerules.template.md` exists (Story 21.5) — **(new)**
69
- - [ ] 1.6 Verify `D:\Code\agents\lib\templates\instruction-block-onprem.template.md` exists (Story 21.6) — **(new)**
70
- - [ ] 1.7 Verify the eight `D:\Code\agents\lib\bmad-customize\bmm-*.customize.yaml` files have the Story 21.7 fields (`phase:`, `on_prem_phase_prefix:`)
71
- - [ ] 1.8 Verify `D:\Code\agents\docs\deployment\vllm-nemotron.md` exists and `README.md` has the on-prem section (Story 21.8) — **(new)** doc
72
- - [ ] 1.9 If any prerequisite is missing, HALT this story and surface the gap to the dev lead rather than stubbing around it
73
-
74
- - [ ] **Task 2: Author `D:\Code\agents\test\onprem-injection.test.js`** (AC #1 a–e, #4, #5)
75
- - [ ] 2.1 Scaffold helper: create temp project in `os.tmpdir()` seeded from `test/fixtures/empty-project/` with all markdown-injection agents + Roo Code + OpenCode selected
76
- - [ ] 2.2 Helper: run installer programmatically via the exported top-level install function (AC #7)
77
- - [ ] 2.3 Helper: read generated instruction files into a `{ filename → content }` map
78
- - [ ] 2.4 Sub-test (a): standard install — assert zero occurrences of on-prem strings
79
- - [ ] 2.5 Sub-test (b): on-prem install — assert on-prem strings present in each expected file
80
- - [ ] 2.6 Sub-test (c): idempotency — run installer twice, diff marker-block content byte-for-byte
81
- - [ ] 2.7 Sub-test (d): `.roomodes` slug-collision — seed pre-existing `.roomodes` with one colliding and one non-colliding slug, run installer, assert overwrite + preserve semantics
82
- - [ ] 2.8 Sub-test (e) expansion: `fileRegex` accept/reject matrix per AC #5 for all four BMAD modes
83
- - [ ] 2.9 Assert no writes to the repo-root `.ma-agents.json` — use tmp dirs only (AC #4)
84
-
85
- - [ ] **Task 3: Profile switch round-trip** (AC #6)
86
- - [ ] 3.1 Test: install standard → overwrite `.ma-agents.json` profile field to `on-prem` → re-run install → overwrite back to `standard` → re-run install
87
- - [ ] 3.2 Assert final standard-profile output matches the first standard-profile output (ma-agents-owned regions only); assert user-content regions outside markers unchanged at every step
88
-
89
- - [ ] **Task 4: Baseline fixtures** (AC #8)
90
- - [ ] 4.1 If `test/fixtures/empty-project/` is empty or stale, populate with canonical minimal seed (`README.md`, `package.json` with no install-affecting scripts)
91
- - [ ] 4.2 Generate `test/fixtures/standard-profile-baseline/` by running the installer against the empty-project seed with standard profile, capturing all generated files under the baseline dir
92
- - [ ] 4.3 Generate `test/fixtures/onprem-profile-baseline/` via the same pattern after persisting `"profile": "on-prem"` to `.ma-agents.json` in the temp project
93
- - [ ] 4.4 Verify `test/fixtures/README.md` documents the regeneration procedure for both profiles; update if outdated
94
- - [ ] 4.5 Harness walks generated tmp dir and diffs every file against the corresponding baseline; any diff fails the test naming the file + diff hunk
95
-
96
- - [ ] **Task 5: End-to-end harness** (AC #7)
97
- - [ ] 5.1 Harness invokes the installer entry point once per profile (sequential, not parallel)
98
- - [ ] 5.2 Snapshots the generated filesystem tree
99
- - [ ] 5.3 Diffs against the committed per-profile baseline fixture
100
-
101
- - [ ] **Task 6: Profile unit-test coverage audit** (AC #2)
102
- - [ ] 6.1 Read `D:\Code\agents\test\profile.test.js` and confirm it covers: missing-file `getProfile`, round-trip `setProfile`/`getProfile`, `resolveProfile` precedence (three cases), non-I/O property of `resolveProfile`
103
- - [ ] 6.2 If any coverage is missing, add the test(s) to the same file; do NOT create a parallel file
104
-
105
- - [ ] **Task 7: Run full `npm test` and produce NFR coverage table** (AC #3, #9)
106
- - [ ] 7.1 `npm test` — must be green end-to-end
107
- - [ ] 7.2 Author the NFR44/NFR45/NFR46/NFR47 → test-name table for the PR body
108
- - [ ] 7.3 Confirm NFR45 is satisfied by `test/profile.test.js` `--yes` + persisted-precedence tests (no separate test required)
109
-
110
- - [ ] **Task 8: Documentation touch-up**
111
- - [ ] 8.1 If `test/fixtures/README.md` does not already document "how to regenerate baselines when templates change intentionally," add that section
112
- - [ ] 8.2 No other docs modified by this story (Story 21.8 owns the on-prem README/docs surface)
113
-
114
- ## Dev Notes
115
-
116
- ### Architecture Compliance
117
-
118
- - **Decision P3-3** (`_bmad-output/planning-artifacts/architecture.md` §P3-3) — this story closes the testing gap for cross-story contracts. Per-story unit tests cover their own scope; Story 21.9 covers integration-level NFRs.
119
- - **NFR44** (profile isolation — standard profile emits no on-prem-specific strings): verified by AC #1 sub-test (a) and the standard-profile baseline fixture diff (AC #8).
120
- - **NFR46** (stamping idempotency — two installs produce byte-identical marker content): verified by AC #1 sub-test (c).
121
- - **NFR47** (Roo Code `fileRegex` application-layer enforcement): verified by AC #1 sub-test (e) + the AC #5 matrix. Per epic technical note (line 4152), this story verifies the *generated regex*, not a running Roo Code `FileRestrictionError`.
122
- - **NFR18** (OpenCode JSON-merge additive-only): this story does NOT add new NFR18 coverage — existing `test/opencode-json-merge.test.js` owns that NFR. Story 21.9 cites NFR18 in the PR coverage table (AC #9) and confirms the on-prem profile injection into `opencode.json::instructions[]` does not introduce a regression via the end-to-end harness diff against the baseline fixture (Tasks 4, 5).
123
-
124
- ### Prior-Story Artifacts the Test Suite Depends On (must exist on disk)
125
-
126
- This story's tests consume artifacts produced by every other Epic 21 story. Task 1 verifies each before any test is authored. If any is missing the story HALTs — the tests cannot be stubbed in isolation without producing false confidence.
127
-
128
- | Source story | Artifact(s) | Expected path | Consumer in 21.9 |
129
- |---|---|---|---|
130
- | 21.1 | `lib/profile.js` (getProfile/setProfile/resolveProfile) | `D:\Code\agents\lib\profile.js` (verified present) | AC #2, all tmp-project setup |
131
- | 21.1 | `test/profile.test.js` | `D:\Code\agents\test\profile.test.js` (verified present) | AC #2 |
132
- | 21.2 | Universal instruction-block template | `lib/templates/instruction-block-universal.template.md` **(new — Story 21.2)** | AC #1 (a), (b); baseline fixtures |
133
- | 21.2 | `composeInstructionBlock` in `lib/installer.js` | `D:\Code\agents\lib\installer.js` (verified present; function new) | Tasks 2, 5 |
134
- | 21.3 | `.roomodes` template + YAML merger | `lib/templates/roomodes.template.yaml` **(new)**, `lib/merge/roomodes.js` **(new)** | AC #1 (d), (e); AC #5 matrix |
135
- | 21.3 | Roo Code entry `extraInstructionTemplates` in agents.js | `D:\Code\agents\lib\agents.js` (verified present; field new) | Task 2.7 |
136
- | 21.4 | `AGENTS.md` template | `lib/templates/agents-md.template.md` **(new)** | AC #1 (b); baseline |
137
- | 21.5 | `.clinerules` template | `lib/templates/clinerules.template.md` **(new)** | AC #1 (b); baseline |
138
- | 21.6 | On-prem instruction-block template | `lib/templates/instruction-block-onprem.template.md` **(new)** | AC #1 (a), (b); NFR44 |
139
- | 21.7 | Per-persona `phase:` + `on_prem_phase_prefix:` in 8 customize YAMLs | `lib/bmad-customize/bmm-*.customize.yaml` (files verified present; fields new) | On-prem baseline fixture (customize output) |
140
- | 21.8 | vLLM doc + README section | `docs/deployment/vllm-nemotron.md` **(new)**, `README.md` on-prem section (modify) | Not directly test-consumed — cited in PR coverage table |
141
- | 21.10 | `ma-agents reconfigure` subcommand | `bin/cli.js` (verified; flag new), `lib/reconfigure.js` **(new)** | AC #6 preferred path; if unmerged, fall back to direct `.ma-agents.json` edit |
142
- | 21.11 | (not a dependency of 21.9 tests) | — | — |
143
-
144
- ### Source Tree Components to Touch
145
-
146
- | File | Change | Verified? |
147
- |---|---|---|
148
- | `D:\Code\agents\test\onprem-injection.test.js` | MODIFY (placeholder harness exists — see Change Log 2026-04-14; Story 21.9 populates it) | verified present (placeholder, currently exits 0) |
149
- | `D:\Code\agents\test\profile.test.js` | VERIFY / augment only if coverage gaps found | verified present |
150
- | `D:\Code\agents\test\fixtures\empty-project\` | MODIFY / populate if empty | verified present (directory) |
151
- | `D:\Code\agents\test\fixtures\standard-profile-baseline\` | POPULATE with generated files | verified present (directory) |
152
- | `D:\Code\agents\test\fixtures\onprem-profile-baseline\` | POPULATE with generated files | verified present (directory) |
153
- | `D:\Code\agents\test\fixtures\README.md` | VERIFY / update regeneration procedure | verified present |
154
- | `D:\Code\agents\lib\profile.js` | READ-ONLY | verified present |
155
- | `D:\Code\agents\lib\installer.js` | READ-ONLY (consumed programmatically) | verified present |
156
- | `D:\Code\agents\lib\agents.js` | READ-ONLY | verified present |
157
- | `D:\Code\agents\lib\templates\project-context.template.md` | READ-ONLY reference pattern | verified present |
158
- | `D:\Code\agents\lib\bmad-customize\*.customize.yaml` | READ-ONLY (8 files) | verified present |
159
- | `D:\Code\agents\bin\cli.js` | READ-ONLY (entry point located; not modified) | verified present |
160
- | `D:\Code\agents\docs\deployment\vllm-nemotron.md` | NOT TOUCHED (Story 21.8 owns) | **(new — Story 21.8)** |
161
-
162
- Legend: **(new)** = file does not yet exist on disk; will be created by the owning story. Story 21.9 cannot proceed on any `(new)` artifact that is still missing when it runs.
163
-
164
- ### Library and Pattern References
165
-
166
- - Test framework: use the same node-test / mocha-style harness already in use across `D:\Code\agents\test\`. Verify by reading one existing file first (`test/profile.test.js` is the closest peer) before picking a style.
167
- - Temp-dir isolation: `fs.mkdtempSync(path.join(os.tmpdir(), 'ma-agents-21-9-'))` — mirror the pattern in `test/profile.test.js`.
168
- - Never run tests in parallel (`Promise.all`) against the installer — pre-existing race documented in `test/generate-project-context.test.js` (Epic 13).
169
- - Byte-for-byte diffing: use `fs.readFileSync(..., 'utf-8')` + strict equality, or `Buffer.compare` for binary-safe files. For directory diffs, walk recursively and sort entries for stable comparison.
170
-
171
- ### NFR Coverage Map (for PR body — AC #9)
172
-
173
- | NFR | Covered by |
174
- |---|---|
175
- | NFR44 (profile isolation) | `test/onprem-injection.test.js` sub-test (a); `test/fixtures/standard-profile-baseline/` diff |
176
- | NFR45 (CI/CD non-blocking) | `test/profile.test.js` (existing — Story 21.1) — `--yes` defaulting + persisted-precedence tests |
177
- | NFR46 (stamping idempotency) | `test/onprem-injection.test.js` sub-test (c) |
178
- | NFR47 (application-layer file restriction) | `test/onprem-injection.test.js` sub-test (e) + AC #5 matrix |
179
- | NFR18 (OpenCode JSON-merge additive) | `test/opencode-json-merge.test.js` (existing) + end-to-end harness diff |
180
-
181
- ### Test Isolation Notes
182
-
183
- The existing `test/generate-project-context.test.js` (Epic 13) used `Promise.all` and hit a race because two tests temporarily renamed the template file. Run all tests in `test/onprem-injection.test.js` sequentially (`for...of` with `await`). Each temp dir is created fresh per test and is not shared.
184
-
185
- ### Test Coverage Gaps (surfaced by 21.2–21.8 AC enumeration)
186
-
187
- The per-upstream-story AC mapping in the Testing section identifies every AC from Stories 21.2 through 21.8. ACs flagged **GAP** below are NOT covered by a test authored in Story 21.9 and are either (a) owned by the upstream story's own unit tests (UNIT), (b) documentation content not amenable to automation, or (c) genuine coverage gaps that should be filed as follow-up items. Story 21.9's contract per AC #9 is to surface — not silently absorb — every such gap.
188
-
189
- - **21.2 AC #2** (placeholder-shape contract) — UNIT (Story 21.2 author's unit test).
190
- - **21.2 AC #3** (composer on-prem-missing-throws error path) — UNIT.
191
- - **21.2 AC #9** (BMAD agent file missing-skip branch) — UNIT.
192
- - **21.2 AC #10** (upgrade-safety hand-edit detection + backup format) — UNIT (21.2 owns the contract; 21.9 does not exercise the drift/backup path).
193
- - **21.3 AC #3** (`extraInstructionTemplates` static-registry field) — UNIT.
194
- - **21.3 AC #5** (pure-function `mergeRoomodes` contract) — UNIT.
195
- - **21.3 AC #6** (console-warning text exact match) — partial in OIT sub-test (d); UNIT owns the warning-text assertion.
196
- - **21.3 AC #13** (Roo Code not installed → no write) — UNIT.
197
- - **21.4 AC #2** (AGENTS.md template static-text shape) — UNIT.
198
- - **21.4 AC #4** (OpenCode `extraInstructionTemplates` registry field) — UNIT.
199
- - **21.4 AC #5 (append-to-unmarkered-existing-file branch)** — GAP, potentially testable in OIT sub-test (b) variant; surface as follow-up if Story 21.4 UNIT does not cover.
200
- - **21.4 AC #9 exception** (legitimate `~/.claude/` in AGENTS.md Critical Behavior Rules under on-prem) — GAP; add positive assertion in OIT sub-test (b) on-prem branch so NFR44 narrowing is provable.
201
- - **21.4 AC #10** (path stamping precedence `_bmad/bmm/config.yaml` vs defaults) — UNIT.
202
- - **21.4 AC #11** (upgrade-safety drift inheritance from 21.2) — UNIT.
203
- - **21.4 AC #12** (`instructionFiles` unchanged) — UNIT.
204
- - **21.5 AC #2** (cross-file byte-identity of Cline files by construction) — GAP; add `assert.strictEqual(fs.readFileSync('.cline/clinerules.md'), fs.readFileSync('.clinerules'))` to OIT sub-test (b) to close in-story.
205
- - **21.5 AC #6** (`ClinerulesDualFileDriftError` error-path) — UNIT.
206
- - **21.5 AC #9** (`{{MANIFEST_PATH}}` resolves to `.cline/skills/MANIFEST.yaml`) — GAP; add explicit grep assertion in OIT sub-test (b) to close in-story.
207
- - **21.6 AC #3** (template placeholder-free shape) — UNIT.
208
- - **21.6 AC #9** (persona-prefix scope-out assertion) — UNIT (implicit; 21.7 owns positive side).
209
- - **21.6 AC #12** (fileRegex unchanged between standard and on-prem renders) — GAP; extend OIT sub-test (e) to run under both profiles and assert regex equality.
210
- - **21.7 AC #4** (deployed-output presence of new YAML fields — OR stripped per Branch B) — verify during BF-O capture; if customize deployed output is not walked by the baseline diff, surface as gap.
211
- - **21.7 AC #5** (warning on invalid `phase:` value) — UNIT.
212
- - **21.7 AC #8** (idempotency of deployed customize files) — GAP; extend OIT sub-test (c) to include `_bmad/_config/agents/*.customize.yaml` in the byte-identity hash set, OR verify it is walked by BF-O diff.
213
- - **21.7 AC #10** (untouched-persona back-compat) — UNIT.
214
- - **21.8 AC #2–#7** (doc content) — DOC REVIEW, not test-automatable.
215
- - **21.8 AC #8** (README On-Prem section) — GAP; add `fs.readFileSync('README.md').includes('On-Prem / Air-Gapped Deployment')` assertion to 21.9 harness preconditions (Task 1.8) to close in-story.
216
-
217
- **Follow-up action:** Per AC #9, gaps that are neither UNIT-owned nor doc-review-only (21.4 AC #5 append branch; 21.4 AC #9 exception; 21.5 AC #2 cross-file identity; 21.5 AC #9 manifest-path substitution; 21.6 AC #12 cross-profile fileRegex equality; 21.7 AC #4 and #8 deployed-customize coverage; 21.8 AC #8 README presence) MUST be either (a) absorbed into this story's OIT/harness tasks before merge, or (b) filed as bug stories against the owning Epic-21 story. The PR body coverage table (AC #9) names each resolution explicitly.
218
-
219
- ### Override-via-Extension Policy Reminder
220
-
221
- Story 21.7's customize-loader field additions (`phase:`, `on_prem_phase_prefix:`) rely on the BMAD built-in override policy (the project policy is: "override BMAD built-ins via extension, never upstream PRs to bmad-method"). Story 21.9 tests must validate BOTH variants the loader may emit (per Epic Cross-Epic Notes line 4231): if Story 21.7's implementation produces `*.customize.on-prem.yaml` sibling files, the test harness diff against the on-prem baseline must include them. If it produces a single field-augmented file selected at install time, the diff is against the rendered output only. Confirm which branch Story 21.7 landed on before authoring the baseline fixture.
222
-
223
- ## Testing
224
-
225
- - **Framework:** match existing `D:\Code\agents\test\` style. Verify first by reading `test/profile.test.js` — that is the Story-21.1 peer and the authoritative pattern for Epic 21 tests.
226
- - **Isolation:** `fs.mkdtempSync` per test; sequential execution; zero writes to the repo root.
227
- - **Fixtures:** `test/fixtures/empty-project/`, `test/fixtures/standard-profile-baseline/`, `test/fixtures/onprem-profile-baseline/` — regenerable per `test/fixtures/README.md`.
228
- - **Entry point:** exported top-level install function (not internal helpers) — AC #7 non-negotiable.
229
- - **Success criteria:** `npm test` green; all new sub-tests pass; pre-Epic-21 tests pass unchanged; PR body includes the NFR coverage table from the Dev Notes section above.
230
-
231
- ### Per-Upstream-Story AC → Test-File Mapping
232
-
233
- Each AC from Stories 21.2 through 21.8 is enumerated below and mapped to the test file that asserts it. ACs not mapped to a test are surfaced as Test Coverage Gap entries under Dev Notes. Mapping key: **OIT** = `test/onprem-injection.test.js` (this story), **PT** = `test/profile.test.js` (Story 21.1, extended here), **BF-S** = `test/fixtures/standard-profile-baseline/` diff (AC #8), **BF-O** = `test/fixtures/onprem-profile-baseline/` diff (AC #8), **OJM** = `test/opencode-json-merge.test.js` (pre-existing), **UNIT** = per-story unit test under `test/` owned by the upstream story, **GAP** = no test in 21.9; see Test Coverage Gap list.
234
-
235
- **Story 21.2 (Universal Instruction Block + composer):**
236
- - 21.2 AC #1 (universal template file exists + content) → BF-S / BF-O (content appears in baseline); OIT sub-test (b).
237
- - 21.2 AC #2 (`{{MANIFEST_PATH}}` single placeholder contract) → GAP (21.9 does not assert placeholder shape; owned by Story 21.2 UNIT).
238
- - 21.2 AC #3 (composer function signature + on-prem-missing-throws) → GAP (error-path not exercised in 21.9; owned by Story 21.2 UNIT).
239
- - 21.2 AC #4 (per-tool marker injection calls composer) → OIT sub-test (b); BF-S / BF-O.
240
- - 21.2 AC #5 (all markdown-injection agents receive the block) → OIT sub-test (b); BF-S / BF-O.
241
- - 21.2 AC #6 (idempotency — NFR46) → OIT sub-test (c).
242
- - 21.2 AC #7 (profile isolation — NFR44) → OIT sub-test (a); BF-S.
243
- - 21.2 AC #8 (OpenCode JSON-merge coexistence — NFR18) → OJM (existing) + BF-S / BF-O (instructions[] entry present).
244
- - 21.2 AC #9 (BMAD agent instruction files unchanged in scope) → GAP (no negative assertion authored in 21.9; owned by Story 21.2 UNIT).
245
- - 21.2 AC #10 (upgrade-safety hand-edit detection + backup) → GAP (drift/backup path not exercised in 21.9; owned by Story 21.2 UNIT).
246
-
247
- **Story 21.3 (`.roomodes` template + YAML merger):**
248
- - 21.3 AC #1 (four customModes entries present) → OIT sub-test (b); BF-S / BF-O.
249
- - 21.3 AC #2 (customInstructions reuses composer output) → BF-O (on-prem content appears in customInstructions); OIT sub-test (b).
250
- - 21.3 AC #3 (`roo-code` agent gains `extraInstructionTemplates`) → GAP (static agent-registry field; owned by Story 21.3 UNIT).
251
- - 21.3 AC #4 (stamper wires extra template) → OIT sub-test (b) end-to-end; BF-S / BF-O.
252
- - 21.3 AC #5 (mergeRoomodes contract — pure splicer) → GAP (pure-function unit test owned by Story 21.3 UNIT).
253
- - 21.3 AC #6 (slug-collision warning emitted) → OIT sub-test (d) — asserts overwrite; GAP on the console-warning text match (surface if Story 21.3 UNIT does not cover).
254
- - 21.3 AC #7 (fresh install creates `.roomodes`) → OIT sub-test (b); BF-S.
255
- - 21.3 AC #8 (re-install preserves user customModes) → OIT sub-test (d).
256
- - 21.3 AC #9 (NFR47 fileRegex contract) → OIT sub-test (e) + AC #5 matrix.
257
- - 21.3 AC #10 (NFR46 idempotency for .roomodes) → OIT sub-test (c).
258
- - 21.3 AC #11 (NFR44 standard profile — customInstructions has no on-prem strings) → OIT sub-test (a); BF-S.
259
- - 21.3 AC #12 (NFR18 not regressed) → OJM (existing).
260
- - 21.3 AC #13 (Roo Code not installed → no `.roomodes` write) → GAP (21.9 always selects Roo Code; owned by Story 21.3 UNIT).
261
- - 21.3 AC #14 (markdown rules file `.roo/rules/00-ma-agents.md` unchanged in shape) → OIT sub-test (b); BF-S / BF-O.
262
-
263
- **Story 21.4 (`AGENTS.md` template + OpenCode wiring):**
264
- - 21.4 AC #1 (template file exists + content) → BF-S / BF-O.
265
- - 21.4 AC #2 (static text, no placeholders) → GAP (source-file shape; owned by Story 21.4 UNIT).
266
- - 21.4 AC #3 (composer output written via markdown-markers merger) → OIT sub-test (b).
267
- - 21.4 AC #4 (OpenCode agent `extraInstructionTemplates` registered) → GAP (static registry field; owned by Story 21.4 UNIT).
268
- - 21.4 AC #5 (markdown-markers merger behavior — create / replace / append) → OIT sub-test (b), (c) cover create + replace; GAP on the append-to-existing-unmarkered-file case.
269
- - 21.4 AC #6 (`"AGENTS.md"` appended to `opencode.json::instructions[]`) → OJM (existing) + BF-S / BF-O.
270
- - 21.4 AC #7 (`AGENTS.md` entry user-owned after first install — no re-append) → OIT sub-test (c) (idempotency catches double-append).
271
- - 21.4 AC #8 (idempotency — NFR46) → OIT sub-test (c).
272
- - 21.4 AC #9 (profile isolation — NFR44 with `~/.claude/` exception inside Critical Behavior Rules) → OIT sub-test (a) asserts the three literals absent in standard-profile render; GAP on the exception-carve-out assertion (the single legitimate `~/.claude/` occurrence under on-prem profile in AGENTS.md Critical Behavior Rules).
273
- - 21.4 AC #10 (path stamping resolution precedence) → GAP (owned by Story 21.4 UNIT).
274
- - 21.4 AC #11 (upgrade-safety hand-edit detection) → GAP (inherits Story 21.2 AC #10; owned by Story 21.2/21.4 UNIT).
275
- - 21.4 AC #12 (OpenCode `instructionFiles` unchanged) → GAP (static registry; owned by Story 21.4 UNIT).
276
-
277
- **Story 21.5 (`.clinerules` template extension):**
278
- - 21.5 AC #1 (template file exists + content) → BF-S / BF-O.
279
- - 21.5 AC #2 (universal text not hand-duplicated — single composer render) → OIT sub-test (b) + cross-file byte-identity check (GAP if not added).
280
- - 21.5 AC #3 (both Cline files written via marker-based injection) → OIT sub-test (b); BF-S / BF-O.
281
- - 21.5 AC #4 (user content outside markers preserved) → OIT sub-test (c), (d).
282
- - 21.5 AC #5 (idempotency per file — NFR46) → OIT sub-test (c).
283
- - 21.5 AC #6 (dual-file drift detection — `ClinerulesDualFileDriftError`) → GAP (error-path not exercised in 21.9; owned by Story 21.5 UNIT).
284
- - 21.5 AC #7 (profile isolation — NFR44, both files) → OIT sub-test (a); BF-S.
285
- - 21.5 AC #8 (on-prem profile appends on-prem content to both files) → OIT sub-test (b); BF-O.
286
- - 21.5 AC #9 (`{{MANIFEST_PATH}}` resolves to `.cline/skills/MANIFEST.yaml`) → GAP (placeholder substitution result — add explicit assertion in OIT sub-test (b) or surface as gap; owned by Story 21.5 UNIT).
287
-
288
- **Story 21.6 (on-prem layered guardrails):**
289
- - 21.6 AC #1 (on-prem template file exists + four categories) → BF-O.
290
- - 21.6 AC #2 (composer append wiring — on-prem layer) → OIT sub-test (b); BF-O.
291
- - 21.6 AC #3 (on-prem template has no placeholders) → GAP (source-file shape; owned by Story 21.6 UNIT).
292
- - 21.6 AC #4 (profile isolation — standard — NFR44, exhaustive three-literal set) → OIT sub-test (a); BF-S. **This AC pins the canonical negative set referenced by 21.9 AC #1(a).**
293
- - 21.6 AC #5 (profile merge — on-prem includes both blocks in every agent) → OIT sub-test (b); BF-O.
294
- - 21.6 AC #6 (`.roomodes` customInstructions on-prem augmentation — `/no_think` in each of four modes) → OIT sub-test (b); BF-O.
295
- - 21.6 AC #7 (`AGENTS.md` on-prem augmentation inside Critical Behavior Rules anchor) → OIT sub-test (b); BF-O. Shape-A vs Shape-B decision deferred to Story 21.6 dev.
296
- - 21.6 AC #8 (`.clinerules` / `.cline/clinerules.md` on-prem augmentation) → OIT sub-test (b); BF-O.
297
- - 21.6 AC #9 (BMAD persona phase prefix NOT in scope for 21.6) → GAP (negative scope assertion; implicit via Story 21.7 test ownership).
298
- - 21.6 AC #10 (idempotency — NFR46) → OIT sub-test (c); BF-O.
299
- - 21.6 AC #11 (additive JSON-merge not regressed — NFR18) → OJM (existing) + BF-O.
300
- - 21.6 AC #12 (Roo Code fileRegex not regressed — NFR47) → OIT sub-test (e) run under both profiles (GAP if not added — surface).
301
- - 21.6 AC #13 (upgrade-safety on profile flip — deferred to 21.10) → Out of scope for 21.9; covered indirectly by AC #6 profile switch round-trip.
302
-
303
- **Story 21.7 (BMAD persona phase prefix):**
304
- - 21.7 AC #1 (planning-persona prefix content when on-prem) → BF-O (deployed `_bmad/_config/agents/*.customize.yaml`).
305
- - 21.7 AC #2 (implementation-persona prefix content when on-prem) → BF-O.
306
- - 21.7 AC #3 (standard-profile isolation — no prefix, byte-identical to pre-Epic-21) → BF-S; NFR coverage table.
307
- - 21.7 AC #4 (YAML schema additions — `phase:` + `on_prem_phase_prefix:`) → Task 1.7 verifies source files have fields; GAP on actual deployed-output assertion if BF-O does not include customize-output files (verify during baseline capture).
308
- - 21.7 AC #5 (`phase` field values enumerated — warning on invalid) → GAP (owned by Story 21.7 UNIT).
309
- - 21.7 AC #6 (loader integration contract — no upstream PRs) → Policy, not test-verifiable; cite only.
310
- - 21.7 AC #7 (prefix composition rule — prepend not replace) → BF-O (deployed customize file shape).
311
- - 21.7 AC #8 (idempotency — NFR46) → OIT sub-test (c) extended to hash deployed customize files, or BF-O diff on second run (GAP if not added — surface).
312
- - 21.7 AC #9 (standard-profile byte-identity to pre-Epic-21 baseline) → BF-S; NFR coverage table.
313
- - 21.7 AC #10 (authoring back-compat for untouched personas) → GAP (out-of-scope-persona assertion; owned by Story 21.7 UNIT).
314
- - 21.7 AC #11 (NFR47 non-regression) → OIT sub-test (e).
315
- - 21.7 AC #12 (NFR18 non-regression) → OJM (existing).
316
-
317
- **Story 21.8 (vLLM reference doc + README):**
318
- - 21.8 AC #1 (doc file created at `docs/deployment/vllm-nemotron.md`) → Task 1.8 filesystem presence check; cited in NFR coverage table.
319
- - 21.8 AC #2 (doc covers vLLM flags with rationale) → GAP (content review, not test-automatable; owned by Story 21.8 doc review).
320
- - 21.8 AC #3 (doc covers quantization tradeoffs) → GAP (doc content; not test-automatable).
321
- - 21.8 AC #4 (doc covers reasoning-mode behavior / `/no_think`) → GAP (doc content; not test-automatable).
322
- - 21.8 AC #5 (per-phase sampling-parameters table) → GAP (doc content; not test-automatable).
323
- - 21.8 AC #6 (`str_replace_editor` hallucination warning) → GAP (doc content; not test-automatable).
324
- - 21.8 AC #7 (copy-paste-runnable `vllm serve` launch command) → GAP (doc content; not test-automatable).
325
- - 21.8 AC #8 (README gains On-Prem / Air-Gapped Deployment section) → Task 1.8 filesystem grep check; GAP on automated presence assertion if not added to harness.
326
- - 21.8 AC #9 (deployment doc NOT stamped into target projects — FR179) → BF-S / BF-O (absence of doc from installer output tree).
327
-
328
- ## Dependencies
329
-
330
- ### Upstream (must be merged before Story 21.9 can start)
331
-
332
- - **Story 21.1** (`lib/profile.js`, `test/profile.test.js`) — **status: done** per sprint-status.yaml
333
- - **Story 21.2** (universal instruction-block template + `composeInstructionBlock`) — **status: backlog**
334
- - **Story 21.3** (`.roomodes` template + YAML merger + agents.js `extraInstructionTemplates`) — **status: backlog**
335
- - **Story 21.4** (`AGENTS.md` template + OpenCode wiring) — **status: backlog**
336
- - **Story 21.5** (`.clinerules` template) — **status: backlog**
337
- - **Story 21.6** (on-prem instruction-block template) — **status: backlog**
338
- - **Story 21.7** (BMAD persona phase prefix — 8 `*.customize.yaml` files) — **status: backlog**
339
- - **Story 21.8** (vLLM doc + README section) — **status: backlog** (soft dependency; cited in coverage table, not directly test-consumed)
340
- - **Story 21.10** (Profile Reconfigure — `ma-agents reconfigure` subcommand) — **status: backlog** (soft dependency; the AC #6 profile-switch round-trip test prefers calling `reconfigure` over direct `.ma-agents.json` editing when available. Test suite depends on 21.10's artifact (`lib/reconfigure.js`, `bin/cli.js` flag) existing; if 21.10 ships before 21.9 the test uses the canonical path, otherwise it falls back to direct edit with a TODO pointing at 21.10 per the Open question above.)
341
-
342
- ### Downstream (stories enabled by 21.9 completion)
343
-
344
- - **Story 21.10** (Profile Reconfigure) — Story 21.9 is NOT a hard dependency, but 21.10 benefits from the baseline fixtures when authoring its own round-trip tests. Per sprint-status.yaml execution order (line 113), 21.9 runs before 21.10.
345
- - **Story 21.11** (Profile Uninstall) — runs after 21.9 per execution order. Reuses isolation patterns established here.
346
-
347
- ### Soft / informational
348
-
349
- - `_bmad-output/implementation-artifacts/sprint-status.yaml` (READ-ONLY in this story — DO NOT modify per user instruction override)
350
-
351
- ## Out of Scope
352
-
353
- - Adding new per-story unit tests (those are owned by their respective stories — Stories 21.1–21.8, 21.10, 21.11)
354
- - Performance benchmarks for installer speed
355
- - Manual QA scripts
356
- - Any test that requires a running Roo Code process (NFR47 regex contract is verified against the generated pattern, not runtime `FileRestrictionError` — per epic technical note line 4152)
357
- - vLLM serving-stack tests (Story 21.8 ships vLLM as documentation only — FR179)
358
- - BMAD upstream contributions (project policy: override via extension; never upstream PRs to bmad-method)
359
- - Editing `.claude/skills/` — skill sources live in `lib/bmad-extension/skills/` or `skills/`; `.claude/skills/` is generated
360
-
361
- ## Change Log
362
-
363
- - 2026-04-14: Story created (Epic 21, Story 21.9)
364
- - 2026-04-14: Removed prescriptive `--profile=` flag references (flag retired per P0 spec-alignment PR #34)
365
- - 2026-04-14: Added ACs for standard-profile byte-for-byte fixture baseline and end-to-end installer harness (Findings #14, #18)
366
- - 2026-04-14: E2E fixture scaffolding committed (`test/fixtures/empty-project/`, placeholder baseline dirs, pending `test/onprem-injection.test.js` harness exits 0 until Story 21.9 implementation)
367
- - 2026-04-15: Story rewritten to spec — Status=Ready, verbatim epic Story paragraph, ACs flag `(gap-fill)` additions, Tasks/Subtasks with exact absolute paths, Dev Notes cite NFR44/46/47/18, prior-story artifact dependency table enumerated, override-via-extension policy reminder added. Open questions raised for (a) Story 21.10 availability at test-author time, (b) `bmad-dev` `fileRegex` shape ambiguity, (c) NFR45 non-duplication with `test/profile.test.js`.
368
- - 2026-04-15: Adversarial-review resolution pass. (1) AC #1(a) now pins the EXHAUSTIVE NFR44 negative literal set `["/no_think", "str_replace_editor", "~/.claude/"]` per Story 21.6 AC #4 scope narrowing (closes P1 #7); reasoning-mode / sampling prose is explicitly tested positive-side only. (2) Testing section expanded with per-upstream-story AC → test-file mapping covering every AC from Stories 21.2–21.8. (3) Dev Notes gains a Test Coverage Gaps subsection surfacing each GAP with ownership (UNIT vs in-story absorb vs doc-review). (4) Upstream dependencies now cite Story 21.10 (soft). (5) Status changed to Draft with explicit blockers — Tasks are conditional on upstream merge status and surfaced gaps. Canonical decision B (composer/merger/stamper terminology) verified consistent throughout.
@@ -1,173 +0,0 @@
1
- # Story 4.1: Visual Studio Agent Registry Entry
2
-
3
- Status: ready-for-dev
4
-
5
- <!-- Note: Validation is optional. Run validate-create-story for quality check before dev-story. -->
6
-
7
- ## Story
8
-
9
- As a **Chief Architect**,
10
- I want to understand how Visual Studio exposes AI agent configuration and add VS as a supported agent,
11
- So that engineers can install skills into Visual Studio's AI assistant.
12
-
13
- ## Acceptance Criteria
14
-
15
- 1. **Given** Visual Studio has GitHub Copilot integration
16
- **When** the integration mechanism is investigated
17
- **Then** a technical note is produced documenting:
18
- - Where VS stores AI agent instructions (file paths, config directories)
19
- - What format VS expects (markdown, JSON, YAML, or other)
20
- - How VS Copilot Chat extensions handle custom instructions
21
- - Whether `.vs/` directory, `.editorconfig`, or another mechanism is used
22
- - Platform path differences (Windows-only or cross-platform VS Code distinction)
23
-
24
- 2. **Given** the research is complete
25
- **When** the findings are documented
26
- **Then** a clear recommendation exists for the agent registry configuration object fields
27
-
28
- 3. **Given** the VS agent configuration is understood
29
- **When** a new agent object is added to `lib/agents.js`
30
- **Then** it includes: name, category, platform paths, instruction file, and resource map
31
- **And** no changes are needed to `installer.js` or other modules (NFR13)
32
-
33
- 4. **Given** the VS agent is registered
34
- **When** `npx ma-agents list --agents` is run
35
- **Then** Visual Studio appears in the agent list
36
-
37
- 5. **Given** a skill is installed targeting the VS agent
38
- **When** the install completes
39
- **Then** skill content is placed in the correct VS configuration directory
40
- **And** the manifest tracks the VS agent installation
41
-
42
- > **Note:** AC #5 overlaps with Story 4-2 scope. Verify basic install here; detailed template resolution and multi-agent testing belongs in 4-2.
43
-
44
- ## Tasks / Subtasks
45
-
46
- - [ ] Task 1: Research Visual Studio AI agent configuration (AC: #1, #2)
47
- - [ ] 1.1: Investigate GitHub Copilot in Visual Studio (not VS Code) — how custom instructions are configured
48
- - [ ] 1.2: Check for `.github/copilot/copilot.md` support in VS (this is the VS Code Copilot instruction file per `lib/agents.js:79` — does VS use the same mechanism?)
49
- - [ ] 1.3: Investigate VS-specific paths: `.vs/` directory, `%APPDATA%/Microsoft/VisualStudio/`, or solution-level config
50
- - [ ] 1.4: Check if VS supports `.editorconfig`-adjacent AI instruction files
51
- - [ ] 1.5: Document findings in `_bmad-output/implementation-artifacts/vs-agent-research.md`
52
- - [ ] 1.6: Produce recommendation for agent registry object fields matching the actual schema: `id`, `name`, `version`, `category`, `description`, `getProjectPath()`, `getGlobalPath()`, `fileExtension`, `template`, `instructionFiles[]`, and optionally `resourceMap`
53
- - [ ] Task 2: Add VS agent to registry (AC: #3, #4)
54
- - [ ] 2.1: Add agent configuration object to the agents array in `lib/agents.js` (search: `const agents = [`)
55
- - [ ] 2.2: Set `id`, `name`, `version`, `category` ("ide"), `description`, `fileExtension`, `template` based on research findings
56
- - [ ] 2.3: Implement `getProjectPath()` and `getGlobalPath()` functions with platform-specific paths (follow pattern from existing agents — Windows/macOS/Linux branches using `os.platform()`)
57
- - [ ] 2.4: Set `instructionFiles` array based on VS's instruction file path
58
- - [ ] 2.5: Add `resourceMap` only if VS uses non-standard directory names (like Cline does at `agents.js:122-125`) — otherwise omit
59
- - [ ] 2.6: Verify no changes needed to `installer.js` — the installer should pick up the new agent automatically (NFR13)
60
- - [ ] 2.5: Run `npx ma-agents list --agents` — verify VS appears
61
- - [ ] Task 3: Test skill installation to VS agent (AC: #5)
62
- - [ ] 3.1: Install a skill targeting the VS agent
63
- - [ ] 3.2: Verify files are placed in the correct VS configuration directory
64
- - [ ] 3.3: Verify manifest tracks the VS installation
65
- - [ ] 3.4: Test on Windows (VS is primarily Windows — macOS VS for Mac is deprecated)
66
-
67
- ## Dev Notes
68
-
69
- ### Epic Scope Note
70
-
71
- This story combines Epic 4 Story 4.1 (research) and Story 4.2 (add to registry) from the epics file into a single story. The companion story 4-2 covers template format verification — a scope not defined in the original epics. This was an intentional consolidation: research without registry implementation is incomplete, and template verification is a natural second story.
72
-
73
- ### Architecture Compliance
74
-
75
- - **Adding a new agent = adding one object to the registry array.** No installer code changes needed. This is the core extensibility model. [Source: architecture.md#Extensibility-Model, NFR13]
76
- - **Agent registry in `agents.js`:** Pure data + path functions. Each agent is a configuration object: name, category, platform paths, instruction file, resource map. [Source: architecture.md#Module-Boundaries]
77
- - **Platform path centralization:** All platform awareness lives in `agents.js`. The installer uses `agents.js` for path resolution and is format-agnostic. [Source: architecture.md#Enforcement-Guidelines]
78
-
79
- ### Existing Agent Registry Pattern
80
-
81
- Follow the exact pattern of existing agents. Example from the `copilot` agent in `lib/agents.js:60-80` (closest to VS):
82
-
83
- ```javascript
84
- {
85
- id: 'copilot',
86
- name: 'GitHub Copilot',
87
- version: '1.0.0',
88
- category: 'ide',
89
- description: 'GitHub Copilot Agent Mode',
90
- getProjectPath: () => path.join(process.cwd(), '.github', 'copilot', 'skills'),
91
- getGlobalPath: () => {
92
- const platform = os.platform();
93
- if (platform === 'win32') {
94
- return path.join(os.homedir(), 'AppData', 'Roaming', 'GitHub Copilot', 'skills');
95
- } else if (platform === 'darwin') {
96
- return path.join(os.homedir(), 'Library', 'Application Support', 'GitHub Copilot', 'skills');
97
- } else {
98
- return path.join(os.homedir(), '.config', 'github-copilot', 'skills');
99
- }
100
- },
101
- fileExtension: '.md',
102
- template: 'generic',
103
- instructionFiles: ['.github/copilot/copilot.md']
104
- }
105
- ```
106
-
107
- **Note:** Only `cline` has a `resourceMap` field (maps `references` → `docs`, `assets` → `templates`). All other agents omit it. Only add `resourceMap` for VS if research shows it uses non-standard directory names.
108
-
109
- The VS agent may use the same `.github/copilot/copilot.md` path if VS and VS Code share the same Copilot instruction mechanism. Research (Task 1) will determine this.
110
-
111
- ### Research Priorities
112
-
113
- **Most likely outcome:** VS uses `.github/copilot/copilot.md` (same as VS Code Copilot — see `lib/agents.js:79`). In this case:
114
- - The existing `copilot` agent may already cover VS
115
- - Or VS may need a separate entry with the same paths but a different `id`/`name` for clarity
116
- - Check if VS has additional instruction files beyond what VS Code supports
117
-
118
- **Alternative outcomes:**
119
- - VS uses `.vs/` directory for AI instructions (solution-level)
120
- - VS uses `%APPDATA%` paths for user-level AI config
121
- - VS has its own instruction format (not markdown)
122
-
123
- ### Windows-Only Consideration
124
-
125
- Visual Studio is Windows-only (macOS Visual Studio for Mac was discontinued in 2024). The agent registry entry should:
126
- - Set platform paths for Windows only (or gracefully skip on macOS/Linux)
127
- - Use Windows-style paths where needed (though `path.join()` handles this automatically)
128
- - Consider that the `copilot` agent already handles `.github/` paths cross-platform
129
-
130
- ### Phase 2 Injection Strategy (NOT YET IMPLEMENTED)
131
-
132
- **Note:** `injectionStrategy` is a Phase 2 planned feature from architecture decision P2-1. It does NOT exist in the current codebase. When Phase 2 is implemented, the VS agent may gain:
133
-
134
- ```javascript
135
- injectionStrategy: {
136
- position: 'top',
137
- skipPatterns: ['---'] // skip YAML frontmatter
138
- }
139
- ```
140
-
141
- For this story, focus on the current agent schema fields only. The `injectionStrategy` will be added in a separate Phase 2 epic.
142
-
143
- ### Critical Guardrails
144
-
145
- - **Only modify `lib/agents.js`** — no changes to installer.js, cli.js, or bmad.js [Source: architecture.md, NFR13]
146
- - **Use `path.join()` for all paths** [Source: architecture.md#Enforcement-Guidelines]
147
- - **No `process.platform` checks outside agents.js** — use `os.platform()` inside `getProjectPath()`/`getGlobalPath()` only [Source: architecture.md#Anti-Patterns]
148
- - **No new npm dependencies** [Source: architecture.md#Anti-Patterns]
149
-
150
- ### Project Structure Notes
151
-
152
- - Files to modify: `lib/agents.js` (add agent entry)
153
- - Files to create: `_bmad-output/implementation-artifacts/vs-agent-research.md` (research findings)
154
- - No changes to installer, CLI, or BMAD modules
155
-
156
- ### References
157
-
158
- - [Source: _bmad-output/planning-artifacts/epics.md#Epic-4] — Story 4.1 and 4.2 definitions
159
- - [Source: _bmad-output/planning-artifacts/prd.md#IDE-Agent-Integration-Model] — VS listed as gap
160
- - [Source: _bmad-output/planning-artifacts/architecture.md#Extensibility-Model] — Agent registry model (NFR13)
161
- - [Source: _bmad-output/planning-artifacts/architecture.md#Decision-P2-1] — Injection strategy pattern
162
- - [Source: _bmad-output/planning-artifacts/architecture.md#Module-Boundaries] — agents.js responsibility
163
- - [Source: lib/agents.js] — Current agent registry (11 agents: 7 IDE + 4 BMAD)
164
-
165
- ## Dev Agent Record
166
-
167
- ### Agent Model Used
168
-
169
- ### Debug Log References
170
-
171
- ### Completion Notes List
172
-
173
- ### File List