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
package/tools/cli/lib/ui.js
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File: tools/cli/lib/ui.js
|
|
3
|
+
*
|
|
4
|
+
* BMAD Method - Business Model Agile Development Method
|
|
5
|
+
* Repository: https://github.com/paulpreibisch/BMAD-METHOD
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2025 Paul Preibisch
|
|
8
|
+
* Licensed under the Apache License, Version 2.0
|
|
9
|
+
*
|
|
10
|
+
* ---
|
|
11
|
+
*
|
|
12
|
+
* @fileoverview Interactive installation prompts and user input collection for BMAD CLI
|
|
13
|
+
* @context Guides users through installation configuration including core settings, modules, IDEs, and optional AgentVibes TTS
|
|
14
|
+
* @architecture Facade pattern - presents unified installation flow, delegates to Detector/ConfigCollector/IdeManager for specifics
|
|
15
|
+
* @dependencies inquirer (prompts), chalk (formatting), detector.js (existing installation detection)
|
|
16
|
+
* @entrypoints Called by install.js command via ui.promptInstall(), returns complete configuration object
|
|
17
|
+
* @patterns Progressive disclosure (prompts in order), early IDE selection (Windows compat), AgentVibes auto-detection
|
|
18
|
+
* @related installer.js (consumes config), AgentVibes#34 (TTS integration), promptAgentVibes()
|
|
19
|
+
*/
|
|
20
|
+
|
|
1
21
|
const chalk = require('chalk');
|
|
2
22
|
const inquirer = require('inquirer');
|
|
3
23
|
const path = require('node:path');
|
|
@@ -96,8 +116,21 @@ class UI {
|
|
|
96
116
|
|
|
97
117
|
const { installedModuleIds } = await this.getExistingInstallation(confirmedDirectory);
|
|
98
118
|
const coreConfig = await this.collectCoreConfig(confirmedDirectory);
|
|
99
|
-
|
|
100
|
-
|
|
119
|
+
|
|
120
|
+
// Skip module selection during update/reinstall - keep existing modules
|
|
121
|
+
let selectedModules;
|
|
122
|
+
if (actionType === 'update' || actionType === 'reinstall') {
|
|
123
|
+
// Keep all existing installed modules during update/reinstall
|
|
124
|
+
selectedModules = [...installedModuleIds];
|
|
125
|
+
console.log(chalk.cyan('\n📦 Keeping existing modules: ') + selectedModules.join(', '));
|
|
126
|
+
} else {
|
|
127
|
+
// Only show module selection for new installs
|
|
128
|
+
const moduleChoices = await this.getModuleChoices(installedModuleIds);
|
|
129
|
+
selectedModules = await this.selectModules(moduleChoices);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Prompt for AgentVibes TTS integration
|
|
133
|
+
const agentVibesConfig = await this.promptAgentVibes(confirmedDirectory);
|
|
101
134
|
|
|
102
135
|
// Collect IDE tool selection AFTER configuration prompts (fixes Windows/PowerShell hang)
|
|
103
136
|
// This allows text-based prompts to complete before the checkbox prompt
|
|
@@ -114,6 +147,8 @@ class UI {
|
|
|
114
147
|
ides: toolSelection.ides,
|
|
115
148
|
skipIde: toolSelection.skipIde,
|
|
116
149
|
coreConfig: coreConfig, // Pass collected core config to installer
|
|
150
|
+
enableAgentVibes: agentVibesConfig.enabled, // AgentVibes TTS integration
|
|
151
|
+
agentVibesInstalled: agentVibesConfig.alreadyInstalled,
|
|
117
152
|
};
|
|
118
153
|
}
|
|
119
154
|
|
|
@@ -201,15 +236,51 @@ class UI {
|
|
|
201
236
|
|
|
202
237
|
CLIUtils.displaySection('Tool Integration', 'Select AI coding assistants and IDEs to configure');
|
|
203
238
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
239
|
+
let answers;
|
|
240
|
+
let userConfirmedNoTools = false;
|
|
241
|
+
|
|
242
|
+
// Loop until user selects at least one tool OR explicitly confirms no tools
|
|
243
|
+
while (!userConfirmedNoTools) {
|
|
244
|
+
answers = await inquirer.prompt([
|
|
245
|
+
{
|
|
246
|
+
type: 'checkbox',
|
|
247
|
+
name: 'ides',
|
|
248
|
+
message: 'Select tools to configure:',
|
|
249
|
+
choices: ideChoices,
|
|
250
|
+
pageSize: 15,
|
|
251
|
+
},
|
|
252
|
+
]);
|
|
253
|
+
|
|
254
|
+
// If tools were selected, we're done
|
|
255
|
+
if (answers.ides && answers.ides.length > 0) {
|
|
256
|
+
break;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// Warn that no tools were selected - users often miss the spacebar requirement
|
|
260
|
+
console.log();
|
|
261
|
+
console.log(chalk.red.bold('⚠️ WARNING: No tools were selected!'));
|
|
262
|
+
console.log(chalk.red(' You must press SPACEBAR to select items, then ENTER to confirm.'));
|
|
263
|
+
console.log(chalk.red(' Simply highlighting an item does NOT select it.'));
|
|
264
|
+
console.log();
|
|
265
|
+
|
|
266
|
+
const { goBack } = await inquirer.prompt([
|
|
267
|
+
{
|
|
268
|
+
type: 'confirm',
|
|
269
|
+
name: 'goBack',
|
|
270
|
+
message: chalk.yellow('Would you like to go back and select at least one tool?'),
|
|
271
|
+
default: true,
|
|
272
|
+
},
|
|
273
|
+
]);
|
|
274
|
+
|
|
275
|
+
if (goBack) {
|
|
276
|
+
// Re-display the section header before looping back
|
|
277
|
+
console.log();
|
|
278
|
+
CLIUtils.displaySection('Tool Integration', 'Select AI coding assistants and IDEs to configure');
|
|
279
|
+
} else {
|
|
280
|
+
// User explicitly chose to proceed without tools
|
|
281
|
+
userConfirmedNoTools = true;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
213
284
|
|
|
214
285
|
return {
|
|
215
286
|
ides: answers.ides || [],
|
|
@@ -302,11 +373,60 @@ class UI {
|
|
|
302
373
|
`🔧 Tools Configured: ${result.ides?.length > 0 ? result.ides.join(', ') : 'none'}`,
|
|
303
374
|
];
|
|
304
375
|
|
|
376
|
+
// Add AgentVibes TTS info if enabled
|
|
377
|
+
if (result.agentVibesEnabled) {
|
|
378
|
+
summary.push(`🎤 AgentVibes TTS: Enabled`);
|
|
379
|
+
}
|
|
380
|
+
|
|
305
381
|
CLIUtils.displayBox(summary.join('\n\n'), {
|
|
306
382
|
borderColor: 'green',
|
|
307
383
|
borderStyle: 'round',
|
|
308
384
|
});
|
|
309
385
|
|
|
386
|
+
// Display TTS injection details if present
|
|
387
|
+
if (result.ttsInjectedFiles && result.ttsInjectedFiles.length > 0) {
|
|
388
|
+
console.log('\n' + chalk.cyan.bold('═══════════════════════════════════════════════════'));
|
|
389
|
+
console.log(chalk.cyan.bold(' AgentVibes TTS Injection Summary'));
|
|
390
|
+
console.log(chalk.cyan.bold('═══════════════════════════════════════════════════\n'));
|
|
391
|
+
|
|
392
|
+
// Explain what TTS injection is
|
|
393
|
+
console.log(chalk.white.bold('What is TTS Injection?\n'));
|
|
394
|
+
console.log(chalk.dim(' TTS (Text-to-Speech) injection adds voice instructions to BMAD agents,'));
|
|
395
|
+
console.log(chalk.dim(' enabling them to speak their responses aloud using AgentVibes.\n'));
|
|
396
|
+
console.log(chalk.dim(' Example: When you activate the PM agent, it will greet you with'));
|
|
397
|
+
console.log(chalk.dim(' spoken audio like "Hey! I\'m your Project Manager. How can I help?"\n'));
|
|
398
|
+
|
|
399
|
+
console.log(chalk.green(`✅ TTS injection applied to ${result.ttsInjectedFiles.length} file(s):\n`));
|
|
400
|
+
|
|
401
|
+
// Group by type
|
|
402
|
+
const partyModeFiles = result.ttsInjectedFiles.filter((f) => f.type === 'party-mode');
|
|
403
|
+
const agentTTSFiles = result.ttsInjectedFiles.filter((f) => f.type === 'agent-tts');
|
|
404
|
+
|
|
405
|
+
if (partyModeFiles.length > 0) {
|
|
406
|
+
console.log(chalk.yellow(' Party Mode (multi-agent conversations):'));
|
|
407
|
+
for (const file of partyModeFiles) {
|
|
408
|
+
console.log(chalk.dim(` • ${file.path}`));
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
if (agentTTSFiles.length > 0) {
|
|
413
|
+
console.log(chalk.yellow(' Agent TTS (individual agent voices):'));
|
|
414
|
+
for (const file of agentTTSFiles) {
|
|
415
|
+
console.log(chalk.dim(` • ${file.path}`));
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
// Show backup info and restore command
|
|
420
|
+
console.log('\n' + chalk.white.bold('Backups & Recovery:\n'));
|
|
421
|
+
console.log(chalk.dim(' Pre-injection backups are stored in:'));
|
|
422
|
+
console.log(chalk.cyan(' ~/.bmad-tts-backups/\n'));
|
|
423
|
+
console.log(chalk.dim(' To restore original files (removes TTS instructions):'));
|
|
424
|
+
console.log(chalk.cyan(` bmad-tts-injector.sh --restore ${result.path}\n`));
|
|
425
|
+
|
|
426
|
+
console.log(chalk.cyan('💡 BMAD agents will now speak when activated!'));
|
|
427
|
+
console.log(chalk.dim(' Ensure AgentVibes is installed: https://agentvibes.org'));
|
|
428
|
+
}
|
|
429
|
+
|
|
310
430
|
console.log('\n' + chalk.green.bold('✨ BMAD is ready to use!'));
|
|
311
431
|
}
|
|
312
432
|
|
|
@@ -371,11 +491,13 @@ class UI {
|
|
|
371
491
|
const availableModules = await moduleManager.listAvailable();
|
|
372
492
|
|
|
373
493
|
const isNewInstallation = installedModuleIds.size === 0;
|
|
374
|
-
|
|
375
|
-
name: mod.name,
|
|
494
|
+
const moduleChoices = availableModules.map((mod) => ({
|
|
495
|
+
name: mod.isCustom ? `${mod.name} ${chalk.red('(Custom)')}` : mod.name,
|
|
376
496
|
value: mod.id,
|
|
377
497
|
checked: isNewInstallation ? mod.defaultSelected || false : installedModuleIds.has(mod.id),
|
|
378
498
|
}));
|
|
499
|
+
|
|
500
|
+
return moduleChoices;
|
|
379
501
|
}
|
|
380
502
|
|
|
381
503
|
/**
|
|
@@ -603,6 +725,140 @@ class UI {
|
|
|
603
725
|
// Resolve to the absolute path relative to the current working directory
|
|
604
726
|
return path.resolve(expanded);
|
|
605
727
|
}
|
|
728
|
+
|
|
729
|
+
/**
|
|
730
|
+
* @function promptAgentVibes
|
|
731
|
+
* @intent Ask user if they want AgentVibes TTS integration during BMAD installation
|
|
732
|
+
* @why Enables optional voice features without forcing TTS on users who don't want it
|
|
733
|
+
* @param {string} projectDir - Absolute path to user's project directory
|
|
734
|
+
* @returns {Promise<Object>} Configuration object: { enabled: boolean, alreadyInstalled: boolean }
|
|
735
|
+
* @sideeffects None - pure user input collection, no files written
|
|
736
|
+
* @edgecases Shows warning if user enables TTS but AgentVibes not detected
|
|
737
|
+
* @calledby promptInstall() during installation flow, after core config, before IDE selection
|
|
738
|
+
* @calls checkAgentVibesInstalled(), inquirer.prompt(), chalk.green/yellow/dim()
|
|
739
|
+
*
|
|
740
|
+
* AI NOTE: This prompt is strategically positioned in installation flow:
|
|
741
|
+
* - AFTER core config (bmad_folder, user_name, etc)
|
|
742
|
+
* - BEFORE IDE selection (which can hang on Windows/PowerShell)
|
|
743
|
+
*
|
|
744
|
+
* Flow Logic:
|
|
745
|
+
* 1. Auto-detect if AgentVibes already installed (checks for hook files)
|
|
746
|
+
* 2. Show detection status to user (green checkmark or gray "not detected")
|
|
747
|
+
* 3. Prompt: "Enable AgentVibes TTS?" (defaults to true if detected)
|
|
748
|
+
* 4. If user says YES but AgentVibes NOT installed:
|
|
749
|
+
* → Show warning with installation link (graceful degradation)
|
|
750
|
+
* 5. Return config to promptInstall(), which passes to installer.install()
|
|
751
|
+
*
|
|
752
|
+
* State Flow:
|
|
753
|
+
* promptAgentVibes() → { enabled, alreadyInstalled }
|
|
754
|
+
* ↓
|
|
755
|
+
* promptInstall() → config.enableAgentVibes
|
|
756
|
+
* ↓
|
|
757
|
+
* installer.install() → this.enableAgentVibes
|
|
758
|
+
* ↓
|
|
759
|
+
* processTTSInjectionPoints() → injects OR strips markers
|
|
760
|
+
*
|
|
761
|
+
* RELATED:
|
|
762
|
+
* ========
|
|
763
|
+
* - Detection: checkAgentVibesInstalled() - looks for bmad-speak.sh and play-tts.sh
|
|
764
|
+
* - Processing: installer.js::processTTSInjectionPoints()
|
|
765
|
+
* - Markers: src/core/workflows/party-mode/instructions.md:101, src/modules/bmm/agents/*.md
|
|
766
|
+
* - GitHub Issue: paulpreibisch/AgentVibes#36
|
|
767
|
+
*/
|
|
768
|
+
async promptAgentVibes(projectDir) {
|
|
769
|
+
CLIUtils.displaySection('🎤 Voice Features', 'Enable TTS for multi-agent conversations');
|
|
770
|
+
|
|
771
|
+
// Check if AgentVibes is already installed
|
|
772
|
+
const agentVibesInstalled = await this.checkAgentVibesInstalled(projectDir);
|
|
773
|
+
|
|
774
|
+
if (agentVibesInstalled) {
|
|
775
|
+
console.log(chalk.green(' ✓ AgentVibes detected'));
|
|
776
|
+
} else {
|
|
777
|
+
console.log(chalk.dim(' AgentVibes not detected'));
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
const answers = await inquirer.prompt([
|
|
781
|
+
{
|
|
782
|
+
type: 'confirm',
|
|
783
|
+
name: 'enableTts',
|
|
784
|
+
message: 'Enable Agents to Speak Out loud (powered by Agent Vibes? Claude Code only currently)',
|
|
785
|
+
default: false, // Default to yes - recommended for best experience
|
|
786
|
+
},
|
|
787
|
+
]);
|
|
788
|
+
|
|
789
|
+
if (answers.enableTts && !agentVibesInstalled) {
|
|
790
|
+
console.log(chalk.yellow('\n ⚠️ AgentVibes not installed'));
|
|
791
|
+
console.log(chalk.dim(' Install AgentVibes separately to enable TTS:'));
|
|
792
|
+
console.log(chalk.dim(' https://github.com/paulpreibisch/AgentVibes\n'));
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
return {
|
|
796
|
+
enabled: answers.enableTts,
|
|
797
|
+
alreadyInstalled: agentVibesInstalled,
|
|
798
|
+
};
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
/**
|
|
802
|
+
* @function checkAgentVibesInstalled
|
|
803
|
+
* @intent Detect if AgentVibes TTS hooks are present in user's project
|
|
804
|
+
* @why Allows auto-enabling TTS and showing helpful installation guidance
|
|
805
|
+
* @param {string} projectDir - Absolute path to user's project directory
|
|
806
|
+
* @returns {Promise<boolean>} true if both required AgentVibes hooks exist, false otherwise
|
|
807
|
+
* @sideeffects None - read-only file existence checks
|
|
808
|
+
* @edgecases Returns false if either hook missing (both required for functional TTS)
|
|
809
|
+
* @calledby promptAgentVibes() to determine default value and show detection status
|
|
810
|
+
* @calls fs.pathExists() twice (bmad-speak.sh, play-tts.sh)
|
|
811
|
+
*
|
|
812
|
+
* AI NOTE: This checks for the MINIMUM viable AgentVibes installation.
|
|
813
|
+
*
|
|
814
|
+
* Required Files:
|
|
815
|
+
* ===============
|
|
816
|
+
* 1. .claude/hooks/bmad-speak.sh
|
|
817
|
+
* - Maps agent display names → agent IDs → voice profiles
|
|
818
|
+
* - Calls play-tts.sh with agent's assigned voice
|
|
819
|
+
* - Created by AgentVibes installer
|
|
820
|
+
*
|
|
821
|
+
* 2. .claude/hooks/play-tts.sh
|
|
822
|
+
* - Core TTS router (ElevenLabs or Piper)
|
|
823
|
+
* - Provider-agnostic interface
|
|
824
|
+
* - Required by bmad-speak.sh
|
|
825
|
+
*
|
|
826
|
+
* Why Both Required:
|
|
827
|
+
* ==================
|
|
828
|
+
* - bmad-speak.sh alone: No TTS backend
|
|
829
|
+
* - play-tts.sh alone: No BMAD agent voice mapping
|
|
830
|
+
* - Both together: Full party mode TTS integration
|
|
831
|
+
*
|
|
832
|
+
* Detection Strategy:
|
|
833
|
+
* ===================
|
|
834
|
+
* We use simple file existence (not version checks) because:
|
|
835
|
+
* - Fast and reliable
|
|
836
|
+
* - Works across all AgentVibes versions
|
|
837
|
+
* - User will discover version issues when TTS runs (fail-fast)
|
|
838
|
+
*
|
|
839
|
+
* PATTERN: Adding New Detection Criteria
|
|
840
|
+
* =======================================
|
|
841
|
+
* If future AgentVibes features require additional files:
|
|
842
|
+
* 1. Add new pathExists check to this function
|
|
843
|
+
* 2. Update documentation in promptAgentVibes()
|
|
844
|
+
* 3. Consider: should missing file prevent detection or just log warning?
|
|
845
|
+
*
|
|
846
|
+
* RELATED:
|
|
847
|
+
* ========
|
|
848
|
+
* - AgentVibes Installer: creates these hooks
|
|
849
|
+
* - bmad-speak.sh: calls play-tts.sh with agent voices
|
|
850
|
+
* - Party Mode: uses bmad-speak.sh for agent dialogue
|
|
851
|
+
*/
|
|
852
|
+
async checkAgentVibesInstalled(projectDir) {
|
|
853
|
+
const fs = require('fs-extra');
|
|
854
|
+
const path = require('node:path');
|
|
855
|
+
|
|
856
|
+
// Check for AgentVibes hook files
|
|
857
|
+
const hookPath = path.join(projectDir, '.claude', 'hooks', 'bmad-speak.sh');
|
|
858
|
+
const playTtsPath = path.join(projectDir, '.claude', 'hooks', 'play-tts.sh');
|
|
859
|
+
|
|
860
|
+
return (await fs.pathExists(hookPath)) && (await fs.pathExists(playTtsPath));
|
|
861
|
+
}
|
|
606
862
|
}
|
|
607
863
|
|
|
608
864
|
module.exports = { UI };
|
|
@@ -232,21 +232,6 @@ class YamlXmlBuilder {
|
|
|
232
232
|
return xml;
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
/**
|
|
236
|
-
* Build metadata comment
|
|
237
|
-
*/
|
|
238
|
-
buildMetadataComment(metadata) {
|
|
239
|
-
const lines = ['<!-- BUILD-META', ` source: ${metadata.sourceFile || 'unknown'} (hash: ${metadata.sourceHash || 'unknown'})`];
|
|
240
|
-
|
|
241
|
-
if (metadata.customizeFile) {
|
|
242
|
-
lines.push(` customize: ${metadata.customizeFile} (hash: ${metadata.customizeHash || 'unknown'})`);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
lines.push(` built: ${new Date().toISOString()}`, ` builder-version: ${metadata.builderVersion || '1.0.0'}`, '-->\n');
|
|
246
|
-
|
|
247
|
-
return lines.join('\n');
|
|
248
|
-
}
|
|
249
|
-
|
|
250
235
|
/**
|
|
251
236
|
* Build persona XML section
|
|
252
237
|
*/
|
|
@@ -342,14 +327,15 @@ class YamlXmlBuilder {
|
|
|
342
327
|
/**
|
|
343
328
|
* Build menu XML section (renamed from commands for clarity)
|
|
344
329
|
* Auto-injects *help and *exit, adds * prefix to all triggers
|
|
330
|
+
* Supports both legacy format and new multi format with nested handlers
|
|
345
331
|
* @param {Array} menuItems - Menu items from YAML
|
|
346
332
|
* @param {boolean} forWebBundle - Whether building for web bundle
|
|
347
333
|
*/
|
|
348
334
|
buildCommandsXml(menuItems, forWebBundle = false) {
|
|
349
335
|
let xml = ' <menu>\n';
|
|
350
336
|
|
|
351
|
-
// Always inject
|
|
352
|
-
xml += ` <item cmd="*
|
|
337
|
+
// Always inject menu display option first
|
|
338
|
+
xml += ` <item cmd="*menu">[M] Redisplay Menu Options</item>\n`;
|
|
353
339
|
|
|
354
340
|
// Add user-defined menu items with * prefix
|
|
355
341
|
if (menuItems && menuItems.length > 0) {
|
|
@@ -362,42 +348,140 @@ class YamlXmlBuilder {
|
|
|
362
348
|
if (!forWebBundle && item['web-only'] === true) {
|
|
363
349
|
continue;
|
|
364
350
|
}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
if (
|
|
368
|
-
|
|
351
|
+
|
|
352
|
+
// Handle multi format menu items with nested handlers
|
|
353
|
+
if (item.multi && item.triggers && Array.isArray(item.triggers)) {
|
|
354
|
+
xml += ` <item type="multi">${this.escapeXml(item.multi)}\n`;
|
|
355
|
+
xml += this.buildNestedHandlers(item.triggers);
|
|
356
|
+
xml += ` </item>\n`;
|
|
369
357
|
}
|
|
358
|
+
// Handle legacy format menu items
|
|
359
|
+
else if (item.trigger) {
|
|
360
|
+
// For legacy items, keep using cmd with *<trigger> format
|
|
361
|
+
let trigger = item.trigger || '';
|
|
362
|
+
if (!trigger.startsWith('*')) {
|
|
363
|
+
trigger = '*' + trigger;
|
|
364
|
+
}
|
|
370
365
|
|
|
371
|
-
|
|
366
|
+
const attrs = [`cmd="${trigger}"`];
|
|
372
367
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
368
|
+
// Add handler attributes
|
|
369
|
+
// If workflow-install exists, use its value for workflow attribute (vendoring)
|
|
370
|
+
// workflow-install is build-time metadata - tells installer where to copy workflows
|
|
371
|
+
// The final XML should only have workflow pointing to the install location
|
|
372
|
+
if (item['workflow-install']) {
|
|
373
|
+
attrs.push(`workflow="${item['workflow-install']}"`);
|
|
374
|
+
} else if (item.workflow) {
|
|
375
|
+
attrs.push(`workflow="${item.workflow}"`);
|
|
376
|
+
}
|
|
382
377
|
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
378
|
+
if (item['validate-workflow']) attrs.push(`validate-workflow="${item['validate-workflow']}"`);
|
|
379
|
+
if (item.exec) attrs.push(`exec="${item.exec}"`);
|
|
380
|
+
if (item.tmpl) attrs.push(`tmpl="${item.tmpl}"`);
|
|
381
|
+
if (item.data) attrs.push(`data="${item.data}"`);
|
|
382
|
+
if (item.action) attrs.push(`action="${item.action}"`);
|
|
388
383
|
|
|
389
|
-
|
|
384
|
+
xml += ` <item ${attrs.join(' ')}>${this.escapeXml(item.description || '')}</item>\n`;
|
|
385
|
+
}
|
|
390
386
|
}
|
|
391
387
|
}
|
|
392
388
|
|
|
393
|
-
// Always inject
|
|
394
|
-
xml += ` <item cmd="*
|
|
389
|
+
// Always inject dismiss last
|
|
390
|
+
xml += ` <item cmd="*dismiss">[D] Dismiss Agent</item>\n`;
|
|
395
391
|
|
|
396
392
|
xml += ' </menu>\n';
|
|
397
393
|
|
|
398
394
|
return xml;
|
|
399
395
|
}
|
|
400
396
|
|
|
397
|
+
/**
|
|
398
|
+
* Build nested handlers for multi format menu items
|
|
399
|
+
* @param {Array} triggers - Triggers array from multi format
|
|
400
|
+
* @returns {string} Handler XML
|
|
401
|
+
*/
|
|
402
|
+
buildNestedHandlers(triggers) {
|
|
403
|
+
let xml = '';
|
|
404
|
+
|
|
405
|
+
for (const triggerGroup of triggers) {
|
|
406
|
+
for (const [triggerName, execArray] of Object.entries(triggerGroup)) {
|
|
407
|
+
// Build trigger with * prefix
|
|
408
|
+
let trigger = triggerName.startsWith('*') ? triggerName : '*' + triggerName;
|
|
409
|
+
|
|
410
|
+
// Extract the relevant execution data
|
|
411
|
+
const execData = this.processExecArray(execArray);
|
|
412
|
+
|
|
413
|
+
// For nested handlers in multi items, we don't need cmd attribute
|
|
414
|
+
// The match attribute will handle fuzzy matching
|
|
415
|
+
const attrs = [`match="${this.escapeXml(execData.description || '')}"`];
|
|
416
|
+
|
|
417
|
+
// Add handler attributes based on exec data
|
|
418
|
+
if (execData.route) attrs.push(`exec="${execData.route}"`);
|
|
419
|
+
if (execData.workflow) attrs.push(`workflow="${execData.workflow}"`);
|
|
420
|
+
if (execData['validate-workflow']) attrs.push(`validate-workflow="${execData['validate-workflow']}"`);
|
|
421
|
+
if (execData.action) attrs.push(`action="${execData.action}"`);
|
|
422
|
+
if (execData.data) attrs.push(`data="${execData.data}"`);
|
|
423
|
+
if (execData.tmpl) attrs.push(`tmpl="${execData.tmpl}"`);
|
|
424
|
+
// Only add type if it's not 'exec' (exec is already implied by the exec attribute)
|
|
425
|
+
if (execData.type && execData.type !== 'exec') attrs.push(`type="${execData.type}"`);
|
|
426
|
+
|
|
427
|
+
xml += ` <handler ${attrs.join(' ')}></handler>\n`;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
return xml;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* Process the execution array from multi format triggers
|
|
436
|
+
* Extracts relevant data for XML attributes
|
|
437
|
+
* @param {Array} execArray - Array of execution objects
|
|
438
|
+
* @returns {Object} Processed execution data
|
|
439
|
+
*/
|
|
440
|
+
processExecArray(execArray) {
|
|
441
|
+
const result = {
|
|
442
|
+
description: '',
|
|
443
|
+
route: null,
|
|
444
|
+
workflow: null,
|
|
445
|
+
data: null,
|
|
446
|
+
action: null,
|
|
447
|
+
type: null,
|
|
448
|
+
};
|
|
449
|
+
|
|
450
|
+
if (!Array.isArray(execArray)) {
|
|
451
|
+
return result;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
for (const exec of execArray) {
|
|
455
|
+
if (exec.input) {
|
|
456
|
+
// Use input as description if no explicit description is provided
|
|
457
|
+
result.description = exec.input;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
if (exec.route) {
|
|
461
|
+
// Determine if it's a workflow or exec based on file extension or context
|
|
462
|
+
if (exec.route.endsWith('.yaml') || exec.route.endsWith('.yml')) {
|
|
463
|
+
result.workflow = exec.route;
|
|
464
|
+
} else {
|
|
465
|
+
result.route = exec.route;
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
if (exec.data !== null && exec.data !== undefined) {
|
|
470
|
+
result.data = exec.data;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
if (exec.action) {
|
|
474
|
+
result.action = exec.action;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
if (exec.type) {
|
|
478
|
+
result.type = exec.type;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
return result;
|
|
483
|
+
}
|
|
484
|
+
|
|
401
485
|
/**
|
|
402
486
|
* Escape XML special characters
|
|
403
487
|
*/
|
|
@@ -55,6 +55,12 @@ platforms:
|
|
|
55
55
|
category: ide
|
|
56
56
|
description: "Enhanced Cline fork"
|
|
57
57
|
|
|
58
|
+
rovo:
|
|
59
|
+
name: "Rovo Dev"
|
|
60
|
+
preferred: false
|
|
61
|
+
category: ide
|
|
62
|
+
description: "Atlassian's AI coding assistant"
|
|
63
|
+
|
|
58
64
|
github-copilot:
|
|
59
65
|
name: "GitHub Copilot"
|
|
60
66
|
preferred: false
|
|
@@ -97,6 +103,12 @@ platforms:
|
|
|
97
103
|
category: ide
|
|
98
104
|
description: "AI development assistant"
|
|
99
105
|
|
|
106
|
+
antigravity:
|
|
107
|
+
name: "Google Antigravity"
|
|
108
|
+
preferred: false
|
|
109
|
+
category: ide
|
|
110
|
+
description: "Google's AI development environment"
|
|
111
|
+
|
|
100
112
|
trae:
|
|
101
113
|
name: "Trae"
|
|
102
114
|
preferred: false
|