bmad-method 6.0.0-alpha.12 → 6.0.0-alpha.14
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/scripts/discord-helpers.sh +15 -0
- package/.github/workflows/bundle-latest.yaml +79 -27
- package/.github/workflows/discord.yaml +278 -8
- package/.github/workflows/quality.yaml +19 -0
- package/.markdownlint-cli2.yaml +42 -0
- package/.prettierignore +3 -0
- package/CHANGELOG.md +254 -1
- package/CODE_OF_CONDUCT.md +128 -0
- package/README.md +3 -1
- package/bmad-method-6.0.0-alpha.14.tgz +0 -0
- package/docs/agent-customization-guide.md +2 -2
- package/docs/custom-agent-installation.md +58 -90
- package/docs/document-sharding-guide.md +1 -1
- 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/eslint.config.mjs +14 -0
- package/example-custom-content/README.md +4 -0
- package/example-custom-content/agents/commit-poet/commit-poet.agent.yaml +129 -0
- package/example-custom-content/agents/toolsmith/toolsmith-sidecar/instructions.md +70 -0
- package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +111 -0
- package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +70 -0
- package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +114 -0
- package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +134 -0
- package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +161 -0
- package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +103 -0
- package/example-custom-content/agents/toolsmith/toolsmith-sidecar/memories.md +17 -0
- package/example-custom-content/agents/toolsmith/toolsmith.agent.yaml +109 -0
- package/example-custom-content/custom.yaml +3 -0
- package/example-custom-content/workflows/quiz-master/steps/step-01-init.md +168 -0
- package/example-custom-content/workflows/quiz-master/steps/step-02-q1.md +155 -0
- package/example-custom-content/workflows/quiz-master/steps/step-03-q2.md +89 -0
- package/example-custom-content/workflows/quiz-master/steps/step-04-q3.md +36 -0
- package/example-custom-content/workflows/quiz-master/steps/step-05-q4.md +36 -0
- package/example-custom-content/workflows/quiz-master/steps/step-06-q5.md +36 -0
- package/example-custom-content/workflows/quiz-master/steps/step-07-q6.md +36 -0
- package/example-custom-content/workflows/quiz-master/steps/step-08-q7.md +36 -0
- package/example-custom-content/workflows/quiz-master/steps/step-09-q8.md +36 -0
- package/example-custom-content/workflows/quiz-master/steps/step-10-q9.md +36 -0
- package/example-custom-content/workflows/quiz-master/steps/step-11-q10.md +36 -0
- package/example-custom-content/workflows/quiz-master/steps/step-12-results.md +150 -0
- package/example-custom-content/workflows/quiz-master/templates/csv-headers.template +1 -0
- package/example-custom-content/workflows/quiz-master/workflow-plan-quiz-master.md +269 -0
- package/example-custom-content/workflows/quiz-master/workflow.md +54 -0
- package/example-custom-content/workflows/wassup/workflow.md +26 -0
- package/example-custom-module/mwm/README.md +4 -0
- package/example-custom-module/mwm/_module-installer/install-config.yaml +27 -0
- package/example-custom-module/mwm/agents/cbt-coach/cbt-coach-sidecar/cognitive-distortions.md +47 -0
- package/example-custom-module/mwm/agents/cbt-coach/cbt-coach-sidecar/thought-records.md +17 -0
- package/example-custom-module/mwm/agents/cbt-coach/cbt-coach.agent.yaml +150 -0
- package/example-custom-module/mwm/agents/crisis-navigator.agent.yaml +137 -0
- package/example-custom-module/mwm/agents/meditation-guide.agent.yaml +137 -0
- package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/insights.md +13 -0
- package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/instructions.md +30 -0
- package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/memories.md +13 -0
- package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/patterns.md +17 -0
- package/example-custom-module/mwm/agents/wellness-companion/wellness-companion.agent.yaml +124 -0
- package/example-custom-module/mwm/workflows/cbt-thought-record/README.md +31 -0
- package/example-custom-module/mwm/workflows/cbt-thought-record/workflow.md +45 -0
- package/example-custom-module/mwm/workflows/crisis-support/README.md +31 -0
- package/example-custom-module/mwm/workflows/crisis-support/workflow.md +45 -0
- package/example-custom-module/mwm/workflows/daily-checkin/README.md +32 -0
- package/example-custom-module/mwm/workflows/daily-checkin/workflow.md +45 -0
- package/example-custom-module/mwm/workflows/guided-meditation/README.md +31 -0
- package/example-custom-module/mwm/workflows/guided-meditation/workflow.md +45 -0
- package/example-custom-module/mwm/workflows/wellness-journal/README.md +31 -0
- package/example-custom-module/mwm/workflows/wellness-journal/workflow.md +45 -0
- package/package.json +9 -4
- package/src/core/_module-installer/install-config.yaml +5 -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/resources/excalidraw/library-loader.md +2 -2
- 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 +158 -0
- package/src/core/workflows/party-mode/workflow.md +206 -0
- package/src/modules/bmb/README.md +153 -86
- package/src/modules/bmb/_module-installer/install-config.yaml +4 -9
- package/src/modules/bmb/_module-installer/installer.js +76 -0
- package/src/modules/bmb/agents/bmad-builder.agent.yaml +75 -38
- package/src/modules/bmb/docs/{agent-menu-patterns.md → agents/agent-menu-patterns.md} +6 -6
- package/src/modules/bmb/docs/{expert-agent-architecture.md → agents/expert-agent-architecture.md} +20 -20
- package/src/modules/bmb/docs/agents/kb.csv +0 -0
- package/src/modules/bmb/docs/{module-agent-architecture.md → agents/module-agent-architecture.md} +46 -46
- package/src/modules/bmb/docs/{simple-agent-architecture.md → agents/simple-agent-architecture.md} +7 -3
- 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/templates/step-01-init-continuable-template.md +241 -0
- package/src/modules/bmb/docs/workflows/templates/step-1b-template.md +223 -0
- package/src/modules/bmb/docs/workflows/templates/step-file.md +139 -0
- package/src/modules/bmb/docs/workflows/templates/step-template.md +290 -0
- package/src/modules/bmb/docs/workflows/templates/workflow-template.md +104 -0
- package/src/modules/bmb/docs/workflows/templates/workflow.md +58 -0
- package/src/modules/bmb/docs/workflows/terms.md +97 -0
- package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/README.md +4 -4
- package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +8 -8
- package/src/modules/bmb/reference/agents/module-examples/README.md +1 -1
- package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +7 -7
- package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +7 -7
- 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 +176 -0
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +120 -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 +153 -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 +29 -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-module/steps/step-01-init.md +155 -0
- package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +169 -0
- package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +217 -0
- package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +267 -0
- package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +228 -0
- package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +233 -0
- package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +296 -0
- package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +228 -0
- package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +186 -0
- package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +308 -0
- package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +336 -0
- package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +335 -0
- package/src/modules/bmb/workflows/create-module/templates/agent.template.md +317 -0
- package/src/modules/bmb/workflows/create-module/templates/install-config.template.yaml +53 -0
- package/src/modules/bmb/workflows/create-module/templates/installer.template.js +47 -0
- package/src/modules/bmb/workflows/create-module/templates/module-plan.template.md +5 -0
- package/src/modules/bmb/workflows/create-module/templates/workflow-plan-template.md +23 -0
- package/src/modules/bmb/workflows/create-module/validation.md +126 -0
- package/src/modules/bmb/workflows/create-module/workflow.md +55 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +157 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +211 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +250 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +216 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +289 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md +271 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +308 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +284 -0
- package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +187 -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 +217 -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/bmb/{workflows → workflows-legacy}/edit-module/checklist.md +0 -1
- 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/bmgd/workflows/3-technical/game-architecture/instructions.md +8 -8
- package/src/modules/bmm/_module-installer/install-config.yaml +10 -16
- package/src/modules/bmm/agents/analyst.agent.yaml +25 -22
- package/src/modules/bmm/agents/architect.agent.yaml +12 -14
- package/src/modules/bmm/agents/dev.agent.yaml +20 -16
- package/src/modules/bmm/agents/pm.agent.yaml +14 -32
- 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 +44 -10
- package/src/modules/bmm/docs/agents-guide.md +80 -53
- package/src/modules/bmm/docs/bmad-quick-flow.md +528 -0
- package/src/modules/bmm/docs/brownfield-guide.md +25 -39
- package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
- package/src/modules/bmm/docs/faq.md +6 -39
- package/src/modules/bmm/docs/glossary.md +12 -25
- package/src/modules/bmm/docs/images/README.md +37 -0
- package/src/modules/bmm/docs/images/workflow-method-greenfield.excalidraw +960 -1845
- package/src/modules/bmm/docs/images/workflow-method-greenfield.svg +4 -2
- package/src/modules/bmm/docs/quick-flow-solo-dev.md +337 -0
- package/src/modules/bmm/docs/quick-spec-flow.md +5 -5
- package/src/modules/bmm/docs/quick-start.md +9 -25
- package/src/modules/bmm/docs/scale-adaptive-system.md +5 -5
- package/src/modules/bmm/docs/test-architecture.md +90 -24
- package/src/modules/bmm/docs/troubleshooting.md +680 -0
- package/src/modules/bmm/docs/workflow-document-project-reference.md +1 -1
- package/src/modules/bmm/docs/workflows-analysis.md +36 -140
- package/src/modules/bmm/docs/workflows-implementation.md +175 -160
- package/src/modules/bmm/docs/workflows-planning.md +51 -212
- package/src/modules/bmm/docs/workflows-solutioning.md +26 -71
- package/src/modules/bmm/tasks/daily-standup.xml +85 -0
- 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/ci-burn-in.md +1 -1
- 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 +442 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +181 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +236 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +199 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +248 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +258 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +176 -0
- package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +474 -0
- package/src/modules/bmm/workflows/1-analysis/research/research.template.md +15 -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 +238 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +247 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +201 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +238 -0
- package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +485 -0
- package/src/modules/bmm/workflows/1-analysis/research/workflow.md +204 -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 +59 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +12 -200
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +243 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +165 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +420 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +289 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +290 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +270 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +261 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +257 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +298 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +269 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +293 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +223 -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 +49 -0
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +258 -0
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +232 -0
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +271 -0
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +144 -0
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-01-document-discovery.md +189 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-02-prd-analysis.md +177 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-03-epic-coverage-validation.md +178 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-04-ux-alignment.md +138 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-05-epic-quality-review.md +251 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-06-final-assessment.md +132 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/templates/readiness-report-template.md +4 -0
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.md +54 -0
- package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +2 -1
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +224 -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 +354 -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/retrospective/instructions.md +3 -3
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +19 -21
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +11 -10
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +2 -0
- package/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +174 -0
- package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +35 -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 +202 -0
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml +33 -0
- package/src/modules/bmm/workflows/document-project/instructions.md +1 -1
- package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +2 -2
- 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/atdd-checklist-template.md +1 -1
- 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/checklist.md +1 -1
- package/src/modules/bmm/workflows/testarch/ci/github-actions-template.yaml +36 -3
- package/src/modules/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +25 -4
- package/src/modules/bmm/workflows/testarch/ci/instructions.md +20 -3
- 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 +29 -9
- 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 +4 -8
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +4 -8
- package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +4 -8
- package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +4 -9
- 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 +4 -3
- package/tools/cli/bundlers/web-bundler.js +3 -14
- package/tools/cli/commands/build.js +9 -184
- package/tools/cli/commands/install.js +42 -2
- package/tools/cli/installers/lib/core/config-collector.js +94 -10
- package/tools/cli/installers/lib/core/installer.js +389 -55
- package/tools/cli/installers/lib/core/manifest-generator.js +91 -30
- package/tools/cli/installers/lib/core/post-install-sidecar-replacement.js +79 -0
- package/tools/cli/installers/lib/custom/handler.js +266 -0
- package/tools/cli/installers/lib/ide/_base-ide.js +10 -0
- package/tools/cli/installers/lib/ide/antigravity.js +51 -7
- package/tools/cli/installers/lib/ide/auggie.js +72 -7
- 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 +66 -6
- package/tools/cli/installers/lib/ide/cursor.js +29 -13
- package/tools/cli/installers/lib/ide/gemini.js +96 -1
- package/tools/cli/installers/lib/ide/github-copilot.js +59 -48
- package/tools/cli/installers/lib/ide/iflow.js +67 -1
- package/tools/cli/installers/lib/ide/kilo.js +74 -0
- package/tools/cli/installers/lib/ide/kiro-cli.js +327 -0
- package/tools/cli/installers/lib/ide/opencode.js +3 -3
- package/tools/cli/installers/lib/ide/qwen.js +54 -0
- package/tools/cli/installers/lib/ide/roo.js +145 -138
- package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
- package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +8 -2
- package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +34 -19
- package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +18 -14
- package/tools/cli/installers/lib/ide/templates/agent-command-template.md +1 -1
- package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
- package/tools/cli/installers/lib/ide/trae.js +47 -0
- package/tools/cli/installers/lib/modules/manager.js +486 -53
- package/tools/cli/lib/agent/compiler.js +210 -27
- package/tools/cli/lib/agent/installer.js +140 -30
- package/tools/cli/lib/agent-analyzer.js +46 -18
- package/tools/cli/lib/config.js +2 -1
- package/tools/cli/lib/ui.js +269 -13
- package/tools/cli/lib/yaml-xml-builder.js +123 -39
- package/tools/platform-codes.yaml +12 -0
- package/tools/schema/agent.js +229 -20
- package/tools/validate-svg-changes.sh +356 -0
- 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-module/README.md +0 -229
- package/src/modules/bmb/workflows/create-module/brainstorm-context.md +0 -137
- package/src/modules/bmb/workflows/create-module/checklist.md +0 -235
- package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
- package/src/modules/bmb/workflows/create-module/installer-templates/installer.js +0 -231
- package/src/modules/bmb/workflows/create-module/instructions.md +0 -577
- package/src/modules/bmb/workflows/create-module/module-structure.md +0 -400
- package/src/modules/bmb/workflows/create-module/workflow.yaml +0 -52
- 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/bmgd/workflows/4-production/code-review/checklist.md +0 -22
- 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/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/3-solutioning/create-epics-and-stories/epics-template.md +0 -80
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/instructions.md +0 -616
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.yaml +0 -63
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +0 -169
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +0 -332
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/template.md +0 -146
- package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +0 -64
- package/src/modules/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -12
- 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/tools/cli/commands/agent-install.js +0 -409
- /package/src/modules/bmb/docs/{agent-compilation.md → agents/agent-compilation.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}/edit-module/README.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
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
</init>
|
|
9
9
|
<commands critical="MANDATORY">
|
|
10
10
|
<input>Number → cmd[n] | Text → fuzzy match *commands</input>
|
|
11
|
-
<extract>exec, tmpl, data, action,
|
|
11
|
+
<extract>exec, tmpl, data, action, validate-workflow</extract>
|
|
12
12
|
<handlers>
|
|
13
|
-
<handler type="
|
|
14
|
-
When command has: run-workflow="path/to/x.yaml" You MUST:
|
|
13
|
+
<handler type="progressive-workflow">
|
|
14
|
+
When command has: run-progressive-workflow="path/to/x.yaml" You MUST:
|
|
15
15
|
1. CRITICAL: Always LOAD {project-root}/{bmad_folder}/core/tasks/workflow.xml
|
|
16
|
-
2. READ its entire contents - the is the CORE OS for EXECUTING
|
|
16
|
+
2. READ its entire contents - the is the CORE OS for EXECUTING workflows
|
|
17
17
|
3. Pass the yaml path as 'workflow-config' parameter to those instructions
|
|
18
18
|
4. Follow workflow.xml instructions EXACTLY as written
|
|
19
19
|
5. Save outputs after EACH section (never batch)
|
|
@@ -21,18 +21,8 @@
|
|
|
21
21
|
</bundled-files>
|
|
22
22
|
<commands critical="MANDATORY">
|
|
23
23
|
<input>Number → cmd[n] | Text → fuzzy match *commands</input>
|
|
24
|
-
<extract>exec, tmpl, data, action,
|
|
24
|
+
<extract>exec, tmpl, data, action, validate-workflow</extract>
|
|
25
25
|
<handlers>
|
|
26
|
-
<handler type="run-workflow">
|
|
27
|
-
When command has: run-workflow="path/to/x.yaml" You MUST:
|
|
28
|
-
1. CRITICAL: Locate <file id="{bmad_folder}/core/tasks/workflow.xml"> in this XML bundle
|
|
29
|
-
2. Extract and READ its CDATA content - this is the CORE OS for EXECUTING workflows
|
|
30
|
-
3. Locate <file id="path/to/x.yaml"> for the workflow config
|
|
31
|
-
4. Pass the yaml content as 'workflow-config' parameter to workflow.xml instructions
|
|
32
|
-
5. Follow workflow.xml instructions EXACTLY as written
|
|
33
|
-
6. When workflow references other files, locate them by id in <file> elements
|
|
34
|
-
7. Save outputs after EACH section (never batch)
|
|
35
|
-
</handler>
|
|
36
26
|
<handler type="action">
|
|
37
27
|
When command has: action="#id" → Find prompt with id="id" in current agent XML, execute its content
|
|
38
28
|
When command has: action="text" → Execute the text directly as a critical action prompt
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
<rules>
|
|
2
|
-
|
|
3
|
-
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- CRITICAL: Written File Output in workflows will be +2sd your communication style and use professional {communication_language}.
|
|
2
|
+
<r>ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.</r>
|
|
3
|
+
<!-- TTS_INJECTION:agent-tts -->
|
|
4
|
+
<r> Stay in character until exit selected</r>
|
|
5
|
+
<r> Display Menu items as the item dictates and in the order given.</r>
|
|
6
|
+
<r> Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml</r>
|
|
8
7
|
</rules>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
<handler type="exec">
|
|
2
|
+
When menu item or handler has: exec="path/to/file.md":
|
|
3
|
+
1. Actually LOAD and read the entire file and EXECUTE the file at that path - do not improvise
|
|
4
|
+
2. Read the complete file and follow all instructions within it
|
|
5
|
+
3. If there is data="some/path/data-foo.md" with the same item, pass that data path to the executed file as context.
|
|
6
|
+
</handler>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<handler type="multi">
|
|
2
|
+
When menu item has: type="multi" with nested handlers
|
|
3
|
+
1. Display the multi item text as a single menu option
|
|
4
|
+
2. Parse all nested handlers within the multi item
|
|
5
|
+
3. For each nested handler:
|
|
6
|
+
- Use the 'match' attribute for fuzzy matching user input (or Exact Match of character code in brackets [])
|
|
7
|
+
- Execute based on handler attributes (exec, workflow, action)
|
|
8
|
+
4. When user input matches a handler's 'match' pattern:
|
|
9
|
+
- For exec="path/to/file.md": follow the `handler type="exec"` instructions
|
|
10
|
+
- For workflow="path/to/workflow.yaml": follow the `handler type="workflow"` instructions
|
|
11
|
+
- For action="...": Perform the specified action directly
|
|
12
|
+
5. Support both exact matches and fuzzy matching based on the match attribute
|
|
13
|
+
6. If no handler matches, prompt user to choose from available options
|
|
14
|
+
</handler>
|
package/test/README.md
CHANGED
|
@@ -116,7 +116,7 @@ Tests required menu structure:
|
|
|
116
116
|
|
|
117
117
|
Tests menu item command targets:
|
|
118
118
|
|
|
119
|
-
- ✅ Valid: All
|
|
119
|
+
- ✅ Valid: All 6 command types (`workflow`, `validate-workflow`, `exec`, `action`, `tmpl`, `data`)
|
|
120
120
|
- ✅ Valid: Multiple command targets in one menu item
|
|
121
121
|
- ❌ Invalid: No command target fields
|
|
122
122
|
- ❌ Invalid: Empty string command targets
|
package/tools/cli/README.md
CHANGED
|
@@ -162,6 +162,7 @@ The installer supports **15 IDE environments** through a base-derived architectu
|
|
|
162
162
|
| `gemini` | Google Gemini | `.gemini/` |
|
|
163
163
|
| `qwen` | Qwen | `.qwen/` |
|
|
164
164
|
| `roo` | Roo | `.roo/` |
|
|
165
|
+
| `rovo-dev` | Rovo | `.rovodev/` |
|
|
165
166
|
| `trae` | Trae | `.trae/` |
|
|
166
167
|
| `iflow` | iFlow | `.iflow/` |
|
|
167
168
|
| `kilo` | Kilo | `.kilo/` |
|
|
@@ -603,6 +604,6 @@ node tools/cli/regenerate-manifests.js
|
|
|
603
604
|
|
|
604
605
|
## Support
|
|
605
606
|
|
|
606
|
-
- **Issues**: https://github.com/bmad-code-org/BMAD-METHOD/issues
|
|
607
|
-
- **Discord**: https://discord.gg/gk8jAdXWmj (#general-dev, #bugs-issues)
|
|
608
|
-
- **YouTube**: https://www.youtube.com/@BMadCode
|
|
607
|
+
- **Issues**: <https://github.com/bmad-code-org/BMAD-METHOD/issues>
|
|
608
|
+
- **Discord**: <https://discord.gg/gk8jAdXWmj> (#general-dev, #bugs-issues)
|
|
609
|
+
- **YouTube**: <https://www.youtube.com/@BMadCode>
|
|
@@ -748,10 +748,9 @@ class WebBundler {
|
|
|
748
748
|
}
|
|
749
749
|
}
|
|
750
750
|
|
|
751
|
-
// Extract workflow references
|
|
751
|
+
// Extract workflow references from agent files
|
|
752
752
|
const workflowPatterns = [
|
|
753
753
|
/workflow="([^"]+)"/g, // Menu items with workflow attribute
|
|
754
|
-
/run-workflow="([^"]+)"/g, // Commands with run-workflow attribute
|
|
755
754
|
/validate-workflow="([^"]+)"/g, // Validation workflow references
|
|
756
755
|
];
|
|
757
756
|
|
|
@@ -789,16 +788,6 @@ class WebBundler {
|
|
|
789
788
|
// Match: <item cmd="..." workflow="workflowPath">...</item>
|
|
790
789
|
const itemWorkflowPattern = new RegExp(`\\s*<item\\s+[^>]*workflow="[^"]*${escapedPath}"[^>]*>.*?</item>\\s*`, 'gs');
|
|
791
790
|
modifiedXml = modifiedXml.replace(itemWorkflowPattern, '');
|
|
792
|
-
|
|
793
|
-
// Pattern 2: Remove <item> tags with run-workflow attribute
|
|
794
|
-
// Match: <item cmd="..." run-workflow="workflowPath">...</item>
|
|
795
|
-
const itemRunWorkflowPattern = new RegExp(`\\s*<item\\s+[^>]*run-workflow="[^"]*${escapedPath}"[^>]*>.*?</item>\\s*`, 'gs');
|
|
796
|
-
modifiedXml = modifiedXml.replace(itemRunWorkflowPattern, '');
|
|
797
|
-
|
|
798
|
-
// Pattern 3: Remove <c> tags with run-workflow attribute (legacy)
|
|
799
|
-
// Match: <c cmd="..." run-workflow="workflowPath">...</c>
|
|
800
|
-
const cPattern = new RegExp(`\\s*<c\\s+[^>]*run-workflow="[^"]*${escapedPath}"[^>]*>.*?</c>\\s*`, 'gs');
|
|
801
|
-
modifiedXml = modifiedXml.replace(cPattern, '');
|
|
802
791
|
}
|
|
803
792
|
|
|
804
793
|
return modifiedXml;
|
|
@@ -1421,11 +1410,11 @@ class WebBundler {
|
|
|
1421
1410
|
const menuItems = [];
|
|
1422
1411
|
|
|
1423
1412
|
if (!hasHelp) {
|
|
1424
|
-
menuItems.push(`${indent}<item cmd="*
|
|
1413
|
+
menuItems.push(`${indent}<item cmd="*menu">[M] Redisplay Menu Options</item>`);
|
|
1425
1414
|
}
|
|
1426
1415
|
|
|
1427
1416
|
if (!hasExit) {
|
|
1428
|
-
menuItems.push(`${indent}<item cmd="*
|
|
1417
|
+
menuItems.push(`${indent}<item cmd="*dismiss">[D] Dismiss Agent</item>`);
|
|
1429
1418
|
}
|
|
1430
1419
|
|
|
1431
1420
|
if (menuItems.length === 0) {
|
|
@@ -28,9 +28,8 @@ module.exports = {
|
|
|
28
28
|
command: 'build [agent]',
|
|
29
29
|
description: 'Build agent XML files from YAML sources',
|
|
30
30
|
options: [
|
|
31
|
-
['-a, --all', '
|
|
31
|
+
['-a, --all', 'Build all agents'],
|
|
32
32
|
['-d, --directory <path>', 'Project directory', '.'],
|
|
33
|
-
['--force', 'Force rebuild even if up to date'],
|
|
34
33
|
],
|
|
35
34
|
action: async (agentName, options) => {
|
|
36
35
|
try {
|
|
@@ -54,13 +53,15 @@ module.exports = {
|
|
|
54
53
|
|
|
55
54
|
if (options.all) {
|
|
56
55
|
// Build all agents
|
|
57
|
-
await buildAllAgents(projectDir
|
|
56
|
+
await buildAllAgents(projectDir);
|
|
58
57
|
} else if (agentName) {
|
|
59
58
|
// Build specific agent
|
|
60
|
-
await buildAgent(projectDir, agentName
|
|
59
|
+
await buildAgent(projectDir, agentName);
|
|
61
60
|
} else {
|
|
62
|
-
// No agent specified,
|
|
63
|
-
|
|
61
|
+
// No agent specified, list available agents
|
|
62
|
+
console.log(chalk.yellow('No agent specified. Use --all to build all agents or specify an agent name.'));
|
|
63
|
+
console.log(chalk.dim('\nAvailable agents:'));
|
|
64
|
+
await listAvailableAgents(projectDir);
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
process.exit(0);
|
|
@@ -77,7 +78,7 @@ module.exports = {
|
|
|
77
78
|
/**
|
|
78
79
|
* Build a specific agent
|
|
79
80
|
*/
|
|
80
|
-
async function buildAgent(projectDir, agentName
|
|
81
|
+
async function buildAgent(projectDir, agentName) {
|
|
81
82
|
// First check standalone agents in bmad/agents/{agentname}/
|
|
82
83
|
const standaloneAgentDir = path.join(projectDir, 'bmad', 'agents', agentName);
|
|
83
84
|
let standaloneYamlPath = path.join(standaloneAgentDir, `${agentName}.agent.yaml`);
|
|
@@ -95,15 +96,6 @@ async function buildAgent(projectDir, agentName, force = false) {
|
|
|
95
96
|
const yamlFileName = path.basename(standaloneYamlPath, '.agent.yaml');
|
|
96
97
|
const outputPath = path.join(standaloneAgentDir, `${yamlFileName}.md`);
|
|
97
98
|
|
|
98
|
-
// Check if rebuild needed
|
|
99
|
-
if (!force && (await fs.pathExists(outputPath))) {
|
|
100
|
-
const needsRebuild = await checkIfNeedsRebuild(standaloneYamlPath, outputPath, projectDir, agentName);
|
|
101
|
-
if (!needsRebuild) {
|
|
102
|
-
console.log(chalk.dim(` ${agentName}: already up to date`));
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
99
|
// Build the standalone agent
|
|
108
100
|
console.log(chalk.cyan(` Building standalone agent ${agentName}...`));
|
|
109
101
|
|
|
@@ -130,15 +122,6 @@ async function buildAgent(projectDir, agentName, force = false) {
|
|
|
130
122
|
if (await fs.pathExists(agentYamlPath)) {
|
|
131
123
|
found = true;
|
|
132
124
|
|
|
133
|
-
// Check if rebuild needed
|
|
134
|
-
if (!force && (await fs.pathExists(outputPath))) {
|
|
135
|
-
const needsRebuild = await checkIfNeedsRebuild(agentYamlPath, outputPath, projectDir, agentName);
|
|
136
|
-
if (!needsRebuild) {
|
|
137
|
-
console.log(chalk.dim(` ${agentName}: already up to date`));
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
125
|
// Build the agent
|
|
143
126
|
console.log(chalk.cyan(` Building ${agentName}...`));
|
|
144
127
|
|
|
@@ -162,9 +145,8 @@ async function buildAgent(projectDir, agentName, force = false) {
|
|
|
162
145
|
/**
|
|
163
146
|
* Build all agents
|
|
164
147
|
*/
|
|
165
|
-
async function buildAllAgents(projectDir
|
|
148
|
+
async function buildAllAgents(projectDir) {
|
|
166
149
|
let builtCount = 0;
|
|
167
|
-
let skippedCount = 0;
|
|
168
150
|
|
|
169
151
|
// First, build standalone agents in bmad/agents/
|
|
170
152
|
const standaloneAgentsDir = path.join(projectDir, 'bmad', 'agents');
|
|
@@ -193,16 +175,6 @@ async function buildAllAgents(projectDir, force = false) {
|
|
|
193
175
|
const agentName = path.basename(agentFile, '.agent.yaml');
|
|
194
176
|
const outputPath = path.join(agentDir, `${agentName}.md`);
|
|
195
177
|
|
|
196
|
-
// Check if rebuild needed
|
|
197
|
-
if (!force && (await fs.pathExists(outputPath))) {
|
|
198
|
-
const needsRebuild = await checkIfNeedsRebuild(agentYamlPath, outputPath, projectDir, agentName);
|
|
199
|
-
if (!needsRebuild) {
|
|
200
|
-
console.log(chalk.dim(` ${agentName}: up to date`));
|
|
201
|
-
skippedCount++;
|
|
202
|
-
continue;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
|
|
206
178
|
console.log(chalk.cyan(` Building standalone agent ${agentName}...`));
|
|
207
179
|
|
|
208
180
|
const customizePath = path.join(projectDir, 'bmad', '_cfg', 'agents', `${agentName}.customize.yaml`);
|
|
@@ -239,16 +211,6 @@ async function buildAllAgents(projectDir, force = false) {
|
|
|
239
211
|
const agentYamlPath = path.join(agentsDir, file);
|
|
240
212
|
const outputPath = path.join(agentsDir, `${agentName}.md`);
|
|
241
213
|
|
|
242
|
-
// Check if rebuild needed
|
|
243
|
-
if (!force && (await fs.pathExists(outputPath))) {
|
|
244
|
-
const needsRebuild = await checkIfNeedsRebuild(agentYamlPath, outputPath, projectDir, agentName);
|
|
245
|
-
if (!needsRebuild) {
|
|
246
|
-
console.log(chalk.dim(` ${agentName}: up to date`));
|
|
247
|
-
skippedCount++;
|
|
248
|
-
continue;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
|
|
252
214
|
console.log(chalk.cyan(` Building ${agentName}...`));
|
|
253
215
|
|
|
254
216
|
const customizePath = path.join(projectDir, '.claude', '_cfg', 'agents', `${agentName}.customize.yaml`);
|
|
@@ -263,143 +225,6 @@ async function buildAllAgents(projectDir, force = false) {
|
|
|
263
225
|
}
|
|
264
226
|
|
|
265
227
|
console.log(chalk.green(`\n✓ Built ${builtCount} agent(s)`));
|
|
266
|
-
if (skippedCount > 0) {
|
|
267
|
-
console.log(chalk.dim(` Skipped ${skippedCount} (already up to date)`));
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* Check what needs rebuilding
|
|
273
|
-
*/
|
|
274
|
-
async function checkBuildStatus(projectDir) {
|
|
275
|
-
const needsRebuild = [];
|
|
276
|
-
const upToDate = [];
|
|
277
|
-
|
|
278
|
-
// Check standalone agents in bmad/agents/
|
|
279
|
-
const standaloneAgentsDir = path.join(projectDir, 'bmad', 'agents');
|
|
280
|
-
if (await fs.pathExists(standaloneAgentsDir)) {
|
|
281
|
-
const agentDirs = await fs.readdir(standaloneAgentsDir);
|
|
282
|
-
|
|
283
|
-
for (const agentDirName of agentDirs) {
|
|
284
|
-
const agentDir = path.join(standaloneAgentsDir, agentDirName);
|
|
285
|
-
|
|
286
|
-
// Skip if not a directory
|
|
287
|
-
const stat = await fs.stat(agentDir);
|
|
288
|
-
if (!stat.isDirectory()) {
|
|
289
|
-
continue;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
// Find any .agent.yaml file in the directory
|
|
293
|
-
const files = await fs.readdir(agentDir);
|
|
294
|
-
const agentFile = files.find((f) => f.endsWith('.agent.yaml'));
|
|
295
|
-
|
|
296
|
-
if (!agentFile) {
|
|
297
|
-
continue;
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
const agentYamlPath = path.join(agentDir, agentFile);
|
|
301
|
-
const agentName = path.basename(agentFile, '.agent.yaml');
|
|
302
|
-
const outputPath = path.join(agentDir, `${agentName}.md`);
|
|
303
|
-
|
|
304
|
-
if (!(await fs.pathExists(outputPath))) {
|
|
305
|
-
needsRebuild.push(`${agentName} (standalone)`);
|
|
306
|
-
} else if (await checkIfNeedsRebuild(agentYamlPath, outputPath, projectDir, agentName)) {
|
|
307
|
-
needsRebuild.push(`${agentName} (standalone)`);
|
|
308
|
-
} else {
|
|
309
|
-
upToDate.push(`${agentName} (standalone)`);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
// Check module agents in .claude/commands/bmad/
|
|
315
|
-
const bmadCommandsDir = path.join(projectDir, '.claude', 'commands', 'bmad');
|
|
316
|
-
if (await fs.pathExists(bmadCommandsDir)) {
|
|
317
|
-
const modules = await fs.readdir(bmadCommandsDir);
|
|
318
|
-
|
|
319
|
-
for (const module of modules) {
|
|
320
|
-
const agentsDir = path.join(bmadCommandsDir, module, 'agents');
|
|
321
|
-
|
|
322
|
-
if (!(await fs.pathExists(agentsDir))) {
|
|
323
|
-
continue;
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
const files = await fs.readdir(agentsDir);
|
|
327
|
-
|
|
328
|
-
for (const file of files) {
|
|
329
|
-
if (!file.endsWith('.agent.yaml')) {
|
|
330
|
-
continue;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
const agentName = file.replace('.agent.yaml', '');
|
|
334
|
-
const agentYamlPath = path.join(agentsDir, file);
|
|
335
|
-
const outputPath = path.join(agentsDir, `${agentName}.md`);
|
|
336
|
-
|
|
337
|
-
if (!(await fs.pathExists(outputPath))) {
|
|
338
|
-
needsRebuild.push(`${agentName} (${module})`);
|
|
339
|
-
} else if (await checkIfNeedsRebuild(agentYamlPath, outputPath, projectDir, agentName)) {
|
|
340
|
-
needsRebuild.push(`${agentName} (${module})`);
|
|
341
|
-
} else {
|
|
342
|
-
upToDate.push(`${agentName} (${module})`);
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
if (needsRebuild.length === 0) {
|
|
349
|
-
console.log(chalk.green('✓ All agents are up to date'));
|
|
350
|
-
} else {
|
|
351
|
-
console.log(chalk.yellow(`${needsRebuild.length} agent(s) need rebuilding:`));
|
|
352
|
-
for (const agent of needsRebuild) {
|
|
353
|
-
console.log(chalk.dim(` - ${agent}`));
|
|
354
|
-
}
|
|
355
|
-
console.log(chalk.dim('\nRun "bmad build --all" to rebuild all agents'));
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
if (upToDate.length > 0) {
|
|
359
|
-
console.log(chalk.dim(`\n${upToDate.length} agent(s) up to date`));
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
/**
|
|
364
|
-
* Check if an agent needs rebuilding by comparing hashes
|
|
365
|
-
*/
|
|
366
|
-
async function checkIfNeedsRebuild(yamlPath, outputPath, projectDir, agentName) {
|
|
367
|
-
// Read the output file to check its metadata
|
|
368
|
-
const outputContent = await fs.readFile(outputPath, 'utf8');
|
|
369
|
-
|
|
370
|
-
// Extract hash from BUILD-META comment
|
|
371
|
-
const metaMatch = outputContent.match(/source:.*\(hash: ([a-f0-9]+)\)/);
|
|
372
|
-
if (!metaMatch) {
|
|
373
|
-
// No metadata, needs rebuild
|
|
374
|
-
return true;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
const storedHash = metaMatch[1];
|
|
378
|
-
|
|
379
|
-
// Calculate current hash
|
|
380
|
-
const currentHash = await builder.calculateFileHash(yamlPath);
|
|
381
|
-
|
|
382
|
-
if (storedHash !== currentHash) {
|
|
383
|
-
return true;
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
// Check customize file if it exists
|
|
387
|
-
const customizePath = path.join(projectDir, '.claude', '_cfg', 'agents', `${agentName}.customize.yaml`);
|
|
388
|
-
if (await fs.pathExists(customizePath)) {
|
|
389
|
-
const customizeMetaMatch = outputContent.match(/customize:.*\(hash: ([a-f0-9]+)\)/);
|
|
390
|
-
if (!customizeMetaMatch) {
|
|
391
|
-
return true;
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
const storedCustomizeHash = customizeMetaMatch[1];
|
|
395
|
-
const currentCustomizeHash = await builder.calculateFileHash(customizePath);
|
|
396
|
-
|
|
397
|
-
if (storedCustomizeHash !== currentCustomizeHash) {
|
|
398
|
-
return true;
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
return false;
|
|
403
228
|
}
|
|
404
229
|
|
|
405
230
|
/**
|
|
@@ -10,7 +10,7 @@ module.exports = {
|
|
|
10
10
|
command: 'install',
|
|
11
11
|
description: 'Install BMAD Core agents and tools',
|
|
12
12
|
options: [],
|
|
13
|
-
action: async () => {
|
|
13
|
+
action: async (options) => {
|
|
14
14
|
try {
|
|
15
15
|
const config = await ui.promptInstall();
|
|
16
16
|
|
|
@@ -58,7 +58,47 @@ module.exports = {
|
|
|
58
58
|
console.log(chalk.green('\n✨ Installation complete!'));
|
|
59
59
|
console.log(chalk.cyan('BMAD Core and Selected Modules have been installed to:'), chalk.bold(result.path));
|
|
60
60
|
console.log(chalk.yellow('\nThank you for helping test the early release version of the new BMad Core and BMad Method!'));
|
|
61
|
-
console.log(chalk.cyan('Stable Beta coming soon - please read the full
|
|
61
|
+
console.log(chalk.cyan('Stable Beta coming soon - please read the full README.md and linked documentation to get started!'));
|
|
62
|
+
|
|
63
|
+
// Run AgentVibes installer if needed
|
|
64
|
+
if (result.needsAgentVibes) {
|
|
65
|
+
console.log(chalk.magenta('\n🎙️ AgentVibes TTS Setup'));
|
|
66
|
+
console.log(chalk.cyan('AgentVibes provides voice synthesis for BMAD agents with:'));
|
|
67
|
+
console.log(chalk.dim(' • ElevenLabs AI (150+ premium voices)'));
|
|
68
|
+
console.log(chalk.dim(' • Piper TTS (50+ free voices)\n'));
|
|
69
|
+
|
|
70
|
+
const readline = require('node:readline');
|
|
71
|
+
const rl = readline.createInterface({
|
|
72
|
+
input: process.stdin,
|
|
73
|
+
output: process.stdout,
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
await new Promise((resolve) => {
|
|
77
|
+
rl.question(chalk.green('Press Enter to start AgentVibes installer...'), () => {
|
|
78
|
+
rl.close();
|
|
79
|
+
resolve();
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
console.log('');
|
|
84
|
+
|
|
85
|
+
// Run AgentVibes installer
|
|
86
|
+
const { execSync } = require('node:child_process');
|
|
87
|
+
try {
|
|
88
|
+
execSync('npx agentvibes@latest install', {
|
|
89
|
+
cwd: result.projectDir,
|
|
90
|
+
stdio: 'inherit',
|
|
91
|
+
shell: true,
|
|
92
|
+
});
|
|
93
|
+
console.log(chalk.green('\n✓ AgentVibes installation complete'));
|
|
94
|
+
} catch {
|
|
95
|
+
console.log(chalk.yellow('\n⚠ AgentVibes installation was interrupted or failed'));
|
|
96
|
+
console.log(chalk.cyan('You can run it manually later with:'));
|
|
97
|
+
console.log(chalk.green(` cd ${result.projectDir}`));
|
|
98
|
+
console.log(chalk.green(' npx agentvibes install\n'));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
62
102
|
process.exit(0);
|
|
63
103
|
}
|
|
64
104
|
} catch (error) {
|
|
@@ -182,15 +182,43 @@ class ConfigCollector {
|
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
// Load module's install config schema
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
// First, try the standard src/modules location
|
|
186
|
+
let installerConfigPath = path.join(getModulePath(moduleName), '_module-installer', 'install-config.yaml');
|
|
187
|
+
|
|
188
|
+
// If not found in src/modules, we need to find it by searching the project
|
|
189
|
+
if (!(await fs.pathExists(installerConfigPath))) {
|
|
190
|
+
// Use the module manager to find the module source
|
|
191
|
+
const { ModuleManager } = require('../modules/manager');
|
|
192
|
+
const moduleManager = new ModuleManager();
|
|
193
|
+
const moduleSourcePath = await moduleManager.findModuleSource(moduleName);
|
|
194
|
+
|
|
195
|
+
if (moduleSourcePath) {
|
|
196
|
+
installerConfigPath = path.join(moduleSourcePath, '_module-installer', 'install-config.yaml');
|
|
197
|
+
}
|
|
198
|
+
}
|
|
187
199
|
|
|
188
200
|
let configPath = null;
|
|
201
|
+
let isCustomModule = false;
|
|
202
|
+
|
|
189
203
|
if (await fs.pathExists(installerConfigPath)) {
|
|
190
204
|
configPath = installerConfigPath;
|
|
191
|
-
} else if (await fs.pathExists(legacyConfigPath)) {
|
|
192
|
-
configPath = legacyConfigPath;
|
|
193
205
|
} else {
|
|
206
|
+
// Check if this is a custom module with custom.yaml
|
|
207
|
+
const { ModuleManager } = require('../modules/manager');
|
|
208
|
+
const moduleManager = new ModuleManager();
|
|
209
|
+
const moduleSourcePath = await moduleManager.findModuleSource(moduleName);
|
|
210
|
+
|
|
211
|
+
if (moduleSourcePath) {
|
|
212
|
+
const rootCustomConfigPath = path.join(moduleSourcePath, 'custom.yaml');
|
|
213
|
+
const moduleInstallerCustomPath = path.join(moduleSourcePath, '_module-installer', 'custom.yaml');
|
|
214
|
+
|
|
215
|
+
if ((await fs.pathExists(rootCustomConfigPath)) || (await fs.pathExists(moduleInstallerCustomPath))) {
|
|
216
|
+
isCustomModule = true;
|
|
217
|
+
// For custom modules, we don't have an install-config schema, so just use existing values
|
|
218
|
+
// The custom.yaml values will be loaded and merged during installation
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
194
222
|
// No config schema for this module - use existing values
|
|
195
223
|
if (this.existingConfig && this.existingConfig[moduleName]) {
|
|
196
224
|
if (!this.collectedConfig[moduleName]) {
|
|
@@ -226,9 +254,31 @@ class ConfigCollector {
|
|
|
226
254
|
}
|
|
227
255
|
this.collectedConfig[moduleName] = { ...this.existingConfig[moduleName] };
|
|
228
256
|
|
|
257
|
+
// Special handling for user_name: ensure it has a value
|
|
258
|
+
if (
|
|
259
|
+
moduleName === 'core' &&
|
|
260
|
+
(!this.collectedConfig[moduleName].user_name || this.collectedConfig[moduleName].user_name === '[USER_NAME]')
|
|
261
|
+
) {
|
|
262
|
+
this.collectedConfig[moduleName].user_name = this.getDefaultUsername();
|
|
263
|
+
}
|
|
264
|
+
|
|
229
265
|
// Also populate allAnswers for cross-referencing
|
|
230
266
|
for (const [key, value] of Object.entries(this.existingConfig[moduleName])) {
|
|
231
|
-
|
|
267
|
+
// Ensure user_name is properly set in allAnswers too
|
|
268
|
+
let finalValue = value;
|
|
269
|
+
if (moduleName === 'core' && key === 'user_name' && (!value || value === '[USER_NAME]')) {
|
|
270
|
+
finalValue = this.getDefaultUsername();
|
|
271
|
+
}
|
|
272
|
+
this.allAnswers[`${moduleName}_${key}`] = finalValue;
|
|
273
|
+
}
|
|
274
|
+
} else if (moduleName === 'core') {
|
|
275
|
+
// No existing core config - ensure we at least have user_name
|
|
276
|
+
if (!this.collectedConfig[moduleName]) {
|
|
277
|
+
this.collectedConfig[moduleName] = {};
|
|
278
|
+
}
|
|
279
|
+
if (!this.collectedConfig[moduleName].user_name) {
|
|
280
|
+
this.collectedConfig[moduleName].user_name = this.getDefaultUsername();
|
|
281
|
+
this.allAnswers[`${moduleName}_user_name`] = this.getDefaultUsername();
|
|
232
282
|
}
|
|
233
283
|
}
|
|
234
284
|
// Show "no config" message for modules with no new questions
|
|
@@ -359,6 +409,25 @@ class ConfigCollector {
|
|
|
359
409
|
return result;
|
|
360
410
|
}
|
|
361
411
|
|
|
412
|
+
/**
|
|
413
|
+
* Get the default username from the system
|
|
414
|
+
* @returns {string} Capitalized username\
|
|
415
|
+
*/
|
|
416
|
+
getDefaultUsername() {
|
|
417
|
+
let result = 'BMad';
|
|
418
|
+
try {
|
|
419
|
+
const os = require('node:os');
|
|
420
|
+
const userInfo = os.userInfo();
|
|
421
|
+
if (userInfo && userInfo.username) {
|
|
422
|
+
const username = userInfo.username;
|
|
423
|
+
result = username.charAt(0).toUpperCase() + username.slice(1);
|
|
424
|
+
}
|
|
425
|
+
} catch {
|
|
426
|
+
// Do nothing, just return 'BMad'
|
|
427
|
+
}
|
|
428
|
+
return result;
|
|
429
|
+
}
|
|
430
|
+
|
|
362
431
|
/**
|
|
363
432
|
* Collect configuration for a single module
|
|
364
433
|
* @param {string} moduleName - Module name
|
|
@@ -377,15 +446,25 @@ class ConfigCollector {
|
|
|
377
446
|
if (!this.allAnswers) {
|
|
378
447
|
this.allAnswers = {};
|
|
379
448
|
}
|
|
380
|
-
// Load module's config
|
|
381
|
-
|
|
382
|
-
|
|
449
|
+
// Load module's config
|
|
450
|
+
// First, try the standard src/modules location
|
|
451
|
+
let installerConfigPath = path.join(getModulePath(moduleName), '_module-installer', 'install-config.yaml');
|
|
452
|
+
|
|
453
|
+
// If not found in src/modules, we need to find it by searching the project
|
|
454
|
+
if (!(await fs.pathExists(installerConfigPath))) {
|
|
455
|
+
// Use the module manager to find the module source
|
|
456
|
+
const { ModuleManager } = require('../modules/manager');
|
|
457
|
+
const moduleManager = new ModuleManager();
|
|
458
|
+
const moduleSourcePath = await moduleManager.findModuleSource(moduleName);
|
|
459
|
+
|
|
460
|
+
if (moduleSourcePath) {
|
|
461
|
+
installerConfigPath = path.join(moduleSourcePath, '_module-installer', 'install-config.yaml');
|
|
462
|
+
}
|
|
463
|
+
}
|
|
383
464
|
|
|
384
465
|
let configPath = null;
|
|
385
466
|
if (await fs.pathExists(installerConfigPath)) {
|
|
386
467
|
configPath = installerConfigPath;
|
|
387
|
-
} else if (await fs.pathExists(legacyConfigPath)) {
|
|
388
|
-
configPath = legacyConfigPath;
|
|
389
468
|
} else {
|
|
390
469
|
// No config for this module
|
|
391
470
|
return;
|
|
@@ -604,6 +683,11 @@ class ConfigCollector {
|
|
|
604
683
|
}
|
|
605
684
|
}
|
|
606
685
|
|
|
686
|
+
// Special handling for user_name: default to system user
|
|
687
|
+
if (moduleName === 'core' && key === 'user_name' && !existingValue) {
|
|
688
|
+
item.default = this.getDefaultUsername();
|
|
689
|
+
}
|
|
690
|
+
|
|
607
691
|
// Determine question type and default value
|
|
608
692
|
let questionType = 'input';
|
|
609
693
|
let defaultValue = item.default;
|