ma-agents 3.5.0 → 3.5.2

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 (548) hide show
  1. package/README.md +20 -10
  2. package/_bmad-output/implementation-artifacts/16-4-validation-report.md +79 -0
  3. package/_bmad-output/implementation-artifacts/19-1-knowledge-graph-core-library.md +239 -0
  4. package/_bmad-output/implementation-artifacts/19-2-graph-emission-create-prd.md +171 -0
  5. package/_bmad-output/implementation-artifacts/19-3-graph-emission-create-architecture-epics.md +179 -0
  6. package/_bmad-output/implementation-artifacts/19-4-graph-emission-create-story-remaining.md +190 -0
  7. package/_bmad-output/implementation-artifacts/19-5-open-graph-skill.md +213 -0
  8. package/_bmad-output/implementation-artifacts/19-6-interactive-visualization-renderer.md +259 -0
  9. package/_bmad-output/implementation-artifacts/19-7-llm-writability-validation-tests.md +280 -0
  10. package/_bmad-output/implementation-artifacts/sprint-status.yaml +31 -18
  11. package/_bmad-output/planning-artifacts/architecture.md +354 -2
  12. package/_bmad-output/planning-artifacts/epics.md +556 -8
  13. package/_bmad-output/planning-artifacts/prd.md +92 -10
  14. package/_bmad-output/planning-artifacts/validation-report-prd-2026-04-07.md +330 -0
  15. package/lib/bmad-cache/bmb/.claude-plugin/marketplace.json +39 -4
  16. package/lib/bmad-cache/bmb/README.md +39 -27
  17. package/lib/bmad-cache/bmb/_git_preserved/index +0 -0
  18. package/lib/bmad-cache/bmb/_git_preserved/logs/HEAD +1 -1
  19. package/lib/bmad-cache/bmb/_git_preserved/logs/refs/heads/main +1 -1
  20. package/lib/bmad-cache/bmb/_git_preserved/logs/refs/remotes/origin/HEAD +1 -1
  21. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.idx +0 -0
  22. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.pack +0 -0
  23. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.rev +0 -0
  24. package/lib/bmad-cache/bmb/_git_preserved/packed-refs +1 -1
  25. package/lib/bmad-cache/bmb/_git_preserved/refs/heads/main +1 -1
  26. package/lib/bmad-cache/bmb/_git_preserved/shallow +1 -1
  27. package/lib/bmad-cache/bmb/package.json +1 -9
  28. package/lib/bmad-cache/bmb/samples/bmad-agent-code-coach/scripts/init-sanctum.py +288 -0
  29. package/lib/bmad-cache/bmb/samples/bmad-agent-creative-muse/scripts/init-sanctum.py +274 -0
  30. package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/assets/module-help.csv +9 -0
  31. package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/assets/module.yaml +8 -0
  32. package/lib/bmad-cache/bmb/{skills/bmad-builder-setup → samples/bmad-agent-dream-weaver}/scripts/merge-help-csv.py +3 -5
  33. package/lib/bmad-cache/bmb/samples/bmad-agent-sentinel/scripts/init-sanctum.py +285 -0
  34. package/lib/bmad-cache/bmb/samples/bmad-agent-sentinel/scripts/tests/test-init-sanctum.py +174 -0
  35. package/lib/bmad-cache/bmb/samples/sample-module-setup/assets/module-help.csv +16 -0
  36. package/lib/bmad-cache/bmb/samples/sample-module-setup/assets/module.yaml +13 -0
  37. package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-config.py +408 -0
  38. package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-help-csv.py +218 -0
  39. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/assets/init-sanctum-template.py +277 -0
  40. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/references/sample-init-sanctum.py +274 -0
  41. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/prepass-execution-deps.py +4 -4
  42. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/prepass-prompt-metrics.py +22 -0
  43. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/prepass-sanctum-architecture.py +385 -0
  44. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/prepass-structure-capabilities.py +64 -27
  45. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/process-template.py +190 -0
  46. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/scan-path-standards.py +17 -32
  47. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/scan-scripts.py +5 -3
  48. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/assets/module-help.csv +10 -0
  49. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/cleanup-legacy.py +259 -0
  50. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/merge-config.py +408 -0
  51. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/merge-help-csv.py +218 -0
  52. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/assets/module-help.csv +1 -0
  53. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/assets/module.yaml +6 -0
  54. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/cleanup-legacy.py +259 -0
  55. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/merge-config.py +408 -0
  56. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/merge-help-csv.py +218 -0
  57. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/standalone-module-template/merge-config.py +408 -0
  58. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/standalone-module-template/merge-help-csv.py +218 -0
  59. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/scaffold-setup-skill.py +124 -0
  60. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/scaffold-standalone-module.py +190 -0
  61. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/tests/test-scaffold-setup-skill.py +223 -0
  62. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/tests/test-scaffold-standalone-module.py +266 -0
  63. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/tests/test-validate-module.py +314 -0
  64. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/validate-module.py +293 -0
  65. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/generate-convert-report.py +406 -0
  66. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/prepass-workflow-integrity.py +1 -6
  67. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/scan-path-standards.py +14 -16
  68. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/tests/test_generate_convert_report.py +243 -0
  69. package/lib/bmad-cache/bmb/skills/module-help.csv +10 -5
  70. package/lib/bmad-cache/bmb/tools/validate-file-refs.mjs +1 -1
  71. package/lib/bmad-cache/bmb/website/astro.config.mjs +10 -6
  72. package/lib/bmad-cache/bmb/website/src/components/Banner.astro +6 -5
  73. package/lib/bmad-cache/bmb/website/src/styles/custom.css +60 -42
  74. package/lib/bmad-cache/cache-manifest.json +11 -11
  75. package/lib/bmad-cache/cis/README.md +9 -0
  76. package/lib/bmad-cache/cis/_git_preserved/index +0 -0
  77. package/lib/bmad-cache/cis/_git_preserved/logs/HEAD +1 -1
  78. package/lib/bmad-cache/cis/_git_preserved/logs/refs/heads/main +1 -1
  79. package/lib/bmad-cache/cis/_git_preserved/logs/refs/remotes/origin/HEAD +1 -1
  80. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.idx +0 -0
  81. package/lib/bmad-cache/cis/_git_preserved/objects/pack/{pack-9d60aae6b09bbea0d0c5e79fdbe96e8f66de84e6.pack → pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.pack} +0 -0
  82. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.rev +0 -0
  83. package/lib/bmad-cache/cis/_git_preserved/packed-refs +1 -1
  84. package/lib/bmad-cache/cis/_git_preserved/refs/heads/main +1 -1
  85. package/lib/bmad-cache/cis/_git_preserved/shallow +1 -1
  86. package/lib/bmad-cache/cis/src/module-help.csv +1 -0
  87. package/lib/bmad-cache/cis/website/astro.config.mjs +14 -6
  88. package/lib/bmad-cache/cis/website/src/components/Banner.astro +26 -11
  89. package/lib/bmad-cache/cis/website/src/styles/custom.css +60 -41
  90. package/lib/bmad-cache/gds/.claude-plugin/marketplace.json +1 -1
  91. package/lib/bmad-cache/gds/README.md +9 -0
  92. package/lib/bmad-cache/gds/_git_preserved/index +0 -0
  93. package/lib/bmad-cache/gds/_git_preserved/logs/HEAD +1 -1
  94. package/lib/bmad-cache/gds/_git_preserved/logs/refs/heads/main +1 -1
  95. package/lib/bmad-cache/gds/_git_preserved/logs/refs/remotes/origin/HEAD +1 -1
  96. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-ac967149d58fba215d07238ad8881bdbdad5c9c3.idx +0 -0
  97. package/lib/bmad-cache/gds/_git_preserved/objects/pack/{pack-8099a88fca0ad946a573316a00887a2921ca1712.pack → pack-ac967149d58fba215d07238ad8881bdbdad5c9c3.pack} +0 -0
  98. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-ac967149d58fba215d07238ad8881bdbdad5c9c3.rev +0 -0
  99. package/lib/bmad-cache/gds/_git_preserved/packed-refs +1 -1
  100. package/lib/bmad-cache/gds/_git_preserved/refs/heads/main +1 -1
  101. package/lib/bmad-cache/gds/_git_preserved/shallow +1 -1
  102. package/lib/bmad-cache/gds/package.json +1 -1
  103. package/lib/bmad-cache/gds/src/module-help.csv +1 -0
  104. package/lib/bmad-cache/gds/website/astro.config.mjs +14 -6
  105. package/lib/bmad-cache/gds/website/src/components/Banner.astro +26 -11
  106. package/lib/bmad-cache/gds/website/src/styles/custom.css +60 -41
  107. package/lib/bmad-cache/tea/README.md +14 -0
  108. package/lib/bmad-cache/tea/_git_preserved/index +0 -0
  109. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-c79805bb3fee27fa6d8c612a971af7fc86fc80e1.idx +0 -0
  110. package/lib/bmad-cache/tea/_git_preserved/objects/pack/{pack-d243f64f83b36190434d68872a69a40870c53030.pack → pack-c79805bb3fee27fa6d8c612a971af7fc86fc80e1.pack} +0 -0
  111. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-c79805bb3fee27fa6d8c612a971af7fc86fc80e1.rev +0 -0
  112. package/lib/bmad-cache/tea/_git_preserved/packed-refs +1 -1
  113. package/lib/bmad-cache/tea/_git_preserved/refs/heads/main +1 -1
  114. package/lib/bmad-cache/tea/_git_preserved/shallow +1 -1
  115. package/lib/bmad-cache/tea/docs/index.md +4 -14
  116. package/lib/bmad-cache/tea/package-lock.json +2 -2
  117. package/lib/bmad-cache/tea/package.json +1 -1
  118. package/lib/bmad-cache/tea/src/agents/bmad-tea/SKILL.md +6 -6
  119. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/playwright-cli.md +119 -4
  120. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/playwright-config.md +8 -4
  121. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/visual-debugging.md +34 -31
  122. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/tea-index.csv +1 -1
  123. package/lib/bmad-cache/tea/src/module-help.csv +1 -0
  124. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/atdd-checklist-template.md +1 -1
  125. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/instructions.md +0 -1
  126. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  127. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/api-request.md +563 -0
  128. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/api-testing-patterns.md +915 -0
  129. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/auth-session.md +548 -0
  130. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/burn-in.md +273 -0
  131. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/ci-burn-in.md +717 -0
  132. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/component-tdd.md +486 -0
  133. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/contract-testing.md +1050 -0
  134. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/data-factories.md +500 -0
  135. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/email-auth.md +721 -0
  136. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/error-handling.md +725 -0
  137. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/feature-flags.md +750 -0
  138. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/file-utils.md +456 -0
  139. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/fixture-architecture.md +401 -0
  140. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/fixtures-composition.md +382 -0
  141. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/intercept-network-call.md +426 -0
  142. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/log.md +426 -0
  143. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/network-error-monitor.md +401 -0
  144. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/network-first.md +486 -0
  145. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/network-recorder.md +527 -0
  146. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/nfr-criteria.md +670 -0
  147. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/overview.md +286 -0
  148. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-consumer-di.md +310 -0
  149. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  150. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-mcp.md +204 -0
  151. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  152. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-overview.md +216 -0
  153. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  154. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  155. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/playwright-cli.md +280 -0
  156. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/playwright-config.md +734 -0
  157. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/probability-impact.md +601 -0
  158. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/recurse.md +421 -0
  159. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/risk-governance.md +615 -0
  160. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/selective-testing.md +732 -0
  161. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/selector-resilience.md +527 -0
  162. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/test-healing-patterns.md +644 -0
  163. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/test-levels-framework.md +473 -0
  164. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/test-priorities-matrix.md +373 -0
  165. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/test-quality.md +664 -0
  166. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/timing-debugging.md +372 -0
  167. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/visual-debugging.md +527 -0
  168. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/tea-index.csv +43 -0
  169. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-01-preflight-and-context.md +1 -1
  170. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/instructions.md +0 -1
  171. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  172. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/api-request.md +563 -0
  173. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/api-testing-patterns.md +915 -0
  174. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/auth-session.md +548 -0
  175. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/burn-in.md +273 -0
  176. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/ci-burn-in.md +717 -0
  177. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/component-tdd.md +486 -0
  178. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/contract-testing.md +1050 -0
  179. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/data-factories.md +500 -0
  180. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/email-auth.md +721 -0
  181. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/error-handling.md +725 -0
  182. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/feature-flags.md +750 -0
  183. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/file-utils.md +456 -0
  184. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/fixture-architecture.md +401 -0
  185. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/fixtures-composition.md +382 -0
  186. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/intercept-network-call.md +426 -0
  187. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/log.md +426 -0
  188. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/network-error-monitor.md +401 -0
  189. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/network-first.md +486 -0
  190. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/network-recorder.md +527 -0
  191. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/nfr-criteria.md +670 -0
  192. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/overview.md +286 -0
  193. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-consumer-di.md +310 -0
  194. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  195. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-mcp.md +204 -0
  196. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  197. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-overview.md +216 -0
  198. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  199. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  200. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/playwright-cli.md +280 -0
  201. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/playwright-config.md +734 -0
  202. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/probability-impact.md +601 -0
  203. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/recurse.md +421 -0
  204. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/risk-governance.md +615 -0
  205. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/selective-testing.md +732 -0
  206. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/selector-resilience.md +527 -0
  207. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/test-healing-patterns.md +644 -0
  208. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/test-levels-framework.md +473 -0
  209. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/test-priorities-matrix.md +373 -0
  210. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/test-quality.md +664 -0
  211. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/timing-debugging.md +372 -0
  212. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/visual-debugging.md +527 -0
  213. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/tea-index.csv +43 -0
  214. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-01-preflight-and-context.md +1 -1
  215. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-03c-aggregate.md +8 -3
  216. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/harness-pipeline-template.yaml +7 -6
  217. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/instructions.md +0 -1
  218. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  219. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/api-request.md +563 -0
  220. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/api-testing-patterns.md +915 -0
  221. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/auth-session.md +548 -0
  222. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/burn-in.md +273 -0
  223. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/ci-burn-in.md +717 -0
  224. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/component-tdd.md +486 -0
  225. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/contract-testing.md +1050 -0
  226. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/data-factories.md +500 -0
  227. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/email-auth.md +721 -0
  228. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/error-handling.md +725 -0
  229. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/feature-flags.md +750 -0
  230. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/file-utils.md +456 -0
  231. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/fixture-architecture.md +401 -0
  232. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/fixtures-composition.md +382 -0
  233. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/intercept-network-call.md +426 -0
  234. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/log.md +426 -0
  235. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/network-error-monitor.md +401 -0
  236. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/network-first.md +486 -0
  237. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/network-recorder.md +527 -0
  238. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/nfr-criteria.md +670 -0
  239. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/overview.md +286 -0
  240. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-consumer-di.md +310 -0
  241. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  242. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-mcp.md +204 -0
  243. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  244. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-overview.md +216 -0
  245. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  246. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  247. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/playwright-cli.md +280 -0
  248. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/playwright-config.md +734 -0
  249. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/probability-impact.md +601 -0
  250. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/recurse.md +421 -0
  251. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/risk-governance.md +615 -0
  252. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/selective-testing.md +732 -0
  253. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/selector-resilience.md +527 -0
  254. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/test-healing-patterns.md +644 -0
  255. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/test-levels-framework.md +473 -0
  256. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/test-priorities-matrix.md +373 -0
  257. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/test-quality.md +664 -0
  258. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/timing-debugging.md +372 -0
  259. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/visual-debugging.md +527 -0
  260. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/tea-index.csv +43 -0
  261. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-02-generate-pipeline.md +1 -1
  262. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-03-configure-quality-gates.md +1 -1
  263. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/checklist.md +1 -1
  264. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/instructions.md +0 -1
  265. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  266. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/api-request.md +563 -0
  267. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/api-testing-patterns.md +915 -0
  268. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/auth-session.md +548 -0
  269. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/burn-in.md +273 -0
  270. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/ci-burn-in.md +717 -0
  271. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/component-tdd.md +486 -0
  272. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/contract-testing.md +1050 -0
  273. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/data-factories.md +500 -0
  274. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/email-auth.md +721 -0
  275. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/error-handling.md +725 -0
  276. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/feature-flags.md +750 -0
  277. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/file-utils.md +456 -0
  278. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/fixture-architecture.md +401 -0
  279. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/fixtures-composition.md +382 -0
  280. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/intercept-network-call.md +426 -0
  281. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/log.md +426 -0
  282. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/network-error-monitor.md +401 -0
  283. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/network-first.md +486 -0
  284. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/network-recorder.md +527 -0
  285. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/nfr-criteria.md +670 -0
  286. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/overview.md +286 -0
  287. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-consumer-di.md +310 -0
  288. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  289. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-mcp.md +204 -0
  290. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  291. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-overview.md +216 -0
  292. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  293. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  294. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/playwright-cli.md +280 -0
  295. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/playwright-config.md +734 -0
  296. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/probability-impact.md +601 -0
  297. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/recurse.md +421 -0
  298. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/risk-governance.md +615 -0
  299. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/selective-testing.md +732 -0
  300. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/selector-resilience.md +527 -0
  301. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/test-healing-patterns.md +644 -0
  302. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/test-levels-framework.md +473 -0
  303. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/test-priorities-matrix.md +373 -0
  304. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/test-quality.md +664 -0
  305. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/timing-debugging.md +372 -0
  306. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/visual-debugging.md +527 -0
  307. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/tea-index.csv +43 -0
  308. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-03-scaffold-framework.md +2 -2
  309. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  310. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/api-request.md +563 -0
  311. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/api-testing-patterns.md +915 -0
  312. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/auth-session.md +548 -0
  313. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/burn-in.md +273 -0
  314. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/ci-burn-in.md +717 -0
  315. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/component-tdd.md +486 -0
  316. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/contract-testing.md +1050 -0
  317. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/data-factories.md +500 -0
  318. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/email-auth.md +721 -0
  319. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/error-handling.md +725 -0
  320. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/feature-flags.md +750 -0
  321. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/file-utils.md +456 -0
  322. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/fixture-architecture.md +401 -0
  323. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/fixtures-composition.md +382 -0
  324. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/intercept-network-call.md +426 -0
  325. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/log.md +426 -0
  326. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/network-error-monitor.md +401 -0
  327. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/network-first.md +486 -0
  328. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/network-recorder.md +527 -0
  329. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/nfr-criteria.md +670 -0
  330. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/overview.md +286 -0
  331. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-consumer-di.md +310 -0
  332. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  333. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-mcp.md +204 -0
  334. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  335. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-overview.md +216 -0
  336. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  337. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  338. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/playwright-cli.md +280 -0
  339. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/playwright-config.md +734 -0
  340. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/probability-impact.md +601 -0
  341. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/recurse.md +421 -0
  342. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/risk-governance.md +615 -0
  343. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/selective-testing.md +732 -0
  344. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/selector-resilience.md +527 -0
  345. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/test-healing-patterns.md +644 -0
  346. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/test-levels-framework.md +473 -0
  347. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/test-priorities-matrix.md +373 -0
  348. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/test-quality.md +664 -0
  349. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/timing-debugging.md +372 -0
  350. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/visual-debugging.md +527 -0
  351. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/tea-index.csv +43 -0
  352. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-01-load-context.md +1 -1
  353. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/instructions.md +0 -1
  354. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  355. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/api-request.md +563 -0
  356. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/api-testing-patterns.md +915 -0
  357. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/auth-session.md +548 -0
  358. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/burn-in.md +273 -0
  359. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/ci-burn-in.md +717 -0
  360. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/component-tdd.md +486 -0
  361. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/contract-testing.md +1050 -0
  362. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/data-factories.md +500 -0
  363. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/email-auth.md +721 -0
  364. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/error-handling.md +725 -0
  365. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/feature-flags.md +750 -0
  366. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/file-utils.md +456 -0
  367. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/fixture-architecture.md +401 -0
  368. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/fixtures-composition.md +382 -0
  369. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/intercept-network-call.md +426 -0
  370. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/log.md +426 -0
  371. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/network-error-monitor.md +401 -0
  372. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/network-first.md +486 -0
  373. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/network-recorder.md +527 -0
  374. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/nfr-criteria.md +670 -0
  375. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/overview.md +286 -0
  376. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-consumer-di.md +310 -0
  377. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  378. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-mcp.md +204 -0
  379. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  380. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-overview.md +216 -0
  381. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  382. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  383. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/playwright-cli.md +280 -0
  384. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/playwright-config.md +734 -0
  385. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/probability-impact.md +601 -0
  386. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/recurse.md +421 -0
  387. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/risk-governance.md +615 -0
  388. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/selective-testing.md +732 -0
  389. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/selector-resilience.md +527 -0
  390. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/test-healing-patterns.md +644 -0
  391. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/test-levels-framework.md +473 -0
  392. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/test-priorities-matrix.md +373 -0
  393. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/test-quality.md +664 -0
  394. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/timing-debugging.md +372 -0
  395. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/visual-debugging.md +527 -0
  396. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/tea-index.csv +43 -0
  397. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-02-load-context.md +1 -1
  398. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-qa-template.md +1 -1
  399. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-template.md +1 -1
  400. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/checklist.md +1 -1
  401. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  402. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/api-request.md +563 -0
  403. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/api-testing-patterns.md +915 -0
  404. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/auth-session.md +548 -0
  405. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/burn-in.md +273 -0
  406. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/ci-burn-in.md +717 -0
  407. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/component-tdd.md +486 -0
  408. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/contract-testing.md +1050 -0
  409. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/data-factories.md +500 -0
  410. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/email-auth.md +721 -0
  411. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/error-handling.md +725 -0
  412. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/feature-flags.md +750 -0
  413. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/file-utils.md +456 -0
  414. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/fixture-architecture.md +401 -0
  415. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/fixtures-composition.md +382 -0
  416. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/intercept-network-call.md +426 -0
  417. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/log.md +426 -0
  418. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/network-error-monitor.md +401 -0
  419. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/network-first.md +486 -0
  420. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/network-recorder.md +527 -0
  421. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/nfr-criteria.md +670 -0
  422. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/overview.md +286 -0
  423. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-consumer-di.md +310 -0
  424. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  425. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-mcp.md +204 -0
  426. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  427. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-overview.md +216 -0
  428. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  429. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  430. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/playwright-cli.md +280 -0
  431. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/playwright-config.md +734 -0
  432. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/probability-impact.md +601 -0
  433. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/recurse.md +421 -0
  434. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/risk-governance.md +615 -0
  435. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/selective-testing.md +732 -0
  436. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/selector-resilience.md +527 -0
  437. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/test-healing-patterns.md +644 -0
  438. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/test-levels-framework.md +473 -0
  439. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/test-priorities-matrix.md +373 -0
  440. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/test-quality.md +664 -0
  441. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/timing-debugging.md +372 -0
  442. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/visual-debugging.md +527 -0
  443. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/tea-index.csv +43 -0
  444. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-01-load-context.md +1 -1
  445. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-02-discover-tests.md +7 -0
  446. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-03a-subagent-determinism.md +1 -1
  447. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  448. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/api-request.md +563 -0
  449. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/api-testing-patterns.md +915 -0
  450. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/auth-session.md +548 -0
  451. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/burn-in.md +273 -0
  452. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/ci-burn-in.md +717 -0
  453. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/component-tdd.md +486 -0
  454. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/contract-testing.md +1050 -0
  455. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/data-factories.md +500 -0
  456. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/email-auth.md +721 -0
  457. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/error-handling.md +725 -0
  458. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/feature-flags.md +750 -0
  459. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/file-utils.md +456 -0
  460. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/fixture-architecture.md +401 -0
  461. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/fixtures-composition.md +382 -0
  462. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/intercept-network-call.md +426 -0
  463. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/log.md +426 -0
  464. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/network-error-monitor.md +401 -0
  465. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/network-first.md +486 -0
  466. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/network-recorder.md +527 -0
  467. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/nfr-criteria.md +670 -0
  468. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/overview.md +286 -0
  469. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-consumer-di.md +310 -0
  470. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  471. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-mcp.md +204 -0
  472. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  473. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-overview.md +216 -0
  474. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  475. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  476. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/playwright-cli.md +280 -0
  477. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/playwright-config.md +734 -0
  478. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/probability-impact.md +601 -0
  479. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/recurse.md +421 -0
  480. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/risk-governance.md +615 -0
  481. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/selective-testing.md +732 -0
  482. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/selector-resilience.md +527 -0
  483. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/test-healing-patterns.md +644 -0
  484. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/test-levels-framework.md +473 -0
  485. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/test-priorities-matrix.md +373 -0
  486. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/test-quality.md +664 -0
  487. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/timing-debugging.md +372 -0
  488. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/visual-debugging.md +527 -0
  489. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/tea-index.csv +43 -0
  490. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-01-load-context.md +1 -1
  491. package/lib/bmad-cache/tea/website/astro.config.mjs +10 -6
  492. package/lib/bmad-cache/tea/website/src/components/Banner.astro +28 -13
  493. package/lib/bmad-cache/tea/website/src/components/Header.astro +1 -1
  494. package/lib/bmad-cache/tea/website/src/components/MobileMenuFooter.astro +1 -1
  495. package/lib/bmad-cache/tea/website/src/styles/custom.css +60 -41
  496. package/lib/bmad-cache/wds/README.md +13 -0
  497. package/lib/bmad-cache/wds/_git_preserved/index +0 -0
  498. package/lib/bmad-cache/wds/_git_preserved/logs/HEAD +1 -1
  499. package/lib/bmad-cache/wds/_git_preserved/logs/refs/heads/main +1 -1
  500. package/lib/bmad-cache/wds/_git_preserved/logs/refs/remotes/origin/HEAD +1 -1
  501. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-96877c1c09123cccb1f91c1412184b11d2b492ad.idx +0 -0
  502. package/lib/bmad-cache/wds/_git_preserved/objects/pack/{pack-92d32f26e3a97a0786dcea5cb2c24bf90384521c.pack → pack-96877c1c09123cccb1f91c1412184b11d2b492ad.pack} +0 -0
  503. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-96877c1c09123cccb1f91c1412184b11d2b492ad.rev +0 -0
  504. package/lib/bmad-cache/wds/_git_preserved/packed-refs +1 -1
  505. package/lib/bmad-cache/wds/_git_preserved/refs/heads/main +1 -1
  506. package/lib/bmad-cache/wds/_git_preserved/shallow +1 -1
  507. package/lib/bmad-cache/wds/src/module-help.csv +3 -2
  508. package/lib/bmad-cache/wds/src/module.yaml +1 -4
  509. package/lib/bmad-cache/wds/src/workflows/wds-0-project-setup/resources/wds-1-project-brief/templates/platform-requirements.template.yaml +69 -0
  510. package/lib/bmad-cache/wds/src/workflows/wds-0-project-setup/resources/wds-7-design-system/templates/catalog.template.html +363 -0
  511. package/lib/bmad-customize/bmm-qa.customize.yaml +19 -1
  512. package/lib/bmad-extension/module-help.csv +4 -1
  513. package/lib/bmad-extension/skills/bmad-ma-agent-sqa/SKILL.md +58 -0
  514. package/lib/bmad-extension/skills/bmad-ma-agent-sqa/bmad-skill-manifest.yaml +11 -0
  515. package/lib/bmad-extension/skills/sqa-audit/.gitkeep +0 -0
  516. package/lib/bmad-extension/skills/sqa-audit/SKILL.md +279 -0
  517. package/lib/bmad-extension/skills/sqa-audit/bmad-skill-manifest.yaml +3 -0
  518. package/lib/bmad-extension/skills/sqa-ieee12207/.gitkeep +0 -0
  519. package/lib/bmad-extension/skills/sqa-ieee12207/SKILL.md +374 -0
  520. package/lib/bmad-extension/skills/sqa-ieee12207/bmad-skill-manifest.yaml +3 -0
  521. package/lib/bmad-extension/skills/sqa-requirements-quality/.gitkeep +0 -0
  522. package/lib/bmad-extension/skills/sqa-requirements-quality/SKILL.md +244 -0
  523. package/lib/bmad-extension/skills/sqa-requirements-quality/bmad-skill-manifest.yaml +3 -0
  524. package/package.json +1 -1
  525. package/test/extension-module-restructure.test.js +29 -6
  526. package/test/migration-validation.test.js +20 -16
  527. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-0de89e0854d5b2b3b3b0c1ee56eee73a739f15e7.idx +0 -0
  528. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-0de89e0854d5b2b3b3b0c1ee56eee73a739f15e7.pack +0 -0
  529. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-0de89e0854d5b2b3b3b0c1ee56eee73a739f15e7.rev +0 -0
  530. package/lib/bmad-cache/bmb/skills/bmad-builder-setup/assets/module-help.csv +0 -6
  531. package/lib/bmad-cache/bmb/skills/bmad-builder-setup/scripts/tests/test-cleanup-legacy.py +0 -429
  532. package/lib/bmad-cache/bmb/skills/bmad-builder-setup/scripts/tests/test-merge-config.py +0 -644
  533. package/lib/bmad-cache/bmb/skills/bmad-builder-setup/scripts/tests/test-merge-help-csv.py +0 -237
  534. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-9d60aae6b09bbea0d0c5e79fdbe96e8f66de84e6.idx +0 -0
  535. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-9d60aae6b09bbea0d0c5e79fdbe96e8f66de84e6.rev +0 -0
  536. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-8099a88fca0ad946a573316a00887a2921ca1712.idx +0 -0
  537. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-8099a88fca0ad946a573316a00887a2921ca1712.rev +0 -0
  538. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-d243f64f83b36190434d68872a69a40870c53030.idx +0 -0
  539. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-d243f64f83b36190434d68872a69a40870c53030.rev +0 -0
  540. package/lib/bmad-cache/tea/_git_preserved/refs/tags/v1.7.3 +0 -1
  541. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-92d32f26e3a97a0786dcea5cb2c24bf90384521c.idx +0 -0
  542. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-92d32f26e3a97a0786dcea5cb2c24bf90384521c.rev +0 -0
  543. package/lib/bmad-extension/skills/bmad-ma-agent-mil498/SKILL.md +0 -54
  544. package/lib/bmad-extension/skills/bmad-ma-agent-mil498/bmad-skill-manifest.yaml +0 -11
  545. /package/lib/bmad-cache/bmb/{skills/bmad-builder-setup → samples/bmad-agent-dream-weaver}/scripts/merge-config.py +0 -0
  546. /package/lib/bmad-cache/bmb/{skills/bmad-builder-setup → samples/sample-module-setup}/scripts/cleanup-legacy.py +0 -0
  547. /package/lib/bmad-cache/bmb/skills/{bmad-builder-setup → bmad-bmb-setup}/assets/module.yaml +0 -0
  548. /package/lib/bmad-extension/skills/{bmad-ma-agent-mil498 → bmad-ma-agent-sqa}/.gitkeep +0 -0
@@ -2,7 +2,10 @@
2
2
  stepsCompleted: [1, 2, 3, 4, 'phase2-step-01', 'phase2-step-02', 'phase2-step-03', 'phase2-step-04']
3
3
  workflowStatus: 'complete'
4
4
  completedDate: '2026-03-08'
5
- lastEdited: '2026-04-03'
5
+ lastEdited: '2026-04-07'
6
+ phase3EditHistory:
7
+ - date: '2026-04-07'
8
+ changes: 'Added Epic 19: BMAD Knowledge Graph (Phase 3). 7 stories (19.1-19.7): core emitToGraph() library, graph emission for 7 BMAD skills (create-prd, create-architecture, create-epics-and-stories, create-story, validate-prd, dev-story, bmad-sprint-planning), open-graph skill with VSCode/browser detection, and interactive HTML renderer. Added FR141-FR157 to Requirements Inventory and FR Coverage Map. Added NFR38-NFR41. Updated Epic List and Development Execution Order. Fixed duplicate FR141 entry in Epic 17 coverage map (was remove-from-sprint, correctly FR129). Updated Roo Code Epic 18 proposed FRs to FR156-FR159 to avoid conflict with new Knowledge Graph FRs.'
6
9
  phase2EditHistory:
7
10
  - date: '2026-04-03'
8
11
  changes: 'Major rework of Epic 17: Sprint Management Model Rework. Replaced 3-file model (backlog.yaml, sprints/sprint-N.yaml, sprint-status.yaml) with unified single sprint-status.yaml approach. Stories rewritten: 17.9 (unified schema), 17.10 (generate-backlog rework), 17.11 (add-to-sprint movement semantics), 17.12 (remove-from-sprint movement semantics), 17.13 (sprint-status-view single-source read), 17.14 (cleanup-done single-source), 17.15 (bmad-sprint-planning bootstrap), 17.16 (add-sprint section-based), 17.17 (modify-sprint section-based), 17.18 (bmad-dev-story cross-section update), 17.19 (story-status-lookup cross-section search), 17.20 (bmad-sprint-status structured sections), 17.21 (close-sprint new skill), 17.22 (Jira adapter pattern), 17.23 (migration/deprecation of old files). Added FR133-FR140. Updated FR Coverage Map. Updated Epic 17 description in Epic List. Updated Development Execution Order.'
@@ -168,6 +171,27 @@ This document provides the complete epic and story breakdown for agents, decompo
168
171
  - FR139: The unified schema replaces the previous three-file model (`backlog.yaml`, `sprints/sprint-N.yaml`, `sprint-status.yaml`) — deprecated files are migrated or removed
169
172
  - FR140: All 12 sprint-related skills are reworked to operate against the single unified file
170
173
 
174
+ ### Functional Requirements (Phase 3 — added 2026-04-07)
175
+
176
+ #### BMAD Knowledge Graph (FR141-FR157)
177
+ - FR141: Each node in the knowledge graph is identified by `file-id#heading-anchor` where `file-id` is a short stable key that resolves to a file pointer via the `files` table
178
+ - FR142: Each directed edge carries full provenance: `from` (node id), `to` (node id), `type` (edge type), `label` (human description), `created_by` (user), `agent` (AI agent identity), `created_at` (ISO timestamp); edge types include `implements`, `derives-from`, `validates`, `traces-to`, `refines`, `informed-by`
179
+ - FR143: The graph maintains a bidirectional index — for each node, the system can resolve both inbound (nodes that reference it) and outbound (nodes it references) edges in O(1) time
180
+ - FR144: The knowledge graph JSON file uses a flat four-section structure: `meta` (file statistics), `files` (file registry), `nodes` (node list), `edges` (edge list) — maximum two levels of nesting throughout
181
+ - FR145: The `files` section maps each `file-id` to an object with `pointer` (the file reference), `title` (display name), and `pointer_type` (one of: `relative_path`, `absolute_path`, `url`) — enabling nodes in the same graph to address local files, files in other repos, and external URLs (Confluence, Jira, etc.) uniformly
182
+ - FR146: Each node object carries: `id` (`file-id#anchor`), `file` (the `file-id` from the files table), `anchor` (the heading slug), `title` (human-readable heading text), `type` (document type: `prd`, `architecture`, `epic`, `story`, `decision`, `validation`)
183
+ - FR147: Each edge object carries: `from`, `to`, `type`, `label`, `created_by`, `agent`, `created_at` — all fields required, no optional fields
184
+ - FR148: The `meta` section carries: `schema_version`, `generated_at`, `project`, `file_count`, `node_count`, `edge_count`
185
+ - FR149: BMAD skills emit nodes and edges automatically on artifact completion — no user prompt, no opt-in — as a silent post-artifact step
186
+ - FR150: When emitting, if a file is not yet in the `files` table, it is registered automatically; external URLs (e.g., Confluence page) are registered with `pointer_type: url`
187
+ - FR151: Any node may derive from multiple source documents simultaneously — a story AC can carry `informed-by` edges from both the architecture and a UX design doc, not just from its parent epic
188
+ - FR152: The emit operation is additive-only: new nodes and edges are appended; existing nodes and edges are never deleted or overwritten; duplicate detection uses the full `(from, to, type)` triple for edges and `id` for nodes
189
+ - FR153: The `open-graph` skill detects the execution environment (VSCode vs. terminal) and opens `knowledge-graph.html` via the appropriate mechanism — VSCode webview API when inside VSCode, `open`/`start` shell command otherwise
190
+ - FR154: The visualization renders nodes as color-coded circles by document type and supports click-to-navigate (opens the source document at the specific heading anchor in the IDE or browser)
191
+ - FR155: Hovering over an edge displays a tooltip with the full provenance record: type, label, created_by, agent, created_at
192
+ - FR156: The visualization provides interactive filtering by node type and edge type, and highlights the immediate neighbors of any selected node
193
+ - FR157: The visualization has no external CDN, font, or script dependencies — all rendering code and graph data are self-contained in a single HTML file suitable for air-gapped environments
194
+
171
195
  ### NonFunctional Requirements
172
196
 
173
197
  - NFR1: Skills must not transmit project data externally — all content is static instruction delivery, not data collection
@@ -207,6 +231,13 @@ This document provides the complete epic and story breakdown for agents, decompo
207
231
  - NFR36: project-layout.yaml must be deterministic
208
232
  - NFR37: All BMAD workflows must resolve paths through config, no hardcoded `_bmad-output/`
209
233
 
234
+ ### NonFunctional Requirements (Phase 3 — added 2026-04-07)
235
+
236
+ - NFR38: The `open-graph` skill must render the knowledge graph visualization within 3 seconds for graphs up to 500 nodes and 1000 edges, measured from skill invocation to first interactive frame
237
+ - NFR39: The knowledge graph JSON format must be writable by any LLM without external schema — structure is self-describing; an LLM can add a new node or edge by copying an existing pattern with no external reference
238
+ - NFR40: The `emitToGraph()` operation must never delete or overwrite existing graph data — additive-only semantics are enforced at the function level, verified by the absence of delete/overwrite operations during emission
239
+ - NFR41: The knowledge graph visualization (`knowledge-graph.html`) must function fully without network access — verified by disabling network access and confirming the graph renders identically
240
+
210
241
  ### Additional Requirements
211
242
 
212
243
  - Testing framework needs formalization — Node.js built-in test runner recommended per architecture
@@ -281,7 +312,7 @@ This document provides the complete epic and story breakdown for agents, decompo
281
312
  | FR66 (rework) | Epic 17 | Sprint capacity with first-class sprint entity |
282
313
  | FR67 (rework) | Epic 17 | Multi-criteria prioritization |
283
314
  | FR128 | Epic 17 | Bug as story type in backlog |
284
- | FR129 | Epic 17 | Move items from sprint back to backlog |
315
+ | FR129 | Epic 17 | Move items from sprint back to backlog (remove-from-sprint skill) |
285
316
  | FR130 | Epic 17 | Done items removed from sprint status file |
286
317
  | FR131 | Epic 17 | Done story files moved to done/ subfolder |
287
318
  | FR132 | Epic 17 | Sprints as first-class YAML entities |
@@ -293,11 +324,27 @@ This document provides the complete epic and story breakdown for agents, decompo
293
324
  | FR138 | Epic 17 / Epic 14 | Jira adapter pattern (tracking_system switch) |
294
325
  | FR139 | Epic 17 | Migration/removal of deprecated 3-file model |
295
326
  | FR140 | Epic 17 | All 12 sprint skills reworked for unified file |
296
- | FR141 | Epic 17 | Remove items from sprint back to backlog (remove-from-sprint skill) |
297
- | FR142 | Epic 18 | Roo Code custom modes from BMAD agents |
298
- | FR143 | Epic 18 | Roo Code rules from BMAD instructions |
299
- | FR144 | Epic 18 | Roo Code slash commands from BMAD workflows |
300
- | FR145 | Epic 18 | Cline-to-Roo Code migration |
327
+ | FR141 | Epic 19 | Graph node identity: file-id#heading-anchor |
328
+ | FR142 | Epic 19 | Directed typed edges with full provenance (6 edge types) |
329
+ | FR143 | Epic 19 | Bidirectional index per node |
330
+ | FR144 | Epic 19 | Flat four-section JSON structure (meta/files/nodes/edges) |
331
+ | FR145 | Epic 19 | Files table with pointer_type (relative_path, absolute_path, url) |
332
+ | FR146 | Epic 19 | Node schema (id, file, anchor, title, type) |
333
+ | FR147 | Epic 19 | Edge schema (from, to, type, label, created_by, agent, created_at) |
334
+ | FR148 | Epic 19 | Meta schema (schema_version, generated_at, project, counts) |
335
+ | FR149 | Epic 19 | Automatic silent emission on artifact completion (7 BMAD skills) |
336
+ | FR150 | Epic 19 | Auto-registration of new files; external URL support |
337
+ | FR151 | Epic 19 | Non-hierarchical multi-source emission (any-to-any informed-by edges) |
338
+ | FR152 | Epic 19 | Additive-only emit; duplicate detection by (from,to,type) for edges and id for nodes |
339
+ | FR153 | Epic 19 | open-graph skill with VSCode/browser detection |
340
+ | FR154 | Epic 19 | Interactive visualization: color-coded nodes by type, click-to-navigate |
341
+ | FR155 | Epic 19 | Edge tooltip with full provenance record |
342
+ | FR156 | Epic 19 | Interactive filtering by node/edge type; neighbor highlight |
343
+ | FR157 | Epic 19 | No external dependencies — fully self-contained HTML (air-gap compatible) |
344
+ | FR158 | Epic 18 | Roo Code custom modes from BMAD agents (proposed — pending PRD addition) |
345
+ | FR159 | Epic 18 | Roo Code rules from BMAD instructions (proposed — pending PRD addition) |
346
+ | FR160 | Epic 18 | Roo Code slash commands from BMAD workflows (proposed — pending PRD addition) |
347
+ | FR161 | Epic 18 | Cline-to-Roo Code migration (proposed — pending PRD addition) |
301
348
 
302
349
  ## Epic List
303
350
 
@@ -383,6 +430,16 @@ Sprint management is redesigned around a **single unified `sprint-status.yaml`**
383
430
  **Note:** Epic 12 delivered workflow files but not the underlying sprint data model. This epic builds the unified model, rewires all workflows, and provides the Jira adapter pattern.
384
431
  **Skills affected:** Heavy rework (6): generate-backlog, add-to-sprint, remove-from-sprint, sprint-status-view, cleanup-done, bmad-sprint-planning. Moderate rework (3): add-sprint, modify-sprint, bmad-dev-story. Light rework (3): story-status-lookup, bmad-sprint-status, prioritize-backlog. New skill (1): close-sprint.
385
432
 
433
+ ### Epic 19: BMAD Knowledge Graph (Phase 3)
434
+ Every planning and implementation artifact generated by BMAD skills is automatically woven into a non-hierarchical knowledge graph stored as `_bmad-output/knowledge-graph.json`. Any-to-any directed relationships (not just parent-child traceability) are captured with full provenance. Engineers can open an interactive visualization of the entire project knowledge graph — navigating to any document at the specific heading where a concept is defined — via the `open-graph` skill.
435
+ **FRs covered:** FR141–FR157
436
+ **NFRs addressed:** NFR38 (render performance), NFR39 (LLM-writability), NFR40 (additive-only), NFR41 (air-gapped)
437
+ **Architecture:** Decision P3-1 (BMAD Knowledge Graph) in `_bmad-output/planning-artifacts/architecture.md`
438
+ **Dependencies:** Epic 15 (extension module structure) must be complete — `open-graph` skill deploys as a BMAD extension skill. Epic 17 complete (sprint skill structure settled before wiring emission).
439
+ **New skill:** `open-graph` (45th total skill) in `lib/bmad-extension/skills/open-graph/`
440
+ **Skills modified:** create-prd, create-architecture, create-epics-and-stories, create-story, validate-prd, dev-story, bmad-sprint-planning — each gains a silent `emitToGraph()` post-artifact call
441
+ **Output artifacts:** `_bmad-output/knowledge-graph.json` (graph data), `_bmad-output/knowledge-graph.html` (self-contained renderer)
442
+
386
443
  ### Epic 15: BMAD 6.2.1 Agent Architecture Migration (Phase 2)
387
444
  ma-agents upgrades from bmad-method 6.0.4 to 6.2.1, restructures the extension module to follow BMAD 6.2.0 module conventions (agents as skill folders, workflows as skill folders, module.yaml with code field), and provides an installer-driven migration path for existing installations.
388
445
  **FRs covered:** FR94, FR95, FR96, FR97, FR98, FR99, FR100, FR101, FR102, FR103, FR104, FR105, FR106, FR107, FR108, FR109, FR110
@@ -419,6 +476,10 @@ Stories in Epics 6, 8, and 15 that touch `bmad.js` must build on Epic 5's vendor
419
476
  5. **Epics 4, 7** (VS Integration, Test Suite) — on hold, can resume in parallel
420
477
  6. **Epic 14** (External Tooling) — Phase 3, depends on Epics 12, 13. Story 14.3 architecture is prerequisite for Epic 17 Story 17.22 (Jira adapter).
421
478
 
479
+ **Phase D — Phase 3 Features:**
480
+ 7. **Epic 19** (BMAD Knowledge Graph) — depends on Epic 15 (extension module structure) and Epic 17 (sprint skill structure settled). Story execution order: 19.1 (core library) → 19.2 (PRD emission) → 19.3 (architecture + epics emission) → 19.4 (story + remaining emission) → 19.5 (open-graph skill) → 19.6 (visualization renderer) → 19.7 (LLM contract validation + tests). Stories 19.2-19.4 can proceed in parallel once 19.1 is done.
481
+ 8. **Epic 18** (Roo Code IDE Support) — no dependencies, can proceed independently at any point in Phase C or D.
482
+
422
483
  ---
423
484
 
424
485
  ## Epic 5: Bundled BMAD Installation (Phase 2)
@@ -2907,7 +2968,7 @@ So that backlog reprioritization works against the single source of truth instea
2907
2968
 
2908
2969
  **Goal:** Full Roo Code integration — ma-agents skill installation, BMAD agent personas as custom modes, planning instructions as rules, and BMAD workflows as slash commands.
2909
2970
  **FRs covered:** FR34 (extended to include Roo Code), FR36, FR38
2910
- **Proposed FRs:** FR142 (Roo Code custom modes from BMAD agents), FR143 (Roo Code rules from BMAD instructions), FR144 (Roo Code slash commands from BMAD workflows), FR145 (Cline-to-Roo migration)
2971
+ **Proposed FRs:** FR158 (Roo Code custom modes from BMAD agents), FR159 (Roo Code rules from BMAD instructions), FR160 (Roo Code slash commands from BMAD workflows), FR161 (Cline-to-Roo migration) — renumbered from FR142-145; FR141-FR157 are now reserved for Epic 19 (Knowledge Graph)
2911
2972
  **Research:** `_bmad-output/planning-artifacts/domain-research-roocode-2026-03-31.md`
2912
2973
  **Dependency:** None (can proceed independently; upstream `bmad-method` already has `roo` in `platform-codes.yaml`)
2913
2974
 
@@ -3285,3 +3346,490 @@ The `bmad-method` npm package already has `roo` in `platform-codes.yaml` and can
3285
3346
  6. Story 18.6 (mode-specific rules) — depends on 18.4
3286
3347
  7. Story 18.7 (Cline migration) — depends on 18.1, 18.3
3287
3348
  8. Story 18.8 (validation/tests) — depends on all above
3349
+
3350
+ ---
3351
+
3352
+ ## Epic 19: BMAD Knowledge Graph (Phase 3)
3353
+
3354
+ Every planning and implementation artifact generated by BMAD skills is automatically woven into a non-hierarchical knowledge graph stored as `_bmad-output/knowledge-graph.json`. Any-to-any directed relationships (not just parent-child traceability) are captured with full provenance. Engineers can open an interactive visualization of the entire project knowledge graph — navigating to any document at the specific heading where a concept is defined — via the `open-graph` skill.
3355
+
3356
+ ### Story 19.1: Knowledge Graph Core Library (`emitToGraph`)
3357
+
3358
+ As a **Chief Architect**,
3359
+ I want a shared `emitToGraph()` utility function in the BMAD extension module,
3360
+ So that all BMAD skills can emit nodes and edges to the knowledge graph using a single consistent API without duplicating file I/O logic.
3361
+
3362
+ **Acceptance Criteria:**
3363
+
3364
+ **Given** the function `emitToGraph(projectRoot, emission)` is called with a valid emission payload
3365
+ **When** `_bmad-output/knowledge-graph.json` does not yet exist
3366
+ **Then** the function creates the file with a valid four-section structure: `meta`, `files`, `nodes`, `edges`
3367
+ **And** `meta` contains `schema_version: "1.0"`, `generated_at` (ISO timestamp), `project` (derived from package.json name or directory name), `file_count: 0`, `node_count: 0`, `edge_count: 0`
3368
+ **And** `files`, `nodes`, `edges` are initialized as empty object, empty array, empty array respectively
3369
+
3370
+ **Given** `knowledge-graph.json` already exists with prior content
3371
+ **When** `emitToGraph()` is called
3372
+ **Then** it reads the existing file, appends new files/nodes/edges, updates counts in `meta`, and writes the result back atomically
3373
+ **And** no existing nodes, edges, or file registrations are deleted or overwritten
3374
+
3375
+ **Given** an emission payload includes a `files` entry with `pointer_type: "relative_path"`
3376
+ **When** that file-id does not yet exist in the `files` table
3377
+ **Then** the file is registered: `files[file-id] = { pointer, title, pointer_type }`
3378
+ **And** if the file-id already exists, registration is skipped (first-write-wins)
3379
+
3380
+ **Given** an emission payload includes a node with id `file-id#heading-anchor`
3381
+ **When** a node with that id already exists in `nodes`
3382
+ **Then** the node is not duplicated
3383
+
3384
+ **Given** an emission payload includes an edge with `(from, to, type)` triple
3385
+ **When** an edge with the same `(from, to, type)` already exists in `edges`
3386
+ **Then** the edge is not duplicated (provenance of the first edge is preserved)
3387
+
3388
+ **Given** the function writes the updated graph
3389
+ **When** the write operation completes
3390
+ **Then** `meta.file_count`, `meta.node_count`, `meta.edge_count` reflect the total counts in the file
3391
+
3392
+ **Technical notes:**
3393
+ - Implement in `lib/bmad-extension/skills/` as a shared utility module (e.g., `lib/knowledge-graph/emit.js`)
3394
+ - Heading anchor derivation: `heading.toLowerCase().replace(/[^\w\s-]/g, '').replace(/\s+/g, '-')` (GitHub slug algorithm)
3395
+ - File path for graph: always `path.join(projectRoot, '_bmad-output', 'knowledge-graph.json')`
3396
+ - Use synchronous file I/O (`fs.readFileSync` / `fs.writeFileSync`) — graph updates happen after artifact generation, not in hot paths
3397
+ - JSON serialization: `JSON.stringify(graph, null, 2)` for human-readable output
3398
+ - FRs: FR141, FR142, FR143, FR144, FR145, FR146, FR147, FR148
3399
+ - NFRs: NFR39 (LLM-writability — flat structure, copy-pattern extension), NFR40 (additive-only)
3400
+
3401
+ ### Story 19.2: Graph Emission — `create-prd` (Graph Seed)
3402
+
3403
+ As a **Product Manager**,
3404
+ I want the `create-prd` skill to automatically seed the knowledge graph when a PRD is generated,
3405
+ So that the PRD becomes the root of the project knowledge graph without any user action.
3406
+
3407
+ **Acceptance Criteria:**
3408
+
3409
+ **Given** the `create-prd` skill completes generation of `_bmad-output/planning-artifacts/prd.md`
3410
+ **When** the artifact write step finishes
3411
+ **Then** `emitToGraph()` is called silently as the final step — no user prompt, no output message
3412
+ **And** the PRD file is registered in the `files` table as `{ pointer: "_bmad-output/planning-artifacts/prd.md", title: "Product Requirements Document", pointer_type: "relative_path" }` with file-id `prd`
3413
+
3414
+ **Given** the PRD contains top-level `##` headings (e.g., `## Executive Summary`, `## Functional Requirements`)
3415
+ **When** emission runs
3416
+ **Then** one node is emitted per heading: `{ id: "prd#executive-summary", file: "prd", anchor: "executive-summary", title: "Executive Summary", type: "prd" }`
3417
+
3418
+ **Given** the graph is seeded from a new PRD
3419
+ **When** the `knowledge-graph.json` file is inspected
3420
+ **Then** it contains no edges (PRD is the root — it does not reference other documents yet)
3421
+ **And** `meta.node_count` equals the number of `##` headings in the PRD
3422
+
3423
+ **Given** `create-prd` runs on a project where `knowledge-graph.json` already exists
3424
+ **When** emission runs
3425
+ **Then** only new headings (not yet present as nodes) are added — re-runs are idempotent
3426
+
3427
+ **Technical notes:**
3428
+ - Extract headings by scanning the generated markdown for `^## ` lines
3429
+ - Emit only level-2 (`##`) headings as nodes — level-3+ create noise without adding navigation value
3430
+ - The PRD seeding call is the only emission that produces zero edges — all other skills emit edges pointing back to PRD nodes
3431
+ - FRs: FR149, FR150, FR151, FR152
3432
+
3433
+ ### Story 19.3: Graph Emission — `create-architecture` and `create-epics-and-stories`
3434
+
3435
+ As a **Chief Architect** and **Product Manager**,
3436
+ I want the `create-architecture` and `create-epics-and-stories` skills to emit traceability edges to the knowledge graph automatically,
3437
+ So that every architectural decision and every epic traces back to the PRD sections that motivated it.
3438
+
3439
+ **Acceptance Criteria:**
3440
+
3441
+ **Given** the `create-architecture` skill completes generation of `_bmad-output/planning-artifacts/architecture.md`
3442
+ **When** emission runs
3443
+ **Then** the architecture file is registered as file-id `arch` with `pointer_type: "relative_path"`
3444
+ **And** one node is emitted per `##` heading in architecture.md (type: `architecture`)
3445
+ **And** for each architecture decision section (headings matching `## Decision` or similar), an `implements` edge is emitted: `{ from: "arch#decision-slug", to: "prd#relevant-fr-section", type: "implements", label: "implements PRD requirement", created_by: <user>, agent: <agent-id>, created_at: <timestamp> }`
3446
+
3447
+ **Given** the `create-architecture` skill is run when PRD nodes do not yet exist in the graph
3448
+ **When** an edge references a PRD node that is not yet in `nodes`
3449
+ **Then** a stub node is emitted for the referenced PRD heading so the edge is not orphaned
3450
+ **And** the stub node carries `type: "prd"` and the correct `file` and `anchor` fields
3451
+
3452
+ **Given** the `create-epics-and-stories` skill completes updating `_bmad-output/planning-artifacts/epics.md`
3453
+ **When** emission runs
3454
+ **Then** the epics file is registered as file-id `epics` with `pointer_type: "relative_path"`
3455
+ **And** one node is emitted per epic heading (type: `epic`)
3456
+ **And** for each epic, a `derives-from` edge is emitted to the PRD Functional Requirements node: `{ from: "epics#epic-N-name", to: "prd#functional-requirements", type: "derives-from", ... }`
3457
+ **And** where an epic was informed by an architecture decision, an `informed-by` edge is also emitted: `{ from: "epics#epic-N-name", to: "arch#decision-slug", type: "informed-by", ... }`
3458
+
3459
+ **Technical notes:**
3460
+ - The `informed-by` edge is the non-hierarchical edge type — it captures cross-domain influence (an epic shaped by an architectural decision, not just a PRD section)
3461
+ - Architecture decision headings can be detected by scanning for `## Decision` or `## P[0-9]-[0-9]` patterns (architecture doc convention)
3462
+ - Epic headings can be detected by scanning for `## Epic [0-9]+:` pattern
3463
+ - Emit after the file write step completes; `created_by` is read from BMAD config (user name); `agent` is the BMAD agent identity string from the skill context
3464
+ - FRs: FR149, FR150, FR151, FR152
3465
+
3466
+ ### Story 19.4: Graph Emission — `create-story`, `validate-prd`, `dev-story`, `bmad-sprint-planning`
3467
+
3468
+ As a **Developer** and **QA Engineer**,
3469
+ I want individual story files and validation artifacts to emit traceability edges automatically,
3470
+ So that the knowledge graph captures the full SDLC chain from PRD through architecture through epics through stories through implementation.
3471
+
3472
+ **Acceptance Criteria:**
3473
+
3474
+ **Given** the `create-story` skill generates a story file (e.g., `_bmad-output/implementation-artifacts/17-9-unified-sprint-status-schema.md`)
3475
+ **When** emission runs
3476
+ **Then** the story file is registered in the `files` table with `pointer_type: "relative_path"` and a file-id derived from the story number (e.g., `story-17-9`)
3477
+ **And** a node is emitted for the story root heading (type: `story`)
3478
+ **And** a `traces-to` edge is emitted from the story node to its parent epic node: `{ from: "story-17-9#story-title", to: "epics#epic-17-sprint-management", type: "traces-to", ... }`
3479
+ **And** if the story's technical notes reference architecture decisions, `informed-by` edges are emitted from the story node to the relevant architecture nodes
3480
+
3481
+ **Given** the `validate-prd` skill completes a validation report
3482
+ **When** emission runs
3483
+ **Then** the validation report file is registered with file-id `validation-<date>`
3484
+ **And** a `validates` edge is emitted from the validation report node to `prd#functional-requirements`: `{ type: "validates", label: "PRD validation report <date>", ... }`
3485
+
3486
+ **Given** `dev-story` completes implementation guidance for a story
3487
+ **When** emission runs
3488
+ **Then** an `informed-by` edge is emitted from the story node to `arch#implementation-notes` (or the most relevant architecture section)
3489
+
3490
+ **Given** `bmad-sprint-planning` completes sprint plan generation
3491
+ **When** emission runs
3492
+ **Then** sprint plan nodes are emitted and `derives-from` edges connect them to the relevant epic nodes
3493
+
3494
+ **Technical notes:**
3495
+ - Story file-ids use the format `story-<epic-number>-<story-number>` (derived from the file path)
3496
+ - The 7 skills emitting to the graph: `create-prd`, `create-architecture`, `create-epics-and-stories`, `create-story`, `validate-prd`, `dev-story`, `bmad-sprint-planning`
3497
+ - All emission calls are identical in structure: call `emitToGraph(projectRoot, emission)` at the end of the artifact write step
3498
+ - FRs: FR149, FR150, FR151, FR152
3499
+
3500
+ ### Story 19.5: `open-graph` Skill
3501
+
3502
+ As an **Engineer**,
3503
+ I want to run `/open-graph` in any BMAD agent,
3504
+ So that the knowledge graph visualization opens in VSCode (as a webview) or in my default browser when outside VSCode — without any additional configuration.
3505
+
3506
+ **Acceptance Criteria:**
3507
+
3508
+ **Given** `open-graph` is invoked inside VSCode (detected via `process.env.TERM_PROGRAM === 'vscode'` or `process.env.VSCODE_PID !== undefined`)
3509
+ **When** the skill runs
3510
+ **Then** it generates `_bmad-output/knowledge-graph.html` (if not already current) from the JSON data
3511
+ **And** opens the HTML file via VSCode's `vscode.env.openExternal(Uri.file(...))` API or equivalent open command
3512
+
3513
+ **Given** `open-graph` is invoked outside VSCode (standard terminal)
3514
+ **When** the skill runs
3515
+ **Then** it generates `knowledge-graph.html` from the current JSON data
3516
+ **And** opens it using the platform-appropriate command: `start` (Windows), `open` (macOS), `xdg-open` (Linux)
3517
+
3518
+ **Given** `_bmad-output/knowledge-graph.json` does not exist
3519
+ **When** `open-graph` is invoked
3520
+ **Then** the skill informs the user that no knowledge graph data has been generated yet
3521
+ **And** suggests running a BMAD planning skill to seed the graph
3522
+
3523
+ **Given** `knowledge-graph.html` already exists and is newer than `knowledge-graph.json`
3524
+ **When** `open-graph` is invoked
3525
+ **Then** the skill skips regeneration and opens the existing HTML directly
3526
+
3527
+ **Technical notes:**
3528
+ - Skill location: `lib/bmad-extension/skills/open-graph/`
3529
+ - Skill files: `SKILL.md` (agent instruction), `skill.json` (metadata), `generate-html.js` (HTML renderer generator)
3530
+ - The `generate-html.js` script reads the JSON, inlines the data as a JavaScript literal, and writes the self-contained HTML file
3531
+ - `always_load: false` — this is an on-demand skill, not a mandatory load
3532
+ - Add `open-graph` to the BMAD extension module's MANIFEST.yaml
3533
+ - FR: FR153
3534
+
3535
+ ### Story 19.6: Interactive Visualization Renderer
3536
+
3537
+ As an **Engineer**,
3538
+ I want the knowledge graph HTML file to render an interactive, navigable visualization of all project artifacts and their relationships,
3539
+ So that I can explore cross-document traceability visually and jump directly to any document section from the graph.
3540
+
3541
+ **Acceptance Criteria:**
3542
+
3543
+ **Given** `knowledge-graph.html` is opened in a browser or VSCode webview
3544
+ **When** the graph renders
3545
+ **Then** each node appears as a circle color-coded by document type:
3546
+ - `prd` → blue
3547
+ - `architecture` → orange
3548
+ - `epic` → green
3549
+ - `story` → teal
3550
+ - `decision` → purple
3551
+ - `validation` → red
3552
+ **And** directed edges are rendered as arrows with the edge type as a label
3553
+ **And** the initial render completes within 3 seconds for graphs up to 500 nodes and 1000 edges (NFR38)
3554
+
3555
+ **Given** the user clicks a node
3556
+ **When** the click handler fires
3557
+ **Then** the node's source document opens at the specific heading anchor via the IDE's file protocol or a browser file URL
3558
+
3559
+ **Given** the user hovers over an edge
3560
+ **When** the tooltip renders
3561
+ **Then** it displays: edge type, label, created_by, agent, created_at (FR155)
3562
+
3563
+ **Given** the user selects a node
3564
+ **When** the selection occurs
3565
+ **Then** the immediate neighbors (one hop in either direction) are highlighted
3566
+ **And** non-neighbor nodes and edges are dimmed (FR156)
3567
+
3568
+ **Given** the user uses the filter controls
3569
+ **When** a node type or edge type is deselected
3570
+ **Then** nodes and edges of that type are hidden from the visualization
3571
+ **And** re-selecting them restores visibility (FR156)
3572
+
3573
+ **Given** the HTML file is opened in an air-gapped environment with no network access
3574
+ **When** the page loads
3575
+ **Then** the graph renders identically to a connected environment — no CDN requests, no external fonts, no script fetches (FR157, NFR41)
3576
+
3577
+ **Technical notes:**
3578
+ - All JavaScript and CSS are inlined in the HTML file — no external dependencies
3579
+ - Graph data is embedded as a `const GRAPH_DATA = {...}` literal at generation time (not fetched at runtime)
3580
+ - Use SVG for node and edge rendering — no canvas required, simpler interaction model
3581
+ - Pre-compute the first 100 physics ticks at generation time to arrive at a stable initial layout (avoids animation jitter on open)
3582
+ - The renderer is approximately 300-500 lines of vanilla JS — no framework, no bundler
3583
+ - Node positioning: simple force-directed simulation using Coulomb repulsion + spring attraction
3584
+ - FRs: FR154, FR155, FR156, FR157
3585
+ - NFRs: NFR38, NFR41
3586
+
3587
+ ### Story 19.7: LLM-Writability Contract Validation and Integration Tests
3588
+
3589
+ As a **Chief Architect**,
3590
+ I want the knowledge graph JSON format validated against the LLM-writability contract and covered by integration tests,
3591
+ So that we can verify that any LLM can extend the graph by copying existing patterns, and that the additive-only semantics are enforced.
3592
+
3593
+ **Acceptance Criteria:**
3594
+
3595
+ **Given** a `knowledge-graph.json` file with one existing node and one existing edge
3596
+ **When** an LLM is instructed to add a new node and a new edge by copying the existing patterns (no external schema provided)
3597
+ **Then** the resulting JSON is valid and passes `emitToGraph()` ingestion without errors
3598
+ **And** the existing node and edge are preserved unchanged (NFR40)
3599
+
3600
+ **Given** `emitToGraph()` is called with a node id that already exists in `nodes`
3601
+ **When** the function completes
3602
+ **Then** `nodes` contains exactly one entry with that id (no duplicate)
3603
+ **And** the original node's fields are unchanged
3604
+
3605
+ **Given** `emitToGraph()` is called with an edge `(from, to, type)` triple that already exists
3606
+ **When** the function completes
3607
+ **Then** `edges` contains exactly one entry with that triple (no duplicate)
3608
+ **And** the original edge's provenance (created_by, agent, created_at) is unchanged
3609
+
3610
+ **Given** a graph with 500 nodes and 1000 edges
3611
+ **When** `emitToGraph()` adds one new node and one new edge
3612
+ **Then** the operation completes in under 1 second
3613
+
3614
+ **Given** the full emission sequence is run (all 7 skills emit in order)
3615
+ **When** the resulting `knowledge-graph.json` is inspected
3616
+ **Then** all emitted nodes are present
3617
+ **And** all emitted edges are present with correct provenance
3618
+ **And** `meta.file_count`, `meta.node_count`, `meta.edge_count` are accurate
3619
+
3620
+ **Technical notes:**
3621
+ - Tests live in `tests/knowledge-graph/` following the existing test structure
3622
+ - Use temp directories for all file I/O in tests
3623
+ - The LLM-writability test can use a fixture JSON and verify that extending it by hand-editing produces valid output
3624
+ - Test the VSCode detection logic with environment variable mocks
3625
+ - NFRs: NFR39 (LLM-writability), NFR40 (additive-only)
3626
+
3627
+ ---
3628
+
3629
+ ### Epic 19 — Cross-Epic Notes
3630
+
3631
+ **Relationship to Epic 15 (BMAD 6.2.1 Migration):**
3632
+ The `open-graph` skill deploys as a BMAD extension skill following the 6.2.1 module structure established by Epic 15. Epic 15 must be complete before Story 19.5.
3633
+
3634
+ **Relationship to Epic 17 (Sprint Management):**
3635
+ `bmad-sprint-planning` is one of the 7 skills that emit to the knowledge graph. Epic 17 must be complete (skill structure settled) before Story 19.4 wires in sprint planning emission.
3636
+
3637
+ **Relationship to Epic 7 (Test Suite):**
3638
+ Story 19.7 integration tests follow the test infrastructure from Epic 7. Epic 7 is on hold, so Story 19.7 uses the existing Node.js test runner pattern directly.
3639
+
3640
+ **File outputs produced by this epic:**
3641
+ ```
3642
+ _bmad-output/
3643
+ ├── knowledge-graph.json ← graph data (generated by Stories 19.2-19.4)
3644
+ └── knowledge-graph.html ← self-contained renderer (generated by Story 19.5/19.6)
3645
+
3646
+ lib/
3647
+ ├── knowledge-graph/
3648
+ │ └── emit.js ← shared emitToGraph() utility (Story 19.1)
3649
+ └── bmad-extension/
3650
+ └── skills/
3651
+ └── open-graph/ ← new BMAD extension skill (Story 19.5)
3652
+ ├── SKILL.md
3653
+ ├── skill.json
3654
+ └── generate-html.js
3655
+ ```
3656
+
3657
+ **Development Execution Order:**
3658
+ 1. Story 19.1 (core library) — no dependencies; establish before any emission story
3659
+ 2. Story 19.2 (create-prd emission) — depends on 19.1
3660
+ 3. Story 19.3 (create-architecture + create-epics-and-stories emission) — depends on 19.1; can run in parallel with 19.2
3661
+ 4. Story 19.4 (create-story + remaining emission) — depends on 19.1; can run in parallel with 19.2 and 19.3
3662
+ 5. Story 19.5 (open-graph skill) — depends on 19.1 (needs the generate-html logic)
3663
+ 6. Story 19.6 (visualization renderer) — depends on 19.5 (renderer is invoked by open-graph skill)
3664
+ 7. Story 19.7 (LLM contract validation + tests) — depends on all above
3665
+
3666
+ ---
3667
+
3668
+ ## Epic 20: Software Quality Assurance (SQA) Agent — Gad (Phase 3)
3669
+
3670
+ **Goal:** Deliver a dedicated Software Quality Assurance agent (Gad) that provides structured quality workflows for projects managed with the ma-agents/BMAD stack. The agent presents a menu of quality-focused workflows; the initial release includes a multi-dimensional Project Audit and an IEEE/ISO/IEC 12207 lifecycle process compliance assessment.
3671
+
3672
+ **Value:** Closes the quality verification gap in the BMAD lifecycle. Today there is no agent that looks across planning artifacts, sprint state, and process compliance together. Gad gives quality engineers and project managers a single entry point to answer "how healthy is this project, really?" and "does this project meet recognized lifecycle standards?"
3673
+
3674
+ **PRD Coverage:** FR158–FR171, NFR42–NFR43 (Architecture Decision P3-2)
3675
+
3676
+ **Status:** Planned
3677
+
3678
+ **Dependencies:**
3679
+ - Epic 15 (BMAD 6.2.0 Agent Architecture Migration) must be complete — Gad's skills use the P2-9 BMAD 6.2.0 skill folder pattern
3680
+ - Epic 11 (Bug Management System) must be complete — Story 20.3 invokes `create-bug-story` for gap remediation (FR171)
3681
+
3682
+ ---
3683
+
3684
+ ### Story 20.1 — SQA Agent Skill: Gad Persona and Menu
3685
+
3686
+ **As a** quality engineer,
3687
+ **I want** to activate the Gad SQA agent from within a BMAD session,
3688
+ **so that** I have a dedicated quality assurance persona with a structured menu of QA workflows available.
3689
+
3690
+ **Acceptance Criteria:**
3691
+
3692
+ 1. `lib/bmad-extension/skills/bmad-ma-agent-sqa/SKILL.md` exists and fully defines the Gad agent persona: role, identity, communication style, and principles
3693
+ 2. `lib/bmad-extension/skills/bmad-ma-agent-sqa/bmad-skill-manifest.yaml` exists with `type: agent`, `name: bmad-ma-agent-sqa`, `displayName: Gad`, `title: Software Quality Assurance Expert`, and `module: ma-skills`
3694
+ 3. The SKILL.md activation sequence follows the standard BMAD 6.2.0 agent pattern: load config.yaml → greet user → display menu → wait for input → dispatch to skill
3695
+ 4. The menu includes at minimum: Redisplay Menu Help (MH), Chat (CH), Project Audit (AU → `sqa-audit`), IEEE 12207 Compliance (IC → `sqa-ieee12207`), Dismiss Agent (DA)
3696
+ 5. `lib/bmad-extension/module-help.csv` contains an entry for `bmad-ma-agent-sqa` in the `anytime` phase under module `ma-skills`
3697
+ 6. `lib/bmad-extension/skills/bmad-ma-agent-sqa/.gitkeep` exists
3698
+ 7. `test/extension-module-restructure.test.js` includes `bmad-ma-agent-sqa` in the expected agent skills array and passes
3699
+
3700
+ **Technical Notes:**
3701
+ - Gad binds to the `bmm-qa` BMAD built-in agent persona — no new BMAD agent slot is created
3702
+ - Communication style: clear, precise, structured; findings always include severity levels; observations distinguished from blocking issues
3703
+ - No new BMAD agent host customization files needed — the `lib/bmad-customize/bmm-qa.customize.yaml` existing skill-enforcement hooks are sufficient
3704
+
3705
+ ---
3706
+
3707
+ ### Story 20.2 — Project Audit Workflow Skill
3708
+
3709
+ **As a** quality engineer,
3710
+ **I want** Gad to run a structured project audit across multiple quality dimensions,
3711
+ **so that** I can identify gaps in traceability, process compliance, sprint health, and release readiness in a single structured session.
3712
+
3713
+ **Acceptance Criteria:**
3714
+
3715
+ 1. `lib/bmad-extension/skills/sqa-audit/SKILL.md` exists and implements the full five-step audit workflow:
3716
+ - Step 1: Scope selection — asks full vs. partial, lists all five dimensions by number, waits for user input
3717
+ - Step 2: Data collection — reads all required artifacts, reports which were found vs. missing before proceeding
3718
+ - Step 3: Executes only the selected dimensions (1–5 as described below)
3719
+ - Step 4: Compiles a full audit report in the specified format
3720
+ - Step 5: Saves the report to `{output_folder}/sqa-audit-report-{YYYY-MM-DD}.md` and confirms the path to the user
3721
+ 2. Dimension 1 (Code ↔ Stories): reads done/in-progress items from sprint-status.yaml, lists each story with traceability status, flags stories with no code evidence and code with no story
3722
+ 3. Dimension 2 (Stories ↔ Architecture/PRD): produces a PRD coverage table (COVERED / MISSING / PARTIAL per requirement) and an architecture compliance issue list
3723
+ 4. Dimension 3 (Process Compliance): evaluates commit convention adherence, branch discipline, test file presence, and code review evidence; produces a checklist with PASS / FAIL / UNKNOWN per item
3724
+ 5. Dimension 4 (Sprint Health): produces a per-sprint summary table (total, done, in-progress, not started, completion %) and flags stalled items, blockers, and backlog grooming issues
3725
+ 6. Dimension 5 (Release State): produces a READY / AT RISK / NOT READY release readiness summary, lists blocking items, and records deployment status per environment as provided by the user
3726
+ 7. Report format: executive summary → per-dimension findings with severity (FAIL / WARNING / PASS) → prioritized action items table → skipped dimensions with required artifacts
3727
+ 8. Severity aggregation: any FAIL → overall FAIL; no FAIL but any WARNING → WARNING; all PASS or SKIPPED → PASS
3728
+ 9. After saving the report, Gad asks the user if they want to drill into any finding or take action on issues (FR171 gap remediation offered for FAIL items)
3729
+ 10. `lib/bmad-extension/skills/sqa-audit/bmad-skill-manifest.yaml` exists with `type: skill`, `name: sqa-audit`, `module: ma-skills`
3730
+ 11. `lib/bmad-extension/module-help.csv` contains an entry for `sqa-audit` in the `4-implementation` phase under module `ma-skills`
3731
+ 12. `test/extension-module-restructure.test.js` includes `sqa-audit` in `expectedSqaSkills` and passes
3732
+
3733
+ **Technical Notes:**
3734
+ - Required artifact reads: `_bmad/bmm/config.yaml` (resolve output_folder), `prd.md`, `architecture.md`, `epics.md`, `sprint-status.yaml`; optional: `project-context.md`
3735
+ - Dimension skips gracefully when an artifact is missing — produces a SKIPPED entry in the report with the artifact path that was not found
3736
+ - Report is saved as markdown; no HTML or external rendering required
3737
+
3738
+ ---
3739
+
3740
+ ### Story 20.3 — IEEE/ISO/IEC 12207 Compliance Workflow Skill
3741
+
3742
+ **As a** quality engineer or project manager,
3743
+ **I want** Gad to evaluate the project's compliance with IEEE/ISO/IEC 12207:2017,
3744
+ **so that** I have a structured compliance posture report with gap analysis and recommended corrective actions.
3745
+
3746
+ **Acceptance Criteria:**
3747
+
3748
+ 1. `lib/bmad-extension/skills/sqa-ieee12207/SKILL.md` exists and implements the full five-step compliance workflow:
3749
+ - Step 1: Scope selection — presents the four process groups, asks full vs. selected, waits for user input
3750
+ - Step 2: Data collection — reads all required artifacts, reports found vs. missing
3751
+ - Step 3: Evaluates all 23 process areas in selected groups with per-area ratings
3752
+ - Step 4: Compiles the compliance matrix report in the specified format
3753
+ - Step 5: Saves the report to `{output_folder}/sqa-ieee12207-report-{YYYY-MM-DD}.md`, confirms path, and offers to create backlog stories for P1 gaps (FR171)
3754
+ 2. The four process groups and their process areas are correctly modeled in the SKILL.md:
3755
+ - Technical Processes (11 areas: 6.4.1–6.4.11)
3756
+ - Technical Management Processes (8 areas: 6.3.1–6.3.8)
3757
+ - Agreement Processes (2 areas: 6.1.1–6.1.2)
3758
+ - Organizational Enabling Processes (2 areas: 6.2.1, 6.2.7)
3759
+ 3. Each evaluated process area maps to specific project artifacts as evidence sources (e.g., 6.4.2 Stakeholder Requirements → prd.md; 6.3.5 Configuration Management → git history, CHANGELOG, version files)
3760
+ 4. Each area receives one of five ratings: COMPLIANT, PARTIAL, NON-COMPLIANT, NOT APPLICABLE, ORGANIZATION-SCOPE — with the rating justified by evidence found or absent
3761
+ 5. Report includes: executive summary, per-group compliance matrix (clause | process area | rating | key evidence | gaps), gap analysis (critical gaps vs. partial compliance), prioritized recommended-action table (priority, action, clause, effort), compliance summary table (counts per group + overall compliance percentage)
3762
+ 6. When the user confirms gap-to-story creation, Gad iterates over P1 (NON-COMPLIANT) gaps and offers to invoke `create-bug-story` for each — one story per gap
3763
+ 7. All evaluation logic and process area definitions are embedded in SKILL.md — no network access required (NFR43)
3764
+ 8. `lib/bmad-extension/skills/sqa-ieee12207/bmad-skill-manifest.yaml` exists with `type: skill`, `name: sqa-ieee12207`, `module: ma-skills`
3765
+ 9. `lib/bmad-extension/module-help.csv` contains an entry for `sqa-ieee12207` in the `4-implementation` phase under module `ma-skills`
3766
+ 10. `test/extension-module-restructure.test.js` includes `sqa-ieee12207` in `expectedSqaSkills` and passes
3767
+
3768
+ **Technical Notes:**
3769
+ - The workflow is a compliance *posture* assessment, not a formal certification — it produces a structured report based on available project artifacts; it makes no claim of organizational-level ISO certification
3770
+ - Organizational Enabling Processes (Group 4) are assessed from project artifacts only where possible; remaining items are automatically rated ORGANIZATION-SCOPE with a note explaining what organizational evidence would be needed
3771
+ - Gap-to-story creation is optional and per-item — the user can accept or skip each P1 gap individually
3772
+
3773
+ ---
3774
+
3775
+ ### Story 20.4 — Test Suite Update for SQA Skills
3776
+
3777
+ **As a** developer,
3778
+ **I want** the extension module restructure test to verify the SQA skills exist and are registered,
3779
+ **so that** future changes that accidentally remove or misconfigure SQA skills are caught by the automated test suite.
3780
+
3781
+ **Acceptance Criteria:**
3782
+
3783
+ 1. `test/extension-module-restructure.test.js` includes `expectedSqaSkills = ['sqa-audit', 'sqa-ieee12207']`
3784
+ 2. `bmad-ma-agent-sqa` is included in `expectedAgentSkills`
3785
+ 3. All skill directory count tests are updated to reflect the 3 new directories (agent + 2 workflow skills): total skill count is previous count + 3
3786
+ 4. All CSV row count tests are updated to reflect the 3 new `module-help.csv` entries: total CSV row count is previous count + 3
3787
+ 5. New test `'all 2 SQA skill directories exist'` verifies both `sqa-audit` and `sqa-ieee12207` directories exist in `lib/bmad-extension/skills/`
3788
+ 6. New test `'CSV has entries for all 2 SQA skills'` verifies both workflow skills are in `module-help.csv`
3789
+ 7. All tests in `test/extension-module-restructure.test.js` pass with 0 failures after these changes
3790
+
3791
+ **Technical Notes:**
3792
+ - This story has no runtime behavior — it is test-only
3793
+ - The `.gitkeep` files required in each new skill directory must be present for the existing `.gitkeep` coverage test to pass
3794
+
3795
+ ---
3796
+
3797
+ ### Epic 20 — Cross-Epic Notes
3798
+
3799
+ **Relationship to Epic 15 (BMAD 6.2.0 Agent Architecture Migration):**
3800
+ Gad follows the SKILL.md-based agent pattern established by Epic 15. Epic 15 must be complete before Story 20.1 to ensure the agent folder structure and BMAD agent dispatch mechanism are stable.
3801
+
3802
+ **Relationship to Epic 11 (Bug Management System):**
3803
+ Story 20.3 invokes `create-bug-story` for IEEE 12207 P1 gaps (FR171). Epic 11 must be complete — specifically Story 11.2 (BMAD extension workflow for bug story creation) — before this feature of Story 20.3 is active.
3804
+
3805
+ **Relationship to Epic 17 (Sprint Management Model Rework):**
3806
+ Story 20.2 reads `sprint-status.yaml` for Sprint Health analysis. The unified schema established by Epic 17 (FR133–FR135) defines the file structure that the audit workflow depends on.
3807
+
3808
+ **File outputs produced by this epic:**
3809
+ ```
3810
+ lib/
3811
+ └── bmad-extension/
3812
+ └── skills/
3813
+ ├── bmad-ma-agent-sqa/
3814
+ │ ├── .gitkeep
3815
+ │ ├── SKILL.md
3816
+ │ └── bmad-skill-manifest.yaml
3817
+ ├── sqa-audit/
3818
+ │ ├── .gitkeep
3819
+ │ ├── SKILL.md
3820
+ │ └── bmad-skill-manifest.yaml
3821
+ └── sqa-ieee12207/
3822
+ ├── .gitkeep
3823
+ ├── SKILL.md
3824
+ └── bmad-skill-manifest.yaml
3825
+
3826
+ _bmad-output/ (generated at runtime, not committed)
3827
+ ├── sqa-audit-report-{date}.md
3828
+ └── sqa-ieee12207-report-{date}.md
3829
+ ```
3830
+
3831
+ **Development Execution Order:**
3832
+ 1. Story 20.4 (test suite update) — can be written first as a failing test to drive implementation
3833
+ 2. Story 20.1 (Gad agent skill) — no dependency on other Epic 20 stories; establishes the agent entry point
3834
+ 3. Story 20.2 (Project Audit workflow) — no dependency on 20.1 at the code level; can develop in parallel with 20.1
3835
+ 4. Story 20.3 (IEEE 12207 workflow) — no dependency on other Epic 20 stories; can develop in parallel with 20.1 and 20.2