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
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
stepsCompleted: [1, 2, 3, 4, 'phase2-step-01', 'phase2-step-02', 'phase2-step-03', 'phase2-step-04']
|
|
3
3
|
workflowStatus: 'complete'
|
|
4
4
|
completedDate: '2026-03-08'
|
|
5
|
-
lastEdited: '2026-04-
|
|
5
|
+
lastEdited: '2026-04-07'
|
|
6
|
+
phase3EditHistory:
|
|
7
|
+
- date: '2026-04-07'
|
|
8
|
+
changes: 'Added Epic 19: BMAD Knowledge Graph (Phase 3). 7 stories (19.1-19.7): core emitToGraph() library, graph emission for 7 BMAD skills (create-prd, create-architecture, create-epics-and-stories, create-story, validate-prd, dev-story, bmad-sprint-planning), open-graph skill with VSCode/browser detection, and interactive HTML renderer. Added FR141-FR157 to Requirements Inventory and FR Coverage Map. Added NFR38-NFR41. Updated Epic List and Development Execution Order. Fixed duplicate FR141 entry in Epic 17 coverage map (was remove-from-sprint, correctly FR129). Updated Roo Code Epic 18 proposed FRs to FR156-FR159 to avoid conflict with new Knowledge Graph FRs.'
|
|
6
9
|
phase2EditHistory:
|
|
7
10
|
- date: '2026-04-03'
|
|
8
11
|
changes: 'Major rework of Epic 17: Sprint Management Model Rework. Replaced 3-file model (backlog.yaml, sprints/sprint-N.yaml, sprint-status.yaml) with unified single sprint-status.yaml approach. Stories rewritten: 17.9 (unified schema), 17.10 (generate-backlog rework), 17.11 (add-to-sprint movement semantics), 17.12 (remove-from-sprint movement semantics), 17.13 (sprint-status-view single-source read), 17.14 (cleanup-done single-source), 17.15 (bmad-sprint-planning bootstrap), 17.16 (add-sprint section-based), 17.17 (modify-sprint section-based), 17.18 (bmad-dev-story cross-section update), 17.19 (story-status-lookup cross-section search), 17.20 (bmad-sprint-status structured sections), 17.21 (close-sprint new skill), 17.22 (Jira adapter pattern), 17.23 (migration/deprecation of old files). Added FR133-FR140. Updated FR Coverage Map. Updated Epic 17 description in Epic List. Updated Development Execution Order.'
|
|
@@ -168,6 +171,27 @@ This document provides the complete epic and story breakdown for agents, decompo
|
|
|
168
171
|
- FR139: The unified schema replaces the previous three-file model (`backlog.yaml`, `sprints/sprint-N.yaml`, `sprint-status.yaml`) — deprecated files are migrated or removed
|
|
169
172
|
- FR140: All 12 sprint-related skills are reworked to operate against the single unified file
|
|
170
173
|
|
|
174
|
+
### Functional Requirements (Phase 3 — added 2026-04-07)
|
|
175
|
+
|
|
176
|
+
#### BMAD Knowledge Graph (FR141-FR157)
|
|
177
|
+
- FR141: Each node in the knowledge graph is identified by `file-id#heading-anchor` where `file-id` is a short stable key that resolves to a file pointer via the `files` table
|
|
178
|
+
- FR142: Each directed edge carries full provenance: `from` (node id), `to` (node id), `type` (edge type), `label` (human description), `created_by` (user), `agent` (AI agent identity), `created_at` (ISO timestamp); edge types include `implements`, `derives-from`, `validates`, `traces-to`, `refines`, `informed-by`
|
|
179
|
+
- FR143: The graph maintains a bidirectional index — for each node, the system can resolve both inbound (nodes that reference it) and outbound (nodes it references) edges in O(1) time
|
|
180
|
+
- FR144: The knowledge graph JSON file uses a flat four-section structure: `meta` (file statistics), `files` (file registry), `nodes` (node list), `edges` (edge list) — maximum two levels of nesting throughout
|
|
181
|
+
- FR145: The `files` section maps each `file-id` to an object with `pointer` (the file reference), `title` (display name), and `pointer_type` (one of: `relative_path`, `absolute_path`, `url`) — enabling nodes in the same graph to address local files, files in other repos, and external URLs (Confluence, Jira, etc.) uniformly
|
|
182
|
+
- FR146: Each node object carries: `id` (`file-id#anchor`), `file` (the `file-id` from the files table), `anchor` (the heading slug), `title` (human-readable heading text), `type` (document type: `prd`, `architecture`, `epic`, `story`, `decision`, `validation`)
|
|
183
|
+
- FR147: Each edge object carries: `from`, `to`, `type`, `label`, `created_by`, `agent`, `created_at` — all fields required, no optional fields
|
|
184
|
+
- FR148: The `meta` section carries: `schema_version`, `generated_at`, `project`, `file_count`, `node_count`, `edge_count`
|
|
185
|
+
- FR149: BMAD skills emit nodes and edges automatically on artifact completion — no user prompt, no opt-in — as a silent post-artifact step
|
|
186
|
+
- FR150: When emitting, if a file is not yet in the `files` table, it is registered automatically; external URLs (e.g., Confluence page) are registered with `pointer_type: url`
|
|
187
|
+
- FR151: Any node may derive from multiple source documents simultaneously — a story AC can carry `informed-by` edges from both the architecture and a UX design doc, not just from its parent epic
|
|
188
|
+
- FR152: The emit operation is additive-only: new nodes and edges are appended; existing nodes and edges are never deleted or overwritten; duplicate detection uses the full `(from, to, type)` triple for edges and `id` for nodes
|
|
189
|
+
- FR153: The `open-graph` skill detects the execution environment (VSCode vs. terminal) and opens `knowledge-graph.html` via the appropriate mechanism — VSCode webview API when inside VSCode, `open`/`start` shell command otherwise
|
|
190
|
+
- FR154: The visualization renders nodes as color-coded circles by document type and supports click-to-navigate (opens the source document at the specific heading anchor in the IDE or browser)
|
|
191
|
+
- FR155: Hovering over an edge displays a tooltip with the full provenance record: type, label, created_by, agent, created_at
|
|
192
|
+
- FR156: The visualization provides interactive filtering by node type and edge type, and highlights the immediate neighbors of any selected node
|
|
193
|
+
- FR157: The visualization has no external CDN, font, or script dependencies — all rendering code and graph data are self-contained in a single HTML file suitable for air-gapped environments
|
|
194
|
+
|
|
171
195
|
### NonFunctional Requirements
|
|
172
196
|
|
|
173
197
|
- NFR1: Skills must not transmit project data externally — all content is static instruction delivery, not data collection
|
|
@@ -207,6 +231,13 @@ This document provides the complete epic and story breakdown for agents, decompo
|
|
|
207
231
|
- NFR36: project-layout.yaml must be deterministic
|
|
208
232
|
- NFR37: All BMAD workflows must resolve paths through config, no hardcoded `_bmad-output/`
|
|
209
233
|
|
|
234
|
+
### NonFunctional Requirements (Phase 3 — added 2026-04-07)
|
|
235
|
+
|
|
236
|
+
- NFR38: The `open-graph` skill must render the knowledge graph visualization within 3 seconds for graphs up to 500 nodes and 1000 edges, measured from skill invocation to first interactive frame
|
|
237
|
+
- NFR39: The knowledge graph JSON format must be writable by any LLM without external schema — structure is self-describing; an LLM can add a new node or edge by copying an existing pattern with no external reference
|
|
238
|
+
- NFR40: The `emitToGraph()` operation must never delete or overwrite existing graph data — additive-only semantics are enforced at the function level, verified by the absence of delete/overwrite operations during emission
|
|
239
|
+
- NFR41: The knowledge graph visualization (`knowledge-graph.html`) must function fully without network access — verified by disabling network access and confirming the graph renders identically
|
|
240
|
+
|
|
210
241
|
### Additional Requirements
|
|
211
242
|
|
|
212
243
|
- Testing framework needs formalization — Node.js built-in test runner recommended per architecture
|
|
@@ -281,7 +312,7 @@ This document provides the complete epic and story breakdown for agents, decompo
|
|
|
281
312
|
| FR66 (rework) | Epic 17 | Sprint capacity with first-class sprint entity |
|
|
282
313
|
| FR67 (rework) | Epic 17 | Multi-criteria prioritization |
|
|
283
314
|
| FR128 | Epic 17 | Bug as story type in backlog |
|
|
284
|
-
| FR129 | Epic 17 | Move items from sprint back to backlog |
|
|
315
|
+
| FR129 | Epic 17 | Move items from sprint back to backlog (remove-from-sprint skill) |
|
|
285
316
|
| FR130 | Epic 17 | Done items removed from sprint status file |
|
|
286
317
|
| FR131 | Epic 17 | Done story files moved to done/ subfolder |
|
|
287
318
|
| FR132 | Epic 17 | Sprints as first-class YAML entities |
|
|
@@ -293,11 +324,27 @@ This document provides the complete epic and story breakdown for agents, decompo
|
|
|
293
324
|
| FR138 | Epic 17 / Epic 14 | Jira adapter pattern (tracking_system switch) |
|
|
294
325
|
| FR139 | Epic 17 | Migration/removal of deprecated 3-file model |
|
|
295
326
|
| FR140 | Epic 17 | All 12 sprint skills reworked for unified file |
|
|
296
|
-
| FR141 | Epic
|
|
297
|
-
| FR142 | Epic
|
|
298
|
-
| FR143 | Epic
|
|
299
|
-
| FR144 | Epic
|
|
300
|
-
| FR145 | Epic
|
|
327
|
+
| FR141 | Epic 19 | Graph node identity: file-id#heading-anchor |
|
|
328
|
+
| FR142 | Epic 19 | Directed typed edges with full provenance (6 edge types) |
|
|
329
|
+
| FR143 | Epic 19 | Bidirectional index per node |
|
|
330
|
+
| FR144 | Epic 19 | Flat four-section JSON structure (meta/files/nodes/edges) |
|
|
331
|
+
| FR145 | Epic 19 | Files table with pointer_type (relative_path, absolute_path, url) |
|
|
332
|
+
| FR146 | Epic 19 | Node schema (id, file, anchor, title, type) |
|
|
333
|
+
| FR147 | Epic 19 | Edge schema (from, to, type, label, created_by, agent, created_at) |
|
|
334
|
+
| FR148 | Epic 19 | Meta schema (schema_version, generated_at, project, counts) |
|
|
335
|
+
| FR149 | Epic 19 | Automatic silent emission on artifact completion (7 BMAD skills) |
|
|
336
|
+
| FR150 | Epic 19 | Auto-registration of new files; external URL support |
|
|
337
|
+
| FR151 | Epic 19 | Non-hierarchical multi-source emission (any-to-any informed-by edges) |
|
|
338
|
+
| FR152 | Epic 19 | Additive-only emit; duplicate detection by (from,to,type) for edges and id for nodes |
|
|
339
|
+
| FR153 | Epic 19 | open-graph skill with VSCode/browser detection |
|
|
340
|
+
| FR154 | Epic 19 | Interactive visualization: color-coded nodes by type, click-to-navigate |
|
|
341
|
+
| FR155 | Epic 19 | Edge tooltip with full provenance record |
|
|
342
|
+
| FR156 | Epic 19 | Interactive filtering by node/edge type; neighbor highlight |
|
|
343
|
+
| FR157 | Epic 19 | No external dependencies — fully self-contained HTML (air-gap compatible) |
|
|
344
|
+
| FR158 | Epic 18 | Roo Code custom modes from BMAD agents (proposed — pending PRD addition) |
|
|
345
|
+
| FR159 | Epic 18 | Roo Code rules from BMAD instructions (proposed — pending PRD addition) |
|
|
346
|
+
| FR160 | Epic 18 | Roo Code slash commands from BMAD workflows (proposed — pending PRD addition) |
|
|
347
|
+
| FR161 | Epic 18 | Cline-to-Roo Code migration (proposed — pending PRD addition) |
|
|
301
348
|
|
|
302
349
|
## Epic List
|
|
303
350
|
|
|
@@ -383,6 +430,16 @@ Sprint management is redesigned around a **single unified `sprint-status.yaml`**
|
|
|
383
430
|
**Note:** Epic 12 delivered workflow files but not the underlying sprint data model. This epic builds the unified model, rewires all workflows, and provides the Jira adapter pattern.
|
|
384
431
|
**Skills affected:** Heavy rework (6): generate-backlog, add-to-sprint, remove-from-sprint, sprint-status-view, cleanup-done, bmad-sprint-planning. Moderate rework (3): add-sprint, modify-sprint, bmad-dev-story. Light rework (3): story-status-lookup, bmad-sprint-status, prioritize-backlog. New skill (1): close-sprint.
|
|
385
432
|
|
|
433
|
+
### Epic 19: BMAD Knowledge Graph (Phase 3)
|
|
434
|
+
Every planning and implementation artifact generated by BMAD skills is automatically woven into a non-hierarchical knowledge graph stored as `_bmad-output/knowledge-graph.json`. Any-to-any directed relationships (not just parent-child traceability) are captured with full provenance. Engineers can open an interactive visualization of the entire project knowledge graph — navigating to any document at the specific heading where a concept is defined — via the `open-graph` skill.
|
|
435
|
+
**FRs covered:** FR141–FR157
|
|
436
|
+
**NFRs addressed:** NFR38 (render performance), NFR39 (LLM-writability), NFR40 (additive-only), NFR41 (air-gapped)
|
|
437
|
+
**Architecture:** Decision P3-1 (BMAD Knowledge Graph) in `_bmad-output/planning-artifacts/architecture.md`
|
|
438
|
+
**Dependencies:** Epic 15 (extension module structure) must be complete — `open-graph` skill deploys as a BMAD extension skill. Epic 17 complete (sprint skill structure settled before wiring emission).
|
|
439
|
+
**New skill:** `open-graph` (45th total skill) in `lib/bmad-extension/skills/open-graph/`
|
|
440
|
+
**Skills modified:** create-prd, create-architecture, create-epics-and-stories, create-story, validate-prd, dev-story, bmad-sprint-planning — each gains a silent `emitToGraph()` post-artifact call
|
|
441
|
+
**Output artifacts:** `_bmad-output/knowledge-graph.json` (graph data), `_bmad-output/knowledge-graph.html` (self-contained renderer)
|
|
442
|
+
|
|
386
443
|
### Epic 15: BMAD 6.2.1 Agent Architecture Migration (Phase 2)
|
|
387
444
|
ma-agents upgrades from bmad-method 6.0.4 to 6.2.1, restructures the extension module to follow BMAD 6.2.0 module conventions (agents as skill folders, workflows as skill folders, module.yaml with code field), and provides an installer-driven migration path for existing installations.
|
|
388
445
|
**FRs covered:** FR94, FR95, FR96, FR97, FR98, FR99, FR100, FR101, FR102, FR103, FR104, FR105, FR106, FR107, FR108, FR109, FR110
|
|
@@ -419,6 +476,10 @@ Stories in Epics 6, 8, and 15 that touch `bmad.js` must build on Epic 5's vendor
|
|
|
419
476
|
5. **Epics 4, 7** (VS Integration, Test Suite) — on hold, can resume in parallel
|
|
420
477
|
6. **Epic 14** (External Tooling) — Phase 3, depends on Epics 12, 13. Story 14.3 architecture is prerequisite for Epic 17 Story 17.22 (Jira adapter).
|
|
421
478
|
|
|
479
|
+
**Phase D — Phase 3 Features:**
|
|
480
|
+
7. **Epic 19** (BMAD Knowledge Graph) — depends on Epic 15 (extension module structure) and Epic 17 (sprint skill structure settled). Story execution order: 19.1 (core library) → 19.2 (PRD emission) → 19.3 (architecture + epics emission) → 19.4 (story + remaining emission) → 19.5 (open-graph skill) → 19.6 (visualization renderer) → 19.7 (LLM contract validation + tests). Stories 19.2-19.4 can proceed in parallel once 19.1 is done.
|
|
481
|
+
8. **Epic 18** (Roo Code IDE Support) — no dependencies, can proceed independently at any point in Phase C or D.
|
|
482
|
+
|
|
422
483
|
---
|
|
423
484
|
|
|
424
485
|
## Epic 5: Bundled BMAD Installation (Phase 2)
|
|
@@ -2907,7 +2968,7 @@ So that backlog reprioritization works against the single source of truth instea
|
|
|
2907
2968
|
|
|
2908
2969
|
**Goal:** Full Roo Code integration — ma-agents skill installation, BMAD agent personas as custom modes, planning instructions as rules, and BMAD workflows as slash commands.
|
|
2909
2970
|
**FRs covered:** FR34 (extended to include Roo Code), FR36, FR38
|
|
2910
|
-
**Proposed FRs:**
|
|
2971
|
+
**Proposed FRs:** FR158 (Roo Code custom modes from BMAD agents), FR159 (Roo Code rules from BMAD instructions), FR160 (Roo Code slash commands from BMAD workflows), FR161 (Cline-to-Roo migration) — renumbered from FR142-145; FR141-FR157 are now reserved for Epic 19 (Knowledge Graph)
|
|
2911
2972
|
**Research:** `_bmad-output/planning-artifacts/domain-research-roocode-2026-03-31.md`
|
|
2912
2973
|
**Dependency:** None (can proceed independently; upstream `bmad-method` already has `roo` in `platform-codes.yaml`)
|
|
2913
2974
|
|
|
@@ -3285,3 +3346,490 @@ The `bmad-method` npm package already has `roo` in `platform-codes.yaml` and can
|
|
|
3285
3346
|
6. Story 18.6 (mode-specific rules) — depends on 18.4
|
|
3286
3347
|
7. Story 18.7 (Cline migration) — depends on 18.1, 18.3
|
|
3287
3348
|
8. Story 18.8 (validation/tests) — depends on all above
|
|
3349
|
+
|
|
3350
|
+
---
|
|
3351
|
+
|
|
3352
|
+
## Epic 19: BMAD Knowledge Graph (Phase 3)
|
|
3353
|
+
|
|
3354
|
+
Every planning and implementation artifact generated by BMAD skills is automatically woven into a non-hierarchical knowledge graph stored as `_bmad-output/knowledge-graph.json`. Any-to-any directed relationships (not just parent-child traceability) are captured with full provenance. Engineers can open an interactive visualization of the entire project knowledge graph — navigating to any document at the specific heading where a concept is defined — via the `open-graph` skill.
|
|
3355
|
+
|
|
3356
|
+
### Story 19.1: Knowledge Graph Core Library (`emitToGraph`)
|
|
3357
|
+
|
|
3358
|
+
As a **Chief Architect**,
|
|
3359
|
+
I want a shared `emitToGraph()` utility function in the BMAD extension module,
|
|
3360
|
+
So that all BMAD skills can emit nodes and edges to the knowledge graph using a single consistent API without duplicating file I/O logic.
|
|
3361
|
+
|
|
3362
|
+
**Acceptance Criteria:**
|
|
3363
|
+
|
|
3364
|
+
**Given** the function `emitToGraph(projectRoot, emission)` is called with a valid emission payload
|
|
3365
|
+
**When** `_bmad-output/knowledge-graph.json` does not yet exist
|
|
3366
|
+
**Then** the function creates the file with a valid four-section structure: `meta`, `files`, `nodes`, `edges`
|
|
3367
|
+
**And** `meta` contains `schema_version: "1.0"`, `generated_at` (ISO timestamp), `project` (derived from package.json name or directory name), `file_count: 0`, `node_count: 0`, `edge_count: 0`
|
|
3368
|
+
**And** `files`, `nodes`, `edges` are initialized as empty object, empty array, empty array respectively
|
|
3369
|
+
|
|
3370
|
+
**Given** `knowledge-graph.json` already exists with prior content
|
|
3371
|
+
**When** `emitToGraph()` is called
|
|
3372
|
+
**Then** it reads the existing file, appends new files/nodes/edges, updates counts in `meta`, and writes the result back atomically
|
|
3373
|
+
**And** no existing nodes, edges, or file registrations are deleted or overwritten
|
|
3374
|
+
|
|
3375
|
+
**Given** an emission payload includes a `files` entry with `pointer_type: "relative_path"`
|
|
3376
|
+
**When** that file-id does not yet exist in the `files` table
|
|
3377
|
+
**Then** the file is registered: `files[file-id] = { pointer, title, pointer_type }`
|
|
3378
|
+
**And** if the file-id already exists, registration is skipped (first-write-wins)
|
|
3379
|
+
|
|
3380
|
+
**Given** an emission payload includes a node with id `file-id#heading-anchor`
|
|
3381
|
+
**When** a node with that id already exists in `nodes`
|
|
3382
|
+
**Then** the node is not duplicated
|
|
3383
|
+
|
|
3384
|
+
**Given** an emission payload includes an edge with `(from, to, type)` triple
|
|
3385
|
+
**When** an edge with the same `(from, to, type)` already exists in `edges`
|
|
3386
|
+
**Then** the edge is not duplicated (provenance of the first edge is preserved)
|
|
3387
|
+
|
|
3388
|
+
**Given** the function writes the updated graph
|
|
3389
|
+
**When** the write operation completes
|
|
3390
|
+
**Then** `meta.file_count`, `meta.node_count`, `meta.edge_count` reflect the total counts in the file
|
|
3391
|
+
|
|
3392
|
+
**Technical notes:**
|
|
3393
|
+
- Implement in `lib/bmad-extension/skills/` as a shared utility module (e.g., `lib/knowledge-graph/emit.js`)
|
|
3394
|
+
- Heading anchor derivation: `heading.toLowerCase().replace(/[^\w\s-]/g, '').replace(/\s+/g, '-')` (GitHub slug algorithm)
|
|
3395
|
+
- File path for graph: always `path.join(projectRoot, '_bmad-output', 'knowledge-graph.json')`
|
|
3396
|
+
- Use synchronous file I/O (`fs.readFileSync` / `fs.writeFileSync`) — graph updates happen after artifact generation, not in hot paths
|
|
3397
|
+
- JSON serialization: `JSON.stringify(graph, null, 2)` for human-readable output
|
|
3398
|
+
- FRs: FR141, FR142, FR143, FR144, FR145, FR146, FR147, FR148
|
|
3399
|
+
- NFRs: NFR39 (LLM-writability — flat structure, copy-pattern extension), NFR40 (additive-only)
|
|
3400
|
+
|
|
3401
|
+
### Story 19.2: Graph Emission — `create-prd` (Graph Seed)
|
|
3402
|
+
|
|
3403
|
+
As a **Product Manager**,
|
|
3404
|
+
I want the `create-prd` skill to automatically seed the knowledge graph when a PRD is generated,
|
|
3405
|
+
So that the PRD becomes the root of the project knowledge graph without any user action.
|
|
3406
|
+
|
|
3407
|
+
**Acceptance Criteria:**
|
|
3408
|
+
|
|
3409
|
+
**Given** the `create-prd` skill completes generation of `_bmad-output/planning-artifacts/prd.md`
|
|
3410
|
+
**When** the artifact write step finishes
|
|
3411
|
+
**Then** `emitToGraph()` is called silently as the final step — no user prompt, no output message
|
|
3412
|
+
**And** the PRD file is registered in the `files` table as `{ pointer: "_bmad-output/planning-artifacts/prd.md", title: "Product Requirements Document", pointer_type: "relative_path" }` with file-id `prd`
|
|
3413
|
+
|
|
3414
|
+
**Given** the PRD contains top-level `##` headings (e.g., `## Executive Summary`, `## Functional Requirements`)
|
|
3415
|
+
**When** emission runs
|
|
3416
|
+
**Then** one node is emitted per heading: `{ id: "prd#executive-summary", file: "prd", anchor: "executive-summary", title: "Executive Summary", type: "prd" }`
|
|
3417
|
+
|
|
3418
|
+
**Given** the graph is seeded from a new PRD
|
|
3419
|
+
**When** the `knowledge-graph.json` file is inspected
|
|
3420
|
+
**Then** it contains no edges (PRD is the root — it does not reference other documents yet)
|
|
3421
|
+
**And** `meta.node_count` equals the number of `##` headings in the PRD
|
|
3422
|
+
|
|
3423
|
+
**Given** `create-prd` runs on a project where `knowledge-graph.json` already exists
|
|
3424
|
+
**When** emission runs
|
|
3425
|
+
**Then** only new headings (not yet present as nodes) are added — re-runs are idempotent
|
|
3426
|
+
|
|
3427
|
+
**Technical notes:**
|
|
3428
|
+
- Extract headings by scanning the generated markdown for `^## ` lines
|
|
3429
|
+
- Emit only level-2 (`##`) headings as nodes — level-3+ create noise without adding navigation value
|
|
3430
|
+
- The PRD seeding call is the only emission that produces zero edges — all other skills emit edges pointing back to PRD nodes
|
|
3431
|
+
- FRs: FR149, FR150, FR151, FR152
|
|
3432
|
+
|
|
3433
|
+
### Story 19.3: Graph Emission — `create-architecture` and `create-epics-and-stories`
|
|
3434
|
+
|
|
3435
|
+
As a **Chief Architect** and **Product Manager**,
|
|
3436
|
+
I want the `create-architecture` and `create-epics-and-stories` skills to emit traceability edges to the knowledge graph automatically,
|
|
3437
|
+
So that every architectural decision and every epic traces back to the PRD sections that motivated it.
|
|
3438
|
+
|
|
3439
|
+
**Acceptance Criteria:**
|
|
3440
|
+
|
|
3441
|
+
**Given** the `create-architecture` skill completes generation of `_bmad-output/planning-artifacts/architecture.md`
|
|
3442
|
+
**When** emission runs
|
|
3443
|
+
**Then** the architecture file is registered as file-id `arch` with `pointer_type: "relative_path"`
|
|
3444
|
+
**And** one node is emitted per `##` heading in architecture.md (type: `architecture`)
|
|
3445
|
+
**And** for each architecture decision section (headings matching `## Decision` or similar), an `implements` edge is emitted: `{ from: "arch#decision-slug", to: "prd#relevant-fr-section", type: "implements", label: "implements PRD requirement", created_by: <user>, agent: <agent-id>, created_at: <timestamp> }`
|
|
3446
|
+
|
|
3447
|
+
**Given** the `create-architecture` skill is run when PRD nodes do not yet exist in the graph
|
|
3448
|
+
**When** an edge references a PRD node that is not yet in `nodes`
|
|
3449
|
+
**Then** a stub node is emitted for the referenced PRD heading so the edge is not orphaned
|
|
3450
|
+
**And** the stub node carries `type: "prd"` and the correct `file` and `anchor` fields
|
|
3451
|
+
|
|
3452
|
+
**Given** the `create-epics-and-stories` skill completes updating `_bmad-output/planning-artifacts/epics.md`
|
|
3453
|
+
**When** emission runs
|
|
3454
|
+
**Then** the epics file is registered as file-id `epics` with `pointer_type: "relative_path"`
|
|
3455
|
+
**And** one node is emitted per epic heading (type: `epic`)
|
|
3456
|
+
**And** for each epic, a `derives-from` edge is emitted to the PRD Functional Requirements node: `{ from: "epics#epic-N-name", to: "prd#functional-requirements", type: "derives-from", ... }`
|
|
3457
|
+
**And** where an epic was informed by an architecture decision, an `informed-by` edge is also emitted: `{ from: "epics#epic-N-name", to: "arch#decision-slug", type: "informed-by", ... }`
|
|
3458
|
+
|
|
3459
|
+
**Technical notes:**
|
|
3460
|
+
- The `informed-by` edge is the non-hierarchical edge type — it captures cross-domain influence (an epic shaped by an architectural decision, not just a PRD section)
|
|
3461
|
+
- Architecture decision headings can be detected by scanning for `## Decision` or `## P[0-9]-[0-9]` patterns (architecture doc convention)
|
|
3462
|
+
- Epic headings can be detected by scanning for `## Epic [0-9]+:` pattern
|
|
3463
|
+
- Emit after the file write step completes; `created_by` is read from BMAD config (user name); `agent` is the BMAD agent identity string from the skill context
|
|
3464
|
+
- FRs: FR149, FR150, FR151, FR152
|
|
3465
|
+
|
|
3466
|
+
### Story 19.4: Graph Emission — `create-story`, `validate-prd`, `dev-story`, `bmad-sprint-planning`
|
|
3467
|
+
|
|
3468
|
+
As a **Developer** and **QA Engineer**,
|
|
3469
|
+
I want individual story files and validation artifacts to emit traceability edges automatically,
|
|
3470
|
+
So that the knowledge graph captures the full SDLC chain from PRD through architecture through epics through stories through implementation.
|
|
3471
|
+
|
|
3472
|
+
**Acceptance Criteria:**
|
|
3473
|
+
|
|
3474
|
+
**Given** the `create-story` skill generates a story file (e.g., `_bmad-output/implementation-artifacts/17-9-unified-sprint-status-schema.md`)
|
|
3475
|
+
**When** emission runs
|
|
3476
|
+
**Then** the story file is registered in the `files` table with `pointer_type: "relative_path"` and a file-id derived from the story number (e.g., `story-17-9`)
|
|
3477
|
+
**And** a node is emitted for the story root heading (type: `story`)
|
|
3478
|
+
**And** a `traces-to` edge is emitted from the story node to its parent epic node: `{ from: "story-17-9#story-title", to: "epics#epic-17-sprint-management", type: "traces-to", ... }`
|
|
3479
|
+
**And** if the story's technical notes reference architecture decisions, `informed-by` edges are emitted from the story node to the relevant architecture nodes
|
|
3480
|
+
|
|
3481
|
+
**Given** the `validate-prd` skill completes a validation report
|
|
3482
|
+
**When** emission runs
|
|
3483
|
+
**Then** the validation report file is registered with file-id `validation-<date>`
|
|
3484
|
+
**And** a `validates` edge is emitted from the validation report node to `prd#functional-requirements`: `{ type: "validates", label: "PRD validation report <date>", ... }`
|
|
3485
|
+
|
|
3486
|
+
**Given** `dev-story` completes implementation guidance for a story
|
|
3487
|
+
**When** emission runs
|
|
3488
|
+
**Then** an `informed-by` edge is emitted from the story node to `arch#implementation-notes` (or the most relevant architecture section)
|
|
3489
|
+
|
|
3490
|
+
**Given** `bmad-sprint-planning` completes sprint plan generation
|
|
3491
|
+
**When** emission runs
|
|
3492
|
+
**Then** sprint plan nodes are emitted and `derives-from` edges connect them to the relevant epic nodes
|
|
3493
|
+
|
|
3494
|
+
**Technical notes:**
|
|
3495
|
+
- Story file-ids use the format `story-<epic-number>-<story-number>` (derived from the file path)
|
|
3496
|
+
- The 7 skills emitting to the graph: `create-prd`, `create-architecture`, `create-epics-and-stories`, `create-story`, `validate-prd`, `dev-story`, `bmad-sprint-planning`
|
|
3497
|
+
- All emission calls are identical in structure: call `emitToGraph(projectRoot, emission)` at the end of the artifact write step
|
|
3498
|
+
- FRs: FR149, FR150, FR151, FR152
|
|
3499
|
+
|
|
3500
|
+
### Story 19.5: `open-graph` Skill
|
|
3501
|
+
|
|
3502
|
+
As an **Engineer**,
|
|
3503
|
+
I want to run `/open-graph` in any BMAD agent,
|
|
3504
|
+
So that the knowledge graph visualization opens in VSCode (as a webview) or in my default browser when outside VSCode — without any additional configuration.
|
|
3505
|
+
|
|
3506
|
+
**Acceptance Criteria:**
|
|
3507
|
+
|
|
3508
|
+
**Given** `open-graph` is invoked inside VSCode (detected via `process.env.TERM_PROGRAM === 'vscode'` or `process.env.VSCODE_PID !== undefined`)
|
|
3509
|
+
**When** the skill runs
|
|
3510
|
+
**Then** it generates `_bmad-output/knowledge-graph.html` (if not already current) from the JSON data
|
|
3511
|
+
**And** opens the HTML file via VSCode's `vscode.env.openExternal(Uri.file(...))` API or equivalent open command
|
|
3512
|
+
|
|
3513
|
+
**Given** `open-graph` is invoked outside VSCode (standard terminal)
|
|
3514
|
+
**When** the skill runs
|
|
3515
|
+
**Then** it generates `knowledge-graph.html` from the current JSON data
|
|
3516
|
+
**And** opens it using the platform-appropriate command: `start` (Windows), `open` (macOS), `xdg-open` (Linux)
|
|
3517
|
+
|
|
3518
|
+
**Given** `_bmad-output/knowledge-graph.json` does not exist
|
|
3519
|
+
**When** `open-graph` is invoked
|
|
3520
|
+
**Then** the skill informs the user that no knowledge graph data has been generated yet
|
|
3521
|
+
**And** suggests running a BMAD planning skill to seed the graph
|
|
3522
|
+
|
|
3523
|
+
**Given** `knowledge-graph.html` already exists and is newer than `knowledge-graph.json`
|
|
3524
|
+
**When** `open-graph` is invoked
|
|
3525
|
+
**Then** the skill skips regeneration and opens the existing HTML directly
|
|
3526
|
+
|
|
3527
|
+
**Technical notes:**
|
|
3528
|
+
- Skill location: `lib/bmad-extension/skills/open-graph/`
|
|
3529
|
+
- Skill files: `SKILL.md` (agent instruction), `skill.json` (metadata), `generate-html.js` (HTML renderer generator)
|
|
3530
|
+
- The `generate-html.js` script reads the JSON, inlines the data as a JavaScript literal, and writes the self-contained HTML file
|
|
3531
|
+
- `always_load: false` — this is an on-demand skill, not a mandatory load
|
|
3532
|
+
- Add `open-graph` to the BMAD extension module's MANIFEST.yaml
|
|
3533
|
+
- FR: FR153
|
|
3534
|
+
|
|
3535
|
+
### Story 19.6: Interactive Visualization Renderer
|
|
3536
|
+
|
|
3537
|
+
As an **Engineer**,
|
|
3538
|
+
I want the knowledge graph HTML file to render an interactive, navigable visualization of all project artifacts and their relationships,
|
|
3539
|
+
So that I can explore cross-document traceability visually and jump directly to any document section from the graph.
|
|
3540
|
+
|
|
3541
|
+
**Acceptance Criteria:**
|
|
3542
|
+
|
|
3543
|
+
**Given** `knowledge-graph.html` is opened in a browser or VSCode webview
|
|
3544
|
+
**When** the graph renders
|
|
3545
|
+
**Then** each node appears as a circle color-coded by document type:
|
|
3546
|
+
- `prd` → blue
|
|
3547
|
+
- `architecture` → orange
|
|
3548
|
+
- `epic` → green
|
|
3549
|
+
- `story` → teal
|
|
3550
|
+
- `decision` → purple
|
|
3551
|
+
- `validation` → red
|
|
3552
|
+
**And** directed edges are rendered as arrows with the edge type as a label
|
|
3553
|
+
**And** the initial render completes within 3 seconds for graphs up to 500 nodes and 1000 edges (NFR38)
|
|
3554
|
+
|
|
3555
|
+
**Given** the user clicks a node
|
|
3556
|
+
**When** the click handler fires
|
|
3557
|
+
**Then** the node's source document opens at the specific heading anchor via the IDE's file protocol or a browser file URL
|
|
3558
|
+
|
|
3559
|
+
**Given** the user hovers over an edge
|
|
3560
|
+
**When** the tooltip renders
|
|
3561
|
+
**Then** it displays: edge type, label, created_by, agent, created_at (FR155)
|
|
3562
|
+
|
|
3563
|
+
**Given** the user selects a node
|
|
3564
|
+
**When** the selection occurs
|
|
3565
|
+
**Then** the immediate neighbors (one hop in either direction) are highlighted
|
|
3566
|
+
**And** non-neighbor nodes and edges are dimmed (FR156)
|
|
3567
|
+
|
|
3568
|
+
**Given** the user uses the filter controls
|
|
3569
|
+
**When** a node type or edge type is deselected
|
|
3570
|
+
**Then** nodes and edges of that type are hidden from the visualization
|
|
3571
|
+
**And** re-selecting them restores visibility (FR156)
|
|
3572
|
+
|
|
3573
|
+
**Given** the HTML file is opened in an air-gapped environment with no network access
|
|
3574
|
+
**When** the page loads
|
|
3575
|
+
**Then** the graph renders identically to a connected environment — no CDN requests, no external fonts, no script fetches (FR157, NFR41)
|
|
3576
|
+
|
|
3577
|
+
**Technical notes:**
|
|
3578
|
+
- All JavaScript and CSS are inlined in the HTML file — no external dependencies
|
|
3579
|
+
- Graph data is embedded as a `const GRAPH_DATA = {...}` literal at generation time (not fetched at runtime)
|
|
3580
|
+
- Use SVG for node and edge rendering — no canvas required, simpler interaction model
|
|
3581
|
+
- Pre-compute the first 100 physics ticks at generation time to arrive at a stable initial layout (avoids animation jitter on open)
|
|
3582
|
+
- The renderer is approximately 300-500 lines of vanilla JS — no framework, no bundler
|
|
3583
|
+
- Node positioning: simple force-directed simulation using Coulomb repulsion + spring attraction
|
|
3584
|
+
- FRs: FR154, FR155, FR156, FR157
|
|
3585
|
+
- NFRs: NFR38, NFR41
|
|
3586
|
+
|
|
3587
|
+
### Story 19.7: LLM-Writability Contract Validation and Integration Tests
|
|
3588
|
+
|
|
3589
|
+
As a **Chief Architect**,
|
|
3590
|
+
I want the knowledge graph JSON format validated against the LLM-writability contract and covered by integration tests,
|
|
3591
|
+
So that we can verify that any LLM can extend the graph by copying existing patterns, and that the additive-only semantics are enforced.
|
|
3592
|
+
|
|
3593
|
+
**Acceptance Criteria:**
|
|
3594
|
+
|
|
3595
|
+
**Given** a `knowledge-graph.json` file with one existing node and one existing edge
|
|
3596
|
+
**When** an LLM is instructed to add a new node and a new edge by copying the existing patterns (no external schema provided)
|
|
3597
|
+
**Then** the resulting JSON is valid and passes `emitToGraph()` ingestion without errors
|
|
3598
|
+
**And** the existing node and edge are preserved unchanged (NFR40)
|
|
3599
|
+
|
|
3600
|
+
**Given** `emitToGraph()` is called with a node id that already exists in `nodes`
|
|
3601
|
+
**When** the function completes
|
|
3602
|
+
**Then** `nodes` contains exactly one entry with that id (no duplicate)
|
|
3603
|
+
**And** the original node's fields are unchanged
|
|
3604
|
+
|
|
3605
|
+
**Given** `emitToGraph()` is called with an edge `(from, to, type)` triple that already exists
|
|
3606
|
+
**When** the function completes
|
|
3607
|
+
**Then** `edges` contains exactly one entry with that triple (no duplicate)
|
|
3608
|
+
**And** the original edge's provenance (created_by, agent, created_at) is unchanged
|
|
3609
|
+
|
|
3610
|
+
**Given** a graph with 500 nodes and 1000 edges
|
|
3611
|
+
**When** `emitToGraph()` adds one new node and one new edge
|
|
3612
|
+
**Then** the operation completes in under 1 second
|
|
3613
|
+
|
|
3614
|
+
**Given** the full emission sequence is run (all 7 skills emit in order)
|
|
3615
|
+
**When** the resulting `knowledge-graph.json` is inspected
|
|
3616
|
+
**Then** all emitted nodes are present
|
|
3617
|
+
**And** all emitted edges are present with correct provenance
|
|
3618
|
+
**And** `meta.file_count`, `meta.node_count`, `meta.edge_count` are accurate
|
|
3619
|
+
|
|
3620
|
+
**Technical notes:**
|
|
3621
|
+
- Tests live in `tests/knowledge-graph/` following the existing test structure
|
|
3622
|
+
- Use temp directories for all file I/O in tests
|
|
3623
|
+
- The LLM-writability test can use a fixture JSON and verify that extending it by hand-editing produces valid output
|
|
3624
|
+
- Test the VSCode detection logic with environment variable mocks
|
|
3625
|
+
- NFRs: NFR39 (LLM-writability), NFR40 (additive-only)
|
|
3626
|
+
|
|
3627
|
+
---
|
|
3628
|
+
|
|
3629
|
+
### Epic 19 — Cross-Epic Notes
|
|
3630
|
+
|
|
3631
|
+
**Relationship to Epic 15 (BMAD 6.2.1 Migration):**
|
|
3632
|
+
The `open-graph` skill deploys as a BMAD extension skill following the 6.2.1 module structure established by Epic 15. Epic 15 must be complete before Story 19.5.
|
|
3633
|
+
|
|
3634
|
+
**Relationship to Epic 17 (Sprint Management):**
|
|
3635
|
+
`bmad-sprint-planning` is one of the 7 skills that emit to the knowledge graph. Epic 17 must be complete (skill structure settled) before Story 19.4 wires in sprint planning emission.
|
|
3636
|
+
|
|
3637
|
+
**Relationship to Epic 7 (Test Suite):**
|
|
3638
|
+
Story 19.7 integration tests follow the test infrastructure from Epic 7. Epic 7 is on hold, so Story 19.7 uses the existing Node.js test runner pattern directly.
|
|
3639
|
+
|
|
3640
|
+
**File outputs produced by this epic:**
|
|
3641
|
+
```
|
|
3642
|
+
_bmad-output/
|
|
3643
|
+
├── knowledge-graph.json ← graph data (generated by Stories 19.2-19.4)
|
|
3644
|
+
└── knowledge-graph.html ← self-contained renderer (generated by Story 19.5/19.6)
|
|
3645
|
+
|
|
3646
|
+
lib/
|
|
3647
|
+
├── knowledge-graph/
|
|
3648
|
+
│ └── emit.js ← shared emitToGraph() utility (Story 19.1)
|
|
3649
|
+
└── bmad-extension/
|
|
3650
|
+
└── skills/
|
|
3651
|
+
└── open-graph/ ← new BMAD extension skill (Story 19.5)
|
|
3652
|
+
├── SKILL.md
|
|
3653
|
+
├── skill.json
|
|
3654
|
+
└── generate-html.js
|
|
3655
|
+
```
|
|
3656
|
+
|
|
3657
|
+
**Development Execution Order:**
|
|
3658
|
+
1. Story 19.1 (core library) — no dependencies; establish before any emission story
|
|
3659
|
+
2. Story 19.2 (create-prd emission) — depends on 19.1
|
|
3660
|
+
3. Story 19.3 (create-architecture + create-epics-and-stories emission) — depends on 19.1; can run in parallel with 19.2
|
|
3661
|
+
4. Story 19.4 (create-story + remaining emission) — depends on 19.1; can run in parallel with 19.2 and 19.3
|
|
3662
|
+
5. Story 19.5 (open-graph skill) — depends on 19.1 (needs the generate-html logic)
|
|
3663
|
+
6. Story 19.6 (visualization renderer) — depends on 19.5 (renderer is invoked by open-graph skill)
|
|
3664
|
+
7. Story 19.7 (LLM contract validation + tests) — depends on all above
|
|
3665
|
+
|
|
3666
|
+
---
|
|
3667
|
+
|
|
3668
|
+
## Epic 20: Software Quality Assurance (SQA) Agent — Gad (Phase 3)
|
|
3669
|
+
|
|
3670
|
+
**Goal:** Deliver a dedicated Software Quality Assurance agent (Gad) that provides structured quality workflows for projects managed with the ma-agents/BMAD stack. The agent presents a menu of quality-focused workflows; the initial release includes a multi-dimensional Project Audit and an IEEE/ISO/IEC 12207 lifecycle process compliance assessment.
|
|
3671
|
+
|
|
3672
|
+
**Value:** Closes the quality verification gap in the BMAD lifecycle. Today there is no agent that looks across planning artifacts, sprint state, and process compliance together. Gad gives quality engineers and project managers a single entry point to answer "how healthy is this project, really?" and "does this project meet recognized lifecycle standards?"
|
|
3673
|
+
|
|
3674
|
+
**PRD Coverage:** FR158–FR171, NFR42–NFR43 (Architecture Decision P3-2)
|
|
3675
|
+
|
|
3676
|
+
**Status:** Planned
|
|
3677
|
+
|
|
3678
|
+
**Dependencies:**
|
|
3679
|
+
- Epic 15 (BMAD 6.2.0 Agent Architecture Migration) must be complete — Gad's skills use the P2-9 BMAD 6.2.0 skill folder pattern
|
|
3680
|
+
- Epic 11 (Bug Management System) must be complete — Story 20.3 invokes `create-bug-story` for gap remediation (FR171)
|
|
3681
|
+
|
|
3682
|
+
---
|
|
3683
|
+
|
|
3684
|
+
### Story 20.1 — SQA Agent Skill: Gad Persona and Menu
|
|
3685
|
+
|
|
3686
|
+
**As a** quality engineer,
|
|
3687
|
+
**I want** to activate the Gad SQA agent from within a BMAD session,
|
|
3688
|
+
**so that** I have a dedicated quality assurance persona with a structured menu of QA workflows available.
|
|
3689
|
+
|
|
3690
|
+
**Acceptance Criteria:**
|
|
3691
|
+
|
|
3692
|
+
1. `lib/bmad-extension/skills/bmad-ma-agent-sqa/SKILL.md` exists and fully defines the Gad agent persona: role, identity, communication style, and principles
|
|
3693
|
+
2. `lib/bmad-extension/skills/bmad-ma-agent-sqa/bmad-skill-manifest.yaml` exists with `type: agent`, `name: bmad-ma-agent-sqa`, `displayName: Gad`, `title: Software Quality Assurance Expert`, and `module: ma-skills`
|
|
3694
|
+
3. The SKILL.md activation sequence follows the standard BMAD 6.2.0 agent pattern: load config.yaml → greet user → display menu → wait for input → dispatch to skill
|
|
3695
|
+
4. The menu includes at minimum: Redisplay Menu Help (MH), Chat (CH), Project Audit (AU → `sqa-audit`), IEEE 12207 Compliance (IC → `sqa-ieee12207`), Dismiss Agent (DA)
|
|
3696
|
+
5. `lib/bmad-extension/module-help.csv` contains an entry for `bmad-ma-agent-sqa` in the `anytime` phase under module `ma-skills`
|
|
3697
|
+
6. `lib/bmad-extension/skills/bmad-ma-agent-sqa/.gitkeep` exists
|
|
3698
|
+
7. `test/extension-module-restructure.test.js` includes `bmad-ma-agent-sqa` in the expected agent skills array and passes
|
|
3699
|
+
|
|
3700
|
+
**Technical Notes:**
|
|
3701
|
+
- Gad binds to the `bmm-qa` BMAD built-in agent persona — no new BMAD agent slot is created
|
|
3702
|
+
- Communication style: clear, precise, structured; findings always include severity levels; observations distinguished from blocking issues
|
|
3703
|
+
- No new BMAD agent host customization files needed — the `lib/bmad-customize/bmm-qa.customize.yaml` existing skill-enforcement hooks are sufficient
|
|
3704
|
+
|
|
3705
|
+
---
|
|
3706
|
+
|
|
3707
|
+
### Story 20.2 — Project Audit Workflow Skill
|
|
3708
|
+
|
|
3709
|
+
**As a** quality engineer,
|
|
3710
|
+
**I want** Gad to run a structured project audit across multiple quality dimensions,
|
|
3711
|
+
**so that** I can identify gaps in traceability, process compliance, sprint health, and release readiness in a single structured session.
|
|
3712
|
+
|
|
3713
|
+
**Acceptance Criteria:**
|
|
3714
|
+
|
|
3715
|
+
1. `lib/bmad-extension/skills/sqa-audit/SKILL.md` exists and implements the full five-step audit workflow:
|
|
3716
|
+
- Step 1: Scope selection — asks full vs. partial, lists all five dimensions by number, waits for user input
|
|
3717
|
+
- Step 2: Data collection — reads all required artifacts, reports which were found vs. missing before proceeding
|
|
3718
|
+
- Step 3: Executes only the selected dimensions (1–5 as described below)
|
|
3719
|
+
- Step 4: Compiles a full audit report in the specified format
|
|
3720
|
+
- Step 5: Saves the report to `{output_folder}/sqa-audit-report-{YYYY-MM-DD}.md` and confirms the path to the user
|
|
3721
|
+
2. Dimension 1 (Code ↔ Stories): reads done/in-progress items from sprint-status.yaml, lists each story with traceability status, flags stories with no code evidence and code with no story
|
|
3722
|
+
3. Dimension 2 (Stories ↔ Architecture/PRD): produces a PRD coverage table (COVERED / MISSING / PARTIAL per requirement) and an architecture compliance issue list
|
|
3723
|
+
4. Dimension 3 (Process Compliance): evaluates commit convention adherence, branch discipline, test file presence, and code review evidence; produces a checklist with PASS / FAIL / UNKNOWN per item
|
|
3724
|
+
5. Dimension 4 (Sprint Health): produces a per-sprint summary table (total, done, in-progress, not started, completion %) and flags stalled items, blockers, and backlog grooming issues
|
|
3725
|
+
6. Dimension 5 (Release State): produces a READY / AT RISK / NOT READY release readiness summary, lists blocking items, and records deployment status per environment as provided by the user
|
|
3726
|
+
7. Report format: executive summary → per-dimension findings with severity (FAIL / WARNING / PASS) → prioritized action items table → skipped dimensions with required artifacts
|
|
3727
|
+
8. Severity aggregation: any FAIL → overall FAIL; no FAIL but any WARNING → WARNING; all PASS or SKIPPED → PASS
|
|
3728
|
+
9. After saving the report, Gad asks the user if they want to drill into any finding or take action on issues (FR171 gap remediation offered for FAIL items)
|
|
3729
|
+
10. `lib/bmad-extension/skills/sqa-audit/bmad-skill-manifest.yaml` exists with `type: skill`, `name: sqa-audit`, `module: ma-skills`
|
|
3730
|
+
11. `lib/bmad-extension/module-help.csv` contains an entry for `sqa-audit` in the `4-implementation` phase under module `ma-skills`
|
|
3731
|
+
12. `test/extension-module-restructure.test.js` includes `sqa-audit` in `expectedSqaSkills` and passes
|
|
3732
|
+
|
|
3733
|
+
**Technical Notes:**
|
|
3734
|
+
- Required artifact reads: `_bmad/bmm/config.yaml` (resolve output_folder), `prd.md`, `architecture.md`, `epics.md`, `sprint-status.yaml`; optional: `project-context.md`
|
|
3735
|
+
- Dimension skips gracefully when an artifact is missing — produces a SKIPPED entry in the report with the artifact path that was not found
|
|
3736
|
+
- Report is saved as markdown; no HTML or external rendering required
|
|
3737
|
+
|
|
3738
|
+
---
|
|
3739
|
+
|
|
3740
|
+
### Story 20.3 — IEEE/ISO/IEC 12207 Compliance Workflow Skill
|
|
3741
|
+
|
|
3742
|
+
**As a** quality engineer or project manager,
|
|
3743
|
+
**I want** Gad to evaluate the project's compliance with IEEE/ISO/IEC 12207:2017,
|
|
3744
|
+
**so that** I have a structured compliance posture report with gap analysis and recommended corrective actions.
|
|
3745
|
+
|
|
3746
|
+
**Acceptance Criteria:**
|
|
3747
|
+
|
|
3748
|
+
1. `lib/bmad-extension/skills/sqa-ieee12207/SKILL.md` exists and implements the full five-step compliance workflow:
|
|
3749
|
+
- Step 1: Scope selection — presents the four process groups, asks full vs. selected, waits for user input
|
|
3750
|
+
- Step 2: Data collection — reads all required artifacts, reports found vs. missing
|
|
3751
|
+
- Step 3: Evaluates all 23 process areas in selected groups with per-area ratings
|
|
3752
|
+
- Step 4: Compiles the compliance matrix report in the specified format
|
|
3753
|
+
- Step 5: Saves the report to `{output_folder}/sqa-ieee12207-report-{YYYY-MM-DD}.md`, confirms path, and offers to create backlog stories for P1 gaps (FR171)
|
|
3754
|
+
2. The four process groups and their process areas are correctly modeled in the SKILL.md:
|
|
3755
|
+
- Technical Processes (11 areas: 6.4.1–6.4.11)
|
|
3756
|
+
- Technical Management Processes (8 areas: 6.3.1–6.3.8)
|
|
3757
|
+
- Agreement Processes (2 areas: 6.1.1–6.1.2)
|
|
3758
|
+
- Organizational Enabling Processes (2 areas: 6.2.1, 6.2.7)
|
|
3759
|
+
3. Each evaluated process area maps to specific project artifacts as evidence sources (e.g., 6.4.2 Stakeholder Requirements → prd.md; 6.3.5 Configuration Management → git history, CHANGELOG, version files)
|
|
3760
|
+
4. Each area receives one of five ratings: COMPLIANT, PARTIAL, NON-COMPLIANT, NOT APPLICABLE, ORGANIZATION-SCOPE — with the rating justified by evidence found or absent
|
|
3761
|
+
5. Report includes: executive summary, per-group compliance matrix (clause | process area | rating | key evidence | gaps), gap analysis (critical gaps vs. partial compliance), prioritized recommended-action table (priority, action, clause, effort), compliance summary table (counts per group + overall compliance percentage)
|
|
3762
|
+
6. When the user confirms gap-to-story creation, Gad iterates over P1 (NON-COMPLIANT) gaps and offers to invoke `create-bug-story` for each — one story per gap
|
|
3763
|
+
7. All evaluation logic and process area definitions are embedded in SKILL.md — no network access required (NFR43)
|
|
3764
|
+
8. `lib/bmad-extension/skills/sqa-ieee12207/bmad-skill-manifest.yaml` exists with `type: skill`, `name: sqa-ieee12207`, `module: ma-skills`
|
|
3765
|
+
9. `lib/bmad-extension/module-help.csv` contains an entry for `sqa-ieee12207` in the `4-implementation` phase under module `ma-skills`
|
|
3766
|
+
10. `test/extension-module-restructure.test.js` includes `sqa-ieee12207` in `expectedSqaSkills` and passes
|
|
3767
|
+
|
|
3768
|
+
**Technical Notes:**
|
|
3769
|
+
- The workflow is a compliance *posture* assessment, not a formal certification — it produces a structured report based on available project artifacts; it makes no claim of organizational-level ISO certification
|
|
3770
|
+
- Organizational Enabling Processes (Group 4) are assessed from project artifacts only where possible; remaining items are automatically rated ORGANIZATION-SCOPE with a note explaining what organizational evidence would be needed
|
|
3771
|
+
- Gap-to-story creation is optional and per-item — the user can accept or skip each P1 gap individually
|
|
3772
|
+
|
|
3773
|
+
---
|
|
3774
|
+
|
|
3775
|
+
### Story 20.4 — Test Suite Update for SQA Skills
|
|
3776
|
+
|
|
3777
|
+
**As a** developer,
|
|
3778
|
+
**I want** the extension module restructure test to verify the SQA skills exist and are registered,
|
|
3779
|
+
**so that** future changes that accidentally remove or misconfigure SQA skills are caught by the automated test suite.
|
|
3780
|
+
|
|
3781
|
+
**Acceptance Criteria:**
|
|
3782
|
+
|
|
3783
|
+
1. `test/extension-module-restructure.test.js` includes `expectedSqaSkills = ['sqa-audit', 'sqa-ieee12207']`
|
|
3784
|
+
2. `bmad-ma-agent-sqa` is included in `expectedAgentSkills`
|
|
3785
|
+
3. All skill directory count tests are updated to reflect the 3 new directories (agent + 2 workflow skills): total skill count is previous count + 3
|
|
3786
|
+
4. All CSV row count tests are updated to reflect the 3 new `module-help.csv` entries: total CSV row count is previous count + 3
|
|
3787
|
+
5. New test `'all 2 SQA skill directories exist'` verifies both `sqa-audit` and `sqa-ieee12207` directories exist in `lib/bmad-extension/skills/`
|
|
3788
|
+
6. New test `'CSV has entries for all 2 SQA skills'` verifies both workflow skills are in `module-help.csv`
|
|
3789
|
+
7. All tests in `test/extension-module-restructure.test.js` pass with 0 failures after these changes
|
|
3790
|
+
|
|
3791
|
+
**Technical Notes:**
|
|
3792
|
+
- This story has no runtime behavior — it is test-only
|
|
3793
|
+
- The `.gitkeep` files required in each new skill directory must be present for the existing `.gitkeep` coverage test to pass
|
|
3794
|
+
|
|
3795
|
+
---
|
|
3796
|
+
|
|
3797
|
+
### Epic 20 — Cross-Epic Notes
|
|
3798
|
+
|
|
3799
|
+
**Relationship to Epic 15 (BMAD 6.2.0 Agent Architecture Migration):**
|
|
3800
|
+
Gad follows the SKILL.md-based agent pattern established by Epic 15. Epic 15 must be complete before Story 20.1 to ensure the agent folder structure and BMAD agent dispatch mechanism are stable.
|
|
3801
|
+
|
|
3802
|
+
**Relationship to Epic 11 (Bug Management System):**
|
|
3803
|
+
Story 20.3 invokes `create-bug-story` for IEEE 12207 P1 gaps (FR171). Epic 11 must be complete — specifically Story 11.2 (BMAD extension workflow for bug story creation) — before this feature of Story 20.3 is active.
|
|
3804
|
+
|
|
3805
|
+
**Relationship to Epic 17 (Sprint Management Model Rework):**
|
|
3806
|
+
Story 20.2 reads `sprint-status.yaml` for Sprint Health analysis. The unified schema established by Epic 17 (FR133–FR135) defines the file structure that the audit workflow depends on.
|
|
3807
|
+
|
|
3808
|
+
**File outputs produced by this epic:**
|
|
3809
|
+
```
|
|
3810
|
+
lib/
|
|
3811
|
+
└── bmad-extension/
|
|
3812
|
+
└── skills/
|
|
3813
|
+
├── bmad-ma-agent-sqa/
|
|
3814
|
+
│ ├── .gitkeep
|
|
3815
|
+
│ ├── SKILL.md
|
|
3816
|
+
│ └── bmad-skill-manifest.yaml
|
|
3817
|
+
├── sqa-audit/
|
|
3818
|
+
│ ├── .gitkeep
|
|
3819
|
+
│ ├── SKILL.md
|
|
3820
|
+
│ └── bmad-skill-manifest.yaml
|
|
3821
|
+
└── sqa-ieee12207/
|
|
3822
|
+
├── .gitkeep
|
|
3823
|
+
├── SKILL.md
|
|
3824
|
+
└── bmad-skill-manifest.yaml
|
|
3825
|
+
|
|
3826
|
+
_bmad-output/ (generated at runtime, not committed)
|
|
3827
|
+
├── sqa-audit-report-{date}.md
|
|
3828
|
+
└── sqa-ieee12207-report-{date}.md
|
|
3829
|
+
```
|
|
3830
|
+
|
|
3831
|
+
**Development Execution Order:**
|
|
3832
|
+
1. Story 20.4 (test suite update) — can be written first as a failing test to drive implementation
|
|
3833
|
+
2. Story 20.1 (Gad agent skill) — no dependency on other Epic 20 stories; establishes the agent entry point
|
|
3834
|
+
3. Story 20.2 (Project Audit workflow) — no dependency on 20.1 at the code level; can develop in parallel with 20.1
|
|
3835
|
+
4. Story 20.3 (IEEE 12207 workflow) — no dependency on other Epic 20 stories; can develop in parallel with 20.1 and 20.2
|