ma-agents 3.12.3 → 3.13.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/docs/architecture.md +18 -0
- package/lib/bmad-cache/bmb/.claude-plugin/marketplace.json +1 -1
- package/lib/bmad-cache/bmb/_git_preserved/hooks/commit-msg.sample +52 -2
- package/lib/bmad-cache/bmb/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
- package/lib/bmad-cache/bmb/_git_preserved/index +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-8f8b045fef5af6911495cf3b2a89f1ed75e120f7.idx +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-8f8b045fef5af6911495cf3b2a89f1ed75e120f7.pack +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-8f8b045fef5af6911495cf3b2a89f1ed75e120f7.rev +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/packed-refs +1 -1
- package/lib/bmad-cache/bmb/_git_preserved/refs/heads/main +1 -1
- package/lib/bmad-cache/bmb/_git_preserved/shallow +1 -1
- package/lib/bmad-cache/bmb/package-lock.json +2 -2
- package/lib/bmad-cache/bmb/package.json +1 -1
- package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/assets/module-help.csv +1 -1
- package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/scripts/merge-config.py +33 -0
- package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/scripts/merge-help-csv.py +28 -0
- package/lib/bmad-cache/bmb/samples/sample-module-setup/assets/module-help.csv +1 -1
- package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/cleanup-legacy.py +28 -0
- package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-config.py +33 -0
- package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-help-csv.py +28 -0
- package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/assets/module-help.csv +1 -1
- package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/cleanup-legacy.py +28 -0
- package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/merge-config.py +33 -0
- package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/merge-help-csv.py +28 -0
- package/lib/bmad-cache/bmb/skills/bmad-eval-runner/assets/Dockerfile +29 -0
- package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/docker_setup.py +115 -0
- package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/generate_report.py +184 -0
- package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/pty_runner.py +171 -0
- package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/run_evals.py +492 -0
- package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/run_triggers.py +366 -0
- package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/utils.py +260 -0
- package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/assets/module-help.csv +1 -1
- package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/cleanup-legacy.py +28 -0
- package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/merge-config.py +33 -0
- package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/merge-help-csv.py +28 -0
- package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/standalone-module-template/merge-config.py +33 -0
- package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/standalone-module-template/merge-help-csv.py +28 -0
- package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/tests/test-validate-module.py +74 -1
- package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/validate-module.py +24 -13
- package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/assets/sample-customize-product-brief.toml +48 -33
- package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/extract-report-json.py +287 -0
- package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/generate-html-report.py +57 -8
- package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/prepass-prompt-metrics.py +7 -7
- package/lib/bmad-cache/bmb/skills/module-help.csv +1 -1
- package/lib/bmad-cache/bmb/website/public/img/eval-test-types.png +0 -0
- package/lib/bmad-cache/cache-manifest.json +17 -18
- package/lib/bmad-cache/cis/_git_preserved/hooks/commit-msg.sample +52 -2
- package/lib/bmad-cache/cis/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
- package/lib/bmad-cache/cis/_git_preserved/index +0 -0
- package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-18c8290560a98bcb7bf0676e6cc9b2ac5ca2823e.idx +0 -0
- package/lib/bmad-cache/cis/_git_preserved/objects/pack/{pack-42ffc048f54e58ce94c6331bc6be97ebbb7936f2.pack → pack-18c8290560a98bcb7bf0676e6cc9b2ac5ca2823e.pack} +0 -0
- package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-18c8290560a98bcb7bf0676e6cc9b2ac5ca2823e.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/refs/tags/v0.2.1 +1 -0
- package/lib/bmad-cache/cis/_git_preserved/shallow +1 -1
- package/lib/bmad-cache/cis/package-lock.json +2 -2
- package/lib/bmad-cache/cis/package.json +1 -1
- package/lib/bmad-cache/cis/src/module-help.csv +1 -1
- package/lib/bmad-cache/gds/.claude-plugin/marketplace.json +4 -7
- package/lib/bmad-cache/gds/README.md +3 -1
- package/lib/bmad-cache/gds/_git_preserved/hooks/commit-msg.sample +52 -2
- package/lib/bmad-cache/gds/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
- package/lib/bmad-cache/gds/_git_preserved/index +0 -0
- package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.idx +0 -0
- package/lib/bmad-cache/gds/_git_preserved/objects/pack/{pack-9427a146a90c00bb542cba038874bf9671ba4dc0.pack → pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.pack} +0 -0
- package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.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-designer/customize.toml +5 -5
- package/lib/bmad-cache/gds/src/agents/gds-agent-game-dev/customize.toml +5 -5
- package/lib/bmad-cache/gds/src/agents/gds-agent-game-solo-dev/customize.toml +0 -5
- package/lib/bmad-cache/gds/src/module-help.csv +6 -12
- package/lib/bmad-cache/gds/src/module.yaml +1 -1
- package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-create-game-brief/customize.toml +97 -22
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/assets/validation-report-template.html +190 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/customize.toml +99 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/scripts/render-validation-html.py +290 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-prd/assets/validation-report-template.html +190 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-prd/customize.toml +84 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-ux/assets/validation-report-template.html +319 -0
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-ux/customize.toml +101 -0
- package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/architecture-patterns.yaml +1 -0
- package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/decision-catalog.yaml +88 -0
- package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/engine-mcps.yaml +124 -2
- package/lib/bmad-cache/gds/src/workflows/4-production/gds-investigate/customize.toml +62 -0
- package/lib/bmad-cache/tea/.claude-plugin/marketplace.json +1 -1
- package/lib/bmad-cache/tea/.github/workflows/docs.yaml +3 -3
- package/lib/bmad-cache/tea/.github/workflows/quality.yaml +10 -10
- package/lib/bmad-cache/tea/AGENTS.md +31 -0
- package/lib/bmad-cache/tea/CHANGELOG.md +42 -1
- package/lib/bmad-cache/tea/README.md +8 -5
- package/lib/bmad-cache/tea/_git_preserved/hooks/commit-msg.sample +52 -2
- package/lib/bmad-cache/tea/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
- package/lib/bmad-cache/tea/_git_preserved/index +0 -0
- package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-9e4197e37df7763dd7a05c2965ee921dfd2eb617.idx +0 -0
- package/lib/bmad-cache/tea/_git_preserved/objects/pack/{pack-f0df537f2649464ff6c5aee241165eb9c8664227.pack → pack-9e4197e37df7763dd7a05c2965ee921dfd2eb617.pack} +0 -0
- package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-9e4197e37df7763dd7a05c2965ee921dfd2eb617.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/refs/tags/v1.19.0 +1 -0
- package/lib/bmad-cache/tea/_git_preserved/shallow +1 -1
- package/lib/bmad-cache/tea/docs/explanation/engagement-models.md +15 -16
- package/lib/bmad-cache/tea/docs/explanation/knowledge-base-system.md +2 -0
- package/lib/bmad-cache/tea/docs/explanation/risk-based-testing.md +1 -1
- package/lib/bmad-cache/tea/docs/explanation/tea-overview.md +88 -52
- package/lib/bmad-cache/tea/docs/explanation/testing-as-engineering.md +13 -12
- package/lib/bmad-cache/tea/docs/glossary/index.md +2 -2
- package/lib/bmad-cache/tea/docs/how-to/brownfield/use-tea-for-enterprise.md +19 -18
- package/lib/bmad-cache/tea/docs/how-to/brownfield/use-tea-with-existing-tests.md +1 -1
- package/lib/bmad-cache/tea/docs/how-to/workflows/run-nfr-assess.md +32 -26
- package/lib/bmad-cache/tea/docs/how-to/workflows/run-test-design.md +20 -14
- package/lib/bmad-cache/tea/docs/how-to/workflows/run-trace.md +3 -3
- package/lib/bmad-cache/tea/docs/index.md +13 -11
- package/lib/bmad-cache/tea/docs/reference/commands.md +37 -13
- package/lib/bmad-cache/tea/docs/reference/knowledge-base.md +2 -2
- package/lib/bmad-cache/tea/package-lock.json +2 -2
- package/lib/bmad-cache/tea/package.json +1 -1
- package/lib/bmad-cache/tea/src/agents/bmad-tea/customize.toml +20 -15
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/confidence-gate.md +73 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/test-quality.md +1 -0
- package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/tea-index.csv +2 -1
- package/lib/bmad-cache/tea/src/module-help.csv +2 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/README.md +5 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/data/role-paths.yaml +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/data/tea-resources-index.yaml +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-01.md +2 -2
- 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/templates/certificate-template.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/tea-index.csv +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/tea-index.csv +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/tea-index.csv +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/tea-index.csv +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/SKILL.md +3 -3
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/checklist.md +11 -11
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/instructions.md +4 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/nfr-report-template.md +5 -5
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/tea-index.csv +1 -1
- 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-01b-resume.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-02-define-thresholds.md +14 -3
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04-evaluate-and-score.md +7 -7
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04a-subagent-security.md +4 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04b-subagent-performance.md +4 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04c-subagent-reliability.md +4 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04d-subagent-scalability.md +4 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04e-aggregate-nfr.md +4 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-05-generate-report.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/workflow-plan.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/workflow.yaml +3 -3
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/checklist.md +23 -3
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/tea-index.csv +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-02-load-context.md +7 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-03-risk-and-testability.md +16 -2
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-04-coverage-plan.md +20 -4
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-05-generate-output.md +2 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-architecture-template.md +17 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-qa-template.md +15 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-template.md +16 -0
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/tea-index.csv +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/checklist.md +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/tea-index.csv +1 -1
- package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/trace-template.md +1 -1
- package/lib/bmad-cache/tea/test/test-installation-components.js +49 -0
- package/lib/bmad-cache/tea/website/astro.config.mjs +2 -2
- package/lib/bmad-cache/wds/README.md +1 -1
- package/lib/bmad-cache/wds/_git_preserved/hooks/commit-msg.sample +52 -2
- package/lib/bmad-cache/wds/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
- package/lib/bmad-cache/wds/_git_preserved/index +0 -0
- package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.idx +0 -0
- package/lib/bmad-cache/wds/_git_preserved/objects/pack/{pack-96877c1c09123cccb1f91c1412184b11d2b492ad.pack → pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.pack} +0 -0
- package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.rev +0 -0
- package/lib/bmad-cache/wds/_git_preserved/packed-refs +1 -1
- package/lib/bmad-cache/wds/_git_preserved/refs/heads/main +1 -1
- package/lib/bmad-cache/wds/_git_preserved/refs/tags/v0.4.3 +1 -0
- package/lib/bmad-cache/wds/_git_preserved/shallow +1 -1
- package/lib/bmad-cache/wds/eslint.config.mjs +1 -1
- package/lib/bmad-cache/wds/package.json +1 -1
- package/lib/bmad-cache/wds/src/agents/wds-agent-freya-ux/customize.toml +80 -0
- package/lib/bmad-cache/wds/src/agents/wds-agent-mimir-builder/customize.toml +52 -0
- package/lib/bmad-cache/wds/src/agents/wds-agent-saga-analyst/customize.toml +70 -0
- package/lib/bmad-cache/wds/src/module-help.csv +19 -19
- package/lib/bmad-cache/wds/src/module.yaml +28 -0
- package/lib/bmad-cache/wds/src/scripts/README.md +155 -0
- package/lib/bmad-cache/wds/src/scripts/wds-add-object.js +202 -0
- package/lib/bmad-cache/wds/src/scripts/wds-add-spacing.js +158 -0
- package/lib/bmad-cache/wds/src/scripts/wds-init-page.js +229 -0
- package/lib/bmad-cache/wds/src/scripts/wds-init-scenario.js +120 -0
- package/lib/bmad-cache/wds/src/scripts/wds-nav.js +201 -0
- package/lib/bmad-cache/wds/src/scripts/wds-validate.js +301 -0
- package/lib/bmad-cache/wds/src/workflows/wds-3-scenarios/workflow.xml +450 -0
- package/lib/bmad-cache/wds/src/workflows/wds-4-ux-design/workflow-specify.xml +387 -0
- package/lib/bmad-extension/.claude-plugin/marketplace.json.template +1 -1
- package/lib/bmad-extension-plugin/.claude-plugin/marketplace.json +2 -2
- package/lib/bmad.js +91 -7
- package/lib/installer.js +28 -6
- package/lib/mil498-templates/OCD.md +169 -169
- package/lib/mil498-templates/README.md +4 -4
- package/lib/mil498-templates/SDD.md +163 -163
- package/lib/mil498-templates/SDP.md +307 -307
- package/lib/mil498-templates/SRS.md +219 -219
- package/lib/mil498-templates/SSDD.md +154 -154
- package/lib/mil498-templates/SSS.md +225 -225
- package/lib/mil498-templates/STD.md +188 -188
- package/lib/templates/instruction-block-git.template.md +25 -0
- package/package.json +5 -4
- package/scripts/build-bmad-cache.js +143 -42
- package/skills/git-workflow-skill/skill.json +21 -21
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.idx +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/objects/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/refs/remotes/origin/HEAD +0 -1
- package/lib/bmad-cache/bmb/_git_preserved/refs/tags/v1.7.0 +0 -1
- package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/generate-convert-report.py +0 -406
- package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/tests/test_generate_convert_report.py +0 -243
- package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-42ffc048f54e58ce94c6331bc6be97ebbb7936f2.idx +0 -0
- package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-42ffc048f54e58ce94c6331bc6be97ebbb7936f2.rev +0 -0
- package/lib/bmad-cache/cis/_git_preserved/refs/remotes/origin/HEAD +0 -1
- package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-9427a146a90c00bb542cba038874bf9671ba4dc0.idx +0 -0
- package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-9427a146a90c00bb542cba038874bf9671ba4dc0.rev +0 -0
- package/lib/bmad-cache/gds/_git_preserved/refs/remotes/origin/HEAD +0 -1
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-gdd/customize.toml +0 -41
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-prd/customize.toml +0 -41
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-prd/data/domain-complexity.csv +0 -15
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-prd/data/project-types.csv +0 -11
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-ux-design/customize.toml +0 -41
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-edit-gdd/customize.toml +0 -41
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-edit-prd/customize.toml +0 -41
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-gdd/customize.toml +0 -41
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/customize.toml +0 -41
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/data/domain-complexity.csv +0 -15
- package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/data/project-types.csv +0 -11
- package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-f0df537f2649464ff6c5aee241165eb9c8664227.idx +0 -0
- package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-f0df537f2649464ff6c5aee241165eb9c8664227.rev +0 -0
- package/lib/bmad-cache/tea/_git_preserved/refs/remotes/origin/HEAD +0 -1
- package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-96877c1c09123cccb1f91c1412184b11d2b492ad.idx +0 -0
- package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-96877c1c09123cccb1f91c1412184b11d2b492ad.rev +0 -0
- package/lib/bmad-cache/wds/_git_preserved/refs/remotes/origin/HEAD +0 -1
- package/lib/bmad-cache/wds/src/agents/wds-agent-freya-ux/bmad-skill-manifest.yaml +0 -12
- package/lib/bmad-cache/wds/src/agents/wds-agent-saga-analyst/bmad-skill-manifest.yaml +0 -12
- package/lib/bmad-cache/wds/src/workflows/wds-0-alignment-signoff/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/wds/src/workflows/wds-0-project-setup/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/wds/src/workflows/wds-1-project-brief/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/wds/src/workflows/wds-2-trigger-mapping/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/wds/src/workflows/wds-3-scenarios/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/wds/src/workflows/wds-4-ux-design/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/wds/src/workflows/wds-5-agentic-development/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/wds/src/workflows/wds-6-asset-generation/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/wds/src/workflows/wds-7-design-system/bmad-skill-manifest.yaml +0 -1
- package/lib/bmad-cache/wds/src/workflows/wds-8-product-evolution/bmad-skill-manifest.yaml +0 -1
- /package/lib/bmad-cache/gds/src/workflows/2-design/{gds-create-gdd → gds-gdd/assets}/game-types.csv +0 -0
- /package/lib/bmad-cache/gds/src/workflows/2-design/{gds-validate-gdd/data → gds-gdd/assets}/genre-complexity.csv +0 -0
|
@@ -9,22 +9,56 @@ const CACHE_DIR = path.join(__dirname, '..', 'lib', 'bmad-cache');
|
|
|
9
9
|
const MANIFEST_PATH = path.join(CACHE_DIR, 'cache-manifest.json');
|
|
10
10
|
const force = process.argv.includes('--force');
|
|
11
11
|
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
12
|
+
// The bundled module registry has stayed YAML throughout bmad-method's
|
|
13
|
+
// history, but its PATH has moved across versions (see Decision P5-5 in
|
|
14
|
+
// architecture.md):
|
|
15
|
+
//
|
|
16
|
+
// ≤6.2.x tools/cli/external-official-modules.yaml
|
|
17
|
+
// 6.3.0 tools/installer/modules/registry-fallback.yaml (retired in 6.7.0)
|
|
18
|
+
// 6.8.0 bmad-modules.yaml (package root)
|
|
19
|
+
//
|
|
20
|
+
// We read the bundled registry because (a) it is deterministic across offline
|
|
21
|
+
// builds and (b) it matches what bmad-method itself loads when the network
|
|
22
|
+
// registry is unreachable. The 6.8.0 file is a `modules:` map whose entries
|
|
23
|
+
// carry `code`/`url`/`name`/`type` — the same shape the parser already reads.
|
|
24
|
+
// Crucially the new schema carries no `branch` field (default to `main`) and
|
|
25
|
+
// it expresses the bundle decision via a `type` field rather than the old
|
|
26
|
+
// `built_in` flag: `type: bmad-org` modules (tea, bmb, cis, gds, wds) are
|
|
27
|
+
// cloned; `type: experimental` (automator) is excluded; `bmm`/`core` are
|
|
28
|
+
// built into the npm package itself and are absent from the registry entirely.
|
|
29
|
+
//
|
|
30
|
+
// Candidates are tried in order; the first that exists on disk wins. The
|
|
31
|
+
// package-root path is listed first because it is the live 6.8.0+ location.
|
|
32
|
+
//
|
|
33
|
+
// The two older paths are retained only as diagnostics: they carry the
|
|
34
|
+
// pre-6.8.0 `built_in` schema, which the `type: bmad-org` filter below does
|
|
35
|
+
// NOT understand, so they resolve zero bundled modules. If one of them is the
|
|
36
|
+
// only file present (i.e. someone downgraded bmad-method below 6.8.0), the
|
|
37
|
+
// thin-cache guard in main() aborts with an actionable message rather than
|
|
38
|
+
// silently shipping an empty cache. They are kept so `locateRegistry` reports
|
|
39
|
+
// "found <old path>" instead of a bare "nothing found", which points the
|
|
40
|
+
// maintainer at the version mismatch.
|
|
21
41
|
const REGISTRY_CANDIDATES = [
|
|
22
|
-
// v6.
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
['tools', '
|
|
42
|
+
// v6.8.0+ — relocated to the package root (the supported, filterable schema)
|
|
43
|
+
{ parts: ['bmad-modules.yaml'], schema: 'package-root-v68' },
|
|
44
|
+
// v6.3.0–6.6.x bundled fallback (diagnostic only — pre-`type` schema)
|
|
45
|
+
{ parts: ['tools', 'installer', 'modules', 'registry-fallback.yaml'], schema: 'registry-fallback' },
|
|
46
|
+
// legacy v6.2.x fallback (diagnostic only — pre-`type` schema)
|
|
47
|
+
{ parts: ['tools', 'cli', 'external-official-modules.yaml'], schema: 'legacy' },
|
|
26
48
|
];
|
|
27
49
|
|
|
50
|
+
// The set of modules ma-agents bundles for offline installs. At v6.8.0 these
|
|
51
|
+
// are exactly the `type: bmad-org` registry entries. The fail-loud guard
|
|
52
|
+
// (NFR56) treats a resolved set SMALLER than this as a thin-cache failure —
|
|
53
|
+
// the registry path has moved twice, so silent degradation is a recurring
|
|
54
|
+
// risk that must abort the build rather than ship an incomplete cache.
|
|
55
|
+
const KNOWN_BUNDLED_MODULES = ['tea', 'bmb', 'cis', 'gds', 'wds'];
|
|
56
|
+
|
|
57
|
+
// Registry `type` values that mark a module for bundling. `bmad-org` modules
|
|
58
|
+
// are first-party expansions ma-agents clones; `experimental` (e.g. automator)
|
|
59
|
+
// is deliberately excluded from the offline bundle.
|
|
60
|
+
const BUNDLED_MODULE_TYPE = 'bmad-org';
|
|
61
|
+
|
|
28
62
|
/**
|
|
29
63
|
* Locate the bmad-method package on disk. Abort cleanly if missing so the
|
|
30
64
|
* caller gets an actionable "run npm install" message instead of a MODULE_NOT_FOUND
|
|
@@ -41,36 +75,54 @@ function locateBmadMethodDir() {
|
|
|
41
75
|
|
|
42
76
|
/**
|
|
43
77
|
* Locate the first registry YAML that exists on disk.
|
|
44
|
-
*
|
|
45
|
-
*
|
|
78
|
+
*
|
|
79
|
+
* @param {string} bmadMethodDir Absolute path to the bmad-method package dir.
|
|
80
|
+
* @returns {{ yamlPath: string, schema: string }} The resolved registry path
|
|
81
|
+
* and its schema tag (`package-root-v68` for the relocated 6.8.0 YAML,
|
|
82
|
+
* `registry-fallback` for 6.3.0–6.6.x, or `legacy` for ≤6.2.x).
|
|
83
|
+
*
|
|
84
|
+
* Resolution is fail-loud: if no candidate exists, prints an actionable error
|
|
85
|
+
* and exits non-zero (NFR56) rather than returning a falsy result that a
|
|
86
|
+
* caller might silently treat as "zero modules".
|
|
46
87
|
*/
|
|
47
88
|
function locateRegistry(bmadMethodDir) {
|
|
48
|
-
for (
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return { yamlPath: candidate, schema: i === 0 ? 'v63' : 'legacy' };
|
|
89
|
+
for (const candidate of REGISTRY_CANDIDATES) {
|
|
90
|
+
const candidatePath = path.join(bmadMethodDir, ...candidate.parts);
|
|
91
|
+
if (fs.existsSync(candidatePath)) {
|
|
92
|
+
return { yamlPath: candidatePath, schema: candidate.schema };
|
|
53
93
|
}
|
|
54
94
|
}
|
|
55
95
|
console.error('Error: no module registry YAML found in bmad-method.');
|
|
56
|
-
console.error(` Searched: ${REGISTRY_CANDIDATES.map(
|
|
96
|
+
console.error(` Searched: ${REGISTRY_CANDIDATES.map(c => c.parts.join('/')).join(', ')}`);
|
|
97
|
+
console.error(' Expected the relocated package-root "bmad-modules.yaml" at bmad-method >= 6.8.0.');
|
|
57
98
|
process.exit(1);
|
|
58
99
|
}
|
|
59
100
|
|
|
60
101
|
/**
|
|
61
102
|
* Parse the bundled module registry YAML.
|
|
62
103
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
104
|
+
* Every registry version (legacy `external-official-modules.yaml`, the
|
|
105
|
+
* `registry-fallback.yaml`, and the relocated package-root `bmad-modules.yaml`
|
|
106
|
+
* at 6.8.0) uses the same `modules:` map shape, so a single parser serves all:
|
|
65
107
|
*
|
|
66
108
|
* modules:
|
|
67
109
|
* <module-key>:
|
|
68
110
|
* url: "..."
|
|
69
111
|
* code: "..."
|
|
70
112
|
* name: "..."
|
|
71
|
-
*
|
|
72
|
-
* [
|
|
73
|
-
* [
|
|
113
|
+
* type: "..." # v6.8.0 — drives the bundle filter
|
|
114
|
+
* [branch: "..."] # legacy only (absent at 6.8.0 → main)
|
|
115
|
+
* [built_in: true] # 6.3.0–6.6.x only (superseded by `type`)
|
|
116
|
+
* [module-definition: "..."] # informational, ignored
|
|
117
|
+
*
|
|
118
|
+
* The parser already captures arbitrary scalar properties (including `type`),
|
|
119
|
+
* so the 6.8.0 relocation needed no parser change — only the docblock and the
|
|
120
|
+
* downstream filter were updated.
|
|
121
|
+
*
|
|
122
|
+
* @param {string} content Raw UTF-8 YAML text.
|
|
123
|
+
* @returns {Array<Object>} One object per module entry; keys mirror the YAML
|
|
124
|
+
* property names plus a synthetic `key` (the map key). No filtering is done
|
|
125
|
+
* here — that is normalizeModules()'s job.
|
|
74
126
|
*
|
|
75
127
|
* We keep a minimal line-by-line parser (no js-yaml dep) since the file is
|
|
76
128
|
* flat and well-formed.
|
|
@@ -128,19 +180,20 @@ function parseModulesYaml(content) {
|
|
|
128
180
|
* { code, url, name, branch }
|
|
129
181
|
*
|
|
130
182
|
* - Requires both `code` and `url`.
|
|
131
|
-
* -
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
183
|
+
* - Keeps ONLY `type: bmad-org` modules (tea, bmb, cis, gds, wds) and drops
|
|
184
|
+
* everything else. This replaces the pre-6.8.0 `built_in` exclusion: the
|
|
185
|
+
* relocated registry no longer carries a `built_in` flag and instead tags
|
|
186
|
+
* each module with a `type`. `type: experimental` (e.g. `automator`) is
|
|
187
|
+
* excluded from the offline bundle; `bmm`/`core` are first-party modules
|
|
188
|
+
* that ship inside the npm package and are absent from the registry, so they
|
|
189
|
+
* are dropped here too (no `bmad-org` type → filtered out). There is NO
|
|
190
|
+
* `wds`-retired/skip path — `wds` is an active `bmad-org` clone at 6.8.0.
|
|
191
|
+
* - Defaults `branch` to `main` when absent (the 6.8.0 schema omits it).
|
|
137
192
|
* - Passes the URL through verbatim (git accepts both `repo` and `repo.git`).
|
|
193
|
+
*
|
|
194
|
+
* @param {Array<Object>} raw Entries from parseModulesYaml().
|
|
195
|
+
* @returns {Array<{code: string, url: string, name: string, branch: string}>}
|
|
138
196
|
*/
|
|
139
|
-
// Values that YAML may use to express a truthy boolean. bmad-method uses
|
|
140
|
-
// canonical `true`, but be generous so a future registry that emits `yes`/
|
|
141
|
-
// `on`/`1` cannot accidentally cache a built-in module as an external clone.
|
|
142
|
-
const TRUTHY_STRINGS = new Set(['true', 'yes', 'on', '1', 'y']);
|
|
143
|
-
|
|
144
197
|
// Module `code` values are used as directory names under lib/bmad-cache.
|
|
145
198
|
// Reject anything that could escape the cache dir or inject shell characters;
|
|
146
199
|
// registry data is trusted today, but this is cheap defense-in-depth.
|
|
@@ -150,8 +203,10 @@ function normalizeModules(raw) {
|
|
|
150
203
|
return raw
|
|
151
204
|
.filter(m => m.code && m.url)
|
|
152
205
|
.filter(m => {
|
|
153
|
-
|
|
154
|
-
|
|
206
|
+
// Bundle only `type: bmad-org`. Compare case-insensitively and trim so
|
|
207
|
+
// minor upstream whitespace/casing drift cannot silently drop a module.
|
|
208
|
+
const type = String(m.type || '').trim().toLowerCase();
|
|
209
|
+
return type === BUNDLED_MODULE_TYPE;
|
|
155
210
|
})
|
|
156
211
|
.filter(m => {
|
|
157
212
|
if (MODULE_CODE_PATTERN.test(m.code)) return true;
|
|
@@ -315,8 +370,40 @@ function main() {
|
|
|
315
370
|
console.log('='.repeat(40));
|
|
316
371
|
|
|
317
372
|
const { modules, schema } = loadModuleDefinitions();
|
|
318
|
-
|
|
319
|
-
|
|
373
|
+
|
|
374
|
+
// Thin-cache fail-loud guard (NFR56). The registry path has moved twice;
|
|
375
|
+
// the real risk is no longer "zero modules" but the path moving again and
|
|
376
|
+
// the reader silently resolving FEWER than the known bundled set. Treat a
|
|
377
|
+
// deficient set as a hard error and abort BEFORE writing any manifest — a
|
|
378
|
+
// partial/empty cache-manifest.json would otherwise ship a broken offline
|
|
379
|
+
// bundle that "looks" successful.
|
|
380
|
+
const resolvedCodes = new Set(modules.map(m => m.code));
|
|
381
|
+
|
|
382
|
+
// Duplicate-code guard. Two registry entries sharing a `code` would clone
|
|
383
|
+
// into the same cache directory and silently overwrite each other's manifest
|
|
384
|
+
// entry (last-write-wins), and the Set above would mask the collision from
|
|
385
|
+
// the thin-cache check below. Fail loud instead.
|
|
386
|
+
if (modules.length !== resolvedCodes.size) {
|
|
387
|
+
const seen = new Set();
|
|
388
|
+
const dupes = new Set();
|
|
389
|
+
for (const m of modules) {
|
|
390
|
+
if (seen.has(m.code)) dupes.add(m.code);
|
|
391
|
+
seen.add(m.code);
|
|
392
|
+
}
|
|
393
|
+
console.error('Error: registry contains duplicate module codes — refusing to build an ambiguous cache.');
|
|
394
|
+
console.error(` Duplicated: ${[...dupes].join(', ')}`);
|
|
395
|
+
process.exit(1);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
const missing = KNOWN_BUNDLED_MODULES.filter(code => !resolvedCodes.has(code));
|
|
399
|
+
if (missing.length > 0) {
|
|
400
|
+
console.error('Error: registry resolved a thin module set — refusing to build a partial cache.');
|
|
401
|
+
console.error(` Expected at least: ${KNOWN_BUNDLED_MODULES.join(', ')}`);
|
|
402
|
+
console.error(` Resolved (type: ${BUNDLED_MODULE_TYPE}): ${[...resolvedCodes].join(', ') || '(none)'}`);
|
|
403
|
+
console.error(` Missing: ${missing.join(', ')}`);
|
|
404
|
+
console.error(' Likely cause: bmad-method was downgraded below 6.8.0, the registry layout moved');
|
|
405
|
+
console.error(' again, or a bundled module was renamed/retired upstream. Update REGISTRY_CANDIDATES,');
|
|
406
|
+
console.error(' the type filter, or KNOWN_BUNDLED_MODULES in scripts/build-bmad-cache.js to match.');
|
|
320
407
|
process.exit(1);
|
|
321
408
|
}
|
|
322
409
|
console.log(`Found ${modules.length} modules: ${modules.map(m => m.code).join(', ')}`);
|
|
@@ -491,4 +578,18 @@ function main() {
|
|
|
491
578
|
}
|
|
492
579
|
}
|
|
493
580
|
|
|
494
|
-
|
|
581
|
+
// Run the build only when executed directly (`node scripts/build-bmad-cache.js`).
|
|
582
|
+
// When required as a module (by unit tests), export the pure reader functions
|
|
583
|
+
// instead so they can be exercised against fixtures without cloning anything.
|
|
584
|
+
if (require.main === module) {
|
|
585
|
+
main();
|
|
586
|
+
} else {
|
|
587
|
+
module.exports = {
|
|
588
|
+
parseModulesYaml,
|
|
589
|
+
normalizeModules,
|
|
590
|
+
locateRegistry,
|
|
591
|
+
KNOWN_BUNDLED_MODULES,
|
|
592
|
+
BUNDLED_MODULE_TYPE,
|
|
593
|
+
REGISTRY_CANDIDATES,
|
|
594
|
+
};
|
|
595
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Git Workflow",
|
|
3
|
-
"description": "MANDATORY worktree-based workflow for ALL file-changing activities. Enforces isolated feature branches, conventional commits, and PR-based merging.",
|
|
4
|
-
"version": "2.1.0",
|
|
5
|
-
"author": "AI Agent Skills",
|
|
6
|
-
"tags": [
|
|
7
|
-
"git",
|
|
8
|
-
"worktrees",
|
|
9
|
-
"workflow",
|
|
10
|
-
"branching",
|
|
11
|
-
"conventional-commits",
|
|
12
|
-
"pull-requests",
|
|
13
|
-
"multi-agent"
|
|
14
|
-
],
|
|
15
|
-
"applies_when": [
|
|
16
|
-
"committing changes",
|
|
17
|
-
"creating branches or PRs",
|
|
18
|
-
"any code writing or modification task"
|
|
19
|
-
],
|
|
20
|
-
"always_load": true
|
|
21
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "Git Workflow",
|
|
3
|
+
"description": "MANDATORY worktree-based workflow for ALL file-changing activities. Enforces isolated feature branches, conventional commits, and PR-based merging.",
|
|
4
|
+
"version": "2.1.0",
|
|
5
|
+
"author": "AI Agent Skills",
|
|
6
|
+
"tags": [
|
|
7
|
+
"git",
|
|
8
|
+
"worktrees",
|
|
9
|
+
"workflow",
|
|
10
|
+
"branching",
|
|
11
|
+
"conventional-commits",
|
|
12
|
+
"pull-requests",
|
|
13
|
+
"multi-agent"
|
|
14
|
+
],
|
|
15
|
+
"applies_when": [
|
|
16
|
+
"committing changes",
|
|
17
|
+
"creating branches or PRs",
|
|
18
|
+
"any code writing or modification task"
|
|
19
|
+
],
|
|
20
|
+
"always_load": true
|
|
21
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ref: refs/remotes/origin/main
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
6c66cf215b5ec6701d70cf2d9df968fa09433cfe
|