ma-agents 3.6.2 → 3.8.0
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/CONTRIBUTING.md +139 -0
- package/README.md +27 -11
- package/bin/cli.js +34 -10
- package/docs/deployment/vllm-nemotron.md +4 -2
- package/lib/.bmad-extension-plugin.build-1264-1777348888201/.claude-plugin/marketplace.json +109 -0
- package/lib/{bmad-extension → .bmad-extension-plugin.build-1264-1777348888201/skills}/module-help.csv +5 -5
- package/lib/.bmad-extension-plugin.build-1264-1777348888201/skills/module.yaml +20 -0
- package/lib/.bmad-extension-plugin.build-24696-1777348768444/.claude-plugin/marketplace.json +109 -0
- package/lib/.bmad-extension-plugin.build-24696-1777348768444/skills/module-help.csv +62 -0
- package/lib/.bmad-extension-plugin.build-24696-1777348768444/skills/module.yaml +20 -0
- package/lib/.bmad-extension-plugin.build-25428-1777348694953/.claude-plugin/marketplace.json +109 -0
- package/lib/.bmad-extension-plugin.build-25428-1777348694953/skills/module-help.csv +62 -0
- package/lib/.bmad-extension-plugin.build-25428-1777348694953/skills/module.yaml +20 -0
- package/lib/agents.js +36 -6
- package/lib/bmad-cache/bmb/.claude-plugin/marketplace.json +4 -11
- package/lib/bmad-cache/bmb/README.md +1 -1
- package/lib/bmad-cache/bmb/_git_preserved/index +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.idx +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/{pack-554778ad4e7254827618ebd2497c3f4bce9054a4.pack → pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.pack} +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.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/refs/tags/v1.7.0 +1 -0
- package/lib/bmad-cache/bmb/_git_preserved/shallow +1 -1
- package/lib/bmad-cache/bmb/package-lock.json +2 -2
- package/lib/bmad-cache/bmb/package.json +2 -7
- package/lib/bmad-cache/bmb/skills/bmad-agent-builder/assets/customize-template.toml +62 -0
- package/lib/bmad-cache/bmb/skills/bmad-agent-builder/assets/sample-customize-analyst.toml +87 -0
- package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/assets/customize-template.toml +56 -0
- package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/assets/sample-customize-product-brief.toml +51 -0
- package/lib/bmad-cache/bmb/tools/validate-doc-links.cjs +6 -1
- package/lib/bmad-cache/bmb/website/astro.config.mjs +5 -1
- package/lib/bmad-cache/cache-manifest.json +13 -11
- package/lib/bmad-cache/cis/.claude-plugin/marketplace.json +1 -1
- package/lib/bmad-cache/cis/README.md +1 -1
- package/lib/bmad-cache/cis/_git_preserved/index +0 -0
- package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-cad8ff313ea5db860ddcc7780f03917dcba1da8d.idx +0 -0
- package/lib/bmad-cache/cis/_git_preserved/objects/pack/{pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.pack → pack-cad8ff313ea5db860ddcc7780f03917dcba1da8d.pack} +0 -0
- package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-cad8ff313ea5db860ddcc7780f03917dcba1da8d.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/package.json +1 -1
- package/lib/bmad-cache/cis/src/module.yaml +49 -0
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-brainstorming-coach/customize.toml +38 -0
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-creative-problem-solver/customize.toml +38 -0
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-design-thinking-coach/customize.toml +39 -0
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-innovation-strategist/customize.toml +38 -0
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-presentation-master/customize.toml +73 -0
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-storyteller/customize.toml +60 -0
- package/lib/bmad-cache/cis/src/skills/bmad-cis-design-thinking/customize.toml +41 -0
- package/lib/bmad-cache/cis/src/skills/bmad-cis-innovation-strategy/customize.toml +41 -0
- package/lib/bmad-cache/cis/src/skills/bmad-cis-problem-solving/customize.toml +42 -0
- package/lib/bmad-cache/cis/src/skills/bmad-cis-storytelling/customize.toml +41 -0
- package/lib/bmad-cache/cis/tools/build-docs.mjs +8 -0
- package/lib/bmad-cache/cis/website/astro.config.mjs +34 -4
- package/lib/bmad-cache/cis/website/src/content/config.ts +2 -1
- package/lib/bmad-cache/cis/website/src/content/i18n/zh-CN.json +28 -0
- package/lib/bmad-cache/cis/website/src/lib/locales.mjs +27 -0
- package/lib/bmad-cache/gds/.claude-plugin/marketplace.json +7 -6
- package/lib/bmad-cache/gds/README.md +5 -3
- package/lib/bmad-cache/gds/_git_preserved/index +0 -0
- package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-c1322f7c8531a89dc4f3f34c4955d194f286c1e6.idx +0 -0
- package/lib/bmad-cache/gds/_git_preserved/objects/pack/{pack-ac967149d58fba215d07238ad8881bdbdad5c9c3.pack → pack-c1322f7c8531a89dc4f3f34c4955d194f286c1e6.pack} +0 -0
- package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-c1322f7c8531a89dc4f3f34c4955d194f286c1e6.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/agents/gds-agent-game-architect/customize.toml +57 -0
- package/lib/bmad-cache/gds/src/agents/gds-agent-game-designer/customize.toml +59 -0
- package/lib/bmad-cache/gds/src/agents/gds-agent-game-dev/customize.toml +129 -0
- package/lib/bmad-cache/gds/src/agents/gds-agent-game-solo-dev/customize.toml +60 -0
- package/lib/bmad-cache/gds/src/agents/gds-agent-tech-writer/customize.toml +65 -0
- package/lib/bmad-cache/gds/src/module-help.csv +4 -4
- package/lib/bmad-cache/gds/src/module.yaml +43 -1
- package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-brainstorm-game/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-create-game-brief/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/1-preproduction/research/gds-domain-research/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-gdd/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-narrative/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-prd/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-ux-design/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-edit-gdd/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-edit-prd/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-gdd/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-gdd/data/genre-complexity.csv +26 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/data/domain-complexity.csv +15 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/data/project-types.csv +11 -0
- package/lib/bmad-cache/gds/src/workflows/3-technical/gds-check-implementation-readiness/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/3-technical/gds-create-epics-and-stories/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/3-technical/gds-generate-project-context/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-code-review/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-correct-course/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-create-story/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-dev-story/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-retrospective/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-sprint-planning/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-sprint-status/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-e2e-scaffold/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-performance-test/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-playtest-plan/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-automate/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-design/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-framework/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-review/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/gds-document-project/customize.toml +41 -0
- package/lib/bmad-cache/gds/src/workflows/gds-quick-flow/gds-quick-dev/customize.toml +41 -0
- package/lib/bmad-cache/tea/.claude-plugin/marketplace.json +1 -1
- package/lib/bmad-cache/tea/.github/CODE_OF_CONDUCT.md +128 -0
- package/lib/bmad-cache/tea/.github/FUNDING.yaml +15 -0
- package/lib/bmad-cache/tea/.github/ISSUE_TEMPLATE/config.yaml +11 -0
- package/lib/bmad-cache/tea/.github/ISSUE_TEMPLATE/feature_request.md +70 -0
- package/lib/bmad-cache/tea/.github/ISSUE_TEMPLATE/issue.md +61 -0
- package/lib/bmad-cache/tea/.github/workflows/docs.yaml +66 -0
- package/lib/bmad-cache/tea/.github/workflows/manual-release.yaml +216 -0
- package/lib/bmad-cache/tea/.github/workflows/quality.yaml +117 -0
- package/lib/bmad-cache/tea/.vscode/settings.json +47 -0
- package/lib/bmad-cache/tea/README.md +63 -55
- package/lib/bmad-cache/tea/_git_preserved/index +0 -0
- package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-9b16db8eb5022c18cef1f0a27d63b6e0f4bc2b2a.idx +0 -0
- package/lib/bmad-cache/tea/_git_preserved/objects/pack/{pack-e75385cd52b693dbb8a3b2afb50058952543b3a2.pack → pack-9b16db8eb5022c18cef1f0a27d63b6e0f4bc2b2a.pack} +0 -0
- package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-9b16db8eb5022c18cef1f0a27d63b6e0f4bc2b2a.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/explanation/engagement-models.md +1 -1
- package/lib/bmad-cache/tea/docs/explanation/tea-overview.md +1 -1
- package/lib/bmad-cache/tea/docs/glossary/index.md +1 -1
- package/lib/bmad-cache/tea/docs/how-to/customization/extend-tea-with-custom-workflows.md +29 -0
- package/lib/bmad-cache/tea/docs/how-to/workflows/run-trace.md +27 -20
- package/lib/bmad-cache/tea/docs/how-to/workflows/teach-me-testing.md +2 -2
- package/lib/bmad-cache/tea/docs/reference/commands.md +3 -3
- package/lib/bmad-cache/tea/docs/reference/troubleshooting.md +36 -0
- package/lib/bmad-cache/tea/docs/tutorials/learn-testing-tea-academy.md +1 -1
- package/lib/bmad-cache/tea/package-lock.json +2 -2
- package/lib/bmad-cache/tea/package.json +3 -3
- package/lib/bmad-cache/tea/src/agents/bmad-tea/SKILL.md +54 -44
- package/lib/bmad-cache/tea/src/agents/bmad-tea/customize.toml +104 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/contract-testing.md +32 -15
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pact-consumer-framework-setup.md +134 -12
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pact-mcp.md +1 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pactjs-utils-overview.md +15 -12
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-module-setup.md +122 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-providers.md +155 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-template-matchers.md +160 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-timeout-error.md +130 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/tea-index.csv +13 -4
- package/lib/bmad-cache/tea/src/module.yaml +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/README.md +5 -3
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/SKILL.md +124 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/checklist.md +3 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/customize.toml +40 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/instructions.md +7 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-01-init.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-01b-continue.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-02-assess.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-01.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-02.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-03.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-04.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-05.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-06.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-07.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-05-completion.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-e/step-e-01-assess-workflow.md +2 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-e/step-e-02-apply-edits.md +9 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-v/step-v-01-validate.md +12 -3
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/SKILL.md +80 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/customize.toml +40 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/instructions.md +2 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/contract-testing.md +32 -15
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-consumer-framework-setup.md +134 -12
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pact-mcp.md +1 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-overview.md +15 -12
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/pactjs-utils-zod-to-pact.md +262 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-module-setup.md +122 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-providers.md +155 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-template-matchers.md +160 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-timeout-error.md +130 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/tea-index.csv +13 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-01-preflight-and-context.md +3 -3
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-02-generation-mode.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-03-test-strategy.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-04-generate-tests.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-04a-subagent-api-failing.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-04c-aggregate.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-c/step-05-validate-and-complete.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-e/step-01-assess.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-e/step-02-apply-edit.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/steps-v/step-01-validate.md +9 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/SKILL.md +80 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/customize.toml +40 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/instructions.md +2 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/contract-testing.md +18 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-consumer-framework-setup.md +134 -12
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pact-mcp.md +1 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-module-setup.md +122 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-providers.md +155 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-template-matchers.md +160 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-timeout-error.md +130 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/tea-index.csv +12 -4
- 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-02-identify-targets.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-03-generate-tests.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-03a-subagent-api.md +9 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-03c-aggregate.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-c/step-04-validate-and-summarize.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-e/step-01-assess.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-e/step-02-apply-edit.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/steps-v/step-01-validate.md +9 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/SKILL.md +80 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/customize.toml +40 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/instructions.md +2 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/contract-testing.md +18 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-consumer-framework-setup.md +134 -12
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pact-mcp.md +1 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-module-setup.md +122 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-providers.md +155 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-template-matchers.md +160 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-timeout-error.md +130 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/tea-index.csv +12 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-01-preflight.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-02-generate-pipeline.md +15 -7
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-03-configure-quality-gates.md +7 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-c/step-04-validate-and-summary.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-e/step-01-assess.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-e/step-02-apply-edit.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/steps-v/step-01-validate.md +9 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/SKILL.md +80 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/customize.toml +40 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/instructions.md +2 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/contract-testing.md +18 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-consumer-framework-setup.md +134 -12
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pact-mcp.md +1 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-module-setup.md +122 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-providers.md +155 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-template-matchers.md +160 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-timeout-error.md +130 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/tea-index.csv +12 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-01-preflight.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-02-select-framework.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-03-scaffold-framework.md +11 -7
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-04-docs-and-scripts.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-c/step-05-validate-and-summary.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-e/step-01-assess.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-e/step-02-apply-edit.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/steps-v/step-01-validate.md +9 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/SKILL.md +80 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/customize.toml +40 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/instructions.md +2 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/contract-testing.md +18 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-consumer-framework-setup.md +134 -12
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pact-mcp.md +1 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-module-setup.md +122 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-providers.md +155 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-template-matchers.md +160 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-timeout-error.md +130 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/tea-index.csv +12 -4
- 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-nfr/steps-c/step-02-define-thresholds.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-03-gather-evidence.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04-evaluate-and-score.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04e-aggregate-nfr.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-05-generate-report.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-e/step-01-assess.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-e/step-02-apply-edit.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-v/step-01-validate.md +9 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/SKILL.md +82 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/customize.toml +40 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/instructions.md +2 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/contract-testing.md +18 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-consumer-framework-setup.md +134 -12
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pact-mcp.md +1 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-module-setup.md +122 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-providers.md +155 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-template-matchers.md +160 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-timeout-error.md +130 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/tea-index.csv +12 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-01-detect-mode.md +7 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-01b-resume.md +29 -15
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-02-load-context.md +7 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-03-risk-and-testability.md +7 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-04-coverage-plan.md +7 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-05-generate-output.md +14 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-e/step-01-assess.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-e/step-02-apply-edit.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-v/step-01-validate.md +9 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-architecture-template.md +3 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-qa-template.md +3 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-template.md +3 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/SKILL.md +80 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/customize.toml +40 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/instructions.md +2 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/contract-testing.md +18 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-consumer-framework-setup.md +134 -12
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pact-mcp.md +1 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-module-setup.md +122 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-providers.md +155 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-template-matchers.md +160 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-timeout-error.md +130 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/tea-index.csv +12 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-01-load-context.md +3 -3
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-02-discover-tests.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-03-quality-evaluation.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-03a-subagent-determinism.md +43 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-03f-aggregate-scores.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-c/step-04-generate-report.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-e/step-01-assess.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-e/step-02-apply-edit.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/steps-v/step-01-validate.md +9 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/SKILL.md +82 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/checklist.md +42 -18
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/customize.toml +40 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/instructions.md +6 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/contract-testing.md +18 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-broker-webhooks.md +237 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-consumer-framework-setup.md +134 -12
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pact-mcp.md +1 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-consumer-helpers.md +111 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/pactjs-utils-provider-verifier.md +83 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-module-setup.md +122 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-providers.md +155 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-risk-guidance.md +114 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-template-matchers.md +160 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-testing-fundamentals.md +42 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-timeout-error.md +130 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/knowledge/webhook-waiting-querying.md +167 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/tea-index.csv +12 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-01-load-context.md +74 -13
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-01b-resume.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-02-discover-tests.md +24 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-03-map-criteria.md +15 -11
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-04-analyze-gaps.md +210 -3
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-c/step-05-gate-decision.md +477 -62
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-e/step-01-assess.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-e/step-02-apply-edit.md +8 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/steps-v/step-01-validate.md +9 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/trace-template.md +10 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/workflow-plan.md +14 -11
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/workflow.yaml +24 -0
- package/lib/bmad-cache/tea/test/test-installation-components.js +210 -66
- package/lib/bmad-cache/tea/test/test-knowledge-base.js +6 -1
- package/lib/bmad-cache/tea/test/test-release-metadata.js +71 -0
- package/lib/bmad-cache/tea/tools/validate-agent-schema.js +73 -0
- package/lib/bmad-customize/bmm-qa.customize.yaml +1 -1
- package/lib/bmad-extension/.claude-plugin/marketplace.json.template +117 -0
- package/lib/bmad-extension/skills/ma-agent-cyber/.gitkeep +0 -0
- package/lib/bmad-extension/skills/ma-agent-cyber/SKILL.md +49 -0
- package/lib/bmad-extension/skills/ma-agent-cyber/bmad-skill-manifest.yaml +11 -0
- package/lib/bmad-extension/skills/ma-agent-devops/.gitkeep +0 -0
- package/lib/bmad-extension/skills/ma-agent-devops/SKILL.md +49 -0
- package/lib/bmad-extension/skills/ma-agent-devops/bmad-skill-manifest.yaml +11 -0
- package/lib/bmad-extension/skills/ma-agent-ml/.gitkeep +0 -0
- package/lib/bmad-extension/skills/ma-agent-ml/SKILL.md +59 -0
- package/lib/bmad-extension/skills/ma-agent-ml/bmad-skill-manifest.yaml +11 -0
- package/lib/bmad-extension/skills/ma-agent-sqa/.gitkeep +0 -0
- package/lib/bmad-extension/skills/ma-agent-sqa/SKILL.md +59 -0
- package/lib/bmad-extension/skills/ma-agent-sqa/bmad-skill-manifest.yaml +11 -0
- package/lib/bmad-extension/skills/ma-agent-sre/.gitkeep +0 -0
- package/lib/bmad-extension/skills/ma-agent-sre/SKILL.md +49 -0
- package/lib/bmad-extension/skills/ma-agent-sre/bmad-skill-manifest.yaml +11 -0
- package/lib/bmad-extension/skills/module-help.csv +62 -0
- package/lib/bmad-extension/skills/module.yaml +20 -0
- package/lib/bmad-extension-plugin/.claude-plugin/marketplace.json +109 -0
- package/lib/bmad-extension-plugin/skills/add-sprint/SKILL.md +175 -0
- package/lib/bmad-extension-plugin/skills/add-sprint/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/add-to-sprint/SKILL.md +243 -0
- package/lib/bmad-extension-plugin/skills/add-to-sprint/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/bmad-dev-story/SKILL.md +6 -0
- package/lib/bmad-extension-plugin/skills/bmad-dev-story/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/bmad-dev-story/checklist.md +80 -0
- package/lib/bmad-extension-plugin/skills/bmad-dev-story/workflow.md +509 -0
- package/lib/bmad-extension-plugin/skills/bmad-sprint-planning/SKILL.md +6 -0
- package/lib/bmad-extension-plugin/skills/bmad-sprint-planning/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/bmad-sprint-planning/checklist.md +74 -0
- package/lib/bmad-extension-plugin/skills/bmad-sprint-planning/sprint-status-template.yaml +89 -0
- package/lib/bmad-extension-plugin/skills/bmad-sprint-planning/workflow.md +372 -0
- package/lib/bmad-extension-plugin/skills/bmad-sprint-status/SKILL.md +6 -0
- package/lib/bmad-extension-plugin/skills/bmad-sprint-status/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/bmad-sprint-status/workflow.md +434 -0
- package/lib/bmad-extension-plugin/skills/cleanup-done/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/cleanup-done/SKILL.md +215 -0
- package/lib/bmad-extension-plugin/skills/cleanup-done/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/close-sprint/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/close-sprint/SKILL.md +379 -0
- package/lib/bmad-extension-plugin/skills/close-sprint/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/create-bug-story/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/create-bug-story/SKILL.md +195 -0
- package/lib/bmad-extension-plugin/skills/create-bug-story/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/cyber-generate-certs/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/cyber-generate-certs/SKILL.md +27 -0
- package/lib/bmad-extension-plugin/skills/cyber-generate-certs/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/cyber-immunity-estimation/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/cyber-immunity-estimation/SKILL.md +29 -0
- package/lib/bmad-extension-plugin/skills/cyber-immunity-estimation/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/cyber-security-audit/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/cyber-security-audit/SKILL.md +27 -0
- package/lib/bmad-extension-plugin/skills/cyber-security-audit/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/cyber-vault-secrets/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/cyber-vault-secrets/SKILL.md +28 -0
- package/lib/bmad-extension-plugin/skills/cyber-vault-secrets/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/cyber-verify-docker-users/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/cyber-verify-docker-users/SKILL.md +23 -0
- package/lib/bmad-extension-plugin/skills/cyber-verify-docker-users/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/cyber-verify-image-signature/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/cyber-verify-image-signature/SKILL.md +22 -0
- package/lib/bmad-extension-plugin/skills/cyber-verify-image-signature/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/cyber-vulnerability-scan/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/cyber-vulnerability-scan/SKILL.md +28 -0
- package/lib/bmad-extension-plugin/skills/cyber-vulnerability-scan/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/devops-configure-infrastructure/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/devops-configure-infrastructure/SKILL.md +27 -0
- package/lib/bmad-extension-plugin/skills/devops-configure-infrastructure/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/devops-disconnected-deployment/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/devops-disconnected-deployment/SKILL.md +27 -0
- package/lib/bmad-extension-plugin/skills/devops-disconnected-deployment/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/devops-docker-compose-setup/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/devops-docker-compose-setup/SKILL.md +26 -0
- package/lib/bmad-extension-plugin/skills/devops-docker-compose-setup/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/devops-manage-helm/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/devops-manage-helm/SKILL.md +28 -0
- package/lib/bmad-extension-plugin/skills/devops-manage-helm/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/devops-sign-docker-image/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/devops-sign-docker-image/SKILL.md +24 -0
- package/lib/bmad-extension-plugin/skills/devops-sign-docker-image/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/generate-backlog/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/generate-backlog/SKILL.md +195 -0
- package/lib/bmad-extension-plugin/skills/generate-backlog/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ma-agent-cyber/.gitkeep +0 -0
- package/lib/{bmad-extension/skills/bmad-ma-agent-cyber → bmad-extension-plugin/skills/ma-agent-cyber}/SKILL.md +1 -1
- package/lib/{bmad-extension/skills/bmad-ma-agent-cyber → bmad-extension-plugin/skills/ma-agent-cyber}/bmad-skill-manifest.yaml +1 -1
- package/lib/bmad-extension-plugin/skills/ma-agent-devops/.gitkeep +0 -0
- package/lib/{bmad-extension/skills/bmad-ma-agent-devops → bmad-extension-plugin/skills/ma-agent-devops}/SKILL.md +1 -1
- package/lib/{bmad-extension/skills/bmad-ma-agent-devops → bmad-extension-plugin/skills/ma-agent-devops}/bmad-skill-manifest.yaml +1 -1
- package/lib/bmad-extension-plugin/skills/ma-agent-ml/.gitkeep +0 -0
- package/lib/{bmad-extension/skills/bmad-ma-agent-ml → bmad-extension-plugin/skills/ma-agent-ml}/SKILL.md +1 -1
- package/lib/{bmad-extension/skills/bmad-ma-agent-ml → bmad-extension-plugin/skills/ma-agent-ml}/bmad-skill-manifest.yaml +1 -1
- package/lib/bmad-extension-plugin/skills/ma-agent-sqa/.gitkeep +0 -0
- package/lib/{bmad-extension/skills/bmad-ma-agent-sqa → bmad-extension-plugin/skills/ma-agent-sqa}/SKILL.md +1 -1
- package/lib/{bmad-extension/skills/bmad-ma-agent-sqa → bmad-extension-plugin/skills/ma-agent-sqa}/bmad-skill-manifest.yaml +1 -1
- package/lib/bmad-extension-plugin/skills/ma-agent-sre/.gitkeep +0 -0
- package/lib/{bmad-extension/skills/bmad-ma-agent-sre → bmad-extension-plugin/skills/ma-agent-sre}/SKILL.md +1 -1
- package/lib/{bmad-extension/skills/bmad-ma-agent-sre → bmad-extension-plugin/skills/ma-agent-sre}/bmad-skill-manifest.yaml +1 -1
- package/lib/bmad-extension-plugin/skills/mil498-ocd/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/mil498-ocd/SKILL.md +30 -0
- package/lib/bmad-extension-plugin/skills/mil498-ocd/bmad-skill-manifest.yaml +5 -0
- package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/01-discover-project-artifacts.md +26 -0
- package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/02-load-template.md +10 -0
- package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/03-generate-document.md +90 -0
- package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/04-validate.md +14 -0
- package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/05-review.md +15 -0
- package/lib/bmad-extension-plugin/skills/mil498-ocd/prompts/06-save.md +15 -0
- package/lib/bmad-extension-plugin/skills/mil498-ocd/template.md +169 -0
- package/lib/bmad-extension-plugin/skills/mil498-requirement-quality/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/mil498-requirement-quality/SKILL.md +105 -0
- package/lib/bmad-extension-plugin/skills/mil498-requirement-quality/bmad-skill-manifest.yaml +5 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdd/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdd/SKILL.md +30 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdd/bmad-skill-manifest.yaml +5 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/01-discover-project-artifacts.md +50 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/02-load-template.md +10 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/03-generate-document.md +98 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/04-validate.md +16 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/05-review.md +15 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdd/prompts/06-save.md +19 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdd/template.md +163 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdp/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdp/SKILL.md +30 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdp/bmad-skill-manifest.yaml +5 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/01-discover-project-artifacts.md +32 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/02-load-template.md +10 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/03-generate-document.md +187 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/04-validate.md +13 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/05-review.md +15 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdp/prompts/06-save.md +14 -0
- package/lib/bmad-extension-plugin/skills/mil498-sdp/template.md +307 -0
- package/lib/bmad-extension-plugin/skills/mil498-srs/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/mil498-srs/SKILL.md +30 -0
- package/lib/bmad-extension-plugin/skills/mil498-srs/bmad-skill-manifest.yaml +5 -0
- package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/01-discover-project-artifacts.md +42 -0
- package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/02-load-template.md +10 -0
- package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/03-generate-document.md +100 -0
- package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/04-validate.md +16 -0
- package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/05-review.md +15 -0
- package/lib/bmad-extension-plugin/skills/mil498-srs/prompts/06-save.md +18 -0
- package/lib/bmad-extension-plugin/skills/mil498-srs/template.md +219 -0
- package/lib/bmad-extension-plugin/skills/mil498-ssdd/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/mil498-ssdd/SKILL.md +32 -0
- package/lib/bmad-extension-plugin/skills/mil498-ssdd/bmad-skill-manifest.yaml +5 -0
- package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/01-discover-project-artifacts.md +32 -0
- package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/02-load-template.md +10 -0
- package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/03-csci-discovery-interview.md +43 -0
- package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/04-generate-document.md +96 -0
- package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/05-validate.md +18 -0
- package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/06-review.md +16 -0
- package/lib/bmad-extension-plugin/skills/mil498-ssdd/prompts/07-save.md +16 -0
- package/lib/bmad-extension-plugin/skills/mil498-ssdd/template.md +154 -0
- package/lib/bmad-extension-plugin/skills/mil498-sss/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/mil498-sss/SKILL.md +31 -0
- package/lib/bmad-extension-plugin/skills/mil498-sss/bmad-skill-manifest.yaml +5 -0
- package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/01-discover-project-artifacts.md +31 -0
- package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/02-load-template.md +10 -0
- package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/03-generate-document.md +108 -0
- package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/04-validate.md +16 -0
- package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/05-review.md +15 -0
- package/lib/bmad-extension-plugin/skills/mil498-sss/prompts/06-save.md +15 -0
- package/lib/bmad-extension-plugin/skills/mil498-sss/template.md +225 -0
- package/lib/bmad-extension-plugin/skills/mil498-std/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/mil498-std/SKILL.md +30 -0
- package/lib/bmad-extension-plugin/skills/mil498-std/bmad-skill-manifest.yaml +5 -0
- package/lib/bmad-extension-plugin/skills/mil498-std/prompts/01-discover-project-artifacts.md +42 -0
- package/lib/bmad-extension-plugin/skills/mil498-std/prompts/02-load-template.md +10 -0
- package/lib/bmad-extension-plugin/skills/mil498-std/prompts/03-generate-document.md +117 -0
- package/lib/bmad-extension-plugin/skills/mil498-std/prompts/04-validate.md +15 -0
- package/lib/bmad-extension-plugin/skills/mil498-std/prompts/05-review.md +15 -0
- package/lib/bmad-extension-plugin/skills/mil498-std/prompts/06-save.md +15 -0
- package/lib/bmad-extension-plugin/skills/mil498-std/template.md +188 -0
- package/lib/bmad-extension-plugin/skills/ml-advise/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-advise/SKILL.md +76 -0
- package/lib/bmad-extension-plugin/skills/ml-advise/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-advise/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/ml-analysis/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-analysis/SKILL.md +60 -0
- package/lib/bmad-extension-plugin/skills/ml-analysis/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-analysis/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/ml-architecture/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-architecture/SKILL.md +55 -0
- package/lib/bmad-extension-plugin/skills/ml-architecture/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-architecture/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/ml-detailed-design/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-detailed-design/SKILL.md +67 -0
- package/lib/bmad-extension-plugin/skills/ml-detailed-design/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-detailed-design/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/ml-eda/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-eda/SKILL.md +56 -0
- package/lib/bmad-extension-plugin/skills/ml-eda/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-eda/scripts/baseline_classifier.py +522 -0
- package/lib/bmad-extension-plugin/skills/ml-eda/scripts/class_weights_calculator.py +295 -0
- package/lib/bmad-extension-plugin/skills/ml-eda/scripts/clustering_explorer.py +383 -0
- package/lib/bmad-extension-plugin/skills/ml-eda/scripts/eda_analyzer.py +654 -0
- package/lib/bmad-extension-plugin/skills/ml-eda/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/ml-experiment/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-experiment/SKILL.md +74 -0
- package/lib/bmad-extension-plugin/skills/ml-experiment/assets/advanced_trainer_configs.py +430 -0
- package/lib/bmad-extension-plugin/skills/ml-experiment/assets/quick_trainer_setup.py +233 -0
- package/lib/bmad-extension-plugin/skills/ml-experiment/assets/template_datamodule.py +219 -0
- package/lib/bmad-extension-plugin/skills/ml-experiment/assets/template_gnn_module.py +341 -0
- package/lib/bmad-extension-plugin/skills/ml-experiment/assets/template_lightning_module.py +158 -0
- package/lib/bmad-extension-plugin/skills/ml-experiment/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-experiment/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/ml-hparam/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-hparam/SKILL.md +81 -0
- package/lib/bmad-extension-plugin/skills/ml-hparam/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-hparam/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/ml-ideation/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-ideation/SKILL.md +50 -0
- package/lib/bmad-extension-plugin/skills/ml-ideation/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-ideation/scripts/validate_ml_prd.py +287 -0
- package/lib/bmad-extension-plugin/skills/ml-ideation/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/ml-infra/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-infra/SKILL.md +58 -0
- package/lib/bmad-extension-plugin/skills/ml-infra/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-infra/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/ml-retrospective/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-retrospective/SKILL.md +63 -0
- package/lib/bmad-extension-plugin/skills/ml-retrospective/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-retrospective/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/ml-revision/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-revision/SKILL.md +82 -0
- package/lib/bmad-extension-plugin/skills/ml-revision/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-revision/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/ml-techspec/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/ml-techspec/SKILL.md +80 -0
- package/lib/bmad-extension-plugin/skills/ml-techspec/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/ml-techspec/skill.json +7 -0
- package/lib/bmad-extension-plugin/skills/modify-sprint/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/modify-sprint/SKILL.md +311 -0
- package/lib/bmad-extension-plugin/skills/modify-sprint/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/module-help.csv +62 -0
- package/lib/bmad-extension-plugin/skills/module.yaml +20 -0
- package/lib/bmad-extension-plugin/skills/prioritize-backlog/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/prioritize-backlog/SKILL.md +217 -0
- package/lib/bmad-extension-plugin/skills/prioritize-backlog/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/project-context-expansion/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/project-context-expansion/SKILL.md +238 -0
- package/lib/bmad-extension-plugin/skills/project-context-expansion/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/remove-from-sprint/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/remove-from-sprint/SKILL.md +184 -0
- package/lib/bmad-extension-plugin/skills/remove-from-sprint/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/sprint-status-view/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/sprint-status-view/SKILL.md +177 -0
- package/lib/bmad-extension-plugin/skills/sprint-status-view/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/sqa-audit/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/sqa-audit/SKILL.md +279 -0
- package/lib/bmad-extension-plugin/skills/sqa-audit/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/sqa-ieee12207/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/sqa-ieee12207/SKILL.md +374 -0
- package/lib/bmad-extension-plugin/skills/sqa-ieee12207/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/sqa-requirements-quality/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/sqa-requirements-quality/SKILL.md +244 -0
- package/lib/bmad-extension-plugin/skills/sqa-requirements-quality/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/sre-check-deployment-status/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/sre-check-deployment-status/SKILL.md +32 -0
- package/lib/bmad-extension-plugin/skills/sre-check-deployment-status/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/sre-check-secrets/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/sre-check-secrets/SKILL.md +23 -0
- package/lib/bmad-extension-plugin/skills/sre-check-secrets/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/sre-check-system-status/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/sre-check-system-status/SKILL.md +27 -0
- package/lib/bmad-extension-plugin/skills/sre-check-system-status/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/sre-day-2-ops/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/sre-day-2-ops/SKILL.md +26 -0
- package/lib/bmad-extension-plugin/skills/sre-day-2-ops/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/sre-deployment-strategies/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/sre-deployment-strategies/SKILL.md +28 -0
- package/lib/bmad-extension-plugin/skills/sre-deployment-strategies/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/sre-fix-deployments/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/sre-fix-deployments/SKILL.md +25 -0
- package/lib/bmad-extension-plugin/skills/sre-fix-deployments/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension-plugin/skills/sre-gitops-status/.gitkeep +0 -0
- package/lib/bmad-extension-plugin/skills/sre-gitops-status/SKILL.md +25 -0
- package/lib/bmad-extension-plugin/skills/sre-gitops-status/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad.js +1379 -372
- package/lib/installer.js +362 -2
- package/package.json +23 -5
- package/scripts/build-bmad-cache.js +250 -47
- package/scripts/build-plugin.js +574 -0
- package/.ma-agents.json +0 -10
- package/AGENTS.md +0 -97
- package/AiAudit.md +0 -12
- package/DEVELOPMENT.md +0 -173
- package/MANIFEST.yaml +0 -3
- package/_bmad-output/implementation-artifacts/16-4-validation-report.md +0 -79
- package/_bmad-output/implementation-artifacts/17-10-rework-generate-backlog.md +0 -237
- package/_bmad-output/implementation-artifacts/17-11-rework-add-to-sprint.md +0 -339
- package/_bmad-output/implementation-artifacts/17-12-rework-remove-from-sprint.md +0 -348
- package/_bmad-output/implementation-artifacts/17-13-rework-sprint-status-view.md +0 -383
- package/_bmad-output/implementation-artifacts/17-14-rework-cleanup-done.md +0 -348
- package/_bmad-output/implementation-artifacts/17-15-rework-bmad-sprint-planning.md +0 -385
- package/_bmad-output/implementation-artifacts/17-16-rework-add-sprint.md +0 -362
- package/_bmad-output/implementation-artifacts/17-17-rework-modify-sprint.md +0 -477
- package/_bmad-output/implementation-artifacts/17-18-rework-bmad-dev-story.md +0 -377
- package/_bmad-output/implementation-artifacts/17-19-rework-story-status-lookup.md +0 -301
- package/_bmad-output/implementation-artifacts/17-20-rework-bmad-sprint-status.md +0 -508
- package/_bmad-output/implementation-artifacts/17-21-new-close-sprint.md +0 -455
- package/_bmad-output/implementation-artifacts/17-22-jira-adapter-pattern.md +0 -325
- package/_bmad-output/implementation-artifacts/17-23-migration-deprecation-old-files.md +0 -403
- package/_bmad-output/implementation-artifacts/17-24-rework-prioritize-backlog.md +0 -344
- package/_bmad-output/implementation-artifacts/17-9-unified-sprint-status-schema.md +0 -279
- package/_bmad-output/implementation-artifacts/19-1-knowledge-graph-core-library.md +0 -239
- package/_bmad-output/implementation-artifacts/19-2-graph-emission-create-prd.md +0 -171
- package/_bmad-output/implementation-artifacts/19-3-graph-emission-create-architecture-epics.md +0 -179
- package/_bmad-output/implementation-artifacts/19-4-graph-emission-create-story-remaining.md +0 -190
- package/_bmad-output/implementation-artifacts/19-5-open-graph-skill.md +0 -213
- package/_bmad-output/implementation-artifacts/19-6-interactive-visualization-renderer.md +0 -259
- package/_bmad-output/implementation-artifacts/19-7-llm-writability-validation-tests.md +0 -280
- package/_bmad-output/implementation-artifacts/21-1-install-time-profile-prompt.md +0 -181
- package/_bmad-output/implementation-artifacts/21-10-profile-reconfigure.md +0 -161
- package/_bmad-output/implementation-artifacts/21-11-profile-uninstall.md +0 -150
- package/_bmad-output/implementation-artifacts/21-2-universal-instruction-block-expansion.md +0 -253
- package/_bmad-output/implementation-artifacts/21-3-roomodes-template-bmad-modes.md +0 -229
- package/_bmad-output/implementation-artifacts/21-4-agents-md-template-opencode.md +0 -275
- package/_bmad-output/implementation-artifacts/21-5-clinerules-template-extension.md +0 -221
- package/_bmad-output/implementation-artifacts/21-6-onprem-layered-guardrails.md +0 -287
- package/_bmad-output/implementation-artifacts/21-7-bmad-persona-phase-prefix.md +0 -258
- package/_bmad-output/implementation-artifacts/21-8-vllm-reference-doc-readme.md +0 -158
- package/_bmad-output/implementation-artifacts/21-9-tests-validation.md +0 -368
- package/_bmad-output/implementation-artifacts/4-1-vs-agent-registry-entry.md +0 -173
- package/_bmad-output/implementation-artifacts/4-2-vs-skill-template-format.md +0 -129
- package/_bmad-output/implementation-artifacts/5-5-explicit-parameter-passing.md +0 -274
- package/_bmad-output/implementation-artifacts/5-6-fix-space-in-path-bug.md +0 -186
- package/_bmad-output/implementation-artifacts/7-1-test-infrastructure-setup.md +0 -144
- package/_bmad-output/implementation-artifacts/7-2-installer-pipeline-tests.md +0 -132
- package/_bmad-output/implementation-artifacts/7-3-bmad-pipeline-tests.md +0 -119
- package/_bmad-output/implementation-artifacts/7-4-cli-command-routing-tests.md +0 -162
- package/_bmad-output/implementation-artifacts/bug-bmad-recompile-fails-on-airgapped-network.md +0 -112
- package/_bmad-output/implementation-artifacts/bug-experimentalwarning-about-commonjs-loading-es-module-during-install.md +0 -57
- package/_bmad-output/implementation-artifacts/deferred-work.md +0 -9
- package/_bmad-output/implementation-artifacts/done/1-1-ci-cd-yes-flag.md +0 -200
- package/_bmad-output/implementation-artifacts/done/10-1-ensure-bmad-output-not-gitignored.md +0 -172
- package/_bmad-output/implementation-artifacts/done/10-2-document-bmad-output-policy.md +0 -102
- package/_bmad-output/implementation-artifacts/done/11-1-auto-bug-detection-skill.md +0 -119
- package/_bmad-output/implementation-artifacts/done/11-2-bug-story-extension-workflow.md +0 -132
- package/_bmad-output/implementation-artifacts/done/11-3-integrate-bug-detection-code-review.md +0 -111
- package/_bmad-output/implementation-artifacts/done/12-1-add-sprint-workflow.md +0 -126
- package/_bmad-output/implementation-artifacts/done/12-2-add-to-sprint-workflow.md +0 -137
- package/_bmad-output/implementation-artifacts/done/12-3-modify-sprint-workflow.md +0 -127
- package/_bmad-output/implementation-artifacts/done/12-4-sprint-status-assigned-items.md +0 -129
- package/_bmad-output/implementation-artifacts/done/13-1-project-context-template-and-generator.md +0 -179
- package/_bmad-output/implementation-artifacts/done/13-2-install-pipeline-integration.md +0 -138
- package/_bmad-output/implementation-artifacts/done/13-3-bmad-critical-actions-update.md +0 -150
- package/_bmad-output/implementation-artifacts/done/13-4-retrospective-expansion-trigger.md +0 -128
- package/_bmad-output/implementation-artifacts/done/13-5-document-project-context-generation.md +0 -118
- package/_bmad-output/implementation-artifacts/done/15-1-bump-bmad-method-to-6-2-1.md +0 -132
- package/_bmad-output/implementation-artifacts/done/15-2-restructure-extension-module.md +0 -174
- package/_bmad-output/implementation-artifacts/done/15-3-convert-custom-agents-to-skill-folders.md +0 -183
- package/_bmad-output/implementation-artifacts/done/15-4-convert-mil498-workflows-to-skill-md.md +0 -252
- package/_bmad-output/implementation-artifacts/done/15-5-convert-sre-devops-cyber-workflows.md +0 -232
- package/_bmad-output/implementation-artifacts/done/15-6-separate-built-in-agent-customizations.md +0 -163
- package/_bmad-output/implementation-artifacts/done/15-7-migration-detection-and-upgrade-path.md +0 -133
- package/_bmad-output/implementation-artifacts/done/15-8-validate-migrated-agents-and-workflows.md +0 -172
- package/_bmad-output/implementation-artifacts/done/15-8-validation-report.md +0 -342
- package/_bmad-output/implementation-artifacts/done/16-1-repository-layout-wizard.md +0 -223
- package/_bmad-output/implementation-artifacts/done/16-2-config-storage-and-cross-reference.md +0 -180
- package/_bmad-output/implementation-artifacts/done/16-3-project-context-multi-repo-section.md +0 -136
- package/_bmad-output/implementation-artifacts/done/16-4-validate-cross-repo-path-resolution.md +0 -137
- package/_bmad-output/implementation-artifacts/done/16-4-validation-report.md +0 -79
- package/_bmad-output/implementation-artifacts/done/16-5-fix-config-lost-on-update.md +0 -110
- package/_bmad-output/implementation-artifacts/done/16-6-repo-sync-check-skill.md +0 -116
- package/_bmad-output/implementation-artifacts/done/16-7-portable-path-storage.md +0 -109
- package/_bmad-output/implementation-artifacts/done/16-8-cicd-remote-mode.md +0 -97
- package/_bmad-output/implementation-artifacts/done/16-9-reconfigure-layout-workflow.md +0 -125
- package/_bmad-output/implementation-artifacts/done/17-1-sprint-entity-model.md +0 -322
- package/_bmad-output/implementation-artifacts/done/17-2-flat-backlog-model.md +0 -264
- package/_bmad-output/implementation-artifacts/done/17-3-bug-as-story-type.md +0 -208
- package/_bmad-output/implementation-artifacts/done/17-4-backlog-to-sprint-workflow.md +0 -209
- package/_bmad-output/implementation-artifacts/done/17-5-sprint-to-backlog-workflow.md +0 -221
- package/_bmad-output/implementation-artifacts/done/17-6-done-item-cleanup.md +0 -273
- package/_bmad-output/implementation-artifacts/done/17-7-multi-criteria-prioritization.md +0 -235
- package/_bmad-output/implementation-artifacts/done/17-8-rework-sprint-status-display.md +0 -285
- package/_bmad-output/implementation-artifacts/done/2-1-cpp-coding-standards-skill.md +0 -188
- package/_bmad-output/implementation-artifacts/done/2-2-csharp-coding-standards-skill.md +0 -211
- package/_bmad-output/implementation-artifacts/done/2-3-python-coding-standards-skill.md +0 -189
- package/_bmad-output/implementation-artifacts/done/3-1-skill-scaffolding-tool.md +0 -184
- package/_bmad-output/implementation-artifacts/done/3-2-skill-validation-tool.md +0 -178
- package/_bmad-output/implementation-artifacts/done/3-3-mandatory-skill-designation.md +0 -136
- package/_bmad-output/implementation-artifacts/done/3-4-bmad-persona-customization-tooling.md +0 -141
- package/_bmad-output/implementation-artifacts/done/3-5-specialized-agent-development-tooling.md +0 -145
- package/_bmad-output/implementation-artifacts/done/5-1-bmad-method-direct-dependency.md +0 -188
- package/_bmad-output/implementation-artifacts/done/5-2-bmad-cache-build-script.md +0 -219
- package/_bmad-output/implementation-artifacts/done/5-3-pre-populate-bmad-cache.md +0 -234
- package/_bmad-output/implementation-artifacts/done/5-4-validate-bundled-installation.md +0 -274
- package/_bmad-output/implementation-artifacts/done/6-1-methodology-presentation-bundle.md +0 -173
- package/_bmad-output/implementation-artifacts/done/8-1-move-instruction-injection-to-top.md +0 -131
- package/_bmad-output/implementation-artifacts/done/8-2-agent-aware-injection-strategy.md +0 -124
- package/_bmad-output/implementation-artifacts/done/8-3-create-bmad-extension-module.md +0 -187
- package/_bmad-output/implementation-artifacts/done/8-4-integration-verification.md +0 -102
- package/_bmad-output/implementation-artifacts/done/8-5-per-agent-enforcement-hooks-research.md +0 -126
- package/_bmad-output/implementation-artifacts/done/8-6-context-persistence-research.md +0 -101
- package/_bmad-output/implementation-artifacts/done/9-1-register-opencode-agent.md +0 -73
- package/_bmad-output/implementation-artifacts/done/9-2-json-merge-injection.md +0 -91
- package/_bmad-output/implementation-artifacts/done/9-3-json-merge-existing.md +0 -113
- package/_bmad-output/implementation-artifacts/done/9-4-json-error-handling.md +0 -90
- package/_bmad-output/implementation-artifacts/epic-11-12-shared-guardrails.md +0 -53
- package/_bmad-output/implementation-artifacts/epic-15-adversarial-fixes.md +0 -287
- package/_bmad-output/implementation-artifacts/epic-16-adversarial-review.md +0 -49
- package/_bmad-output/implementation-artifacts/epic-16-edge-case-review.md +0 -230
- package/_bmad-output/implementation-artifacts/epic-17-adversarial-review.md +0 -37
- package/_bmad-output/implementation-artifacts/epic-17-edge-case-review.md +0 -140
- package/_bmad-output/implementation-artifacts/sprint-status.yaml +0 -139
- package/_bmad-output/planning-artifacts/adapter-pattern-spec.md +0 -508
- package/_bmad-output/planning-artifacts/architecture.md +0 -2023
- package/_bmad-output/planning-artifacts/domain-research-roocode-2026-03-31.md +0 -295
- package/_bmad-output/planning-artifacts/epics.md +0 -4232
- package/_bmad-output/planning-artifacts/mil498-workflow-audit.md +0 -290
- package/_bmad-output/planning-artifacts/prd.md +0 -811
- package/_bmad-output/planning-artifacts/product-brief-agents-2026-03-08.md +0 -214
- package/_bmad-output/planning-artifacts/sprint-status-schema.md +0 -506
- package/_bmad-output/planning-artifacts/validation-report-prd-2026-04-07.md +0 -330
- package/_bmad-output/project-context.md +0 -47
- package/agents.code-workspace +0 -11
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-554778ad4e7254827618ebd2497c3f4bce9054a4.idx +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-554778ad4e7254827618ebd2497c3f4bce9054a4.rev +0 -0
- package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.idx +0 -0
- package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-39c4fd66f4e0eb3f4d93665318df04cd356b0297.rev +0 -0
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-brainstorming-coach/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-creative-problem-solver/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-design-thinking-coach/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-innovation-strategist/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-presentation-master/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/cis/src/skills/bmad-cis-agent-storyteller/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/cis/src/skills/bmad-cis-design-thinking/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/cis/src/skills/bmad-cis-innovation-strategy/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/cis/src/skills/bmad-cis-problem-solving/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/cis/src/skills/bmad-cis-storytelling/bmad-skill-manifest.yaml +0 -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-ac967149d58fba215d07238ad8881bdbdad5c9c3.rev +0 -0
- package/lib/bmad-cache/gds/src/agents/gds-agent-game-architect/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/gds/src/agents/gds-agent-game-designer/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/gds/src/agents/gds-agent-game-dev/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/gds/src/agents/gds-agent-game-qa/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/gds/src/agents/gds-agent-game-scrum-master/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/gds/src/agents/gds-agent-game-solo-dev/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/gds/src/agents/gds-agent-tech-writer/bmad-skill-manifest.yaml +0 -11
- package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-brainstorm-game/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-create-game-brief/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/1-preproduction/research/bmad-skill-manifest.yaml +0 -9
- package/lib/bmad-cache/gds/src/workflows/1-preproduction/research/gds-domain-research/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/2-design/create-prd/bmad-skill-manifest.yaml +0 -14
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-gdd/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-narrative/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-ux-design/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/3-technical/gds-check-implementation-readiness/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/3-technical/gds-create-epics-and-stories/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/3-technical/gds-generate-project-context/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-code-review/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-correct-course/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-create-story/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-dev-story/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-retrospective/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-sprint-planning/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-sprint-status/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-e2e-scaffold/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-performance-test/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-playtest-plan/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-automate/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-design/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-framework/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/gametest/gds-test-review/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/gds-document-project/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/gds-quick-flow/gds-quick-dev/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/gds-quick-flow/gds-quick-dev-new-preview/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/gds/src/workflows/gds-quick-flow/gds-quick-spec/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-e75385cd52b693dbb8a3b2afb50058952543b3a2.idx +0 -0
- package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-e75385cd52b693dbb8a3b2afb50058952543b3a2.rev +0 -0
- package/lib/bmad-cache/tea/_git_preserved/refs/tags/v1.10.0 +0 -1
- package/lib/bmad-cache/tea/src/agents/bmad-tea/bmad-skill-manifest.yaml +0 -14
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/workflow.md +0 -90
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/workflow.md +0 -41
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/workflow.md +0 -41
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/workflow.md +0 -41
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/workflow.md +0 -41
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/workflow.md +0 -41
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/workflow.md +0 -41
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/workflow.md +0 -41
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/workflow.md +0 -41
- package/lib/bmad-customizations/bmm-demerzel.customize.yaml +0 -36
- package/lib/bmad-customizations/demerzel.md +0 -32
- package/lib/bmad-customize/bmm-quick-flow-solo-dev.customize.yaml +0 -8
- package/lib/bmad-extension/module.yaml +0 -5
- package/out.txt +0 -0
- package/test/agent-injection-strategy.test.js +0 -129
- package/test/agents-md.test.js +0 -398
- package/test/bmad-extension.test.js +0 -283
- package/test/bmad-output-policy.test.js +0 -119
- package/test/bmad-persona-phase-prefix.test.js +0 -271
- package/test/bmad-version-bump.test.js +0 -313
- package/test/build-bmad-args.test.js +0 -368
- package/test/cicd-remote-mode.test.js +0 -224
- package/test/clinerules.test.js +0 -339
- package/test/config-layout.test.js +0 -230
- package/test/config-lost-on-update.test.js +0 -363
- package/test/config-storage.test.js +0 -275
- package/test/convert-agents-to-skills.test.js +0 -255
- package/test/create-agent.test.js +0 -232
- package/test/cross-repo-validation.test.js +0 -201
- package/test/enforcement-hooks.test.js +0 -324
- package/test/experimental-warning.test.js +0 -314
- package/test/extension-module-restructure.test.js +0 -407
- package/test/fixtures/README.md +0 -74
- package/test/fixtures/empty-project/README.md +0 -5
- package/test/fixtures/empty-project/package.json +0 -5
- package/test/fixtures/onprem-profile-baseline/.gitkeep +0 -2
- package/test/fixtures/standard-profile-baseline/.gitkeep +0 -2
- package/test/generate-project-context.test.js +0 -483
- package/test/instruction-block.test.js +0 -388
- package/test/instruction-injection.test.js +0 -336
- package/test/integration-verification.test.js +0 -433
- package/test/migration-validation.test.js +0 -506
- package/test/migration.test.js +0 -832
- package/test/offline-recompile.test.js +0 -267
- package/test/onprem-injection.test.js +0 -441
- package/test/onprem-layer.test.js +0 -419
- package/test/opencode-agent.test.js +0 -150
- package/test/opencode-json-error.test.js +0 -260
- package/test/opencode-json-injection.test.js +0 -264
- package/test/opencode-json-merge.test.js +0 -318
- package/test/portable-paths.test.js +0 -268
- package/test/profile.test.js +0 -301
- package/test/reconfigure.test.js +0 -436
- package/test/repo-layout.test.js +0 -246
- package/test/roo-code-agent.test.js +0 -166
- package/test/roo-code-injection.test.js +0 -172
- package/test/roomodes.test.js +0 -343
- package/test/skill-authoring.test.js +0 -272
- package/test/skill-customize-agent.test.js +0 -253
- package/test/skill-mandatory.test.js +0 -235
- package/test/skill-validation.test.js +0 -378
- package/test/story-15-5-workflow-skills.test.js +0 -311
- package/test/uninstall.test.js +0 -402
- package/test/yes-flag.test.js +0 -200
- /package/lib/bmad-cache/gds/src/{gametest → agents/gds-agent-game-dev/gametest}/qa-index.csv +0 -0
- /package/lib/bmad-cache/gds/src/workflows/2-design/{create-prd → gds-create-prd}/data/domain-complexity.csv +0 -0
- /package/lib/bmad-cache/gds/src/workflows/2-design/{create-prd → gds-create-prd}/data/project-types.csv +0 -0
- /package/lib/{bmad-extension/skills/bmad-ma-agent-cyber → bmad-extension-plugin/skills/add-sprint}/.gitkeep +0 -0
- /package/lib/{bmad-extension/skills/bmad-ma-agent-devops → bmad-extension-plugin/skills/add-to-sprint}/.gitkeep +0 -0
- /package/lib/{bmad-extension/skills/bmad-ma-agent-ml → bmad-extension-plugin/skills/bmad-dev-story}/.gitkeep +0 -0
- /package/lib/{bmad-extension/skills/bmad-ma-agent-sqa → bmad-extension-plugin/skills/bmad-sprint-planning}/.gitkeep +0 -0
- /package/lib/{bmad-extension/skills/bmad-ma-agent-sre → bmad-extension-plugin/skills/bmad-sprint-status}/.gitkeep +0 -0
package/_bmad-output/implementation-artifacts/done/16-4-validate-cross-repo-path-resolution.md
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
# Story 16.4: Validate Cross-Repo Path Resolution
|
|
2
|
-
|
|
3
|
-
Status: review
|
|
4
|
-
|
|
5
|
-
<!-- Note: Validation is optional. Run validate-create-story for quality check before dev-story. -->
|
|
6
|
-
|
|
7
|
-
## Story
|
|
8
|
-
|
|
9
|
-
As a **Chief Architect**,
|
|
10
|
-
I want to verify that BMAD workflows correctly resolve artifact paths from the configured repo layout,
|
|
11
|
-
So that planning and sprint artifacts are read from and written to the correct repositories.
|
|
12
|
-
|
|
13
|
-
## Acceptance Criteria
|
|
14
|
-
|
|
15
|
-
1. An audit of all BMAD workflows identifies which use config-driven path resolution and which hardcode `_bmad-output/` — documented in a gap analysis table
|
|
16
|
-
2. When multi-repo is configured, at least ONE planning workflow reads planning artifacts from `{knowledgebase_path}/_bmad-output/planning-artifacts/` (FR119). If none do natively, the gap is documented with a concrete remediation task
|
|
17
|
-
3. When multi-repo is configured, at least ONE sprint workflow reads/writes sprint artifacts from `{sprint_management_path}/_bmad-output/implementation-artifacts/` (FR120). If none do natively, the gap is documented with a concrete remediation task
|
|
18
|
-
4. When single-repo is configured, all workflows behave identically to pre-Epic-16 behavior — verified by running a workflow in both modes and diffing output structure (NFR34)
|
|
19
|
-
5. Source-of-truth precedence is documented: `_bmad/bmm/config.yaml` is PRIMARY (runtime), `project-layout.yaml` is INFORMATIONAL (agent discovery), `project-context.md` is INSTRUCTIONAL (agent rules)
|
|
20
|
-
6. If workflows DO support config-driven paths: at least 3 end-to-end tests pass (planning read, sprint write, single-repo unchanged)
|
|
21
|
-
7. If workflows do NOT support config-driven paths: a backlog item is created with specific workflow files, line numbers, and required changes — NOT just a "gap analysis document"
|
|
22
|
-
8. External repo paths are validated for accessibility: directory exists and is readable (`fs.accessSync` with `R_OK`)
|
|
23
|
-
|
|
24
|
-
## Tasks / Subtasks
|
|
25
|
-
|
|
26
|
-
- [x] Task 1: Audit BMAD workflow path resolution (AC: #1)
|
|
27
|
-
- [x] 1.1-1.5 Scanned all 21 workflows — 185 config-driven references, 0 hardcoded. Gap analysis table in validation report.
|
|
28
|
-
|
|
29
|
-
- [x] Task 2: Test config-driven path resolution (AC: #2, #3, #6)
|
|
30
|
-
- [x] 2.1-2.6 Confirmed: workflows use `planning_artifacts` and `implementation_artifacts` from config. Updated `writeRepoLayoutConfig()` to derive these from layout paths.
|
|
31
|
-
|
|
32
|
-
- [x] Task 3: Verify single-repo backward compatibility (AC: #4)
|
|
33
|
-
- [x] 3.1-3.4 Single-repo writes default `_bmad-output/planning-artifacts` and `_bmad-output/implementation-artifacts` — identical to pre-Epic-16 behavior.
|
|
34
|
-
|
|
35
|
-
- [x] Task 4: Verify agent discovery paths (AC: #5, #8)
|
|
36
|
-
- [x] 4.1-4.5 Documented source-of-truth precedence (config.yaml PRIMARY). Path accessibility validated via fs.accessSync.
|
|
37
|
-
|
|
38
|
-
- [x] Task 5: Create remediation or confirmation artifacts (AC: #1-#8)
|
|
39
|
-
- [x] 5.1 Created `_bmad-output/implementation-artifacts/16-4-validation-report.md` — PASS, no gaps.
|
|
40
|
-
- [x] 5.2-5.4 No backlog items needed — all workflows already config-driven.
|
|
41
|
-
|
|
42
|
-
## Dev Notes
|
|
43
|
-
|
|
44
|
-
### This Is a Validation Story WITH Defined Pass/Fail Criteria
|
|
45
|
-
|
|
46
|
-
Unlike a pure research spike, this story has concrete pass/fail acceptance criteria:
|
|
47
|
-
|
|
48
|
-
- **PASS**: Workflows resolve paths from config → end-to-end tests confirm → validation report created
|
|
49
|
-
- **PARTIAL PASS**: Workflows don't resolve from config → gaps documented with specific file/line remediation tasks added to backlog
|
|
50
|
-
- **FAIL**: Unable to determine how workflows resolve paths → should not happen given Task 1's audit approach
|
|
51
|
-
|
|
52
|
-
### Known Config Resolution Pattern
|
|
53
|
-
|
|
54
|
-
BMAD workflow.yaml files use this pattern:
|
|
55
|
-
```yaml
|
|
56
|
-
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
|
57
|
-
planning_artifacts: "{config_source}:planning_artifacts"
|
|
58
|
-
implementation_artifacts: "{config_source}:implementation_artifacts"
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
The `{config_source}:field_name` syntax reads the value of `field_name` from the config file. If `_bmad/bmm/config.yaml` contains `planning_artifacts: "_bmad-output/planning-artifacts"`, workflows use that value.
|
|
62
|
-
|
|
63
|
-
**The key question**: Can we add `knowledgebase_path` and `sprint_management_path` to config.yaml and have workflows use them? This depends on whether workflows can be modified to derive `planning_artifacts` from `knowledgebase_path` — or if we need to change `planning_artifacts` itself to point to the external path.
|
|
64
|
-
|
|
65
|
-
**Most likely resolution**: Story 16.2 writes `planning_artifacts: "{knowledgebase_path}/_bmad-output/planning-artifacts"` and `implementation_artifacts: "{sprint_management_path}/_bmad-output/implementation-artifacts"` directly into `_bmad/bmm/config.yaml`. This means the existing `{config_source}:planning_artifacts` pattern in workflows "just works" without workflow modifications. **This approach should be validated in Task 2.**
|
|
66
|
-
|
|
67
|
-
### Source of Truth Precedence (Cross-Story)
|
|
68
|
-
|
|
69
|
-
| File | Role | Authority | When to Use |
|
|
70
|
-
|------|------|-----------|-------------|
|
|
71
|
-
| `_bmad/bmm/config.yaml` | Runtime config | PRIMARY | Workflows and agents resolving paths at execution time |
|
|
72
|
-
| `_bmad-output/project-layout.yaml` | Agent discovery | INFORMATIONAL | Agents in code repo that need to find external repos without loading BMAD config |
|
|
73
|
-
| `_bmad-output/project-context.md` | Agent rules | INSTRUCTIONAL | Agent constitutional doc — stamps paths as operating rules |
|
|
74
|
-
|
|
75
|
-
If these disagree, `_bmad/bmm/config.yaml` wins. Story 16.2 writes to config.yaml; Stories 16.2 and 16.3 write the other two files from the same source data.
|
|
76
|
-
|
|
77
|
-
### What to Do When Gaps Are Found
|
|
78
|
-
|
|
79
|
-
Do NOT just write a "gap analysis document" and close the story. Instead:
|
|
80
|
-
1. Create specific, actionable backlog stories
|
|
81
|
-
2. Add them to sprint-status.yaml
|
|
82
|
-
3. Include file paths, line numbers, and the exact change needed
|
|
83
|
-
4. Estimate scope: is this a 1-line config change or a multi-file workflow refactor?
|
|
84
|
-
|
|
85
|
-
### NFR Compliance
|
|
86
|
-
|
|
87
|
-
| NFR | How This Story Verifies It |
|
|
88
|
-
|-----|---------------------------|
|
|
89
|
-
| NFR34 | Single-repo mode: all workflows behave identically to pre-Epic-16 behavior |
|
|
90
|
-
| NFR37 | Audit verifies no workflow hardcodes `_bmad-output/` — all use config values |
|
|
91
|
-
| NFR9 | Path resolution verified on Windows (forward slash normalization) |
|
|
92
|
-
|
|
93
|
-
### Dependencies
|
|
94
|
-
|
|
95
|
-
- **Stories 16.1, 16.2, 16.3** must be complete — this story validates their output
|
|
96
|
-
- **BMAD workflows** — understanding how they resolve `config_source` variables is the core of this story
|
|
97
|
-
|
|
98
|
-
### Project Structure Notes
|
|
99
|
-
|
|
100
|
-
- Workflow configs: `_bmad/bmm/workflows/*/workflow.yaml` — check `config_source` and path variables
|
|
101
|
-
- BMAD config: `_bmad/bmm/config.yaml` (confirmed: this is where workflows read from)
|
|
102
|
-
- Cross-reference: `_bmad-output/project-layout.yaml`
|
|
103
|
-
|
|
104
|
-
### References
|
|
105
|
-
|
|
106
|
-
- [Source: _bmad-output/planning-artifacts/architecture.md — Decision P2-10, path resolution section, lines 873-901]
|
|
107
|
-
- [Source: _bmad-output/planning-artifacts/epics.md — Story 16.4, lines 2087-2117]
|
|
108
|
-
- [Source: _bmad-output/planning-artifacts/prd.md — FR119-FR122, lines 584-587]
|
|
109
|
-
- [Source: _bmad-output/planning-artifacts/prd.md — NFR34, NFR37, lines 657-660]
|
|
110
|
-
- [Source: _bmad/bmm/workflows/4-implementation/create-story/workflow.yaml — config_source pattern]
|
|
111
|
-
|
|
112
|
-
## Dev Agent Record
|
|
113
|
-
|
|
114
|
-
### Agent Model Used
|
|
115
|
-
Claude Opus 4.6 (1M context)
|
|
116
|
-
|
|
117
|
-
### Debug Log References
|
|
118
|
-
None.
|
|
119
|
-
|
|
120
|
-
### Completion Notes List
|
|
121
|
-
- Audited all 21 BMAD workflows: 185 config-driven path references, 0 hardcoded `_bmad-output/`
|
|
122
|
-
- Identified gap: workflows read `planning_artifacts`/`implementation_artifacts` but Story 16.2 only wrote `knowledgebase_path`/`sprint_management_path`. Fixed `writeRepoLayoutConfig()` to also derive and write the artifact path fields
|
|
123
|
-
- Single-repo backward compatibility confirmed: default artifact paths match pre-Epic-16 behavior
|
|
124
|
-
- Source-of-truth precedence documented in validation report
|
|
125
|
-
- Created validation report at `_bmad-output/implementation-artifacts/16-4-validation-report.md`
|
|
126
|
-
- 7 validation tests in `test/cross-repo-validation.test.js`, all pass
|
|
127
|
-
|
|
128
|
-
### Change Log
|
|
129
|
-
- 2026-03-28: Validated story 16.4 — all workflows config-driven, no gaps found. Fixed config write to include derived artifact paths.
|
|
130
|
-
|
|
131
|
-
### File List
|
|
132
|
-
- bin/cli.js (modified — writeRepoLayoutConfig now also writes planning_artifacts and implementation_artifacts)
|
|
133
|
-
- test/cross-repo-validation.test.js (new — 7 validation tests)
|
|
134
|
-
- _bmad-output/implementation-artifacts/16-4-validation-report.md (new — validation report)
|
|
135
|
-
- package.json (modified — added test to script)
|
|
136
|
-
- _bmad-output/implementation-artifacts/sprint-status.yaml (modified)
|
|
137
|
-
- _bmad-output/implementation-artifacts/16-4-validate-cross-repo-path-resolution.md (modified)
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# Story 16.4 Validation Report: Cross-Repo Path Resolution
|
|
2
|
-
|
|
3
|
-
Generated: 2026-03-28
|
|
4
|
-
|
|
5
|
-
## Audit Summary
|
|
6
|
-
|
|
7
|
-
**Result: PASS** - All BMAD workflows are 100% config-driven. No hardcoded `_bmad-output/` paths found.
|
|
8
|
-
|
|
9
|
-
## Gap Analysis Table
|
|
10
|
-
|
|
11
|
-
| Workflow | Phase | Path Source | Hardcoded? | Config Key Used | Change Needed |
|
|
12
|
-
|----------|-------|-----------|-----------|----------------|---------------|
|
|
13
|
-
| bmad-product-brief | 1-Analysis | config.yaml | No | planning_artifacts | None |
|
|
14
|
-
| bmad-domain-research | 1-Analysis | config.yaml | No | planning_artifacts | None |
|
|
15
|
-
| bmad-market-research | 1-Analysis | config.yaml | No | planning_artifacts | None |
|
|
16
|
-
| bmad-technical-research | 1-Analysis | config.yaml | No | planning_artifacts | None |
|
|
17
|
-
| bmad-create-prd | 2-Planning | config.yaml | No | planning_artifacts | None |
|
|
18
|
-
| bmad-create-ux-design | 2-Planning | config.yaml | No | planning_artifacts | None |
|
|
19
|
-
| bmad-validate-prd | 2-Planning | config.yaml | No | planning_artifacts | None |
|
|
20
|
-
| bmad-edit-prd | 2-Planning | config.yaml | No | planning_artifacts | None |
|
|
21
|
-
| bmad-create-architecture | 3-Solutioning | config.yaml | No | planning_artifacts | None |
|
|
22
|
-
| bmad-create-epics-and-stories | 3-Solutioning | config.yaml | No | planning_artifacts | None |
|
|
23
|
-
| bmad-check-implementation-readiness | 3-Solutioning | config.yaml | No | planning_artifacts | None |
|
|
24
|
-
| bmad-generate-project-context | 3-Solutioning | config.yaml | No | planning_artifacts | None |
|
|
25
|
-
| bmad-sprint-planning | 4-Implementation | config.yaml | No | implementation_artifacts, planning_artifacts | None |
|
|
26
|
-
| bmad-sprint-status | 4-Implementation | config.yaml | No | implementation_artifacts | None |
|
|
27
|
-
| bmad-create-story | 4-Implementation | config.yaml | No | implementation_artifacts, planning_artifacts | None |
|
|
28
|
-
| bmad-dev-story | 4-Implementation | config.yaml | No | implementation_artifacts | None |
|
|
29
|
-
| bmad-retrospective | 4-Implementation | config.yaml | No | implementation_artifacts | None |
|
|
30
|
-
| bmad-code-review | 4-Implementation | config.yaml | No | planning_artifacts, implementation_artifacts | None |
|
|
31
|
-
| bmad-correct-course | 4-Implementation | config.yaml | No | implementation_artifacts | None |
|
|
32
|
-
| bmad-quick-dev | 4-Implementation | config.yaml | No | implementation_artifacts, planning_artifacts | None |
|
|
33
|
-
| bmad-qa-generate-e2e-tests | 4-Implementation | config.yaml | No | implementation_artifacts | None |
|
|
34
|
-
|
|
35
|
-
## Config Resolution Chain
|
|
36
|
-
|
|
37
|
-
All workflows follow this identical pattern:
|
|
38
|
-
1. Load config from `{project-root}/_bmad/bmm/config.yaml`
|
|
39
|
-
2. Resolve `planning_artifacts` and `implementation_artifacts` from config values
|
|
40
|
-
3. Use `{planning_artifacts}/...` and `{implementation_artifacts}/...` for all path references
|
|
41
|
-
|
|
42
|
-
**Multi-repo resolution:**
|
|
43
|
-
- `planning_artifacts` = `{knowledgebase_path}/_bmad-output/planning-artifacts`
|
|
44
|
-
- `implementation_artifacts` = `{sprint_management_path}/_bmad-output/implementation-artifacts`
|
|
45
|
-
|
|
46
|
-
**Single-repo resolution (backward compatible):**
|
|
47
|
-
- `planning_artifacts` = `_bmad-output/planning-artifacts`
|
|
48
|
-
- `implementation_artifacts` = `_bmad-output/implementation-artifacts`
|
|
49
|
-
|
|
50
|
-
## Source-of-Truth Precedence
|
|
51
|
-
|
|
52
|
-
| File | Role | Authority |
|
|
53
|
-
|------|------|-----------|
|
|
54
|
-
| `_bmad/bmm/config.yaml` | Runtime source of truth | PRIMARY |
|
|
55
|
-
| `_bmad-output/project-layout.yaml` | Agent discovery file | INFORMATIONAL |
|
|
56
|
-
| `_bmad-output/project-context.md` | Agent constitutional doc | INSTRUCTIONAL |
|
|
57
|
-
|
|
58
|
-
If these disagree, `_bmad/bmm/config.yaml` wins.
|
|
59
|
-
|
|
60
|
-
## Backward Compatibility (NFR34)
|
|
61
|
-
|
|
62
|
-
Single-repo mode writes:
|
|
63
|
-
- `knowledgebase_path: "."` and `sprint_management_path: "."`
|
|
64
|
-
- `planning_artifacts: "_bmad-output/planning-artifacts"`
|
|
65
|
-
- `implementation_artifacts: "_bmad-output/implementation-artifacts"`
|
|
66
|
-
|
|
67
|
-
These values are identical to the pre-Epic-16 default behavior. No workflow changes needed.
|
|
68
|
-
|
|
69
|
-
## Path Accessibility
|
|
70
|
-
|
|
71
|
-
Story 16.1 validates external paths at wizard time:
|
|
72
|
-
- `fs.existsSync()` checks for local paths
|
|
73
|
-
- `fs.statSync().isDirectory()` confirms it's a directory
|
|
74
|
-
- Git clone validates remote paths
|
|
75
|
-
- Non-existent paths generate warnings
|
|
76
|
-
|
|
77
|
-
## Conclusion
|
|
78
|
-
|
|
79
|
-
**No backlog items needed.** All 21 BMAD workflows already support config-driven path resolution through the `planning_artifacts` and `implementation_artifacts` config keys. Story 16.2's config write (updated during 16.4 validation) now also writes these derived fields, completing the end-to-end resolution chain.
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
# Story 16.5: Fix Config Lost on Update (Bug)
|
|
2
|
-
|
|
3
|
-
Status: review
|
|
4
|
-
|
|
5
|
-
<!-- Note: Validation is optional. Run validate-create-story for quality check before dev-story. -->
|
|
6
|
-
|
|
7
|
-
## Story
|
|
8
|
-
|
|
9
|
-
As a **user with a multi-repo layout configured**,
|
|
10
|
-
I want my repo layout configuration to be preserved when I update ma-agents,
|
|
11
|
-
So that I don't silently lose my multi-repo paths every time I add a skill or update agents.
|
|
12
|
-
|
|
13
|
-
## Bug Description
|
|
14
|
-
|
|
15
|
-
`collectRepoLayout()` is called unconditionally at [cli.js:595](bin/cli.js#L595) during every install/update run. Unlike skill and agent selections — which are pre-populated during updates — the repo layout prompt starts blank every time. If the user accepts defaults (or runs `--yes` without env vars), the existing multi-repo config in `config.yaml` and `project-layout.yaml` is overwritten with single-repo defaults.
|
|
16
|
-
|
|
17
|
-
**Reproduction steps:**
|
|
18
|
-
1. Run `npx ma-agents` and configure multi-repo layout (e.g., knowledgebase at `/ext/kb`)
|
|
19
|
-
2. Run `npx ma-agents` again to add a new skill
|
|
20
|
-
3. At the repo layout prompt, accept defaults (or press Enter)
|
|
21
|
-
4. Config.yaml now has `knowledgebase_path: "."` — previous config lost
|
|
22
|
-
|
|
23
|
-
**Root cause:** No `readExistingLayout()` function exists. The update path never reads the current `project-layout.yaml` or `config.yaml` to pre-populate the prompts.
|
|
24
|
-
|
|
25
|
-
## Acceptance Criteria
|
|
26
|
-
|
|
27
|
-
1. **Given** an existing installation with multi-repo layout configured in `_bmad-output/project-layout.yaml`, **When** the user runs `ma-agents` again and selects "Update", **Then** the repo layout prompts are pre-populated with the existing configuration (mode, path, gitUrl)
|
|
28
|
-
2. **Given** an existing installation with single-repo layout (no `project-layout.yaml`), **When** the user runs `ma-agents` again, **Then** the repo layout defaults to single-repo as before (no behavioral change)
|
|
29
|
-
3. **Given** an update with `--yes` flag and no env vars, **When** `project-layout.yaml` exists with multi-repo paths, **Then** the existing layout is preserved (read from file) instead of defaulting to single-repo
|
|
30
|
-
4. **Given** an update with `--yes` flag and env vars set, **When** `project-layout.yaml` also exists, **Then** the env vars take precedence over the file (explicit override wins)
|
|
31
|
-
5. **Given** a fresh install (no existing `project-layout.yaml`), **When** the wizard runs, **Then** behavior is identical to current implementation (no regression)
|
|
32
|
-
6. **Given** an existing multi-repo layout, **When** the user explicitly changes layout during update (selects different mode/path), **Then** the new configuration replaces the old one as expected
|
|
33
|
-
|
|
34
|
-
## Tasks / Subtasks
|
|
35
|
-
|
|
36
|
-
- [x] Task 1: Implement `readExistingLayout()` function in `bin/cli.js`
|
|
37
|
-
- [x] 1.1 Read `_bmad-output/project-layout.yaml` if it exists; parse YAML fields (mode, path, gitUrl for each concern)
|
|
38
|
-
- [x] 1.2 If file doesn't exist, check `_bmad/bmm/config.yaml` for `knowledgebase_path` and `sprint_management_path` fields as fallback
|
|
39
|
-
- [x] 1.3 Return layout object matching `collectRepoLayout()` return shape, or `null` if no existing config found
|
|
40
|
-
- [x] 1.4 Handle parse errors gracefully — return `null` on corruption (don't crash the installer)
|
|
41
|
-
|
|
42
|
-
- [x] Task 2: Modify `collectRepoLayout()` to accept and use existing layout
|
|
43
|
-
- [x] 2.1 Add `existingLayout` parameter: `collectRepoLayout(flags, existingLayout = null)`
|
|
44
|
-
- [x] 2.2 In `--yes` mode: if env vars not set AND `existingLayout` is not null, return `existingLayout` (preserve existing config)
|
|
45
|
-
- [x] 2.3 In `--yes` mode: env vars still take precedence over existing layout (AC #4)
|
|
46
|
-
- [x] 2.4 In interactive mode: use `existingLayout` to set `initial` values on prompts — pre-select the current mode for each concern
|
|
47
|
-
- [x] 2.5 When user selects same mode as existing, pre-fill path/URL from existing config
|
|
48
|
-
|
|
49
|
-
- [x] Task 3: Wire into `installWizard()`
|
|
50
|
-
- [x] 3.1 Before calling `collectRepoLayout()`, call `readExistingLayout()` when `isUpdate` is true
|
|
51
|
-
- [x] 3.2 Pass existing layout to `collectRepoLayout(flags, existingLayout)`
|
|
52
|
-
|
|
53
|
-
- [x] Task 4: Write unit tests
|
|
54
|
-
- [x] 4.1 Test `readExistingLayout()` with valid `project-layout.yaml` returns correct layout object
|
|
55
|
-
- [x] 4.2 Test `readExistingLayout()` with missing file returns null
|
|
56
|
-
- [x] 4.3 Test `readExistingLayout()` with corrupt YAML returns null (no crash)
|
|
57
|
-
- [x] 4.4 Test `--yes` mode preserves existing layout when no env vars set
|
|
58
|
-
- [x] 4.5 Test `--yes` mode with env vars overrides existing layout
|
|
59
|
-
- [x] 4.6 Test fresh install (no existing layout) behaves identically to current code
|
|
60
|
-
|
|
61
|
-
## Dev Notes
|
|
62
|
-
|
|
63
|
-
### Key Files
|
|
64
|
-
|
|
65
|
-
- `bin/cli.js` — `collectRepoLayout()` (~line 370), `installWizard()` (~line 595)
|
|
66
|
-
- `_bmad-output/project-layout.yaml` — existing config file written by Story 16.2
|
|
67
|
-
|
|
68
|
-
### YAML Parsing
|
|
69
|
-
|
|
70
|
-
The project does not use a YAML library. `project-layout.yaml` is simple flat/nested YAML generated by `writeProjectLayoutYaml()`. Parse with regex or line-by-line — match the existing pattern in `writeConfigField()`. Do NOT add a YAML dependency for this.
|
|
71
|
-
|
|
72
|
-
### Backward Compatibility
|
|
73
|
-
|
|
74
|
-
- Fresh installs must behave identically (no existing layout = current behavior)
|
|
75
|
-
- `readExistingLayout()` returning `null` means "no existing config" — fall through to current flow
|
|
76
|
-
- Export `readExistingLayout` for testability
|
|
77
|
-
|
|
78
|
-
### References
|
|
79
|
-
|
|
80
|
-
- [Source: bin/cli.js — collectRepoLayout() at line 370]
|
|
81
|
-
- [Source: bin/cli.js — installWizard() at line 595]
|
|
82
|
-
- [Source: Adversarial Review Finding #1 — config destroyed on update]
|
|
83
|
-
|
|
84
|
-
## Dev Agent Record
|
|
85
|
-
|
|
86
|
-
### Implementation Plan
|
|
87
|
-
- Added `readExistingLayout()` before `collectRepoLayout()` in the update path
|
|
88
|
-
- `readExistingLayout()` reads `project-layout.yaml` first (authoritative), falls back to `config.yaml` path fields
|
|
89
|
-
- Modified `collectRepoLayout()` to accept `existingLayout` parameter for pre-population
|
|
90
|
-
- `--yes` mode: env vars > existing layout > defaults (priority chain)
|
|
91
|
-
- Interactive mode: pre-selects existing mode in prompts via `initial` index
|
|
92
|
-
|
|
93
|
-
### Completion Notes
|
|
94
|
-
- All 4 tasks implemented and verified with 13 dedicated tests
|
|
95
|
-
- Full regression suite passes (all existing tests unaffected)
|
|
96
|
-
- `readExistingLayout()` exported for testability
|
|
97
|
-
- No new dependencies added — regex-based YAML parsing matches existing project pattern
|
|
98
|
-
- Round-trip test confirms `writeProjectLayoutYaml()` → `readExistingLayout()` works correctly
|
|
99
|
-
- Backward compatibility verified: fresh installs with no existing layout behave identically
|
|
100
|
-
|
|
101
|
-
## File List
|
|
102
|
-
|
|
103
|
-
- `bin/cli.js` — Added `readExistingLayout()`, modified `collectRepoLayout()` signature and `--yes` logic, updated interactive prompt pre-selection, wired into `installWizard()`, updated exports
|
|
104
|
-
- `test/config-lost-on-update.test.js` — New: 13 unit tests covering readExistingLayout, collectRepoLayout with existingLayout, round-trip
|
|
105
|
-
- `_bmad-output/implementation-artifacts/sprint-status.yaml` — Updated 16-5 status: ready-for-dev → in-progress → review
|
|
106
|
-
- `_bmad-output/implementation-artifacts/16-5-fix-config-lost-on-update.md` — Updated task checkboxes, status, dev agent record
|
|
107
|
-
|
|
108
|
-
## Change Log
|
|
109
|
-
|
|
110
|
-
- 2026-03-28: Implemented bug fix for config lost on update — `readExistingLayout()` reads existing multi-repo layout from `project-layout.yaml` / `config.yaml` and pre-populates `collectRepoLayout()` during updates. 13 tests added.
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
# Story 16.6: Repository Sync Check Skill
|
|
2
|
-
|
|
3
|
-
Status: review
|
|
4
|
-
|
|
5
|
-
<!-- Note: Validation is optional. Run validate-create-story for quality check before dev-story. -->
|
|
6
|
-
|
|
7
|
-
## Story
|
|
8
|
-
|
|
9
|
-
As a **developer using multi-repo layout**,
|
|
10
|
-
I want a skill or workflow that checks whether my external repos are in sync and properly scaffolded,
|
|
11
|
-
So that I catch stale clones and missing directory structures before agents fail at runtime.
|
|
12
|
-
|
|
13
|
-
## Problem Context
|
|
14
|
-
|
|
15
|
-
Epic 16 stories 16.1-16.4 let users point to external repos for knowledgebase and sprint management, but:
|
|
16
|
-
- **No scaffolding:** The external repo is never checked for the expected `_bmad-output/planning-artifacts/` and `_bmad-output/implementation-artifacts/` directory structure. A freshly created empty repo will cause every workflow to fail.
|
|
17
|
-
- **No sync:** Remote repos are cloned once during installation. After that, there is no pull, fetch, or freshness check. Local clones go stale silently.
|
|
18
|
-
|
|
19
|
-
This skill provides a pre-flight check that agents or users can run to validate external repo readiness.
|
|
20
|
-
|
|
21
|
-
## Acceptance Criteria
|
|
22
|
-
|
|
23
|
-
1. **Given** a multi-repo layout is configured, **When** the user runs the repo-sync-check skill (or an agent runs it as pre-flight), **Then** it reads `_bmad/bmm/config.yaml` to discover the `knowledgebase_path` and `sprint_management_path`
|
|
24
|
-
2. **Given** an external knowledgebase path, **When** the path does not exist on disk, **Then** the skill reports an error: "Knowledgebase path does not exist: {path}" and advises the user to re-run the installer or create the directory
|
|
25
|
-
3. **Given** an external path that exists, **When** `_bmad-output/planning-artifacts/` is missing inside it, **Then** the skill reports a warning: "Missing directory structure — run scaffolding" and offers to create the expected directories
|
|
26
|
-
4. **Given** an external path that is a git repo, **When** the local branch is behind the remote tracking branch, **Then** the skill reports: "Local clone is {N} commits behind remote — consider running git pull" with the specific count
|
|
27
|
-
5. **Given** an external path that is a git repo, **When** there are uncommitted local changes, **Then** the skill reports: "Local clone has uncommitted changes — commit or stash before pulling"
|
|
28
|
-
6. **Given** an external path that is a git repo with no remote configured, **Then** the skill reports info: "No remote tracking branch — sync check skipped (local-only repo)"
|
|
29
|
-
7. **Given** a single-repo layout (both paths are `.`), **When** the skill runs, **Then** it reports: "Single-repo layout — no external repos to check" and exits cleanly
|
|
30
|
-
8. **Given** the skill detects missing scaffolding, **When** the user confirms, **Then** the skill creates the missing directories: `_bmad-output/planning-artifacts/` and/or `_bmad-output/implementation-artifacts/` with a `.gitkeep` file in each
|
|
31
|
-
|
|
32
|
-
## Tasks / Subtasks
|
|
33
|
-
|
|
34
|
-
- [x] Task 1: Create the skill definition file
|
|
35
|
-
- [x] 1.1 Create `.claude/skills/repo-sync-check/SKILL.md` (following existing skill pattern)
|
|
36
|
-
- [x] 1.2 Define skill metadata: name, description, trigger conditions
|
|
37
|
-
- [x] 1.3 The skill should be invocable via `/repo-sync-check` command
|
|
38
|
-
|
|
39
|
-
- [x] Task 2: Implement config reading
|
|
40
|
-
- [x] 2.1 Read `_bmad/bmm/config.yaml` for `knowledgebase_path` and `sprint_management_path`
|
|
41
|
-
- [x] 2.2 If both are `.` (same), report single-repo and exit
|
|
42
|
-
- [x] 2.3 Also read `_bmad-output/project-layout.yaml` for gitUrl information (needed for remote checks)
|
|
43
|
-
|
|
44
|
-
- [x] Task 3: Implement path existence and scaffolding checks
|
|
45
|
-
- [x] 3.1 For each external path: verify the directory exists
|
|
46
|
-
- [x] 3.2 Check for `_bmad-output/planning-artifacts/` inside knowledgebase path
|
|
47
|
-
- [x] 3.3 Check for `_bmad-output/implementation-artifacts/` inside sprint management path
|
|
48
|
-
- [x] 3.4 Offer to create missing directories with `.gitkeep` files
|
|
49
|
-
|
|
50
|
-
- [x] Task 4: Implement git sync checks
|
|
51
|
-
- [x] 4.1 For each external path that contains `.git`: run `git fetch` (non-destructive) to update remote refs
|
|
52
|
-
- [x] 4.2 Compare local HEAD with remote tracking branch using `git rev-list --count HEAD..@{u}`
|
|
53
|
-
- [x] 4.3 Check for uncommitted changes via `git status --porcelain`
|
|
54
|
-
- [x] 4.4 Handle repos with no remote gracefully
|
|
55
|
-
|
|
56
|
-
- [x] Task 5: Produce advisory report
|
|
57
|
-
- [x] 5.1 Output a structured markdown report with: status per concern (OK / WARNING / ERROR), specific advice for each issue found
|
|
58
|
-
- [x] 5.2 Exit cleanly — this is advisory, not blocking
|
|
59
|
-
|
|
60
|
-
- [x] Task 6: Register skill in MANIFEST
|
|
61
|
-
- [x] 6.1 Add entry to `.claude/skills/MANIFEST.yaml`
|
|
62
|
-
- [x] 6.2 Set `applies_when` to multi-repo layout scenarios
|
|
63
|
-
- [x] 6.3 Not `always_load` — only relevant when multi-repo is configured
|
|
64
|
-
|
|
65
|
-
## Dev Notes
|
|
66
|
-
|
|
67
|
-
### Skill vs Workflow Decision
|
|
68
|
-
|
|
69
|
-
This should be a **skill** (not a workflow) because:
|
|
70
|
-
- It's a short, self-contained check — no multi-step workflow needed
|
|
71
|
-
- It should be easy to invoke manually (`/repo-sync-check`) or as a pre-flight step
|
|
72
|
-
- It reads config and runs git commands — matches skill pattern
|
|
73
|
-
|
|
74
|
-
### Git Commands (Safe, Read-Only)
|
|
75
|
-
|
|
76
|
-
All git operations are read-only except `git fetch` which only updates remote refs:
|
|
77
|
-
```bash
|
|
78
|
-
git fetch # update remote refs (safe)
|
|
79
|
-
git rev-list --count HEAD..@{u} # commits behind remote
|
|
80
|
-
git status --porcelain # uncommitted changes
|
|
81
|
-
git remote -v # check if remote exists
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### Config Reading Pattern
|
|
85
|
-
|
|
86
|
-
Match the existing LLM-instruction pattern: the skill tells Claude to read config.yaml and extract paths. No need for a JS parser — this is an agent skill, not installer code.
|
|
87
|
-
|
|
88
|
-
### References
|
|
89
|
-
|
|
90
|
-
- [Source: Adversarial Review Findings #3 (no scaffolding) and #4 (no sync)]
|
|
91
|
-
- [Source: bin/cli.js — writeRepoLayoutConfig() for config format]
|
|
92
|
-
- [Source: bin/cli.js — writeProjectLayoutYaml() for layout file format]
|
|
93
|
-
|
|
94
|
-
## Dev Agent Record
|
|
95
|
-
|
|
96
|
-
### Implementation Plan
|
|
97
|
-
- Created SKILL.md as an LLM-instruction skill (not installer code) — agents read config and run git commands
|
|
98
|
-
- Skill provides step-by-step procedure: read config, check paths, check scaffolding, check git sync, produce report
|
|
99
|
-
- Registered in MANIFEST.yaml with `applies_when` triggers for multi-repo scenarios
|
|
100
|
-
|
|
101
|
-
### Completion Notes
|
|
102
|
-
- Skill created at `.claude/skills/repo-sync-check/SKILL.md` with YAML frontmatter
|
|
103
|
-
- Registered in MANIFEST.yaml — not `always_load` (only relevant for multi-repo)
|
|
104
|
-
- No unit tests needed — this is an agent-instruction skill (markdown), not executable code
|
|
105
|
-
- Skill covers all 8 ACs: config reading, path existence, scaffolding, git sync (fetch/rev-list/status), no-remote handling, single-repo exit, scaffolding creation
|
|
106
|
-
|
|
107
|
-
## File List
|
|
108
|
-
|
|
109
|
-
- `.claude/skills/repo-sync-check/SKILL.md` — New: repo sync check skill definition
|
|
110
|
-
- `.claude/skills/MANIFEST.yaml` — Added repo-sync-check entry
|
|
111
|
-
- `_bmad-output/implementation-artifacts/sprint-status.yaml` — Updated 16-6 status
|
|
112
|
-
- `_bmad-output/implementation-artifacts/16-6-repo-sync-check-skill.md` — Story file updated
|
|
113
|
-
|
|
114
|
-
## Change Log
|
|
115
|
-
|
|
116
|
-
- 2026-03-28: Created repo-sync-check skill for multi-repo layout validation — path checks, scaffolding, git sync.
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
# Story 16.7: Portable Path Storage
|
|
2
|
-
|
|
3
|
-
Status: review
|
|
4
|
-
|
|
5
|
-
<!-- Note: Validation is optional. Run validate-create-story for quality check before dev-story. -->
|
|
6
|
-
|
|
7
|
-
## Story
|
|
8
|
-
|
|
9
|
-
As a **team member cloning a project with multi-repo layout**,
|
|
10
|
-
I want stored paths to be portable across machines,
|
|
11
|
-
So that `project-layout.yaml` and `config.yaml` don't contain absolute paths that only work on the original developer's machine.
|
|
12
|
-
|
|
13
|
-
## Problem Context
|
|
14
|
-
|
|
15
|
-
`writeProjectLayoutYaml()` at [cli.js:329-368](bin/cli.js#L329-L368) writes absolute resolved paths like `d:/Code/kb-repo` into `_bmad-output/project-layout.yaml`. This file lives inside `_bmad-output/` which is typically committed to git. When another developer clones the repo, those absolute paths are wrong for their machine.
|
|
16
|
-
|
|
17
|
-
Similarly, `writeRepoLayoutConfig()` writes absolute paths into `_bmad/bmm/config.yaml`.
|
|
18
|
-
|
|
19
|
-
## Acceptance Criteria
|
|
20
|
-
|
|
21
|
-
1. **Given** a local multi-repo path that is a sibling or relative to the project root, **When** the config is written, **Then** the path is stored as a relative path from the project root (e.g., `../kb-repo` instead of `d:/Code/kb-repo`)
|
|
22
|
-
2. **Given** a local path that cannot be expressed as a simple relative path (different drive on Windows, no common ancestor), **When** the config is written, **Then** the absolute path is stored but a comment warns: `# PORTABILITY: absolute path — other developers may need to reconfigure`
|
|
23
|
-
3. **Given** a remote repo with a gitUrl, **When** the config is written, **Then** the gitUrl is always stored (it's inherently portable), and the local clone path is stored as relative if possible
|
|
24
|
-
4. **Given** stored relative paths, **When** `readExistingLayout()` (Story 16.5) reads them back, **Then** it resolves them to absolute paths using `path.resolve(projectRoot, storedPath)` for runtime use
|
|
25
|
-
5. **Given** a `project-layout.yaml` with relative paths, **When** agents read the file, **Then** the paths work correctly because agents operate from the project root
|
|
26
|
-
6. **Given** a `config.yaml` with artifact paths derived from relative base paths, **When** the derived `planning_artifacts` and `implementation_artifacts` are written, **Then** they are also relative (e.g., `../kb-repo/_bmad-output/planning-artifacts`)
|
|
27
|
-
|
|
28
|
-
## Tasks / Subtasks
|
|
29
|
-
|
|
30
|
-
- [x] Task 1: Add relative path computation utility
|
|
31
|
-
- [x] 1.1 Create `toPortablePath(absolutePath, projectRoot)` function in `bin/cli.js`
|
|
32
|
-
- [x] 1.2 Use `path.relative(projectRoot, absolutePath)` to compute relative path
|
|
33
|
-
- [x] 1.3 If the relative path starts with more than 3 levels of `..` or crosses drive boundaries (Windows), fall back to absolute with portability comment
|
|
34
|
-
- [x] 1.4 Normalize to forward slashes (existing `normalizePath()`)
|
|
35
|
-
|
|
36
|
-
- [x] Task 2: Update `writeProjectLayoutYaml()` to use relative paths
|
|
37
|
-
- [x] 2.1 Convert each concern's path through `toPortablePath()` before writing
|
|
38
|
-
- [x] 2.2 Add portability warning comment for absolute paths that couldn't be made relative
|
|
39
|
-
|
|
40
|
-
- [x] Task 3: Update `writeRepoLayoutConfig()` to use relative paths
|
|
41
|
-
- [x] 3.1 Convert `knowledgebase_path` and `sprint_management_path` through `toPortablePath()`
|
|
42
|
-
- [x] 3.2 Derive `planning_artifacts` and `implementation_artifacts` from the portable paths
|
|
43
|
-
|
|
44
|
-
- [x] Task 4: Update `readExistingLayout()` (Story 16.5 dependency) to resolve relative paths
|
|
45
|
-
- [x] 4.1 When reading paths from files, resolve them via `path.resolve(projectRoot, storedPath)`
|
|
46
|
-
- [x] 4.2 Handle both relative and absolute paths (backward compatibility with existing configs)
|
|
47
|
-
|
|
48
|
-
- [x] Task 5: Write unit tests
|
|
49
|
-
- [x] 5.1 Test sibling path is stored as relative: `d:/Code/kb` from `d:/Code/agents` becomes `../kb`
|
|
50
|
-
- [x] 5.2 Test deeply nested relative still works: `../../other/kb`
|
|
51
|
-
- [x] 5.3 Test cross-drive path falls back to absolute with warning (Windows)
|
|
52
|
-
- [x] 5.4 Test round-trip: write relative, read back, resolve to absolute matches original
|
|
53
|
-
- [x] 5.5 Test `.` path (same repo) remains unchanged
|
|
54
|
-
- [x] 5.6 Test derived artifact paths are relative when base path is relative
|
|
55
|
-
|
|
56
|
-
## Dev Notes
|
|
57
|
-
|
|
58
|
-
### Dependencies
|
|
59
|
-
|
|
60
|
-
- Story 16.5 (`readExistingLayout`) should be implemented first — Task 4 extends it
|
|
61
|
-
- Can be developed in parallel if the `readExistingLayout` interface is agreed upon
|
|
62
|
-
|
|
63
|
-
### Path Resolution Strategy
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
Project root: d:/Code/agents
|
|
67
|
-
External KB: d:/Code/kb-repo
|
|
68
|
-
|
|
69
|
-
Relative: ../kb-repo
|
|
70
|
-
Stored: path: "../kb-repo"
|
|
71
|
-
Derived: planning_artifacts: "../kb-repo/_bmad-output/planning-artifacts"
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Backward Compatibility
|
|
75
|
-
|
|
76
|
-
Existing configs with absolute paths must still work. `readExistingLayout()` should handle both forms: if the path is already absolute, use it directly. If relative, resolve from project root.
|
|
77
|
-
|
|
78
|
-
### References
|
|
79
|
-
|
|
80
|
-
- [Source: bin/cli.js — writeProjectLayoutYaml() at line 329]
|
|
81
|
-
- [Source: bin/cli.js — writeRepoLayoutConfig() at line 304]
|
|
82
|
-
- [Source: Adversarial Review Finding #7 — absolute paths break portability]
|
|
83
|
-
|
|
84
|
-
## Dev Agent Record
|
|
85
|
-
|
|
86
|
-
### Implementation Plan
|
|
87
|
-
- Added `toPortablePath(absolutePath, projectRoot)` — converts absolute paths to relative using `path.relative()`, with fallback to absolute for cross-drive or deeply nested (>3 levels) paths
|
|
88
|
-
- Added `resolveStoredPath(storedPath, projectRoot)` — resolves relative paths back to absolute at read time, passes absolute paths through unchanged
|
|
89
|
-
- Updated `writeProjectLayoutYaml()` and `writeRepoLayoutConfig()` to convert paths through `toPortablePath()` before writing
|
|
90
|
-
- Updated `readExistingLayout()` to resolve stored relative paths via `resolveStoredPath()`
|
|
91
|
-
- Portability warning comment added for non-portable absolute paths
|
|
92
|
-
|
|
93
|
-
### Completion Notes
|
|
94
|
-
- All 5 tasks implemented with 20 dedicated tests
|
|
95
|
-
- Full regression suite passes (all existing tests unaffected, including 16-5 tests)
|
|
96
|
-
- Backward compatible: existing absolute paths in config files still work correctly
|
|
97
|
-
- Round-trip verified: write relative -> read back -> resolve = original absolute path
|
|
98
|
-
- No new dependencies added
|
|
99
|
-
|
|
100
|
-
## File List
|
|
101
|
-
|
|
102
|
-
- `bin/cli.js` — Added `toPortablePath()`, `resolveStoredPath()`, updated `writeProjectLayoutYaml()`, `writeRepoLayoutConfig()`, `readExistingLayout()`, updated exports
|
|
103
|
-
- `test/portable-paths.test.js` — New: 20 unit tests covering toPortablePath, resolveStoredPath, write functions with portability, round-trip, backward compat
|
|
104
|
-
- `_bmad-output/implementation-artifacts/sprint-status.yaml` — Updated 16-7 status
|
|
105
|
-
- `_bmad-output/implementation-artifacts/16-7-portable-path-storage.md` — Story file updated
|
|
106
|
-
|
|
107
|
-
## Change Log
|
|
108
|
-
|
|
109
|
-
- 2026-03-28: Implemented portable path storage — paths stored as relative when possible, resolved at read time. 20 tests added.
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
# Story 16.8: CI/CD Remote Repository Mode
|
|
2
|
-
|
|
3
|
-
Status: review
|
|
4
|
-
|
|
5
|
-
<!-- Note: Validation is optional. Run validate-create-story for quality check before dev-story. -->
|
|
6
|
-
|
|
7
|
-
## Story
|
|
8
|
-
|
|
9
|
-
As a **CI/CD pipeline operator**,
|
|
10
|
-
I want to configure remote git repositories for knowledgebase and sprint management in headless mode,
|
|
11
|
-
So that automated pipelines can set up multi-repo layouts without interactive prompts.
|
|
12
|
-
|
|
13
|
-
## Problem Context
|
|
14
|
-
|
|
15
|
-
The `collectRepoLayout()` function with `flags.yes` at [cli.js:372-383](bin/cli.js#L372-L383) only supports `mode: 'local'` (via env var) or `mode: 'same'` (default). There is no env var for git URLs, no automated clone step, and no `mode: 'remote'` handling. A CI pipeline cannot set up a remote multi-repo layout. It silently degrades to local-path-or-default with no warning that remote mode is unavailable in automation.
|
|
16
|
-
|
|
17
|
-
## Acceptance Criteria
|
|
18
|
-
|
|
19
|
-
1. **Given** `--yes` flag and `MA_KNOWLEDGEBASE_GIT_URL` env var set, **When** `collectRepoLayout()` runs, **Then** it clones the repo to the path specified by `MA_KNOWLEDGEBASE_PATH` (required when git URL is set) and returns `mode: 'remote'` with the gitUrl stored
|
|
20
|
-
2. **Given** `--yes` flag and `MA_SPRINT_GIT_URL` env var set, **When** `collectRepoLayout()` runs, **Then** it clones the sprint repo to `MA_SPRINT_PATH` and returns `mode: 'remote'`
|
|
21
|
-
3. **Given** git URL env var set but corresponding path env var missing, **When** `collectRepoLayout()` runs, **Then** it exits with a clear error: "MA_KNOWLEDGEBASE_GIT_URL requires MA_KNOWLEDGEBASE_PATH to be set (clone destination)"
|
|
22
|
-
4. **Given** the clone destination already exists and contains a `.git` directory, **When** the clone is attempted, **Then** it skips cloning and uses the existing directory (idempotent for re-runs)
|
|
23
|
-
5. **Given** the clone destination already exists but is NOT a git repo, **When** the clone is attempted, **Then** it exits with error: "Destination exists but is not a git repo — remove it or use a different path"
|
|
24
|
-
6. **Given** a clone failure in CI mode, **When** the clone fails, **Then** it exits with non-zero status and a clear error message (no fallback to same mode — CI should fail loudly)
|
|
25
|
-
7. **Given** only `MA_KNOWLEDGEBASE_PATH` set (no git URL), **When** `collectRepoLayout()` runs, **Then** behavior is unchanged: `mode: 'local'` with the resolved path (backward compatible)
|
|
26
|
-
8. **Given** both git URL and path env vars for both concerns point to the same repo, **Then** only one clone is performed
|
|
27
|
-
|
|
28
|
-
## Tasks / Subtasks
|
|
29
|
-
|
|
30
|
-
- [x] Task 1: Add new env var support to `collectRepoLayout()`
|
|
31
|
-
- [x] 1.1 Check `MA_KNOWLEDGEBASE_GIT_URL` and `MA_SPRINT_GIT_URL` env vars
|
|
32
|
-
- [x] 1.2 Validate that when git URL is set, corresponding PATH var is also set — exit with clear error if not
|
|
33
|
-
- [x] 1.3 When both are set: mode is `'remote'`, path is resolved PATH, gitUrl is the URL
|
|
34
|
-
|
|
35
|
-
- [x] Task 2: Implement CI-mode clone logic
|
|
36
|
-
- [x] 2.1 If destination exists with `.git/`: skip clone, log info "Using existing clone at {path}"
|
|
37
|
-
- [x] 2.2 If destination exists without `.git/`: exit with error (ambiguous state)
|
|
38
|
-
- [x] 2.3 If destination doesn't exist: clone using same `execFileSync` pattern as interactive mode
|
|
39
|
-
- [x] 2.4 On clone failure: exit with non-zero code (no fallback — CI must fail explicitly)
|
|
40
|
-
- [x] 2.5 If both concerns have same git URL + path: clone once, reference for both
|
|
41
|
-
|
|
42
|
-
- [x] Task 3: Write unit tests
|
|
43
|
-
- [x] 3.1 Test `--yes` + git URL + path env vars returns remote mode with correct fields
|
|
44
|
-
- [x] 3.2 Test `--yes` + git URL without path env var exits with error
|
|
45
|
-
- [x] 3.3 Test existing git repo at destination skips clone
|
|
46
|
-
- [x] 3.4 Test existing non-git directory at destination errors
|
|
47
|
-
- [x] 3.5 Test backward compatibility: PATH without URL still returns local mode
|
|
48
|
-
|
|
49
|
-
## Dev Notes
|
|
50
|
-
|
|
51
|
-
### Env Var Summary (After This Story)
|
|
52
|
-
|
|
53
|
-
| Env Var | Purpose | Required With |
|
|
54
|
-
|---------|---------|---------------|
|
|
55
|
-
| `MA_KNOWLEDGEBASE_PATH` | Local path for knowledgebase | Standalone or with GIT_URL |
|
|
56
|
-
| `MA_SPRINT_PATH` | Local path for sprint management | Standalone or with GIT_URL |
|
|
57
|
-
| `MA_KNOWLEDGEBASE_GIT_URL` | Git URL for knowledgebase repo | Requires MA_KNOWLEDGEBASE_PATH |
|
|
58
|
-
| `MA_SPRINT_GIT_URL` | Git URL for sprint management repo | Requires MA_SPRINT_PATH |
|
|
59
|
-
|
|
60
|
-
### CI Behavior: Fail Loudly
|
|
61
|
-
|
|
62
|
-
Interactive mode falls back to `same` on clone failure. CI mode must NOT do this — a failed clone in CI means the pipeline is broken and should exit non-zero. Use `process.exit(1)` with a clear error, not a silent fallback.
|
|
63
|
-
|
|
64
|
-
### Idempotency
|
|
65
|
-
|
|
66
|
-
CI pipelines re-run frequently. If the clone destination already exists and is a valid git repo, skip the clone. This makes the step idempotent without needing `rm -rf` in pipeline scripts.
|
|
67
|
-
|
|
68
|
-
### References
|
|
69
|
-
|
|
70
|
-
- [Source: bin/cli.js — collectRepoLayout() --yes mode at line 372]
|
|
71
|
-
- [Source: Adversarial Review Finding #8 — CI/CD can't do remote mode]
|
|
72
|
-
|
|
73
|
-
## Dev Agent Record
|
|
74
|
-
|
|
75
|
-
### Implementation Plan
|
|
76
|
-
- Added `ciCloneIfNeeded(destPath, gitUrl, clonedRepos)` — handles clone-or-skip logic with dedup tracking
|
|
77
|
-
- Extended `collectRepoLayout()` --yes mode to check `MA_KNOWLEDGEBASE_GIT_URL` / `MA_SPRINT_GIT_URL` env vars
|
|
78
|
-
- Validation: git URL without corresponding PATH exits with clear error
|
|
79
|
-
- Clone idempotency: existing `.git/` = skip; existing non-git = error; missing = clone
|
|
80
|
-
- Deduplication: same URL+path tracked via Map to avoid double clones
|
|
81
|
-
|
|
82
|
-
### Completion Notes
|
|
83
|
-
- All 3 tasks implemented with 9 dedicated tests
|
|
84
|
-
- Full regression suite passes
|
|
85
|
-
- CI behavior: fail loudly with `process.exit(1)` on errors — no silent fallback
|
|
86
|
-
- Backward compatible: PATH without URL still returns local mode
|
|
87
|
-
|
|
88
|
-
## File List
|
|
89
|
-
|
|
90
|
-
- `bin/cli.js` — Added `ciCloneIfNeeded()`, extended `collectRepoLayout()` --yes mode with git URL env vars, updated exports
|
|
91
|
-
- `test/cicd-remote-mode.test.js` — New: 9 tests covering remote mode, validation errors, clone logic, backward compat
|
|
92
|
-
- `_bmad-output/implementation-artifacts/sprint-status.yaml` — Updated 16-8 status
|
|
93
|
-
- `_bmad-output/implementation-artifacts/16-8-cicd-remote-mode.md` — Story file updated
|
|
94
|
-
|
|
95
|
-
## Change Log
|
|
96
|
-
|
|
97
|
-
- 2026-03-28: Implemented CI/CD remote mode — `MA_KNOWLEDGEBASE_GIT_URL` / `MA_SPRINT_GIT_URL` env vars enable remote repo cloning in --yes mode. 9 tests added.
|