agentvibes 2.5.0 → 2.7.0
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/.bmad/_cfg/agent-manifest.csv +11 -0
- package/.bmad/_cfg/agents/bmm-analyst.customize.yaml +42 -0
- package/.bmad/_cfg/agents/bmm-architect.customize.yaml +42 -0
- package/.bmad/_cfg/agents/bmm-dev.customize.yaml +42 -0
- package/.bmad/_cfg/agents/bmm-frame-expert.customize.yaml +42 -0
- package/.bmad/_cfg/agents/bmm-pm.customize.yaml +42 -0
- package/.bmad/_cfg/agents/bmm-sm.customize.yaml +42 -0
- package/.bmad/_cfg/agents/bmm-tea.customize.yaml +42 -0
- package/.bmad/_cfg/agents/bmm-tech-writer.customize.yaml +42 -0
- package/.bmad/_cfg/agents/bmm-ux-designer.customize.yaml +42 -0
- package/.bmad/_cfg/agents/core-bmad-master.customize.yaml +42 -0
- package/.bmad/_cfg/files-manifest.csv +243 -0
- package/.bmad/_cfg/ides/claude-code.yaml +6 -0
- package/.bmad/_cfg/manifest.yaml +9 -0
- package/.bmad/_cfg/task-manifest.csv +5 -0
- package/.bmad/_cfg/tool-manifest.csv +2 -0
- package/.bmad/_cfg/workflow-manifest.csv +38 -0
- package/.bmad/bmm/README.md +128 -0
- package/.bmad/bmm/agents/analyst.md +79 -0
- package/.bmad/bmm/agents/analyst.md.backup-pre-tts +75 -0
- package/.bmad/bmm/agents/architect.md +80 -0
- package/.bmad/bmm/agents/dev.md +70 -0
- package/.bmad/bmm/agents/frame-expert.md +72 -0
- package/.bmad/bmm/agents/pm.md +84 -0
- package/.bmad/bmm/agents/sm.md +93 -0
- package/.bmad/bmm/agents/tea.md +80 -0
- package/.bmad/bmm/agents/tech-writer.md +84 -0
- package/.bmad/bmm/agents/ux-designer.md +79 -0
- package/.bmad/bmm/config.yaml +17 -0
- package/.bmad/bmm/docs/README.md +236 -0
- package/.bmad/bmm/docs/agents-guide.md +1058 -0
- package/.bmad/bmm/docs/brownfield-guide.md +762 -0
- package/.bmad/bmm/docs/enterprise-agentic-development.md +686 -0
- package/.bmad/bmm/docs/faq.md +588 -0
- package/.bmad/bmm/docs/glossary.md +320 -0
- package/.bmad/bmm/docs/party-mode.md +224 -0
- package/.bmad/bmm/docs/quick-spec-flow.md +652 -0
- package/.bmad/bmm/docs/quick-start.md +376 -0
- package/.bmad/bmm/docs/scale-adaptive-system.md +612 -0
- package/.bmad/bmm/docs/test-architecture.md +396 -0
- package/.bmad/bmm/docs/workflow-architecture-reference.md +366 -0
- package/.bmad/bmm/docs/workflow-document-project-reference.md +489 -0
- package/.bmad/bmm/docs/workflows-analysis.md +370 -0
- package/.bmad/bmm/docs/workflows-implementation.md +286 -0
- package/.bmad/bmm/docs/workflows-planning.md +612 -0
- package/.bmad/bmm/docs/workflows-solutioning.md +554 -0
- package/.bmad/bmm/teams/default-party.csv +20 -0
- package/.bmad/bmm/teams/team-fullstack.yaml +13 -0
- package/.bmad/bmm/testarch/knowledge/ci-burn-in.md +675 -0
- package/.bmad/bmm/testarch/knowledge/component-tdd.md +486 -0
- package/.bmad/bmm/testarch/knowledge/contract-testing.md +957 -0
- package/.bmad/bmm/testarch/knowledge/data-factories.md +500 -0
- package/.bmad/bmm/testarch/knowledge/email-auth.md +721 -0
- package/.bmad/bmm/testarch/knowledge/error-handling.md +725 -0
- package/.bmad/bmm/testarch/knowledge/feature-flags.md +750 -0
- package/.bmad/bmm/testarch/knowledge/fixture-architecture.md +401 -0
- package/.bmad/bmm/testarch/knowledge/network-first.md +486 -0
- package/.bmad/bmm/testarch/knowledge/nfr-criteria.md +670 -0
- package/.bmad/bmm/testarch/knowledge/playwright-config.md +730 -0
- package/.bmad/bmm/testarch/knowledge/probability-impact.md +601 -0
- package/.bmad/bmm/testarch/knowledge/risk-governance.md +615 -0
- package/.bmad/bmm/testarch/knowledge/selective-testing.md +732 -0
- package/.bmad/bmm/testarch/knowledge/selector-resilience.md +527 -0
- package/.bmad/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
- package/.bmad/bmm/testarch/knowledge/test-levels-framework.md +473 -0
- package/.bmad/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
- package/.bmad/bmm/testarch/knowledge/test-quality.md +664 -0
- package/.bmad/bmm/testarch/knowledge/timing-debugging.md +372 -0
- package/.bmad/bmm/testarch/knowledge/visual-debugging.md +524 -0
- package/.bmad/bmm/testarch/tea-index.csv +22 -0
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +112 -0
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/project-context.md +25 -0
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +26 -0
- package/.bmad/bmm/workflows/1-analysis/domain-research/instructions.md +425 -0
- package/.bmad/bmm/workflows/1-analysis/domain-research/template.md +180 -0
- package/.bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +28 -0
- package/.bmad/bmm/workflows/1-analysis/product-brief/checklist.md +115 -0
- package/.bmad/bmm/workflows/1-analysis/product-brief/instructions.md +524 -0
- package/.bmad/bmm/workflows/1-analysis/product-brief/template.md +181 -0
- package/.bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml +45 -0
- package/.bmad/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
- package/.bmad/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
- package/.bmad/bmm/workflows/1-analysis/research/checklist.md +299 -0
- package/.bmad/bmm/workflows/1-analysis/research/claude-code/injections.yaml +114 -0
- package/.bmad/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +438 -0
- package/.bmad/bmm/workflows/1-analysis/research/instructions-market.md +675 -0
- package/.bmad/bmm/workflows/1-analysis/research/instructions-router.md +134 -0
- package/.bmad/bmm/workflows/1-analysis/research/instructions-technical.md +534 -0
- package/.bmad/bmm/workflows/1-analysis/research/template-deep-prompt.md +94 -0
- package/.bmad/bmm/workflows/1-analysis/research/template-market.md +347 -0
- package/.bmad/bmm/workflows/1-analysis/research/template-technical.md +245 -0
- package/.bmad/bmm/workflows/1-analysis/research/workflow.yaml +44 -0
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/epics-template.md +80 -0
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/instructions.md +616 -0
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/workflow.yaml +53 -0
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +310 -0
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1308 -0
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +145 -0
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +61 -0
- package/.bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +346 -0
- package/.bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
- package/.bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +703 -0
- package/.bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +204 -0
- package/.bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
- package/.bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +52 -0
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +217 -0
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +74 -0
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +436 -0
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +980 -0
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +181 -0
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +90 -0
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +58 -0
- package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +321 -0
- package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-template.md +103 -0
- package/.bmad/bmm/workflows/3-solutioning/architecture/checklist.md +240 -0
- package/.bmad/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +222 -0
- package/.bmad/bmm/workflows/3-solutioning/architecture/instructions.md +768 -0
- package/.bmad/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +13 -0
- package/.bmad/bmm/workflows/3-solutioning/architecture/workflow.yaml +55 -0
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +169 -0
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +332 -0
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/template.md +146 -0
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +62 -0
- package/.bmad/bmm/workflows/4-implementation/code-review/backlog_template.md +12 -0
- package/.bmad/bmm/workflows/4-implementation/code-review/checklist.md +22 -0
- package/.bmad/bmm/workflows/4-implementation/code-review/instructions.md +398 -0
- package/.bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +60 -0
- package/.bmad/bmm/workflows/4-implementation/correct-course/checklist.md +279 -0
- package/.bmad/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
- package/.bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +56 -0
- package/.bmad/bmm/workflows/4-implementation/create-story/checklist.md +240 -0
- package/.bmad/bmm/workflows/4-implementation/create-story/instructions.md +256 -0
- package/.bmad/bmm/workflows/4-implementation/create-story/template.md +51 -0
- package/.bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +71 -0
- package/.bmad/bmm/workflows/4-implementation/dev-story/checklist.md +38 -0
- package/.bmad/bmm/workflows/4-implementation/dev-story/instructions.md +267 -0
- package/.bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +56 -0
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/checklist.md +17 -0
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/instructions.md +164 -0
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/template.md +76 -0
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +57 -0
- package/.bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
- package/.bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +56 -0
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +234 -0
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +49 -0
- package/.bmad/bmm/workflows/4-implementation/story-context/checklist.md +16 -0
- package/.bmad/bmm/workflows/4-implementation/story-context/context-template.xml +34 -0
- package/.bmad/bmm/workflows/4-implementation/story-context/instructions.md +209 -0
- package/.bmad/bmm/workflows/4-implementation/story-context/workflow.yaml +61 -0
- package/.bmad/bmm/workflows/4-implementation/story-done/instructions.md +111 -0
- package/.bmad/bmm/workflows/4-implementation/story-done/workflow.yaml +26 -0
- package/.bmad/bmm/workflows/4-implementation/story-ready/instructions.md +117 -0
- package/.bmad/bmm/workflows/4-implementation/story-ready/workflow.yaml +23 -0
- package/.bmad/bmm/workflows/document-project/checklist.md +245 -0
- package/.bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
- package/.bmad/bmm/workflows/document-project/instructions.md +222 -0
- package/.bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
- package/.bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
- package/.bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
- package/.bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
- package/.bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
- package/.bmad/bmm/workflows/document-project/workflow.yaml +29 -0
- package/.bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
- package/.bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
- package/.bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
- package/.bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-helpers.md +127 -0
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-library.json +90 -0
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-templates.yaml +127 -0
- package/.bmad/bmm/workflows/frame-expert/_shared/validate-json-instructions.md +79 -0
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/checklist.md +39 -0
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/instructions.md +131 -0
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/workflow.yaml +23 -0
- package/.bmad/bmm/workflows/frame-expert/create-diagram/checklist.md +43 -0
- package/.bmad/bmm/workflows/frame-expert/create-diagram/instructions.md +142 -0
- package/.bmad/bmm/workflows/frame-expert/create-diagram/workflow.yaml +24 -0
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/checklist.md +49 -0
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/instructions.md +242 -0
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/workflow.yaml +27 -0
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/checklist.md +38 -0
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/instructions.md +133 -0
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/workflow.yaml +23 -0
- package/.bmad/bmm/workflows/techdoc/documentation-standards.md +262 -0
- package/.bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
- package/.bmad/bmm/workflows/testarch/atdd/checklist.md +373 -0
- package/.bmad/bmm/workflows/testarch/atdd/instructions.md +785 -0
- package/.bmad/bmm/workflows/testarch/atdd/workflow.yaml +45 -0
- package/.bmad/bmm/workflows/testarch/automate/checklist.md +580 -0
- package/.bmad/bmm/workflows/testarch/automate/instructions.md +1303 -0
- package/.bmad/bmm/workflows/testarch/automate/workflow.yaml +52 -0
- package/.bmad/bmm/workflows/testarch/ci/checklist.md +246 -0
- package/.bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +165 -0
- package/.bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +128 -0
- package/.bmad/bmm/workflows/testarch/ci/instructions.md +517 -0
- package/.bmad/bmm/workflows/testarch/ci/workflow.yaml +45 -0
- package/.bmad/bmm/workflows/testarch/framework/checklist.md +321 -0
- package/.bmad/bmm/workflows/testarch/framework/instructions.md +455 -0
- package/.bmad/bmm/workflows/testarch/framework/workflow.yaml +47 -0
- package/.bmad/bmm/workflows/testarch/nfr-assess/checklist.md +405 -0
- package/.bmad/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
- package/.bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +443 -0
- package/.bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +47 -0
- package/.bmad/bmm/workflows/testarch/test-design/checklist.md +234 -0
- package/.bmad/bmm/workflows/testarch/test-design/instructions.md +782 -0
- package/.bmad/bmm/workflows/testarch/test-design/test-design-template.md +285 -0
- package/.bmad/bmm/workflows/testarch/test-design/workflow.yaml +48 -0
- package/.bmad/bmm/workflows/testarch/test-review/checklist.md +470 -0
- package/.bmad/bmm/workflows/testarch/test-review/instructions.md +608 -0
- package/.bmad/bmm/workflows/testarch/test-review/test-review-template.md +388 -0
- package/.bmad/bmm/workflows/testarch/test-review/workflow.yaml +46 -0
- package/.bmad/bmm/workflows/testarch/trace/checklist.md +654 -0
- package/.bmad/bmm/workflows/testarch/trace/instructions.md +1045 -0
- package/.bmad/bmm/workflows/testarch/trace/trace-template.md +673 -0
- package/.bmad/bmm/workflows/testarch/trace/workflow.yaml +55 -0
- package/.bmad/bmm/workflows/workflow-status/init/instructions.md +334 -0
- package/.bmad/bmm/workflows/workflow-status/init/workflow.yaml +28 -0
- package/.bmad/bmm/workflows/workflow-status/instructions.md +388 -0
- package/.bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +138 -0
- package/.bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +126 -0
- package/.bmad/bmm/workflows/workflow-status/paths/game-design.yaml +52 -0
- package/.bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +122 -0
- package/.bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +113 -0
- package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +58 -0
- package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +47 -0
- package/.bmad/bmm/workflows/workflow-status/project-levels.yaml +59 -0
- package/.bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
- package/.bmad/bmm/workflows/workflow-status/workflow.yaml +28 -0
- package/.bmad/core/agents/bmad-master.md +72 -0
- package/.bmad/core/agents/bmad-web-orchestrator.agent.xml +113 -0
- package/.bmad/core/config.yaml +11 -0
- package/.bmad/core/tasks/adv-elicit-methods.csv +39 -0
- package/.bmad/core/tasks/advanced-elicitation-methods.csv +21 -0
- package/.bmad/core/tasks/advanced-elicitation.xml +106 -0
- package/.bmad/core/tasks/index-docs.xml +65 -0
- package/.bmad/core/tasks/validate-workflow.xml +89 -0
- package/.bmad/core/tasks/workflow.xml +270 -0
- package/.bmad/core/tools/shard-doc.xml +109 -0
- package/.bmad/core/workflows/brainstorming/README.md +261 -0
- package/.bmad/core/workflows/brainstorming/brain-methods.csv +36 -0
- package/.bmad/core/workflows/brainstorming/instructions.md +315 -0
- package/.bmad/core/workflows/brainstorming/template.md +106 -0
- package/.bmad/core/workflows/brainstorming/workflow.yaml +38 -0
- package/.bmad/core/workflows/party-mode/instructions.md +202 -0
- package/.bmad/core/workflows/party-mode/workflow.yaml +28 -0
- package/.bmad/docs/claude-code-instructions.md +25 -0
- package/.claude/commands/agent-vibes-bmad-party.md +117 -0
- package/.claude/commands/bmad/bmm/agents/analyst.md +14 -0
- package/.claude/commands/bmad/bmm/agents/architect.md +14 -0
- package/.claude/commands/bmad/bmm/agents/dev.md +14 -0
- package/.claude/commands/bmad/bmm/agents/frame-expert.md +14 -0
- package/.claude/commands/bmad/bmm/agents/pm.md +14 -0
- package/.claude/commands/bmad/bmm/agents/sm.md +14 -0
- package/.claude/commands/bmad/bmm/agents/tea.md +14 -0
- package/.claude/commands/bmad/bmm/agents/tech-writer.md +14 -0
- package/.claude/commands/bmad/bmm/agents/ux-designer.md +14 -0
- package/.claude/commands/bmad/bmm/workflows/architecture.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/code-review.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/correct-course.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/create-dataflow.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/create-diagram.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/create-flowchart.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/create-story.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/create-wireframe.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/dev-story.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/document-project.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/domain-research.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/implementation-readiness.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/prd.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/product-brief.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/research.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/retrospective.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/story-context.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/story-done.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/story-ready.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/tech-spec.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/workflow-init.md +13 -0
- package/.claude/commands/bmad/bmm/workflows/workflow-status.md +13 -0
- package/.claude/commands/bmad/core/agents/bmad-master.md +14 -0
- package/.claude/commands/bmad/core/tasks/advanced-elicitation.md +9 -0
- package/.claude/commands/bmad/core/tasks/index-docs.md +9 -0
- package/.claude/commands/bmad/core/tools/shard-doc.md +9 -0
- package/.claude/commands/bmad/core/workflows/brainstorming.md +13 -0
- package/.claude/commands/bmad/core/workflows/party-mode.md +13 -0
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/README-TTS-QUEUE.md +135 -0
- package/.claude/hooks/bmad-party-manager.sh +225 -0
- package/.claude/hooks/bmad-speak.sh +110 -0
- package/.claude/hooks/bmad-tts-injector.sh +8 -3
- package/.claude/hooks/bmad-voice-manager.sh +61 -29
- package/.claude/hooks/play-tts.sh +5 -0
- package/.claude/hooks/stop.sh +221 -0
- package/.claude/hooks/tts-queue-worker.sh +68 -0
- package/.claude/hooks/tts-queue.sh +105 -0
- package/.claude/verbosity.txt +1 -0
- package/README.md +8 -8
- package/RELEASE_NOTES.md +171 -370
- package/package.json +1 -1
- package/src/bmad-detector.js +3 -3
- package/src/commands/bmad-voices.js +392 -0
- package/src/installer.js +243 -51
- package/.claude/hooks/user-prompt-output.sh +0 -111
- package/.claude/plugins/bmad-voices-enabled.flag +0 -0
- package/.claude/plugins/bmad-voices.md +0 -51
- /package/{.bmad-core → v4-backup/.bmad-core}/agent-teams/team-all.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agent-teams/team-fullstack.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agent-teams/team-ide-minimal.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agent-teams/team-no-ui.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agents/analyst.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agents/architect.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agents/bmad-master.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agents/bmad-orchestrator.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agents/dev.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agents/pm.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agents/po.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agents/qa.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agents/sm.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/agents/ux-expert.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/checklists/architect-checklist.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/checklists/change-checklist.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/checklists/pm-checklist.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/checklists/po-master-checklist.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/checklists/story-dod-checklist.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/checklists/story-draft-checklist.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/core-config.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/data/bmad-kb.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/data/brainstorming-techniques.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/data/elicitation-methods.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/data/technical-preferences.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/data/test-levels-framework.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/data/test-priorities-matrix.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/enhanced-ide-development-workflow.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/install-manifest.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/advanced-elicitation.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/apply-qa-fixes.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/brownfield-create-epic.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/brownfield-create-story.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/correct-course.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/create-brownfield-story.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/create-deep-research-prompt.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/create-doc.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/create-next-story.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/document-project.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/execute-checklist.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/facilitate-brainstorming-session.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/generate-ai-frontend-prompt.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/index-docs.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/kb-mode-interaction.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/nfr-assess.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/qa-gate.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/review-story.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/risk-profile.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/shard-doc.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/test-design.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/trace-requirements.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/tasks/validate-next-story.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/architecture-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/brainstorming-output-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/brownfield-architecture-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/brownfield-prd-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/competitor-analysis-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/front-end-architecture-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/front-end-spec-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/fullstack-architecture-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/market-research-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/prd-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/project-brief-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/qa-gate-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/templates/story-tmpl.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/user-guide.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/utils/bmad-doc-template.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/utils/workflow-management.md +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/workflows/brownfield-fullstack.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/workflows/brownfield-service.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/workflows/brownfield-ui.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/workflows/greenfield-fullstack.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/workflows/greenfield-service.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/workflows/greenfield-ui.yaml +0 -0
- /package/{.bmad-core → v4-backup/.bmad-core}/working-in-the-brownfield.md +0 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/bmad-party-manager.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied, including but not limited to the warranties of
|
|
26
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
27
|
+
# In no event shall the authors or copyright holders be liable for any claim,
|
|
28
|
+
# damages or other liability, whether in an action of contract, tort or
|
|
29
|
+
# otherwise, arising from, out of or in connection with the software or the
|
|
30
|
+
# use or other dealings in the software.
|
|
31
|
+
#
|
|
32
|
+
# ---
|
|
33
|
+
#
|
|
34
|
+
# @fileoverview BMAD Party Mode Voice Integration Manager
|
|
35
|
+
# @context Controls auto-enable/disable of multi-agent voice switching during BMAD party mode
|
|
36
|
+
# @architecture Opt-out flag management, auto-detection, status reporting
|
|
37
|
+
# @dependencies .bmad/_cfg/agent-manifest.csv, bmad-voices-enabled.flag, user-prompt-output.sh
|
|
38
|
+
# @entrypoints /agent-vibes:bmad-party slash command
|
|
39
|
+
# @patterns Auto-enable with opt-out, graceful degradation, feature detection
|
|
40
|
+
# @related user-prompt-output.sh, bmad-voice-manager.sh, Issue #33
|
|
41
|
+
|
|
42
|
+
# Fix locale warnings
|
|
43
|
+
export LC_ALL=C
|
|
44
|
+
|
|
45
|
+
PLUGIN_DIR=".claude/plugins"
|
|
46
|
+
DISABLE_FLAG="$PLUGIN_DIR/bmad-party-mode-disabled.flag"
|
|
47
|
+
BMAD_VOICES_FLAG="$PLUGIN_DIR/bmad-voices-enabled.flag"
|
|
48
|
+
BMAD_MANIFEST=".bmad/_cfg/agent-manifest.csv"
|
|
49
|
+
|
|
50
|
+
# Colors
|
|
51
|
+
GREEN='\033[0;32m'
|
|
52
|
+
YELLOW='\033[1;33m'
|
|
53
|
+
RED='\033[0;31m'
|
|
54
|
+
CYAN='\033[0;36m'
|
|
55
|
+
GRAY='\033[0;90m'
|
|
56
|
+
NC='\033[0m' # No Color
|
|
57
|
+
|
|
58
|
+
#
|
|
59
|
+
# @function is_bmad_installed
|
|
60
|
+
# @context Check if BMAD v6 is installed
|
|
61
|
+
# @returns 0=installed, 1=not installed
|
|
62
|
+
#
|
|
63
|
+
is_bmad_installed() {
|
|
64
|
+
[[ -f "$BMAD_MANIFEST" ]]
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
#
|
|
68
|
+
# @function is_bmad_voices_enabled
|
|
69
|
+
# @context Check if BMAD voice plugin is enabled
|
|
70
|
+
# @returns 0=enabled, 1=disabled
|
|
71
|
+
#
|
|
72
|
+
is_bmad_voices_enabled() {
|
|
73
|
+
[[ -f "$BMAD_VOICES_FLAG" ]]
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
#
|
|
77
|
+
# @function is_party_mode_enabled
|
|
78
|
+
# @context Check if party mode voice integration is enabled
|
|
79
|
+
# @returns 0=enabled, 1=disabled
|
|
80
|
+
#
|
|
81
|
+
is_party_mode_enabled() {
|
|
82
|
+
# Disabled if opt-out flag exists
|
|
83
|
+
[[ -f "$DISABLE_FLAG" ]] && return 1
|
|
84
|
+
|
|
85
|
+
# Enabled if BMAD + voice plugin active
|
|
86
|
+
is_bmad_installed && is_bmad_voices_enabled
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
#
|
|
90
|
+
# @function show_status
|
|
91
|
+
# @context Display current party mode voice integration status
|
|
92
|
+
#
|
|
93
|
+
show_status() {
|
|
94
|
+
echo -e "${CYAN}🎭 BMAD Party Mode Voice Integration${NC}"
|
|
95
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
96
|
+
echo ""
|
|
97
|
+
|
|
98
|
+
# Check BMAD installation
|
|
99
|
+
if ! is_bmad_installed; then
|
|
100
|
+
echo -e "${RED}❌ BMAD not installed${NC}"
|
|
101
|
+
echo -e "${GRAY} Party mode voice integration requires BMAD v6${NC}"
|
|
102
|
+
echo -e "${GRAY} Install: https://github.com/bmad-method/bmad${NC}"
|
|
103
|
+
echo ""
|
|
104
|
+
return 1
|
|
105
|
+
fi
|
|
106
|
+
|
|
107
|
+
echo -e "${GREEN}✅ BMAD v6 detected${NC}"
|
|
108
|
+
|
|
109
|
+
# Check voice plugin
|
|
110
|
+
if ! is_bmad_voices_enabled; then
|
|
111
|
+
echo -e "${RED}❌ BMAD voice plugin disabled${NC}"
|
|
112
|
+
echo -e "${GRAY} Enable: /agent-vibes:bmad enable${NC}"
|
|
113
|
+
echo ""
|
|
114
|
+
return 1
|
|
115
|
+
fi
|
|
116
|
+
|
|
117
|
+
echo -e "${GREEN}✅ BMAD voice plugin enabled${NC}"
|
|
118
|
+
|
|
119
|
+
# Check party mode status
|
|
120
|
+
if is_party_mode_enabled; then
|
|
121
|
+
echo -e "${GREEN}✅ Party mode voices: ENABLED${NC}"
|
|
122
|
+
echo ""
|
|
123
|
+
echo -e "${CYAN}How it works:${NC}"
|
|
124
|
+
echo " When you run /bmad:core:workflows:party-mode,"
|
|
125
|
+
echo " each agent speaks with their unique voice:"
|
|
126
|
+
echo ""
|
|
127
|
+
echo " 🏗️ Winston (Architect) → Michael"
|
|
128
|
+
echo " 📋 John (PM) → Jessica Anne Bogart"
|
|
129
|
+
echo " 💻 Amelia (Dev) → Matthew Schmitz"
|
|
130
|
+
echo " 📊 Mary (Analyst) → kristin"
|
|
131
|
+
echo " ... and more!"
|
|
132
|
+
echo ""
|
|
133
|
+
echo -e "${GRAY}Disable with: /agent-vibes:bmad-party disable${NC}"
|
|
134
|
+
else
|
|
135
|
+
echo -e "${YELLOW}⚠️ Party mode voices: DISABLED (opt-out active)${NC}"
|
|
136
|
+
echo ""
|
|
137
|
+
echo -e "${GRAY}Enable with: /agent-vibes:bmad-party enable${NC}"
|
|
138
|
+
fi
|
|
139
|
+
|
|
140
|
+
echo ""
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
#
|
|
144
|
+
# @function enable_party_mode
|
|
145
|
+
# @context Enable party mode voice integration (remove opt-out flag)
|
|
146
|
+
#
|
|
147
|
+
enable_party_mode() {
|
|
148
|
+
# Verify prerequisites
|
|
149
|
+
if ! is_bmad_installed; then
|
|
150
|
+
echo -e "${RED}❌ Cannot enable: BMAD not installed${NC}"
|
|
151
|
+
echo -e "${GRAY} Install BMAD v6 first${NC}"
|
|
152
|
+
return 1
|
|
153
|
+
fi
|
|
154
|
+
|
|
155
|
+
if ! is_bmad_voices_enabled; then
|
|
156
|
+
echo -e "${RED}❌ Cannot enable: BMAD voice plugin disabled${NC}"
|
|
157
|
+
echo -e "${GRAY} Enable with: /agent-vibes:bmad enable${NC}"
|
|
158
|
+
return 1
|
|
159
|
+
fi
|
|
160
|
+
|
|
161
|
+
# Remove opt-out flag if it exists
|
|
162
|
+
if [[ -f "$DISABLE_FLAG" ]]; then
|
|
163
|
+
rm -f "$DISABLE_FLAG"
|
|
164
|
+
echo -e "${GREEN}✅ Party mode voices enabled${NC}"
|
|
165
|
+
echo ""
|
|
166
|
+
echo -e "${CYAN}🎭 Multi-agent voice switching activated!${NC}"
|
|
167
|
+
echo " Run /bmad:core:workflows:party-mode to hear agents speak"
|
|
168
|
+
else
|
|
169
|
+
echo -e "${GREEN}✅ Party mode voices already enabled${NC}"
|
|
170
|
+
echo ""
|
|
171
|
+
echo -e "${GRAY}(Auto-enabled when BMAD detected)${NC}"
|
|
172
|
+
fi
|
|
173
|
+
|
|
174
|
+
echo ""
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
#
|
|
178
|
+
# @function disable_party_mode
|
|
179
|
+
# @context Disable party mode voice integration (create opt-out flag)
|
|
180
|
+
#
|
|
181
|
+
disable_party_mode() {
|
|
182
|
+
mkdir -p "$PLUGIN_DIR"
|
|
183
|
+
|
|
184
|
+
if [[ -f "$DISABLE_FLAG" ]]; then
|
|
185
|
+
echo -e "${YELLOW}⚠️ Party mode voices already disabled${NC}"
|
|
186
|
+
return 0
|
|
187
|
+
fi
|
|
188
|
+
|
|
189
|
+
# Create opt-out flag
|
|
190
|
+
touch "$DISABLE_FLAG"
|
|
191
|
+
|
|
192
|
+
echo -e "${GREEN}✅ Party mode voices disabled${NC}"
|
|
193
|
+
echo ""
|
|
194
|
+
echo -e "${GRAY}Party mode will continue to work, but agents won't speak${NC}"
|
|
195
|
+
echo -e "${GRAY}Enable again with: /agent-vibes:bmad-party enable${NC}"
|
|
196
|
+
echo ""
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
# Main command dispatcher
|
|
200
|
+
case "${1:-status}" in
|
|
201
|
+
enable)
|
|
202
|
+
enable_party_mode
|
|
203
|
+
;;
|
|
204
|
+
disable)
|
|
205
|
+
disable_party_mode
|
|
206
|
+
;;
|
|
207
|
+
status)
|
|
208
|
+
show_status
|
|
209
|
+
;;
|
|
210
|
+
*)
|
|
211
|
+
echo -e "${CYAN}AgentVibes BMAD Party Mode Manager${NC}"
|
|
212
|
+
echo ""
|
|
213
|
+
echo "Usage: bmad-party-manager.sh {enable|disable|status}"
|
|
214
|
+
echo ""
|
|
215
|
+
echo "Commands:"
|
|
216
|
+
echo " enable Enable party mode voice integration"
|
|
217
|
+
echo " disable Disable party mode voice integration (opt-out)"
|
|
218
|
+
echo " status Show current status and configuration"
|
|
219
|
+
echo ""
|
|
220
|
+
echo "Party Mode Voice Integration:"
|
|
221
|
+
echo " • Auto-enabled when BMAD v6 detected"
|
|
222
|
+
echo " • Each agent speaks with unique voice during party mode"
|
|
223
|
+
echo " • Opt-out available via disable command"
|
|
224
|
+
;;
|
|
225
|
+
esac
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/bmad-speak.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes BMAD Voice Integration
|
|
6
|
+
# Maps agent display names OR agent IDs to voices and triggers TTS
|
|
7
|
+
#
|
|
8
|
+
# Usage: bmad-speak.sh "Agent Name" "dialogue text"
|
|
9
|
+
# bmad-speak.sh "agent-id" "dialogue text"
|
|
10
|
+
#
|
|
11
|
+
# Supports both:
|
|
12
|
+
# - Display names (e.g., "Winston", "John") for party mode
|
|
13
|
+
# - Agent IDs (e.g., "architect", "pm") for individual agents
|
|
14
|
+
#
|
|
15
|
+
|
|
16
|
+
set -euo pipefail
|
|
17
|
+
|
|
18
|
+
# Get script directory and project root
|
|
19
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
20
|
+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
21
|
+
|
|
22
|
+
# Arguments
|
|
23
|
+
AGENT_NAME_OR_ID="$1"
|
|
24
|
+
DIALOGUE="$2"
|
|
25
|
+
|
|
26
|
+
# Remove backslash escaping that Claude might add for special chars like ! and $
|
|
27
|
+
# In single quotes these don't need escaping, but Claude sometimes adds \! anyway
|
|
28
|
+
DIALOGUE="${DIALOGUE//\\!/!}"
|
|
29
|
+
DIALOGUE="${DIALOGUE//\\\$/\$}"
|
|
30
|
+
|
|
31
|
+
# Check if party mode is enabled
|
|
32
|
+
if [[ -f "$PROJECT_ROOT/.claude/plugins/bmad-party-mode-disabled.flag" ]]; then
|
|
33
|
+
exit 0
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# Check if BMAD is installed
|
|
37
|
+
if [[ ! -f "$PROJECT_ROOT/.bmad/_cfg/agent-manifest.csv" ]]; then
|
|
38
|
+
exit 0
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
# Map display name to agent ID, OR pass through if already an agent ID
|
|
42
|
+
map_to_agent_id() {
|
|
43
|
+
local name_or_id="$1"
|
|
44
|
+
|
|
45
|
+
# If it looks like a file path (.bmad/*/agents/*.md), extract the agent ID
|
|
46
|
+
# Example: .bmad/bmm/agents/pm.md -> pm
|
|
47
|
+
if [[ "$name_or_id" =~ \.bmad/.*/agents/([^/]+)\.md$ ]]; then
|
|
48
|
+
echo "${BASH_REMATCH[1]}"
|
|
49
|
+
return
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# First check if it's already an agent ID (column 1 of manifest)
|
|
53
|
+
# CSV format: name,displayName,title,icon,role,...
|
|
54
|
+
local direct_match=$(grep -i "^\"*${name_or_id}\"*," "$PROJECT_ROOT/.bmad/_cfg/agent-manifest.csv" | head -1)
|
|
55
|
+
if [[ -n "$direct_match" ]]; then
|
|
56
|
+
# Already an agent ID, pass through
|
|
57
|
+
echo "$name_or_id"
|
|
58
|
+
return
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
# Otherwise map display name to agent ID (for party mode)
|
|
62
|
+
# Extract 'name' (column 1) where displayName (column 2) contains the name
|
|
63
|
+
# displayName format in CSV: "John", "Mary", "Winston", etc. (first word before any parentheses)
|
|
64
|
+
local agent_id=$(awk -F',' -v name="$name_or_id" '
|
|
65
|
+
BEGIN { IGNORECASE=1 }
|
|
66
|
+
NR > 1 {
|
|
67
|
+
# Extract displayName (column 2)
|
|
68
|
+
display = $2
|
|
69
|
+
gsub(/^"|"$/, "", display) # Remove surrounding quotes
|
|
70
|
+
|
|
71
|
+
# Check if display name starts with the search name (case-insensitive)
|
|
72
|
+
# This handles both "John" and "John (Product Manager)"
|
|
73
|
+
if (tolower(display) ~ "^" tolower(name) "($| |\\()") {
|
|
74
|
+
# Extract agent ID (column 1)
|
|
75
|
+
agent = $1
|
|
76
|
+
gsub(/^"|"$/, "", agent)
|
|
77
|
+
print agent
|
|
78
|
+
exit
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
' "$PROJECT_ROOT/.bmad/_cfg/agent-manifest.csv")
|
|
82
|
+
|
|
83
|
+
echo "$agent_id"
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
# Get agent ID
|
|
87
|
+
AGENT_ID=$(map_to_agent_id "$AGENT_NAME_OR_ID")
|
|
88
|
+
|
|
89
|
+
# Get agent's voice and intro text
|
|
90
|
+
AGENT_VOICE=""
|
|
91
|
+
AGENT_INTRO=""
|
|
92
|
+
if [[ -n "$AGENT_ID" ]] && [[ -f "$SCRIPT_DIR/bmad-voice-manager.sh" ]]; then
|
|
93
|
+
AGENT_VOICE=$("$SCRIPT_DIR/bmad-voice-manager.sh" get-voice "$AGENT_ID" 2>/dev/null)
|
|
94
|
+
AGENT_INTRO=$("$SCRIPT_DIR/bmad-voice-manager.sh" get-intro "$AGENT_ID" 2>/dev/null)
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
# Prepend intro text if configured (e.g., "John, Product Manager here. [dialogue]")
|
|
98
|
+
FULL_TEXT="$DIALOGUE"
|
|
99
|
+
if [[ -n "$AGENT_INTRO" ]]; then
|
|
100
|
+
FULL_TEXT="${AGENT_INTRO}. ${DIALOGUE}"
|
|
101
|
+
fi
|
|
102
|
+
|
|
103
|
+
# Speak with agent's voice using queue system (non-blocking for Claude)
|
|
104
|
+
# Queue system ensures sequential playback while allowing Claude to continue
|
|
105
|
+
if [[ -n "$AGENT_VOICE" ]]; then
|
|
106
|
+
bash "$SCRIPT_DIR/tts-queue.sh" add "$FULL_TEXT" "$AGENT_VOICE" &
|
|
107
|
+
else
|
|
108
|
+
# Fallback to default voice
|
|
109
|
+
bash "$SCRIPT_DIR/tts-queue.sh" add "$FULL_TEXT" &
|
|
110
|
+
fi
|
|
@@ -49,12 +49,17 @@ GRAY='\033[0;90m'
|
|
|
49
49
|
NC='\033[0m' # No Color
|
|
50
50
|
|
|
51
51
|
# Detect BMAD installation and version
|
|
52
|
-
# Supports both v4 (.bmad-core/) and v6-alpha (bmad/) installations
|
|
52
|
+
# Supports both v4 (.bmad-core/) and v6-alpha (.bmad/) installations
|
|
53
53
|
detect_bmad() {
|
|
54
54
|
local bmad_core_dir=""
|
|
55
55
|
|
|
56
|
-
# Check for v6-alpha first (newer version)
|
|
57
|
-
if [[ -d "bmad" ]]; then
|
|
56
|
+
# Check for v6-alpha first (newer version with dot prefix)
|
|
57
|
+
if [[ -d ".bmad" ]]; then
|
|
58
|
+
bmad_core_dir=".bmad"
|
|
59
|
+
elif [[ -d "../.bmad" ]]; then
|
|
60
|
+
bmad_core_dir="../.bmad"
|
|
61
|
+
# Check for v6-alpha without dot (legacy naming)
|
|
62
|
+
elif [[ -d "bmad" ]]; then
|
|
58
63
|
bmad_core_dir="bmad"
|
|
59
64
|
elif [[ -d "../bmad" ]]; then
|
|
60
65
|
bmad_core_dir="../bmad"
|
|
@@ -34,14 +34,14 @@
|
|
|
34
34
|
# @fileoverview BMAD Voice Plugin Manager - Maps BMAD agents to unique TTS voices
|
|
35
35
|
# @context Enables each BMAD agent to have its own distinct voice for multi-agent sessions
|
|
36
36
|
# @architecture Markdown table-based voice mapping with enable/disable flag, auto-detection of BMAD
|
|
37
|
-
# @dependencies .claude/
|
|
37
|
+
# @dependencies .claude/config/bmad-voices.md (voice mappings), bmad-tts-injector.sh, .bmad-core/ (BMAD installation)
|
|
38
38
|
# @entrypoints Called by /agent-vibes:bmad commands, auto-enabled on BMAD detection
|
|
39
39
|
# @patterns Plugin architecture, auto-enable on dependency detection, state backup/restore on toggle
|
|
40
|
-
# @related bmad-tts-injector.sh, .claude/
|
|
40
|
+
# @related bmad-tts-injector.sh, .claude/config/bmad-voices.md, .bmad-agent-context file
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
ENABLED_FLAG="$
|
|
42
|
+
CONFIG_DIR=".claude/config"
|
|
43
|
+
VOICE_CONFIG_FILE="$CONFIG_DIR/bmad-voices.md"
|
|
44
|
+
ENABLED_FLAG="$CONFIG_DIR/bmad-voices-enabled.flag"
|
|
45
45
|
|
|
46
46
|
# AI NOTE: Auto-enable pattern - When BMAD is detected via install-manifest.yaml,
|
|
47
47
|
# automatically enable the voice plugin to provide seamless multi-agent voice support.
|
|
@@ -115,7 +115,7 @@ auto_enable_if_bmad_detected() {
|
|
|
115
115
|
# Check if BMAD is installed (any version) and plugin not already enabled
|
|
116
116
|
if [[ "$version" != "0" ]] && [[ ! -f "$ENABLED_FLAG" ]]; then
|
|
117
117
|
# BMAD detected but plugin not enabled - enable it silently
|
|
118
|
-
mkdir -p "$
|
|
118
|
+
mkdir -p "$CONFIG_DIR"
|
|
119
119
|
touch "$ENABLED_FLAG"
|
|
120
120
|
return 0
|
|
121
121
|
fi
|
|
@@ -144,7 +144,7 @@ get_agent_voice() {
|
|
|
144
144
|
return
|
|
145
145
|
fi
|
|
146
146
|
|
|
147
|
-
if [[ ! -f "$
|
|
147
|
+
if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
|
|
148
148
|
echo "" # Plugin file missing
|
|
149
149
|
return
|
|
150
150
|
fi
|
|
@@ -163,19 +163,47 @@ get_agent_voice() {
|
|
|
163
163
|
fi
|
|
164
164
|
|
|
165
165
|
# Extract voice from markdown table based on provider
|
|
166
|
-
#
|
|
167
|
-
|
|
166
|
+
# Table: Agent ID | Agent Name | Intro | ElevenLabs Voice | Piper Voice | Personality
|
|
167
|
+
# AWK columns: $1=empty | $2=ID | $3=Name | $4=Intro | $5=ElevenLabs | $6=Piper | $7=Personality
|
|
168
|
+
local column=5 # Default to ElevenLabs (AWK column 5)
|
|
168
169
|
if [[ "$active_provider" == "piper" ]]; then
|
|
169
|
-
column=
|
|
170
|
+
column=6 # Use Piper (AWK column 6)
|
|
170
171
|
fi
|
|
171
172
|
|
|
172
|
-
local voice=$(grep "^| $agent_id " "$
|
|
173
|
+
local voice=$(grep "^| $agent_id " "$VOICE_CONFIG_FILE" | \
|
|
173
174
|
awk -F'|' "{print \$$column}" | \
|
|
174
175
|
sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
175
176
|
|
|
176
177
|
echo "$voice"
|
|
177
178
|
}
|
|
178
179
|
|
|
180
|
+
# @function get_agent_intro
|
|
181
|
+
# @intent Retrieve intro text for BMAD agent (spoken before their message)
|
|
182
|
+
# @why Helps users identify which agent is speaking in party mode
|
|
183
|
+
# @param $1 {string} agent_id - BMAD agent identifier
|
|
184
|
+
# @returns Echoes intro text to stdout, empty string if not configured
|
|
185
|
+
# @exitcode Always 0
|
|
186
|
+
# @sideeffects None
|
|
187
|
+
# @edgecases Returns empty string if plugin file missing, parses column 3 of markdown table
|
|
188
|
+
# @calledby bmad-speak.sh for agent identification in party mode
|
|
189
|
+
# @calls grep, awk, sed
|
|
190
|
+
# @version 2.1.0 - New function for customizable agent introductions
|
|
191
|
+
get_agent_intro() {
|
|
192
|
+
local agent_id="$1"
|
|
193
|
+
|
|
194
|
+
if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
|
|
195
|
+
echo ""
|
|
196
|
+
return
|
|
197
|
+
fi
|
|
198
|
+
|
|
199
|
+
# AWK column 4 = Intro text
|
|
200
|
+
local intro=$(grep "^| $agent_id " "$VOICE_CONFIG_FILE" | \
|
|
201
|
+
awk -F'|' '{print $4}' | \
|
|
202
|
+
sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
203
|
+
|
|
204
|
+
echo "$intro"
|
|
205
|
+
}
|
|
206
|
+
|
|
179
207
|
# @function get_agent_personality
|
|
180
208
|
# @intent Retrieve TTS personality assigned to specific BMAD agent
|
|
181
209
|
# @why Agents may have distinct speaking styles (friendly, professional, energetic, etc.)
|
|
@@ -190,14 +218,14 @@ get_agent_voice() {
|
|
|
190
218
|
get_agent_personality() {
|
|
191
219
|
local agent_id="$1"
|
|
192
220
|
|
|
193
|
-
if [[ ! -f "$
|
|
221
|
+
if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
|
|
194
222
|
echo ""
|
|
195
223
|
return
|
|
196
224
|
fi
|
|
197
225
|
|
|
198
|
-
#
|
|
199
|
-
local personality=$(grep "^| $agent_id " "$
|
|
200
|
-
awk -F'|' '{print $
|
|
226
|
+
# AWK column 7 = Personality
|
|
227
|
+
local personality=$(grep "^| $agent_id " "$VOICE_CONFIG_FILE" | \
|
|
228
|
+
awk -F'|' '{print $7}' | \
|
|
201
229
|
sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
202
230
|
|
|
203
231
|
echo "$personality"
|
|
@@ -229,10 +257,10 @@ is_plugin_enabled() {
|
|
|
229
257
|
# @calledby Main command dispatcher with "enable" argument
|
|
230
258
|
# @calls mkdir, cat, source, list_mappings, bmad-tts-injector.sh
|
|
231
259
|
enable_plugin() {
|
|
232
|
-
mkdir -p "$
|
|
260
|
+
mkdir -p "$CONFIG_DIR"
|
|
233
261
|
|
|
234
262
|
# Save current settings before enabling
|
|
235
|
-
BACKUP_FILE="$
|
|
263
|
+
BACKUP_FILE="$CONFIG_DIR/.bmad-previous-settings"
|
|
236
264
|
|
|
237
265
|
# Save current voice
|
|
238
266
|
if [[ -f ".claude/tts-voice.txt" ]]; then
|
|
@@ -369,7 +397,7 @@ ACTIVATION_EOF
|
|
|
369
397
|
# @calledby Main command dispatcher with "disable" argument
|
|
370
398
|
# @calls source, rm, echo, bmad-tts-injector.sh
|
|
371
399
|
disable_plugin() {
|
|
372
|
-
BACKUP_FILE="$
|
|
400
|
+
BACKUP_FILE="$CONFIG_DIR/.bmad-previous-settings"
|
|
373
401
|
|
|
374
402
|
# Check if we have a backup to restore
|
|
375
403
|
if [[ -f "$BACKUP_FILE" ]]; then
|
|
@@ -435,15 +463,15 @@ disable_plugin() {
|
|
|
435
463
|
# @calledby enable_plugin, show_status, main command dispatcher with "list"
|
|
436
464
|
# @calls grep, sed, echo
|
|
437
465
|
list_mappings() {
|
|
438
|
-
if [[ ! -f "$
|
|
439
|
-
echo "❌ Plugin file not found: $
|
|
466
|
+
if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
|
|
467
|
+
echo "❌ Plugin file not found: $VOICE_CONFIG_FILE"
|
|
440
468
|
return 1
|
|
441
469
|
fi
|
|
442
470
|
|
|
443
471
|
echo "📊 BMAD Agent Voice Mappings:"
|
|
444
472
|
echo ""
|
|
445
473
|
|
|
446
|
-
grep "^| " "$
|
|
474
|
+
grep "^| " "$VOICE_CONFIG_FILE" | grep -v "Agent ID" | grep -v "^|---" | \
|
|
447
475
|
while IFS='|' read -r _ agent_id name voice personality _; do
|
|
448
476
|
agent_id=$(echo "$agent_id" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
449
477
|
name=$(echo "$name" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
|
@@ -471,19 +499,19 @@ set_agent_voice() {
|
|
|
471
499
|
local voice="$2"
|
|
472
500
|
local personality="${3:-normal}"
|
|
473
501
|
|
|
474
|
-
if [[ ! -f "$
|
|
475
|
-
echo "❌ Plugin file not found: $
|
|
502
|
+
if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
|
|
503
|
+
echo "❌ Plugin file not found: $VOICE_CONFIG_FILE"
|
|
476
504
|
return 1
|
|
477
505
|
fi
|
|
478
506
|
|
|
479
507
|
# Check if agent exists
|
|
480
|
-
if ! grep -q "^| $agent_id " "$
|
|
508
|
+
if ! grep -q "^| $agent_id " "$VOICE_CONFIG_FILE"; then
|
|
481
509
|
echo "❌ Agent '$agent_id' not found in plugin"
|
|
482
510
|
return 1
|
|
483
511
|
fi
|
|
484
512
|
|
|
485
513
|
# Update the voice and personality in the table
|
|
486
|
-
sed -i.bak "s/^| $agent_id |.*| .* | .* |$/| $agent_id | $(grep "^| $agent_id " "$
|
|
514
|
+
sed -i.bak "s/^| $agent_id |.*| .* | .* |$/| $agent_id | $(grep "^| $agent_id " "$VOICE_CONFIG_FILE" | awk -F'|' '{print $3}') | $voice | $personality |/" "$VOICE_CONFIG_FILE"
|
|
487
515
|
|
|
488
516
|
echo "✅ Updated $agent_id → $voice [$personality]"
|
|
489
517
|
}
|
|
@@ -531,12 +559,12 @@ show_status() {
|
|
|
531
559
|
# @calledby Main command dispatcher with "edit" argument
|
|
532
560
|
# @calls echo
|
|
533
561
|
edit_plugin() {
|
|
534
|
-
if [[ ! -f "$
|
|
535
|
-
echo "❌ Plugin file not found: $
|
|
562
|
+
if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
|
|
563
|
+
echo "❌ Plugin file not found: $VOICE_CONFIG_FILE"
|
|
536
564
|
return 1
|
|
537
565
|
fi
|
|
538
566
|
|
|
539
|
-
echo "Opening $
|
|
567
|
+
echo "Opening $VOICE_CONFIG_FILE for editing..."
|
|
540
568
|
echo "Edit the markdown table to change voice mappings"
|
|
541
569
|
}
|
|
542
570
|
|
|
@@ -564,6 +592,9 @@ case "${1:-help}" in
|
|
|
564
592
|
get-voice)
|
|
565
593
|
get_agent_voice "$2"
|
|
566
594
|
;;
|
|
595
|
+
get-intro)
|
|
596
|
+
get_agent_intro "$2"
|
|
597
|
+
;;
|
|
567
598
|
get-personality)
|
|
568
599
|
get_agent_personality "$2"
|
|
569
600
|
;;
|
|
@@ -571,7 +602,7 @@ case "${1:-help}" in
|
|
|
571
602
|
edit_plugin
|
|
572
603
|
;;
|
|
573
604
|
*)
|
|
574
|
-
echo "Usage: bmad-voice-manager.sh {enable|disable|status|list|set|get-voice|get-personality|edit}"
|
|
605
|
+
echo "Usage: bmad-voice-manager.sh {enable|disable|status|list|set|get-voice|get-intro|get-personality|edit}"
|
|
575
606
|
echo ""
|
|
576
607
|
echo "Commands:"
|
|
577
608
|
echo " enable Enable BMAD voice plugin"
|
|
@@ -580,6 +611,7 @@ case "${1:-help}" in
|
|
|
580
611
|
echo " list List all agent voice mappings"
|
|
581
612
|
echo " set <id> <voice> Set voice for agent"
|
|
582
613
|
echo " get-voice <id> Get voice for agent"
|
|
614
|
+
echo " get-intro <id> Get intro text for agent"
|
|
583
615
|
echo " get-personality <id> Get personality for agent"
|
|
584
616
|
echo " edit Edit plugin configuration"
|
|
585
617
|
exit 1
|
|
@@ -46,6 +46,11 @@ export LC_ALL=C
|
|
|
46
46
|
TEXT="$1"
|
|
47
47
|
VOICE_OVERRIDE="$2" # Optional: voice name or ID
|
|
48
48
|
|
|
49
|
+
# Remove backslash escaping that Claude might add for special chars like ! and $
|
|
50
|
+
# In single quotes these don't need escaping, but Claude sometimes adds \! anyway
|
|
51
|
+
TEXT="${TEXT//\\!/!}"
|
|
52
|
+
TEXT="${TEXT//\\\$/\$}"
|
|
53
|
+
|
|
49
54
|
# Get script directory
|
|
50
55
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
51
56
|
|