bmad-method 6.0.0-alpha.7 → 6.0.0-alpha.9
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/.github/ISSUE_TEMPLATE/idea_submission.md +1 -1
- package/.github/workflows/bundle-latest.yaml +277 -0
- package/.github/workflows/manual-release.yaml +55 -16
- package/.vscode/settings.json +2 -1
- package/CHANGELOG.md +439 -1
- package/README.md +12 -4
- package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
- package/docs/agent-customization-guide.md +208 -0
- package/docs/ide-info/crush.md +1 -1
- package/docs/ide-info/cursor.md +7 -7
- package/docs/ide-info/iflow.md +3 -3
- package/docs/ide-info/opencode.md +1 -1
- package/docs/index.md +3 -1
- package/docs/installers-bundlers/ide-injections.md +2 -2
- package/docs/installers-bundlers/installers-modules-platforms-reference.md +23 -23
- package/docs/v4-to-v6-upgrade.md +12 -12
- package/docs/web-bundles-gemini-gpt-guide.md +473 -0
- package/package.json +1 -1
- package/src/core/_module-installer/install-config.yaml +17 -10
- 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 → advanced-elicitation.xml} +6 -4
- package/src/core/tasks/index-docs.xml +1 -1
- package/src/core/tasks/validate-workflow.xml +1 -1
- package/src/core/tasks/workflow.xml +125 -11
- package/src/core/tools/shard-doc.xml +45 -1
- package/src/core/workflows/brainstorming/README.md +6 -16
- package/src/core/workflows/brainstorming/instructions.md +6 -5
- package/src/core/workflows/brainstorming/template.md +4 -0
- 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 +5 -6
- 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 -19
- 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 +24 -27
- 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 -10
- package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +1 -1
- package/src/modules/bmb/workflows/create-module/instructions.md +12 -17
- package/src/modules/bmb/workflows/create-module/module-structure.md +7 -7
- 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 +40 -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/checklist.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 +1 -1
- package/src/modules/bmgd/_module-installer/install-config.yaml +12 -24
- package/src/modules/bmgd/agents/game-architect.agent.yaml +15 -10
- package/src/modules/bmgd/agents/game-designer.agent.yaml +16 -11
- package/src/modules/bmgd/agents/game-dev.agent.yaml +18 -12
- package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +30 -25
- package/src/modules/bmgd/teams/default-party.csv +10 -0
- package/src/modules/bmgd/teams/team-gamedev.yaml +2 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +1 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +9 -9
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +1 -1
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +8 -8
- package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +5 -10
- package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +30 -30
- package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +1 -6
- package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +5 -5
- package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +0 -26
- package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +2 -6
- package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +2 -7
- package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +2 -2
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +25 -47
- package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +13 -32
- package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +1 -1
- package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +7 -2
- package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +32 -25
- package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +20 -47
- package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +16 -24
- package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +8 -3
- package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +30 -5
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +1 -1
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +10 -35
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +16 -24
- package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +18 -36
- package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +16 -37
- package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +11 -15
- package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +1 -1
- package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +8 -7
- package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +1 -1
- package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +1 -1
- package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +20 -45
- package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +15 -17
- package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +1 -1
- package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +5 -4
- package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +6 -6
- package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +5 -7
- package/src/modules/bmm/_module-installer/install-config.yaml +9 -28
- 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 +15 -11
- package/src/modules/bmm/agents/ux-designer.agent.yaml +16 -11
- package/src/modules/bmm/docs/agents-guide.md +4 -4
- package/src/modules/bmm/docs/brownfield-guide.md +4 -4
- package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
- package/src/modules/bmm/docs/faq.md +1 -1
- package/src/modules/bmm/docs/party-mode.md +3 -3
- package/src/modules/bmm/docs/quick-start.md +1 -1
- package/src/modules/bmm/docs/test-architecture.md +1 -1
- package/src/modules/bmm/docs/workflow-document-project-reference.md +1 -1
- 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 +8 -21
- package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +10 -12
- package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +13 -9
- package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +2 -2
- package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +2 -2
- package/src/modules/bmm/workflows/1-analysis/research/checklist.md +2 -2
- package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +1 -3
- package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +2 -7
- package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +1 -6
- 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 +7 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +16 -10
- package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +8 -12
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +28 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +146 -23
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +7 -9
- package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +152 -35
- package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +2 -2
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +20 -16
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +12 -9
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -6
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +434 -0
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +129 -266
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +15 -37
- package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -26
- package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +3 -7
- package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +30 -38
- package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +25 -43
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +7 -13
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +57 -60
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +12 -12
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +25 -47
- package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +13 -32
- package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +7 -2
- package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +32 -25
- package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +20 -47
- package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +16 -24
- package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +8 -3
- package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +30 -5
- 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 +10 -35
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +16 -24
- package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +18 -36
- package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +16 -37
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +11 -15
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +1 -1
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +8 -7
- 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 +20 -45
- package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +15 -17
- package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +5 -4
- package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +6 -6
- package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +5 -7
- package/src/modules/bmm/workflows/document-project/checklist.md +1 -1
- 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-instructions.md +4 -4
- package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
- package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +13 -13
- 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/checklist.md +4 -4
- 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/checklist.md +4 -4
- 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/checklist.md +4 -4
- package/src/modules/bmm/workflows/testarch/test-design/instructions.md +175 -14
- package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +4 -4
- package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +7 -3
- 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 +33 -31
- 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 +9 -16
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +11 -18
- package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +8 -1
- package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +9 -2
- package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
- package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +2 -9
- 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/tools/cli/README.md +50 -32
- package/tools/cli/bundlers/web-bundler.js +86 -17
- 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 +175 -33
- 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 +78 -224
- package/tools/cli/installers/lib/ide/claude-code.js +14 -22
- 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 +51 -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 +89 -17
- package/tools/cli/lib/cli-utils.js +52 -50
- package/tools/cli/lib/ui.js +29 -12
- package/tools/cli/lib/yaml-xml-builder.js +20 -2
- package/tools/schema/agent.js +7 -3
- package/.claude/commands/bmad/bmb/agents/bmad-builder.md +0 -70
- package/.claude/commands/bmad/bmb/workflows/audit-workflow.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/convert-legacy.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/create-agent.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/create-module.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/create-workflow.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/edit-agent.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/edit-module.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/edit-workflow.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/module-brief.md +0 -15
- package/.claude/commands/bmad/bmb/workflows/redoc.md +0 -15
- package/.claude/commands/bmad/core/agents/bmad-master.md +0 -71
- package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
- package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
- package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -15
- package/.claude/commands/bmad/core/workflows/party-mode.md +0 -15
- package/.claude/settings.local.json +0 -22
- package/bmad/_cfg/agent-manifest.csv +0 -5
- package/bmad/_cfg/agents/bmb-bmad-builder.customize.yaml +0 -42
- package/bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
- package/bmad/_cfg/files-manifest.csv +0 -82
- package/bmad/_cfg/ides/claude-code.yaml +0 -6
- package/bmad/_cfg/manifest.yaml +0 -11
- package/bmad/_cfg/task-manifest.csv +0 -13
- package/bmad/_cfg/tool-manifest.csv +0 -4
- package/bmad/_cfg/workflow-manifest.csv +0 -17
- package/bmad/bmb/README.md +0 -194
- package/bmad/bmb/agents/bmad-builder.md +0 -70
- package/bmad/bmb/config.yaml +0 -14
- package/bmad/bmb/workflows/audit-workflow/checklist.md +0 -143
- package/bmad/bmb/workflows/audit-workflow/instructions.md +0 -341
- package/bmad/bmb/workflows/audit-workflow/template.md +0 -118
- package/bmad/bmb/workflows/audit-workflow/workflow.yaml +0 -23
- package/bmad/bmb/workflows/convert-legacy/README.md +0 -262
- package/bmad/bmb/workflows/convert-legacy/checklist.md +0 -205
- package/bmad/bmb/workflows/convert-legacy/instructions.md +0 -377
- package/bmad/bmb/workflows/convert-legacy/workflow.yaml +0 -32
- package/bmad/bmb/workflows/create-agent/README.md +0 -203
- package/bmad/bmb/workflows/create-agent/agent-architecture.md +0 -419
- package/bmad/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
- package/bmad/bmb/workflows/create-agent/agent-types.md +0 -292
- package/bmad/bmb/workflows/create-agent/brainstorm-context.md +0 -174
- package/bmad/bmb/workflows/create-agent/checklist.md +0 -62
- package/bmad/bmb/workflows/create-agent/communication-styles.md +0 -202
- package/bmad/bmb/workflows/create-agent/instructions.md +0 -459
- package/bmad/bmb/workflows/create-agent/workflow.yaml +0 -37
- package/bmad/bmb/workflows/create-module/README.md +0 -229
- package/bmad/bmb/workflows/create-module/brainstorm-context.md +0 -137
- package/bmad/bmb/workflows/create-module/checklist.md +0 -244
- package/bmad/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
- package/bmad/bmb/workflows/create-module/installer-templates/installer.js +0 -231
- package/bmad/bmb/workflows/create-module/instructions.md +0 -581
- package/bmad/bmb/workflows/create-module/module-structure.md +0 -400
- package/bmad/bmb/workflows/create-module/workflow.yaml +0 -42
- package/bmad/bmb/workflows/create-workflow/README.md +0 -277
- package/bmad/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
- package/bmad/bmb/workflows/create-workflow/checklist.md +0 -94
- package/bmad/bmb/workflows/create-workflow/instructions.md +0 -724
- package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1308
- package/bmad/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
- package/bmad/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
- package/bmad/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
- package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -39
- package/bmad/bmb/workflows/create-workflow/workflow.yaml +0 -40
- package/bmad/bmb/workflows/edit-agent/README.md +0 -112
- package/bmad/bmb/workflows/edit-agent/checklist.md +0 -112
- package/bmad/bmb/workflows/edit-agent/instructions.md +0 -290
- package/bmad/bmb/workflows/edit-agent/workflow.yaml +0 -33
- package/bmad/bmb/workflows/edit-module/README.md +0 -187
- package/bmad/bmb/workflows/edit-module/checklist.md +0 -165
- package/bmad/bmb/workflows/edit-module/instructions.md +0 -339
- package/bmad/bmb/workflows/edit-module/workflow.yaml +0 -34
- package/bmad/bmb/workflows/edit-workflow/README.md +0 -119
- package/bmad/bmb/workflows/edit-workflow/checklist.md +0 -70
- package/bmad/bmb/workflows/edit-workflow/instructions.md +0 -342
- package/bmad/bmb/workflows/edit-workflow/workflow.yaml +0 -27
- package/bmad/bmb/workflows/module-brief/README.md +0 -264
- package/bmad/bmb/workflows/module-brief/checklist.md +0 -116
- package/bmad/bmb/workflows/module-brief/instructions.md +0 -267
- package/bmad/bmb/workflows/module-brief/template.md +0 -275
- package/bmad/bmb/workflows/module-brief/workflow.yaml +0 -29
- package/bmad/bmb/workflows/redoc/README.md +0 -87
- package/bmad/bmb/workflows/redoc/checklist.md +0 -99
- package/bmad/bmb/workflows/redoc/instructions.md +0 -265
- package/bmad/bmb/workflows/redoc/workflow.yaml +0 -32
- package/bmad/core/agents/bmad-master.md +0 -71
- package/bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -122
- package/bmad/core/config.yaml +0 -9
- package/bmad/core/tasks/adv-elicit-methods.csv +0 -39
- package/bmad/core/tasks/adv-elicit.xml +0 -104
- package/bmad/core/tasks/index-docs.xml +0 -65
- package/bmad/core/tasks/validate-workflow.xml +0 -89
- package/bmad/core/tasks/workflow.xml +0 -156
- package/bmad/core/tools/shard-doc.xml +0 -65
- package/bmad/core/workflows/brainstorming/README.md +0 -271
- package/bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
- package/bmad/core/workflows/brainstorming/instructions.md +0 -314
- package/bmad/core/workflows/brainstorming/template.md +0 -102
- package/bmad/core/workflows/brainstorming/workflow.yaml +0 -43
- package/bmad/core/workflows/party-mode/instructions.md +0 -188
- package/bmad/core/workflows/party-mode/workflow.yaml +0 -23
- package/bmad/docs/claude-code-instructions.md +0 -25
- 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/bmgd/workflows/4-production/dev-story/AUDIT-REPORT.md +0 -367
- package/src/modules/bmm/sub-modules/claude-code/README.md +0 -87
- package/src/modules/bmm/sub-modules/claude-code/config.yaml +0 -5
- package/src/modules/bmm/sub-modules/claude-code/injections.yaml +0 -242
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/api-documenter.md +0 -102
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md +0 -82
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md +0 -101
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md +0 -84
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md +0 -83
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md +0 -81
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md +0 -61
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md +0 -168
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md +0 -115
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md +0 -123
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md +0 -72
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md +0 -51
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md +0 -106
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md +0 -102
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md +0 -68
- package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md +0 -108
- package/src/modules/bmm/tasks/daily-standup.xml +0 -85
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +0 -200
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +0 -451
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -189
- package/src/modules/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +0 -367
- package/src/modules/bmm/workflows/workflow-status/sample-level-3-workflow.yaml +0 -49
- package/test/fixtures/agent-schema/invalid/persona/principles-as-string.agent.yaml +0 -23
- package/web-bundles/bmm/agents/analyst.xml +0 -5028
- package/web-bundles/bmm/agents/architect.xml +0 -2047
- package/web-bundles/bmm/agents/dev.xml +0 -68
- package/web-bundles/bmm/agents/pm.xml +0 -3808
- package/web-bundles/bmm/agents/sm.xml +0 -77
- package/web-bundles/bmm/agents/tea.xml +0 -66
- package/web-bundles/bmm/agents/tech-writer.xml +0 -84
- package/web-bundles/bmm/agents/ux-designer.xml +0 -2018
- package/web-bundles/bmm/teams/team-fullstack.xml +0 -12039
|
@@ -4,7 +4,7 @@ description: "Identify disruption opportunities and architect business model inn
|
|
|
4
4
|
author: "BMad"
|
|
5
5
|
|
|
6
6
|
# Critical variables load from config_source
|
|
7
|
-
config_source: "{project-root}/
|
|
7
|
+
config_source: "{project-root}/{bmad_folder}/cis/config.yaml"
|
|
8
8
|
output_folder: "{config_source}:output_folder"
|
|
9
9
|
user_name: "{config_source}:user_name"
|
|
10
10
|
communication_language: "{config_source}:communication_language"
|
|
@@ -19,7 +19,7 @@ recommended_inputs:
|
|
|
19
19
|
# Example: data="{path}/industry-analysis.md" provides market context
|
|
20
20
|
|
|
21
21
|
# Module path and component files
|
|
22
|
-
installed_path: "{project-root}/
|
|
22
|
+
installed_path: "{project-root}/{bmad_folder}/cis/workflows/innovation-strategy"
|
|
23
23
|
template: "{installed_path}/template.md"
|
|
24
24
|
instructions: "{installed_path}/instructions.md"
|
|
25
25
|
|
|
@@ -35,9 +35,9 @@ web_bundle:
|
|
|
35
35
|
name: "innovation-strategy"
|
|
36
36
|
description: "Identify disruption opportunities and architect business model innovation. This workflow guides strategic analysis of markets, competitive dynamics, and business model innovation to uncover sustainable competitive advantages and breakthrough opportunities."
|
|
37
37
|
author: "BMad"
|
|
38
|
-
instructions: "
|
|
39
|
-
template: "
|
|
38
|
+
instructions: "{bmad_folder}/cis/workflows/innovation-strategy/instructions.md"
|
|
39
|
+
template: "{bmad_folder}/cis/workflows/innovation-strategy/template.md"
|
|
40
40
|
web_bundle_files:
|
|
41
|
-
- "
|
|
42
|
-
- "
|
|
43
|
-
- "
|
|
41
|
+
- "{bmad_folder}/cis/workflows/innovation-strategy/instructions.md"
|
|
42
|
+
- "{bmad_folder}/cis/workflows/innovation-strategy/template.md"
|
|
43
|
+
- "{bmad_folder}/cis/workflows/innovation-strategy/innovation-frameworks.csv"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Problem Solving Workflow Instructions
|
|
2
2
|
|
|
3
|
-
<critical>The workflow execution engine is governed by: {project_root}/
|
|
4
|
-
<critical>You MUST have already loaded and processed: {project_root}/
|
|
3
|
+
<critical>The workflow execution engine is governed by: {project_root}/{bmad_folder}/core/tasks/workflow.xml</critical>
|
|
4
|
+
<critical>You MUST have already loaded and processed: {project_root}/{bmad_folder}/cis/workflows/problem-solving/workflow.yaml</critical>
|
|
5
5
|
<critical>Load and understand solving methods from: {solving_methods}</critical>
|
|
6
6
|
|
|
7
7
|
<facilitation-principles>
|
|
@@ -4,7 +4,7 @@ description: "Apply systematic problem-solving methodologies to crack complex ch
|
|
|
4
4
|
author: "BMad"
|
|
5
5
|
|
|
6
6
|
# Critical variables load from config_source
|
|
7
|
-
config_source: "{project-root}/
|
|
7
|
+
config_source: "{project-root}/{bmad_folder}/cis/config.yaml"
|
|
8
8
|
output_folder: "{config_source}:output_folder"
|
|
9
9
|
user_name: "{config_source}:user_name"
|
|
10
10
|
communication_language: "{config_source}:communication_language"
|
|
@@ -19,7 +19,7 @@ recommended_inputs:
|
|
|
19
19
|
# Example: data="{path}/problem-brief.md" provides context
|
|
20
20
|
|
|
21
21
|
# Module path and component files
|
|
22
|
-
installed_path: "{project-root}/
|
|
22
|
+
installed_path: "{project-root}/{bmad_folder}/cis/workflows/problem-solving"
|
|
23
23
|
template: "{installed_path}/template.md"
|
|
24
24
|
instructions: "{installed_path}/instructions.md"
|
|
25
25
|
|
|
@@ -35,9 +35,9 @@ web_bundle:
|
|
|
35
35
|
name: "problem-solving"
|
|
36
36
|
description: "Apply systematic problem-solving methodologies to crack complex challenges. This workflow guides through problem diagnosis, root cause analysis, creative solution generation, evaluation, and implementation planning using proven frameworks."
|
|
37
37
|
author: "BMad"
|
|
38
|
-
instructions: "
|
|
39
|
-
template: "
|
|
38
|
+
instructions: "{bmad_folder}/cis/workflows/problem-solving/instructions.md"
|
|
39
|
+
template: "{bmad_folder}/cis/workflows/problem-solving/template.md"
|
|
40
40
|
web_bundle_files:
|
|
41
|
-
- "
|
|
42
|
-
- "
|
|
43
|
-
- "
|
|
41
|
+
- "{bmad_folder}/cis/workflows/problem-solving/instructions.md"
|
|
42
|
+
- "{bmad_folder}/cis/workflows/problem-solving/template.md"
|
|
43
|
+
- "{bmad_folder}/cis/workflows/problem-solving/solving-methods.csv"
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
## Workflow
|
|
4
4
|
|
|
5
5
|
<workflow>
|
|
6
|
-
<critical>The workflow execution engine is governed by: {project_root}/
|
|
7
|
-
<critical>You MUST have already loaded and processed: {project_root}/
|
|
6
|
+
<critical>The workflow execution engine is governed by: {project_root}/{bmad_folder}/core/tasks/workflow.xml</critical>
|
|
7
|
+
<critical>You MUST have already loaded and processed: {project_root}/{bmad_folder}/cis/workflows/storytelling/workflow.yaml</critical>
|
|
8
8
|
<critical>Communicate all responses in {communication_language}</critical>
|
|
9
9
|
|
|
10
10
|
<step n="1" goal="Story Context Setup">
|
|
@@ -4,7 +4,7 @@ description: "Craft compelling narratives using proven story frameworks and tech
|
|
|
4
4
|
author: "BMad"
|
|
5
5
|
|
|
6
6
|
# Critical variables load from config_source
|
|
7
|
-
config_source: "{project-root}/
|
|
7
|
+
config_source: "{project-root}/{bmad_folder}/cis/config.yaml"
|
|
8
8
|
output_folder: "{config_source}:output_folder"
|
|
9
9
|
user_name: "{config_source}:user_name"
|
|
10
10
|
communication_language: "{config_source}:communication_language"
|
|
@@ -19,7 +19,7 @@ recommended_inputs:
|
|
|
19
19
|
# Example: data="{path}/brand-info.md" provides brand context
|
|
20
20
|
|
|
21
21
|
# Module path and component files
|
|
22
|
-
installed_path: "{project-root}/
|
|
22
|
+
installed_path: "{project-root}/{bmad_folder}/cis/workflows/storytelling"
|
|
23
23
|
template: "{installed_path}/template.md"
|
|
24
24
|
instructions: "{installed_path}/instructions.md"
|
|
25
25
|
|
|
@@ -35,9 +35,9 @@ web_bundle:
|
|
|
35
35
|
name: "storytelling"
|
|
36
36
|
description: "Craft compelling narratives using proven story frameworks and techniques. This workflow guides users through structured narrative development, applying appropriate story frameworks to create emotionally resonant and engaging stories for any purpose."
|
|
37
37
|
author: "BMad"
|
|
38
|
-
instructions: "
|
|
39
|
-
template: "
|
|
38
|
+
instructions: "{bmad_folder}/cis/workflows/storytelling/instructions.md"
|
|
39
|
+
template: "{bmad_folder}/cis/workflows/storytelling/template.md"
|
|
40
40
|
web_bundle_files:
|
|
41
|
-
- "
|
|
42
|
-
- "
|
|
43
|
-
- "
|
|
41
|
+
- "{bmad_folder}/cis/workflows/storytelling/instructions.md"
|
|
42
|
+
- "{bmad_folder}/cis/workflows/storytelling/template.md"
|
|
43
|
+
- "{bmad_folder}/cis/workflows/storytelling/story-types.csv"
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<activation critical="MANDATORY">
|
|
2
2
|
<init>
|
|
3
3
|
<step n="1">Load persona from this current file containing this activation you are reading now</step>
|
|
4
|
-
<step n="2">Override with {project-root}/
|
|
4
|
+
<step n="2">Override with {project-root}/{bmad_folder}/_cfg/agents/{agent-filename} if exists (replace, not merge)</step>
|
|
5
5
|
<step n="3">Execute critical-actions section if present in current agent XML</step>
|
|
6
6
|
<step n="4">Show greeting + numbered list of ALL commands IN ORDER from current agent's cmds section</step>
|
|
7
7
|
<step n="5">CRITICAL HALT. AWAIT user input. NEVER continue without it.</step>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<handlers>
|
|
13
13
|
<handler type="run-workflow">
|
|
14
14
|
When command has: run-workflow="path/to/x.yaml" You MUST:
|
|
15
|
-
1. CRITICAL: Always LOAD {project-root}/
|
|
15
|
+
1. CRITICAL: Always LOAD {project-root}/{bmad_folder}/core/tasks/workflow.xml
|
|
16
16
|
2. READ its entire contents - the is the CORE OS for EXECUTING modules
|
|
17
17
|
3. Pass the yaml path as 'workflow-config' parameter to those instructions
|
|
18
18
|
4. Follow workflow.xml instructions EXACTLY as written
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
</handler>
|
|
21
21
|
<handler type="validate-workflow">
|
|
22
22
|
When command has: validate-workflow="path/to/workflow.yaml" You MUST:
|
|
23
|
-
1. You MUST LOAD the file at: {project-root}/
|
|
23
|
+
1. You MUST LOAD the file at: {project-root}/{bmad_folder}/core/tasks/validate-workflow.xml
|
|
24
24
|
2. READ its entire contents and EXECUTE all instructions in that file
|
|
25
25
|
3. Pass the workflow, and also check the workflow location for a checklist.md to pass as the checklist
|
|
26
26
|
4. The workflow should try to identify the file to validate based on checklist context or else you will ask the user to specify
|
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
<bundled-files critical="MANDATORY">
|
|
8
8
|
<access-method>
|
|
9
9
|
All dependencies are bundled within this XML file as <file> elements with CDATA content.
|
|
10
|
-
When you need to access a file path like "
|
|
11
|
-
1. Find the <file id="
|
|
10
|
+
When you need to access a file path like "{bmad_folder}/core/tasks/workflow.xml":
|
|
11
|
+
1. Find the <file id="{bmad_folder}/core/tasks/workflow.xml"> element in this document
|
|
12
12
|
2. Extract the content from within the CDATA section
|
|
13
13
|
3. Use that content as if you read it from the filesystem
|
|
14
14
|
</access-method>
|
|
15
15
|
<rules>
|
|
16
16
|
<rule>NEVER attempt to read files from filesystem - all files are bundled in this XML</rule>
|
|
17
|
-
<rule>File paths starting with "
|
|
17
|
+
<rule>File paths starting with "{bmad_folder}/" or "{project-root}/{bmad_folder}/" refer to <file id="..."> elements</rule>
|
|
18
18
|
<rule>When instructions reference a file path, locate the corresponding <file> element by matching the id attribute</rule>
|
|
19
19
|
<rule>YAML files are bundled with only their web_bundle section content (flattened to root level)</rule>
|
|
20
20
|
</rules>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<handlers>
|
|
26
26
|
<handler type="run-workflow">
|
|
27
27
|
When command has: run-workflow="path/to/x.yaml" You MUST:
|
|
28
|
-
1. CRITICAL: Locate <file id="
|
|
28
|
+
1. CRITICAL: Locate <file id="{bmad_folder}/core/tasks/workflow.xml"> in this XML bundle
|
|
29
29
|
2. Extract and READ its CDATA content - this is the CORE OS for EXECUTING workflows
|
|
30
30
|
3. Locate <file id="path/to/x.yaml"> for the workflow config
|
|
31
31
|
4. Pass the yaml content as 'workflow-config' parameter to workflow.xml instructions
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<critical>You must fully embody this agent's persona and follow all activation instructions, steps and rules exactly as specified. NEVER break character until given an exit command.</critical>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<step n="1">Load persona from this current agent file (already in context)</step>
|
|
2
2
|
<step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
|
|
3
|
-
- Load and read {project-root}/
|
|
3
|
+
- Load and read {project-root}/{bmad_folder}/{{module}}/config.yaml NOW
|
|
4
4
|
- Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
|
|
5
5
|
- VERIFY: If config not loaded, STOP and report error to user
|
|
6
6
|
- DO NOT PROCEED to step 3 until config is successfully loaded and variables stored</step>
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
{AGENT_SPECIFIC_STEPS}
|
|
9
9
|
<step n="{MENU_STEP}">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of
|
|
10
10
|
ALL menu items from menu section</step>
|
|
11
|
-
<step n="{HALT_STEP}">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or trigger
|
|
11
|
+
<step n="{HALT_STEP}">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command
|
|
12
|
+
match</step>
|
|
12
13
|
<step n="{INPUT_STEP}">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user
|
|
13
14
|
to clarify | No match → show "Not recognized"</step>
|
|
14
15
|
<step n="{EXECUTE_STEP}">When executing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<handler type="validate-workflow">
|
|
2
2
|
When command has: validate-workflow="path/to/workflow.yaml"
|
|
3
|
-
1. You MUST LOAD the file at: {project-root}/
|
|
3
|
+
1. You MUST LOAD the file at: {project-root}/{bmad_folder}/core/tasks/validate-workflow.xml
|
|
4
4
|
2. READ its entire contents and EXECUTE all instructions in that file
|
|
5
5
|
3. Pass the workflow, and also check the workflow yaml validation property to find and load the validation schema to pass as the checklist
|
|
6
6
|
4. The workflow should try to identify the file to validate based on checklist context or else you will ask the user to specify
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<handler type="workflow">
|
|
2
2
|
When menu item has: workflow="path/to/workflow.yaml"
|
|
3
|
-
1. CRITICAL: Always LOAD {project-root}/
|
|
3
|
+
1. CRITICAL: Always LOAD {project-root}/{bmad_folder}/core/tasks/workflow.xml
|
|
4
4
|
2. Read the complete file - this is the CORE OS for executing BMAD workflows
|
|
5
5
|
3. Pass the yaml path as 'workflow-config' parameter to those instructions
|
|
6
6
|
4. Execute workflow.xml instructions precisely following all steps
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
<bundled-files critical="MANDATORY">
|
|
11
11
|
<access-method>
|
|
12
12
|
All dependencies are bundled within this XML file as <file> elements with CDATA content.
|
|
13
|
-
When you need to access a file path like "
|
|
14
|
-
1. Find the <file id="
|
|
13
|
+
When you need to access a file path like "{bmad_folder}/core/tasks/workflow.xml":
|
|
14
|
+
1. Find the <file id="{bmad_folder}/core/tasks/workflow.xml"> element in this document
|
|
15
15
|
2. Extract the content from within the CDATA section
|
|
16
16
|
3. Use that content as if you read it from the filesystem
|
|
17
17
|
</access-method>
|
|
18
18
|
<rules>
|
|
19
19
|
<rule>NEVER attempt to read files from filesystem - all files are bundled in this XML</rule>
|
|
20
|
-
<rule>File paths starting with "
|
|
20
|
+
<rule>File paths starting with "{bmad_folder}/" refer to <file id="..."> elements</rule>
|
|
21
21
|
<rule>When instructions reference a file path, locate the corresponding <file> element by matching the id attribute</rule>
|
|
22
22
|
<rule>YAML files are bundled with only their web_bundle section content (flattened to root level)</rule>
|
|
23
23
|
</rules>
|
package/tools/cli/README.md
CHANGED
|
@@ -4,19 +4,37 @@ The BMad CLI handles installation and web bundling for the BMAD-METHOD framework
|
|
|
4
4
|
|
|
5
5
|
## Table of Contents
|
|
6
6
|
|
|
7
|
-
- [
|
|
8
|
-
- [
|
|
9
|
-
- [
|
|
10
|
-
- [
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
- [
|
|
15
|
-
|
|
16
|
-
- [
|
|
17
|
-
- [
|
|
18
|
-
- [
|
|
19
|
-
- [
|
|
7
|
+
- [BMad CLI Tool](#bmad-cli-tool)
|
|
8
|
+
- [Table of Contents](#table-of-contents)
|
|
9
|
+
- [Overview](#overview)
|
|
10
|
+
- [Commands](#commands)
|
|
11
|
+
- [Installation](#installation)
|
|
12
|
+
- [Bundling](#bundling)
|
|
13
|
+
- [Utilities](#utilities)
|
|
14
|
+
- [Installation System](#installation-system)
|
|
15
|
+
- [Installation Flow](#installation-flow)
|
|
16
|
+
- [IDE Support](#ide-support)
|
|
17
|
+
- [Custom Module Configuration](#custom-module-configuration)
|
|
18
|
+
- [Platform Specifics](#platform-specifics)
|
|
19
|
+
- [Manifest System](#manifest-system)
|
|
20
|
+
- [Advanced Features](#advanced-features)
|
|
21
|
+
- [Bundling System](#bundling-system)
|
|
22
|
+
- [Bundling Flow](#bundling-flow)
|
|
23
|
+
- [Agent Compilation](#agent-compilation)
|
|
24
|
+
- [Compilation Engine](#compilation-engine)
|
|
25
|
+
- [Fragment System](#fragment-system)
|
|
26
|
+
- [Input: Agent YAML](#input-agent-yaml)
|
|
27
|
+
- [Output: IDE (Markdown with XML)](#output-ide-markdown-with-xml)
|
|
28
|
+
- [Architecture](#architecture)
|
|
29
|
+
- [Directory Structure](#directory-structure)
|
|
30
|
+
- [Fragment Library](#fragment-library)
|
|
31
|
+
- [Key Differences: Installation vs Bundling](#key-differences-installation-vs-bundling)
|
|
32
|
+
- [Development Workflows](#development-workflows)
|
|
33
|
+
- [Testing Compilation](#testing-compilation)
|
|
34
|
+
- [Adding New Menu Handlers](#adding-new-menu-handlers)
|
|
35
|
+
- [Regenerating Manifests](#regenerating-manifests)
|
|
36
|
+
- [Related Documentation](#related-documentation)
|
|
37
|
+
- [Support](#support)
|
|
20
38
|
|
|
21
39
|
---
|
|
22
40
|
|
|
@@ -87,7 +105,7 @@ The installer is a multi-stage system that handles agent compilation, IDE integr
|
|
|
87
105
|
- Resolve module dependencies (4-pass system)
|
|
88
106
|
|
|
89
107
|
3. Install Core + Modules
|
|
90
|
-
- Copy files to {target}/
|
|
108
|
+
- Copy files to {target}/{bmad_folder}/
|
|
91
109
|
- Compile agents: YAML → Markdown/XML (forWebBundle: false)
|
|
92
110
|
- Merge customize.yaml files if they exist
|
|
93
111
|
- Inject activation blocks based on agent capabilities
|
|
@@ -113,7 +131,7 @@ The installer is a multi-stage system that handles agent compilation, IDE integr
|
|
|
113
131
|
|
|
114
132
|
```
|
|
115
133
|
{target}/
|
|
116
|
-
├──
|
|
134
|
+
├── {bmad_folder}/
|
|
117
135
|
│ ├── core/ # Always installed
|
|
118
136
|
│ ├── {module}/ # Selected modules
|
|
119
137
|
│ │ ├── agents/ # Compiled .md files
|
|
@@ -220,7 +238,7 @@ Platform specifics are **IDE+module combination hooks** that execute custom logi
|
|
|
220
238
|
|
|
221
239
|
### Manifest System
|
|
222
240
|
|
|
223
|
-
The installer generates **5 manifest files** in `{target}/
|
|
241
|
+
The installer generates **5 manifest files** in `{target}/{bmad_folder}/_cfg/`:
|
|
224
242
|
|
|
225
243
|
**1. Installation Manifest** (`manifest.yaml`)
|
|
226
244
|
|
|
@@ -409,7 +427,7 @@ agent:
|
|
|
409
427
|
identity: 'You are an experienced PM...'
|
|
410
428
|
menu:
|
|
411
429
|
- trigger: '*create-brief'
|
|
412
|
-
workflow: '{project-root}/
|
|
430
|
+
workflow: '{project-root}/{bmad_folder}/bmm/workflows/.../workflow.yaml'
|
|
413
431
|
```
|
|
414
432
|
|
|
415
433
|
### Output: IDE (Markdown with XML)
|
|
@@ -422,7 +440,7 @@ agent:
|
|
|
422
440
|
```xml
|
|
423
441
|
<agent id="..." name="PM">
|
|
424
442
|
<activation critical="MANDATORY">
|
|
425
|
-
<step n="2">Load {project-root}/
|
|
443
|
+
<step n="2">Load {project-root}/{bmad_folder}/bmm/config.yaml at runtime</step>
|
|
426
444
|
...
|
|
427
445
|
</activation>
|
|
428
446
|
<persona>...</persona>
|
|
@@ -514,20 +532,20 @@ src/utility/models/fragments/
|
|
|
514
532
|
|
|
515
533
|
## Key Differences: Installation vs Bundling
|
|
516
534
|
|
|
517
|
-
| Aspect | Installation (IDE)
|
|
518
|
-
| ----------------------- |
|
|
519
|
-
| **Trigger** | `npm run install:bmad`
|
|
520
|
-
| **Entry Point** | `commands/install.js`
|
|
521
|
-
| **Compiler Flag** | `forWebBundle: false`
|
|
522
|
-
| **Output Format** | Markdown `.md`
|
|
523
|
-
| **Output Location** | `{target}/
|
|
524
|
-
| **Customization** | Merges `customize.yaml`
|
|
525
|
-
| **Dependencies** | Referenced by path
|
|
526
|
-
| **Activation Fragment** | `activation-steps.xml`
|
|
527
|
-
| **Filesystem Access** | Required
|
|
528
|
-
| **Build Metadata** | Included (hash)
|
|
529
|
-
| **Path Format** | `{project-root}` placeholders
|
|
530
|
-
| **Use Case** | Local IDE development
|
|
535
|
+
| Aspect | Installation (IDE) | Bundling (Web) |
|
|
536
|
+
| ----------------------- | ------------------------------------ | --------------------------------- |
|
|
537
|
+
| **Trigger** | `npm run install:bmad` | `npm run bundle` |
|
|
538
|
+
| **Entry Point** | `commands/install.js` | `bundlers/bundle-web.js` |
|
|
539
|
+
| **Compiler Flag** | `forWebBundle: false` | `forWebBundle: true` |
|
|
540
|
+
| **Output Format** | Markdown `.md` | Standalone XML `.xml` |
|
|
541
|
+
| **Output Location** | `{target}/{bmad_folder}/` + IDE dirs | `web-bundles/` |
|
|
542
|
+
| **Customization** | Merges `customize.yaml` | Base agents only |
|
|
543
|
+
| **Dependencies** | Referenced by path | Bundled inline (CDATA) |
|
|
544
|
+
| **Activation Fragment** | `activation-steps.xml` | `web-bundle-activation-steps.xml` |
|
|
545
|
+
| **Filesystem Access** | Required | Not needed |
|
|
546
|
+
| **Build Metadata** | Included (hash) | Excluded |
|
|
547
|
+
| **Path Format** | `{project-root}` placeholders | Stripped, wrapped as `<file>` |
|
|
548
|
+
| **Use Case** | Local IDE development | Web deployment |
|
|
531
549
|
|
|
532
550
|
**Activation Differences**:
|
|
533
551
|
|
|
@@ -205,6 +205,18 @@ class WebBundler {
|
|
|
205
205
|
this.stats.warnings.push({ agent: agentName, warnings: dependencyWarnings });
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
+
// Check for module's default-party.csv and include it as agent manifest
|
|
209
|
+
const defaultPartyPath = path.join(this.modulesPath, moduleName, 'teams', 'default-party.csv');
|
|
210
|
+
if (await fs.pathExists(defaultPartyPath)) {
|
|
211
|
+
const partyContent = await fs.readFile(defaultPartyPath, 'utf8');
|
|
212
|
+
// Process any placeholders in the CSV content
|
|
213
|
+
const processedPartyContent = this.processProjectRootReferences(partyContent);
|
|
214
|
+
// Wrap as text to preserve raw CSV format in CDATA
|
|
215
|
+
const wrappedParty = this.wrapContentInXml(processedPartyContent, 'bmad/_cfg/agent-manifest.csv', 'text');
|
|
216
|
+
dependencies.set('bmad/_cfg/agent-manifest.csv', wrappedParty);
|
|
217
|
+
console.log(chalk.gray(` + Added party manifest from module default-party.csv`));
|
|
218
|
+
}
|
|
219
|
+
|
|
208
220
|
// Remove commands for skipped workflows from agent XML
|
|
209
221
|
if (skippedWorkflows.length > 0) {
|
|
210
222
|
agentXml = this.removeSkippedWorkflowCommands(agentXml, skippedWorkflows);
|
|
@@ -260,6 +272,24 @@ class WebBundler {
|
|
|
260
272
|
const allAgentXmls = [];
|
|
261
273
|
const warnings = [];
|
|
262
274
|
|
|
275
|
+
// Check if team has a party CSV file (agent manifest)
|
|
276
|
+
const hasPartyFile = teamConfig.party && teamConfig.party.endsWith('.csv');
|
|
277
|
+
if (hasPartyFile) {
|
|
278
|
+
// Load the party CSV and add it as bmad/_cfg/agent-manifest.csv
|
|
279
|
+
const partyPath = path.join(path.dirname(teamPath), teamConfig.party.replace(/^\.\//, ''));
|
|
280
|
+
if (await fs.pathExists(partyPath)) {
|
|
281
|
+
const partyContent = await fs.readFile(partyPath, 'utf8');
|
|
282
|
+
// Process any placeholders in the CSV content
|
|
283
|
+
const processedPartyContent = this.processProjectRootReferences(partyContent);
|
|
284
|
+
// Wrap as text/csv to preserve raw CSV format in CDATA
|
|
285
|
+
const wrappedParty = this.wrapContentInXml(processedPartyContent, 'bmad/_cfg/agent-manifest.csv', 'text');
|
|
286
|
+
dependencies.set('bmad/_cfg/agent-manifest.csv', wrappedParty);
|
|
287
|
+
console.log(chalk.gray(` + Added agent manifest from: ${teamConfig.party}`));
|
|
288
|
+
} else {
|
|
289
|
+
console.log(chalk.yellow(` ⚠ Party file not found: ${partyPath}`));
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
263
293
|
// 1. First, always add the bmad-web-orchestrator (XML file only, no transformation needed)
|
|
264
294
|
const orchestratorXmlPath = path.join(this.sourceDir, 'core', 'agents', 'bmad-web-orchestrator.agent.xml');
|
|
265
295
|
|
|
@@ -476,8 +506,9 @@ class WebBundler {
|
|
|
476
506
|
}
|
|
477
507
|
|
|
478
508
|
// Parse paths to extract module and workflow location
|
|
479
|
-
|
|
480
|
-
const
|
|
509
|
+
// Support both {project-root}/bmad/... and {project-root}/{bmad_folder}/... patterns
|
|
510
|
+
const sourceMatch = sourceWorkflowPath.match(/\{project-root\}\/(?:\{bmad_folder\}|bmad)\/([^/]+)\/workflows\/(.+)/);
|
|
511
|
+
const installMatch = installWorkflowPath.match(/\{project-root\}\/(?:\{bmad_folder\}|bmad)\/([^/]+)\/workflows\/(.+)/);
|
|
481
512
|
|
|
482
513
|
if (!sourceMatch || !installMatch) {
|
|
483
514
|
continue;
|
|
@@ -528,8 +559,9 @@ class WebBundler {
|
|
|
528
559
|
let yamlContent = await fs.readFile(workflowYamlPath, 'utf8');
|
|
529
560
|
|
|
530
561
|
// Replace config_source with new module reference
|
|
531
|
-
|
|
532
|
-
const
|
|
562
|
+
// Support both old format (bmad) and new format ({bmad_folder})
|
|
563
|
+
const configSourcePattern = /config_source:\s*["']?\{project-root\}\/(?:\{bmad_folder\}|bmad)\/[^/]+\/config\.yaml["']?/g;
|
|
564
|
+
const newConfigSource = `config_source: "{project-root}/{bmad_folder}/${newModuleName}/config.yaml"`;
|
|
533
565
|
|
|
534
566
|
const updatedYaml = yamlContent.replaceAll(configSourcePattern, newConfigSource);
|
|
535
567
|
await fs.writeFile(workflowYamlPath, updatedYaml, 'utf8');
|
|
@@ -651,7 +683,8 @@ class WebBundler {
|
|
|
651
683
|
/system-prompts="([^"]+)"/g,
|
|
652
684
|
/tools="([^"]+)"/g,
|
|
653
685
|
/knowledge="([^"]+)"/g,
|
|
654
|
-
/{project-root}\/([^"'\s<>]+)/g,
|
|
686
|
+
/{project-root}\/([^"'\s<>]+)/g, // Legacy {project-root} paths
|
|
687
|
+
/\bbmad\/([^"'\s<>]+)/g, // Direct bmad/ paths (after {bmad_folder} replacement)
|
|
655
688
|
];
|
|
656
689
|
|
|
657
690
|
for (const pattern of patterns) {
|
|
@@ -660,9 +693,16 @@ class WebBundler {
|
|
|
660
693
|
let filePath = match[1];
|
|
661
694
|
// Remove {project-root} prefix if present
|
|
662
695
|
filePath = filePath.replace(/^{project-root}\//, '');
|
|
696
|
+
// Remove {bmad_folder} prefix if present (should be rare, mostly replaced already)
|
|
697
|
+
filePath = filePath.replace(/^{bmad_folder}\//, 'bmad/');
|
|
698
|
+
|
|
699
|
+
// For bmad/ pattern, prepend 'bmad/' since it was captured without it
|
|
700
|
+
if (pattern.source.includes(String.raw`\bbmad\/`)) {
|
|
701
|
+
filePath = 'bmad/' + filePath;
|
|
702
|
+
}
|
|
663
703
|
|
|
664
704
|
// Skip obvious placeholder/example paths
|
|
665
|
-
if (filePath && !filePath.includes('path/to/') && !filePath.includes('example')) {
|
|
705
|
+
if (filePath && !filePath.includes('path/to/') && !filePath.includes('example') && !filePath.includes('...')) {
|
|
666
706
|
refs.add(filePath);
|
|
667
707
|
}
|
|
668
708
|
}
|
|
@@ -680,6 +720,8 @@ class WebBundler {
|
|
|
680
720
|
while ((match = pattern.exec(xml)) !== null) {
|
|
681
721
|
let workflowPath = match[1];
|
|
682
722
|
workflowPath = workflowPath.replace(/^{project-root}\//, '');
|
|
723
|
+
// Remove {bmad_folder} prefix if present and replace with bmad
|
|
724
|
+
workflowPath = workflowPath.replace(/^{bmad_folder}\//, 'bmad/');
|
|
683
725
|
|
|
684
726
|
// Skip obvious placeholder/example paths
|
|
685
727
|
if (workflowPath && workflowPath.endsWith('.yaml') && !workflowPath.includes('path/to/') && !workflowPath.includes('example')) {
|
|
@@ -725,6 +767,11 @@ class WebBundler {
|
|
|
725
767
|
* Process a file dependency recursively
|
|
726
768
|
*/
|
|
727
769
|
async processFileDependency(filePath, dependencies, processed, moduleName, warnings = []) {
|
|
770
|
+
// Skip workflow YAML files - they're handled by processWorkflowDependency
|
|
771
|
+
if (filePath.includes('/workflow') && filePath.endsWith('workflow.yaml')) {
|
|
772
|
+
return;
|
|
773
|
+
}
|
|
774
|
+
|
|
728
775
|
// Skip if already processed
|
|
729
776
|
if (processed.has(filePath)) {
|
|
730
777
|
return;
|
|
@@ -766,7 +813,8 @@ class WebBundler {
|
|
|
766
813
|
const deps = depMatch[1].match(/['"]([^'"]+)['"]/g);
|
|
767
814
|
if (deps) {
|
|
768
815
|
for (const dep of deps) {
|
|
769
|
-
|
|
816
|
+
let depPath = dep.replaceAll(/['"]/g, '').replace(/^{project-root}\//, '');
|
|
817
|
+
depPath = depPath.replace(/^{bmad_folder}\//, 'bmad/');
|
|
770
818
|
if (depPath && !processed.has(depPath)) {
|
|
771
819
|
await this.processFileDependency(depPath, dependencies, processed, moduleName, warnings);
|
|
772
820
|
}
|
|
@@ -779,7 +827,8 @@ class WebBundler {
|
|
|
779
827
|
const templates = templateMatch[1].match(/['"]([^'"]+)['"]/g);
|
|
780
828
|
if (templates) {
|
|
781
829
|
for (const template of templates) {
|
|
782
|
-
|
|
830
|
+
let templatePath = template.replaceAll(/['"]/g, '').replace(/^{project-root}\//, '');
|
|
831
|
+
templatePath = templatePath.replace(/^{bmad_folder}\//, 'bmad/');
|
|
783
832
|
if (templatePath && !processed.has(templatePath)) {
|
|
784
833
|
await this.processFileDependency(templatePath, dependencies, processed, moduleName, warnings);
|
|
785
834
|
}
|
|
@@ -967,8 +1016,13 @@ class WebBundler {
|
|
|
967
1016
|
bundleYamlContent = yamlContent;
|
|
968
1017
|
}
|
|
969
1018
|
|
|
1019
|
+
// Process {project-root} and {bmad_folder} references in the YAML content
|
|
1020
|
+
bundleYamlContent = this.processProjectRootReferences(bundleYamlContent);
|
|
1021
|
+
|
|
970
1022
|
// Include the YAML file with only web_bundle content, wrapped in XML
|
|
971
|
-
|
|
1023
|
+
// Process the workflow path to create a clean ID
|
|
1024
|
+
let yamlId = workflowPath.replace(/^{project-root}\//, '');
|
|
1025
|
+
yamlId = yamlId.replace(/^{bmad_folder}\//, 'bmad/');
|
|
972
1026
|
const wrappedYaml = this.wrapContentInXml(bundleYamlContent, yamlId, 'yaml');
|
|
973
1027
|
dependencies.set(yamlId, wrappedYaml);
|
|
974
1028
|
|
|
@@ -985,7 +1039,11 @@ class WebBundler {
|
|
|
985
1039
|
const bundleFiles = workflowConfig.web_bundle.web_bundle_files;
|
|
986
1040
|
|
|
987
1041
|
for (const bundleFilePath of bundleFiles) {
|
|
988
|
-
if
|
|
1042
|
+
// Process the file path to create a clean ID for checking if already processed
|
|
1043
|
+
let cleanFilePath = bundleFilePath.replace(/^{project-root}\//, '');
|
|
1044
|
+
cleanFilePath = cleanFilePath.replace(/^{bmad_folder}\//, 'bmad/');
|
|
1045
|
+
|
|
1046
|
+
if (processed.has(cleanFilePath)) {
|
|
989
1047
|
continue;
|
|
990
1048
|
}
|
|
991
1049
|
|
|
@@ -1002,7 +1060,7 @@ class WebBundler {
|
|
|
1002
1060
|
await this.processWorkflowDependency(bundleFilePath, dependencies, processed, moduleName, warnings);
|
|
1003
1061
|
} else {
|
|
1004
1062
|
// Regular file - process normally
|
|
1005
|
-
processed.add(
|
|
1063
|
+
processed.add(cleanFilePath);
|
|
1006
1064
|
|
|
1007
1065
|
// Read the file content
|
|
1008
1066
|
let fileContent = await fs.readFile(bundleActualPath, 'utf8');
|
|
@@ -1012,8 +1070,8 @@ class WebBundler {
|
|
|
1012
1070
|
fileContent = this.processProjectRootReferences(fileContent);
|
|
1013
1071
|
|
|
1014
1072
|
// Wrap in XML with proper escaping
|
|
1015
|
-
const wrappedContent = this.wrapContentInXml(fileContent,
|
|
1016
|
-
dependencies.set(
|
|
1073
|
+
const wrappedContent = this.wrapContentInXml(fileContent, cleanFilePath, fileExt);
|
|
1074
|
+
dependencies.set(cleanFilePath, wrappedContent);
|
|
1017
1075
|
}
|
|
1018
1076
|
}
|
|
1019
1077
|
}
|
|
@@ -1039,7 +1097,9 @@ class WebBundler {
|
|
|
1039
1097
|
return;
|
|
1040
1098
|
}
|
|
1041
1099
|
|
|
1042
|
-
|
|
1100
|
+
let fileContent = await fs.readFile(actualPath, 'utf8');
|
|
1101
|
+
// Process {project-root} and {bmad_folder} references
|
|
1102
|
+
fileContent = this.processProjectRootReferences(fileContent);
|
|
1043
1103
|
const wrappedContent = this.wrapContentInXml(fileContent, coreWorkflowPath, 'xml');
|
|
1044
1104
|
dependencies.set(coreWorkflowPath, wrappedContent);
|
|
1045
1105
|
}
|
|
@@ -1048,7 +1108,7 @@ class WebBundler {
|
|
|
1048
1108
|
* Include advanced elicitation files
|
|
1049
1109
|
*/
|
|
1050
1110
|
async includeAdvancedElicitationFiles(dependencies, processed, moduleName, warnings = []) {
|
|
1051
|
-
const elicitationFiles = ['bmad/core/tasks/
|
|
1111
|
+
const elicitationFiles = ['bmad/core/tasks/advanced-elicitation.xml', 'bmad/core/tasks/advanced-elicitation-methods.csv'];
|
|
1052
1112
|
|
|
1053
1113
|
for (const filePath of elicitationFiles) {
|
|
1054
1114
|
if (processed.has(filePath)) {
|
|
@@ -1063,7 +1123,9 @@ class WebBundler {
|
|
|
1063
1123
|
continue;
|
|
1064
1124
|
}
|
|
1065
1125
|
|
|
1066
|
-
|
|
1126
|
+
let fileContent = await fs.readFile(actualPath, 'utf8');
|
|
1127
|
+
// Process {project-root} and {bmad_folder} references
|
|
1128
|
+
fileContent = this.processProjectRootReferences(fileContent);
|
|
1067
1129
|
const fileExt = path.extname(actualPath).toLowerCase().replace('.', '');
|
|
1068
1130
|
const wrappedContent = this.wrapContentInXml(fileContent, filePath, fileExt);
|
|
1069
1131
|
dependencies.set(filePath, wrappedContent);
|
|
@@ -1096,6 +1158,8 @@ class WebBundler {
|
|
|
1096
1158
|
async processWildcardDependency(pattern, dependencies, processed, moduleName, warnings = []) {
|
|
1097
1159
|
// Remove {project-root} prefix
|
|
1098
1160
|
pattern = pattern.replace(/^{project-root}\//, '');
|
|
1161
|
+
// Replace {bmad_folder} with bmad
|
|
1162
|
+
pattern = pattern.replace(/^{bmad_folder}\//, 'bmad/');
|
|
1099
1163
|
|
|
1100
1164
|
// Get directory and file pattern
|
|
1101
1165
|
const lastSlash = pattern.lastIndexOf('/');
|
|
@@ -1163,6 +1227,9 @@ class WebBundler {
|
|
|
1163
1227
|
resolveFilePath(filePath, moduleName) {
|
|
1164
1228
|
// Remove {project-root} prefix
|
|
1165
1229
|
filePath = filePath.replace(/^{project-root}\//, '');
|
|
1230
|
+
// Replace {bmad_folder} with bmad
|
|
1231
|
+
filePath = filePath.replace(/^{bmad_folder}\//, 'bmad/');
|
|
1232
|
+
filePath = filePath.replace(/^{bmad_folder}$/, 'bmad');
|
|
1166
1233
|
|
|
1167
1234
|
// Check temp directory first for _cfg files
|
|
1168
1235
|
if (filePath.startsWith('bmad/_cfg/')) {
|
|
@@ -1229,13 +1296,15 @@ class WebBundler {
|
|
|
1229
1296
|
}
|
|
1230
1297
|
|
|
1231
1298
|
/**
|
|
1232
|
-
* Process and remove {project-root} references
|
|
1299
|
+
* Process and remove {project-root} references and replace {bmad_folder} with bmad
|
|
1233
1300
|
*/
|
|
1234
1301
|
processProjectRootReferences(content) {
|
|
1235
1302
|
// Remove {project-root}/ prefix (with slash)
|
|
1236
1303
|
content = content.replaceAll('{project-root}/', '');
|
|
1237
1304
|
// Also remove {project-root} without slash
|
|
1238
1305
|
content = content.replaceAll('{project-root}', '');
|
|
1306
|
+
// Replace {bmad_folder} with bmad
|
|
1307
|
+
content = content.replaceAll('{bmad_folder}', 'bmad');
|
|
1239
1308
|
return content;
|
|
1240
1309
|
}
|
|
1241
1310
|
|
|
@@ -56,10 +56,7 @@ module.exports = {
|
|
|
56
56
|
// Check if installation succeeded
|
|
57
57
|
if (result && result.success) {
|
|
58
58
|
console.log(chalk.green('\n✨ Installation complete!'));
|
|
59
|
-
console.log(
|
|
60
|
-
chalk.cyan('BMAD Core and Selected Modules have been installed to:'),
|
|
61
|
-
chalk.bold(result.path || path.resolve(config.directory, 'bmad')),
|
|
62
|
-
);
|
|
59
|
+
console.log(chalk.cyan('BMAD Core and Selected Modules have been installed to:'), chalk.bold(result.path));
|
|
63
60
|
console.log(chalk.yellow('\nThank you for helping test the early release version of the new BMad Core and BMad Method!'));
|
|
64
61
|
console.log(chalk.cyan('Stable Beta coming soon - please read the full readme.md and linked documentation to get started!'));
|
|
65
62
|
process.exit(0);
|