ma-agents 3.12.2 → 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/bin/cli.js +11 -6
- 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
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"name": "bmad-game-dev-studio",
|
|
13
13
|
"source": "./",
|
|
14
14
|
"description": "A comprehensive game development module with agents and workflows for preproduction, design, architecture, production, and testing across Unity, Unreal, and Godot. Part of the BMad Method ecosystem.",
|
|
15
|
-
"version": "0.
|
|
15
|
+
"version": "0.6.0",
|
|
16
16
|
"author": {
|
|
17
17
|
"name": "Brian (BMad) Madison"
|
|
18
18
|
},
|
|
@@ -25,14 +25,10 @@
|
|
|
25
25
|
"./src/workflows/1-preproduction/gds-brainstorm-game",
|
|
26
26
|
"./src/workflows/1-preproduction/gds-create-game-brief",
|
|
27
27
|
"./src/workflows/1-preproduction/research/gds-domain-research",
|
|
28
|
-
"./src/workflows/2-design/gds-create-gdd",
|
|
29
28
|
"./src/workflows/2-design/gds-create-narrative",
|
|
30
|
-
"./src/workflows/2-design/gds-create-prd",
|
|
31
29
|
"./src/workflows/2-design/gds-create-ux-design",
|
|
32
|
-
"./src/workflows/2-design/gds-
|
|
33
|
-
"./src/workflows/2-design/gds-
|
|
34
|
-
"./src/workflows/2-design/gds-validate-gdd",
|
|
35
|
-
"./src/workflows/2-design/gds-validate-prd",
|
|
30
|
+
"./src/workflows/2-design/gds-gdd",
|
|
31
|
+
"./src/workflows/2-design/gds-prd",
|
|
36
32
|
"./src/workflows/3-technical/gds-check-implementation-readiness",
|
|
37
33
|
"./src/workflows/3-technical/gds-create-epics-and-stories",
|
|
38
34
|
"./src/workflows/3-technical/gds-game-architecture",
|
|
@@ -41,6 +37,7 @@
|
|
|
41
37
|
"./src/workflows/4-production/gds-correct-course",
|
|
42
38
|
"./src/workflows/4-production/gds-create-story",
|
|
43
39
|
"./src/workflows/4-production/gds-dev-story",
|
|
40
|
+
"./src/workflows/4-production/gds-investigate",
|
|
44
41
|
"./src/workflows/4-production/gds-retrospective",
|
|
45
42
|
"./src/workflows/4-production/gds-sprint-planning",
|
|
46
43
|
"./src/workflows/4-production/gds-sprint-status",
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://docs.astral.sh/uv/)
|
|
7
7
|
[](https://discord.gg/gk8jAdXWmj)
|
|
8
8
|
|
|
9
|
-
**BMGD brings BMad's structured development to game development.** Create working prototypes quickly in Unity, Unreal, Godot—or any engine you choose.
|
|
9
|
+
**BMGD brings BMad's structured development to game development.** Create working prototypes quickly in Unity, Unreal, Godot, Roblox—or any engine you choose.
|
|
10
10
|
|
|
11
11
|

|
|
12
12
|
|
|
@@ -21,6 +21,7 @@ BMGD has first-class support for:
|
|
|
21
21
|
- [Unity](https://unity.com) — C# scripting, industry-standard for many game types
|
|
22
22
|
- [Unreal Engine](https://www.unrealengine.com/) — Blueprint and C++, AAA powerhouse
|
|
23
23
|
- [Godot](https://godotengine.org/) — Open-source, GDScript, rapidly growing
|
|
24
|
+
- [Roblox](https://www.roblox.com/create) — Luau scripting, platform-native game development
|
|
24
25
|
|
|
25
26
|
But you're not limited to these—BMGD works with any platform, from pure C to custom engines.
|
|
26
27
|
|
|
@@ -42,6 +43,7 @@ BMGD supports **21 game types**, including:
|
|
|
42
43
|
- **Product Research** — Market analysis, competitor research, positioning
|
|
43
44
|
- **Game Design Document** — Comprehensive GDD with mechanics, progression, and balance
|
|
44
45
|
- **Narrative Design** — Story structure, characters, dialogue, world-building
|
|
46
|
+
- **UX Design** — Two peer specs: `DESIGN.md` (visual identity) and `EXPERIENCE.md` (UI/HUD behavior, input schemes, player journeys)
|
|
45
47
|
- **Technical Architecture** — Engine patterns, performance considerations
|
|
46
48
|
- **Production Planning** — Epic-driven sprints, story tracking, retrospectives
|
|
47
49
|
- **Quick Prototyping** — Skip the planning, jump straight into building
|
|
@@ -15,10 +15,60 @@
|
|
|
15
15
|
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
|
|
16
16
|
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
|
|
17
17
|
|
|
18
|
-
# This example catches duplicate Signed-off-by lines
|
|
18
|
+
# This example catches duplicate Signed-off-by lines and messages that
|
|
19
|
+
# would confuse 'git am'.
|
|
20
|
+
|
|
21
|
+
ret=0
|
|
19
22
|
|
|
20
23
|
test "" = "$(grep '^Signed-off-by: ' "$1" |
|
|
21
24
|
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
|
|
22
25
|
echo >&2 Duplicate Signed-off-by lines.
|
|
23
|
-
|
|
26
|
+
ret=1
|
|
24
27
|
}
|
|
28
|
+
|
|
29
|
+
comment_re="$(
|
|
30
|
+
{
|
|
31
|
+
git config --get-regexp "^core\.comment(char|string)\$" ||
|
|
32
|
+
echo '#'
|
|
33
|
+
} | sed -n -e '
|
|
34
|
+
${
|
|
35
|
+
s/^[^ ]* //
|
|
36
|
+
s|[][*./\]|\\&|g
|
|
37
|
+
s/^auto$/[#;@!$%^&|:]/
|
|
38
|
+
p
|
|
39
|
+
}'
|
|
40
|
+
)"
|
|
41
|
+
scissors_line="^${comment_re} -\{8,\} >8 -\{8,\}\$"
|
|
42
|
+
comment_line="^${comment_re}.*"
|
|
43
|
+
blank_line='^[ ]*$'
|
|
44
|
+
# Disallow lines starting with "diff -" or "Index: " in the body of the
|
|
45
|
+
# message. Stop looking if we see a scissors line.
|
|
46
|
+
line="$(sed -n -e "
|
|
47
|
+
# Skip comments and blank lines at the start of the file.
|
|
48
|
+
/${scissors_line}/q
|
|
49
|
+
/${comment_line}/d
|
|
50
|
+
/${blank_line}/d
|
|
51
|
+
# The first paragraph will become the subject header so
|
|
52
|
+
# does not need to be checked.
|
|
53
|
+
: subject
|
|
54
|
+
n
|
|
55
|
+
/${scissors_line}/q
|
|
56
|
+
/${blank_line}/!b subject
|
|
57
|
+
# Check the body of the message for problematic
|
|
58
|
+
# prefixes.
|
|
59
|
+
: body
|
|
60
|
+
n
|
|
61
|
+
/${scissors_line}/q
|
|
62
|
+
/${comment_line}/b body
|
|
63
|
+
/^diff -/{p;q;}
|
|
64
|
+
/^Index: /{p;q;}
|
|
65
|
+
b body
|
|
66
|
+
" "$1")"
|
|
67
|
+
if test -n "$line"
|
|
68
|
+
then
|
|
69
|
+
echo >&2 "Message contains a diff that will confuse 'git am'."
|
|
70
|
+
echo >&2 "To fix this indent the diff."
|
|
71
|
+
ret=1
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
exit $ret
|
|
@@ -29,8 +29,6 @@ if ($version ne 2) {
|
|
|
29
29
|
|
|
30
30
|
my $git_work_tree = get_working_dir();
|
|
31
31
|
|
|
32
|
-
my $retry = 1;
|
|
33
|
-
|
|
34
32
|
my $json_pkg;
|
|
35
33
|
eval {
|
|
36
34
|
require JSON::XS;
|
|
@@ -123,8 +121,7 @@ sub watchman_query {
|
|
|
123
121
|
sub is_work_tree_watched {
|
|
124
122
|
my ($output) = @_;
|
|
125
123
|
my $error = $output->{error};
|
|
126
|
-
if ($
|
|
127
|
-
$retry--;
|
|
124
|
+
if ($error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
|
|
128
125
|
my $response = qx/watchman watch "$git_work_tree"/;
|
|
129
126
|
die "Failed to make watchman watch '$git_work_tree'.\n" .
|
|
130
127
|
"Falling back to scanning...\n" if $? != 0;
|
|
@@ -142,15 +139,12 @@ sub is_work_tree_watched {
|
|
|
142
139
|
# Watchman query just to get it over with now so we won't pay
|
|
143
140
|
# the cost in git to look up each individual file.
|
|
144
141
|
my $o = watchman_clock();
|
|
145
|
-
$error = $
|
|
142
|
+
$error = $o->{error};
|
|
146
143
|
|
|
147
144
|
die "Watchman: $error.\n" .
|
|
148
145
|
"Falling back to scanning...\n" if $error;
|
|
149
146
|
|
|
150
147
|
output_result($o->{clock}, ("/"));
|
|
151
|
-
$last_update_token = $o->{clock};
|
|
152
|
-
|
|
153
|
-
eval { launch_watchman() };
|
|
154
148
|
return 0;
|
|
155
149
|
}
|
|
156
150
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# pack-refs with: peeled fully-peeled sorted
|
|
2
|
-
|
|
2
|
+
46c3a6cddf882af1f918187d6e5748c1edfd9c52 refs/remotes/origin/main
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
46c3a6cddf882af1f918187d6e5748c1edfd9c52
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
46c3a6cddf882af1f918187d6e5748c1edfd9c52
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "bmad-game-dev-studio",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.6.0",
|
|
5
5
|
"private": true,
|
|
6
6
|
"description": "A BMad MEthod Core Module that offers a substantial stand alone module for Game Development across multiple supported platforms",
|
|
7
7
|
"keywords": [
|
|
@@ -45,8 +45,8 @@ skill = "gds-create-game-brief"
|
|
|
45
45
|
|
|
46
46
|
[[agent.menu]]
|
|
47
47
|
code = "GDD"
|
|
48
|
-
description = "Create a Game Design Document"
|
|
49
|
-
skill = "gds-
|
|
48
|
+
description = "Create, update, or validate a Game Design Document"
|
|
49
|
+
skill = "gds-gdd"
|
|
50
50
|
|
|
51
51
|
[[agent.menu]]
|
|
52
52
|
code = "ND"
|
|
@@ -54,6 +54,6 @@ description = "Design narrative elements and story"
|
|
|
54
54
|
skill = "gds-create-narrative"
|
|
55
55
|
|
|
56
56
|
[[agent.menu]]
|
|
57
|
-
code = "
|
|
58
|
-
description = "
|
|
59
|
-
skill = "gds-
|
|
57
|
+
code = "CU"
|
|
58
|
+
description = "Plan game UX, UI, HUD, and player journeys"
|
|
59
|
+
skill = "gds-ux"
|
|
@@ -58,11 +58,6 @@ code = "QD"
|
|
|
58
58
|
description = "Clarify, plan, implement, review, and present any intent end-to-end"
|
|
59
59
|
skill = "gds-quick-dev"
|
|
60
60
|
|
|
61
|
-
[[agent.menu]]
|
|
62
|
-
code = "QP"
|
|
63
|
-
description = "Rapid game prototyping — test mechanics and ideas quickly"
|
|
64
|
-
skill = "gds-quick-prototype"
|
|
65
|
-
|
|
66
61
|
[[agent.menu]]
|
|
67
62
|
code = "CS"
|
|
68
63
|
description = "Create a story with full context for developer implementation"
|
|
@@ -123,6 +118,11 @@ code = "TR"
|
|
|
123
118
|
description = "Review test quality and coverage"
|
|
124
119
|
skill = "gds-test-review"
|
|
125
120
|
|
|
121
|
+
[[agent.menu]]
|
|
122
|
+
code = "IN"
|
|
123
|
+
description = "Forensic case investigation — trace a bug, reconstruct an incident, or model unfamiliar code"
|
|
124
|
+
skill = "gds-investigate"
|
|
125
|
+
|
|
126
126
|
[[agent.menu]]
|
|
127
127
|
code = "AE"
|
|
128
128
|
description = "Advanced elicitation — challenge the LLM to get better results"
|
|
@@ -34,11 +34,6 @@ principles = [
|
|
|
34
34
|
"The core loop must be fun before anything else matters.",
|
|
35
35
|
]
|
|
36
36
|
|
|
37
|
-
[[agent.menu]]
|
|
38
|
-
code = "QP"
|
|
39
|
-
description = "Rapid prototype to test if the mechanic is fun — start here for new ideas"
|
|
40
|
-
skill = "gds-quick-prototype"
|
|
41
|
-
|
|
42
37
|
[[agent.menu]]
|
|
43
38
|
code = "QD"
|
|
44
39
|
description = "Clarify, plan, implement, review, and present any intent end-to-end"
|
|
@@ -1,22 +1,15 @@
|
|
|
1
|
-
module,skill,display-name,menu-code,description,action,args,phase,
|
|
1
|
+
module,skill,display-name,menu-code,description,action,args,phase,preceded-by,followed-by,required,output-location,outputs
|
|
2
2
|
Game Dev Studio,_meta,,,,,,,,,false,https://game-dev-studio-docs.bmad-method.org/llms.txt,
|
|
3
3
|
Game Dev Studio,gds-document-project,Document Project,DP,Analyze an existing game project to produce useful documentation.,,,anytime,,,false,project_knowledge,project documentation
|
|
4
|
-
Game Dev Studio,gds-quick-prototype,Quick Prototype,QP,Rapid game prototyping to test mechanics and ideas quickly.,,,anytime,,,false,,
|
|
5
4
|
Game Dev Studio,gds-quick-dev,Quick Dev,QD,Clarify plan implement review and present any user intent or change request in a single workflow.,,,anytime,,,false,implementation_artifacts,spec
|
|
6
5
|
Game Dev Studio,gds-correct-course,Correct Course,CC,Navigate significant changes during game dev sprint when implementation is off-track.,,,anytime,,,false,planning_artifacts,change proposal
|
|
7
6
|
Game Dev Studio,gds-brainstorm-game,Brainstorm Game,BG,Facilitate game brainstorming sessions with game-specific context and techniques.,,,1-preproduction,,,false,output_folder,brainstorming session
|
|
8
|
-
Game Dev Studio,gds-market-research,Market Research,MR,Game market analysis competitive landscape player needs and trends.,,,1-preproduction,,,false,planning_artifacts,research documents
|
|
9
7
|
Game Dev Studio,gds-domain-research,Domain Research,DR,Game industry domain deep dive subject matter expertise and terminology.,,,1-preproduction,,,false,planning_artifacts,research documents
|
|
10
|
-
Game Dev Studio,gds-technical-research,Technical Research,TR,Technical feasibility game engine options and implementation approaches.,,,1-preproduction,,,false,planning_artifacts,research documents
|
|
11
8
|
Game Dev Studio,gds-create-game-brief,Game Brief,GB,Interactive game brief creation that guides users through defining their game vision.,,,1-preproduction,,,false,output_folder,game brief
|
|
12
|
-
Game Dev Studio,gds-
|
|
13
|
-
Game Dev Studio,gds-
|
|
14
|
-
Game Dev Studio,gds-
|
|
15
|
-
Game Dev Studio,gds-
|
|
16
|
-
Game Dev Studio,gds-create-ux-design,Create UX Design,CU,"Guidance through realizing the plan for your game UX/UI, strongly recommended if UI is a primary piece of the proposed game.",,,2-design,gds-create-gdd,,false,planning_artifacts,ux design
|
|
17
|
-
Game Dev Studio,gds-create-prd,Create PRD,CP,Create a PRD from GDD or from scratch for use with external tools like bmad-assist.,,,2-design,gds-create-gdd,,false,planning_artifacts,prd
|
|
18
|
-
Game Dev Studio,gds-validate-prd,Validate PRD,VP,Validate PRD against standards for external tool compatibility.,,,2-design,gds-create-prd,,false,planning_artifacts,prd validation report
|
|
19
|
-
Game Dev Studio,gds-edit-prd,Edit PRD,EP,Improve and enhance an existing PRD.,,,2-design,gds-validate-prd,,false,planning_artifacts,updated prd
|
|
9
|
+
Game Dev Studio,gds-gdd,Game Design Document,GDD,"Create, update, or validate a game's GDD — the primary design artifact covering pillars, mechanics, progression, levels, art, audio, and development epics.",,,2-design,,,false,planning_artifacts,gdd
|
|
10
|
+
Game Dev Studio,gds-create-narrative,Narrative Design,ND,Create comprehensive narrative documentation including story structure character arcs and world-building. Use for story-driven games.,,,2-design,gds-gdd,,false,planning_artifacts,narrative design
|
|
11
|
+
Game Dev Studio,gds-ux,Game UX Design,CU,"Plan game UX with DESIGN.md and EXPERIENCE.md spines covering UI, HUD, input schemes, and player journeys.",,,2-design,gds-gdd,,false,planning_artifacts,ux design
|
|
12
|
+
Game Dev Studio,gds-prd,Game PRD,PRD,"Create, update, or validate a game project's PRD — often derived from a GDD or prepared for external-tool integration.",,,2-design,gds-gdd,,false,planning_artifacts,prd
|
|
20
13
|
Game Dev Studio,gds-generate-project-context,Project Context,PC,Create optimized project-context.md for chosen agentic tool consistency.,,,3-technical,,,false,,
|
|
21
14
|
Game Dev Studio,gds-game-architecture,Game Architecture,GA,Produce a scale-adaptive game architecture with engine systems networking and technical design.,,,3-technical,,,true,planning_artifacts,game architecture
|
|
22
15
|
Game Dev Studio,gds-create-epics-and-stories,Create Epics and Stories,CE,Create the Epics and Stories listing from GDD requirements. These are the specs that drive development.,,,3-technical,gds-game-architecture,,true,planning_artifacts,epics and stories
|
|
@@ -29,6 +22,7 @@ Game Dev Studio,gds-create-story,Create Story,CS,Create Story with comprehensive
|
|
|
29
22
|
Game Dev Studio,gds-dev-story,Dev Story,DS,Execute Dev Story workflow implementing tasks and tests.,,,4-production,gds-create-story,,true,,
|
|
30
23
|
Game Dev Studio,gds-code-review,Code Review,CR,Perform thorough clean context QA code review on stories flagged Ready for Review.,,,4-production,gds-dev-story,,false,,
|
|
31
24
|
Game Dev Studio,gds-retrospective,Retrospective,ER,Facilitate team retrospective after a game development epic is completed.,,,4-production,gds-code-review,,false,implementation_artifacts,retrospective
|
|
25
|
+
Game Dev Studio,gds-investigate,Investigate,IN,"Forensic case investigation with evidence-graded findings — trace a bug, reconstruct an incident, or model unfamiliar code.",,,4-production,,,false,implementation_artifacts,investigation case file
|
|
32
26
|
Game Dev Studio,gds-test-automate,Test Automate,TA,Generate automated game tests.,,,gametest,,,false,,
|
|
33
27
|
Game Dev Studio,gds-e2e-scaffold,E2E Scaffold,ES,Scaffold E2E testing infrastructure.,,,gametest,gds-test-automate,,false,,
|
|
34
28
|
Game Dev Studio,gds-playtest-plan,Playtest Plan,PP,Create structured playtesting plan.,,,gametest,gds-e2e-scaffold,,false,planning_artifacts,playtest plan
|
package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-create-game-brief/customize.toml
CHANGED
|
@@ -1,41 +1,116 @@
|
|
|
1
1
|
# DO NOT EDIT -- overwritten on every update.
|
|
2
2
|
#
|
|
3
|
-
# Workflow customization surface for gds-create-game-brief.
|
|
4
|
-
#
|
|
3
|
+
# Workflow customization surface for gds-create-game-brief.
|
|
4
|
+
#
|
|
5
|
+
# Override files (not edited here):
|
|
6
|
+
# {project-root}/_bmad/custom/gds-create-game-brief.toml (team)
|
|
7
|
+
# {project-root}/_bmad/custom/gds-create-game-brief.user.toml (personal)
|
|
5
8
|
|
|
6
9
|
[workflow]
|
|
7
10
|
|
|
8
11
|
# --- Configurable below. Overrides merge per BMad structural rules: ---
|
|
9
|
-
# scalars: override wins • arrays
|
|
10
|
-
# arrays-of-tables with `code`/`id`: replace matching items, append new ones.
|
|
12
|
+
# scalars: override wins • arrays: append
|
|
11
13
|
|
|
12
14
|
# Steps to run before the standard activation (config load, greet).
|
|
13
|
-
#
|
|
14
|
-
|
|
15
|
+
# Use for pre-flight loads, compliance checks, etc.
|
|
15
16
|
activation_steps_prepend = []
|
|
16
17
|
|
|
17
18
|
# Steps to run after greet but before the workflow begins.
|
|
18
|
-
#
|
|
19
|
-
# once the user has been acknowledged.
|
|
20
|
-
|
|
19
|
+
# Use for context-heavy setup that should happen once the user has been acknowledged.
|
|
21
20
|
activation_steps_append = []
|
|
22
21
|
|
|
23
22
|
# Persistent facts the workflow keeps in mind for the whole run
|
|
24
|
-
# (standards,
|
|
25
|
-
#
|
|
26
|
-
# loaded
|
|
23
|
+
# (studio standards, platform constraints, stylistic guardrails).
|
|
24
|
+
# Each entry is either a literal sentence, a skill prefixed with `skill:`, or a
|
|
25
|
+
# `file:`-prefixed path/glob whose contents are loaded as facts. Empty by default.
|
|
27
26
|
#
|
|
28
|
-
#
|
|
29
|
-
# -
|
|
30
|
-
# - a
|
|
31
|
-
#
|
|
27
|
+
# Common opt-ins (set in team/user override TOML):
|
|
28
|
+
# "file:{project-root}/**/project-context.md" # load project context if gds-generate-project-context produced one
|
|
29
|
+
# "skill:acme-studio:brand-and-rating-guidelines" # a skill that contains studio info
|
|
30
|
+
# "Every game brief must anchor on a single core fantasy players can describe in one sentence."
|
|
31
|
+
persistent_facts = []
|
|
32
|
+
|
|
33
|
+
# Executed when the workflow completes (after the user has been told the
|
|
34
|
+
# brief is ready). Accepts either a string scalar (single instruction)
|
|
35
|
+
# or an array of instructions executed in order. Empty for none.
|
|
36
|
+
on_complete = ""
|
|
37
|
+
|
|
38
|
+
# Default game-brief structure. Treated as a starting point — the LLM adapts it
|
|
39
|
+
# to the game, purpose, and genre. Override the path in team/user TOML to enforce
|
|
40
|
+
# a different structure (e.g. live-service, narrative-heavy, mobile-F2P).
|
|
41
|
+
brief_template = "assets/brief-template.md"
|
|
32
42
|
|
|
33
|
-
|
|
34
|
-
|
|
43
|
+
# Run folder location. The brief and optional addendum land inside
|
|
44
|
+
# `{brief_output_path}/{run_folder_pattern}/`. Resume-check scans
|
|
45
|
+
# `{brief_output_path}` for prior unfinished runs.
|
|
46
|
+
brief_output_path = "{planning_artifacts}/briefs"
|
|
47
|
+
run_folder_pattern = "brief-{project_name}-{date}"
|
|
48
|
+
|
|
49
|
+
# Polish passes applied to human-consumed docs at finalize. Each entry is a
|
|
50
|
+
# `skill:`, `file:`, or plain-text directive run as a parallel subagent against
|
|
51
|
+
# the draft; findings are applied before the user sees it. Encodes standards,
|
|
52
|
+
# not options.
|
|
53
|
+
#
|
|
54
|
+
# Examples:
|
|
55
|
+
# "skill:bmad-editorial-review-prose"
|
|
56
|
+
# "file:{project-root}/_bmad/style-guides/studio-voice.md"
|
|
57
|
+
# "Convert all dates to ISO 8601 format."
|
|
58
|
+
#
|
|
59
|
+
# Suggested order (broader passes first, narrower last):
|
|
60
|
+
# 1. Structural (cuts, reorganization, section sizing)
|
|
61
|
+
# 2. Content/voice/conventions (studio standards, tone, terminology, rating)
|
|
62
|
+
# 3. Prose mechanics (grammar, clarity, typos)
|
|
63
|
+
#
|
|
64
|
+
# Override the array in team/user TOML to add additional standards. Append-only:
|
|
65
|
+
# base entries cannot be removed or replaced (resolver has no removal mechanism).
|
|
66
|
+
polish_passes = [
|
|
67
|
+
"skill:bmad-editorial-review-structure",
|
|
68
|
+
"skill:bmad-editorial-review-prose",
|
|
35
69
|
]
|
|
36
70
|
|
|
37
|
-
#
|
|
38
|
-
#
|
|
39
|
-
#
|
|
71
|
+
# Reviewer panel applied at finalize, after polish_passes. Each entry is a
|
|
72
|
+
# `skill:`, `file:`, or plain-text directive run as a parallel subagent that
|
|
73
|
+
# critiques the draft and returns findings (it does not silently rewrite).
|
|
74
|
+
# Prefix an entry with `required:` to make it a hard gate — the workflow will
|
|
75
|
+
# not present the brief as final until that reviewer passes or the user waives
|
|
76
|
+
# it. `finalize_reviewers` is an alias surface for the same gate. Empty by default.
|
|
77
|
+
#
|
|
78
|
+
# Examples (set in team/user override TOML):
|
|
79
|
+
# "skill:acme-studio:greenlight-review"
|
|
80
|
+
# "required:Confirm the core fantasy is stated in a single sentence and the MVP is truly minimal."
|
|
81
|
+
# "When the brief targets a rated platform, cross-check content against corp:rating_reference."
|
|
82
|
+
reviewers = []
|
|
83
|
+
finalize_reviewers = []
|
|
40
84
|
|
|
41
|
-
|
|
85
|
+
# Name or directive of the single reviewer treated as the required gate when
|
|
86
|
+
# not expressed inline via a `required:` prefix above. Empty by default.
|
|
87
|
+
required_reviewer = ""
|
|
88
|
+
|
|
89
|
+
# External-source registry. Natural-language directives describing knowledge
|
|
90
|
+
# bases, MCP tools, or internal systems the LLM may consult during the workflow
|
|
91
|
+
# when a relevant need surfaces. The LLM does NOT query these preemptively — it
|
|
92
|
+
# consults them on demand (during Discovery, validation, drafting, etc.). Each
|
|
93
|
+
# entry names the tool, the conditions for using it, and any fields it needs.
|
|
94
|
+
# If a named MCP tool is unavailable at runtime, the LLM falls back to standard
|
|
95
|
+
# behavior and notes the gap. Empty by default.
|
|
96
|
+
#
|
|
97
|
+
# Examples (set in team/user override TOML):
|
|
98
|
+
# "When researching genre context, consult corp:kb_search (database='game-design-docs') before web search."
|
|
99
|
+
# "For player-sentiment signal during Discovery, query corp:wishlist_search with project={project_name}."
|
|
100
|
+
# "When validating platform-rating claims, cross-check against corp:rating_reference."
|
|
101
|
+
external_sources = []
|
|
102
|
+
|
|
103
|
+
# External-handoff routing. Natural-language directives the LLM applies at
|
|
104
|
+
# Finalize to route outputs beyond local files (Confluence, Notion, Google
|
|
105
|
+
# Drive, ticket systems, etc.). Each entry names the MCP tool, the destination,
|
|
106
|
+
# and the fields it needs. Handoffs run after the artifact is polished and
|
|
107
|
+
# before the final user-facing message. URLs or IDs returned by the destination
|
|
108
|
+
# are captured and surfaced to the user. If a named tool is unavailable at
|
|
109
|
+
# runtime, the handoff is skipped and flagged in the JSON status; local files
|
|
110
|
+
# always exist regardless. Fires automatically — users can opt out in their
|
|
111
|
+
# prompt for a specific run. Empty by default.
|
|
112
|
+
#
|
|
113
|
+
# Examples (set in team/user override TOML):
|
|
114
|
+
# "After finalize, upload brief.md and addendum.md to Confluence via corp:confluence_upload (space_key='GAME', parent_page='Game Briefs', label='brief', author={user_name})."
|
|
115
|
+
# "Post a ready-for-review ping to Slack via corp:slack_post (channel='#game-design', text='New game brief: '+{confluence_url})."
|
|
116
|
+
external_handoffs = []
|
package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/assets/validation-report-template.html
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>GDD Validation: $prd_name</title>
|
|
6
|
+
<style>
|
|
7
|
+
:root {
|
|
8
|
+
--bg: #fafaf9;
|
|
9
|
+
--surface: #ffffff;
|
|
10
|
+
--border: #e7e5e4;
|
|
11
|
+
--text: #1c1917;
|
|
12
|
+
--muted: #78716c;
|
|
13
|
+
--pass: #22c55e;
|
|
14
|
+
--warn: #eab308;
|
|
15
|
+
--fail: #ef4444;
|
|
16
|
+
--na: #94a3b8;
|
|
17
|
+
--sev-low: #64748b;
|
|
18
|
+
--sev-medium: #ca8a04;
|
|
19
|
+
--sev-high: #ea580c;
|
|
20
|
+
--sev-critical: #dc2626;
|
|
21
|
+
--grade-exc: #16a34a;
|
|
22
|
+
--grade-good: #65a30d;
|
|
23
|
+
--grade-fair: #d97706;
|
|
24
|
+
--grade-poor: #dc2626;
|
|
25
|
+
}
|
|
26
|
+
* { box-sizing: border-box; }
|
|
27
|
+
html, body { margin: 0; padding: 0; }
|
|
28
|
+
body {
|
|
29
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
|
|
30
|
+
background: var(--bg);
|
|
31
|
+
color: var(--text);
|
|
32
|
+
line-height: 1.55;
|
|
33
|
+
font-size: 15px;
|
|
34
|
+
}
|
|
35
|
+
.container { max-width: 960px; margin: 0 auto; padding: 32px 24px 64px; }
|
|
36
|
+
|
|
37
|
+
header.report-header {
|
|
38
|
+
display: flex;
|
|
39
|
+
align-items: center;
|
|
40
|
+
justify-content: space-between;
|
|
41
|
+
gap: 24px;
|
|
42
|
+
padding-bottom: 16px;
|
|
43
|
+
border-bottom: 1px solid var(--border);
|
|
44
|
+
margin-bottom: 24px;
|
|
45
|
+
}
|
|
46
|
+
.title h1 { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -0.01em; }
|
|
47
|
+
.title .subtitle { color: var(--muted); font-size: 13px; margin-top: 4px; font-family: ui-monospace, "SF Mono", Menlo, monospace; }
|
|
48
|
+
.grade {
|
|
49
|
+
padding: 10px 18px;
|
|
50
|
+
border-radius: 8px;
|
|
51
|
+
font-weight: 600;
|
|
52
|
+
color: white;
|
|
53
|
+
font-size: 15px;
|
|
54
|
+
white-space: nowrap;
|
|
55
|
+
}
|
|
56
|
+
.grade-excellent { background: var(--grade-exc); }
|
|
57
|
+
.grade-good { background: var(--grade-good); }
|
|
58
|
+
.grade-fair { background: var(--grade-fair); }
|
|
59
|
+
.grade-poor { background: var(--grade-poor); }
|
|
60
|
+
|
|
61
|
+
.synthesis {
|
|
62
|
+
background: var(--surface);
|
|
63
|
+
border: 1px solid var(--border);
|
|
64
|
+
border-left: 3px solid var(--muted);
|
|
65
|
+
border-radius: 8px;
|
|
66
|
+
padding: 16px 20px;
|
|
67
|
+
margin-bottom: 24px;
|
|
68
|
+
color: var(--text);
|
|
69
|
+
font-size: 15px;
|
|
70
|
+
}
|
|
71
|
+
.synthesis:empty { display: none; }
|
|
72
|
+
|
|
73
|
+
.scoreboard {
|
|
74
|
+
background: var(--surface);
|
|
75
|
+
border: 1px solid var(--border);
|
|
76
|
+
border-radius: 8px;
|
|
77
|
+
padding: 18px 20px;
|
|
78
|
+
margin-bottom: 24px;
|
|
79
|
+
}
|
|
80
|
+
.score-bar { margin: 0 0 14px; line-height: 0; }
|
|
81
|
+
.score-stats { display: flex; gap: 22px; font-size: 14px; flex-wrap: wrap; }
|
|
82
|
+
.score-stats span { display: inline-flex; align-items: center; gap: 6px; }
|
|
83
|
+
.score-stats .dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
|
|
84
|
+
.dot-pass { background: var(--pass); }
|
|
85
|
+
.dot-warn { background: var(--warn); }
|
|
86
|
+
.dot-fail { background: var(--fail); }
|
|
87
|
+
.dot-na { background: var(--na); }
|
|
88
|
+
.total-count { margin-left: auto; color: var(--muted); }
|
|
89
|
+
|
|
90
|
+
section.category { margin-bottom: 16px; }
|
|
91
|
+
section.category details {
|
|
92
|
+
background: var(--surface);
|
|
93
|
+
border: 1px solid var(--border);
|
|
94
|
+
border-radius: 8px;
|
|
95
|
+
overflow: hidden;
|
|
96
|
+
}
|
|
97
|
+
section.category summary {
|
|
98
|
+
padding: 14px 20px;
|
|
99
|
+
cursor: pointer;
|
|
100
|
+
user-select: none;
|
|
101
|
+
list-style: none;
|
|
102
|
+
}
|
|
103
|
+
section.category summary::-webkit-details-marker { display: none; }
|
|
104
|
+
section.category summary::before {
|
|
105
|
+
content: "▸";
|
|
106
|
+
display: inline-block;
|
|
107
|
+
margin-right: 10px;
|
|
108
|
+
color: var(--muted);
|
|
109
|
+
transition: transform 0.15s ease;
|
|
110
|
+
}
|
|
111
|
+
section.category details[open] summary::before { transform: rotate(90deg); }
|
|
112
|
+
section.category summary h2 { display: inline; margin: 0; font-size: 16px; font-weight: 600; letter-spacing: -0.005em; }
|
|
113
|
+
section.category .count { color: var(--muted); font-weight: 400; margin-left: 6px; font-size: 14px; }
|
|
114
|
+
|
|
115
|
+
article.finding { padding: 16px 20px; border-top: 1px solid var(--border); }
|
|
116
|
+
article.finding-fail { background: rgba(239, 68, 68, 0.025); }
|
|
117
|
+
article.finding header {
|
|
118
|
+
display: flex;
|
|
119
|
+
align-items: center;
|
|
120
|
+
gap: 10px;
|
|
121
|
+
flex-wrap: wrap;
|
|
122
|
+
margin-bottom: 8px;
|
|
123
|
+
}
|
|
124
|
+
.badge {
|
|
125
|
+
font-size: 10.5px;
|
|
126
|
+
padding: 3px 8px;
|
|
127
|
+
border-radius: 4px;
|
|
128
|
+
font-weight: 600;
|
|
129
|
+
text-transform: uppercase;
|
|
130
|
+
letter-spacing: 0.04em;
|
|
131
|
+
line-height: 1.4;
|
|
132
|
+
}
|
|
133
|
+
.badge-pass { background: rgba(34, 197, 94, 0.12); color: #15803d; }
|
|
134
|
+
.badge-warn { background: rgba(234, 179, 8, 0.14); color: #854d0e; }
|
|
135
|
+
.badge-fail { background: rgba(239, 68, 68, 0.12); color: #b91c1c; }
|
|
136
|
+
.badge-na { background: rgba(148, 163, 184, 0.16); color: #475569; }
|
|
137
|
+
.badge-sev-low { background: rgba(100, 116, 139, 0.12); color: var(--sev-low); }
|
|
138
|
+
.badge-sev-medium { background: rgba(202, 138, 4, 0.14); color: var(--sev-medium); }
|
|
139
|
+
.badge-sev-high { background: rgba(234, 88, 12, 0.14); color: var(--sev-high); }
|
|
140
|
+
.badge-sev-critical { background: rgba(220, 38, 38, 0.14); color: var(--sev-critical); }
|
|
141
|
+
.finding-id { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 12px; color: var(--muted); }
|
|
142
|
+
.finding-title { margin: 0; font-size: 15px; font-weight: 500; flex: 1; min-width: 200px; }
|
|
143
|
+
.finding-location, .finding-note, .finding-fix { margin-top: 6px; font-size: 14px; color: var(--text); }
|
|
144
|
+
.finding-location strong, .finding-fix strong { color: var(--muted); font-weight: 500; }
|
|
145
|
+
|
|
146
|
+
footer.report-footer {
|
|
147
|
+
margin-top: 40px;
|
|
148
|
+
padding-top: 16px;
|
|
149
|
+
border-top: 1px solid var(--border);
|
|
150
|
+
font-size: 12px;
|
|
151
|
+
color: var(--muted);
|
|
152
|
+
font-family: ui-monospace, "SF Mono", Menlo, monospace;
|
|
153
|
+
}
|
|
154
|
+
footer .meta { display: flex; gap: 24px; flex-wrap: wrap; }
|
|
155
|
+
</style>
|
|
156
|
+
</head>
|
|
157
|
+
<body>
|
|
158
|
+
<div class="container">
|
|
159
|
+
<header class="report-header">
|
|
160
|
+
<div class="title">
|
|
161
|
+
<h1>$prd_name — GDD Validation Report</h1>
|
|
162
|
+
<div class="subtitle">$prd_path</div>
|
|
163
|
+
</div>
|
|
164
|
+
<div class="grade $grade_class">$grade</div>
|
|
165
|
+
</header>
|
|
166
|
+
|
|
167
|
+
<div class="synthesis">$overall_synthesis</div>
|
|
168
|
+
|
|
169
|
+
<div class="scoreboard">
|
|
170
|
+
<div class="score-bar">$score_svg</div>
|
|
171
|
+
<div class="score-stats">
|
|
172
|
+
<span><span class="dot dot-pass"></span>$passed pass</span>
|
|
173
|
+
<span><span class="dot dot-warn"></span>$warned warn</span>
|
|
174
|
+
<span><span class="dot dot-fail"></span>$failed fail</span>
|
|
175
|
+
<span><span class="dot dot-na"></span>$na n/a</span>
|
|
176
|
+
<span class="total-count">$total items checked</span>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
|
|
180
|
+
$categories_html
|
|
181
|
+
|
|
182
|
+
<footer class="report-footer">
|
|
183
|
+
<div class="meta">
|
|
184
|
+
<span>Checklist: $checklist_path</span>
|
|
185
|
+
<span>Generated: $timestamp</span>
|
|
186
|
+
</div>
|
|
187
|
+
</footer>
|
|
188
|
+
</div>
|
|
189
|
+
</body>
|
|
190
|
+
</html>
|