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