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,221 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/user-prompt-output.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 Auto-detects emoji markers and BMAD party mode in Claude's output and triggers TTS
|
|
35
|
+
# @context Implements verbosity system by detecting π π€ β markers and BMAD party mode agent dialogues
|
|
36
|
+
# @architecture Stdin reader, regex matcher, async TTS trigger, agent voice switching
|
|
37
|
+
# @dependencies play-tts.sh, tts-verbosity.txt, bmad-voice-manager.sh, .bmad/_cfg/agent-manifest.csv
|
|
38
|
+
# @entrypoints Called by Claude Code after each assistant response (user-prompt-output hook)
|
|
39
|
+
# @patterns Text stream processing, background job execution, marker-based triggers, party mode detection
|
|
40
|
+
# @related session-start-tts.sh, verbosity-manager.sh, bmad-voice-manager.sh, Issue #32, Issue #33
|
|
41
|
+
# @aiNotes This hook enables natural emoji-based TTS + BMAD party mode voice switching
|
|
42
|
+
|
|
43
|
+
# Fix locale warnings
|
|
44
|
+
export LC_ALL=C
|
|
45
|
+
|
|
46
|
+
# Get script directory and project root
|
|
47
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
48
|
+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
49
|
+
PLAY_TTS="$SCRIPT_DIR/play-tts.sh"
|
|
50
|
+
|
|
51
|
+
# Read JSON input from stdin
|
|
52
|
+
INPUT=$(cat)
|
|
53
|
+
|
|
54
|
+
# Extract transcript path from JSON
|
|
55
|
+
TRANSCRIPT_PATH=$(echo "$INPUT" | grep -o '"transcript_path":"[^"]*"' | cut -d'"' -f4)
|
|
56
|
+
|
|
57
|
+
# If no transcript path, exit (shouldn't happen but be safe)
|
|
58
|
+
[[ -z "$TRANSCRIPT_PATH" || ! -f "$TRANSCRIPT_PATH" ]] && exit 0
|
|
59
|
+
|
|
60
|
+
# Get the last assistant message from transcript
|
|
61
|
+
# The transcript is JSONL format - each line is a JSON object
|
|
62
|
+
# Extract all text content blocks from the last message and join them
|
|
63
|
+
LAST_RESPONSE=$(tail -1 "$TRANSCRIPT_PATH" | jq -r '.message.content[] | select(.type == "text") | .text' 2>/dev/null)
|
|
64
|
+
|
|
65
|
+
# Get verbosity level
|
|
66
|
+
VERBOSITY=$(cat "$PROJECT_ROOT/.claude/tts-verbosity.txt" 2>/dev/null || cat ~/.claude/tts-verbosity.txt 2>/dev/null || echo "low")
|
|
67
|
+
|
|
68
|
+
# Exit early if play-tts.sh doesn't exist (AgentVibes not installed)
|
|
69
|
+
[[ ! -f "$PLAY_TTS" ]] && exit 0
|
|
70
|
+
|
|
71
|
+
#
|
|
72
|
+
# @function extract_and_speak
|
|
73
|
+
# @context Extracts text after emoji markers and triggers TTS asynchronously
|
|
74
|
+
# @architecture Uses grep to find markers, extracts text, launches TTS in background
|
|
75
|
+
# @dependencies play-tts.sh
|
|
76
|
+
# @entrypoints Called based on verbosity level
|
|
77
|
+
# @aiNotes Background execution (&) prevents blocking Claude's output
|
|
78
|
+
#
|
|
79
|
+
extract_and_speak() {
|
|
80
|
+
local pattern="$1"
|
|
81
|
+
|
|
82
|
+
# Extract lines matching the pattern
|
|
83
|
+
# Pattern format: "emoji text" or "emoji [text]"
|
|
84
|
+
while IFS= read -r line; do
|
|
85
|
+
# Try to extract text after emoji
|
|
86
|
+
# Handles formats: "π text", "π [text]", "πtext"
|
|
87
|
+
if echo "$line" | grep -qE "$pattern"; then
|
|
88
|
+
# Extract everything after the emoji (and optional space/bracket)
|
|
89
|
+
text=$(echo "$line" | sed -E "s/^.*($pattern)[[:space:]]*\[?[[:space:]]*//" | sed 's/\]$//')
|
|
90
|
+
|
|
91
|
+
# Skip if text is empty or too short
|
|
92
|
+
[[ -z "$text" || ${#text} -lt 3 ]] && continue
|
|
93
|
+
|
|
94
|
+
# Speak it in background (don't block)
|
|
95
|
+
bash "$PLAY_TTS" "$text" >/dev/null 2>&1 &
|
|
96
|
+
fi
|
|
97
|
+
done <<< "$LAST_RESPONSE"
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
#
|
|
101
|
+
# @function is_party_mode_enabled
|
|
102
|
+
# @context Check if BMAD party mode voice integration is enabled
|
|
103
|
+
# @architecture Auto-enable for BMAD users, opt-out via disable flag
|
|
104
|
+
# @dependencies .bmad/_cfg/agent-manifest.csv, .claude/plugins/bmad-voices-enabled.flag
|
|
105
|
+
# @returns 0=enabled, 1=disabled
|
|
106
|
+
# @aiNotes Auto-enabled when BMAD detected, respects opt-out flag for user control
|
|
107
|
+
#
|
|
108
|
+
is_party_mode_enabled() {
|
|
109
|
+
# Explicit opt-out takes precedence
|
|
110
|
+
[[ -f "$PROJECT_ROOT/.claude/plugins/bmad-party-mode-disabled.flag" ]] && return 1
|
|
111
|
+
|
|
112
|
+
# Auto-enable if BMAD detected + voice plugin enabled
|
|
113
|
+
if [[ -f "$PROJECT_ROOT/.bmad/_cfg/agent-manifest.csv" ]] && \
|
|
114
|
+
[[ -f "$PROJECT_ROOT/.claude/plugins/bmad-voices-enabled.flag" ]]; then
|
|
115
|
+
return 0
|
|
116
|
+
fi
|
|
117
|
+
|
|
118
|
+
return 1
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
#
|
|
122
|
+
# @function map_display_name_to_agent_id
|
|
123
|
+
# @context Map BMAD agent display name to agent ID for voice lookup
|
|
124
|
+
# @architecture Parses agent-manifest.csv, matches displayName column to name column
|
|
125
|
+
# @dependencies .bmad/_cfg/agent-manifest.csv
|
|
126
|
+
# @param $1 Display name (e.g., "Winston", "John", "Amelia")
|
|
127
|
+
# @returns Agent ID (e.g., "architect", "pm", "dev") or empty string if not found
|
|
128
|
+
# @aiNotes Case-insensitive matching, handles quoted CSV values
|
|
129
|
+
#
|
|
130
|
+
map_display_name_to_agent_id() {
|
|
131
|
+
local display_name="$1"
|
|
132
|
+
|
|
133
|
+
# Check for BMAD v6 manifest
|
|
134
|
+
if [[ ! -f "$PROJECT_ROOT/.bmad/_cfg/agent-manifest.csv" ]]; then
|
|
135
|
+
return 1
|
|
136
|
+
fi
|
|
137
|
+
|
|
138
|
+
# CSV format: name,displayName,title,icon,role,...
|
|
139
|
+
# Extract 'name' (column 1) where displayName (column 2) matches
|
|
140
|
+
# Case-insensitive grep, remove quotes, get first match
|
|
141
|
+
local agent_id=$(grep -i ",\"*${display_name}\"*," "$PROJECT_ROOT/.bmad/_cfg/agent-manifest.csv" | \
|
|
142
|
+
head -1 | \
|
|
143
|
+
cut -d',' -f1 | \
|
|
144
|
+
tr -d '"')
|
|
145
|
+
|
|
146
|
+
echo "$agent_id"
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
#
|
|
150
|
+
# @function detect_and_speak_party_mode_dialogue
|
|
151
|
+
# @context Detect BMAD party mode agent responses and speak with agent-specific voices
|
|
152
|
+
# @architecture Pattern matches [Agent Name]: format, maps to agent voice, triggers TTS
|
|
153
|
+
# @dependencies map_display_name_to_agent_id, bmad-voice-manager.sh, play-tts.sh
|
|
154
|
+
# @aiNotes Runs in background to avoid blocking, graceful fallback for unmapped agents
|
|
155
|
+
#
|
|
156
|
+
detect_and_speak_party_mode_dialogue() {
|
|
157
|
+
# Pattern: [Agent Name]: dialogue
|
|
158
|
+
# Must start at beginning of line, agent name can include spaces/hyphens
|
|
159
|
+
while IFS= read -r line; do
|
|
160
|
+
if echo "$line" | grep -qE '^\[([A-Za-z\s-]+)\]:'; then
|
|
161
|
+
# Extract agent display name and dialogue
|
|
162
|
+
local agent_name=$(echo "$line" | sed -E 's/^\[([A-Za-z\s-]+)\]:.*/\1/')
|
|
163
|
+
local dialogue=$(echo "$line" | sed -E 's/^\[[^]]+\]:[[:space:]]*//')
|
|
164
|
+
|
|
165
|
+
# Skip if dialogue is empty or too short
|
|
166
|
+
[[ -z "$dialogue" || ${#dialogue} -lt 3 ]] && continue
|
|
167
|
+
|
|
168
|
+
# Map display name to agent ID
|
|
169
|
+
local agent_id=$(map_display_name_to_agent_id "$agent_name")
|
|
170
|
+
|
|
171
|
+
# Get agent's voice from bmad-voice-manager.sh
|
|
172
|
+
local agent_voice=""
|
|
173
|
+
if [[ -n "$agent_id" ]] && [[ -f "$SCRIPT_DIR/bmad-voice-manager.sh" ]]; then
|
|
174
|
+
agent_voice=$("$SCRIPT_DIR/bmad-voice-manager.sh" get-voice "$agent_id" 2>/dev/null)
|
|
175
|
+
fi
|
|
176
|
+
|
|
177
|
+
# Speak with agent's voice (or default if not mapped)
|
|
178
|
+
# Run in foreground to ensure audio completes
|
|
179
|
+
if [[ -n "$agent_voice" ]]; then
|
|
180
|
+
bash "$PLAY_TTS" "$dialogue" "$agent_voice" &
|
|
181
|
+
else
|
|
182
|
+
# Fallback to default voice if agent not in voice mapping
|
|
183
|
+
bash "$PLAY_TTS" "$dialogue" &
|
|
184
|
+
fi
|
|
185
|
+
fi
|
|
186
|
+
done
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
# Process based on verbosity level
|
|
190
|
+
case "$VERBOSITY" in
|
|
191
|
+
high)
|
|
192
|
+
# HIGH: Speak ALL markers (π π€ β)
|
|
193
|
+
# Don't speak β
here - that's handled by manual TTS completion call
|
|
194
|
+
extract_and_speak "π|π€|β"
|
|
195
|
+
;;
|
|
196
|
+
|
|
197
|
+
medium)
|
|
198
|
+
# MEDIUM: Speak decisions and findings (π€ β)
|
|
199
|
+
extract_and_speak "π€|β"
|
|
200
|
+
;;
|
|
201
|
+
|
|
202
|
+
low)
|
|
203
|
+
# LOW: No automatic extraction (only manual ACK/COMPLETE TTS calls)
|
|
204
|
+
# Don't process any markers
|
|
205
|
+
;;
|
|
206
|
+
esac
|
|
207
|
+
|
|
208
|
+
# BMAD Party Mode Integration (Issue #33)
|
|
209
|
+
# Auto-enabled for BMAD users, opt-out available
|
|
210
|
+
if is_party_mode_enabled; then
|
|
211
|
+
# Detect party mode activation announcement
|
|
212
|
+
if echo "$LAST_RESPONSE" | grep -q "π PARTY MODE ACTIVATED! π"; then
|
|
213
|
+
bash "$PLAY_TTS" "Party Mode Activated! All agents are here for a group discussion!" &
|
|
214
|
+
fi
|
|
215
|
+
|
|
216
|
+
# Detect agent dialogues
|
|
217
|
+
echo "$LAST_RESPONSE" | detect_and_speak_party_mode_dialogue
|
|
218
|
+
fi
|
|
219
|
+
|
|
220
|
+
# Exit successfully
|
|
221
|
+
exit 0
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/tts-queue-worker.sh
|
|
4
|
+
#
|
|
5
|
+
# TTS Queue Worker - Background process that plays queued TTS sequentially
|
|
6
|
+
# Automatically exits when queue is empty for 5 seconds
|
|
7
|
+
|
|
8
|
+
set -euo pipefail
|
|
9
|
+
|
|
10
|
+
QUEUE_DIR="/tmp/agentvibes-tts-queue"
|
|
11
|
+
WORKER_PID_FILE="$QUEUE_DIR/worker.pid"
|
|
12
|
+
IDLE_TIMEOUT=5 # Exit after 5 seconds of no new requests
|
|
13
|
+
|
|
14
|
+
# Get script directory
|
|
15
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
16
|
+
|
|
17
|
+
# Trap to clean up on exit
|
|
18
|
+
trap "rm -f $WORKER_PID_FILE" EXIT
|
|
19
|
+
|
|
20
|
+
# Process queue items
|
|
21
|
+
process_queue() {
|
|
22
|
+
local idle_count=0
|
|
23
|
+
|
|
24
|
+
while true; do
|
|
25
|
+
# Find oldest queue item
|
|
26
|
+
local queue_item=$(ls -1 "$QUEUE_DIR"/*.queue 2>/dev/null | sort | head -1)
|
|
27
|
+
|
|
28
|
+
if [[ -z "$queue_item" ]]; then
|
|
29
|
+
# Queue is empty, increment idle counter
|
|
30
|
+
idle_count=$((idle_count + 1))
|
|
31
|
+
|
|
32
|
+
if [[ $idle_count -ge $IDLE_TIMEOUT ]]; then
|
|
33
|
+
# No new items for timeout period, exit worker
|
|
34
|
+
exit 0
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
# Wait 1 second and check again
|
|
38
|
+
sleep 1
|
|
39
|
+
continue
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# Reset idle counter - we have work
|
|
43
|
+
idle_count=0
|
|
44
|
+
|
|
45
|
+
# Load TTS request
|
|
46
|
+
source "$queue_item"
|
|
47
|
+
|
|
48
|
+
# Decode base64 values
|
|
49
|
+
TEXT=$(echo -n "$TEXT_B64" | base64 -d)
|
|
50
|
+
VOICE=$(echo -n "$VOICE_B64" | base64 -d)
|
|
51
|
+
|
|
52
|
+
# Play TTS (this blocks until audio finishes due to lock mechanism)
|
|
53
|
+
if [[ -n "${VOICE:-}" ]]; then
|
|
54
|
+
bash "$SCRIPT_DIR/play-tts.sh" "$TEXT" "$VOICE" 2>/dev/null || true
|
|
55
|
+
else
|
|
56
|
+
bash "$SCRIPT_DIR/play-tts.sh" "$TEXT" 2>/dev/null || true
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
# Add 2-second pause between speakers for natural conversation flow
|
|
60
|
+
sleep 2
|
|
61
|
+
|
|
62
|
+
# Remove processed item
|
|
63
|
+
rm -f "$queue_item"
|
|
64
|
+
done
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
# Start processing
|
|
68
|
+
process_queue
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/tts-queue.sh
|
|
4
|
+
#
|
|
5
|
+
# TTS Queue Manager for Party Mode
|
|
6
|
+
# Queues TTS requests and plays them sequentially in the background
|
|
7
|
+
# This allows Claude to continue generating responses while audio plays in order
|
|
8
|
+
|
|
9
|
+
set -euo pipefail
|
|
10
|
+
|
|
11
|
+
QUEUE_DIR="/tmp/agentvibes-tts-queue"
|
|
12
|
+
QUEUE_LOCK="$QUEUE_DIR/queue.lock"
|
|
13
|
+
WORKER_PID_FILE="$QUEUE_DIR/worker.pid"
|
|
14
|
+
|
|
15
|
+
# Get script directory
|
|
16
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
17
|
+
|
|
18
|
+
# Initialize queue directory
|
|
19
|
+
mkdir -p "$QUEUE_DIR"
|
|
20
|
+
|
|
21
|
+
# @function add_to_queue
|
|
22
|
+
# @intent Add a TTS request to the queue for sequential playback
|
|
23
|
+
# @param $1 dialogue text
|
|
24
|
+
# @param $2 voice name (optional)
|
|
25
|
+
add_to_queue() {
|
|
26
|
+
local text="$1"
|
|
27
|
+
local voice="${2:-}"
|
|
28
|
+
|
|
29
|
+
# Create unique queue item with timestamp
|
|
30
|
+
local timestamp=$(date +%s%N)
|
|
31
|
+
local queue_file="$QUEUE_DIR/$timestamp.queue"
|
|
32
|
+
|
|
33
|
+
# Write request to queue file (base64 encoded to handle all special chars)
|
|
34
|
+
cat > "$queue_file" <<EOF
|
|
35
|
+
TEXT_B64=$(echo -n "$text" | base64 -w0)
|
|
36
|
+
VOICE_B64=$(echo -n "$voice" | base64 -w0)
|
|
37
|
+
EOF
|
|
38
|
+
|
|
39
|
+
# Start queue worker if not already running
|
|
40
|
+
start_worker_if_needed
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
# @function start_worker_if_needed
|
|
44
|
+
# @intent Start the queue worker process if it's not already running
|
|
45
|
+
start_worker_if_needed() {
|
|
46
|
+
# Check if worker is already running
|
|
47
|
+
if [[ -f "$WORKER_PID_FILE" ]]; then
|
|
48
|
+
local pid=$(cat "$WORKER_PID_FILE")
|
|
49
|
+
if kill -0 "$pid" 2>/dev/null; then
|
|
50
|
+
# Worker is running
|
|
51
|
+
return 0
|
|
52
|
+
fi
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
# Start worker in background
|
|
56
|
+
"$SCRIPT_DIR/tts-queue-worker.sh" &
|
|
57
|
+
echo $! > "$WORKER_PID_FILE"
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
# @function clear_queue
|
|
61
|
+
# @intent Clear all pending TTS requests (emergency stop)
|
|
62
|
+
clear_queue() {
|
|
63
|
+
rm -f "$QUEUE_DIR"/*.queue
|
|
64
|
+
echo "β
Queue cleared"
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
# @function show_queue
|
|
68
|
+
# @intent Display current queue status
|
|
69
|
+
show_queue() {
|
|
70
|
+
local count=$(ls -1 "$QUEUE_DIR"/*.queue 2>/dev/null | wc -l)
|
|
71
|
+
echo "π Queue status: $count items pending"
|
|
72
|
+
|
|
73
|
+
if [[ -f "$WORKER_PID_FILE" ]]; then
|
|
74
|
+
local pid=$(cat "$WORKER_PID_FILE")
|
|
75
|
+
if kill -0 "$pid" 2>/dev/null; then
|
|
76
|
+
echo "β
Worker process running (PID: $pid)"
|
|
77
|
+
else
|
|
78
|
+
echo "β Worker process not running"
|
|
79
|
+
fi
|
|
80
|
+
else
|
|
81
|
+
echo "β Worker process not running"
|
|
82
|
+
fi
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
# Main command dispatcher
|
|
86
|
+
case "${1:-help}" in
|
|
87
|
+
add)
|
|
88
|
+
add_to_queue "${2:-}" "${3:-}"
|
|
89
|
+
;;
|
|
90
|
+
clear)
|
|
91
|
+
clear_queue
|
|
92
|
+
;;
|
|
93
|
+
status)
|
|
94
|
+
show_queue
|
|
95
|
+
;;
|
|
96
|
+
*)
|
|
97
|
+
echo "Usage: tts-queue.sh {add|clear|status}"
|
|
98
|
+
echo ""
|
|
99
|
+
echo "Commands:"
|
|
100
|
+
echo " add <text> [voice] Add TTS request to queue"
|
|
101
|
+
echo " clear Clear all pending requests"
|
|
102
|
+
echo " status Show queue status"
|
|
103
|
+
exit 1
|
|
104
|
+
;;
|
|
105
|
+
esac
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
high
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml)
|
|
12
12
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
13
13
|
|
|
14
|
-
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v2.
|
|
14
|
+
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v2.7.0
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -94,16 +94,16 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, or using Warp
|
|
|
94
94
|
|
|
95
95
|
## π° Latest Release
|
|
96
96
|
|
|
97
|
-
**[v2.
|
|
97
|
+
**[v2.7.0 - Party Mode Voice Improvements](https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.7.0)** π
|
|
98
98
|
|
|
99
|
-
This
|
|
99
|
+
AgentVibes v2.7.0 transforms BMAD party mode into a professional multi-agent voice conversation system! This release introduces a sophisticated TTS queue architecture enabling sequential voice playback without blocking Claude Code, natural 2-second pauses between speakers, and customizable agent introductions.
|
|
100
100
|
|
|
101
101
|
**Key highlights:**
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
102
|
+
- π **TTS Queue System** - Sequential non-blocking voice playback for party mode
|
|
103
|
+
- βΈοΈ **Natural Speaker Pauses** - 2-second delay between agents for conversation flow
|
|
104
|
+
- π€ **Speaker Introductions** - Configurable intro text (e.g., "John, Product Manager here")
|
|
105
|
+
- π **Config Reorganization** - Moved from `.claude/plugins/` to official `.claude/config/`
|
|
106
|
+
- π **Text Escaping Fixes** - No more "backslash exclamation" in speech
|
|
107
107
|
|
|
108
108
|
[β View All Releases](https://github.com/paulpreibisch/AgentVibes/releases)
|
|
109
109
|
|