ma-agents 3.5.0 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/_bmad-output/implementation-artifacts/16-4-validation-report.md +79 -0
  2. package/_bmad-output/implementation-artifacts/19-1-knowledge-graph-core-library.md +239 -0
  3. package/_bmad-output/implementation-artifacts/19-2-graph-emission-create-prd.md +171 -0
  4. package/_bmad-output/implementation-artifacts/19-3-graph-emission-create-architecture-epics.md +179 -0
  5. package/_bmad-output/implementation-artifacts/19-4-graph-emission-create-story-remaining.md +190 -0
  6. package/_bmad-output/implementation-artifacts/19-5-open-graph-skill.md +213 -0
  7. package/_bmad-output/implementation-artifacts/19-6-interactive-visualization-renderer.md +259 -0
  8. package/_bmad-output/implementation-artifacts/19-7-llm-writability-validation-tests.md +280 -0
  9. package/_bmad-output/implementation-artifacts/sprint-status.yaml +31 -18
  10. package/_bmad-output/planning-artifacts/architecture.md +354 -2
  11. package/_bmad-output/planning-artifacts/epics.md +556 -8
  12. package/_bmad-output/planning-artifacts/prd.md +92 -10
  13. package/_bmad-output/planning-artifacts/validation-report-prd-2026-04-07.md +330 -0
  14. package/lib/bmad-cache/bmb/.claude-plugin/marketplace.json +38 -4
  15. package/lib/bmad-cache/bmb/README.md +39 -27
  16. package/lib/bmad-cache/bmb/_git_preserved/index +0 -0
  17. package/lib/bmad-cache/bmb/_git_preserved/logs/HEAD +1 -1
  18. package/lib/bmad-cache/bmb/_git_preserved/logs/refs/heads/main +1 -1
  19. package/lib/bmad-cache/bmb/_git_preserved/logs/refs/remotes/origin/HEAD +1 -1
  20. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-5e915049d8459481e4aa7be8d5959643fa68a981.idx +0 -0
  21. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-5e915049d8459481e4aa7be8d5959643fa68a981.pack +0 -0
  22. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-5e915049d8459481e4aa7be8d5959643fa68a981.rev +0 -0
  23. package/lib/bmad-cache/bmb/_git_preserved/packed-refs +1 -1
  24. package/lib/bmad-cache/bmb/_git_preserved/refs/heads/main +1 -1
  25. package/lib/bmad-cache/bmb/_git_preserved/shallow +1 -1
  26. package/lib/bmad-cache/bmb/package.json +1 -9
  27. package/lib/bmad-cache/bmb/samples/bmad-agent-code-coach/scripts/init-sanctum.py +288 -0
  28. package/lib/bmad-cache/bmb/samples/bmad-agent-creative-muse/scripts/init-sanctum.py +274 -0
  29. package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/assets/module-help.csv +9 -0
  30. package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/assets/module.yaml +8 -0
  31. package/lib/bmad-cache/bmb/{skills/bmad-builder-setup → samples/bmad-agent-dream-weaver}/scripts/merge-help-csv.py +3 -5
  32. package/lib/bmad-cache/bmb/samples/bmad-agent-sentinel/scripts/init-sanctum.py +285 -0
  33. package/lib/bmad-cache/bmb/samples/bmad-agent-sentinel/scripts/tests/test-init-sanctum.py +174 -0
  34. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/assets/init-sanctum-template.py +277 -0
  35. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/references/sample-init-sanctum.py +274 -0
  36. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/prepass-execution-deps.py +4 -4
  37. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/prepass-prompt-metrics.py +22 -0
  38. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/prepass-sanctum-architecture.py +385 -0
  39. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/prepass-structure-capabilities.py +64 -27
  40. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/process-template.py +190 -0
  41. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/scan-path-standards.py +17 -32
  42. package/lib/bmad-cache/bmb/skills/bmad-agent-builder/scripts/scan-scripts.py +5 -3
  43. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/assets/module-help.csv +10 -0
  44. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/merge-config.py +408 -0
  45. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/merge-help-csv.py +218 -0
  46. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/assets/module-help.csv +1 -0
  47. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/assets/module.yaml +6 -0
  48. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/cleanup-legacy.py +259 -0
  49. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/merge-config.py +408 -0
  50. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/merge-help-csv.py +218 -0
  51. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/standalone-module-template/merge-config.py +408 -0
  52. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/standalone-module-template/merge-help-csv.py +218 -0
  53. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/scaffold-setup-skill.py +124 -0
  54. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/scaffold-standalone-module.py +190 -0
  55. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/tests/test-scaffold-setup-skill.py +223 -0
  56. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/tests/test-scaffold-standalone-module.py +266 -0
  57. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/tests/test-validate-module.py +314 -0
  58. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/validate-module.py +293 -0
  59. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/generate-convert-report.py +406 -0
  60. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/prepass-workflow-integrity.py +1 -6
  61. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/scan-path-standards.py +14 -16
  62. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/tests/test_generate_convert_report.py +243 -0
  63. package/lib/bmad-cache/bmb/skills/module-help.csv +10 -5
  64. package/lib/bmad-cache/bmb/tools/validate-file-refs.mjs +1 -1
  65. package/lib/bmad-cache/bmb/website/astro.config.mjs +10 -6
  66. package/lib/bmad-cache/bmb/website/src/components/Banner.astro +6 -5
  67. package/lib/bmad-cache/bmb/website/src/styles/custom.css +60 -42
  68. package/lib/bmad-cache/cache-manifest.json +11 -11
  69. package/lib/bmad-cache/cis/README.md +9 -0
  70. package/lib/bmad-cache/cis/_git_preserved/index +0 -0
  71. package/lib/bmad-cache/cis/_git_preserved/logs/HEAD +1 -1
  72. package/lib/bmad-cache/cis/_git_preserved/logs/refs/heads/main +1 -1
  73. package/lib/bmad-cache/cis/_git_preserved/logs/refs/remotes/origin/HEAD +1 -1
  74. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.idx +0 -0
  75. package/lib/bmad-cache/cis/_git_preserved/objects/pack/{pack-9d60aae6b09bbea0d0c5e79fdbe96e8f66de84e6.pack → pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.pack} +0 -0
  76. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.rev +0 -0
  77. package/lib/bmad-cache/cis/_git_preserved/packed-refs +1 -1
  78. package/lib/bmad-cache/cis/_git_preserved/refs/heads/main +1 -1
  79. package/lib/bmad-cache/cis/_git_preserved/shallow +1 -1
  80. package/lib/bmad-cache/cis/src/module-help.csv +1 -0
  81. package/lib/bmad-cache/cis/website/astro.config.mjs +14 -6
  82. package/lib/bmad-cache/cis/website/src/components/Banner.astro +26 -11
  83. package/lib/bmad-cache/cis/website/src/styles/custom.css +60 -41
  84. package/lib/bmad-cache/gds/.claude-plugin/marketplace.json +1 -1
  85. package/lib/bmad-cache/gds/README.md +9 -0
  86. package/lib/bmad-cache/gds/_git_preserved/index +0 -0
  87. package/lib/bmad-cache/gds/_git_preserved/logs/HEAD +1 -1
  88. package/lib/bmad-cache/gds/_git_preserved/logs/refs/heads/main +1 -1
  89. package/lib/bmad-cache/gds/_git_preserved/logs/refs/remotes/origin/HEAD +1 -1
  90. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-ac967149d58fba215d07238ad8881bdbdad5c9c3.idx +0 -0
  91. package/lib/bmad-cache/gds/_git_preserved/objects/pack/{pack-8099a88fca0ad946a573316a00887a2921ca1712.pack → pack-ac967149d58fba215d07238ad8881bdbdad5c9c3.pack} +0 -0
  92. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-ac967149d58fba215d07238ad8881bdbdad5c9c3.rev +0 -0
  93. package/lib/bmad-cache/gds/_git_preserved/packed-refs +1 -1
  94. package/lib/bmad-cache/gds/_git_preserved/refs/heads/main +1 -1
  95. package/lib/bmad-cache/gds/_git_preserved/shallow +1 -1
  96. package/lib/bmad-cache/gds/package.json +1 -1
  97. package/lib/bmad-cache/gds/src/module-help.csv +1 -0
  98. package/lib/bmad-cache/gds/website/astro.config.mjs +14 -6
  99. package/lib/bmad-cache/gds/website/src/components/Banner.astro +26 -11
  100. package/lib/bmad-cache/gds/website/src/styles/custom.css +60 -41
  101. package/lib/bmad-cache/tea/README.md +14 -0
  102. package/lib/bmad-cache/tea/_git_preserved/index +0 -0
  103. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-c79805bb3fee27fa6d8c612a971af7fc86fc80e1.idx +0 -0
  104. package/lib/bmad-cache/tea/_git_preserved/objects/pack/{pack-d243f64f83b36190434d68872a69a40870c53030.pack → pack-c79805bb3fee27fa6d8c612a971af7fc86fc80e1.pack} +0 -0
  105. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-c79805bb3fee27fa6d8c612a971af7fc86fc80e1.rev +0 -0
  106. package/lib/bmad-cache/tea/_git_preserved/packed-refs +1 -1
  107. package/lib/bmad-cache/tea/_git_preserved/refs/heads/main +1 -1
  108. package/lib/bmad-cache/tea/_git_preserved/shallow +1 -1
  109. package/lib/bmad-cache/tea/docs/index.md +4 -14
  110. package/lib/bmad-cache/tea/package-lock.json +2 -2
  111. package/lib/bmad-cache/tea/package.json +1 -1
  112. package/lib/bmad-cache/tea/src/agents/bmad-tea/SKILL.md +6 -6
  113. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/playwright-cli.md +119 -4
  114. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/playwright-config.md +8 -4
  115. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/visual-debugging.md +34 -31
  116. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/tea-index.csv +1 -1
  117. package/lib/bmad-cache/tea/src/module-help.csv +1 -0
  118. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/atdd-checklist-template.md +1 -1
  119. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/instructions.md +0 -1
  120. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  121. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/api-request.md +563 -0
  122. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/api-testing-patterns.md +915 -0
  123. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/auth-session.md +548 -0
  124. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/burn-in.md +273 -0
  125. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/ci-burn-in.md +717 -0
  126. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/component-tdd.md +486 -0
  127. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/contract-testing.md +1050 -0
  128. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/data-factories.md +500 -0
  129. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/email-auth.md +721 -0
  130. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/error-handling.md +725 -0
  131. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/feature-flags.md +750 -0
  132. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/file-utils.md +456 -0
  133. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/fixture-architecture.md +401 -0
  134. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/fixtures-composition.md +382 -0
  135. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/intercept-network-call.md +426 -0
  136. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/log.md +426 -0
  137. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/network-error-monitor.md +401 -0
  138. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/network-first.md +486 -0
  139. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/network-recorder.md +527 -0
  140. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/nfr-criteria.md +670 -0
  141. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/overview.md +286 -0
  142. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-consumer-di.md +310 -0
  143. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  144. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-mcp.md +204 -0
  145. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  146. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-overview.md +216 -0
  147. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  148. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  149. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/playwright-cli.md +280 -0
  150. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/playwright-config.md +734 -0
  151. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/probability-impact.md +601 -0
  152. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/recurse.md +421 -0
  153. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/risk-governance.md +615 -0
  154. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/selective-testing.md +732 -0
  155. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/selector-resilience.md +527 -0
  156. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/test-healing-patterns.md +644 -0
  157. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/test-levels-framework.md +473 -0
  158. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/test-priorities-matrix.md +373 -0
  159. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/test-quality.md +664 -0
  160. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/timing-debugging.md +372 -0
  161. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/visual-debugging.md +527 -0
  162. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/tea-index.csv +43 -0
  163. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-01-preflight-and-context.md +1 -1
  164. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/instructions.md +0 -1
  165. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  166. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/api-request.md +563 -0
  167. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/api-testing-patterns.md +915 -0
  168. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/auth-session.md +548 -0
  169. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/burn-in.md +273 -0
  170. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/ci-burn-in.md +717 -0
  171. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/component-tdd.md +486 -0
  172. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/contract-testing.md +1050 -0
  173. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/data-factories.md +500 -0
  174. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/email-auth.md +721 -0
  175. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/error-handling.md +725 -0
  176. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/feature-flags.md +750 -0
  177. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/file-utils.md +456 -0
  178. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/fixture-architecture.md +401 -0
  179. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/fixtures-composition.md +382 -0
  180. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/intercept-network-call.md +426 -0
  181. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/log.md +426 -0
  182. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/network-error-monitor.md +401 -0
  183. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/network-first.md +486 -0
  184. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/network-recorder.md +527 -0
  185. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/nfr-criteria.md +670 -0
  186. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/overview.md +286 -0
  187. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-consumer-di.md +310 -0
  188. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  189. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-mcp.md +204 -0
  190. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  191. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-overview.md +216 -0
  192. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  193. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  194. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/playwright-cli.md +280 -0
  195. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/playwright-config.md +734 -0
  196. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/probability-impact.md +601 -0
  197. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/recurse.md +421 -0
  198. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/risk-governance.md +615 -0
  199. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/selective-testing.md +732 -0
  200. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/selector-resilience.md +527 -0
  201. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/test-healing-patterns.md +644 -0
  202. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/test-levels-framework.md +473 -0
  203. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/test-priorities-matrix.md +373 -0
  204. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/test-quality.md +664 -0
  205. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/timing-debugging.md +372 -0
  206. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/visual-debugging.md +527 -0
  207. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/tea-index.csv +43 -0
  208. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-01-preflight-and-context.md +1 -1
  209. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-03c-aggregate.md +8 -3
  210. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/harness-pipeline-template.yaml +7 -6
  211. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/instructions.md +0 -1
  212. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  213. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/api-request.md +563 -0
  214. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/api-testing-patterns.md +915 -0
  215. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/auth-session.md +548 -0
  216. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/burn-in.md +273 -0
  217. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/ci-burn-in.md +717 -0
  218. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/component-tdd.md +486 -0
  219. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/contract-testing.md +1050 -0
  220. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/data-factories.md +500 -0
  221. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/email-auth.md +721 -0
  222. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/error-handling.md +725 -0
  223. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/feature-flags.md +750 -0
  224. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/file-utils.md +456 -0
  225. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/fixture-architecture.md +401 -0
  226. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/fixtures-composition.md +382 -0
  227. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/intercept-network-call.md +426 -0
  228. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/log.md +426 -0
  229. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/network-error-monitor.md +401 -0
  230. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/network-first.md +486 -0
  231. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/network-recorder.md +527 -0
  232. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/nfr-criteria.md +670 -0
  233. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/overview.md +286 -0
  234. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-consumer-di.md +310 -0
  235. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  236. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-mcp.md +204 -0
  237. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  238. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-overview.md +216 -0
  239. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  240. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  241. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/playwright-cli.md +280 -0
  242. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/playwright-config.md +734 -0
  243. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/probability-impact.md +601 -0
  244. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/recurse.md +421 -0
  245. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/risk-governance.md +615 -0
  246. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/selective-testing.md +732 -0
  247. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/selector-resilience.md +527 -0
  248. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/test-healing-patterns.md +644 -0
  249. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/test-levels-framework.md +473 -0
  250. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/test-priorities-matrix.md +373 -0
  251. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/test-quality.md +664 -0
  252. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/timing-debugging.md +372 -0
  253. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/visual-debugging.md +527 -0
  254. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/tea-index.csv +43 -0
  255. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-02-generate-pipeline.md +1 -1
  256. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-03-configure-quality-gates.md +1 -1
  257. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/checklist.md +1 -1
  258. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/instructions.md +0 -1
  259. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  260. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/api-request.md +563 -0
  261. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/api-testing-patterns.md +915 -0
  262. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/auth-session.md +548 -0
  263. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/burn-in.md +273 -0
  264. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/ci-burn-in.md +717 -0
  265. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/component-tdd.md +486 -0
  266. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/contract-testing.md +1050 -0
  267. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/data-factories.md +500 -0
  268. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/email-auth.md +721 -0
  269. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/error-handling.md +725 -0
  270. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/feature-flags.md +750 -0
  271. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/file-utils.md +456 -0
  272. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/fixture-architecture.md +401 -0
  273. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/fixtures-composition.md +382 -0
  274. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/intercept-network-call.md +426 -0
  275. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/log.md +426 -0
  276. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/network-error-monitor.md +401 -0
  277. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/network-first.md +486 -0
  278. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/network-recorder.md +527 -0
  279. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/nfr-criteria.md +670 -0
  280. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/overview.md +286 -0
  281. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-consumer-di.md +310 -0
  282. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  283. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-mcp.md +204 -0
  284. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  285. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-overview.md +216 -0
  286. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  287. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  288. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/playwright-cli.md +280 -0
  289. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/playwright-config.md +734 -0
  290. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/probability-impact.md +601 -0
  291. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/recurse.md +421 -0
  292. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/risk-governance.md +615 -0
  293. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/selective-testing.md +732 -0
  294. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/selector-resilience.md +527 -0
  295. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/test-healing-patterns.md +644 -0
  296. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/test-levels-framework.md +473 -0
  297. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/test-priorities-matrix.md +373 -0
  298. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/test-quality.md +664 -0
  299. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/timing-debugging.md +372 -0
  300. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/visual-debugging.md +527 -0
  301. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/tea-index.csv +43 -0
  302. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-03-scaffold-framework.md +2 -2
  303. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  304. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/api-request.md +563 -0
  305. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/api-testing-patterns.md +915 -0
  306. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/auth-session.md +548 -0
  307. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/burn-in.md +273 -0
  308. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/ci-burn-in.md +717 -0
  309. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/component-tdd.md +486 -0
  310. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/contract-testing.md +1050 -0
  311. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/data-factories.md +500 -0
  312. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/email-auth.md +721 -0
  313. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/error-handling.md +725 -0
  314. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/feature-flags.md +750 -0
  315. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/file-utils.md +456 -0
  316. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/fixture-architecture.md +401 -0
  317. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/fixtures-composition.md +382 -0
  318. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/intercept-network-call.md +426 -0
  319. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/log.md +426 -0
  320. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/network-error-monitor.md +401 -0
  321. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/network-first.md +486 -0
  322. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/network-recorder.md +527 -0
  323. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/nfr-criteria.md +670 -0
  324. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/overview.md +286 -0
  325. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-consumer-di.md +310 -0
  326. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  327. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-mcp.md +204 -0
  328. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  329. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-overview.md +216 -0
  330. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  331. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  332. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/playwright-cli.md +280 -0
  333. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/playwright-config.md +734 -0
  334. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/probability-impact.md +601 -0
  335. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/recurse.md +421 -0
  336. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/risk-governance.md +615 -0
  337. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/selective-testing.md +732 -0
  338. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/selector-resilience.md +527 -0
  339. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/test-healing-patterns.md +644 -0
  340. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/test-levels-framework.md +473 -0
  341. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/test-priorities-matrix.md +373 -0
  342. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/test-quality.md +664 -0
  343. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/timing-debugging.md +372 -0
  344. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/visual-debugging.md +527 -0
  345. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/tea-index.csv +43 -0
  346. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-01-load-context.md +1 -1
  347. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/instructions.md +0 -1
  348. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  349. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/api-request.md +563 -0
  350. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/api-testing-patterns.md +915 -0
  351. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/auth-session.md +548 -0
  352. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/burn-in.md +273 -0
  353. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/ci-burn-in.md +717 -0
  354. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/component-tdd.md +486 -0
  355. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/contract-testing.md +1050 -0
  356. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/data-factories.md +500 -0
  357. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/email-auth.md +721 -0
  358. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/error-handling.md +725 -0
  359. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/feature-flags.md +750 -0
  360. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/file-utils.md +456 -0
  361. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/fixture-architecture.md +401 -0
  362. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/fixtures-composition.md +382 -0
  363. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/intercept-network-call.md +426 -0
  364. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/log.md +426 -0
  365. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/network-error-monitor.md +401 -0
  366. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/network-first.md +486 -0
  367. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/network-recorder.md +527 -0
  368. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/nfr-criteria.md +670 -0
  369. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/overview.md +286 -0
  370. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-consumer-di.md +310 -0
  371. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  372. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-mcp.md +204 -0
  373. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  374. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-overview.md +216 -0
  375. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  376. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  377. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/playwright-cli.md +280 -0
  378. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/playwright-config.md +734 -0
  379. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/probability-impact.md +601 -0
  380. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/recurse.md +421 -0
  381. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/risk-governance.md +615 -0
  382. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/selective-testing.md +732 -0
  383. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/selector-resilience.md +527 -0
  384. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/test-healing-patterns.md +644 -0
  385. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/test-levels-framework.md +473 -0
  386. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/test-priorities-matrix.md +373 -0
  387. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/test-quality.md +664 -0
  388. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/timing-debugging.md +372 -0
  389. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/visual-debugging.md +527 -0
  390. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/tea-index.csv +43 -0
  391. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-02-load-context.md +1 -1
  392. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-qa-template.md +1 -1
  393. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-template.md +1 -1
  394. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/checklist.md +1 -1
  395. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  396. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/api-request.md +563 -0
  397. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/api-testing-patterns.md +915 -0
  398. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/auth-session.md +548 -0
  399. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/burn-in.md +273 -0
  400. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/ci-burn-in.md +717 -0
  401. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/component-tdd.md +486 -0
  402. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/contract-testing.md +1050 -0
  403. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/data-factories.md +500 -0
  404. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/email-auth.md +721 -0
  405. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/error-handling.md +725 -0
  406. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/feature-flags.md +750 -0
  407. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/file-utils.md +456 -0
  408. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/fixture-architecture.md +401 -0
  409. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/fixtures-composition.md +382 -0
  410. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/intercept-network-call.md +426 -0
  411. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/log.md +426 -0
  412. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/network-error-monitor.md +401 -0
  413. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/network-first.md +486 -0
  414. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/network-recorder.md +527 -0
  415. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/nfr-criteria.md +670 -0
  416. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/overview.md +286 -0
  417. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-consumer-di.md +310 -0
  418. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  419. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-mcp.md +204 -0
  420. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  421. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-overview.md +216 -0
  422. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  423. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  424. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/playwright-cli.md +280 -0
  425. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/playwright-config.md +734 -0
  426. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/probability-impact.md +601 -0
  427. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/recurse.md +421 -0
  428. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/risk-governance.md +615 -0
  429. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/selective-testing.md +732 -0
  430. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/selector-resilience.md +527 -0
  431. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/test-healing-patterns.md +644 -0
  432. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/test-levels-framework.md +473 -0
  433. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/test-priorities-matrix.md +373 -0
  434. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/test-quality.md +664 -0
  435. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/timing-debugging.md +372 -0
  436. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/visual-debugging.md +527 -0
  437. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/tea-index.csv +43 -0
  438. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-01-load-context.md +1 -1
  439. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-02-discover-tests.md +7 -0
  440. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-03a-subagent-determinism.md +1 -1
  441. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/adr-quality-readiness-checklist.md +377 -0
  442. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/api-request.md +563 -0
  443. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/api-testing-patterns.md +915 -0
  444. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/auth-session.md +548 -0
  445. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/burn-in.md +273 -0
  446. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/ci-burn-in.md +717 -0
  447. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/component-tdd.md +486 -0
  448. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/contract-testing.md +1050 -0
  449. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/data-factories.md +500 -0
  450. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/email-auth.md +721 -0
  451. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/error-handling.md +725 -0
  452. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/feature-flags.md +750 -0
  453. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/file-utils.md +456 -0
  454. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/fixture-architecture.md +401 -0
  455. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/fixtures-composition.md +382 -0
  456. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/intercept-network-call.md +426 -0
  457. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/log.md +426 -0
  458. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/network-error-monitor.md +401 -0
  459. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/network-first.md +486 -0
  460. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/network-recorder.md +527 -0
  461. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/nfr-criteria.md +670 -0
  462. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/overview.md +286 -0
  463. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-consumer-di.md +310 -0
  464. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-consumer-framework-setup.md +635 -0
  465. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-mcp.md +204 -0
  466. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-consumer-helpers.md +270 -0
  467. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-overview.md +216 -0
  468. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-provider-verifier.md +315 -0
  469. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-request-filter.md +224 -0
  470. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/playwright-cli.md +280 -0
  471. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/playwright-config.md +734 -0
  472. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/probability-impact.md +601 -0
  473. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/recurse.md +421 -0
  474. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/risk-governance.md +615 -0
  475. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/selective-testing.md +732 -0
  476. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/selector-resilience.md +527 -0
  477. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/test-healing-patterns.md +644 -0
  478. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/test-levels-framework.md +473 -0
  479. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/test-priorities-matrix.md +373 -0
  480. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/test-quality.md +664 -0
  481. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/timing-debugging.md +372 -0
  482. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/visual-debugging.md +527 -0
  483. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/tea-index.csv +43 -0
  484. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-01-load-context.md +1 -1
  485. package/lib/bmad-cache/tea/website/astro.config.mjs +10 -6
  486. package/lib/bmad-cache/tea/website/src/components/Banner.astro +28 -13
  487. package/lib/bmad-cache/tea/website/src/components/Header.astro +1 -1
  488. package/lib/bmad-cache/tea/website/src/components/MobileMenuFooter.astro +1 -1
  489. package/lib/bmad-cache/tea/website/src/styles/custom.css +60 -41
  490. package/lib/bmad-cache/wds/README.md +13 -0
  491. package/lib/bmad-cache/wds/_git_preserved/index +0 -0
  492. package/lib/bmad-cache/wds/_git_preserved/logs/HEAD +1 -1
  493. package/lib/bmad-cache/wds/_git_preserved/logs/refs/heads/main +1 -1
  494. package/lib/bmad-cache/wds/_git_preserved/logs/refs/remotes/origin/HEAD +1 -1
  495. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-96877c1c09123cccb1f91c1412184b11d2b492ad.idx +0 -0
  496. package/lib/bmad-cache/wds/_git_preserved/objects/pack/{pack-92d32f26e3a97a0786dcea5cb2c24bf90384521c.pack → pack-96877c1c09123cccb1f91c1412184b11d2b492ad.pack} +0 -0
  497. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-96877c1c09123cccb1f91c1412184b11d2b492ad.rev +0 -0
  498. package/lib/bmad-cache/wds/_git_preserved/packed-refs +1 -1
  499. package/lib/bmad-cache/wds/_git_preserved/refs/heads/main +1 -1
  500. package/lib/bmad-cache/wds/_git_preserved/shallow +1 -1
  501. package/lib/bmad-cache/wds/src/module-help.csv +3 -2
  502. package/lib/bmad-cache/wds/src/module.yaml +1 -4
  503. package/lib/bmad-cache/wds/src/workflows/wds-0-project-setup/resources/wds-1-project-brief/templates/platform-requirements.template.yaml +69 -0
  504. package/lib/bmad-cache/wds/src/workflows/wds-0-project-setup/resources/wds-7-design-system/templates/catalog.template.html +363 -0
  505. package/lib/bmad-customize/bmm-qa.customize.yaml +19 -1
  506. package/lib/bmad-extension/module-help.csv +4 -0
  507. package/lib/bmad-extension/skills/bmad-ma-agent-sqa/.gitkeep +0 -0
  508. package/lib/bmad-extension/skills/bmad-ma-agent-sqa/SKILL.md +46 -0
  509. package/lib/bmad-extension/skills/bmad-ma-agent-sqa/bmad-skill-manifest.yaml +11 -0
  510. package/lib/bmad-extension/skills/sqa-audit/.gitkeep +0 -0
  511. package/lib/bmad-extension/skills/sqa-audit/SKILL.md +279 -0
  512. package/lib/bmad-extension/skills/sqa-audit/bmad-skill-manifest.yaml +3 -0
  513. package/lib/bmad-extension/skills/sqa-ieee12207/.gitkeep +0 -0
  514. package/lib/bmad-extension/skills/sqa-ieee12207/SKILL.md +374 -0
  515. package/lib/bmad-extension/skills/sqa-ieee12207/bmad-skill-manifest.yaml +3 -0
  516. package/lib/bmad-extension/skills/sqa-requirements-quality/.gitkeep +0 -0
  517. package/lib/bmad-extension/skills/sqa-requirements-quality/SKILL.md +244 -0
  518. package/lib/bmad-extension/skills/sqa-requirements-quality/bmad-skill-manifest.yaml +3 -0
  519. package/package.json +1 -1
  520. package/test/extension-module-restructure.test.js +29 -6
  521. package/test/migration-validation.test.js +10 -10
  522. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-0de89e0854d5b2b3b3b0c1ee56eee73a739f15e7.idx +0 -0
  523. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-0de89e0854d5b2b3b3b0c1ee56eee73a739f15e7.pack +0 -0
  524. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-0de89e0854d5b2b3b3b0c1ee56eee73a739f15e7.rev +0 -0
  525. package/lib/bmad-cache/bmb/skills/bmad-builder-setup/assets/module-help.csv +0 -6
  526. package/lib/bmad-cache/bmb/skills/bmad-builder-setup/scripts/tests/test-cleanup-legacy.py +0 -429
  527. package/lib/bmad-cache/bmb/skills/bmad-builder-setup/scripts/tests/test-merge-config.py +0 -644
  528. package/lib/bmad-cache/bmb/skills/bmad-builder-setup/scripts/tests/test-merge-help-csv.py +0 -237
  529. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-9d60aae6b09bbea0d0c5e79fdbe96e8f66de84e6.idx +0 -0
  530. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-9d60aae6b09bbea0d0c5e79fdbe96e8f66de84e6.rev +0 -0
  531. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-8099a88fca0ad946a573316a00887a2921ca1712.idx +0 -0
  532. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-8099a88fca0ad946a573316a00887a2921ca1712.rev +0 -0
  533. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-d243f64f83b36190434d68872a69a40870c53030.idx +0 -0
  534. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-d243f64f83b36190434d68872a69a40870c53030.rev +0 -0
  535. package/lib/bmad-cache/tea/_git_preserved/refs/tags/v1.7.3 +0 -1
  536. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-92d32f26e3a97a0786dcea5cb2c24bf90384521c.idx +0 -0
  537. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-92d32f26e3a97a0786dcea5cb2c24bf90384521c.rev +0 -0
  538. /package/lib/bmad-cache/bmb/{skills/bmad-builder-setup → samples/bmad-agent-dream-weaver}/scripts/merge-config.py +0 -0
  539. /package/lib/bmad-cache/bmb/skills/{bmad-builder-setup → bmad-bmb-setup}/assets/module.yaml +0 -0
  540. /package/lib/bmad-cache/bmb/skills/{bmad-builder-setup → bmad-bmb-setup}/scripts/cleanup-legacy.py +0 -0
@@ -0,0 +1,79 @@
1
+ # Story 16.4 Validation Report: Cross-Repo Path Resolution
2
+
3
+ Generated: 2026-03-28
4
+
5
+ ## Audit Summary
6
+
7
+ **Result: PASS** - All BMAD workflows are 100% config-driven. No hardcoded `_bmad-output/` paths found.
8
+
9
+ ## Gap Analysis Table
10
+
11
+ | Workflow | Phase | Path Source | Hardcoded? | Config Key Used | Change Needed |
12
+ |----------|-------|-----------|-----------|----------------|---------------|
13
+ | bmad-product-brief | 1-Analysis | config.yaml | No | planning_artifacts | None |
14
+ | bmad-domain-research | 1-Analysis | config.yaml | No | planning_artifacts | None |
15
+ | bmad-market-research | 1-Analysis | config.yaml | No | planning_artifacts | None |
16
+ | bmad-technical-research | 1-Analysis | config.yaml | No | planning_artifacts | None |
17
+ | bmad-create-prd | 2-Planning | config.yaml | No | planning_artifacts | None |
18
+ | bmad-create-ux-design | 2-Planning | config.yaml | No | planning_artifacts | None |
19
+ | bmad-validate-prd | 2-Planning | config.yaml | No | planning_artifacts | None |
20
+ | bmad-edit-prd | 2-Planning | config.yaml | No | planning_artifacts | None |
21
+ | bmad-create-architecture | 3-Solutioning | config.yaml | No | planning_artifacts | None |
22
+ | bmad-create-epics-and-stories | 3-Solutioning | config.yaml | No | planning_artifacts | None |
23
+ | bmad-check-implementation-readiness | 3-Solutioning | config.yaml | No | planning_artifacts | None |
24
+ | bmad-generate-project-context | 3-Solutioning | config.yaml | No | planning_artifacts | None |
25
+ | bmad-sprint-planning | 4-Implementation | config.yaml | No | implementation_artifacts, planning_artifacts | None |
26
+ | bmad-sprint-status | 4-Implementation | config.yaml | No | implementation_artifacts | None |
27
+ | bmad-create-story | 4-Implementation | config.yaml | No | implementation_artifacts, planning_artifacts | None |
28
+ | bmad-dev-story | 4-Implementation | config.yaml | No | implementation_artifacts | None |
29
+ | bmad-retrospective | 4-Implementation | config.yaml | No | implementation_artifacts | None |
30
+ | bmad-code-review | 4-Implementation | config.yaml | No | planning_artifacts, implementation_artifacts | None |
31
+ | bmad-correct-course | 4-Implementation | config.yaml | No | implementation_artifacts | None |
32
+ | bmad-quick-dev | 4-Implementation | config.yaml | No | implementation_artifacts, planning_artifacts | None |
33
+ | bmad-qa-generate-e2e-tests | 4-Implementation | config.yaml | No | implementation_artifacts | None |
34
+
35
+ ## Config Resolution Chain
36
+
37
+ All workflows follow this identical pattern:
38
+ 1. Load config from `{project-root}/_bmad/bmm/config.yaml`
39
+ 2. Resolve `planning_artifacts` and `implementation_artifacts` from config values
40
+ 3. Use `{planning_artifacts}/...` and `{implementation_artifacts}/...` for all path references
41
+
42
+ **Multi-repo resolution:**
43
+ - `planning_artifacts` = `{knowledgebase_path}/_bmad-output/planning-artifacts`
44
+ - `implementation_artifacts` = `{sprint_management_path}/_bmad-output/implementation-artifacts`
45
+
46
+ **Single-repo resolution (backward compatible):**
47
+ - `planning_artifacts` = `_bmad-output/planning-artifacts`
48
+ - `implementation_artifacts` = `_bmad-output/implementation-artifacts`
49
+
50
+ ## Source-of-Truth Precedence
51
+
52
+ | File | Role | Authority |
53
+ |------|------|-----------|
54
+ | `_bmad/bmm/config.yaml` | Runtime source of truth | PRIMARY |
55
+ | `_bmad-output/project-layout.yaml` | Agent discovery file | INFORMATIONAL |
56
+ | `_bmad-output/project-context.md` | Agent constitutional doc | INSTRUCTIONAL |
57
+
58
+ If these disagree, `_bmad/bmm/config.yaml` wins.
59
+
60
+ ## Backward Compatibility (NFR34)
61
+
62
+ Single-repo mode writes:
63
+ - `knowledgebase_path: "."` and `sprint_management_path: "."`
64
+ - `planning_artifacts: "_bmad-output/planning-artifacts"`
65
+ - `implementation_artifacts: "_bmad-output/implementation-artifacts"`
66
+
67
+ These values are identical to the pre-Epic-16 default behavior. No workflow changes needed.
68
+
69
+ ## Path Accessibility
70
+
71
+ Story 16.1 validates external paths at wizard time:
72
+ - `fs.existsSync()` checks for local paths
73
+ - `fs.statSync().isDirectory()` confirms it's a directory
74
+ - Git clone validates remote paths
75
+ - Non-existent paths generate warnings
76
+
77
+ ## Conclusion
78
+
79
+ **No backlog items needed.** All 21 BMAD workflows already support config-driven path resolution through the `planning_artifacts` and `implementation_artifacts` config keys. Story 16.2's config write (updated during 16.4 validation) now also writes these derived fields, completing the end-to-end resolution chain.
@@ -0,0 +1,239 @@
1
+ # Story 19.1: Knowledge Graph Core Library (`emitToGraph`)
2
+
3
+ Status: ready-for-dev
4
+
5
+ ## Story
6
+
7
+ As a **Chief Architect**,
8
+ I want a shared `emitToGraph()` utility function in the BMAD extension module,
9
+ so that all BMAD skills can emit nodes and edges to the knowledge graph using a single consistent API without duplicating file I/O logic.
10
+
11
+ ## Acceptance Criteria
12
+
13
+ 1. **Given** the function `emitToGraph(projectRoot, emission)` is called with a valid emission payload
14
+ **When** `_bmad-output/knowledge-graph.json` does not yet exist
15
+ **Then** the function creates the file with a valid four-section structure: `meta`, `files`, `nodes`, `edges`
16
+ **And** `meta` contains `schema_version: "1.0"`, `generated_at` (ISO timestamp), `project` (derived from package.json name or directory name), `file_count: 0`, `node_count: 0`, `edge_count: 0`
17
+ **And** `files`, `nodes`, `edges` are initialized as empty object, empty array, empty array respectively
18
+
19
+ 2. **Given** `knowledge-graph.json` already exists with prior content
20
+ **When** `emitToGraph()` is called
21
+ **Then** it reads the existing file, appends new files/nodes/edges, updates counts in `meta`, and writes the result back atomically
22
+ **And** no existing nodes, edges, or file registrations are deleted or overwritten
23
+
24
+ 3. **Given** an emission payload includes a `files` entry with `pointer_type: "relative_path"`
25
+ **When** that file-id does not yet exist in the `files` table
26
+ **Then** the file is registered: `files[file-id] = { pointer, title, pointer_type }`
27
+ **And** if the file-id already exists, registration is skipped (first-write-wins)
28
+
29
+ 4. **Given** an emission payload includes a node with id `file-id#heading-anchor`
30
+ **When** a node with that id already exists in `nodes`
31
+ **Then** the node is not duplicated (title update is allowed; all other fields preserved)
32
+
33
+ 5. **Given** an emission payload includes an edge with `(from, to, type)` triple
34
+ **When** an edge with the same `(from, to, type)` already exists in `edges`
35
+ **Then** the edge is not duplicated (provenance of the first edge is preserved; `created_at`/`agent` fields may be updated)
36
+
37
+ 6. **Given** the function writes the updated graph
38
+ **When** the write operation completes
39
+ **Then** `meta.file_count`, `meta.node_count`, `meta.edge_count` reflect the total counts in the file
40
+ **And** `meta.last_updated` is set to the current ISO-8601 timestamp
41
+
42
+ ## Tasks / Subtasks
43
+
44
+ ### Task 1: Create the `lib/knowledge-graph/` module (AC: 1, 2, 3, 4, 5, 6)
45
+
46
+ - [ ] 1.1 Create directory `lib/knowledge-graph/`
47
+ - [ ] 1.2 Create `lib/knowledge-graph/emit.js` implementing `emitToGraph(projectRoot, emission)`:
48
+ - Initialize graph if `knowledge-graph.json` does not exist: `{ meta: initMeta(projectRoot), files: {}, nodes: [], edges: [] }`
49
+ - Read and parse existing JSON if file exists
50
+ - Apply emission: register files (first-write-wins), add nodes (no duplicate by `id`; title update allowed), add edges (no duplicate by `from+to+type`; created_at/agent update allowed)
51
+ - Update `meta.file_count`, `meta.node_count`, `meta.edge_count`, `meta.last_updated`
52
+ - Write result as `JSON.stringify(graph, null, 2)` to `path.join(projectRoot, '_bmad-output', 'knowledge-graph.json')`
53
+ - Use synchronous I/O: `fs.existsSync`, `fs.readFileSync`, `fs.writeFileSync`
54
+ - [ ] 1.3 Implement `initMeta(projectRoot)` helper:
55
+ - Reads `package.json` name if present at `projectRoot`; falls back to `path.basename(projectRoot)`
56
+ - Returns `{ schema_version: "1.0", project: <name>, generated_at: <ISO>, last_updated: <ISO>, file_count: 0, node_count: 0, edge_count: 0 }`
57
+ - [ ] 1.4 Implement and export `headingToAnchor(heading)` utility function (used by all emitting skills):
58
+ ```javascript
59
+ function headingToAnchor(heading) {
60
+ return heading
61
+ .toLowerCase()
62
+ .replace(/[^\w\s-]/g, '')
63
+ .replace(/\s+/g, '-')
64
+ .replace(/-+/g, '-')
65
+ .trim();
66
+ }
67
+ ```
68
+ - [ ] 1.5 Export both functions: `module.exports = { emitToGraph, headingToAnchor }`
69
+
70
+ ### Task 2: Verify the emission data contract (AC: 1–6)
71
+
72
+ - [ ] 2.1 Manually verify (or write a quick smoke test in `tests/knowledge-graph/smoke.test.js`) that:
73
+ - First call creates a valid JSON file with the four sections
74
+ - Second call with the same payload is idempotent (counts unchanged)
75
+ - Second call with new nodes/edges appends correctly
76
+ - Counts in `meta` always match actual array/object sizes
77
+
78
+ ### Task 3: Verify module is importable by other skills (AC: none — integration readiness)
79
+
80
+ - [ ] 3.1 Confirm the module path `../../lib/knowledge-graph/emit.js` (relative from a skill like `lib/bmad-extension/skills/open-graph/`) resolves correctly
81
+ - [ ] 3.2 Confirm no circular dependencies are introduced
82
+
83
+ ## Dev Notes
84
+
85
+ ### CRITICAL: Two Deployment Pipelines — Where This Module Lives
86
+
87
+ This story creates a **shared utility module** in `lib/knowledge-graph/`, NOT a skill. It is NOT deployed by the installer and NOT a BMAD extension skill. It is a Node.js module imported by other skills at runtime.
88
+
89
+ **Module location:** `lib/knowledge-graph/emit.js`
90
+ **Imported by:** All 7 emitting skills (Stories 19.2–19.4 wire them in)
91
+
92
+ ### Graph File Location
93
+
94
+ Always: `path.join(projectRoot, '_bmad-output', 'knowledge-graph.json')`
95
+
96
+ The `projectRoot` parameter is passed by each skill. Skills can derive `projectRoot` from their own `__dirname` by traversing up to the repo root, or from the BMAD config `_bmad/bmm/config.yaml`.
97
+
98
+ ### JSON Schema — Four-Section Structure
99
+
100
+ ```json
101
+ {
102
+ "meta": {
103
+ "schema_version": "1.0",
104
+ "project": "<name>",
105
+ "generated_at": "<ISO>",
106
+ "last_updated": "<ISO>",
107
+ "file_count": 4,
108
+ "node_count": 127,
109
+ "edge_count": 89
110
+ },
111
+ "files": {
112
+ "prd": {
113
+ "pointer": "_bmad-output/planning-artifacts/prd.md",
114
+ "title": "Product Requirements Document",
115
+ "pointer_type": "relative_path"
116
+ }
117
+ },
118
+ "nodes": [
119
+ {
120
+ "id": "prd#functional-requirements",
121
+ "file": "prd",
122
+ "anchor": "functional-requirements",
123
+ "title": "Functional Requirements",
124
+ "type": "prd"
125
+ }
126
+ ],
127
+ "edges": [
128
+ {
129
+ "from": "arch#decision-p3-1-bmad-knowledge-graph",
130
+ "to": "prd#functional-requirements",
131
+ "type": "implements",
132
+ "label": "implements knowledge graph data model requirement",
133
+ "created_by": "Alon",
134
+ "agent": "claude-code",
135
+ "created_at": "2026-04-07T10:00:00Z"
136
+ }
137
+ ]
138
+ }
139
+ ```
140
+
141
+ ### Heading Anchor Algorithm
142
+
143
+ GitHub slug algorithm (same as VSCode internal link resolution):
144
+ ```javascript
145
+ heading.toLowerCase().replace(/[^\w\s-]/g, '').replace(/\s+/g, '-').replace(/-+/g, '-').trim()
146
+ ```
147
+ Example: `"Decision P3-1: BMAD Knowledge Graph"` → `"decision-p3-1-bmad-knowledge-graph"`
148
+
149
+ ### emitToGraph() Pseudocode (Architecture-Authoritative)
150
+
151
+ ```javascript
152
+ async function emitToGraph(projectRoot, emission) {
153
+ const graphPath = path.join(projectRoot, '_bmad-output', 'knowledge-graph.json');
154
+ const graph = fs.existsSync(graphPath)
155
+ ? JSON.parse(fs.readFileSync(graphPath, 'utf8'))
156
+ : { meta: initMeta(projectRoot), files: {}, nodes: [], edges: [] };
157
+
158
+ // Register files (first-write-wins for pointer_type; pointer/title always update)
159
+ for (const [fileId, fileEntry] of Object.entries(emission.files || {})) {
160
+ if (!graph.files[fileId]) graph.files[fileId] = fileEntry;
161
+ else { graph.files[fileId].pointer = fileEntry.pointer; graph.files[fileId].title = fileEntry.title; }
162
+ }
163
+ // Add nodes (no duplicates by id; title update allowed)
164
+ for (const node of (emission.nodes || [])) {
165
+ const existing = graph.nodes.find(n => n.id === node.id);
166
+ if (!existing) graph.nodes.push(node);
167
+ else existing.title = node.title;
168
+ }
169
+ // Add edges (no duplicates by from+to+type; created_at/agent update allowed)
170
+ for (const edge of (emission.edges || [])) {
171
+ const existing = graph.edges.find(e => e.from === edge.from && e.to === edge.to && e.type === edge.type);
172
+ if (!existing) graph.edges.push(edge);
173
+ else { existing.created_at = edge.created_at; existing.agent = edge.agent; }
174
+ }
175
+ // Update counts
176
+ graph.meta.file_count = Object.keys(graph.files).length;
177
+ graph.meta.node_count = graph.nodes.length;
178
+ graph.meta.edge_count = graph.edges.length;
179
+ graph.meta.last_updated = new Date().toISOString();
180
+
181
+ fs.writeFileSync(graphPath, JSON.stringify(graph, null, 2), 'utf8');
182
+ }
183
+ ```
184
+
185
+ ### I/O Choice: Synchronous
186
+
187
+ Use synchronous `fs` APIs (`readFileSync`, `writeFileSync`, `existsSync`). Graph updates occur as a post-artifact step — not in any hot path. Synchronous I/O is simpler and avoids async coordination between concurrent skill calls (not a concern since skills run sequentially under a single agent session).
188
+
189
+ ### Edge Type Vocabulary
190
+
191
+ | Type | Usage |
192
+ |------|-------|
193
+ | `implements` | arch decision → PRD requirement |
194
+ | `derives-from` | epic → PRD requirement |
195
+ | `traces-to` | story → epic |
196
+ | `informed-by` | any cross-document influence (non-hierarchical) |
197
+ | `validates` | review/validation report → artifact |
198
+ | `refines` | dev-story implementation notes → story spec |
199
+
200
+ ### LLM-Writability Contract (NFR39)
201
+
202
+ The flat structure is deliberately copy-pattern-friendly. A model with no prior schema knowledge can correctly extend the graph by observing the first entry in `files`, `nodes`, and `edges` and copying the pattern. Do NOT add nesting beyond 2 levels. Do NOT introduce computed or derived fields inside the JSON.
203
+
204
+ ### File Structure Reference
205
+
206
+ ```
207
+ lib/
208
+ └── knowledge-graph/
209
+ └── emit.js ← NEW: emitToGraph() + headingToAnchor() exports
210
+ ```
211
+
212
+ ### Dependencies
213
+
214
+ No new npm packages required. Uses only Node.js built-ins: `fs`, `path`.
215
+
216
+ ### Project Structure Notes
217
+
218
+ - `lib/knowledge-graph/` is a new directory under `lib/` alongside `lib/bmad-extension/`, `lib/installer.js`, etc.
219
+ - This module is NOT registered in `module-help.csv` — it is a utility, not a skill.
220
+ - No `skill.json`, no `SKILL.md` — plain Node.js module.
221
+
222
+ ### References
223
+
224
+ - Architecture Decision P3-1: `_bmad-output/planning-artifacts/architecture.md#decision-p3-1-bmad-knowledge-graph`
225
+ - FRs: FR141–FR148 — node/edge/file/meta schema definitions
226
+ - NFR39 (LLM-writability), NFR40 (additive-only)
227
+ - Downstream stories that wire in emission: 19.2, 19.3, 19.4 (require this module to exist first)
228
+
229
+ ## Dev Agent Record
230
+
231
+ ### Agent Model Used
232
+
233
+ _to be filled by dev agent_
234
+
235
+ ### Debug Log References
236
+
237
+ ### Completion Notes List
238
+
239
+ ### File List
@@ -0,0 +1,171 @@
1
+ # Story 19.2: Graph Emission — `create-prd` (Graph Seed)
2
+
3
+ Status: ready-for-dev
4
+
5
+ ## Story
6
+
7
+ As a **Product Manager**,
8
+ I want the `create-prd` skill to automatically seed the knowledge graph when a PRD is generated,
9
+ so that the PRD becomes the root of the project knowledge graph without any user action.
10
+
11
+ ## Acceptance Criteria
12
+
13
+ 1. **Given** the `create-prd` skill completes generation of `_bmad-output/planning-artifacts/prd.md`
14
+ **When** the artifact write step finishes
15
+ **Then** `emitToGraph()` is called silently as the final step — no user prompt, no output message
16
+ **And** the PRD file is registered in the `files` table as `{ pointer: "_bmad-output/planning-artifacts/prd.md", title: "Product Requirements Document", pointer_type: "relative_path" }` with file-id `prd`
17
+
18
+ 2. **Given** the PRD contains top-level `##` headings (e.g., `## Executive Summary`, `## Functional Requirements`)
19
+ **When** emission runs
20
+ **Then** one node is emitted per `##` heading: `{ id: "prd#<anchor>", file: "prd", anchor: "<anchor>", title: "<heading text>", type: "prd" }`
21
+
22
+ 3. **Given** the graph is seeded from a new PRD
23
+ **When** the `knowledge-graph.json` file is inspected
24
+ **Then** it contains no edges (PRD is the root — it does not reference other documents yet)
25
+ **And** `meta.node_count` equals the number of `##` headings in the PRD
26
+
27
+ 4. **Given** `create-prd` runs on a project where `knowledge-graph.json` already exists
28
+ **When** emission runs
29
+ **Then** only new headings (not yet present as nodes) are added — re-runs are idempotent
30
+
31
+ ## Tasks / Subtasks
32
+
33
+ ### Task 1: Add emission call to `create-prd` workflow (AC: 1, 2, 3, 4)
34
+
35
+ **IMPORTANT:** The `create-prd` skill exists in TWO locations — IDE skill and BMAD extension skill (see Dev Notes). Both must be updated.
36
+
37
+ - [ ] 1.1 Locate the IDE skill source: `skills/bmad-create-prd/SKILL.md`
38
+ - [ ] 1.2 Locate the BMAD extension skill source: `lib/bmad-extension/skills/bmad-create-prd/SKILL.md`
39
+ - [ ] 1.3 In both SKILL.md files, add a final step after the artifact write:
40
+ - **Step: Silent graph emission** (no user output)
41
+ - Scan the generated PRD markdown for `## ` lines (level-2 headings only)
42
+ - For each heading, derive anchor using `headingToAnchor()` from `lib/knowledge-graph/emit.js`
43
+ - Build emission payload:
44
+ ```javascript
45
+ const emission = {
46
+ files: {
47
+ prd: {
48
+ pointer: "_bmad-output/planning-artifacts/prd.md",
49
+ title: "Product Requirements Document",
50
+ pointer_type: "relative_path"
51
+ }
52
+ },
53
+ nodes: headings.map(h => ({
54
+ id: `prd#${headingToAnchor(h)}`,
55
+ file: "prd",
56
+ anchor: headingToAnchor(h),
57
+ title: h,
58
+ type: "prd"
59
+ })),
60
+ edges: [] // PRD seeding emits no edges — it is the root
61
+ };
62
+ ```
63
+ - Call `emitToGraph(projectRoot, emission)` silently (no output to user)
64
+ - [ ] 1.4 Determine `projectRoot` in each skill context:
65
+ - For BMAD extension skill: derive from `_bmad/bmm/config.yaml` path or `process.cwd()`
66
+ - For IDE skill: use `process.cwd()` (the project root where the skill is invoked)
67
+
68
+ ### Task 2: Verify idempotency (AC: 4)
69
+
70
+ - [ ] 2.1 After implementing, manually verify that invoking `create-prd` twice on the same project results in the same node count (no duplicates)
71
+ - [ ] 2.2 Confirm `meta.node_count` equals the actual number of nodes in the `nodes` array
72
+
73
+ ### Task 3: Verify emission is truly silent (AC: 1)
74
+
75
+ - [ ] 3.1 Confirm no `console.log`, no output to user, no prompt is added for the emission step
76
+ - [ ] 3.2 Confirm error from `emitToGraph()` (e.g., write permission failure) does not propagate to the user as a skill failure — log to stderr at most, do not abort the skill
77
+
78
+ ## Dev Notes
79
+
80
+ ### CRITICAL: Two Deployment Pipelines
81
+
82
+ The `create-prd` skill (like all BMAD skills in this project) exists in two locations:
83
+ 1. **IDE skill source:** `skills/bmad-create-prd/SKILL.md` — deployed by `lib/installer.js` to all IDE agent directories
84
+ 2. **BMAD extension skill source:** `lib/bmad-extension/skills/bmad-create-prd/SKILL.md` — deployed by `lib/bmad.js` to `_bmad/extensions/ma-agents-skills/`
85
+
86
+ **Both files must be updated.** Do NOT edit installed copies at `.claude/skills/bmad-create-prd/` or `_bmad/extensions/ma-agents-skills/skills/bmad-create-prd/`.
87
+
88
+ ### Prerequisite: Story 19.1 Must Be Complete
89
+
90
+ This story requires `lib/knowledge-graph/emit.js` to exist (created in Story 19.1). Do NOT begin implementation until Story 19.1 is done.
91
+
92
+ ### Heading Extraction — Level-2 Only
93
+
94
+ Extract only `## ` (two hashes + space) headings from the PRD. Level-3+ headings (`###`, `####`) create noise without adding navigation value. The regex pattern:
95
+ ```javascript
96
+ const headings = content.match(/^## (.+)$/gm)?.map(line => line.replace(/^## /, '')) || [];
97
+ ```
98
+
99
+ ### PRD is the Only Emission With Zero Edges
100
+
101
+ This is the only skill in the 7-skill emission chain that emits zero edges. All other skills emit edges pointing back to PRD nodes. The knowledge graph is a directed graph rooted at the PRD.
102
+
103
+ ### Emission Payload Shape
104
+
105
+ ```javascript
106
+ {
107
+ files: {
108
+ "prd": { pointer: "_bmad-output/planning-artifacts/prd.md", title: "Product Requirements Document", pointer_type: "relative_path" }
109
+ },
110
+ nodes: [
111
+ { id: "prd#executive-summary", file: "prd", anchor: "executive-summary", title: "Executive Summary", type: "prd" },
112
+ { id: "prd#functional-requirements", file: "prd", anchor: "functional-requirements", title: "Functional Requirements", type: "prd" }
113
+ // ... one per ## heading
114
+ ],
115
+ edges: []
116
+ }
117
+ ```
118
+
119
+ ### Silent Emission Contract
120
+
121
+ The emission step MUST be silent:
122
+ - No output to user (no `console.log`, no markdown output in SKILL.md steps)
123
+ - Emission failures (e.g., disk write error) must NOT abort the skill — the PRD is already written; a graph update failure is non-critical
124
+ - Wrap the `emitToGraph()` call in try/catch; log to stderr on failure, do not re-throw
125
+
126
+ ### Idempotency
127
+
128
+ The `emitToGraph()` function from Story 19.1 already handles idempotency (no duplicate nodes by id). However, the skill must also ensure it does not re-extract headings if the PRD content is the same. Since `emitToGraph` is idempotent, calling it twice with the same payload is always safe.
129
+
130
+ ### File Structure Reference
131
+
132
+ ```
133
+ skills/
134
+ └── bmad-create-prd/
135
+ └── SKILL.md ← MODIFY: add emission step at end
136
+
137
+ lib/
138
+ └── bmad-extension/
139
+ └── skills/
140
+ └── bmad-create-prd/
141
+ └── SKILL.md ← MODIFY: add emission step at end
142
+
143
+ lib/
144
+ └── knowledge-graph/
145
+ └── emit.js ← IMPORT from here (Story 19.1 output)
146
+ ```
147
+
148
+ ### Project Structure Notes
149
+
150
+ - No new files are created by this story — only modifications to existing SKILL.md files.
151
+ - The `lib/knowledge-graph/emit.js` module (Story 19.1) must be importable from both SKILL.md contexts.
152
+ - For BMAD extension skills (SKILL.md workflow files): the emission call is expressed as a workflow instruction in markdown, not literal JavaScript. The dev agent executes the instruction. The `lib/knowledge-graph/emit.js` code is what actually runs when a JavaScript execution context is available. In pure markdown SKILL.md context (no JS runtime), document the emission payload and call as a clear instruction.
153
+
154
+ ### References
155
+
156
+ - Story 19.1: `_bmad-output/implementation-artifacts/19-1-knowledge-graph-core-library.md` — `emitToGraph()` implementation
157
+ - Architecture Decision P3-1: `_bmad-output/planning-artifacts/architecture.md#decision-p3-1-bmad-knowledge-graph`
158
+ - Epics source: `_bmad-output/planning-artifacts/epics.md#story-192-graph-emission--create-prd-graph-seed`
159
+ - FRs: FR149 (automatic emission), FR150 (file registration), FR152 (additive-only, no duplicates)
160
+
161
+ ## Dev Agent Record
162
+
163
+ ### Agent Model Used
164
+
165
+ _to be filled by dev agent_
166
+
167
+ ### Debug Log References
168
+
169
+ ### Completion Notes List
170
+
171
+ ### File List
@@ -0,0 +1,179 @@
1
+ # Story 19.3: Graph Emission — `create-architecture` and `create-epics-and-stories`
2
+
3
+ Status: ready-for-dev
4
+
5
+ ## Story
6
+
7
+ As a **Chief Architect** and **Product Manager**,
8
+ I want the `create-architecture` and `create-epics-and-stories` skills to emit traceability edges to the knowledge graph automatically,
9
+ so that every architectural decision and every epic traces back to the PRD sections that motivated it.
10
+
11
+ ## Acceptance Criteria
12
+
13
+ 1. **Given** the `create-architecture` skill completes generation of `_bmad-output/planning-artifacts/architecture.md`
14
+ **When** emission runs
15
+ **Then** the architecture file is registered as file-id `arch` with `pointer_type: "relative_path"`
16
+ **And** one node is emitted per `##` heading in architecture.md (type: `architecture`)
17
+ **And** for each architecture decision section (headings matching `## Decision` or `## P[0-9]` patterns), an `implements` edge is emitted: `{ from: "arch#<decision-slug>", to: "prd#relevant-fr-section", type: "implements", label: "implements PRD requirement", created_by: <user>, agent: <agent-id>, created_at: <timestamp> }`
18
+
19
+ 2. **Given** the `create-architecture` skill is run when PRD nodes do not yet exist in the graph
20
+ **When** an edge references a PRD node that is not yet in `nodes`
21
+ **Then** a stub node is emitted for the referenced PRD heading so the edge is not orphaned
22
+ **And** the stub node carries `type: "prd"` and the correct `file` and `anchor` fields
23
+
24
+ 3. **Given** the `create-epics-and-stories` skill completes updating `_bmad-output/planning-artifacts/epics.md`
25
+ **When** emission runs
26
+ **Then** the epics file is registered as file-id `epics` with `pointer_type: "relative_path"`
27
+ **And** one node is emitted per epic heading (type: `epic`) — headings matching `## Epic [0-9]+:` pattern
28
+ **And** for each epic, a `derives-from` edge is emitted to the PRD Functional Requirements node: `{ from: "epics#epic-N-name", to: "prd#functional-requirements", type: "derives-from", ... }`
29
+ **And** where an epic was informed by an architecture decision, an `informed-by` edge is also emitted: `{ from: "epics#epic-N-name", to: "arch#<decision-slug>", type: "informed-by", ... }`
30
+
31
+ 4. **Given** emission runs for `create-architecture` or `create-epics-and-stories`
32
+ **When** the same skill runs a second time (re-run)
33
+ **Then** all emissions are idempotent — no duplicate nodes or edges are added
34
+
35
+ ## Tasks / Subtasks
36
+
37
+ ### Task 1: Add emission to `create-architecture` (AC: 1, 2, 4)
38
+
39
+ Both the IDE skill and BMAD extension skill must be updated (see Dev Notes on two pipelines).
40
+
41
+ - [ ] 1.1 Locate: `skills/bmad-create-architecture/SKILL.md` and `lib/bmad-extension/skills/bmad-create-architecture/SKILL.md`
42
+ - [ ] 1.2 Add final silent step after artifact write:
43
+ - Scan `architecture.md` for `## ` headings; derive anchors with `headingToAnchor()`
44
+ - Identify decision headings: match `^## Decision` or `^## P\d+-\d+` (e.g., `## P3-1: BMAD Knowledge Graph`)
45
+ - For each decision heading, infer the target PRD FR section. Strategy:
46
+ - If the decision section body contains explicit FR references (e.g., `FR141`), map to `prd#functional-requirements` (the broad FR section as the canonical target)
47
+ - If no explicit FR found, still emit to `prd#functional-requirements` as default
48
+ - Build emission: all architecture nodes + `implements` edges for decision nodes + stub PRD nodes if PRD nodes are absent
49
+ - [ ] 1.3 Stub node format (when PRD node does not yet exist):
50
+ ```javascript
51
+ { id: "prd#functional-requirements", file: "prd", anchor: "functional-requirements", title: "Functional Requirements", type: "prd" }
52
+ ```
53
+ - [ ] 1.4 Edge format for architecture decisions:
54
+ ```javascript
55
+ {
56
+ from: "arch#<decision-slug>",
57
+ to: "prd#functional-requirements",
58
+ type: "implements",
59
+ label: "implements PRD requirement",
60
+ created_by: "<user from config>",
61
+ agent: "bmad-create-architecture",
62
+ created_at: new Date().toISOString()
63
+ }
64
+ ```
65
+
66
+ ### Task 2: Add emission to `create-epics-and-stories` (AC: 3, 4)
67
+
68
+ Both the IDE skill and BMAD extension skill must be updated.
69
+
70
+ - [ ] 2.1 Locate: `skills/bmad-create-epics-and-stories/SKILL.md` and `lib/bmad-extension/skills/bmad-create-epics-and-stories/SKILL.md`
71
+ - [ ] 2.2 Add final silent step after artifact write:
72
+ - Scan `epics.md` for epic headings matching `^## Epic [0-9]+:` pattern
73
+ - For each epic heading, derive anchor; emit node with `type: "epic"`
74
+ - Emit `derives-from` edge to `prd#functional-requirements` for each epic
75
+ - For epics that reference architecture decisions (scan epic body for `Decision P\d+-\d+` or `arch#` patterns), emit `informed-by` edges to the relevant `arch#<decision-slug>` node
76
+ - [ ] 2.3 Edge formats:
77
+ ```javascript
78
+ // derives-from edge
79
+ { from: "epics#<epic-slug>", to: "prd#functional-requirements", type: "derives-from", label: "derives from PRD requirements", created_by: "<user>", agent: "bmad-create-epics-and-stories", created_at: <timestamp> }
80
+ // informed-by edge (only when architecture decision referenced in epic body)
81
+ { from: "epics#<epic-slug>", to: "arch#<decision-slug>", type: "informed-by", label: "informed by architecture decision", created_by: "<user>", agent: "bmad-create-epics-and-stories", created_at: <timestamp> }
82
+ ```
83
+
84
+ ### Task 3: Verify idempotency and stub node correctness (AC: 2, 4)
85
+
86
+ - [ ] 3.1 Run emission twice; confirm node/edge counts are identical on both runs
87
+ - [ ] 3.2 Verify stub PRD nodes created by this skill are accepted (not duplicated) when Story 19.2 later emits the real PRD nodes (they share the same `id`; `emitToGraph` deduplicates by id with title update allowed)
88
+
89
+ ## Dev Notes
90
+
91
+ ### CRITICAL: Two Deployment Pipelines
92
+
93
+ Same constraint as Story 19.2. For each skill, update BOTH:
94
+ 1. `skills/<skill-name>/SKILL.md` — IDE source
95
+ 2. `lib/bmad-extension/skills/<skill-name>/SKILL.md` — BMAD extension source
96
+
97
+ Do NOT edit installed copies.
98
+
99
+ ### Prerequisite: Story 19.1 Must Be Complete
100
+
101
+ Requires `lib/knowledge-graph/emit.js`. Do not begin until Story 19.1 is done. Stories 19.2, 19.3, and 19.4 can proceed in parallel once 19.1 is done.
102
+
103
+ ### Decision Heading Detection
104
+
105
+ The architecture document uses two patterns for decision headings:
106
+ - `## Decision P3-1: BMAD Knowledge Graph` — matches `^## .*P\d+-\d+` or `^## Decision`
107
+ - Both patterns should be detected for forward compatibility
108
+
109
+ Current architecture decisions in the file:
110
+ - `P2-1` through `P2-11`, `P3-1` — use pattern `## Decision P[0-9]+-[0-9]+:` or abbreviated `## P[0-9]+-[0-9]+:`
111
+
112
+ Scan for both `^## Decision` and `^## P\d` to be safe.
113
+
114
+ ### Epic Heading Detection
115
+
116
+ The epics file uses: `^## Epic [0-9]+:` (e.g., `## Epic 19: BMAD Knowledge Graph (Phase 3)`)
117
+
118
+ For each matched heading, `headingToAnchor()` produces the node anchor:
119
+ - `"Epic 19: BMAD Knowledge Graph (Phase 3)"` → `"epic-19-bmad-knowledge-graph-phase-3"`
120
+
121
+ ### Stub Nodes for Orphan Edge Prevention (AC: 2)
122
+
123
+ When an `implements` or `informed-by` edge references a node that does not yet exist (e.g., PRD not yet emitted, or architecture not yet emitted), the emitting skill adds a stub node. The `emitToGraph()` function from Story 19.1 handles this naturally — just include the stub in the `nodes` array of the emission payload. If the real node is later emitted by its own skill, the `title` field is updated (Story 19.1 allows title updates on existing nodes).
124
+
125
+ ### `informed-by` Edge — The Non-Hierarchical Edge
126
+
127
+ `informed-by` is the key non-hierarchical edge type. It records influence without asserting derivation or implementation. An epic can be simultaneously `derives-from` a PRD requirement AND `informed-by` an architecture decision — both edges are valid and coexist.
128
+
129
+ Detection strategy for `informed-by` edges in epics:
130
+ - Scan epic section body (from heading to next `##` heading) for architecture decision references
131
+ - Patterns to match: `Decision P\d+-\d+`, `arch#`, or explicit architecture decision names
132
+
133
+ ### User Identity for Provenance
134
+
135
+ Read `created_by` from BMAD config `_bmad/bmm/config.yaml` field `user_name`, or fall back to `"unknown"`. The `agent` field is a static string identifying the skill: `"bmad-create-architecture"` or `"bmad-create-epics-and-stories"`.
136
+
137
+ ### File Structure Reference
138
+
139
+ ```
140
+ skills/
141
+ ├── bmad-create-architecture/
142
+ │ └── SKILL.md ← MODIFY
143
+ └── bmad-create-epics-and-stories/
144
+ └── SKILL.md ← MODIFY
145
+
146
+ lib/bmad-extension/skills/
147
+ ├── bmad-create-architecture/
148
+ │ └── SKILL.md ← MODIFY
149
+ └── bmad-create-epics-and-stories/
150
+ └── SKILL.md ← MODIFY
151
+ ```
152
+
153
+ No new files are created by this story.
154
+
155
+ ### Project Structure Notes
156
+
157
+ - This story touches 4 SKILL.md files (2 skills × 2 pipelines).
158
+ - No new skills, no new directories, no module-help.csv changes.
159
+ - Emission logic added as a silent final step in each skill's workflow.
160
+
161
+ ### References
162
+
163
+ - Story 19.1: `_bmad-output/implementation-artifacts/19-1-knowledge-graph-core-library.md`
164
+ - Architecture Decision P3-1: `_bmad-output/planning-artifacts/architecture.md#decision-p3-1-bmad-knowledge-graph`
165
+ - Skill emission table in architecture: architecture.md section "Skills that emit (and what they emit)"
166
+ - FRs: FR149, FR150, FR151, FR152
167
+ - Edge type vocabulary: `implements`, `derives-from`, `informed-by`
168
+
169
+ ## Dev Agent Record
170
+
171
+ ### Agent Model Used
172
+
173
+ _to be filled by dev agent_
174
+
175
+ ### Debug Log References
176
+
177
+ ### Completion Notes List
178
+
179
+ ### File List