bmad-method 6.0.0-alpha.6 → 6.0.0-alpha.8
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/.bmad/_cfg/agent-manifest.csv +11 -0
- package/{bmad → .bmad}/_cfg/files-manifest.csv +170 -157
- package/{bmad → .bmad}/_cfg/ides/claude-code.yaml +2 -2
- package/.bmad/_cfg/manifest.yaml +10 -0
- package/{bmad → .bmad}/_cfg/task-manifest.csv +1 -1
- package/{bmad → .bmad}/_cfg/workflow-manifest.csv +1 -1
- package/{bmad → .bmad}/bmb/agents/bmad-builder.md +12 -12
- package/.bmad/bmb/config.yaml +16 -0
- package/{bmad → .bmad}/bmb/workflows/audit-workflow/checklist.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/audit-workflow/instructions.md +5 -5
- package/{bmad → .bmad}/bmb/workflows/audit-workflow/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmb/workflows/convert-legacy/README.md +5 -5
- package/{bmad → .bmad}/bmb/workflows/convert-legacy/checklist.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/convert-legacy/instructions.md +17 -17
- package/{bmad → .bmad}/bmb/workflows/convert-legacy/workflow.yaml +6 -6
- package/{bmad → .bmad}/bmb/workflows/create-agent/README.md +5 -5
- package/{bmad → .bmad}/bmb/workflows/create-agent/agent-architecture.md +15 -15
- package/{bmad → .bmad}/bmb/workflows/create-agent/agent-command-patterns.md +28 -28
- package/{bmad → .bmad}/bmb/workflows/create-agent/agent-types.md +15 -15
- package/{bmad → .bmad}/bmb/workflows/create-agent/checklist.md +3 -3
- package/{bmad → .bmad}/bmb/workflows/create-agent/instructions.md +34 -18
- package/{bmad → .bmad}/bmb/workflows/create-agent/workflow.yaml +6 -6
- package/{bmad → .bmad}/bmb/workflows/create-module/README.md +1 -1
- package/{bmad → .bmad}/bmb/workflows/create-module/checklist.md +1 -1
- package/{bmad → .bmad}/bmb/workflows/create-module/installer-templates/install-config.yaml +1 -1
- package/{bmad → .bmad}/bmb/workflows/create-module/instructions.md +7 -7
- package/{bmad → .bmad}/bmb/workflows/create-module/module-structure.md +36 -2
- package/{bmad → .bmad}/bmb/workflows/create-module/workflow.yaml +9 -9
- package/{bmad → .bmad}/bmb/workflows/create-workflow/README.md +4 -4
- package/{bmad → .bmad}/bmb/workflows/create-workflow/checklist.md +1 -1
- package/{bmad → .bmad}/bmb/workflows/create-workflow/instructions.md +29 -29
- package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow-creation-guide.md +36 -36
- package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow-template/instructions.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow-template/workflow.yaml +1 -1
- package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow.yaml +5 -5
- package/{bmad → .bmad}/bmb/workflows/edit-agent/checklist.md +1 -1
- package/{bmad → .bmad}/bmb/workflows/edit-agent/instructions.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/edit-agent/workflow.yaml +8 -8
- package/{bmad → .bmad}/bmb/workflows/edit-module/README.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/edit-module/checklist.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/edit-module/instructions.md +4 -4
- package/{bmad → .bmad}/bmb/workflows/edit-module/workflow.yaml +10 -10
- package/{bmad → .bmad}/bmb/workflows/edit-workflow/instructions.md +4 -4
- package/{bmad → .bmad}/bmb/workflows/edit-workflow/workflow.yaml +5 -5
- package/{bmad → .bmad}/bmb/workflows/module-brief/README.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/module-brief/instructions.md +2 -2
- package/{bmad → .bmad}/bmb/workflows/module-brief/workflow.yaml +4 -4
- package/{bmad → .bmad}/bmb/workflows/redoc/README.md +5 -5
- package/{bmad → .bmad}/bmb/workflows/redoc/instructions.md +1 -1
- package/{bmad → .bmad}/bmb/workflows/redoc/workflow.yaml +1 -1
- package/{bmad → .bmad}/bmm/agents/analyst.md +20 -12
- package/{bmad → .bmad}/bmm/agents/architect.md +19 -11
- package/{bmad → .bmad}/bmm/agents/dev.md +10 -10
- package/{bmad → .bmad}/bmm/agents/pm.md +23 -15
- package/{bmad → .bmad}/bmm/agents/sm.md +26 -18
- package/{bmad → .bmad}/bmm/agents/tea.md +25 -17
- package/{bmad → .bmad}/bmm/agents/tech-writer.md +16 -8
- package/{bmad → .bmad}/bmm/agents/ux-designer.md +18 -10
- package/{bmad → .bmad}/bmm/config.yaml +7 -7
- package/.bmad/bmm/docs/README.md +235 -0
- package/.bmad/bmm/docs/agents-guide.md +1056 -0
- package/.bmad/bmm/docs/brownfield-guide.md +754 -0
- package/.bmad/bmm/docs/enterprise-agentic-development.md +680 -0
- package/.bmad/bmm/docs/faq.md +587 -0
- package/.bmad/bmm/docs/glossary.md +320 -0
- package/.bmad/bmm/docs/party-mode.md +224 -0
- package/.bmad/bmm/docs/quick-spec-flow.md +652 -0
- package/.bmad/bmm/docs/quick-start.md +366 -0
- package/.bmad/bmm/docs/scale-adaptive-system.md +599 -0
- package/.bmad/bmm/docs/test-architecture.md +394 -0
- package/.bmad/bmm/docs/workflow-architecture-reference.md +371 -0
- package/.bmad/bmm/docs/workflow-document-project-reference.md +487 -0
- package/.bmad/bmm/docs/workflows-analysis.md +370 -0
- package/.bmad/bmm/docs/workflows-implementation.md +284 -0
- package/.bmad/bmm/docs/workflows-planning.md +601 -0
- package/.bmad/bmm/docs/workflows-solutioning.md +501 -0
- package/{bmad → .bmad}/bmm/tasks/daily-standup.xml +2 -2
- package/.bmad/bmm/teams/default-party.csv +19 -0
- package/{bmad → .bmad}/bmm/teams/team-fullstack.yaml +1 -0
- package/{bmad → .bmad}/bmm/workflows/1-analysis/brainstorm-project/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/1-analysis/domain-research/instructions.md +1 -1
- package/.bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +40 -0
- package/{bmad → .bmad}/bmm/workflows/1-analysis/product-brief/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/1-analysis/product-brief/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/1-analysis/research/instructions-market.md +6 -6
- package/{bmad → .bmad}/bmm/workflows/1-analysis/research/instructions-router.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/1-analysis/research/instructions-technical.md +4 -4
- package/{bmad → .bmad}/bmm/workflows/1-analysis/research/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +3 -7
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +3 -3
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/instructions.md +6 -6
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +5 -5
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +6 -6
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/instructions.md +6 -6
- package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/workflow.yaml +3 -2
- package/{bmad → .bmad}/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +4 -4
- package/{bmad → .bmad}/bmm/workflows/4-implementation/code-review/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/code-review/workflow.yaml +4 -13
- package/{bmad → .bmad}/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/correct-course/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/correct-course/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/create-story/instructions.md +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/create-story/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/dev-story/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/dev-story/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/epic-tech-context/checklist.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/epic-tech-context/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/retrospective/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/retrospective/workflow.yaml +4 -4
- package/{bmad → .bmad}/bmm/workflows/4-implementation/sprint-planning/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-context/checklist.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-context/context-template.xml +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-context/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-context/workflow.yaml +4 -4
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-done/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-done/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-ready/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/4-implementation/story-ready/workflow.yaml +3 -3
- package/{bmad → .bmad}/bmm/workflows/document-project/instructions.md +5 -5
- package/{bmad → .bmad}/bmm/workflows/document-project/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
- package/{bmad → .bmad}/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
- package/{bmad → .bmad}/bmm/workflows/testarch/atdd/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/atdd/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/automate/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/automate/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/ci/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/ci/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/framework/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/framework/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/test-design/instructions.md +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/test-design/test-design-template.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/testarch/test-design/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/test-review/instructions.md +1 -1
- package/{bmad → .bmad}/bmm/workflows/testarch/test-review/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/testarch/trace/instructions.md +9 -9
- package/{bmad → .bmad}/bmm/workflows/testarch/trace/workflow.yaml +2 -2
- package/{bmad → .bmad}/bmm/workflows/workflow-status/init/instructions.md +74 -23
- package/{bmad → .bmad}/bmm/workflows/workflow-status/init/workflow.yaml +4 -4
- package/{bmad → .bmad}/bmm/workflows/workflow-status/instructions.md +5 -4
- package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +18 -11
- package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +18 -11
- package/.bmad/bmm/workflows/workflow-status/paths/game-design.yaml +52 -0
- package/{bmad → .bmad}/bmm/workflows/workflow-status/project-levels.yaml +1 -1
- package/{bmad → .bmad}/bmm/workflows/workflow-status/workflow.yaml +2 -2
- package/{bmad → .bmad}/core/agents/bmad-master.md +7 -7
- package/{bmad → .bmad}/core/agents/bmad-web-orchestrator.agent.xml +8 -17
- package/{bmad → .bmad}/core/config.yaml +4 -2
- package/{bmad → .bmad}/core/tasks/adv-elicit.xml +5 -3
- package/{bmad → .bmad}/core/tasks/index-docs.xml +1 -1
- package/{bmad → .bmad}/core/tasks/validate-workflow.xml +1 -1
- package/{bmad → .bmad}/core/tasks/workflow.xml +1 -1
- package/{bmad → .bmad}/core/tools/shard-doc.xml +1 -1
- package/{bmad → .bmad}/core/workflows/brainstorming/README.md +2 -2
- package/{bmad → .bmad}/core/workflows/brainstorming/instructions.md +3 -3
- package/{bmad → .bmad}/core/workflows/brainstorming/workflow.yaml +8 -8
- package/{bmad → .bmad}/core/workflows/party-mode/instructions.md +2 -7
- package/.bmad/core/workflows/party-mode/workflow.yaml +27 -0
- package/.claude/commands/bmad/bmb/agents/bmad-builder.md +12 -12
- package/.claude/commands/bmad/bmm/agents/analyst.md +20 -12
- package/.claude/commands/bmad/bmm/agents/architect.md +19 -11
- package/.claude/commands/bmad/bmm/agents/dev.md +10 -10
- package/.claude/commands/bmad/bmm/agents/pm.md +23 -15
- package/.claude/commands/bmad/bmm/agents/sm.md +26 -18
- package/.claude/commands/bmad/bmm/agents/tea.md +25 -17
- package/.claude/commands/bmad/bmm/agents/tech-writer.md +16 -8
- package/.claude/commands/bmad/bmm/agents/ux-designer.md +18 -10
- package/.claude/commands/bmad/bmm/workflows/domain-research.md +15 -0
- package/.claude/commands/bmad/core/agents/bmad-master.md +7 -7
- package/.claude/commands/bmad/core/tasks/adv-elicit.md +9 -0
- package/.claude/settings.local.json +6 -5
- package/.github/workflows/{lint.yaml → quality.yaml} +19 -2
- package/.husky/pre-commit +4 -0
- package/.vscode/settings.json +2 -1
- package/README.md +59 -1
- package/docs/installers-bundlers/installers-modules-platforms-reference.md +61 -0
- package/package.json +5 -3
- package/src/core/_module-installer/install-config.yaml +15 -9
- package/src/core/_module-installer/installer.js +0 -8
- package/src/core/agents/bmad-master.agent.yaml +5 -5
- package/src/core/agents/bmad-web-orchestrator.agent.xml +8 -17
- package/src/core/tasks/adv-elicit.xml +5 -3
- package/src/core/tasks/index-docs.xml +1 -1
- package/src/core/tasks/validate-workflow.xml +1 -1
- package/src/core/tasks/workflow.xml +1 -1
- package/src/core/tools/shard-doc.xml +1 -1
- package/src/core/workflows/brainstorming/README.md +2 -2
- package/src/core/workflows/brainstorming/instructions.md +3 -3
- package/src/core/workflows/brainstorming/workflow.yaml +8 -8
- package/src/core/workflows/party-mode/instructions.md +2 -7
- package/src/core/workflows/party-mode/workflow.yaml +10 -6
- package/src/modules/bmb/_module-installer/install-config.yaml +9 -4
- package/src/modules/bmb/agents/bmad-builder.agent.yaml +11 -10
- package/src/modules/bmb/workflows/audit-workflow/checklist.md +2 -2
- package/src/modules/bmb/workflows/audit-workflow/instructions.md +5 -5
- package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +2 -2
- package/src/modules/bmb/workflows/convert-legacy/README.md +5 -5
- package/src/modules/bmb/workflows/convert-legacy/checklist.md +2 -2
- package/src/modules/bmb/workflows/convert-legacy/instructions.md +17 -17
- package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +6 -6
- package/src/modules/bmb/workflows/create-agent/README.md +5 -5
- package/src/modules/bmb/workflows/create-agent/agent-architecture.md +15 -15
- package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +28 -28
- package/src/modules/bmb/workflows/create-agent/agent-types.md +15 -15
- package/src/modules/bmb/workflows/create-agent/checklist.md +3 -3
- package/src/modules/bmb/workflows/create-agent/instructions.md +34 -18
- package/src/modules/bmb/workflows/create-agent/workflow.yaml +12 -12
- package/src/modules/bmb/workflows/create-module/README.md +1 -1
- package/src/modules/bmb/workflows/create-module/checklist.md +1 -1
- package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +1 -1
- package/src/modules/bmb/workflows/create-module/instructions.md +7 -7
- package/src/modules/bmb/workflows/create-module/module-structure.md +36 -2
- package/src/modules/bmb/workflows/create-module/workflow.yaml +9 -9
- package/src/modules/bmb/workflows/create-workflow/README.md +4 -4
- package/src/modules/bmb/workflows/create-workflow/checklist.md +1 -1
- package/src/modules/bmb/workflows/create-workflow/instructions.md +29 -29
- package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +42 -42
- package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +2 -2
- package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +12 -12
- package/src/modules/bmb/workflows/create-workflow/workflow.yaml +5 -5
- package/src/modules/bmb/workflows/edit-agent/checklist.md +1 -1
- package/src/modules/bmb/workflows/edit-agent/instructions.md +2 -2
- package/src/modules/bmb/workflows/edit-agent/workflow.yaml +8 -8
- package/src/modules/bmb/workflows/edit-module/README.md +2 -2
- package/src/modules/bmb/workflows/edit-module/checklist.md +2 -2
- package/src/modules/bmb/workflows/edit-module/instructions.md +4 -4
- package/src/modules/bmb/workflows/edit-module/workflow.yaml +10 -10
- package/src/modules/bmb/workflows/edit-workflow/instructions.md +4 -4
- package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +5 -5
- package/src/modules/bmb/workflows/module-brief/README.md +2 -2
- package/src/modules/bmb/workflows/module-brief/instructions.md +2 -2
- package/src/modules/bmb/workflows/module-brief/workflow.yaml +4 -4
- package/src/modules/bmb/workflows/redoc/README.md +5 -5
- package/src/modules/bmb/workflows/redoc/instructions.md +1 -1
- package/src/modules/bmb/workflows/redoc/workflow.yaml +1 -1
- package/src/modules/bmgd/README.md +208 -0
- package/src/modules/bmgd/_module-installer/install-config.yaml +67 -0
- package/src/modules/bmgd/agents/game-architect.agent.yaml +33 -0
- package/src/modules/bmgd/agents/game-designer.agent.yaml +40 -0
- package/src/modules/bmgd/agents/game-dev.agent.yaml +40 -0
- package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +75 -0
- package/src/modules/bmgd/teams/default-party.csv +10 -0
- package/src/modules/{bmm → bmgd}/teams/team-gamedev.yaml +5 -1
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/instructions.md +1 -1
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/workflow.yaml +10 -10
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/instructions.md +1 -1
- package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/workflow.yaml +9 -9
- package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/instructions-gdd.md +8 -8
- 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/instructions-narrative.md +6 -6
- package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/workflow.yaml +6 -6
- package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +347 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-template.md +103 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +244 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/decision-catalog.yaml +222 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +704 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/pattern-categories.csv +13 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +67 -0
- package/src/modules/bmgd/workflows/4-production/code-review/backlog_template.md +12 -0
- package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +22 -0
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +420 -0
- package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +67 -0
- package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +279 -0
- package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +201 -0
- package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +45 -0
- package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +240 -0
- package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +283 -0
- package/src/modules/bmgd/workflows/4-production/create-story/template.md +51 -0
- package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +76 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/AUDIT-REPORT.md +367 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +38 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +262 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +28 -0
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +17 -0
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +189 -0
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +76 -0
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +60 -0
- package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +1460 -0
- package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +73 -0
- package/src/modules/bmgd/workflows/4-production/sprint-planning/checklist.md +33 -0
- package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +238 -0
- package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +55 -0
- package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +49 -0
- package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +16 -0
- package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +34 -0
- package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +234 -0
- package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +59 -0
- package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +111 -0
- package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +27 -0
- package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +117 -0
- package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +27 -0
- package/src/modules/bmm/_module-installer/install-config.yaml +10 -24
- package/src/modules/bmm/_module-installer/installer.js +2 -2
- package/src/modules/bmm/agents/analyst.agent.yaml +20 -15
- package/src/modules/bmm/agents/architect.agent.yaml +17 -12
- package/src/modules/bmm/agents/dev.agent.yaml +9 -12
- package/src/modules/bmm/agents/pm.agent.yaml +24 -23
- package/src/modules/bmm/agents/sm.agent.yaml +24 -19
- package/src/modules/bmm/agents/tea.agent.yaml +23 -17
- package/src/modules/bmm/agents/tech-writer.agent.yaml +14 -10
- package/src/modules/bmm/agents/ux-designer.agent.yaml +16 -11
- package/src/modules/bmm/docs/README.md +8 -9
- package/src/modules/bmm/docs/agents-guide.md +4 -5
- package/src/modules/bmm/docs/brownfield-guide.md +9 -13
- package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
- package/src/modules/bmm/docs/faq.md +5 -7
- package/src/modules/bmm/docs/glossary.md +0 -1
- package/src/modules/bmm/docs/party-mode.md +3 -3
- package/src/modules/bmm/docs/quick-spec-flow.md +4 -4
- package/src/modules/bmm/docs/quick-start.md +5 -5
- package/src/modules/bmm/docs/scale-adaptive-system.md +5 -5
- package/src/modules/bmm/docs/test-architecture.md +184 -119
- package/src/modules/bmm/docs/workflow-document-project-reference.md +1 -1
- package/src/modules/bmm/docs/workflows-analysis.md +203 -539
- package/src/modules/bmm/docs/workflows-planning.md +326 -850
- package/src/modules/bmm/docs/workflows-solutioning.md +250 -505
- package/src/modules/bmm/sub-modules/claude-code/README.md +1 -1
- package/src/modules/bmm/sub-modules/claude-code/injections.yaml +22 -22
- package/src/modules/bmm/tasks/daily-standup.xml +2 -2
- package/src/modules/bmm/teams/default-party.csv +19 -0
- package/src/modules/bmm/teams/team-fullstack.yaml +1 -0
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +8 -8
- package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +65 -32
- package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +12 -8
- package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +2 -2
- package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +6 -6
- package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +4 -4
- package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +14 -14
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1 -1
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +36 -7
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +3 -3
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +6 -6
- package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +6 -6
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +21 -13
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +1 -1
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +5 -5
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +6 -6
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +2 -2
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +15 -9
- package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +6 -6
- package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +49 -2
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +4 -4
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +38 -38
- package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +6 -23
- package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +2 -2
- package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +38 -40
- package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +6 -19
- package/src/modules/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +3 -3
- package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +2 -2
- package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +3 -3
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +26 -28
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +6 -18
- package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +11 -11
- package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +8 -11
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +6 -15
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +5 -4
- package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +1 -1
- package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +8 -9
- package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +6 -14
- package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +4 -4
- package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +4 -4
- package/src/modules/bmm/workflows/document-project/instructions.md +5 -5
- package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
- package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
- package/src/modules/bmm/workflows/testarch/atdd/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/automate/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/ci/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/framework/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
- package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/test-design/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +1 -1
- package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/test-review/instructions.md +1 -1
- package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/trace/instructions.md +9 -9
- package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/workflow-status/init/instructions.md +78 -26
- package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +5 -4
- package/src/modules/bmm/workflows/workflow-status/instructions.md +5 -4
- 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/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
- package/src/modules/bmm/workflows/workflow-status/workflow.yaml +2 -2
- package/src/modules/cis/README.md +1 -1
- package/src/modules/cis/_module-installer/install-config.yaml +6 -4
- package/src/modules/cis/agents/README.md +1 -1
- package/src/modules/cis/agents/brainstorming-coach.agent.yaml +13 -8
- package/src/modules/cis/agents/creative-problem-solver.agent.yaml +13 -8
- package/src/modules/cis/agents/design-thinking-coach.agent.yaml +13 -8
- package/src/modules/cis/agents/innovation-strategist.agent.yaml +13 -8
- package/src/modules/cis/agents/storyteller.agent.yaml +13 -8
- package/src/modules/cis/teams/creative-squad.yaml +1 -0
- package/src/modules/cis/teams/default-party.csv +11 -0
- package/src/modules/cis/workflows/README.md +1 -1
- package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
- package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -7
- package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
- package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -7
- package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
- package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -7
- package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
- package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -7
- package/src/utility/models/action-command-header.md +0 -0
- package/src/utility/models/agent-activation-ide.xml +3 -3
- package/src/utility/models/agent-activation-web.xml +4 -4
- package/src/utility/models/agent-command-header.md +1 -0
- package/src/utility/models/fragments/activation-steps.xml +3 -2
- package/src/utility/models/fragments/handler-validate-workflow.xml +1 -1
- package/src/utility/models/fragments/handler-workflow.xml +1 -1
- package/src/utility/models/fragments/web-bundle-activation-steps.xml +3 -3
- package/test/test-installation-components.js +214 -0
- package/tools/cli/bundlers/web-bundler.js +208 -20
- package/tools/cli/commands/install.js +1 -4
- package/tools/cli/installers/lib/core/config-collector.js +201 -28
- package/tools/cli/installers/lib/core/detector.js +62 -7
- package/tools/cli/installers/lib/core/installer.js +158 -23
- package/tools/cli/installers/lib/core/manifest-generator.js +26 -115
- package/tools/cli/installers/lib/ide/_base-ide.js +57 -3
- package/tools/cli/installers/lib/ide/auggie.js +81 -238
- package/tools/cli/installers/lib/ide/claude-code.js +47 -25
- package/tools/cli/installers/lib/ide/cline.js +15 -18
- package/tools/cli/installers/lib/ide/codex.js +17 -48
- package/tools/cli/installers/lib/ide/crush.js +14 -50
- package/tools/cli/installers/lib/ide/cursor.js +68 -8
- package/tools/cli/installers/lib/ide/gemini.js +87 -37
- package/tools/cli/installers/lib/ide/github-copilot.js +47 -35
- package/tools/cli/installers/lib/ide/iflow.js +13 -30
- package/tools/cli/installers/lib/ide/kilo.js +20 -16
- package/tools/cli/installers/lib/ide/manager.js +15 -0
- package/tools/cli/installers/lib/ide/opencode.js +16 -17
- package/tools/cli/installers/lib/ide/qwen.js +39 -11
- package/tools/cli/installers/lib/ide/roo.js +27 -62
- package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +90 -0
- package/tools/cli/installers/lib/ide/{task-tool-command-generator.js → shared/task-tool-command-generator.js} +1 -1
- package/tools/cli/installers/lib/ide/{workflow-command-generator.js → shared/workflow-command-generator.js} +11 -9
- package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
- package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
- package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
- package/tools/cli/installers/lib/ide/{workflow-command-template.md → templates/workflow-command-template.md} +3 -5
- package/tools/cli/installers/lib/ide/trae.js +20 -32
- package/tools/cli/installers/lib/ide/windsurf.js +18 -8
- package/tools/cli/installers/lib/modules/manager.js +207 -7
- package/tools/cli/lib/cli-utils.js +52 -50
- package/tools/cli/lib/ui.js +15 -8
- package/tools/cli/lib/yaml-xml-builder.js +9 -1
- package/tools/schema/agent.js +8 -3
- package/v6-open-items.md +3 -9
- package/web-bundles/bmgd/agents/game-architect.xml +664 -0
- package/web-bundles/bmgd/agents/game-designer.xml +5489 -0
- package/web-bundles/bmgd/agents/game-dev.xml +595 -0
- package/web-bundles/bmgd/agents/game-scrum-master.xml +699 -0
- package/web-bundles/bmgd/teams/team-gamedev.xml +6588 -0
- package/web-bundles/bmm/agents/analyst.xml +5263 -0
- package/web-bundles/bmm/agents/architect.xml +2378 -0
- package/web-bundles/bmm/agents/dev.xml +248 -0
- package/web-bundles/bmm/agents/pm.xml +4137 -0
- package/web-bundles/bmm/agents/sm.xml +708 -0
- package/web-bundles/bmm/agents/tea.xml +759 -0
- package/web-bundles/bmm/agents/tech-writer.xml +624 -0
- package/web-bundles/bmm/agents/ux-designer.xml +2492 -0
- package/web-bundles/bmm/teams/team-fullstack.xml +12369 -0
- package/web-bundles/cis/agents/brainstorming-coach.xml +1069 -0
- package/web-bundles/cis/agents/creative-problem-solver.xml +1060 -0
- package/web-bundles/cis/agents/design-thinking-coach.xml +955 -0
- package/web-bundles/cis/agents/innovation-strategist.xml +1108 -0
- package/web-bundles/cis/agents/storyteller.xml +598 -0
- package/web-bundles/cis/teams/creative-squad.xml +3449 -0
- package/.claude/agents/bmad-analysis/api-documenter.md +0 -102
- package/.claude/agents/bmad-analysis/codebase-analyzer.md +0 -82
- package/.claude/agents/bmad-analysis/data-analyst.md +0 -101
- package/.claude/agents/bmad-analysis/pattern-detector.md +0 -84
- package/.claude/agents/bmad-planning/dependency-mapper.md +0 -83
- package/.claude/agents/bmad-planning/epic-optimizer.md +0 -81
- package/.claude/agents/bmad-planning/requirements-analyst.md +0 -61
- package/.claude/agents/bmad-planning/technical-decisions-curator.md +0 -168
- package/.claude/agents/bmad-planning/trend-spotter.md +0 -115
- package/.claude/agents/bmad-planning/user-journey-mapper.md +0 -123
- package/.claude/agents/bmad-planning/user-researcher.md +0 -72
- package/.claude/agents/bmad-research/market-researcher.md +0 -51
- package/.claude/agents/bmad-research/tech-debt-auditor.md +0 -106
- package/.claude/agents/bmad-review/document-reviewer.md +0 -102
- package/.claude/agents/bmad-review/technical-evaluator.md +0 -68
- package/.claude/agents/bmad-review/test-coverage-analyzer.md +0 -108
- package/.claude/commands/bmad/bmb/workflows/README.md +0 -67
- package/.claude/commands/bmad/bmm/workflows/README.md +0 -132
- package/.claude/commands/bmad/bmm/workflows/narrative.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 -27
- package/bmad/_cfg/agent-manifest.csv +0 -11
- package/bmad/_cfg/manifest.yaml +0 -10
- package/bmad/bmb/config.yaml +0 -14
- package/bmad/bmm/teams/team-gamedev.yaml +0 -14
- package/bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -36
- package/bmad/bmm/workflows/2-plan-workflows/narrative/instructions-narrative.md +0 -608
- package/bmad/bmm/workflows/2-plan-workflows/narrative/workflow.yaml +0 -29
- package/bmad/bmm/workflows/workflow-status/paths/game-design.yaml +0 -75
- package/bmad/core/workflows/party-mode/workflow.yaml +0 -23
- package/bmd/README.md +0 -193
- package/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
- package/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
- package/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
- package/bmd/agents/cli-chief-sidecar/memories.md +0 -53
- package/bmd/agents/cli-chief.agent.yaml +0 -126
- package/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
- package/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
- package/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
- package/bmd/agents/doc-keeper.agent.yaml +0 -137
- package/bmd/agents/release-chief-sidecar/instructions.md +0 -164
- package/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
- package/bmd/agents/release-chief-sidecar/memories.md +0 -73
- package/bmd/agents/release-chief.agent.yaml +0 -127
- package/bmd/bmad-custom-module-installer-plan.md +0 -1176
- package/bmd/config.yaml +0 -12
- package/src/modules/bmm/agents/game-architect.agent.yaml +0 -35
- package/src/modules/bmm/agents/game-designer.agent.yaml +0 -47
- package/src/modules/bmm/agents/game-dev.agent.yaml +0 -35
- package/src/modules/bmm/docs/troubleshooting.md +0 -680
- 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/narrative-template.md +0 -195
- package/test/fixtures/agent-schema/invalid/persona/principles-as-string.agent.yaml +0 -23
- /package/{bmad → .bmad}/_cfg/agents/bmb-bmad-builder.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-analyst.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-architect.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-dev.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-pm.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-sm.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-tea.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-tech-writer.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/bmm-ux-designer.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/agents/core-bmad-master.customize.yaml +0 -0
- /package/{bmad → .bmad}/_cfg/tool-manifest.csv +0 -0
- /package/{bmad → .bmad}/bmb/README.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/audit-workflow/template.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-agent/brainstorm-context.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-agent/communication-styles.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-module/brainstorm-context.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-module/installer-templates/installer.js +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-workflow/brainstorm-context.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/create-workflow/workflow-template/template.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/edit-agent/README.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/edit-workflow/README.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/edit-workflow/checklist.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/module-brief/checklist.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/module-brief/template.md +0 -0
- /package/{bmad → .bmad}/bmb/workflows/redoc/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/README.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/ci-burn-in.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/component-tdd.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/contract-testing.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/data-factories.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/email-auth.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/error-handling.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/feature-flags.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/fixture-architecture.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/network-first.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/nfr-criteria.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/playwright-config.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/probability-impact.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/risk-governance.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/selective-testing.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/selector-resilience.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/test-healing-patterns.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/test-levels-framework.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/test-priorities-matrix.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/test-quality.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/timing-debugging.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/knowledge/visual-debugging.md +0 -0
- /package/{bmad → .bmad}/bmm/testarch/tea-index.csv +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/domain-research/template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/product-brief/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/product-brief/template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/checklist-technical.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/template-market.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/1-analysis/research/template-technical.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/prd-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/prd/project-types.csv +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/code-review/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/create-story/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/create-story/template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/dev-story/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/sprint-planning/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/documentation-requirements.csv +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/templates/deep-dive-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/templates/index-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/templates/project-overview-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/templates/project-scan-report-schema.json +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/templates/source-tree-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/workflows/deep-dive-instructions.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/document-project/workflows/full-scan-instructions.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/techdoc/documentation-standards.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/atdd/atdd-checklist-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/atdd/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/automate/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/ci/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/ci/github-actions-template.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/framework/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/nfr-assess/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/test-design/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/test-review/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/test-review/test-review-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/trace/checklist.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/testarch/trace/trace-template.md +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/method-brownfield.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/method-greenfield.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/sample-level-3-workflow.yaml +0 -0
- /package/{bmad → .bmad}/bmm/workflows/workflow-status/workflow-status-template.yaml +0 -0
- /package/{bmad → .bmad}/core/tasks/adv-elicit-methods.csv +0 -0
- /package/{bmad → .bmad}/core/workflows/brainstorming/brain-methods.csv +0 -0
- /package/{bmad → .bmad}/core/workflows/brainstorming/template.md +0 -0
- /package/{bmad → .bmad}/docs/claude-code-instructions.md +0 -0
- /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}/game-brief/checklist.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/{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/narrative-template.md +0 -0
|
@@ -13,14 +13,56 @@ class ConfigCollector {
|
|
|
13
13
|
this.currentProjectDir = null;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Find the bmad installation directory in a project
|
|
18
|
+
* V6+ installations can use ANY folder name but ALWAYS have _cfg/manifest.yaml
|
|
19
|
+
* @param {string} projectDir - Project directory
|
|
20
|
+
* @returns {Promise<string>} Path to bmad directory
|
|
21
|
+
*/
|
|
22
|
+
async findBmadDir(projectDir) {
|
|
23
|
+
// Check if project directory exists
|
|
24
|
+
if (!(await fs.pathExists(projectDir))) {
|
|
25
|
+
// Project doesn't exist yet, return default
|
|
26
|
+
return path.join(projectDir, 'bmad');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// V6+ strategy: Look for ANY directory with _cfg/manifest.yaml
|
|
30
|
+
// This is the definitive marker of a V6+ installation
|
|
31
|
+
try {
|
|
32
|
+
const entries = await fs.readdir(projectDir, { withFileTypes: true });
|
|
33
|
+
for (const entry of entries) {
|
|
34
|
+
if (entry.isDirectory()) {
|
|
35
|
+
const manifestPath = path.join(projectDir, entry.name, '_cfg', 'manifest.yaml');
|
|
36
|
+
if (await fs.pathExists(manifestPath)) {
|
|
37
|
+
// Found a V6+ installation
|
|
38
|
+
return path.join(projectDir, entry.name);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
} catch {
|
|
43
|
+
// Ignore errors, fall through to default
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// No V6+ installation found, return default
|
|
47
|
+
// This will be used for new installations
|
|
48
|
+
return path.join(projectDir, 'bmad');
|
|
49
|
+
}
|
|
50
|
+
|
|
16
51
|
/**
|
|
17
52
|
* Load existing config if it exists from module config files
|
|
18
53
|
* @param {string} projectDir - Target project directory
|
|
19
54
|
*/
|
|
20
55
|
async loadExistingConfig(projectDir) {
|
|
21
|
-
const bmadDir = path.join(projectDir, 'bmad');
|
|
22
56
|
this.existingConfig = {};
|
|
23
57
|
|
|
58
|
+
// Check if project directory exists first
|
|
59
|
+
if (!(await fs.pathExists(projectDir))) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Find the actual bmad directory (handles custom folder names)
|
|
64
|
+
const bmadDir = await this.findBmadDir(projectDir);
|
|
65
|
+
|
|
24
66
|
// Check if bmad directory exists
|
|
25
67
|
if (!(await fs.pathExists(bmadDir))) {
|
|
26
68
|
return false;
|
|
@@ -159,27 +201,25 @@ class ConfigCollector {
|
|
|
159
201
|
this.allAnswers[`${moduleName}_${key}`] = value;
|
|
160
202
|
}
|
|
161
203
|
}
|
|
204
|
+
// Show "no config" message for modules with no new questions
|
|
205
|
+
CLIUtils.displayModuleNoConfig(moduleName, moduleConfig.header, moduleConfig.subheader);
|
|
162
206
|
return false; // No new fields
|
|
163
207
|
}
|
|
164
208
|
|
|
165
|
-
// If we have new fields,
|
|
209
|
+
// If we have new fields, build questions first
|
|
166
210
|
if (newKeys.length > 0) {
|
|
167
|
-
console.log(chalk.yellow(`\n📋 New configuration options available for ${moduleName}`));
|
|
168
|
-
if (moduleConfig.prompt) {
|
|
169
|
-
const prompts = Array.isArray(moduleConfig.prompt) ? moduleConfig.prompt : [moduleConfig.prompt];
|
|
170
|
-
CLIUtils.displayPromptSection(prompts);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
211
|
const questions = [];
|
|
174
212
|
for (const key of newKeys) {
|
|
175
213
|
const item = moduleConfig[key];
|
|
176
|
-
const question = await this.buildQuestion(moduleName, key, item);
|
|
214
|
+
const question = await this.buildQuestion(moduleName, key, item, moduleConfig);
|
|
177
215
|
if (question) {
|
|
178
216
|
questions.push(question);
|
|
179
217
|
}
|
|
180
218
|
}
|
|
181
219
|
|
|
182
220
|
if (questions.length > 0) {
|
|
221
|
+
// Only show header if we actually have questions
|
|
222
|
+
CLIUtils.displayModuleConfigHeader(moduleName, moduleConfig.header, moduleConfig.subheader);
|
|
183
223
|
console.log(); // Line break before questions
|
|
184
224
|
const answers = await inquirer.prompt(questions);
|
|
185
225
|
|
|
@@ -206,6 +246,9 @@ class ConfigCollector {
|
|
|
206
246
|
}
|
|
207
247
|
this.collectedConfig[moduleName][originalKey] = result;
|
|
208
248
|
}
|
|
249
|
+
} else {
|
|
250
|
+
// New keys exist but no questions generated - show no config message
|
|
251
|
+
CLIUtils.displayModuleNoConfig(moduleName, moduleConfig.header, moduleConfig.subheader);
|
|
209
252
|
}
|
|
210
253
|
}
|
|
211
254
|
|
|
@@ -325,12 +368,6 @@ class ConfigCollector {
|
|
|
325
368
|
return;
|
|
326
369
|
}
|
|
327
370
|
|
|
328
|
-
// Display module prompts using better formatting
|
|
329
|
-
if (moduleConfig.prompt) {
|
|
330
|
-
const prompts = Array.isArray(moduleConfig.prompt) ? moduleConfig.prompt : [moduleConfig.prompt];
|
|
331
|
-
CLIUtils.displayPromptSection(prompts);
|
|
332
|
-
}
|
|
333
|
-
|
|
334
371
|
// Process each config item
|
|
335
372
|
const questions = [];
|
|
336
373
|
const configKeys = Object.keys(moduleConfig).filter((key) => key !== 'prompt');
|
|
@@ -343,13 +380,15 @@ class ConfigCollector {
|
|
|
343
380
|
continue;
|
|
344
381
|
}
|
|
345
382
|
|
|
346
|
-
const question = await this.buildQuestion(moduleName, key, item);
|
|
383
|
+
const question = await this.buildQuestion(moduleName, key, item, moduleConfig);
|
|
347
384
|
if (question) {
|
|
348
385
|
questions.push(question);
|
|
349
386
|
}
|
|
350
387
|
}
|
|
351
388
|
|
|
389
|
+
// Display appropriate header based on whether there are questions
|
|
352
390
|
if (questions.length > 0) {
|
|
391
|
+
CLIUtils.displayModuleConfigHeader(moduleName, moduleConfig.header, moduleConfig.subheader);
|
|
353
392
|
console.log(); // Line break before questions
|
|
354
393
|
const answers = await inquirer.prompt(questions);
|
|
355
394
|
|
|
@@ -450,20 +489,68 @@ class ConfigCollector {
|
|
|
450
489
|
this.collectedConfig[moduleName][originalKey] = result;
|
|
451
490
|
}
|
|
452
491
|
|
|
453
|
-
//
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
492
|
+
// No longer display completion boxes - keep output clean
|
|
493
|
+
} else {
|
|
494
|
+
// No questions for this module - show completion message
|
|
495
|
+
CLIUtils.displayModuleNoConfig(moduleName, moduleConfig.header, moduleConfig.subheader);
|
|
457
496
|
}
|
|
458
497
|
}
|
|
459
498
|
|
|
499
|
+
/**
|
|
500
|
+
* Replace placeholders in a string with collected config values
|
|
501
|
+
* @param {string} str - String with placeholders
|
|
502
|
+
* @param {string} currentModule - Current module name (to look up defaults in same module)
|
|
503
|
+
* @param {Object} moduleConfig - Current module's config schema (to look up defaults)
|
|
504
|
+
* @returns {string} String with placeholders replaced
|
|
505
|
+
*/
|
|
506
|
+
replacePlaceholders(str, currentModule = null, moduleConfig = null) {
|
|
507
|
+
if (typeof str !== 'string') {
|
|
508
|
+
return str;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
return str.replaceAll(/{([^}]+)}/g, (match, configKey) => {
|
|
512
|
+
// Preserve special placeholders
|
|
513
|
+
if (configKey === 'project-root' || configKey === 'value' || configKey === 'directory_name') {
|
|
514
|
+
return match;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
// Look for the config value in allAnswers (already answered questions)
|
|
518
|
+
let configValue = this.allAnswers[configKey] || this.allAnswers[`core_${configKey}`];
|
|
519
|
+
|
|
520
|
+
// Check in already collected config
|
|
521
|
+
if (!configValue) {
|
|
522
|
+
for (const mod of Object.keys(this.collectedConfig)) {
|
|
523
|
+
if (mod !== '_meta' && this.collectedConfig[mod] && this.collectedConfig[mod][configKey]) {
|
|
524
|
+
configValue = this.collectedConfig[mod][configKey];
|
|
525
|
+
// Remove {project-root}/ prefix if present for cleaner display
|
|
526
|
+
if (typeof configValue === 'string' && configValue.includes('{project-root}/')) {
|
|
527
|
+
configValue = configValue.replace('{project-root}/', '');
|
|
528
|
+
}
|
|
529
|
+
break;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
// If still not found and we're in the same module, use the default from the config schema
|
|
535
|
+
if (!configValue && currentModule && moduleConfig && moduleConfig[configKey]) {
|
|
536
|
+
const referencedItem = moduleConfig[configKey];
|
|
537
|
+
if (referencedItem && referencedItem.default !== undefined) {
|
|
538
|
+
configValue = referencedItem.default;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
return configValue || match;
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
|
|
460
546
|
/**
|
|
461
547
|
* Build an inquirer question from a config item
|
|
462
548
|
* @param {string} moduleName - Module name
|
|
463
549
|
* @param {string} key - Config key
|
|
464
550
|
* @param {Object} item - Config item definition
|
|
551
|
+
* @param {Object} moduleConfig - Full module config schema (for resolving defaults)
|
|
465
552
|
*/
|
|
466
|
-
async buildQuestion(moduleName, key, item) {
|
|
553
|
+
async buildQuestion(moduleName, key, item, moduleConfig = null) {
|
|
467
554
|
const questionName = `${moduleName}_${key}`;
|
|
468
555
|
|
|
469
556
|
// Check for existing value
|
|
@@ -483,9 +570,42 @@ class ConfigCollector {
|
|
|
483
570
|
let defaultValue = item.default;
|
|
484
571
|
let choices = null;
|
|
485
572
|
|
|
486
|
-
if
|
|
487
|
-
|
|
488
|
-
|
|
573
|
+
// Check if default contains references to other fields in the same module
|
|
574
|
+
const hasSameModuleReference = typeof defaultValue === 'string' && defaultValue.match(/{([^}]+)}/);
|
|
575
|
+
let dynamicDefault = false;
|
|
576
|
+
|
|
577
|
+
// Replace placeholders in default value with collected config values
|
|
578
|
+
if (typeof defaultValue === 'string') {
|
|
579
|
+
if (defaultValue.includes('{directory_name}') && this.currentProjectDir) {
|
|
580
|
+
const dirName = path.basename(this.currentProjectDir);
|
|
581
|
+
defaultValue = defaultValue.replaceAll('{directory_name}', dirName);
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
// Check if this references another field in the same module (for dynamic defaults)
|
|
585
|
+
if (hasSameModuleReference && moduleConfig) {
|
|
586
|
+
const matches = defaultValue.match(/{([^}]+)}/g);
|
|
587
|
+
if (matches) {
|
|
588
|
+
for (const match of matches) {
|
|
589
|
+
const fieldName = match.slice(1, -1); // Remove { }
|
|
590
|
+
// Check if this field exists in the same module config
|
|
591
|
+
if (moduleConfig[fieldName]) {
|
|
592
|
+
dynamicDefault = true;
|
|
593
|
+
break;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
// If not dynamic, replace placeholders now
|
|
600
|
+
if (!dynamicDefault) {
|
|
601
|
+
defaultValue = this.replacePlaceholders(defaultValue, moduleName, moduleConfig);
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
// Strip {project-root}/ from defaults since it will be added back by result template
|
|
605
|
+
// This makes the display cleaner and user input simpler
|
|
606
|
+
if (defaultValue.includes('{project-root}/')) {
|
|
607
|
+
defaultValue = defaultValue.replace('{project-root}/', '');
|
|
608
|
+
}
|
|
489
609
|
}
|
|
490
610
|
|
|
491
611
|
// Handle different question types
|
|
@@ -548,31 +668,67 @@ class ConfigCollector {
|
|
|
548
668
|
message = item.prompt;
|
|
549
669
|
}
|
|
550
670
|
|
|
671
|
+
// Replace placeholders in prompt message with collected config values
|
|
672
|
+
if (typeof message === 'string') {
|
|
673
|
+
message = this.replacePlaceholders(message, moduleName, moduleConfig);
|
|
674
|
+
}
|
|
675
|
+
|
|
551
676
|
// Add current value indicator for existing configs
|
|
552
677
|
if (existingValue !== null && existingValue !== undefined) {
|
|
553
678
|
if (typeof existingValue === 'boolean') {
|
|
554
679
|
message += chalk.dim(` (current: ${existingValue ? 'true' : 'false'})`);
|
|
555
|
-
defaultValue = existingValue;
|
|
556
680
|
} else if (Array.isArray(existingValue)) {
|
|
557
681
|
message += chalk.dim(` (current: ${existingValue.join(', ')})`);
|
|
558
682
|
} else if (questionType !== 'list') {
|
|
559
683
|
// Show the cleaned value (without {project-root}/) for display
|
|
560
684
|
message += chalk.dim(` (current: ${existingValue})`);
|
|
561
|
-
defaultValue = existingValue;
|
|
562
685
|
}
|
|
563
686
|
} else if (item.example && questionType === 'input') {
|
|
564
687
|
// Show example for input fields
|
|
565
|
-
|
|
688
|
+
let exampleText = typeof item.example === 'string' ? item.example : JSON.stringify(item.example);
|
|
689
|
+
// Replace placeholders in example
|
|
690
|
+
if (typeof exampleText === 'string') {
|
|
691
|
+
exampleText = this.replacePlaceholders(exampleText, moduleName, moduleConfig);
|
|
692
|
+
exampleText = exampleText.replace('{project-root}/', '');
|
|
693
|
+
}
|
|
566
694
|
message += chalk.dim(` (e.g., ${exampleText})`);
|
|
567
695
|
}
|
|
568
696
|
|
|
697
|
+
// Build the question object
|
|
569
698
|
const question = {
|
|
570
699
|
type: questionType,
|
|
571
700
|
name: questionName,
|
|
572
701
|
message: message,
|
|
573
|
-
default: defaultValue,
|
|
574
702
|
};
|
|
575
703
|
|
|
704
|
+
// Set default - if it's dynamic, use a function that inquirer will evaluate with current answers
|
|
705
|
+
// But if we have an existing value, always use that instead
|
|
706
|
+
if (existingValue !== null && existingValue !== undefined && questionType !== 'list') {
|
|
707
|
+
question.default = existingValue;
|
|
708
|
+
} else if (dynamicDefault && typeof item.default === 'string') {
|
|
709
|
+
const originalDefault = item.default;
|
|
710
|
+
question.default = (answers) => {
|
|
711
|
+
// Replace placeholders using answers from previous questions in the same batch
|
|
712
|
+
let resolved = originalDefault;
|
|
713
|
+
resolved = resolved.replaceAll(/{([^}]+)}/g, (match, fieldName) => {
|
|
714
|
+
// Look for the answer in the current batch (prefixed with module name)
|
|
715
|
+
const answerKey = `${moduleName}_${fieldName}`;
|
|
716
|
+
if (answers[answerKey] !== undefined) {
|
|
717
|
+
return answers[answerKey];
|
|
718
|
+
}
|
|
719
|
+
// Fall back to collected config
|
|
720
|
+
return this.collectedConfig[moduleName]?.[fieldName] || match;
|
|
721
|
+
});
|
|
722
|
+
// Strip {project-root}/ for cleaner display
|
|
723
|
+
if (resolved.includes('{project-root}/')) {
|
|
724
|
+
resolved = resolved.replace('{project-root}/', '');
|
|
725
|
+
}
|
|
726
|
+
return resolved;
|
|
727
|
+
};
|
|
728
|
+
} else {
|
|
729
|
+
question.default = defaultValue;
|
|
730
|
+
}
|
|
731
|
+
|
|
576
732
|
// Add choices for select types
|
|
577
733
|
if (choices) {
|
|
578
734
|
question.choices = choices;
|
|
@@ -584,6 +740,23 @@ class ConfigCollector {
|
|
|
584
740
|
if (!input && item.required) {
|
|
585
741
|
return 'This field is required';
|
|
586
742
|
}
|
|
743
|
+
// Validate against regex pattern if provided
|
|
744
|
+
if (input && item.regex) {
|
|
745
|
+
const regex = new RegExp(item.regex);
|
|
746
|
+
if (!regex.test(input)) {
|
|
747
|
+
return `Invalid format. Must match pattern: ${item.regex}`;
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
return true;
|
|
751
|
+
};
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
// Add validation for checkbox (multi-select) fields
|
|
755
|
+
if (questionType === 'checkbox' && item.required) {
|
|
756
|
+
question.validate = (answers) => {
|
|
757
|
+
if (!answers || answers.length === 0) {
|
|
758
|
+
return 'At least one option must be selected';
|
|
759
|
+
}
|
|
587
760
|
return true;
|
|
588
761
|
};
|
|
589
762
|
}
|
|
@@ -199,6 +199,8 @@ class Detector {
|
|
|
199
199
|
|
|
200
200
|
/**
|
|
201
201
|
* Detect legacy BMAD v4 footprints (case-sensitive path checks)
|
|
202
|
+
* V4 used .bmad-method as default folder name
|
|
203
|
+
* V6+ uses configurable folder names and ALWAYS has _cfg/manifest.yaml with installation.version
|
|
202
204
|
* @param {string} projectDir - Project directory to check
|
|
203
205
|
* @returns {{ hasLegacyV4: boolean, offenders: string[] }}
|
|
204
206
|
*/
|
|
@@ -223,18 +225,62 @@ class Detector {
|
|
|
223
225
|
return true;
|
|
224
226
|
};
|
|
225
227
|
|
|
228
|
+
// Helper: check if a directory is a V6+ installation
|
|
229
|
+
const isV6Installation = async (dirPath) => {
|
|
230
|
+
const manifestPath = path.join(dirPath, '_cfg', 'manifest.yaml');
|
|
231
|
+
if (!(await fs.pathExists(manifestPath))) {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
try {
|
|
235
|
+
const yaml = require('js-yaml');
|
|
236
|
+
const manifestContent = await fs.readFile(manifestPath, 'utf8');
|
|
237
|
+
const manifest = yaml.load(manifestContent);
|
|
238
|
+
// V6+ manifest has installation.version
|
|
239
|
+
return manifest && manifest.installation && manifest.installation.version;
|
|
240
|
+
} catch {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
|
|
226
245
|
const offenders = [];
|
|
227
246
|
|
|
228
|
-
//
|
|
247
|
+
// Strategy:
|
|
248
|
+
// 1. First scan for ANY V6+ installation (_cfg/manifest.yaml)
|
|
249
|
+
// 2. If V6+ found → don't flag anything (user is already on V6+)
|
|
250
|
+
// 3. If NO V6+ found → flag folders with "bmad" in name as potential V4 legacy
|
|
251
|
+
|
|
252
|
+
let hasV6Installation = false;
|
|
253
|
+
const potentialV4Folders = [];
|
|
254
|
+
|
|
229
255
|
try {
|
|
230
256
|
const entries = await fs.readdir(projectDir, { withFileTypes: true });
|
|
257
|
+
|
|
231
258
|
for (const entry of entries) {
|
|
232
259
|
if (entry.isDirectory()) {
|
|
233
260
|
const name = entry.name;
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
if
|
|
237
|
-
|
|
261
|
+
const fullPath = path.join(projectDir, entry.name);
|
|
262
|
+
|
|
263
|
+
// Check if directory is empty (skip empty leftover folders)
|
|
264
|
+
const dirContents = await fs.readdir(fullPath);
|
|
265
|
+
if (dirContents.length === 0) {
|
|
266
|
+
continue; // Skip empty folders
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// Check if it's a V6+ installation by looking for _cfg/manifest.yaml
|
|
270
|
+
// This works for ANY folder name (not just bmad-prefixed)
|
|
271
|
+
const isV6 = await isV6Installation(fullPath);
|
|
272
|
+
|
|
273
|
+
if (isV6) {
|
|
274
|
+
// Found a V6+ installation - user is already on V6+
|
|
275
|
+
hasV6Installation = true;
|
|
276
|
+
// Don't break - continue scanning to be thorough
|
|
277
|
+
} else {
|
|
278
|
+
// Not V6+, check if folder name contains "bmad" (case insensitive)
|
|
279
|
+
const nameLower = name.toLowerCase();
|
|
280
|
+
if (nameLower.includes('bmad')) {
|
|
281
|
+
// Potential V4 legacy folder
|
|
282
|
+
potentialV4Folders.push(fullPath);
|
|
283
|
+
}
|
|
238
284
|
}
|
|
239
285
|
}
|
|
240
286
|
}
|
|
@@ -242,8 +288,15 @@ class Detector {
|
|
|
242
288
|
// Ignore errors reading directory
|
|
243
289
|
}
|
|
244
290
|
|
|
291
|
+
// Only flag V4 folders if NO V6+ installation was found
|
|
292
|
+
if (!hasV6Installation && potentialV4Folders.length > 0) {
|
|
293
|
+
offenders.push(...potentialV4Folders);
|
|
294
|
+
}
|
|
295
|
+
|
|
245
296
|
// Check inside various IDE command folders for legacy bmad folders
|
|
246
|
-
//
|
|
297
|
+
// V4 used folders like 'bmad-method' or custom names in IDE commands
|
|
298
|
+
// V6+ uses 'bmad' in IDE commands (hardcoded in IDE handlers)
|
|
299
|
+
// Legacy V4 IDE command folders won't have a corresponding V6+ installation
|
|
247
300
|
const ideConfigFolders = ['.opencode', '.claude', '.crush', '.continue', '.cursor', '.windsurf', '.cline', '.roo-cline'];
|
|
248
301
|
|
|
249
302
|
for (const ideFolder of ideConfigFolders) {
|
|
@@ -255,7 +308,9 @@ class Detector {
|
|
|
255
308
|
for (const entry of commandEntries) {
|
|
256
309
|
if (entry.isDirectory()) {
|
|
257
310
|
const name = entry.name;
|
|
258
|
-
//
|
|
311
|
+
// V4 used 'bmad-method' or similar in IDE commands folders
|
|
312
|
+
// V6+ uses 'bmad' (hardcoded)
|
|
313
|
+
// So anything that's NOT 'bmad' but starts with bmad/Bmad is likely V4
|
|
259
314
|
if ((name.startsWith('bmad') || name.startsWith('Bmad') || name === 'BMad') && name !== 'bmad') {
|
|
260
315
|
offenders.push(path.join(commandsPath, entry.name));
|
|
261
316
|
}
|