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
@@ -0,0 +1,259 @@
1
+ # Story 19.6: Interactive Visualization Renderer
2
+
3
+ Status: ready-for-dev
4
+
5
+ ## Story
6
+
7
+ As an **Engineer**,
8
+ I want the knowledge graph HTML file to render an interactive, navigable visualization of all project artifacts and their relationships,
9
+ so that I can explore cross-document traceability visually and jump directly to any document section from the graph.
10
+
11
+ ## Acceptance Criteria
12
+
13
+ 1. **Given** `knowledge-graph.html` is opened in a browser or VSCode webview
14
+ **When** the graph renders
15
+ **Then** each node appears as a circle color-coded by document type:
16
+ - `prd` → blue
17
+ - `architecture` → orange
18
+ - `epic` → green
19
+ - `story` → teal
20
+ - `decision` → purple
21
+ - `validation` → red
22
+ **And** directed edges are rendered as arrows with the edge type as a label
23
+ **And** the initial render completes within 3 seconds for graphs up to 500 nodes and 1000 edges (NFR38)
24
+
25
+ 2. **Given** the user clicks a node
26
+ **When** the click handler fires
27
+ **Then** the node's source document opens at the specific heading anchor via the IDE's file protocol or a browser file URL
28
+ - For `relative_path` / `absolute_path` pointer types: construct `vscode://file/{absolute-path}#{anchor}` URI and navigate; fallback: display a copyable Markdown link `[title](file.md#anchor)`
29
+ - For `url` pointer type: open the registered URL in a new browser tab
30
+
31
+ 3. **Given** the user hovers over an edge
32
+ **When** the tooltip renders
33
+ **Then** it displays: edge type, label (if set), created_by, agent, created_at (FR155)
34
+
35
+ 4. **Given** the user selects a node
36
+ **When** the selection occurs
37
+ **Then** the immediate neighbors (one hop in either direction) are highlighted
38
+ **And** non-neighbor nodes and edges are dimmed (FR156)
39
+
40
+ 5. **Given** the user uses the filter controls
41
+ **When** a node type or edge type is deselected
42
+ **Then** nodes and edges of that type are hidden from the visualization
43
+ **And** re-selecting them restores visibility (FR156)
44
+
45
+ 6. **Given** the HTML file is opened in an air-gapped environment with no network access
46
+ **When** the page loads
47
+ **Then** the graph renders identically to a connected environment — no CDN requests, no external fonts, no script fetches (FR157, NFR41)
48
+
49
+ ## Tasks / Subtasks
50
+
51
+ ### Task 1: Replace `generate-html.js` placeholder with full renderer generator (AC: 1–6)
52
+
53
+ Story 19.5 created `lib/bmad-extension/skills/open-graph/generate-html.js` as a placeholder. This story replaces it with the full implementation. **Interface is unchanged:** `node generate-html.js <jsonPath> <htmlPath>`.
54
+
55
+ - [ ] 1.1 Read the existing placeholder at `lib/bmad-extension/skills/open-graph/generate-html.js`
56
+ - [ ] 1.2 Overwrite with the full renderer generator script:
57
+ - Read `knowledge-graph.json` from `<jsonPath>`
58
+ - Generate the complete self-contained HTML with:
59
+ - All CSS inlined in `<style>` block
60
+ - Graph data embedded as `const GRAPH_DATA = <JSON literal>;`
61
+ - All JS inlined in `<script>` block
62
+ - Write complete HTML to `<htmlPath>`
63
+
64
+ ### Task 2: Implement SVG-based force-directed layout (AC: 1, 4 — performance/NFR38)
65
+
66
+ - [ ] 2.1 Implement force-directed simulation in vanilla JS (NO external libraries, NO bundler):
67
+ - **Coulomb repulsion:** each pair of nodes repels with force ∝ 1/distance²
68
+ - **Spring attraction:** edges attract connected nodes with Hooke's law spring force
69
+ - **Pre-compute first 100 ticks** at HTML generation time in `generate-html.js` — embed final positions as `cx`, `cy` attributes in the generated HTML (no startup animation jitter, renders immediately)
70
+ - [ ] 2.2 Node rendering: SVG `<circle>` elements, radius 12px, color from the node `type` field (see color map in AC1), with `<text>` label below
71
+ - [ ] 2.3 Edge rendering: SVG `<line>` elements with arrowhead markers (`<marker>` element), edge type label as SVG `<text>` at midpoint
72
+ - [ ] 2.4 Performance target: 500 nodes / 1000 edges render to first interactive frame in ≤3 seconds. Pre-computed layout achieves this by eliminating runtime physics startup.
73
+
74
+ ### Task 3: Implement node click-to-navigate (AC: 2)
75
+
76
+ - [ ] 3.1 On node click, look up `files[node.file]` to get pointer and pointer_type
77
+ - [ ] 3.2 For `relative_path`: construct path relative to HTML file location; try `vscode://file/<absolute-path>#<anchor>` first; fallback to showing a copyable `[title](file.md#anchor)` link in a panel
78
+ - [ ] 3.3 For `absolute_path`: use the absolute path directly
79
+ - [ ] 3.4 For `url`: `window.open(files[node.file].pointer + '#' + node.anchor, '_blank')`
80
+
81
+ ### Task 4: Implement edge tooltip (AC: 3)
82
+
83
+ - [ ] 4.1 On `mouseover` of edge line, show a floating `<div id="tooltip">` with:
84
+ ```
85
+ Type: <edge.type>
86
+ Label: <edge.label || "—">
87
+ Created by: <edge.created_by>
88
+ Agent: <edge.agent>
89
+ Date: <edge.created_at formatted as YYYY-MM-DD HH:MM>
90
+ ```
91
+ - [ ] 4.2 Position tooltip near the cursor (mouse position + offset)
92
+ - [ ] 4.3 On `mouseout`, hide the tooltip
93
+
94
+ ### Task 5: Implement neighbor highlight and filter controls (AC: 4, 5)
95
+
96
+ - [ ] 5.1 **Neighbor highlight on node select:**
97
+ - On node click/select: build forward + backward adjacency sets for the selected node
98
+ - Highlight selected node (brighter fill) and all directly connected nodes (slightly brighter)
99
+ - Dim all other nodes and edges (opacity: 0.1)
100
+ - Click on background to deselect and restore full opacity
101
+ - Implementation: CSS class toggle on SVG elements; no re-layout needed
102
+
103
+ - [ ] 5.2 **Filter checkboxes:**
104
+ - Create `<div id="controls">` above the SVG canvas with:
105
+ - One checkbox per node type (prd, architecture, epic, story, decision, validation)
106
+ - One checkbox per edge type (implements, derives-from, traces-to, informed-by, validates, refines)
107
+ - On checkbox toggle: use CSS `display: none` to hide/show matching elements — no re-layout
108
+ - All checkboxes checked by default (all visible)
109
+
110
+ ### Task 6: Verify self-containment (AC: 6)
111
+
112
+ - [ ] 6.1 Open the generated HTML in a browser with network connectivity disabled (Chrome DevTools → Network → Offline)
113
+ - [ ] 6.2 Verify the graph renders identically
114
+ - [ ] 6.3 Confirm no CDN requests appear in the Network tab
115
+ - [ ] 6.4 Search the generated HTML for `http://`, `https://`, `<script src`, `<link href` — none should be present
116
+
117
+ ## Dev Notes
118
+
119
+ ### CRITICAL: This Story Replaces a Placeholder (Story 19.5)
120
+
121
+ Story 19.5 created `lib/bmad-extension/skills/open-graph/generate-html.js` as a placeholder diagnostic page. This story **replaces** that file with the full renderer. The interface is unchanged:
122
+ ```
123
+ node lib/bmad-extension/skills/open-graph/generate-html.js <jsonPath> <htmlPath>
124
+ ```
125
+
126
+ ### No External Libraries — Vanilla JS Only (FR157, NFR41)
127
+
128
+ This is a hard constraint from the architecture. Do NOT use:
129
+ - D3.js (even inlined)
130
+ - React, Vue, or any framework
131
+ - Any `import` or `require` for third-party packages
132
+ - CDN scripts or stylesheets
133
+
134
+ The renderer must be approximately 300–500 lines of vanilla JS. If it grows larger, review for verbosity.
135
+
136
+ ### Pre-Computed Layout (NFR38 Performance)
137
+
138
+ The key to achieving ≤3 second initial render for 500 nodes / 1000 edges is **pre-computing the layout at generation time** in `generate-html.js`. The force simulation runs server-side (Node.js) and final positions are baked into the HTML. The browser only renders — no physics calculation at runtime.
139
+
140
+ Implementation strategy in `generate-html.js`:
141
+ 1. Build adjacency graph from `GRAPH_DATA.edges`
142
+ 2. Initialize node positions randomly
143
+ 3. Run force simulation loop for 100 iterations
144
+ 4. Embed final `{ id, cx, cy }` positions in the HTML as a separate `const POSITIONS = [...]` literal
145
+
146
+ ### HTML Structure (Architecture-Authoritative)
147
+
148
+ ```html
149
+ <!DOCTYPE html>
150
+ <html>
151
+ <head>
152
+ <meta charset="utf-8">
153
+ <title>Knowledge Graph — {project}</title>
154
+ <style>/* all CSS inlined — no external stylesheets */</style>
155
+ </head>
156
+ <body>
157
+ <div id="controls"><!-- filter checkboxes --></div>
158
+ <svg id="graph" width="100%" height="90vh">
159
+ <!-- nodes and edges rendered here as SVG elements -->
160
+ </svg>
161
+ <div id="tooltip" style="display:none; position:fixed"><!-- edge hover panel --></div>
162
+ <script>
163
+ const GRAPH_DATA = /* full JSON embedded at generation time */;
164
+ const POSITIONS = /* pre-computed layout positions */;
165
+ /* all rendering, interaction, and filter logic inlined */
166
+ </script>
167
+ </body>
168
+ </html>
169
+ ```
170
+
171
+ ### Node Color Map
172
+
173
+ | Node type | Color |
174
+ |-----------|-------|
175
+ | `prd` | `#4A90D9` (blue) |
176
+ | `architecture` | `#E8A838` (orange) |
177
+ | `epic` | `#5CB85C` (green) |
178
+ | `story` | `#5BC0DE` (teal) |
179
+ | `decision` | `#9B59B6` (purple) |
180
+ | `validation` | `#E74C3C` (red) |
181
+ | (unknown) | `#95A5A6` (gray — fallback) |
182
+
183
+ Note: architecture.md specifies `requirement=blue, architecture=orange, epic=purple, story=green, design=teal, test=red`. The epics.md specifies `prd=blue, architecture=orange, epic=green, story=teal, decision=purple, validation=red`. Use the epics.md definitions (they are more specific to actual node types emitted). The color map above reflects this.
184
+
185
+ ### SVG Arrowhead Marker
186
+
187
+ Standard SVG `<defs>` marker for directed edges:
188
+ ```svg
189
+ <defs>
190
+ <marker id="arrowhead" markerWidth="10" markerHeight="7" refX="10" refY="3.5" orient="auto">
191
+ <polygon points="0 0, 10 3.5, 0 7" fill="#666" />
192
+ </marker>
193
+ </defs>
194
+ ```
195
+ Apply with `marker-end="url(#arrowhead)"` on edge `<line>` elements.
196
+
197
+ ### Bidirectional Adjacency Map
198
+
199
+ Build in-browser at render time (from GRAPH_DATA):
200
+ ```javascript
201
+ const forward = {}; // nodeId → [nodeId, ...]
202
+ const backward = {}; // nodeId → [nodeId, ...]
203
+ GRAPH_DATA.edges.forEach(e => {
204
+ (forward[e.from] = forward[e.from] || []).push(e.to);
205
+ (backward[e.to] = backward[e.to] || []).push(e.from);
206
+ });
207
+ ```
208
+ Used for neighbor highlight (AC: 4). NFR38 / FR143 (bidirectional index).
209
+
210
+ ### CSS-Based Filtering (No Re-Layout)
211
+
212
+ Filtering by type should use CSS class toggling for performance:
213
+ ```javascript
214
+ // Add data-type attribute to each SVG element at render time
215
+ // e.g., <circle data-node-type="prd" ...>
216
+ // On filter toggle:
217
+ document.querySelectorAll('[data-node-type="prd"]').forEach(el => {
218
+ el.style.display = checked ? '' : 'none';
219
+ });
220
+ ```
221
+ This avoids re-running the physics simulation or rebuilding the SVG on filter change.
222
+
223
+ ### File Only Changed by This Story
224
+
225
+ ```
226
+ lib/
227
+ └── bmad-extension/
228
+ └── skills/
229
+ └── open-graph/
230
+ └── generate-html.js ← REPLACE placeholder with full renderer
231
+ ```
232
+
233
+ No other files are created or modified by this story. The installer automatically picks up the updated file on next deployment.
234
+
235
+ ### Project Structure Notes
236
+
237
+ - This story modifies exactly one file: `lib/bmad-extension/skills/open-graph/generate-html.js`
238
+ - No new skill registration needed (registered in Story 19.5)
239
+ - No module-help.csv changes
240
+
241
+ ### References
242
+
243
+ - Architecture Decision P3-1 — Renderer features (FR154–FR157): `_bmad-output/planning-artifacts/architecture.md#renderer-features-fr154fr156`
244
+ - Architecture Decision P3-1 — Performance contract (NFR38): `_bmad-output/planning-artifacts/architecture.md#performance-contract-nfr38`
245
+ - Story 19.5: `_bmad-output/implementation-artifacts/19-5-open-graph-skill.md` — creates the placeholder
246
+ - FRs: FR154 (interactive viz, node navigation), FR155 (edge tooltip), FR156 (filtering, neighbor highlight), FR157 (no external dependencies)
247
+ - NFRs: NFR38 (≤3s for 500/1000), NFR41 (air-gapped)
248
+
249
+ ## Dev Agent Record
250
+
251
+ ### Agent Model Used
252
+
253
+ _to be filled by dev agent_
254
+
255
+ ### Debug Log References
256
+
257
+ ### Completion Notes List
258
+
259
+ ### File List
@@ -0,0 +1,280 @@
1
+ # Story 19.7: LLM-Writability Contract Validation and Integration Tests
2
+
3
+ Status: ready-for-dev
4
+
5
+ ## Story
6
+
7
+ As a **Chief Architect**,
8
+ I want the knowledge graph JSON format validated against the LLM-writability contract and covered by integration tests,
9
+ so that we can verify that any LLM can extend the graph by copying existing patterns, and that the additive-only semantics are enforced.
10
+
11
+ ## Acceptance Criteria
12
+
13
+ 1. **Given** a `knowledge-graph.json` file with one existing node and one existing edge
14
+ **When** an LLM is instructed to add a new node and a new edge by copying the existing patterns (no external schema provided)
15
+ **Then** the resulting JSON is valid and passes `emitToGraph()` ingestion without errors
16
+ **And** the existing node and edge are preserved unchanged (NFR40)
17
+
18
+ 2. **Given** `emitToGraph()` is called with a node id that already exists in `nodes`
19
+ **When** the function completes
20
+ **Then** `nodes` contains exactly one entry with that id (no duplicate)
21
+ **And** the original node's fields are unchanged (except `title` which may be updated)
22
+
23
+ 3. **Given** `emitToGraph()` is called with an edge `(from, to, type)` triple that already exists
24
+ **When** the function completes
25
+ **Then** `edges` contains exactly one entry with that triple (no duplicate)
26
+ **And** the original edge's provenance (created_by, agent) is unchanged
27
+
28
+ 4. **Given** a graph with 500 nodes and 1000 edges
29
+ **When** `emitToGraph()` adds one new node and one new edge
30
+ **Then** the operation completes in under 1 second
31
+
32
+ 5. **Given** the full emission sequence is run (all 7 skills emit in order)
33
+ **When** the resulting `knowledge-graph.json` is inspected
34
+ **Then** all emitted nodes are present
35
+ **And** all emitted edges are present with correct provenance
36
+ **And** `meta.file_count`, `meta.node_count`, `meta.edge_count` are accurate
37
+
38
+ ## Tasks / Subtasks
39
+
40
+ ### Task 1: Set up test directory structure (AC: 1–5)
41
+
42
+ Story 19.7 integration tests follow the existing Node.js test runner pattern. Epic 7 (Test Suite) is on hold, so these tests use the existing Node.js test runner directly (no Jest, no Vitest — plain Node.js `assert` and test runner, or whichever lightweight pattern is already in use in the repo).
43
+
44
+ - [ ] 1.1 Create directory `tests/knowledge-graph/`
45
+ - [ ] 1.2 Create `tests/knowledge-graph/fixtures/` for test fixture files
46
+ - [ ] 1.3 Check existing test files in the repo (e.g., `tests/` root) to identify the test runner pattern in use — do NOT introduce a new test framework; replicate the existing pattern exactly
47
+
48
+ ### Task 2: Test — additive-only semantics (AC: 1, 2, 3)
49
+
50
+ - [ ] 2.1 Create `tests/knowledge-graph/emit.test.js`:
51
+ - **Test: first call creates valid structure**
52
+ - Use a temp directory; call `emitToGraph(tmpDir, minimalPayload)`
53
+ - Verify file is created, has `meta`, `files`, `nodes`, `edges` sections
54
+ - Verify `meta.node_count` and `meta.edge_count` match array lengths
55
+
56
+ - **Test: duplicate node is rejected (AC: 2)**
57
+ - Seed graph with node `{ id: "prd#test", ... }`
58
+ - Call `emitToGraph()` again with the same node id but different title
59
+ - Verify `nodes` has exactly 1 entry with that id
60
+ - Verify title is updated (expected behavior per Story 19.1: title updates are allowed)
61
+
62
+ - **Test: duplicate edge is rejected (AC: 3)**
63
+ - Seed graph with edge `{ from: "prd#a", to: "prd#b", type: "implements", created_by: "original", ... }`
64
+ - Call `emitToGraph()` again with same `(from, to, type)` but different `created_by`
65
+ - Verify `edges` has exactly 1 entry with that triple
66
+ - Verify `created_by` is unchanged (provenance preserved — only `created_at`/`agent` can update)
67
+
68
+ - **Test: existing entries preserved (AC: 1, 2, 3 — NFR40)**
69
+ - Seed graph with 3 nodes and 2 edges
70
+ - Call `emitToGraph()` with 2 new nodes and 1 new edge
71
+ - Verify total: 5 nodes, 3 edges
72
+ - Verify all original entries are byte-identical to their initial values
73
+
74
+ ### Task 3: Test — LLM-writability contract (AC: 1)
75
+
76
+ - [ ] 3.1 Create `tests/knowledge-graph/fixtures/llm-seed.json` — a minimal valid `knowledge-graph.json` with exactly 1 node and 1 edge (following the exact schema structure from `architecture.md` Decision P3-1)
77
+ - [ ] 3.2 Create `tests/knowledge-graph/llm-writability.test.js`:
78
+ - **Test: copy-pattern extension produces valid JSON**
79
+ - Load `fixtures/llm-seed.json`
80
+ - Programmatically "extend" it by copying the pattern (add a new node entry and new edge entry following the exact same field structure)
81
+ - Write the extended JSON back to a temp file
82
+ - Call `emitToGraph(tmpDir, emptyEmission)` on the extended file — verify no errors thrown
83
+ - Verify total node/edge counts are correct
84
+ - **Test: valid structure can be round-tripped**
85
+ - Read `fixtures/llm-seed.json`, parse, serialize as `JSON.stringify(graph, null, 2)`, parse again — verify no data loss
86
+
87
+ ### Task 4: Test — performance (AC: 4)
88
+
89
+ - [ ] 4.1 Add to `tests/knowledge-graph/emit.test.js`:
90
+ - **Test: large graph performance**
91
+ - Generate a fixture graph with 500 nodes and 1000 edges programmatically (use a helper function, not a fixture file — 500-node JSON fixture would be large)
92
+ - Write to temp dir
93
+ - Measure time of `emitToGraph()` adding 1 node and 1 edge
94
+ - Assert elapsed < 1000ms (using `Date.now()` before/after)
95
+
96
+ ### Task 5: Test — full emission sequence (AC: 5)
97
+
98
+ - [ ] 5.1 Create `tests/knowledge-graph/sequence.test.js`:
99
+ - **Test: sequential emission produces correct final graph**
100
+ - Simulate the 7-skill emission sequence using `emitToGraph()` directly (no actual skills invoked — just the payloads each skill would emit)
101
+ - Use representative payloads:
102
+ 1. PRD seeding: 3 PRD nodes, 0 edges
103
+ 2. Architecture: 2 arch nodes, 2 `implements` edges to PRD nodes
104
+ 3. Epics: 2 epic nodes, 2 `derives-from` edges + 1 `informed-by` edge
105
+ 4. Story: 1 story node, 1 `traces-to` edge + 1 `informed-by` edge
106
+ 5. Validate-prd: 1 validation node, 1 `validates` edge
107
+ 6. Dev-story: 1 `refines` edge (story → arch)
108
+ 7. Sprint-planning: 1 sprint node, 1 `derives-from` edge
109
+ - Verify final graph:
110
+ - `meta.node_count == 9` (3+2+2+1+1)
111
+ - `meta.edge_count == 8` (2+3+2+1+1) (approximately — adjust to actual test payload)
112
+ - All emitted nodes present
113
+ - All emitted edges present with correct provenance fields
114
+
115
+ ### Task 6: Test — VSCode detection (AC — Story 19.5)
116
+
117
+ - [ ] 6.1 Create `tests/knowledge-graph/vscode-detection.test.js`:
118
+ - **Test: VSCODE_PID env var triggers VSCode path**
119
+ - Set `process.env.VSCODE_PID = "12345"` before running detection logic
120
+ - Verify detection returns `true`
121
+ - Restore `process.env` after test
122
+ - **Test: TERM_PROGRAM=vscode triggers VSCode path**
123
+ - Set `process.env.TERM_PROGRAM = "vscode"`
124
+ - Verify detection returns `true`
125
+ - **Test: neither env var set returns false**
126
+ - Ensure both env vars are unset; verify detection returns `false`
127
+ - Extract detection logic from `lib/bmad-extension/skills/open-graph/SKILL.md` into a testable helper function `lib/bmad-extension/skills/open-graph/detect-env.js`
128
+
129
+ ## Dev Notes
130
+
131
+ ### CRITICAL: Test Framework — Use Existing Pattern
132
+
133
+ Epic 7 (Test Suite Foundation) is on hold. Do NOT introduce Jest, Vitest, Mocha, or any new test framework. Check if any test files already exist in `tests/` and replicate their exact pattern.
134
+
135
+ If no test infrastructure exists: use Node.js built-in `node:test` module (available from Node.js 18+) and `node:assert`. This requires no npm installation.
136
+
137
+ Pattern to check first:
138
+ - Look for any `*.test.js` files in the repo
139
+ - Look for `test` script in `package.json`
140
+
141
+ ### Prerequisite: All of Stories 19.1–19.6 Must Be Complete
142
+
143
+ This story validates the complete Epic 19 implementation. It depends on:
144
+ - `lib/knowledge-graph/emit.js` (Story 19.1)
145
+ - `lib/bmad-extension/skills/open-graph/` (Stories 19.5, 19.6)
146
+
147
+ ### Test Directory Convention
148
+
149
+ Tests live in `tests/knowledge-graph/` following the expectation from the Epic 19 cross-epic notes. Temp directories for all file I/O in tests:
150
+ ```javascript
151
+ import { mkdtempSync, rmSync } from 'node:fs';
152
+ import { join } from 'node:path';
153
+ import { tmpdir } from 'node:os';
154
+
155
+ let tmpDir;
156
+ setup(() => { tmpDir = mkdtempSync(join(tmpdir(), 'kg-test-')); });
157
+ teardown(() => { rmSync(tmpDir, { recursive: true, force: true }); });
158
+ ```
159
+
160
+ ### LLM-Writability Fixture (Task 3)
161
+
162
+ The fixture `tests/knowledge-graph/fixtures/llm-seed.json` must be a minimal but complete example:
163
+ ```json
164
+ {
165
+ "meta": {
166
+ "schema_version": "1.0",
167
+ "project": "test-project",
168
+ "generated_at": "2026-04-07T10:00:00Z",
169
+ "last_updated": "2026-04-07T10:00:00Z",
170
+ "file_count": 1,
171
+ "node_count": 1,
172
+ "edge_count": 1
173
+ },
174
+ "files": {
175
+ "prd": {
176
+ "pointer": "_bmad-output/planning-artifacts/prd.md",
177
+ "title": "Product Requirements Document",
178
+ "pointer_type": "relative_path"
179
+ }
180
+ },
181
+ "nodes": [
182
+ {
183
+ "id": "prd#functional-requirements",
184
+ "file": "prd",
185
+ "anchor": "functional-requirements",
186
+ "title": "Functional Requirements",
187
+ "type": "prd"
188
+ }
189
+ ],
190
+ "edges": [
191
+ {
192
+ "from": "arch#decision-test",
193
+ "to": "prd#functional-requirements",
194
+ "type": "implements",
195
+ "label": "implements requirement",
196
+ "created_by": "test-user",
197
+ "agent": "test-agent",
198
+ "created_at": "2026-04-07T10:00:00Z"
199
+ }
200
+ ]
201
+ }
202
+ ```
203
+
204
+ This fixture is intentionally minimal so that an LLM reading it has exactly one example to copy.
205
+
206
+ ### Performance Test Helper (Task 4)
207
+
208
+ Generate the 500-node / 1000-edge test graph programmatically:
209
+ ```javascript
210
+ function generateLargeGraph(nodeCount, edgeCount) {
211
+ const nodes = Array.from({ length: nodeCount }, (_, i) => ({
212
+ id: `prd#node-${i}`, file: 'prd', anchor: `node-${i}`, title: `Node ${i}`, type: 'prd'
213
+ }));
214
+ const edges = Array.from({ length: edgeCount }, (_, i) => ({
215
+ from: `prd#node-${i % nodeCount}`,
216
+ to: `prd#node-${(i + 1) % nodeCount}`,
217
+ type: 'implements',
218
+ label: `edge ${i}`,
219
+ created_by: 'test', agent: 'test', created_at: new Date().toISOString()
220
+ }));
221
+ // ... build and write graph to temp dir
222
+ }
223
+ ```
224
+
225
+ ### `detect-env.js` Extraction (Task 6)
226
+
227
+ The VSCode detection logic from SKILL.md should be extracted to a testable Node.js module:
228
+ ```javascript
229
+ // lib/bmad-extension/skills/open-graph/detect-env.js
230
+ function detectVSCode() {
231
+ return process.env.TERM_PROGRAM === 'vscode' || process.env.VSCODE_PID !== undefined;
232
+ }
233
+ module.exports = { detectVSCode };
234
+ ```
235
+
236
+ This makes it importable by tests without executing the `execSync` open command.
237
+
238
+ ### File Structure Created by This Story
239
+
240
+ ```
241
+ tests/
242
+ └── knowledge-graph/
243
+ ├── fixtures/
244
+ │ └── llm-seed.json ← NEW (LLM-writability test fixture)
245
+ ├── emit.test.js ← NEW (additive semantics + performance tests)
246
+ ├── llm-writability.test.js ← NEW (copy-pattern extension tests)
247
+ ├── sequence.test.js ← NEW (full emission sequence test)
248
+ └── vscode-detection.test.js ← NEW (env var detection tests)
249
+
250
+ lib/bmad-extension/skills/open-graph/
251
+ └── detect-env.js ← NEW (extracted detection logic for testability)
252
+ ```
253
+
254
+ ### Project Structure Notes
255
+
256
+ - No SKILL.md files modified by this story.
257
+ - No new skills registered.
258
+ - The `detect-env.js` extraction from Story 19.5's SKILL.md is a minor refactor to enable testability.
259
+ - If no `tests/` directory exists, create it. Add a `test` script to `package.json` if one does not exist: `"test": "node --test tests/**/*.test.js"` (Node.js 18+ built-in runner).
260
+
261
+ ### References
262
+
263
+ - Story 19.1: `_bmad-output/implementation-artifacts/19-1-knowledge-graph-core-library.md` — `emitToGraph()` behavior under test
264
+ - Architecture LLM-writability contract: `_bmad-output/planning-artifacts/architecture.md#llm-writability-contract-nfr39`
265
+ - Architecture additive-only semantics: `_bmad-output/planning-artifacts/architecture.md#nfr40-additive-only-emission`
266
+ - Epics cross-epic notes on testing: `_bmad-output/planning-artifacts/epics.md#epic-19--cross-epic-notes`
267
+ - NFRs: NFR39 (LLM-writability), NFR40 (additive-only)
268
+ - FR: FR152 (no duplicates, provenance preservation)
269
+
270
+ ## Dev Agent Record
271
+
272
+ ### Agent Model Used
273
+
274
+ _to be filled by dev agent_
275
+
276
+ ### Debug Log References
277
+
278
+ ### Completion Notes List
279
+
280
+ ### File List
@@ -1,5 +1,5 @@
1
1
  # generated: 2026-03-15
2
- # updated: 2026-04-04 — Epic 17 code rolled back; all Phase 2 stories (17.10-17.24) rewritten and reset to ready-for-dev.
2
+ # updated: 2026-04-07All Epic 17 stories (17.9-17.24) implemented and marked done. Epic 19 (BMAD Knowledge Graph) added to backlog.
3
3
  # project: agents
4
4
  # project_key: NOKEY
5
5
  # tracking_system: file-system
@@ -16,7 +16,7 @@
16
16
  # Old Epic 17 stories (17.1-17.8) archived; replaced by 17.9-17.24.
17
17
 
18
18
  generated: 2026-03-15
19
- last_updated: 2026-04-06
19
+ last_updated: 2026-04-07 — Epic 19 stories (19.1-19.7) story files created, marked ready-for-dev
20
20
  project: agents
21
21
  project_key: NOKEY
22
22
  tracking_system: file-system
@@ -34,23 +34,23 @@ development_status:
34
34
  # Epic 17: Sprint Management Model Rework — Unified sprint-status.yaml
35
35
  # Redesigned 2026-04-03: 16 new stories (17.9-17.24) replacing old 17.1-17.8.
36
36
  # Execution order: 17.9 → 17.15 → 17.10 → 17.16 → 17.11 → 17.12 → 17.13 → 17.14 → 17.17 → 17.18 → 17.19 → 17.20 → 17.24 → 17.21 → 17.22 → 17.23
37
- epic-17: in-progress
37
+ epic-17: done
38
38
  17-9-unified-sprint-status-schema: done
39
- 17-10-rework-generate-backlog: ready-for-dev
40
- 17-11-rework-add-to-sprint: ready-for-dev
41
- 17-12-rework-remove-from-sprint: ready-for-dev
42
- 17-13-rework-sprint-status-view: ready-for-dev
43
- 17-14-rework-cleanup-done: ready-for-dev
44
- 17-15-rework-bmad-sprint-planning: ready-for-dev
45
- 17-16-rework-add-sprint: ready-for-dev
46
- 17-17-rework-modify-sprint: ready-for-dev
47
- 17-18-rework-bmad-dev-story: ready-for-dev
48
- 17-19-rework-story-status-lookup: ready-for-dev
49
- 17-20-rework-bmad-sprint-status: ready-for-dev
50
- 17-21-new-close-sprint: ready-for-dev
51
- 17-22-jira-adapter-pattern: review
52
- 17-23-migration-deprecation-old-files: ready-for-dev
53
- 17-24-rework-prioritize-backlog: ready-for-dev
39
+ 17-10-rework-generate-backlog: done
40
+ 17-11-rework-add-to-sprint: done
41
+ 17-12-rework-remove-from-sprint: done
42
+ 17-13-rework-sprint-status-view: done
43
+ 17-14-rework-cleanup-done: done
44
+ 17-15-rework-bmad-sprint-planning: done
45
+ 17-16-rework-add-sprint: done
46
+ 17-17-rework-modify-sprint: done
47
+ 17-18-rework-bmad-dev-story: done
48
+ 17-19-rework-story-status-lookup: done
49
+ 17-20-rework-bmad-sprint-status: done
50
+ 17-21-new-close-sprint: done
51
+ 17-22-jira-adapter-pattern: done
52
+ 17-23-migration-deprecation-old-files: done
53
+ 17-24-rework-prioritize-backlog: done
54
54
  epic-17-retrospective: optional
55
55
 
56
56
  # ─── ON HOLD ──────────────────────────────────────────────────────────────────
@@ -71,6 +71,19 @@ development_status:
71
71
 
72
72
  # ─── BACKLOG ──────────────────────────────────────────────────────────────────
73
73
 
74
+ # Epic 19: BMAD Knowledge Graph (Phase 3)
75
+ # Dependencies: Epic 15 (extension module structure), Epic 17 (sprint skill structure settled)
76
+ # Execution order: 19.1 → 19.2+19.3+19.4 (parallel) → 19.5 → 19.6 → 19.7
77
+ epic-19: in-progress
78
+ 19-1-knowledge-graph-core-library: ready-for-dev
79
+ 19-2-graph-emission-create-prd: ready-for-dev
80
+ 19-3-graph-emission-create-architecture-epics: ready-for-dev
81
+ 19-4-graph-emission-create-story-remaining: ready-for-dev
82
+ 19-5-open-graph-skill: ready-for-dev
83
+ 19-6-interactive-visualization-renderer: ready-for-dev
84
+ 19-7-llm-writability-validation-tests: ready-for-dev
85
+ epic-19-retrospective: optional
86
+
74
87
  # Epic 14: External Tooling Integration
75
88
  # Dependencies: Epic 12, Epic 10, Epic 13 | Analyst + Architect required
76
89
  # Stories 14.4, 14.5 blocked on Story 14.3 architecture approval