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
|
@@ -18,6 +18,31 @@ class BaseIdeSetup {
|
|
|
18
18
|
this.configFile = null; // Override in subclasses when detection is file-based
|
|
19
19
|
this.detectionPaths = []; // Additional paths that indicate the IDE is configured
|
|
20
20
|
this.xmlHandler = new XmlHandler();
|
|
21
|
+
this.bmadFolderName = 'bmad'; // Default, can be overridden
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Set the bmad folder name for placeholder replacement
|
|
26
|
+
* @param {string} bmadFolderName - The bmad folder name
|
|
27
|
+
*/
|
|
28
|
+
setBmadFolderName(bmadFolderName) {
|
|
29
|
+
this.bmadFolderName = bmadFolderName;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Get the agent command activation header from the central template
|
|
34
|
+
* @returns {string} The activation header text (without XML tags)
|
|
35
|
+
*/
|
|
36
|
+
async getAgentCommandHeader() {
|
|
37
|
+
const headerPath = path.join(getSourcePath(), 'src', 'utility', 'models', 'agent-command-header.md');
|
|
38
|
+
try {
|
|
39
|
+
const content = await fs.readFile(headerPath, 'utf8');
|
|
40
|
+
// Strip the <critical> tags to get plain text
|
|
41
|
+
return content.replaceAll(/<critical>|<\/critical>/g, '').trim();
|
|
42
|
+
} catch {
|
|
43
|
+
// Fallback if file doesn't exist
|
|
44
|
+
return "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.";
|
|
45
|
+
}
|
|
21
46
|
}
|
|
22
47
|
|
|
23
48
|
/**
|
|
@@ -489,23 +514,52 @@ class BaseIdeSetup {
|
|
|
489
514
|
}
|
|
490
515
|
|
|
491
516
|
/**
|
|
492
|
-
* Write file with content
|
|
517
|
+
* Write file with content (replaces {bmad_folder} placeholder)
|
|
493
518
|
* @param {string} filePath - File path
|
|
494
519
|
* @param {string} content - File content
|
|
495
520
|
*/
|
|
496
521
|
async writeFile(filePath, content) {
|
|
522
|
+
// Replace {bmad_folder} placeholder if present
|
|
523
|
+
if (typeof content === 'string' && content.includes('{bmad_folder}')) {
|
|
524
|
+
content = content.replaceAll('{bmad_folder}', this.bmadFolderName);
|
|
525
|
+
}
|
|
497
526
|
await this.ensureDir(path.dirname(filePath));
|
|
498
527
|
await fs.writeFile(filePath, content, 'utf8');
|
|
499
528
|
}
|
|
500
529
|
|
|
501
530
|
/**
|
|
502
|
-
* Copy file from source to destination
|
|
531
|
+
* Copy file from source to destination (replaces {bmad_folder} placeholder in text files)
|
|
503
532
|
* @param {string} source - Source file path
|
|
504
533
|
* @param {string} dest - Destination file path
|
|
505
534
|
*/
|
|
506
535
|
async copyFile(source, dest) {
|
|
536
|
+
// List of text file extensions that should have placeholder replacement
|
|
537
|
+
const textExtensions = ['.md', '.yaml', '.yml', '.txt', '.json', '.js', '.ts', '.html', '.css', '.sh', '.bat', '.csv'];
|
|
538
|
+
const ext = path.extname(source).toLowerCase();
|
|
539
|
+
|
|
507
540
|
await this.ensureDir(path.dirname(dest));
|
|
508
|
-
|
|
541
|
+
|
|
542
|
+
// Check if this is a text file that might contain placeholders
|
|
543
|
+
if (textExtensions.includes(ext)) {
|
|
544
|
+
try {
|
|
545
|
+
// Read the file content
|
|
546
|
+
let content = await fs.readFile(source, 'utf8');
|
|
547
|
+
|
|
548
|
+
// Replace {bmad_folder} placeholder with actual folder name
|
|
549
|
+
if (content.includes('{bmad_folder}')) {
|
|
550
|
+
content = content.replaceAll('{bmad_folder}', this.bmadFolderName);
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
// Write to dest with replaced content
|
|
554
|
+
await fs.writeFile(dest, content, 'utf8');
|
|
555
|
+
} catch {
|
|
556
|
+
// If reading as text fails, fall back to regular copy
|
|
557
|
+
await fs.copy(source, dest, { overwrite: true });
|
|
558
|
+
}
|
|
559
|
+
} else {
|
|
560
|
+
// Binary file or other file type - just copy directly
|
|
561
|
+
await fs.copy(source, dest, { overwrite: true });
|
|
562
|
+
}
|
|
509
563
|
}
|
|
510
564
|
|
|
511
565
|
/**
|
|
@@ -1,70 +1,18 @@
|
|
|
1
1
|
const path = require('node:path');
|
|
2
|
-
const os = require('node:os');
|
|
3
2
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
4
3
|
const chalk = require('chalk');
|
|
5
|
-
const
|
|
4
|
+
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* Auggie CLI setup handler
|
|
9
|
-
*
|
|
8
|
+
* Installs to project directory (.augment/commands)
|
|
10
9
|
*/
|
|
11
10
|
class AuggieSetup extends BaseIdeSetup {
|
|
12
11
|
constructor() {
|
|
13
12
|
super('auggie', 'Auggie CLI');
|
|
14
|
-
this.defaultLocations = [
|
|
15
|
-
{ name: 'Project Directory (.augment/commands)', value: '.augment/commands', checked: true },
|
|
16
|
-
{ name: 'User Home (~/.augment/commands)', value: path.join(os.homedir(), '.augment', 'commands') },
|
|
17
|
-
{ name: 'Custom Location', value: 'custom' },
|
|
18
|
-
];
|
|
19
13
|
this.detectionPaths = ['.augment'];
|
|
20
14
|
}
|
|
21
15
|
|
|
22
|
-
/**
|
|
23
|
-
* Collect configuration choices before installation
|
|
24
|
-
* @param {Object} options - Configuration options
|
|
25
|
-
* @returns {Object} Collected configuration
|
|
26
|
-
*/
|
|
27
|
-
async collectConfiguration(options = {}) {
|
|
28
|
-
const response = await inquirer.prompt([
|
|
29
|
-
{
|
|
30
|
-
type: 'checkbox',
|
|
31
|
-
name: 'locations',
|
|
32
|
-
message: 'Select Auggie CLI installation locations:',
|
|
33
|
-
choices: this.defaultLocations,
|
|
34
|
-
validate: (answers) => {
|
|
35
|
-
if (answers.length === 0) {
|
|
36
|
-
return 'Please select at least one location';
|
|
37
|
-
}
|
|
38
|
-
return true;
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
]);
|
|
42
|
-
|
|
43
|
-
const locations = [];
|
|
44
|
-
for (const loc of response.locations) {
|
|
45
|
-
if (loc === 'custom') {
|
|
46
|
-
const custom = await inquirer.prompt([
|
|
47
|
-
{
|
|
48
|
-
type: 'input',
|
|
49
|
-
name: 'path',
|
|
50
|
-
message: 'Enter custom path for Auggie commands:',
|
|
51
|
-
validate: (input) => {
|
|
52
|
-
if (!input.trim()) {
|
|
53
|
-
return 'Path cannot be empty';
|
|
54
|
-
}
|
|
55
|
-
return true;
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
]);
|
|
59
|
-
locations.push(custom.path);
|
|
60
|
-
} else {
|
|
61
|
-
locations.push(loc);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return { auggieLocations: locations };
|
|
66
|
-
}
|
|
67
|
-
|
|
68
16
|
/**
|
|
69
17
|
* Setup Auggie CLI configuration
|
|
70
18
|
* @param {string} projectDir - Project directory
|
|
@@ -74,175 +22,82 @@ class AuggieSetup extends BaseIdeSetup {
|
|
|
74
22
|
async setup(projectDir, bmadDir, options = {}) {
|
|
75
23
|
console.log(chalk.cyan(`Setting up ${this.name}...`));
|
|
76
24
|
|
|
77
|
-
//
|
|
78
|
-
const
|
|
79
|
-
const locations = await this.getInstallLocations(projectDir, { ...options, auggieLocations: config.auggieLocations });
|
|
80
|
-
|
|
81
|
-
if (locations.length === 0) {
|
|
82
|
-
console.log(chalk.yellow('No locations selected. Skipping Auggie CLI setup.'));
|
|
83
|
-
return { success: false, reason: 'no-locations' };
|
|
84
|
-
}
|
|
25
|
+
// Always use project directory
|
|
26
|
+
const location = path.join(projectDir, '.augment', 'commands');
|
|
85
27
|
|
|
86
28
|
// Clean up old BMAD installation first
|
|
87
29
|
await this.cleanup(projectDir);
|
|
88
30
|
|
|
89
|
-
//
|
|
90
|
-
const
|
|
31
|
+
// Generate agent launchers
|
|
32
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
33
|
+
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
|
|
34
|
+
|
|
35
|
+
// Get tasks, tools, and workflows (standalone only)
|
|
91
36
|
const tasks = await this.getTasks(bmadDir, true);
|
|
92
37
|
const tools = await this.getTools(bmadDir, true);
|
|
93
38
|
const workflows = await this.getWorkflows(bmadDir, true);
|
|
94
39
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
await this.
|
|
110
|
-
await this.ensureDir(workflowsDir);
|
|
111
|
-
|
|
112
|
-
// Install agents
|
|
113
|
-
for (const agent of agents) {
|
|
114
|
-
const content = await this.readFile(agent.path);
|
|
115
|
-
const commandContent = this.createAgentCommand(agent, content);
|
|
116
|
-
|
|
117
|
-
const targetPath = path.join(agentsDir, `${agent.module}-${agent.name}.md`);
|
|
118
|
-
await this.writeFile(targetPath, commandContent);
|
|
119
|
-
totalInstalled++;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Install tasks
|
|
123
|
-
for (const task of tasks) {
|
|
124
|
-
const content = await this.readFile(task.path);
|
|
125
|
-
const commandContent = this.createTaskCommand(task, content);
|
|
126
|
-
|
|
127
|
-
const targetPath = path.join(tasksDir, `${task.module}-${task.name}.md`);
|
|
128
|
-
await this.writeFile(targetPath, commandContent);
|
|
129
|
-
totalInstalled++;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// Install tools
|
|
133
|
-
for (const tool of tools) {
|
|
134
|
-
const content = await this.readFile(tool.path);
|
|
135
|
-
const commandContent = this.createToolCommand(tool, content);
|
|
136
|
-
|
|
137
|
-
const targetPath = path.join(toolsDir, `${tool.module}-${tool.name}.md`);
|
|
138
|
-
await this.writeFile(targetPath, commandContent);
|
|
139
|
-
totalInstalled++;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// Install workflows
|
|
143
|
-
for (const workflow of workflows) {
|
|
144
|
-
const content = await this.readFile(workflow.path);
|
|
145
|
-
const commandContent = this.createWorkflowCommand(workflow, content);
|
|
146
|
-
|
|
147
|
-
const targetPath = path.join(workflowsDir, `${workflow.module}-${workflow.name}.md`);
|
|
148
|
-
await this.writeFile(targetPath, commandContent);
|
|
149
|
-
totalInstalled++;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
console.log(
|
|
153
|
-
chalk.green(` ✓ Installed ${agents.length} agents, ${tasks.length} tasks, ${tools.length} tools, ${workflows.length} workflows`),
|
|
154
|
-
);
|
|
40
|
+
const bmadCommandsDir = path.join(location, 'bmad');
|
|
41
|
+
const agentsDir = path.join(bmadCommandsDir, 'agents');
|
|
42
|
+
const tasksDir = path.join(bmadCommandsDir, 'tasks');
|
|
43
|
+
const toolsDir = path.join(bmadCommandsDir, 'tools');
|
|
44
|
+
const workflowsDir = path.join(bmadCommandsDir, 'workflows');
|
|
45
|
+
|
|
46
|
+
await this.ensureDir(agentsDir);
|
|
47
|
+
await this.ensureDir(tasksDir);
|
|
48
|
+
await this.ensureDir(toolsDir);
|
|
49
|
+
await this.ensureDir(workflowsDir);
|
|
50
|
+
|
|
51
|
+
// Install agent launchers
|
|
52
|
+
for (const artifact of agentArtifacts) {
|
|
53
|
+
const targetPath = path.join(agentsDir, `${artifact.module}-${artifact.name}.md`);
|
|
54
|
+
await this.writeFile(targetPath, artifact.content);
|
|
155
55
|
}
|
|
156
56
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
57
|
+
// Install tasks
|
|
58
|
+
for (const task of tasks) {
|
|
59
|
+
const content = await this.readFile(task.path);
|
|
60
|
+
const commandContent = this.createTaskCommand(task, content);
|
|
160
61
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
commands: totalInstalled,
|
|
164
|
-
locations: locations.length,
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Get installation locations from user
|
|
170
|
-
*/
|
|
171
|
-
async getInstallLocations(projectDir, options) {
|
|
172
|
-
if (options.auggieLocations) {
|
|
173
|
-
// Process the pre-collected locations to resolve relative paths
|
|
174
|
-
const processedLocations = [];
|
|
175
|
-
for (const loc of options.auggieLocations) {
|
|
176
|
-
if (loc === '.augment/commands') {
|
|
177
|
-
// Relative to project directory
|
|
178
|
-
processedLocations.push(path.join(projectDir, loc));
|
|
179
|
-
} else {
|
|
180
|
-
processedLocations.push(loc);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
return processedLocations;
|
|
62
|
+
const targetPath = path.join(tasksDir, `${task.module}-${task.name}.md`);
|
|
63
|
+
await this.writeFile(targetPath, commandContent);
|
|
184
64
|
}
|
|
185
65
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
if (answers.length === 0) {
|
|
194
|
-
return 'Please select at least one location';
|
|
195
|
-
}
|
|
196
|
-
return true;
|
|
197
|
-
},
|
|
198
|
-
},
|
|
199
|
-
]);
|
|
200
|
-
|
|
201
|
-
const locations = [];
|
|
202
|
-
for (const loc of response.locations) {
|
|
203
|
-
if (loc === 'custom') {
|
|
204
|
-
const custom = await inquirer.prompt([
|
|
205
|
-
{
|
|
206
|
-
type: 'input',
|
|
207
|
-
name: 'path',
|
|
208
|
-
message: 'Enter custom path for Auggie commands:',
|
|
209
|
-
validate: (input) => {
|
|
210
|
-
if (!input.trim()) {
|
|
211
|
-
return 'Path cannot be empty';
|
|
212
|
-
}
|
|
213
|
-
return true;
|
|
214
|
-
},
|
|
215
|
-
},
|
|
216
|
-
]);
|
|
217
|
-
locations.push(custom.path);
|
|
218
|
-
} else if (loc.startsWith('.augment')) {
|
|
219
|
-
// Relative to project directory
|
|
220
|
-
locations.push(path.join(projectDir, loc));
|
|
221
|
-
} else {
|
|
222
|
-
locations.push(loc);
|
|
223
|
-
}
|
|
66
|
+
// Install tools
|
|
67
|
+
for (const tool of tools) {
|
|
68
|
+
const content = await this.readFile(tool.path);
|
|
69
|
+
const commandContent = this.createToolCommand(tool, content);
|
|
70
|
+
|
|
71
|
+
const targetPath = path.join(toolsDir, `${tool.module}-${tool.name}.md`);
|
|
72
|
+
await this.writeFile(targetPath, commandContent);
|
|
224
73
|
}
|
|
225
74
|
|
|
226
|
-
|
|
227
|
-
|
|
75
|
+
// Install workflows
|
|
76
|
+
for (const workflow of workflows) {
|
|
77
|
+
const content = await this.readFile(workflow.path);
|
|
78
|
+
const commandContent = this.createWorkflowCommand(workflow, content);
|
|
228
79
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
createAgentCommand(agent, content) {
|
|
233
|
-
const titleMatch = content.match(/title="([^"]+)"/);
|
|
234
|
-
const title = titleMatch ? titleMatch[1] : this.formatTitle(agent.name);
|
|
235
|
-
|
|
236
|
-
return `# ${title} Agent
|
|
80
|
+
const targetPath = path.join(workflowsDir, `${workflow.module}-${workflow.name}.md`);
|
|
81
|
+
await this.writeFile(targetPath, commandContent);
|
|
82
|
+
}
|
|
237
83
|
|
|
238
|
-
|
|
239
|
-
Type \`@${agent.name}\` to activate this agent.
|
|
84
|
+
const totalInstalled = agentArtifacts.length + tasks.length + tools.length + workflows.length;
|
|
240
85
|
|
|
241
|
-
${
|
|
86
|
+
console.log(chalk.green(`✓ ${this.name} configured:`));
|
|
87
|
+
console.log(chalk.dim(` - ${agentArtifacts.length} agents installed`));
|
|
88
|
+
console.log(chalk.dim(` - ${tasks.length} tasks installed`));
|
|
89
|
+
console.log(chalk.dim(` - ${tools.length} tools installed`));
|
|
90
|
+
console.log(chalk.dim(` - ${workflows.length} workflows installed`));
|
|
91
|
+
console.log(chalk.dim(` - Location: ${path.relative(projectDir, location)}`));
|
|
92
|
+
console.log(chalk.yellow(`\n 💡 Tip: Add 'model: gpt-4o' to command frontmatter to specify AI model`));
|
|
242
93
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
94
|
+
return {
|
|
95
|
+
success: true,
|
|
96
|
+
agents: agentArtifacts.length,
|
|
97
|
+
tasks: tasks.length,
|
|
98
|
+
tools: tools.length,
|
|
99
|
+
workflows: workflows.length,
|
|
100
|
+
};
|
|
246
101
|
}
|
|
247
102
|
|
|
248
103
|
/**
|
|
@@ -252,10 +107,11 @@ BMAD ${agent.module.toUpperCase()} module
|
|
|
252
107
|
const nameMatch = content.match(/name="([^"]+)"/);
|
|
253
108
|
const taskName = nameMatch ? nameMatch[1] : this.formatTitle(task.name);
|
|
254
109
|
|
|
255
|
-
return
|
|
110
|
+
return `---
|
|
111
|
+
description: "Execute the ${taskName} task"
|
|
112
|
+
---
|
|
256
113
|
|
|
257
|
-
|
|
258
|
-
Type \`@task-${task.name}\` to execute this task.
|
|
114
|
+
# ${taskName} Task
|
|
259
115
|
|
|
260
116
|
${content}
|
|
261
117
|
|
|
@@ -271,10 +127,11 @@ BMAD ${task.module.toUpperCase()} module
|
|
|
271
127
|
const nameMatch = content.match(/name="([^"]+)"/);
|
|
272
128
|
const toolName = nameMatch ? nameMatch[1] : this.formatTitle(tool.name);
|
|
273
129
|
|
|
274
|
-
return
|
|
130
|
+
return `---
|
|
131
|
+
description: "Use the ${toolName} tool"
|
|
132
|
+
---
|
|
275
133
|
|
|
276
|
-
|
|
277
|
-
Type \`@tool-${tool.name}\` to execute this tool.
|
|
134
|
+
# ${toolName} Tool
|
|
278
135
|
|
|
279
136
|
${content}
|
|
280
137
|
|
|
@@ -287,13 +144,13 @@ BMAD ${tool.module.toUpperCase()} module
|
|
|
287
144
|
* Create workflow command content
|
|
288
145
|
*/
|
|
289
146
|
createWorkflowCommand(workflow, content) {
|
|
290
|
-
|
|
147
|
+
const description = workflow.description || `Execute the ${workflow.name} workflow`;
|
|
291
148
|
|
|
292
|
-
|
|
293
|
-
${
|
|
149
|
+
return `---
|
|
150
|
+
description: "${description}"
|
|
151
|
+
---
|
|
294
152
|
|
|
295
|
-
|
|
296
|
-
Type \`@workflow-${workflow.name}\` to execute this workflow.
|
|
153
|
+
# ${workflow.name} Workflow
|
|
297
154
|
|
|
298
155
|
${content}
|
|
299
156
|
|
|
@@ -308,16 +165,13 @@ BMAD ${workflow.module.toUpperCase()} module
|
|
|
308
165
|
async cleanup(projectDir) {
|
|
309
166
|
const fs = require('fs-extra');
|
|
310
167
|
|
|
311
|
-
//
|
|
312
|
-
const
|
|
313
|
-
|
|
314
|
-
for (const location of locations) {
|
|
315
|
-
const bmadDir = path.join(location, 'bmad');
|
|
168
|
+
// Only clean up project directory
|
|
169
|
+
const location = path.join(projectDir, '.augment', 'commands');
|
|
170
|
+
const bmadDir = path.join(location, 'bmad');
|
|
316
171
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
}
|
|
172
|
+
if (await fs.pathExists(bmadDir)) {
|
|
173
|
+
await fs.remove(bmadDir);
|
|
174
|
+
console.log(chalk.dim(` Removed old BMAD commands`));
|
|
321
175
|
}
|
|
322
176
|
}
|
|
323
177
|
}
|
|
@@ -2,8 +2,9 @@ const path = require('node:path');
|
|
|
2
2
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
3
|
const chalk = require('chalk');
|
|
4
4
|
const { getProjectRoot, getSourcePath, getModulePath } = require('../../../lib/project-root');
|
|
5
|
-
const { WorkflowCommandGenerator } = require('./workflow-command-generator');
|
|
6
|
-
const { TaskToolCommandGenerator } = require('./task-tool-command-generator');
|
|
5
|
+
const { WorkflowCommandGenerator } = require('./shared/workflow-command-generator');
|
|
6
|
+
const { TaskToolCommandGenerator } = require('./shared/task-tool-command-generator');
|
|
7
|
+
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
7
8
|
const {
|
|
8
9
|
loadModuleInjectionConfig,
|
|
9
10
|
shouldApplyInjection,
|
|
@@ -117,33 +118,24 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
117
118
|
|
|
118
119
|
await this.ensureDir(bmadCommandsDir);
|
|
119
120
|
|
|
120
|
-
//
|
|
121
|
-
//
|
|
122
|
-
const
|
|
121
|
+
// Generate agent launchers using AgentCommandGenerator
|
|
122
|
+
// This creates small launcher files that reference the actual agents in .bmad/
|
|
123
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
124
|
+
const { artifacts: agentArtifacts, counts: agentCounts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
|
|
123
125
|
|
|
124
|
-
// Create directories for each module
|
|
126
|
+
// Create directories for each module
|
|
125
127
|
const modules = new Set();
|
|
126
|
-
for (const
|
|
128
|
+
for (const artifact of agentArtifacts) {
|
|
129
|
+
modules.add(artifact.module);
|
|
130
|
+
}
|
|
127
131
|
|
|
128
132
|
for (const module of modules) {
|
|
129
133
|
await this.ensureDir(path.join(bmadCommandsDir, module));
|
|
130
134
|
await this.ensureDir(path.join(bmadCommandsDir, module, 'agents'));
|
|
131
135
|
}
|
|
132
136
|
|
|
133
|
-
//
|
|
134
|
-
|
|
135
|
-
for (const agent of agents) {
|
|
136
|
-
const sourcePath = agent.path;
|
|
137
|
-
const targetPath = path.join(bmadCommandsDir, agent.module, 'agents', `${agent.name}.md`);
|
|
138
|
-
|
|
139
|
-
const content = await this.readAndProcess(sourcePath, {
|
|
140
|
-
module: agent.module,
|
|
141
|
-
name: agent.name,
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
await this.writeFile(targetPath, content);
|
|
145
|
-
agentCount++;
|
|
146
|
-
}
|
|
137
|
+
// Write agent launcher files
|
|
138
|
+
const agentCount = await agentGen.writeAgentLaunchers(bmadCommandsDir, agentArtifacts);
|
|
147
139
|
|
|
148
140
|
// Process Claude Code specific injections for installed modules
|
|
149
141
|
// Use pre-collected configuration if available, or skip if already configured
|
|
@@ -161,7 +153,7 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
161
153
|
// await this.createClaudeConfig(projectDir, modules);
|
|
162
154
|
|
|
163
155
|
// Generate workflow commands from manifest (if it exists)
|
|
164
|
-
const workflowGen = new WorkflowCommandGenerator();
|
|
156
|
+
const workflowGen = new WorkflowCommandGenerator(this.bmadFolderName);
|
|
165
157
|
const { artifacts: workflowArtifacts } = await workflowGen.collectWorkflowArtifacts(bmadDir);
|
|
166
158
|
|
|
167
159
|
// Write only workflow-command artifacts, skip workflow-launcher READMEs
|
|
@@ -2,7 +2,8 @@ const path = require('node:path');
|
|
|
2
2
|
const fs = require('fs-extra');
|
|
3
3
|
const chalk = require('chalk');
|
|
4
4
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
5
|
-
const { WorkflowCommandGenerator } = require('./workflow-command-generator');
|
|
5
|
+
const { WorkflowCommandGenerator } = require('./shared/workflow-command-generator');
|
|
6
|
+
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
6
7
|
const { getAgentsFromBmad, getTasksFromBmad } = require('./shared/bmad-artifacts');
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -11,7 +12,7 @@ const { getAgentsFromBmad, getTasksFromBmad } = require('./shared/bmad-artifacts
|
|
|
11
12
|
*/
|
|
12
13
|
class ClineSetup extends BaseIdeSetup {
|
|
13
14
|
constructor() {
|
|
14
|
-
super('cline', 'Cline',
|
|
15
|
+
super('cline', 'Cline', false);
|
|
15
16
|
this.configDir = '.clinerules';
|
|
16
17
|
this.workflowsDir = 'workflows';
|
|
17
18
|
}
|
|
@@ -88,23 +89,19 @@ class ClineSetup extends BaseIdeSetup {
|
|
|
88
89
|
const selectedModules = options.selectedModules || [];
|
|
89
90
|
const artifacts = [];
|
|
90
91
|
|
|
91
|
-
//
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
name: agent.name,
|
|
99
|
-
},
|
|
100
|
-
projectDir,
|
|
101
|
-
);
|
|
92
|
+
// Generate agent launchers
|
|
93
|
+
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
94
|
+
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, selectedModules);
|
|
95
|
+
|
|
96
|
+
// Process agent launchers with project-specific paths
|
|
97
|
+
for (const agentArtifact of agentArtifacts) {
|
|
98
|
+
const content = agentArtifact.content;
|
|
102
99
|
|
|
103
100
|
artifacts.push({
|
|
104
101
|
type: 'agent',
|
|
105
|
-
module:
|
|
106
|
-
sourcePath:
|
|
107
|
-
relativePath:
|
|
102
|
+
module: agentArtifact.module,
|
|
103
|
+
sourcePath: agentArtifact.sourcePath,
|
|
104
|
+
relativePath: agentArtifact.relativePath,
|
|
108
105
|
content,
|
|
109
106
|
});
|
|
110
107
|
}
|
|
@@ -131,14 +128,14 @@ class ClineSetup extends BaseIdeSetup {
|
|
|
131
128
|
}
|
|
132
129
|
|
|
133
130
|
// Get workflows
|
|
134
|
-
const workflowGenerator = new WorkflowCommandGenerator();
|
|
131
|
+
const workflowGenerator = new WorkflowCommandGenerator(this.bmadFolderName);
|
|
135
132
|
const { artifacts: workflowArtifacts, counts: workflowCounts } = await workflowGenerator.collectWorkflowArtifacts(bmadDir);
|
|
136
133
|
artifacts.push(...workflowArtifacts);
|
|
137
134
|
|
|
138
135
|
return {
|
|
139
136
|
artifacts,
|
|
140
137
|
counts: {
|
|
141
|
-
agents:
|
|
138
|
+
agents: agentArtifacts.length,
|
|
142
139
|
tasks: tasks.length,
|
|
143
140
|
workflows: workflowCounts.commands,
|
|
144
141
|
workflowLaunchers: workflowCounts.launchers,
|