bmad-method 6.0.0-alpha.12 → 6.0.0-alpha.13
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/workflows/bundle-latest.yaml +79 -27
- package/CHANGELOG.md +159 -1
- package/README.md +3 -1
- package/custom/src/agents/commit-poet/commit-poet.agent.yaml +129 -0
- package/custom/src/agents/commit-poet/installation-guide.md +36 -0
- package/custom/src/agents/toolsmith/installation-guide.md +36 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/instructions.md +70 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +111 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +70 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +114 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +134 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +161 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +103 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/memories.md +17 -0
- package/custom/src/agents/toolsmith/toolsmith.agent.yaml +108 -0
- package/docs/custom-agent-installation.md +31 -17
- package/docs/ide-info/rovo-dev.md +388 -0
- package/docs/index.md +6 -81
- package/docs/installers-bundlers/installers-modules-platforms-reference.md +1 -1
- package/package.json +1 -1
- package/src/core/agents/bmad-master.agent.yaml +1 -1
- package/src/core/agents/bmad-web-orchestrator.agent.xml +1 -1
- package/src/core/tasks/advanced-elicitation-methods.csv +51 -21
- package/src/core/tasks/advanced-elicitation.xml +18 -8
- package/src/core/tasks/workflow.xml +36 -71
- package/src/core/workflows/brainstorming/brain-methods.csv +62 -36
- package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +196 -0
- package/src/core/workflows/brainstorming/steps/step-01b-continue.md +121 -0
- package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +224 -0
- package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +236 -0
- package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +208 -0
- package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +263 -0
- package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +339 -0
- package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +302 -0
- package/src/core/workflows/brainstorming/template.md +13 -104
- package/src/core/workflows/brainstorming/workflow.md +51 -0
- package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
- package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +203 -0
- package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +159 -0
- package/src/core/workflows/party-mode/workflow.md +207 -0
- package/src/modules/bmb/README.md +153 -86
- package/src/modules/bmb/_module-installer/install-config.yaml +3 -3
- package/src/modules/bmb/agents/bmad-builder.agent.yaml +45 -31
- package/src/modules/bmb/docs/{agent-menu-patterns.md → agents/agent-menu-patterns.md} +1 -1
- package/src/modules/bmb/docs/agents/kb.csv +0 -0
- package/src/modules/bmb/docs/{module-agent-architecture.md → agents/module-agent-architecture.md} +1 -1
- package/src/modules/bmb/docs/{simple-agent-architecture.md → agents/simple-agent-architecture.md} +1 -1
- package/src/modules/bmb/docs/workflows/architecture.md +220 -0
- package/src/modules/bmb/docs/workflows/common-workflow-tools.csv +19 -0
- package/src/modules/bmb/docs/workflows/csv-data-file-standards.md +206 -0
- package/src/modules/bmb/docs/workflows/index.md +45 -0
- package/src/modules/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +220 -0
- package/src/modules/bmb/docs/workflows/kb.csv +0 -0
- package/src/modules/bmb/docs/workflows/step-template.md +283 -0
- package/src/modules/bmb/docs/workflows/terms.md +97 -0
- package/src/modules/bmb/docs/workflows/workflow-template.md +152 -0
- package/src/modules/bmb/reference/agents/module-examples/README.md +1 -1
- package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +2 -2
- package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +1 -1
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
- package/src/modules/bmb/workflows/create-agent/data/info-and-installation-guide.md +17 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/README.md +3 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/README.md +242 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +50 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +223 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
- package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +305 -0
- package/src/modules/bmb/workflows/create-agent/steps/step-01-brainstorm.md +145 -0
- package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +210 -0
- package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +260 -0
- package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +237 -0
- package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +231 -0
- package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +224 -0
- package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +234 -0
- package/src/modules/bmb/workflows/create-agent/steps/step-08-setup.md +179 -0
- package/src/modules/bmb/workflows/create-agent/steps/step-09-customize.md +197 -0
- package/src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md +180 -0
- package/src/modules/bmb/workflows/create-agent/steps/step-11-celebrate.md +222 -0
- package/src/modules/bmb/workflows/create-agent/templates/agent_commands.md +21 -0
- package/src/modules/bmb/workflows/create-agent/templates/agent_persona.md +25 -0
- package/src/modules/bmb/workflows/create-agent/templates/agent_purpose_and_type.md +23 -0
- package/src/modules/bmb/workflows/create-agent/workflow.md +91 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +168 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +233 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-overview.md +127 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-04-core-tools.md +145 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-05-memory-requirements.md +136 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-06-external-tools.md +154 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-07-installation-guidance.md +159 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-08-tools-summary.md +167 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-09-design.md +239 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-10-plan-review.md +215 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-11-build.md +262 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-12-review.md +270 -0
- package/src/modules/bmb/workflows/create-workflow/templates/build-summary.md +36 -0
- package/src/modules/bmb/workflows/create-workflow/templates/completion-section.md +39 -0
- package/src/modules/bmb/workflows/create-workflow/templates/content-template.md +21 -0
- package/src/modules/bmb/workflows/create-workflow/templates/design-section.md +53 -0
- package/src/modules/bmb/workflows/create-workflow/templates/project-info.md +18 -0
- package/src/modules/bmb/workflows/create-workflow/templates/requirements-section.md +47 -0
- package/src/modules/bmb/workflows/create-workflow/templates/review-section.md +56 -0
- package/src/modules/bmb/workflows/create-workflow/templates/step-file.md +139 -0
- package/src/modules/bmb/workflows/create-workflow/templates/workflow-plan.md +54 -0
- package/src/modules/bmb/workflows/create-workflow/templates/workflow.md +58 -0
- package/src/modules/bmb/workflows/create-workflow/workflow.md +58 -0
- package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +134 -0
- package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +202 -0
- package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +157 -0
- package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +150 -0
- package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +150 -0
- package/src/modules/bmb/workflows/edit-agent/workflow.md +58 -0
- package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +221 -0
- package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +253 -0
- package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +217 -0
- package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +193 -0
- package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +245 -0
- package/src/modules/bmb/workflows/edit-workflow/templates/completion-summary.md +75 -0
- package/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md +68 -0
- package/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md +40 -0
- package/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md +51 -0
- package/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md +56 -0
- package/src/modules/bmb/workflows/edit-workflow/workflow.md +58 -0
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +152 -0
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +243 -0
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +274 -0
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +295 -0
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +264 -0
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +360 -0
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +258 -0
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +301 -0
- package/src/modules/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +140 -0
- package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +58 -0
- package/src/modules/bmgd/agents/game-architect.agent.yaml +1 -1
- package/src/modules/bmgd/agents/game-designer.agent.yaml +1 -1
- package/src/modules/bmgd/agents/game-dev.agent.yaml +1 -1
- package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +1 -1
- package/src/modules/bmm/_module-installer/install-config.yaml +9 -15
- package/src/modules/bmm/agents/analyst.agent.yaml +14 -14
- package/src/modules/bmm/agents/architect.agent.yaml +12 -10
- package/src/modules/bmm/agents/dev.agent.yaml +20 -16
- package/src/modules/bmm/agents/pm.agent.yaml +13 -31
- package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +36 -0
- package/src/modules/bmm/agents/sm.agent.yaml +13 -31
- package/src/modules/bmm/agents/tea.agent.yaml +10 -7
- package/src/modules/bmm/agents/tech-writer.agent.yaml +7 -20
- package/src/modules/bmm/agents/ux-designer.agent.yaml +12 -10
- package/src/modules/bmm/data/README.md +29 -0
- package/src/modules/bmm/data/project-context-template.md +40 -0
- package/src/modules/bmm/docs/README.md +21 -9
- package/src/modules/bmm/docs/agents-guide.md +69 -23
- package/src/modules/bmm/docs/bmad-quick-flow.md +528 -0
- package/src/modules/bmm/docs/brownfield-guide.md +9 -10
- package/src/modules/bmm/docs/enterprise-agentic-development.md +1 -1
- package/src/modules/bmm/docs/glossary.md +5 -5
- package/src/modules/bmm/docs/images/workflow-method-greenfield.excalidraw +909 -1654
- package/src/modules/bmm/docs/images/workflow-method-greenfield.svg +2 -2
- package/src/modules/bmm/docs/quick-flow-solo-dev.md +337 -0
- package/src/modules/bmm/docs/scale-adaptive-system.md +5 -5
- package/src/modules/bmm/docs/test-architecture.md +84 -18
- package/src/modules/bmm/docs/workflows-analysis.md +36 -140
- package/src/modules/bmm/docs/workflows-implementation.md +32 -157
- package/src/modules/bmm/docs/workflows-planning.md +51 -212
- package/src/modules/bmm/docs/workflows-solutioning.md +24 -69
- package/src/modules/bmm/teams/default-party.csv +15 -14
- package/src/modules/bmm/teams/team-fullstack.yaml +0 -1
- package/src/modules/bmm/testarch/knowledge/api-request.md +303 -0
- package/src/modules/bmm/testarch/knowledge/auth-session.md +356 -0
- package/src/modules/bmm/testarch/knowledge/burn-in.md +273 -0
- package/src/modules/bmm/testarch/knowledge/file-utils.md +260 -0
- package/src/modules/bmm/testarch/knowledge/fixtures-composition.md +382 -0
- package/src/modules/bmm/testarch/knowledge/intercept-network-call.md +280 -0
- package/src/modules/bmm/testarch/knowledge/log.md +294 -0
- package/src/modules/bmm/testarch/knowledge/network-error-monitor.md +272 -0
- package/src/modules/bmm/testarch/knowledge/network-recorder.md +265 -0
- package/src/modules/bmm/testarch/knowledge/overview.md +284 -0
- package/src/modules/bmm/testarch/knowledge/recurse.md +296 -0
- package/src/modules/bmm/testarch/tea-index.csv +11 -0
- package/src/modules/bmm/workflows/1-analysis/product-brief/product-brief.template.md +8 -0
- package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-01-init.md +192 -0
- package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-01b-continue.md +167 -0
- package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-02-vision.md +203 -0
- package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-03-users.md +206 -0
- package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-04-metrics.md +209 -0
- package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-05-scope.md +223 -0
- package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-06-complete.md +199 -0
- package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.md +58 -0
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +136 -0
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +228 -0
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +237 -0
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +205 -0
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +233 -0
- package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +235 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +198 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +247 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +257 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +175 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
- package/src/modules/bmm/workflows/1-analysis/research/research.template.md +16 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +136 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +237 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +246 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +200 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +237 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
- package/src/modules/bmm/workflows/1-analysis/research/workflow.md +198 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +159 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +126 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +209 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +215 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +218 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +233 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +251 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +253 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +223 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +223 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +240 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +247 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +236 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +263 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +226 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +6 -138
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +53 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +5 -200
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +161 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +123 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +275 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +271 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +272 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +249 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +240 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +236 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +280 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +251 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +275 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +210 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +61 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-decision-template.md +13 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/data/domain-complexity.csv +11 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/data/project-types.csv +7 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-01-init.md +194 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-01b-continue.md +163 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-02-context.md +223 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-03-starter.md +330 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-04-decisions.md +317 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-05-patterns.md +358 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-06-structure.md +378 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-07-validation.md +358 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-08-complete.md +351 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.md +48 -0
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/instructions.md +247 -476
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.yaml +8 -18
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +176 -0
- package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +4 -11
- package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +332 -214
- package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +324 -0
- package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +21 -34
- package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +65 -23
- package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +406 -0
- package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +6 -37
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +4 -3
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +2 -0
- package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/instructions.md +115 -0
- package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +26 -0
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/checklist.md +25 -0
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/instructions.md +105 -0
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml +29 -0
- package/src/modules/bmm/workflows/generate-project-context/project-context-template.md +20 -0
- package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +193 -0
- package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +317 -0
- package/src/modules/bmm/workflows/generate-project-context/steps/step-03-complete.md +277 -0
- package/src/modules/bmm/workflows/generate-project-context/workflow.md +48 -0
- package/src/modules/bmm/workflows/testarch/atdd/instructions.md +23 -3
- package/src/modules/bmm/workflows/testarch/automate/instructions.md +23 -2
- package/src/modules/bmm/workflows/testarch/ci/instructions.md +18 -1
- package/src/modules/bmm/workflows/testarch/framework/instructions.md +27 -1
- package/src/modules/bmm/workflows/testarch/test-design/instructions.md +8 -2
- package/src/modules/bmm/workflows/testarch/test-review/instructions.md +28 -8
- package/src/modules/bmm/workflows/workflow-status/init/instructions.md +66 -54
- package/src/modules/bmm/workflows/workflow-status/instructions.md +11 -4
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +3 -2
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +3 -2
- package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +3 -2
- package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +3 -2
- package/src/modules/cis/agents/README.md +1 -1
- package/src/modules/cis/agents/brainstorming-coach.agent.yaml +3 -2
- package/src/modules/cis/agents/creative-problem-solver.agent.yaml +2 -1
- package/src/modules/cis/agents/design-thinking-coach.agent.yaml +2 -1
- package/src/modules/cis/agents/innovation-strategist.agent.yaml +2 -1
- package/src/modules/cis/agents/presentation-master.agent.yaml +3 -2
- package/src/modules/cis/agents/storyteller.agent.yaml +2 -1
- package/src/modules/cis/teams/default-party.csv +6 -5
- package/src/utility/models/agent-activation-ide.xml +4 -4
- package/src/utility/models/agent-activation-web.xml +1 -11
- package/src/utility/models/fragments/activation-rules.xml +5 -6
- package/src/utility/models/fragments/handler-exec.xml +6 -5
- package/src/utility/models/fragments/handler-multi.xml +14 -0
- package/test/README.md +1 -1
- package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +1 -3
- package/tools/cli/README.md +1 -0
- package/tools/cli/bundlers/web-bundler.js +3 -14
- package/tools/cli/commands/agent-install.js +8 -8
- package/tools/cli/commands/cleanup.js +141 -0
- package/tools/cli/commands/install.js +48 -3
- package/tools/cli/installers/lib/core/config-collector.js +24 -0
- package/tools/cli/installers/lib/core/installer.js +612 -43
- package/tools/cli/installers/lib/ide/antigravity.js +51 -7
- package/tools/cli/installers/lib/ide/auggie.js +53 -0
- package/tools/cli/installers/lib/ide/claude-code.js +1 -6
- package/tools/cli/installers/lib/ide/cline.js +49 -0
- package/tools/cli/installers/lib/ide/codex.js +2 -2
- package/tools/cli/installers/lib/ide/crush.js +47 -0
- package/tools/cli/installers/lib/ide/gemini.js +47 -0
- package/tools/cli/installers/lib/ide/github-copilot.js +59 -48
- package/tools/cli/installers/lib/ide/iflow.js +47 -0
- package/tools/cli/installers/lib/ide/kilo.js +74 -0
- package/tools/cli/installers/lib/ide/qwen.js +54 -0
- package/tools/cli/installers/lib/ide/roo.js +71 -0
- package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
- package/tools/cli/installers/lib/ide/trae.js +47 -0
- package/tools/cli/lib/agent/compiler.js +156 -22
- package/tools/cli/lib/agent/installer.js +13 -3
- package/tools/cli/lib/agent-analyzer.js +46 -18
- package/tools/cli/lib/ui.js +204 -9
- package/tools/cli/lib/yaml-xml-builder.js +123 -24
- package/tools/platform-codes.yaml +12 -0
- package/tools/schema/agent.js +169 -20
- package/src/core/tasks/adv-elicit-methods.csv +0 -39
- package/src/core/workflows/brainstorming/README.md +0 -261
- package/src/core/workflows/brainstorming/instructions.md +0 -315
- package/src/core/workflows/brainstorming/workflow.yaml +0 -38
- package/src/core/workflows/party-mode/instructions.md +0 -183
- package/src/core/workflows/party-mode/workflow.yaml +0 -28
- package/src/modules/bmb/workflows/audit-workflow/checklist.md +0 -142
- package/src/modules/bmb/workflows/audit-workflow/instructions.md +0 -341
- package/src/modules/bmb/workflows/audit-workflow/template.md +0 -118
- package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +0 -25
- package/src/modules/bmb/workflows/convert-legacy/README.md +0 -262
- package/src/modules/bmb/workflows/convert-legacy/checklist.md +0 -205
- package/src/modules/bmb/workflows/convert-legacy/instructions.md +0 -377
- package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +0 -30
- package/src/modules/bmb/workflows/create-agent/instructions.md +0 -519
- package/src/modules/bmb/workflows/create-agent/workflow.yaml +0 -55
- package/src/modules/bmb/workflows/create-workflow/README.md +0 -277
- package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
- package/src/modules/bmb/workflows/create-workflow/checklist.md +0 -94
- package/src/modules/bmb/workflows/create-workflow/instructions.md +0 -725
- package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1327
- package/src/modules/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
- package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -15
- package/src/modules/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
- package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -61
- package/src/modules/bmb/workflows/create-workflow/workflow.yaml +0 -41
- package/src/modules/bmb/workflows/edit-agent/README.md +0 -239
- package/src/modules/bmb/workflows/edit-agent/instructions.md +0 -654
- package/src/modules/bmb/workflows/edit-agent/workflow.yaml +0 -49
- package/src/modules/bmb/workflows/edit-workflow/README.md +0 -119
- package/src/modules/bmb/workflows/edit-workflow/checklist.md +0 -70
- package/src/modules/bmb/workflows/edit-workflow/instructions.md +0 -342
- package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +0 -27
- package/src/modules/bmm/_module-installer/assets/bmm-kb.md +0 -1
- package/src/modules/bmm/_module-installer/assets/technical-decisions.md +0 -30
- package/src/modules/bmm/docs/quick-spec-flow.md +0 -652
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -112
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -39
- package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +0 -425
- package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +0 -180
- package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -56
- package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
- package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +0 -524
- package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +0 -181
- package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -61
- package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
- package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
- package/src/modules/bmm/workflows/1-analysis/research/checklist.md +0 -299
- package/src/modules/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
- package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -438
- package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +0 -675
- package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +0 -134
- package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +0 -534
- package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
- package/src/modules/bmm/workflows/1-analysis/research/template-market.md +0 -347
- package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +0 -245
- package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +0 -62
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1308
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -93
- package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -346
- package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -703
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -78
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -217
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -74
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +0 -436
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -980
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -90
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -60
- package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -321
- package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
- package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +0 -240
- package/src/modules/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -222
- package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +0 -768
- package/src/modules/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -13
- package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -100
- package/src/modules/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -12
- package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +0 -22
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +0 -398
- package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +0 -256
- package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +0 -267
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -164
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -58
- package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
- package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
- package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +0 -209
- package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -63
- package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
- package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -28
- package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
- package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -25
- package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
- package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
- /package/src/modules/bmb/docs/{agent-compilation.md → agents/agent-compilation.md} +0 -0
- /package/src/modules/bmb/docs/{expert-agent-architecture.md → agents/expert-agent-architecture.md} +0 -0
- /package/src/modules/bmb/docs/{index.md → agents/index.md} +0 -0
- /package/src/modules/bmb/docs/{understanding-agent-types.md → agents/understanding-agent-types.md} +0 -0
- /package/src/modules/bmb/reference/{readme.md → README.md} +0 -0
- /package/src/modules/bmb/workflows/create-agent/{agent-validation-checklist.md → data/agent-validation-checklist.md} +0 -0
- /package/src/modules/bmb/workflows/create-agent/{brainstorm-context.md → data/brainstorm-context.md} +0 -0
- /package/src/modules/bmb/workflows/create-agent/{communication-presets.csv → data/communication-presets.csv} +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/README.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/brainstorm-context.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/checklist.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/installer-templates/install-config.yaml +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/installer-templates/installer.js +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/instructions.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/module-structure.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/create-module/workflow.yaml +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/README.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/checklist.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/instructions.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/workflow.yaml +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/README.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/checklist.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/instructions.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/template.md +0 -0
- /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/workflow.yaml +0 -0
- /package/src/modules/bmm/{workflows/techdoc → data}/documentation-standards.md +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const path = require('node:path');
|
|
2
|
+
const fs = require('fs-extra');
|
|
2
3
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
4
|
const chalk = require('chalk');
|
|
4
5
|
const { getProjectRoot, getSourcePath, getModulePath } = require('../../../lib/project-root');
|
|
@@ -20,7 +21,7 @@ const { getAgentsFromBmad, getAgentsFromDir } = require('./shared/bmad-artifacts
|
|
|
20
21
|
*/
|
|
21
22
|
class AntigravitySetup extends BaseIdeSetup {
|
|
22
23
|
constructor() {
|
|
23
|
-
super('antigravity', 'Google Antigravity',
|
|
24
|
+
super('antigravity', 'Google Antigravity', true);
|
|
24
25
|
this.configDir = '.agent';
|
|
25
26
|
this.workflowsDir = 'workflows';
|
|
26
27
|
}
|
|
@@ -44,7 +45,6 @@ class AntigravitySetup extends BaseIdeSetup {
|
|
|
44
45
|
const injectionConfigPath = path.join(sourceModulesPath, moduleName, 'sub-modules', 'antigravity', 'injections.yaml');
|
|
45
46
|
|
|
46
47
|
if (await this.exists(injectionConfigPath)) {
|
|
47
|
-
const fs = require('fs-extra');
|
|
48
48
|
const yaml = require('js-yaml');
|
|
49
49
|
|
|
50
50
|
try {
|
|
@@ -88,7 +88,6 @@ class AntigravitySetup extends BaseIdeSetup {
|
|
|
88
88
|
* @param {string} projectDir - Project directory
|
|
89
89
|
*/
|
|
90
90
|
async cleanup(projectDir) {
|
|
91
|
-
const fs = require('fs-extra');
|
|
92
91
|
const bmadWorkflowsDir = path.join(projectDir, this.configDir, this.workflowsDir, 'bmad');
|
|
93
92
|
|
|
94
93
|
if (await fs.pathExists(bmadWorkflowsDir)) {
|
|
@@ -191,7 +190,6 @@ class AntigravitySetup extends BaseIdeSetup {
|
|
|
191
190
|
* Read and process file content
|
|
192
191
|
*/
|
|
193
192
|
async readAndProcess(filePath, metadata) {
|
|
194
|
-
const fs = require('fs-extra');
|
|
195
193
|
const content = await fs.readFile(filePath, 'utf8');
|
|
196
194
|
return this.processContent(content, metadata);
|
|
197
195
|
}
|
|
@@ -208,7 +206,6 @@ class AntigravitySetup extends BaseIdeSetup {
|
|
|
208
206
|
* Get agents from source modules (not installed location)
|
|
209
207
|
*/
|
|
210
208
|
async getAgentsFromSource(sourceDir, selectedModules) {
|
|
211
|
-
const fs = require('fs-extra');
|
|
212
209
|
const agents = [];
|
|
213
210
|
|
|
214
211
|
// Add core agents
|
|
@@ -387,7 +384,6 @@ class AntigravitySetup extends BaseIdeSetup {
|
|
|
387
384
|
* Inject content at specified point in file
|
|
388
385
|
*/
|
|
389
386
|
async injectContent(projectDir, injection, subagentChoices = null) {
|
|
390
|
-
const fs = require('fs-extra');
|
|
391
387
|
const targetPath = path.join(projectDir, injection.file);
|
|
392
388
|
|
|
393
389
|
if (await this.exists(targetPath)) {
|
|
@@ -413,7 +409,6 @@ class AntigravitySetup extends BaseIdeSetup {
|
|
|
413
409
|
* Copy selected subagents to appropriate Antigravity agents directory
|
|
414
410
|
*/
|
|
415
411
|
async copySelectedSubagents(projectDir, handlerBaseDir, subagentConfig, choices, location) {
|
|
416
|
-
const fs = require('fs-extra');
|
|
417
412
|
const os = require('node:os');
|
|
418
413
|
|
|
419
414
|
// Determine target directory based on user choice
|
|
@@ -458,6 +453,55 @@ class AntigravitySetup extends BaseIdeSetup {
|
|
|
458
453
|
console.log(chalk.dim(` Total subagents installed: ${copiedCount}`));
|
|
459
454
|
}
|
|
460
455
|
}
|
|
456
|
+
|
|
457
|
+
/**
|
|
458
|
+
* Install a custom agent launcher for Antigravity
|
|
459
|
+
* @param {string} projectDir - Project directory
|
|
460
|
+
* @param {string} agentName - Agent name (e.g., "fred-commit-poet")
|
|
461
|
+
* @param {string} agentPath - Path to compiled agent (relative to project root)
|
|
462
|
+
* @param {Object} metadata - Agent metadata
|
|
463
|
+
* @returns {Object} Installation result
|
|
464
|
+
*/
|
|
465
|
+
async installCustomAgentLauncher(projectDir, agentName, agentPath, metadata) {
|
|
466
|
+
// Create .agent/workflows/bmad directory structure (same as regular agents)
|
|
467
|
+
const agentDir = path.join(projectDir, this.configDir);
|
|
468
|
+
const workflowsDir = path.join(agentDir, this.workflowsDir);
|
|
469
|
+
const bmadWorkflowsDir = path.join(workflowsDir, 'bmad');
|
|
470
|
+
|
|
471
|
+
await fs.ensureDir(bmadWorkflowsDir);
|
|
472
|
+
|
|
473
|
+
// Create custom agent launcher with same pattern as regular agents
|
|
474
|
+
const launcherContent = `name: '${agentName}'
|
|
475
|
+
description: '${agentName} agent'
|
|
476
|
+
usage: |
|
|
477
|
+
Custom BMAD agent: ${agentName}
|
|
478
|
+
|
|
479
|
+
Launch with: /${agentName}
|
|
480
|
+
|
|
481
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
482
|
+
<agent-activation CRITICAL="TRUE">
|
|
483
|
+
1. LOAD the FULL agent file from @${agentPath}
|
|
484
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
485
|
+
3. EXECUTE as ${agentName} with full persona adoption
|
|
486
|
+
</agent-activation>
|
|
487
|
+
|
|
488
|
+
---
|
|
489
|
+
|
|
490
|
+
⚠️ **IMPORTANT**: Run @${agentPath} to load the complete agent before using this launcher!`;
|
|
491
|
+
|
|
492
|
+
const fileName = `bmad-custom-agents-${agentName}.md`;
|
|
493
|
+
const launcherPath = path.join(bmadWorkflowsDir, fileName);
|
|
494
|
+
|
|
495
|
+
// Write the launcher file
|
|
496
|
+
await fs.writeFile(launcherPath, launcherContent, 'utf8');
|
|
497
|
+
|
|
498
|
+
return {
|
|
499
|
+
ide: 'antigravity',
|
|
500
|
+
path: path.relative(projectDir, launcherPath),
|
|
501
|
+
command: `/${agentName}`,
|
|
502
|
+
type: 'custom-agent-launcher',
|
|
503
|
+
};
|
|
504
|
+
}
|
|
461
505
|
}
|
|
462
506
|
|
|
463
507
|
module.exports = { AntigravitySetup };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const path = require('node:path');
|
|
2
|
+
const fs = require('fs-extra');
|
|
2
3
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
4
|
const chalk = require('chalk');
|
|
4
5
|
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
@@ -174,6 +175,58 @@ BMAD ${workflow.module.toUpperCase()} module
|
|
|
174
175
|
console.log(chalk.dim(` Removed old BMAD commands`));
|
|
175
176
|
}
|
|
176
177
|
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Install a custom agent launcher for Auggie
|
|
181
|
+
* @param {string} projectDir - Project directory
|
|
182
|
+
* @param {string} agentName - Agent name (e.g., "fred-commit-poet")
|
|
183
|
+
* @param {string} agentPath - Path to compiled agent (relative to project root)
|
|
184
|
+
* @param {Object} metadata - Agent metadata
|
|
185
|
+
* @returns {Object} Installation result
|
|
186
|
+
*/
|
|
187
|
+
async installCustomAgentLauncher(projectDir, agentName, agentPath, metadata) {
|
|
188
|
+
// Auggie uses .augment/commands directory
|
|
189
|
+
const location = path.join(projectDir, '.augment', 'commands');
|
|
190
|
+
const bmadCommandsDir = path.join(location, 'bmad');
|
|
191
|
+
const agentsDir = path.join(bmadCommandsDir, 'agents');
|
|
192
|
+
|
|
193
|
+
// Create .augment/commands/bmad/agents directory if it doesn't exist
|
|
194
|
+
await fs.ensureDir(agentsDir);
|
|
195
|
+
|
|
196
|
+
// Create custom agent launcher
|
|
197
|
+
const launcherContent = `---
|
|
198
|
+
description: "Use the ${agentName} custom agent"
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
# ${agentName} Custom Agent
|
|
202
|
+
|
|
203
|
+
**⚠️ IMPORTANT**: Run @${agentPath} first to load the complete agent!
|
|
204
|
+
|
|
205
|
+
This is a launcher for the custom BMAD agent "${agentName}".
|
|
206
|
+
|
|
207
|
+
## Usage
|
|
208
|
+
1. First run: \`${agentPath}\` to load the complete agent
|
|
209
|
+
2. Then use this command to activate ${agentName}
|
|
210
|
+
|
|
211
|
+
The agent will follow the persona and instructions from the main agent file.
|
|
212
|
+
|
|
213
|
+
## Module
|
|
214
|
+
BMAD Custom agent
|
|
215
|
+
`;
|
|
216
|
+
|
|
217
|
+
const fileName = `custom-${agentName.toLowerCase()}.md`;
|
|
218
|
+
const launcherPath = path.join(agentsDir, fileName);
|
|
219
|
+
|
|
220
|
+
// Write the launcher file
|
|
221
|
+
await fs.writeFile(launcherPath, launcherContent, 'utf8');
|
|
222
|
+
|
|
223
|
+
return {
|
|
224
|
+
ide: 'auggie',
|
|
225
|
+
path: path.relative(projectDir, launcherPath),
|
|
226
|
+
command: agentName,
|
|
227
|
+
type: 'custom-agent-launcher',
|
|
228
|
+
};
|
|
229
|
+
}
|
|
177
230
|
}
|
|
178
231
|
|
|
179
232
|
module.exports = { AuggieSetup };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const path = require('node:path');
|
|
2
|
+
const fs = require('fs-extra');
|
|
2
3
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
4
|
const chalk = require('chalk');
|
|
4
5
|
const { getProjectRoot, getSourcePath, getModulePath } = require('../../../lib/project-root');
|
|
@@ -43,7 +44,6 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
43
44
|
const injectionConfigPath = path.join(sourceModulesPath, moduleName, 'sub-modules', 'claude-code', 'injections.yaml');
|
|
44
45
|
|
|
45
46
|
if (await this.exists(injectionConfigPath)) {
|
|
46
|
-
const fs = require('fs-extra');
|
|
47
47
|
const yaml = require('js-yaml');
|
|
48
48
|
|
|
49
49
|
try {
|
|
@@ -87,7 +87,6 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
87
87
|
* @param {string} projectDir - Project directory
|
|
88
88
|
*/
|
|
89
89
|
async cleanup(projectDir) {
|
|
90
|
-
const fs = require('fs-extra');
|
|
91
90
|
const bmadCommandsDir = path.join(projectDir, this.configDir, this.commandsDir, 'bmad');
|
|
92
91
|
|
|
93
92
|
if (await fs.pathExists(bmadCommandsDir)) {
|
|
@@ -199,7 +198,6 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
199
198
|
* Read and process file content
|
|
200
199
|
*/
|
|
201
200
|
async readAndProcess(filePath, metadata) {
|
|
202
|
-
const fs = require('fs-extra');
|
|
203
201
|
const content = await fs.readFile(filePath, 'utf8');
|
|
204
202
|
return this.processContent(content, metadata);
|
|
205
203
|
}
|
|
@@ -216,7 +214,6 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
216
214
|
* Get agents from source modules (not installed location)
|
|
217
215
|
*/
|
|
218
216
|
async getAgentsFromSource(sourceDir, selectedModules) {
|
|
219
|
-
const fs = require('fs-extra');
|
|
220
217
|
const agents = [];
|
|
221
218
|
|
|
222
219
|
// Add core agents
|
|
@@ -395,7 +392,6 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
395
392
|
* Inject content at specified point in file
|
|
396
393
|
*/
|
|
397
394
|
async injectContent(projectDir, injection, subagentChoices = null) {
|
|
398
|
-
const fs = require('fs-extra');
|
|
399
395
|
const targetPath = path.join(projectDir, injection.file);
|
|
400
396
|
|
|
401
397
|
if (await this.exists(targetPath)) {
|
|
@@ -421,7 +417,6 @@ class ClaudeCodeSetup extends BaseIdeSetup {
|
|
|
421
417
|
* Copy selected subagents to appropriate Claude agents directory
|
|
422
418
|
*/
|
|
423
419
|
async copySelectedSubagents(projectDir, handlerBaseDir, subagentConfig, choices, location) {
|
|
424
|
-
const fs = require('fs-extra');
|
|
425
420
|
const os = require('node:os');
|
|
426
421
|
|
|
427
422
|
// Determine target directory based on user choice
|
|
@@ -209,6 +209,55 @@ class ClineSetup extends BaseIdeSetup {
|
|
|
209
209
|
console.log(chalk.dim(`Removed ${this.name} BMAD configuration`));
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
+
/**
|
|
213
|
+
* Install a custom agent launcher for Cline
|
|
214
|
+
* @param {string} projectDir - Project directory
|
|
215
|
+
* @param {string} agentName - Agent name (e.g., "fred-commit-poet")
|
|
216
|
+
* @param {string} agentPath - Path to compiled agent (relative to project root)
|
|
217
|
+
* @param {Object} metadata - Agent metadata
|
|
218
|
+
* @returns {Object} Installation result
|
|
219
|
+
*/
|
|
220
|
+
async installCustomAgentLauncher(projectDir, agentName, agentPath, metadata) {
|
|
221
|
+
const clineDir = path.join(projectDir, this.configDir);
|
|
222
|
+
const workflowsDir = path.join(clineDir, this.workflowsDir);
|
|
223
|
+
|
|
224
|
+
// Create .clinerules/workflows directory if it doesn't exist
|
|
225
|
+
await fs.ensureDir(workflowsDir);
|
|
226
|
+
|
|
227
|
+
// Create custom agent launcher workflow
|
|
228
|
+
const launcherContent = `name: ${agentName}
|
|
229
|
+
description: Custom BMAD agent: ${agentName}
|
|
230
|
+
|
|
231
|
+
# ${agentName} Custom Agent
|
|
232
|
+
|
|
233
|
+
**⚠️ IMPORTANT**: Run @${agentPath} first to load the complete agent!
|
|
234
|
+
|
|
235
|
+
This is a launcher for the custom BMAD agent "${agentName}".
|
|
236
|
+
|
|
237
|
+
## Usage
|
|
238
|
+
1. First run: \`${agentPath}\` to load the complete agent
|
|
239
|
+
2. Then use this workflow as ${agentName}
|
|
240
|
+
|
|
241
|
+
The agent will follow the persona and instructions from the main agent file.
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
*Generated by BMAD Method*`;
|
|
246
|
+
|
|
247
|
+
const fileName = `bmad-custom-${agentName.toLowerCase()}.md`;
|
|
248
|
+
const launcherPath = path.join(workflowsDir, fileName);
|
|
249
|
+
|
|
250
|
+
// Write the launcher file
|
|
251
|
+
await fs.writeFile(launcherPath, launcherContent, 'utf8');
|
|
252
|
+
|
|
253
|
+
return {
|
|
254
|
+
ide: 'cline',
|
|
255
|
+
path: path.relative(projectDir, launcherPath),
|
|
256
|
+
command: agentName,
|
|
257
|
+
type: 'custom-agent-launcher',
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
|
|
212
261
|
/**
|
|
213
262
|
* Utility: Ensure directory exists
|
|
214
263
|
*/
|
|
@@ -354,7 +354,7 @@ class CodexSetup extends BaseIdeSetup {
|
|
|
354
354
|
* @returns {Object|null} Info about created command
|
|
355
355
|
*/
|
|
356
356
|
async installCustomAgentLauncher(projectDir, agentName, agentPath, metadata) {
|
|
357
|
-
const destDir = this.getCodexPromptDir();
|
|
357
|
+
const destDir = this.getCodexPromptDir(projectDir, 'project');
|
|
358
358
|
await fs.ensureDir(destDir);
|
|
359
359
|
|
|
360
360
|
const launcherContent = `---
|
|
@@ -379,7 +379,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
379
379
|
await fs.writeFile(launcherPath, launcherContent, 'utf8');
|
|
380
380
|
|
|
381
381
|
return {
|
|
382
|
-
path: launcherPath,
|
|
382
|
+
path: path.relative(projectDir, launcherPath),
|
|
383
383
|
command: `/${fileName.replace('.md', '')}`,
|
|
384
384
|
};
|
|
385
385
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const path = require('node:path');
|
|
2
|
+
const fs = require('fs-extra');
|
|
2
3
|
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
4
|
const chalk = require('chalk');
|
|
4
5
|
const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
@@ -235,6 +236,52 @@ Part of the BMAD ${workflow.module.toUpperCase()} module.
|
|
|
235
236
|
console.log(chalk.dim(`Removed BMAD commands from Crush`));
|
|
236
237
|
}
|
|
237
238
|
}
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Install a custom agent launcher for Crush
|
|
242
|
+
* @param {string} projectDir - Project directory
|
|
243
|
+
* @param {string} agentName - Agent name (e.g., "fred-commit-poet")
|
|
244
|
+
* @param {string} agentPath - Path to compiled agent (relative to project root)
|
|
245
|
+
* @param {Object} metadata - Agent metadata
|
|
246
|
+
* @returns {Object} Installation result
|
|
247
|
+
*/
|
|
248
|
+
async installCustomAgentLauncher(projectDir, agentName, agentPath, metadata) {
|
|
249
|
+
const crushDir = path.join(projectDir, this.configDir);
|
|
250
|
+
const bmadCommandsDir = path.join(crushDir, this.commandsDir, 'bmad');
|
|
251
|
+
|
|
252
|
+
// Create .crush/commands/bmad directory if it doesn't exist
|
|
253
|
+
await fs.ensureDir(bmadCommandsDir);
|
|
254
|
+
|
|
255
|
+
// Create custom agent launcher
|
|
256
|
+
const launcherContent = `# ${agentName} Custom Agent
|
|
257
|
+
|
|
258
|
+
**⚠️ IMPORTANT**: Run @${agentPath} first to load the complete agent!
|
|
259
|
+
|
|
260
|
+
This is a launcher for the custom BMAD agent "${agentName}".
|
|
261
|
+
|
|
262
|
+
## Usage
|
|
263
|
+
1. First run: \`${agentPath}\` to load the complete agent
|
|
264
|
+
2. Then use this command to activate ${agentName}
|
|
265
|
+
|
|
266
|
+
The agent will follow the persona and instructions from the main agent file.
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
*Generated by BMAD Method*`;
|
|
271
|
+
|
|
272
|
+
const fileName = `custom-${agentName.toLowerCase()}.md`;
|
|
273
|
+
const launcherPath = path.join(bmadCommandsDir, fileName);
|
|
274
|
+
|
|
275
|
+
// Write the launcher file
|
|
276
|
+
await fs.writeFile(launcherPath, launcherContent, 'utf8');
|
|
277
|
+
|
|
278
|
+
return {
|
|
279
|
+
ide: 'crush',
|
|
280
|
+
path: path.relative(projectDir, launcherPath),
|
|
281
|
+
command: agentName,
|
|
282
|
+
type: 'custom-agent-launcher',
|
|
283
|
+
};
|
|
284
|
+
}
|
|
238
285
|
}
|
|
239
286
|
|
|
240
287
|
module.exports = { CrushSetup };
|
|
@@ -201,6 +201,53 @@ ${contentWithoutFrontmatter}
|
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Install a custom agent launcher for Gemini
|
|
207
|
+
* @param {string} projectDir - Project directory
|
|
208
|
+
* @param {string} agentName - Agent name (e.g., "fred-commit-poet")
|
|
209
|
+
* @param {string} agentPath - Path to compiled agent (relative to project root)
|
|
210
|
+
* @param {Object} metadata - Agent metadata
|
|
211
|
+
* @returns {Object} Installation result
|
|
212
|
+
*/
|
|
213
|
+
async installCustomAgentLauncher(projectDir, agentName, agentPath, metadata) {
|
|
214
|
+
const geminiDir = path.join(projectDir, this.configDir);
|
|
215
|
+
const commandsDir = path.join(geminiDir, this.commandsDir);
|
|
216
|
+
|
|
217
|
+
// Create .gemini/commands directory if it doesn't exist
|
|
218
|
+
await fs.ensureDir(commandsDir);
|
|
219
|
+
|
|
220
|
+
// Create custom agent launcher in TOML format
|
|
221
|
+
const launcherContent = `description = "Custom BMAD Agent: ${agentName}"
|
|
222
|
+
prompt = """
|
|
223
|
+
**⚠️ IMPORTANT**: Run @${agentPath} first to load the complete agent!
|
|
224
|
+
|
|
225
|
+
This is a launcher for the custom BMAD agent "${agentName}".
|
|
226
|
+
|
|
227
|
+
## Usage
|
|
228
|
+
1. First run: \`${agentPath}\` to load the complete agent
|
|
229
|
+
2. Then use this command to activate ${agentName}
|
|
230
|
+
|
|
231
|
+
The agent will follow the persona and instructions from the main agent file.
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
*Generated by BMAD Method*
|
|
236
|
+
"""`;
|
|
237
|
+
|
|
238
|
+
const fileName = `bmad-custom-${agentName.toLowerCase()}.toml`;
|
|
239
|
+
const launcherPath = path.join(commandsDir, fileName);
|
|
240
|
+
|
|
241
|
+
// Write the launcher file
|
|
242
|
+
await fs.writeFile(launcherPath, launcherContent, 'utf8');
|
|
243
|
+
|
|
244
|
+
return {
|
|
245
|
+
ide: 'gemini',
|
|
246
|
+
path: path.relative(projectDir, launcherPath),
|
|
247
|
+
command: agentName,
|
|
248
|
+
type: 'custom-agent-launcher',
|
|
249
|
+
};
|
|
250
|
+
}
|
|
204
251
|
}
|
|
205
252
|
|
|
206
253
|
module.exports = { GeminiSetup };
|
|
@@ -6,13 +6,13 @@ const { AgentCommandGenerator } = require('./shared/agent-command-generator');
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* GitHub Copilot setup handler
|
|
9
|
-
* Creates
|
|
9
|
+
* Creates agents in .github/agents/ and configures VS Code settings
|
|
10
10
|
*/
|
|
11
11
|
class GitHubCopilotSetup extends BaseIdeSetup {
|
|
12
12
|
constructor() {
|
|
13
13
|
super('github-copilot', 'GitHub Copilot', true); // preferred IDE
|
|
14
14
|
this.configDir = '.github';
|
|
15
|
-
this.
|
|
15
|
+
this.agentsDir = 'agents';
|
|
16
16
|
this.vscodeDir = '.vscode';
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -50,7 +50,8 @@ class GitHubCopilotSetup extends BaseIdeSetup {
|
|
|
50
50
|
message: 'Maximum requests per session (1-50)?',
|
|
51
51
|
default: '15',
|
|
52
52
|
validate: (input) => {
|
|
53
|
-
const num = parseInt(input);
|
|
53
|
+
const num = parseInt(input, 10);
|
|
54
|
+
if (isNaN(num)) return 'Enter a valid number 1-50';
|
|
54
55
|
return (num >= 1 && num <= 50) || 'Enter 1-50';
|
|
55
56
|
},
|
|
56
57
|
},
|
|
@@ -97,10 +98,10 @@ class GitHubCopilotSetup extends BaseIdeSetup {
|
|
|
97
98
|
const config = options.preCollectedConfig || {};
|
|
98
99
|
await this.configureVsCodeSettings(projectDir, { ...options, ...config });
|
|
99
100
|
|
|
100
|
-
// Create .github/
|
|
101
|
+
// Create .github/agents directory
|
|
101
102
|
const githubDir = path.join(projectDir, this.configDir);
|
|
102
|
-
const
|
|
103
|
-
await this.ensureDir(
|
|
103
|
+
const agentsDir = path.join(githubDir, this.agentsDir);
|
|
104
|
+
await this.ensureDir(agentsDir);
|
|
104
105
|
|
|
105
106
|
// Clean up any existing BMAD files before reinstalling
|
|
106
107
|
await this.cleanup(projectDir);
|
|
@@ -109,29 +110,29 @@ class GitHubCopilotSetup extends BaseIdeSetup {
|
|
|
109
110
|
const agentGen = new AgentCommandGenerator(this.bmadFolderName);
|
|
110
111
|
const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
|
|
111
112
|
|
|
112
|
-
// Create
|
|
113
|
-
let
|
|
113
|
+
// Create agent files with bmd- prefix
|
|
114
|
+
let agentCount = 0;
|
|
114
115
|
for (const artifact of agentArtifacts) {
|
|
115
116
|
const content = artifact.content;
|
|
116
|
-
const
|
|
117
|
+
const agentContent = await this.createAgentContent({ module: artifact.module, name: artifact.name }, content);
|
|
117
118
|
|
|
118
|
-
// Use
|
|
119
|
-
const targetPath = path.join(
|
|
120
|
-
await this.writeFile(targetPath,
|
|
121
|
-
|
|
119
|
+
// Use bmd- prefix: bmd-custom-{module}-{name}.agent.md
|
|
120
|
+
const targetPath = path.join(agentsDir, `bmd-custom-${artifact.module}-${artifact.name}.agent.md`);
|
|
121
|
+
await this.writeFile(targetPath, agentContent);
|
|
122
|
+
agentCount++;
|
|
122
123
|
|
|
123
|
-
console.log(chalk.green(` ✓ Created
|
|
124
|
+
console.log(chalk.green(` ✓ Created agent: bmd-custom-${artifact.module}-${artifact.name}`));
|
|
124
125
|
}
|
|
125
126
|
|
|
126
127
|
console.log(chalk.green(`✓ ${this.name} configured:`));
|
|
127
|
-
console.log(chalk.dim(` - ${
|
|
128
|
-
console.log(chalk.dim(` -
|
|
128
|
+
console.log(chalk.dim(` - ${agentCount} agents created`));
|
|
129
|
+
console.log(chalk.dim(` - Agents directory: ${path.relative(projectDir, agentsDir)}`));
|
|
129
130
|
console.log(chalk.dim(` - VS Code settings configured`));
|
|
130
|
-
console.log(chalk.dim('\n
|
|
131
|
+
console.log(chalk.dim('\n Agents available in VS Code Chat view'));
|
|
131
132
|
|
|
132
133
|
return {
|
|
133
134
|
success: true,
|
|
134
|
-
|
|
135
|
+
agents: agentCount,
|
|
135
136
|
settings: true,
|
|
136
137
|
};
|
|
137
138
|
}
|
|
@@ -187,9 +188,10 @@ class GitHubCopilotSetup extends BaseIdeSetup {
|
|
|
187
188
|
// Manual configuration - use pre-collected settings
|
|
188
189
|
const manual = options.manualSettings || {};
|
|
189
190
|
|
|
191
|
+
const maxRequests = parseInt(manual.maxRequests || '15', 10);
|
|
190
192
|
bmadSettings = {
|
|
191
193
|
'chat.agent.enabled': true,
|
|
192
|
-
'chat.agent.maxRequests':
|
|
194
|
+
'chat.agent.maxRequests': isNaN(maxRequests) ? 15 : maxRequests,
|
|
193
195
|
'github.copilot.chat.agent.runTasks': manual.runTasks === undefined ? true : manual.runTasks,
|
|
194
196
|
'chat.mcp.discovery.enabled': manual.mcpDiscovery === undefined ? true : manual.mcpDiscovery,
|
|
195
197
|
'github.copilot.chat.agent.autoFix': manual.autoFix === undefined ? true : manual.autoFix,
|
|
@@ -206,9 +208,9 @@ class GitHubCopilotSetup extends BaseIdeSetup {
|
|
|
206
208
|
}
|
|
207
209
|
|
|
208
210
|
/**
|
|
209
|
-
* Create
|
|
211
|
+
* Create agent content
|
|
210
212
|
*/
|
|
211
|
-
async
|
|
213
|
+
async createAgentContent(agent, content) {
|
|
212
214
|
// Extract metadata from launcher frontmatter if present
|
|
213
215
|
const descMatch = content.match(/description:\s*"([^"]+)"/);
|
|
214
216
|
const title = descMatch ? descMatch[1] : this.formatTitle(agent.name);
|
|
@@ -226,30 +228,21 @@ class GitHubCopilotSetup extends BaseIdeSetup {
|
|
|
226
228
|
// Reference: https://code.visualstudio.com/docs/copilot/reference/copilot-vscode-features#_chat-tools
|
|
227
229
|
const tools = [
|
|
228
230
|
'changes', // List of source control changes
|
|
229
|
-
'
|
|
230
|
-
'createDirectory', // Create new directory in workspace
|
|
231
|
-
'createFile', // Create new file in workspace
|
|
232
|
-
'editFiles', // Apply edits to files in workspace
|
|
231
|
+
'edit', // Edit files in your workspace including: createFile, createDirectory, editNotebook, newJupyterNotebook and editFiles
|
|
233
232
|
'fetch', // Fetch content from web page
|
|
234
|
-
'fileSearch', // Search files using glob patterns
|
|
235
233
|
'githubRepo', // Perform code search in GitHub repo
|
|
236
|
-
'listDirectory', // List files in a directory
|
|
237
234
|
'problems', // Add workspace issues from Problems panel
|
|
238
|
-
'
|
|
239
|
-
'
|
|
240
|
-
'runTask', // Run existing task in workspace
|
|
235
|
+
'runCommands', // Runs commands in the terminal including: getTerminalOutput, terminalSelection, terminalLastCommand and runInTerminal
|
|
236
|
+
'runTasks', // Runs tasks and gets their output for your workspace
|
|
241
237
|
'runTests', // Run unit tests in workspace
|
|
242
|
-
'
|
|
243
|
-
'
|
|
244
|
-
'searchResults', // Get search results from Search view
|
|
245
|
-
'terminalLastCommand', // Get last terminal command and output
|
|
246
|
-
'terminalSelection', // Get current terminal selection
|
|
238
|
+
'search', // Search and read files in your workspace, including:fileSearch, textSearch, listDirectory, readFile, codebase and searchResults
|
|
239
|
+
'runSubagent', // Runs a task within an isolated subagent context. Enables efficient organization of tasks and context window management.
|
|
247
240
|
'testFailure', // Get unit test failure information
|
|
248
|
-
'
|
|
241
|
+
'todos', // Tool for managing and tracking todo items for task planning
|
|
249
242
|
'usages', // Find references and navigate definitions
|
|
250
243
|
];
|
|
251
244
|
|
|
252
|
-
let
|
|
245
|
+
let agentContent = `---
|
|
253
246
|
description: "${description.replaceAll('"', String.raw`\"`)}"
|
|
254
247
|
tools: ${JSON.stringify(tools)}
|
|
255
248
|
---
|
|
@@ -260,7 +253,7 @@ ${cleanContent}
|
|
|
260
253
|
|
|
261
254
|
`;
|
|
262
255
|
|
|
263
|
-
return
|
|
256
|
+
return agentContent;
|
|
264
257
|
}
|
|
265
258
|
|
|
266
259
|
/**
|
|
@@ -278,10 +271,10 @@ ${cleanContent}
|
|
|
278
271
|
*/
|
|
279
272
|
async cleanup(projectDir) {
|
|
280
273
|
const fs = require('fs-extra');
|
|
281
|
-
const chatmodesDir = path.join(projectDir, this.configDir, this.chatmodesDir);
|
|
282
274
|
|
|
275
|
+
// Clean up old chatmodes directory
|
|
276
|
+
const chatmodesDir = path.join(projectDir, this.configDir, 'chatmodes');
|
|
283
277
|
if (await fs.pathExists(chatmodesDir)) {
|
|
284
|
-
// Only remove files that start with bmad- prefix
|
|
285
278
|
const files = await fs.readdir(chatmodesDir);
|
|
286
279
|
let removed = 0;
|
|
287
280
|
|
|
@@ -293,7 +286,25 @@ ${cleanContent}
|
|
|
293
286
|
}
|
|
294
287
|
|
|
295
288
|
if (removed > 0) {
|
|
296
|
-
console.log(chalk.dim(` Cleaned up ${removed}
|
|
289
|
+
console.log(chalk.dim(` Cleaned up ${removed} old BMAD chat modes`));
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// Clean up new agents directory
|
|
294
|
+
const agentsDir = path.join(projectDir, this.configDir, this.agentsDir);
|
|
295
|
+
if (await fs.pathExists(agentsDir)) {
|
|
296
|
+
const files = await fs.readdir(agentsDir);
|
|
297
|
+
let removed = 0;
|
|
298
|
+
|
|
299
|
+
for (const file of files) {
|
|
300
|
+
if (file.startsWith('bmd-') && file.endsWith('.agent.md')) {
|
|
301
|
+
await fs.remove(path.join(agentsDir, file));
|
|
302
|
+
removed++;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (removed > 0) {
|
|
307
|
+
console.log(chalk.dim(` Cleaned up ${removed} existing BMAD agents`));
|
|
297
308
|
}
|
|
298
309
|
}
|
|
299
310
|
}
|
|
@@ -307,13 +318,13 @@ ${cleanContent}
|
|
|
307
318
|
* @returns {Object|null} Info about created command
|
|
308
319
|
*/
|
|
309
320
|
async installCustomAgentLauncher(projectDir, agentName, agentPath, metadata) {
|
|
310
|
-
const
|
|
321
|
+
const agentsDir = path.join(projectDir, this.configDir, this.agentsDir);
|
|
311
322
|
|
|
312
323
|
if (!(await this.exists(path.join(projectDir, this.configDir)))) {
|
|
313
324
|
return null; // IDE not configured for this project
|
|
314
325
|
}
|
|
315
326
|
|
|
316
|
-
await this.ensureDir(
|
|
327
|
+
await this.ensureDir(agentsDir);
|
|
317
328
|
|
|
318
329
|
const launcherContent = `You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
319
330
|
|
|
@@ -353,7 +364,7 @@ ${cleanContent}
|
|
|
353
364
|
'usages',
|
|
354
365
|
];
|
|
355
366
|
|
|
356
|
-
const
|
|
367
|
+
const agentContent = `---
|
|
357
368
|
description: "Activates the ${metadata.title || agentName} agent persona."
|
|
358
369
|
tools: ${JSON.stringify(copilotTools)}
|
|
359
370
|
---
|
|
@@ -363,12 +374,12 @@ tools: ${JSON.stringify(copilotTools)}
|
|
|
363
374
|
${launcherContent}
|
|
364
375
|
`;
|
|
365
376
|
|
|
366
|
-
const
|
|
367
|
-
await this.writeFile(
|
|
377
|
+
const agentFilePath = path.join(agentsDir, `bmd-custom-${agentName}.agent.md`);
|
|
378
|
+
await this.writeFile(agentFilePath, agentContent);
|
|
368
379
|
|
|
369
380
|
return {
|
|
370
|
-
path:
|
|
371
|
-
command: `
|
|
381
|
+
path: agentFilePath,
|
|
382
|
+
command: `bmd-custom-${agentName}`,
|
|
372
383
|
};
|
|
373
384
|
}
|
|
374
385
|
}
|