bmad-method 6.0.0-alpha.5 → 6.0.0-alpha.7
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/.claude/settings.local.json +12 -6
- package/.github/workflows/{lint.yaml → quality.yaml} +19 -2
- package/.husky/pre-commit +4 -0
- package/CONTRIBUTING.md +1 -13
- package/README.md +59 -1
- package/bmad/_cfg/agent-manifest.csv +1 -13
- package/bmad/_cfg/files-manifest.csv +10 -256
- package/bmad/_cfg/ides/claude-code.yaml +2 -2
- package/bmad/_cfg/manifest.yaml +4 -5
- package/bmad/_cfg/task-manifest.csv +4 -1
- package/bmad/_cfg/tool-manifest.csv +1 -0
- package/bmad/_cfg/workflow-manifest.csv +2 -35
- package/bmad/bmb/config.yaml +2 -2
- package/bmad/bmb/workflows/audit-workflow/instructions.md +1 -1
- package/bmad/bmb/workflows/create-agent/instructions.md +25 -9
- package/bmad/bmb/workflows/create-module/module-structure.md +34 -0
- package/bmad/core/config.yaml +2 -2
- package/docs/installers-bundlers/installers-modules-platforms-reference.md +61 -0
- package/package.json +5 -3
- package/src/core/tasks/adv-elicit.xml +1 -1
- package/src/modules/bmb/workflows/create-agent/instructions.md +25 -9
- package/src/modules/bmb/workflows/create-module/module-structure.md +34 -0
- package/src/modules/bmgd/README.md +208 -0
- package/src/modules/bmgd/_module-installer/install-config.yaml +66 -0
- package/src/modules/{bmm → bmgd}/agents/game-architect.agent.yaml +5 -12
- package/src/modules/{bmm → bmgd}/agents/game-designer.agent.yaml +10 -22
- package/src/modules/{bmm → bmgd}/agents/game-dev.agent.yaml +9 -10
- package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +70 -0
- package/{bmad/bmm → src/modules/bmgd}/teams/team-gamedev.yaml +3 -1
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/workflow.yaml +7 -7
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/workflow.yaml +9 -9
- package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +81 -0
- package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/workflow.yaml +6 -6
- package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/instructions.md +7 -18
- package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/workflow.yaml +16 -16
- package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/code-review/workflow.yaml +3 -1
- package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/correct-course/workflow.yaml +3 -1
- package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/create-story/workflow.yaml +3 -1
- package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/dev-story/workflow.yaml +3 -1
- package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/epic-tech-context/workflow.yaml +3 -1
- package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/retrospective/workflow.yaml +3 -1
- package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/sprint-planning/workflow.yaml +3 -1
- package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-context/workflow.yaml +3 -1
- package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-done/workflow.yaml +3 -1
- package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-ready/workflow.yaml +3 -1
- package/src/modules/bmm/_module-installer/install-config.yaml +5 -0
- package/src/modules/bmm/docs/README.md +18 -18
- package/src/modules/bmm/docs/agents-guide.md +1 -2
- package/src/modules/bmm/docs/brownfield-guide.md +10 -15
- package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
- package/src/modules/bmm/docs/faq.md +10 -12
- package/src/modules/bmm/docs/glossary.md +8 -9
- package/src/modules/bmm/docs/quick-spec-flow.md +7 -7
- package/src/modules/bmm/docs/quick-start.md +9 -9
- package/src/modules/bmm/docs/scale-adaptive-system.md +6 -6
- package/src/modules/bmm/docs/test-architecture.md +394 -0
- package/src/modules/bmm/docs/workflows-analysis.md +229 -529
- package/src/modules/bmm/docs/workflows-implementation.md +196 -1670
- package/src/modules/bmm/docs/workflows-planning.md +364 -849
- package/src/modules/bmm/docs/workflows-solutioning.md +268 -493
- package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +65 -32
- package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +4 -0
- package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +1 -1
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +34 -5
- package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +1 -1
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +8 -0
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +6 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +47 -0
- package/src/modules/bmm/workflows/techdoc/documentation-standards.md +24 -1
- package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +2 -2
- package/src/modules/bmm/workflows/workflow-status/init/instructions.md +50 -0
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +18 -11
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +18 -11
- package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +42 -65
- package/test/test-installation-components.js +214 -0
- package/tools/cli/bundlers/web-bundler.js +127 -8
- package/tools/cli/installers/lib/core/config-collector.js +39 -11
- package/tools/cli/installers/lib/core/ide-config-manager.js +3 -1
- package/tools/cli/installers/lib/core/installer.js +20 -9
- package/tools/cli/installers/lib/core/manifest-generator.js +3 -1
- package/tools/cli/installers/lib/core/manifest.js +6 -2
- package/tools/cli/installers/lib/ide/auggie.js +9 -20
- package/tools/cli/installers/lib/ide/claude-code.js +33 -3
- package/tools/cli/installers/lib/ide/cursor.js +17 -0
- package/tools/cli/installers/lib/modules/manager.js +134 -0
- package/tools/cli/lib/config.js +3 -1
- package/tools/cli/lib/ui.js +5 -5
- package/tools/cli/lib/yaml-format.js +2 -1
- package/tools/cli/lib/yaml-xml-builder.js +9 -1
- package/tools/schema/agent.js +3 -0
- package/v6-open-items.md +3 -9
- package/web-bundles/bmm/agents/analyst.xml +5028 -0
- package/web-bundles/bmm/agents/architect.xml +2047 -0
- package/web-bundles/bmm/agents/dev.xml +68 -0
- package/web-bundles/bmm/agents/pm.xml +3808 -0
- package/web-bundles/bmm/agents/sm.xml +77 -0
- package/web-bundles/bmm/agents/tea.xml +66 -0
- package/web-bundles/bmm/agents/tech-writer.xml +84 -0
- package/web-bundles/bmm/agents/ux-designer.xml +2018 -0
- package/web-bundles/bmm/teams/team-fullstack.xml +12039 -0
- package/.claude/commands/bmad/bmb/workflows/README.md +0 -67
- package/.claude/commands/bmad/bmm/agents/analyst.md +0 -67
- package/.claude/commands/bmad/bmm/agents/architect.md +0 -72
- package/.claude/commands/bmad/bmm/agents/dev.md +0 -69
- package/.claude/commands/bmad/bmm/agents/paige.md +0 -82
- package/.claude/commands/bmad/bmm/agents/pm.md +0 -76
- package/.claude/commands/bmad/bmm/agents/sm.md +0 -85
- package/.claude/commands/bmad/bmm/agents/tea.md +0 -72
- package/.claude/commands/bmad/bmm/agents/tech-writer.md +0 -82
- package/.claude/commands/bmad/bmm/agents/ux-designer.md +0 -71
- package/.claude/commands/bmad/bmm/workflows/README.md +0 -132
- package/.claude/commands/bmad/bmm/workflows/architecture.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/code-review.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/correct-course.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/create-story.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/dev-story.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/document-project.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/narrative.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/prd.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/product-brief.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/research.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/retrospective.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/solutioning-gate-check.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/story-context.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/story-done.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/story-ready.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/tech-spec-sm.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/tech-spec.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/workflow-init.md +0 -15
- package/.claude/commands/bmad/bmm/workflows/workflow-status.md +0 -15
- package/.claude/commands/bmad/cis/agents/README.md +0 -104
- package/.claude/commands/bmad/cis/agents/brainstorming-coach.md +0 -62
- package/.claude/commands/bmad/cis/agents/creative-problem-solver.md +0 -62
- package/.claude/commands/bmad/cis/agents/design-thinking-coach.md +0 -62
- package/.claude/commands/bmad/cis/agents/innovation-strategist.md +0 -62
- package/.claude/commands/bmad/cis/agents/storyteller.md +0 -59
- package/.claude/commands/bmad/cis/workflows/README.md +0 -37
- package/.claude/commands/bmad/cis/workflows/design-thinking.md +0 -15
- package/.claude/commands/bmad/cis/workflows/innovation-strategy.md +0 -15
- package/.claude/commands/bmad/cis/workflows/problem-solving.md +0 -15
- package/.claude/commands/bmad/cis/workflows/storytelling.md +0 -15
- package/.claude/commands/bmad/core/workflows/README.md +0 -37
- package/bmad/_cfg/agents/bmm-analyst.customize.yaml +0 -42
- package/bmad/_cfg/agents/bmm-architect.customize.yaml +0 -42
- package/bmad/_cfg/agents/bmm-dev.customize.yaml +0 -42
- package/bmad/_cfg/agents/bmm-paige.customize.yaml +0 -42
- package/bmad/_cfg/agents/bmm-pm.customize.yaml +0 -42
- package/bmad/_cfg/agents/bmm-sm.customize.yaml +0 -42
- package/bmad/_cfg/agents/bmm-tea.customize.yaml +0 -42
- package/bmad/_cfg/agents/bmm-tech-writer.customize.yaml +0 -42
- package/bmad/_cfg/agents/bmm-ux-designer.customize.yaml +0 -42
- package/bmad/_cfg/agents/cis-brainstorming-coach.customize.yaml +0 -42
- package/bmad/_cfg/agents/cis-creative-problem-solver.customize.yaml +0 -42
- package/bmad/_cfg/agents/cis-design-thinking-coach.customize.yaml +0 -42
- package/bmad/_cfg/agents/cis-innovation-strategist.customize.yaml +0 -42
- package/bmad/_cfg/agents/cis-storyteller.customize.yaml +0 -42
- package/bmad/bmb/agents/bmad-builder.md.bak +0 -70
- package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +0 -23
- package/bmad/bmb/workflows/create-module/workflow.yaml.bak +0 -42
- package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml.bak +0 -39
- package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +0 -40
- package/bmad/bmb/workflows/edit-agent/workflow.yaml.bak +0 -33
- package/bmad/bmb/workflows/edit-module/workflow.yaml.bak +0 -34
- package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +0 -27
- package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +0 -29
- package/bmad/bmb/workflows/redoc/workflow.yaml.bak +0 -32
- package/bmad/bmm/README.md +0 -128
- package/bmad/bmm/README.md.bak +0 -169
- package/bmad/bmm/agents/analyst.md +0 -67
- package/bmad/bmm/agents/analyst.md.bak +0 -67
- package/bmad/bmm/agents/architect.md +0 -72
- package/bmad/bmm/agents/architect.md.bak +0 -73
- package/bmad/bmm/agents/dev.md +0 -69
- package/bmad/bmm/agents/dev.md.bak +0 -69
- package/bmad/bmm/agents/paige.md.bak +0 -82
- package/bmad/bmm/agents/pm.md +0 -76
- package/bmad/bmm/agents/pm.md.bak +0 -76
- package/bmad/bmm/agents/sm.md +0 -85
- package/bmad/bmm/agents/sm.md.bak +0 -85
- package/bmad/bmm/agents/tea.md +0 -72
- package/bmad/bmm/agents/tea.md.bak +0 -72
- package/bmad/bmm/agents/tech-writer.md +0 -82
- package/bmad/bmm/agents/ux-designer.md +0 -71
- package/bmad/bmm/agents/ux-designer.md.bak +0 -71
- package/bmad/bmm/config.yaml +0 -17
- package/bmad/bmm/docs/README.md +0 -235
- package/bmad/bmm/docs/agents-guide.md +0 -1057
- package/bmad/bmm/docs/brownfield-guide.md +0 -759
- package/bmad/bmm/docs/enterprise-agentic-development.md +0 -680
- package/bmad/bmm/docs/faq.md +0 -589
- package/bmad/bmm/docs/glossary.md +0 -321
- package/bmad/bmm/docs/party-mode.md +0 -224
- package/bmad/bmm/docs/quick-spec-flow.md +0 -652
- package/bmad/bmm/docs/quick-start.md +0 -366
- package/bmad/bmm/docs/scale-adaptive-system.md +0 -599
- package/bmad/bmm/docs/troubleshooting.md +0 -680
- package/bmad/bmm/docs/workflow-architecture-reference.md +0 -371
- package/bmad/bmm/docs/workflow-document-project-reference.md +0 -487
- package/bmad/bmm/docs/workflows-analysis.md +0 -670
- package/bmad/bmm/docs/workflows-implementation.md +0 -1758
- package/bmad/bmm/docs/workflows-planning.md +0 -1086
- package/bmad/bmm/docs/workflows-solutioning.md +0 -726
- package/bmad/bmm/tasks/daily-standup.xml +0 -85
- package/bmad/bmm/teams/team-fullstack.yaml +0 -11
- package/bmad/bmm/testarch/knowledge/ci-burn-in.md +0 -675
- package/bmad/bmm/testarch/knowledge/component-tdd.md +0 -486
- package/bmad/bmm/testarch/knowledge/contract-testing.md +0 -957
- package/bmad/bmm/testarch/knowledge/data-factories.md +0 -500
- package/bmad/bmm/testarch/knowledge/email-auth.md +0 -721
- package/bmad/bmm/testarch/knowledge/error-handling.md +0 -725
- package/bmad/bmm/testarch/knowledge/feature-flags.md +0 -750
- package/bmad/bmm/testarch/knowledge/fixture-architecture.md +0 -401
- package/bmad/bmm/testarch/knowledge/network-first.md +0 -486
- package/bmad/bmm/testarch/knowledge/nfr-criteria.md +0 -670
- package/bmad/bmm/testarch/knowledge/playwright-config.md +0 -730
- package/bmad/bmm/testarch/knowledge/probability-impact.md +0 -601
- package/bmad/bmm/testarch/knowledge/risk-governance.md +0 -615
- package/bmad/bmm/testarch/knowledge/selective-testing.md +0 -732
- package/bmad/bmm/testarch/knowledge/selector-resilience.md +0 -527
- package/bmad/bmm/testarch/knowledge/test-healing-patterns.md +0 -644
- package/bmad/bmm/testarch/knowledge/test-levels-framework.md +0 -473
- package/bmad/bmm/testarch/knowledge/test-priorities-matrix.md +0 -373
- package/bmad/bmm/testarch/knowledge/test-quality.md +0 -664
- package/bmad/bmm/testarch/knowledge/timing-debugging.md +0 -372
- package/bmad/bmm/testarch/knowledge/visual-debugging.md +0 -524
- package/bmad/bmm/testarch/tea-index.csv +0 -22
- package/bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -110
- package/bmad/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
- package/bmad/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -26
- package/bmad/bmm/workflows/1-analysis/domain-research/instructions.md +0 -423
- package/bmad/bmm/workflows/1-analysis/domain-research/template.md +0 -180
- package/bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -36
- package/bmad/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
- package/bmad/bmm/workflows/1-analysis/product-brief/instructions.md +0 -524
- package/bmad/bmm/workflows/1-analysis/product-brief/template.md +0 -181
- package/bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -45
- package/bmad/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
- package/bmad/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
- package/bmad/bmm/workflows/1-analysis/research/checklist.md +0 -299
- package/bmad/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
- package/bmad/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -439
- package/bmad/bmm/workflows/1-analysis/research/instructions-market.md +0 -679
- package/bmad/bmm/workflows/1-analysis/research/instructions-router.md +0 -133
- package/bmad/bmm/workflows/1-analysis/research/instructions-technical.md +0 -538
- package/bmad/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
- package/bmad/bmm/workflows/1-analysis/research/template-market.md +0 -347
- package/bmad/bmm/workflows/1-analysis/research/template-technical.md +0 -245
- package/bmad/bmm/workflows/1-analysis/research/workflow.yaml +0 -44
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1319
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +0 -145
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -64
- package/bmad/bmm/workflows/2-plan-workflows/narrative/workflow.yaml +0 -29
- package/bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -349
- package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +0 -63
- package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +0 -395
- package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +0 -33
- package/bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +0 -13
- package/bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -423
- package/bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +0 -237
- package/bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +0 -11
- package/bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -46
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -214
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -58
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +0 -200
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +0 -451
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -1133
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -87
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -60
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml.bak +0 -60
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +0 -175
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +0 -322
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +0 -146
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -189
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +0 -64
- package/bmad/bmm/workflows/document-project/checklist.md +0 -245
- package/bmad/bmm/workflows/document-project/documentation-requirements.csv +0 -12
- package/bmad/bmm/workflows/document-project/instructions.md +0 -222
- package/bmad/bmm/workflows/document-project/templates/deep-dive-template.md +0 -345
- package/bmad/bmm/workflows/document-project/templates/index-template.md +0 -169
- package/bmad/bmm/workflows/document-project/templates/project-overview-template.md +0 -103
- package/bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +0 -160
- package/bmad/bmm/workflows/document-project/templates/source-tree-template.md +0 -135
- package/bmad/bmm/workflows/document-project/workflow.yaml +0 -34
- package/bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +0 -298
- package/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +0 -31
- package/bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +0 -1106
- package/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +0 -31
- package/bmad/bmm/workflows/techdoc/documentation-standards.md +0 -239
- package/bmad/bmm/workflows/techdoc/documentation-standards.md.bak +0 -238
- package/bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +0 -363
- package/bmad/bmm/workflows/testarch/atdd/checklist.md +0 -373
- package/bmad/bmm/workflows/testarch/atdd/instructions.md +0 -785
- package/bmad/bmm/workflows/testarch/atdd/workflow.yaml +0 -52
- package/bmad/bmm/workflows/testarch/automate/checklist.md +0 -580
- package/bmad/bmm/workflows/testarch/automate/instructions.md +0 -1303
- package/bmad/bmm/workflows/testarch/automate/workflow.yaml +0 -61
- package/bmad/bmm/workflows/testarch/ci/checklist.md +0 -246
- package/bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +0 -165
- package/bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +0 -128
- package/bmad/bmm/workflows/testarch/ci/instructions.md +0 -517
- package/bmad/bmm/workflows/testarch/ci/workflow.yaml +0 -53
- package/bmad/bmm/workflows/testarch/framework/checklist.md +0 -321
- package/bmad/bmm/workflows/testarch/framework/instructions.md +0 -455
- package/bmad/bmm/workflows/testarch/framework/workflow.yaml +0 -53
- package/bmad/bmm/workflows/testarch/nfr-assess/checklist.md +0 -405
- package/bmad/bmm/workflows/testarch/nfr-assess/instructions.md +0 -722
- package/bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +0 -443
- package/bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +0 -56
- package/bmad/bmm/workflows/testarch/test-design/checklist.md +0 -234
- package/bmad/bmm/workflows/testarch/test-design/instructions.md +0 -621
- package/bmad/bmm/workflows/testarch/test-design/test-design-template.md +0 -285
- package/bmad/bmm/workflows/testarch/test-design/workflow.yaml +0 -52
- package/bmad/bmm/workflows/testarch/test-review/checklist.md +0 -470
- package/bmad/bmm/workflows/testarch/test-review/instructions.md +0 -608
- package/bmad/bmm/workflows/testarch/test-review/test-review-template.md +0 -388
- package/bmad/bmm/workflows/testarch/test-review/workflow.yaml +0 -53
- package/bmad/bmm/workflows/testarch/trace/checklist.md +0 -654
- package/bmad/bmm/workflows/testarch/trace/instructions.md +0 -1045
- package/bmad/bmm/workflows/testarch/trace/trace-template.md +0 -673
- package/bmad/bmm/workflows/testarch/trace/workflow.yaml +0 -66
- package/bmad/bmm/workflows/workflow-status/init/instructions.md +0 -771
- package/bmad/bmm/workflows/workflow-status/init/workflow.yaml +0 -27
- package/bmad/bmm/workflows/workflow-status/init/workflow.yaml.bak +0 -27
- package/bmad/bmm/workflows/workflow-status/instructions.md +0 -386
- package/bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +0 -120
- package/bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +0 -108
- package/bmad/bmm/workflows/workflow-status/paths/game-design.yaml +0 -75
- package/bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +0 -97
- package/bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +0 -88
- package/bmad/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
- package/bmad/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
- package/bmad/bmm/workflows/workflow-status/project-levels.yaml +0 -59
- package/bmad/bmm/workflows/workflow-status/sample-level-3-workflow.yaml +0 -49
- package/bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +0 -31
- package/bmad/bmm/workflows/workflow-status/workflow.yaml +0 -28
- package/bmad/cis/README.md +0 -153
- package/bmad/cis/agents/README.md +0 -104
- package/bmad/cis/agents/brainstorming-coach.md +0 -62
- package/bmad/cis/agents/brainstorming-coach.md.bak +0 -62
- package/bmad/cis/agents/creative-problem-solver.md +0 -62
- package/bmad/cis/agents/creative-problem-solver.md.bak +0 -62
- package/bmad/cis/agents/design-thinking-coach.md +0 -62
- package/bmad/cis/agents/design-thinking-coach.md.bak +0 -62
- package/bmad/cis/agents/innovation-strategist.md +0 -62
- package/bmad/cis/agents/innovation-strategist.md.bak +0 -62
- package/bmad/cis/agents/storyteller.md +0 -59
- package/bmad/cis/agents/storyteller.md.bak +0 -59
- package/bmad/cis/config.yaml +0 -10
- package/bmad/cis/teams/creative-squad.yaml +0 -6
- package/bmad/cis/workflows/README.md +0 -139
- package/bmad/cis/workflows/design-thinking/README.md +0 -56
- package/bmad/cis/workflows/design-thinking/design-methods.csv +0 -31
- package/bmad/cis/workflows/design-thinking/instructions.md +0 -200
- package/bmad/cis/workflows/design-thinking/template.md +0 -111
- package/bmad/cis/workflows/design-thinking/workflow.yaml +0 -32
- package/bmad/cis/workflows/innovation-strategy/README.md +0 -56
- package/bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +0 -31
- package/bmad/cis/workflows/innovation-strategy/instructions.md +0 -274
- package/bmad/cis/workflows/innovation-strategy/template.md +0 -189
- package/bmad/cis/workflows/innovation-strategy/workflow.yaml +0 -32
- package/bmad/cis/workflows/problem-solving/README.md +0 -56
- package/bmad/cis/workflows/problem-solving/instructions.md +0 -250
- package/bmad/cis/workflows/problem-solving/solving-methods.csv +0 -31
- package/bmad/cis/workflows/problem-solving/template.md +0 -165
- package/bmad/cis/workflows/problem-solving/workflow.yaml +0 -32
- package/bmad/cis/workflows/storytelling/README.md +0 -58
- package/bmad/cis/workflows/storytelling/instructions.md +0 -291
- package/bmad/cis/workflows/storytelling/story-types.csv +0 -26
- package/bmad/cis/workflows/storytelling/template.md +0 -113
- package/bmad/cis/workflows/storytelling/workflow.yaml +0 -32
- package/bmad/core/agents/bmad-master.md.bak +0 -71
- package/src/modules/bmm/docs/troubleshooting.md +0 -680
- package/src/modules/bmm/teams/team-gamedev.yaml +0 -14
- package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +0 -81
- package/src/modules/bmm/workflows/2-plan-workflows/narrative/checklist.md +0 -139
- package/src/modules/bmm/workflows/2-plan-workflows/narrative/instructions-narrative.md +0 -608
- package/src/modules/bmm/workflows/2-plan-workflows/narrative/narrative-template.md +0 -195
- /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-brain-methods.csv +0 -0
- /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-context.md +0 -0
- /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/instructions.md +0 -0
- /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/checklist.md +0 -0
- /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/instructions.md +0 -0
- /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/template.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/checklist.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/action-platformer.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/adventure.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/card-game.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/fighting.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/horror.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/idle-incremental.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/metroidvania.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/moba.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/party-game.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/puzzle.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/racing.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rhythm.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/roguelike.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rpg.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sandbox.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/shooter.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/simulation.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sports.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/strategy.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/survival.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/text-based.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/tower-defense.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/turn-based-tactics.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/visual-novel.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types.csv +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/gdd-template.md +0 -0
- /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/instructions-gdd.md +0 -0
- /package/{bmad/bmm/workflows/2-plan-workflows → src/modules/bmgd/workflows/2-design}/narrative/checklist.md +0 -0
- /package/{bmad/bmm/workflows/2-plan-workflows → src/modules/bmgd/workflows/2-design}/narrative/instructions-narrative.md +0 -0
- /package/{bmad/bmm/workflows/2-plan-workflows → src/modules/bmgd/workflows/2-design}/narrative/narrative-template.md +0 -0
- /package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/architecture-patterns.yaml +0 -0
- /package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/architecture-template.md +0 -0
- /package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/checklist.md +0 -0
- /package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/decision-catalog.yaml +0 -0
- /package/{bmad/bmm/workflows/3-solutioning/architecture → src/modules/bmgd/workflows/3-technical/game-architecture}/pattern-categories.csv +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/code-review/backlog_template.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/code-review/checklist.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/code-review/instructions.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/correct-course/checklist.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/correct-course/instructions.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/create-story/checklist.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/create-story/instructions.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/create-story/template.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/dev-story/AUDIT-REPORT.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/dev-story/checklist.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/dev-story/instructions.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/epic-tech-context/checklist.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/epic-tech-context/instructions.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/epic-tech-context/template.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/retrospective/instructions.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/sprint-planning/checklist.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/sprint-planning/instructions.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/sprint-planning/sprint-status-template.yaml +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-context/checklist.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-context/context-template.xml +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-context/instructions.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-done/instructions.md +0 -0
- /package/{bmad/bmm/workflows/4-implementation → src/modules/bmgd/workflows/4-production}/story-ready/instructions.md +0 -0
|
@@ -81,6 +81,20 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
81
81
|
return config;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
/**
|
|
85
|
+
* Cleanup old BMAD installation before reinstalling
|
|
86
|
+
* @param {string} projectDir - Project directory
|
|
87
|
+
*/
|
|
88
|
+
async cleanup(projectDir) {
|
|
89
|
+
const fs = require('fs-extra');
|
|
90
|
+
const bmadCommandsDir = path.join(projectDir, this.configDir, this.commandsDir, 'bmad');
|
|
91
|
+
|
|
92
|
+
if (await fs.pathExists(bmadCommandsDir)) {
|
|
93
|
+
await fs.remove(bmadCommandsDir);
|
|
94
|
+
console.log(chalk.dim(` Removed old BMAD commands from ${this.name}`));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
84
98
|
/**
|
|
85
99
|
* Setup Claude Code IDE configuration
|
|
86
100
|
* @param {string} projectDir - Project directory
|
|
@@ -93,6 +107,9 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
93
107
|
|
|
94
108
|
console.log(chalk.cyan(`Setting up ${this.name}...`));
|
|
95
109
|
|
|
110
|
+
// Clean up old BMAD installation first
|
|
111
|
+
await this.cleanup(projectDir);
|
|
112
|
+
|
|
96
113
|
// Create .claude/commands directory structure
|
|
97
114
|
const claudeDir = path.join(projectDir, this.configDir);
|
|
98
115
|
const commandsDir = path.join(claudeDir, this.commandsDir);
|
|
@@ -145,7 +162,20 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
145
162
|
|
|
146
163
|
// Generate workflow commands from manifest (if it exists)
|
|
147
164
|
const workflowGen = new WorkflowCommandGenerator();
|
|
148
|
-
const
|
|
165
|
+
const { artifacts: workflowArtifacts } = await workflowGen.collectWorkflowArtifacts(bmadDir);
|
|
166
|
+
|
|
167
|
+
// Write only workflow-command artifacts, skip workflow-launcher READMEs
|
|
168
|
+
let workflowCommandCount = 0;
|
|
169
|
+
for (const artifact of workflowArtifacts) {
|
|
170
|
+
if (artifact.type === 'workflow-command') {
|
|
171
|
+
const moduleWorkflowsDir = path.join(bmadCommandsDir, artifact.module, 'workflows');
|
|
172
|
+
await this.ensureDir(moduleWorkflowsDir);
|
|
173
|
+
const commandPath = path.join(moduleWorkflowsDir, path.basename(artifact.relativePath));
|
|
174
|
+
await this.writeFile(commandPath, artifact.content);
|
|
175
|
+
workflowCommandCount++;
|
|
176
|
+
}
|
|
177
|
+
// Skip workflow-launcher READMEs as they would be treated as slash commands
|
|
178
|
+
}
|
|
149
179
|
|
|
150
180
|
// Generate task and tool commands from manifests (if they exist)
|
|
151
181
|
const taskToolGen = new TaskToolCommandGenerator();
|
|
@@ -153,8 +183,8 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
153
183
|
|
|
154
184
|
console.log(chalk.green(`✓ ${this.name} configured:`));
|
|
155
185
|
console.log(chalk.dim(` - ${agentCount} agents installed`));
|
|
156
|
-
if (
|
|
157
|
-
console.log(chalk.dim(` - ${
|
|
186
|
+
if (workflowCommandCount > 0) {
|
|
187
|
+
console.log(chalk.dim(` - ${workflowCommandCount} workflow commands generated`));
|
|
158
188
|
}
|
|
159
189
|
if (taskToolResult.generated > 0) {
|
|
160
190
|
console.log(
|
|
@@ -12,6 +12,20 @@ class CursorSetup extends BaseIdeSetup {
|
|
|
12
12
|
this.rulesDir = 'rules';
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Cleanup old BMAD installation before reinstalling
|
|
17
|
+
* @param {string} projectDir - Project directory
|
|
18
|
+
*/
|
|
19
|
+
async cleanup(projectDir) {
|
|
20
|
+
const fs = require('fs-extra');
|
|
21
|
+
const bmadRulesDir = path.join(projectDir, this.configDir, this.rulesDir, 'bmad');
|
|
22
|
+
|
|
23
|
+
if (await fs.pathExists(bmadRulesDir)) {
|
|
24
|
+
await fs.remove(bmadRulesDir);
|
|
25
|
+
console.log(chalk.dim(` Removed old BMAD rules from ${this.name}`));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
15
29
|
/**
|
|
16
30
|
* Setup Cursor IDE configuration
|
|
17
31
|
* @param {string} projectDir - Project directory
|
|
@@ -21,6 +35,9 @@ class CursorSetup extends BaseIdeSetup {
|
|
|
21
35
|
async setup(projectDir, bmadDir, options = {}) {
|
|
22
36
|
console.log(chalk.cyan(`Setting up ${this.name}...`));
|
|
23
37
|
|
|
38
|
+
// Clean up old BMAD installation first
|
|
39
|
+
await this.cleanup(projectDir);
|
|
40
|
+
|
|
24
41
|
// Create .cursor/rules directory structure
|
|
25
42
|
const cursorDir = path.join(projectDir, this.configDir);
|
|
26
43
|
const rulesDir = path.join(cursorDir, this.rulesDir);
|
|
@@ -112,6 +112,10 @@ class ModuleManager {
|
|
|
112
112
|
await fs.remove(targetPath);
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
// Vendor cross-module workflows BEFORE copying
|
|
116
|
+
// This reads source agent.yaml files and copies referenced workflows
|
|
117
|
+
await this.vendorCrossModuleWorkflows(sourcePath, targetPath, moduleName);
|
|
118
|
+
|
|
115
119
|
// Copy module files with filtering
|
|
116
120
|
await this.copyModuleWithFiltering(sourcePath, targetPath, fileTrackingCallback, options.moduleConfig);
|
|
117
121
|
|
|
@@ -267,6 +271,12 @@ class ModuleManager {
|
|
|
267
271
|
continue;
|
|
268
272
|
}
|
|
269
273
|
|
|
274
|
+
// Skip user documentation if install_user_docs is false
|
|
275
|
+
if (moduleConfig.install_user_docs === false && (file.startsWith('docs/') || file.startsWith('docs\\'))) {
|
|
276
|
+
console.log(chalk.dim(` Skipping user documentation: ${file}`));
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
|
|
270
280
|
// Skip game development content if include_game_planning is false
|
|
271
281
|
if (moduleConfig.include_game_planning === false) {
|
|
272
282
|
const shouldSkipGameDev = gameDevFiles.some((gamePath) => {
|
|
@@ -429,6 +439,130 @@ class ModuleManager {
|
|
|
429
439
|
}
|
|
430
440
|
}
|
|
431
441
|
|
|
442
|
+
/**
|
|
443
|
+
* Vendor cross-module workflows referenced in agent files
|
|
444
|
+
* Scans SOURCE agent.yaml files for workflow-install and copies workflows to destination
|
|
445
|
+
* @param {string} sourcePath - Source module path
|
|
446
|
+
* @param {string} targetPath - Target module path (destination)
|
|
447
|
+
* @param {string} moduleName - Module name being installed
|
|
448
|
+
*/
|
|
449
|
+
async vendorCrossModuleWorkflows(sourcePath, targetPath, moduleName) {
|
|
450
|
+
const sourceAgentsPath = path.join(sourcePath, 'agents');
|
|
451
|
+
|
|
452
|
+
// Check if source agents directory exists
|
|
453
|
+
if (!(await fs.pathExists(sourceAgentsPath))) {
|
|
454
|
+
return; // No agents to process
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
// Get all agent YAML files from source
|
|
458
|
+
const agentFiles = await fs.readdir(sourceAgentsPath);
|
|
459
|
+
const yamlFiles = agentFiles.filter((f) => f.endsWith('.agent.yaml') || f.endsWith('.yaml'));
|
|
460
|
+
|
|
461
|
+
if (yamlFiles.length === 0) {
|
|
462
|
+
return; // No YAML agent files
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
let workflowsVendored = false;
|
|
466
|
+
|
|
467
|
+
for (const agentFile of yamlFiles) {
|
|
468
|
+
const agentPath = path.join(sourceAgentsPath, agentFile);
|
|
469
|
+
const agentYaml = yaml.load(await fs.readFile(agentPath, 'utf8'));
|
|
470
|
+
|
|
471
|
+
// Check if agent has menu items with workflow-install
|
|
472
|
+
const menuItems = agentYaml?.agent?.menu || [];
|
|
473
|
+
const workflowInstallItems = menuItems.filter((item) => item['workflow-install']);
|
|
474
|
+
|
|
475
|
+
if (workflowInstallItems.length === 0) {
|
|
476
|
+
continue; // No workflow-install in this agent
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
if (!workflowsVendored) {
|
|
480
|
+
console.log(chalk.cyan(`\n Vendoring cross-module workflows for ${moduleName}...`));
|
|
481
|
+
workflowsVendored = true;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
console.log(chalk.dim(` Processing: ${agentFile}`));
|
|
485
|
+
|
|
486
|
+
for (const item of workflowInstallItems) {
|
|
487
|
+
const sourceWorkflowPath = item.workflow; // Where to copy FROM
|
|
488
|
+
const installWorkflowPath = item['workflow-install']; // Where to copy TO
|
|
489
|
+
|
|
490
|
+
// Parse SOURCE workflow path
|
|
491
|
+
// Example: {project-root}/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml
|
|
492
|
+
const sourceMatch = sourceWorkflowPath.match(/\{project-root\}\/bmad\/([^/]+)\/workflows\/(.+)/);
|
|
493
|
+
if (!sourceMatch) {
|
|
494
|
+
console.warn(chalk.yellow(` Could not parse workflow path: ${sourceWorkflowPath}`));
|
|
495
|
+
continue;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
const [, sourceModule, sourceWorkflowSubPath] = sourceMatch;
|
|
499
|
+
|
|
500
|
+
// Parse INSTALL workflow path
|
|
501
|
+
// Example: {project-root}/bmad/bmgd/workflows/4-production/create-story/workflow.yaml
|
|
502
|
+
const installMatch = installWorkflowPath.match(/\{project-root\}\/bmad\/([^/]+)\/workflows\/(.+)/);
|
|
503
|
+
if (!installMatch) {
|
|
504
|
+
console.warn(chalk.yellow(` Could not parse workflow-install path: ${installWorkflowPath}`));
|
|
505
|
+
continue;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
const installWorkflowSubPath = installMatch[2];
|
|
509
|
+
|
|
510
|
+
// Determine actual filesystem paths
|
|
511
|
+
const sourceModulePath = path.join(this.modulesSourcePath, sourceModule);
|
|
512
|
+
const actualSourceWorkflowPath = path.join(sourceModulePath, 'workflows', sourceWorkflowSubPath.replace(/\/workflow\.yaml$/, ''));
|
|
513
|
+
|
|
514
|
+
const actualDestWorkflowPath = path.join(targetPath, 'workflows', installWorkflowSubPath.replace(/\/workflow\.yaml$/, ''));
|
|
515
|
+
|
|
516
|
+
// Check if source workflow exists
|
|
517
|
+
if (!(await fs.pathExists(actualSourceWorkflowPath))) {
|
|
518
|
+
console.warn(chalk.yellow(` Source workflow not found: ${actualSourceWorkflowPath}`));
|
|
519
|
+
continue;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
// Copy the entire workflow folder
|
|
523
|
+
console.log(
|
|
524
|
+
chalk.dim(
|
|
525
|
+
` Vendoring: ${sourceModule}/workflows/${sourceWorkflowSubPath.replace(/\/workflow\.yaml$/, '')} → ${moduleName}/workflows/${installWorkflowSubPath.replace(/\/workflow\.yaml$/, '')}`,
|
|
526
|
+
),
|
|
527
|
+
);
|
|
528
|
+
|
|
529
|
+
await fs.ensureDir(path.dirname(actualDestWorkflowPath));
|
|
530
|
+
await fs.copy(actualSourceWorkflowPath, actualDestWorkflowPath, { overwrite: true });
|
|
531
|
+
|
|
532
|
+
// Update the workflow.yaml config_source reference
|
|
533
|
+
const workflowYamlPath = path.join(actualDestWorkflowPath, 'workflow.yaml');
|
|
534
|
+
if (await fs.pathExists(workflowYamlPath)) {
|
|
535
|
+
await this.updateWorkflowConfigSource(workflowYamlPath, moduleName);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
if (workflowsVendored) {
|
|
541
|
+
console.log(chalk.green(` ✓ Workflow vendoring complete\n`));
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* Update workflow.yaml config_source to point to new module
|
|
547
|
+
* @param {string} workflowYamlPath - Path to workflow.yaml file
|
|
548
|
+
* @param {string} newModuleName - New module name to reference
|
|
549
|
+
*/
|
|
550
|
+
async updateWorkflowConfigSource(workflowYamlPath, newModuleName) {
|
|
551
|
+
let yamlContent = await fs.readFile(workflowYamlPath, 'utf8');
|
|
552
|
+
|
|
553
|
+
// Replace config_source: "{project-root}/bmad/OLD_MODULE/config.yaml"
|
|
554
|
+
// with config_source: "{project-root}/bmad/NEW_MODULE/config.yaml"
|
|
555
|
+
const configSourcePattern = /config_source:\s*["']?\{project-root\}\/bmad\/[^/]+\/config\.yaml["']?/g;
|
|
556
|
+
const newConfigSource = `config_source: "{project-root}/bmad/${newModuleName}/config.yaml"`;
|
|
557
|
+
|
|
558
|
+
const updatedYaml = yamlContent.replaceAll(configSourcePattern, newConfigSource);
|
|
559
|
+
|
|
560
|
+
if (updatedYaml !== yamlContent) {
|
|
561
|
+
await fs.writeFile(workflowYamlPath, updatedYaml, 'utf8');
|
|
562
|
+
console.log(chalk.dim(` Updated config_source to: bmad/${newModuleName}/config.yaml`));
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
|
|
432
566
|
/**
|
|
433
567
|
* Run module-specific installer if it exists
|
|
434
568
|
* @param {string} moduleName - Name of the module
|
package/tools/cli/lib/config.js
CHANGED
|
@@ -33,7 +33,9 @@ class Config {
|
|
|
33
33
|
});
|
|
34
34
|
|
|
35
35
|
await fs.ensureDir(path.dirname(configPath));
|
|
36
|
-
|
|
36
|
+
// Ensure POSIX-compliant final newline
|
|
37
|
+
const content = yamlContent.endsWith('\n') ? yamlContent : yamlContent + '\n';
|
|
38
|
+
await fs.writeFile(configPath, content, 'utf8');
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
/**
|
package/tools/cli/lib/ui.js
CHANGED
|
@@ -82,15 +82,15 @@ class UI {
|
|
|
82
82
|
// If actionType === 'update' or 'reinstall', continue with normal flow below
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
// Collect IDE tool selection EARLY (before module configuration)
|
|
86
|
-
// This allows users to make all decisions upfront before file copying begins
|
|
87
|
-
const toolSelection = await this.promptToolSelection(confirmedDirectory, []);
|
|
88
|
-
|
|
89
85
|
const { installedModuleIds } = await this.getExistingInstallation(confirmedDirectory);
|
|
90
86
|
const coreConfig = await this.collectCoreConfig(confirmedDirectory);
|
|
91
87
|
const moduleChoices = await this.getModuleChoices(installedModuleIds);
|
|
92
88
|
const selectedModules = await this.selectModules(moduleChoices);
|
|
93
89
|
|
|
90
|
+
// Collect IDE tool selection AFTER configuration prompts (fixes Windows/PowerShell hang)
|
|
91
|
+
// This allows text-based prompts to complete before the checkbox prompt
|
|
92
|
+
const toolSelection = await this.promptToolSelection(confirmedDirectory, selectedModules);
|
|
93
|
+
|
|
94
94
|
console.clear();
|
|
95
95
|
CLIUtils.displayLogo();
|
|
96
96
|
CLIUtils.displayModuleComplete('core', false); // false = don't clear the screen again
|
|
@@ -100,7 +100,7 @@ class UI {
|
|
|
100
100
|
directory: confirmedDirectory,
|
|
101
101
|
installCore: true, // Always install core
|
|
102
102
|
modules: selectedModules,
|
|
103
|
-
// IDE selection collected
|
|
103
|
+
// IDE selection collected after config, will be configured later
|
|
104
104
|
ides: toolSelection.ides,
|
|
105
105
|
skipIde: toolSelection.skipIde,
|
|
106
106
|
coreConfig: coreConfig, // Pass collected core config to installer
|
|
@@ -64,7 +64,8 @@ async function formatYamlContent(content, filename) {
|
|
|
64
64
|
noRefs: true,
|
|
65
65
|
sortKeys: false, // Preserve key order
|
|
66
66
|
});
|
|
67
|
-
|
|
67
|
+
// Ensure POSIX-compliant final newline
|
|
68
|
+
return formatted.endsWith('\n') ? formatted : formatted + '\n';
|
|
68
69
|
} catch (error) {
|
|
69
70
|
console.error(chalk.red(`❌ YAML syntax error in ${filename}:`), error.message);
|
|
70
71
|
console.error(chalk.yellow(`💡 Try manually fixing the YAML structure first`));
|
|
@@ -311,7 +311,15 @@ class YamlXmlBuilder {
|
|
|
311
311
|
const attrs = [`cmd="${trigger}"`];
|
|
312
312
|
|
|
313
313
|
// Add handler attributes
|
|
314
|
-
|
|
314
|
+
// If workflow-install exists, use its value for workflow attribute (vendoring)
|
|
315
|
+
// workflow-install is build-time metadata - tells installer where to copy workflows
|
|
316
|
+
// The final XML should only have workflow pointing to the install location
|
|
317
|
+
if (item['workflow-install']) {
|
|
318
|
+
attrs.push(`workflow="${item['workflow-install']}"`);
|
|
319
|
+
} else if (item.workflow) {
|
|
320
|
+
attrs.push(`workflow="${item.workflow}"`);
|
|
321
|
+
}
|
|
322
|
+
|
|
315
323
|
if (item['validate-workflow']) attrs.push(`validate-workflow="${item['validate-workflow']}"`);
|
|
316
324
|
if (item.exec) attrs.push(`exec="${item.exec}"`);
|
|
317
325
|
if (item.tmpl) attrs.push(`tmpl="${item.tmpl}"`);
|
package/tools/schema/agent.js
CHANGED
|
@@ -170,12 +170,15 @@ function buildMenuItemSchema() {
|
|
|
170
170
|
trigger: createNonEmptyString('agent.menu[].trigger'),
|
|
171
171
|
description: createNonEmptyString('agent.menu[].description'),
|
|
172
172
|
workflow: createNonEmptyString('agent.menu[].workflow').optional(),
|
|
173
|
+
'workflow-install': createNonEmptyString('agent.menu[].workflow-install').optional(),
|
|
173
174
|
'validate-workflow': createNonEmptyString('agent.menu[].validate-workflow').optional(),
|
|
174
175
|
exec: createNonEmptyString('agent.menu[].exec').optional(),
|
|
175
176
|
action: createNonEmptyString('agent.menu[].action').optional(),
|
|
176
177
|
tmpl: createNonEmptyString('agent.menu[].tmpl').optional(),
|
|
177
178
|
data: createNonEmptyString('agent.menu[].data').optional(),
|
|
178
179
|
'run-workflow': createNonEmptyString('agent.menu[].run-workflow').optional(),
|
|
180
|
+
checklist: createNonEmptyString('agent.menu[].checklist').optional(),
|
|
181
|
+
document: createNonEmptyString('agent.menu[].document').optional(),
|
|
179
182
|
})
|
|
180
183
|
.strict()
|
|
181
184
|
.superRefine((value, ctx) => {
|
package/v6-open-items.md
CHANGED
|
@@ -2,22 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Before calling this beta
|
|
4
4
|
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
- leaner phase 4
|
|
5
|
+
- finalize web bundler
|
|
6
|
+
- some subagents working again
|
|
7
|
+
- knowledge base for bmad
|
|
9
8
|
|
|
10
9
|
## Needed Beta → v0 release
|
|
11
10
|
|
|
12
11
|
Aside from stability and bug fixes found during the alpha period - the main focus will be on the following:
|
|
13
12
|
|
|
14
|
-
- NPX installer
|
|
15
|
-
- github pipelines, branch protection, vulnerability scanners
|
|
16
|
-
- subagent injections reenabled
|
|
17
13
|
- knowledge base for BMM
|
|
18
14
|
- Module repository and submission process defined
|
|
19
|
-
- Final polished documentation and user guide for each module
|
|
20
|
-
- Final polished documentation for overall project architecture
|
|
21
15
|
- MCP Injections based on installation selection
|
|
22
16
|
- sub agent for opencode and claude code optimization
|
|
23
17
|
- TDD Workflow Integration
|