bmad-method 6.0.0-alpha.2 → 6.0.0-alpha.4
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/.claude/commands/bmad/bmm/agents/analyst.md +67 -0
- package/.claude/commands/bmad/bmm/agents/architect.md +73 -0
- package/.claude/commands/bmad/bmm/agents/dev.md +69 -0
- package/.claude/commands/bmad/bmm/agents/paige.md +82 -0
- package/.claude/commands/bmad/bmm/agents/pm.md +76 -0
- package/.claude/commands/bmad/bmm/agents/sm.md +85 -0
- package/.claude/commands/bmad/bmm/agents/tea.md +72 -0
- package/.claude/commands/bmad/bmm/agents/ux-designer.md +71 -0
- package/.claude/commands/bmad/bmm/workflows/README.md +132 -0
- package/.claude/commands/bmad/bmm/workflows/architecture.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/code-review.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/correct-course.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/create-story.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/dev-story.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/document-project.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/narrative.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/prd.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/product-brief.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/research.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/retrospective.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/solutioning-gate-check.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/story-context.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/story-done.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/story-ready.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/tech-spec-sm.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/tech-spec.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/workflow-init.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/workflow-status.md +15 -0
- package/.claude/commands/bmad/cis/agents/README.md +104 -0
- package/.claude/commands/bmad/cis/agents/brainstorming-coach.md +62 -0
- package/.claude/commands/bmad/cis/agents/creative-problem-solver.md +62 -0
- package/.claude/commands/bmad/cis/agents/design-thinking-coach.md +62 -0
- package/.claude/commands/bmad/cis/agents/innovation-strategist.md +62 -0
- package/.claude/commands/bmad/cis/agents/storyteller.md +59 -0
- package/.claude/commands/bmad/cis/workflows/README.md +37 -0
- package/.claude/commands/bmad/cis/workflows/design-thinking.md +15 -0
- package/.claude/commands/bmad/cis/workflows/innovation-strategy.md +15 -0
- package/.claude/commands/bmad/cis/workflows/problem-solving.md +15 -0
- package/.claude/commands/bmad/cis/workflows/storytelling.md +15 -0
- package/.claude/settings.local.json +10 -31
- package/CHANGELOG.md +239 -0
- package/README.md +210 -146
- package/bmad/_cfg/agent-manifest.csv +13 -4
- package/bmad/_cfg/agents/bmm-dev.customize.yaml +42 -0
- package/bmad/_cfg/agents/bmm-paige.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-ux-designer.customize.yaml +42 -0
- package/bmad/_cfg/agents/cis-brainstorming-coach.customize.yaml +42 -0
- package/bmad/_cfg/agents/cis-creative-problem-solver.customize.yaml +42 -0
- package/bmad/_cfg/agents/cis-design-thinking-coach.customize.yaml +42 -0
- package/bmad/_cfg/agents/cis-innovation-strategist.customize.yaml +42 -0
- package/bmad/_cfg/agents/cis-storyteller.customize.yaml +42 -0
- package/bmad/_cfg/files-manifest.csv +289 -22
- package/bmad/_cfg/ides/claude-code.yaml +6 -0
- package/bmad/_cfg/manifest.yaml +5 -6
- package/bmad/_cfg/task-manifest.csv +2 -0
- package/bmad/_cfg/workflow-manifest.csv +35 -2
- package/bmad/bmb/README.md +135 -73
- package/bmad/bmb/agents/bmad-builder.md.bak +70 -0
- package/bmad/bmb/config.yaml +2 -2
- package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +3 -1
- package/bmad/bmb/workflows/create-agent/README.md +126 -243
- package/bmad/bmb/workflows/create-agent/instructions.md +25 -12
- package/bmad/bmb/workflows/create-module/README.md +163 -154
- package/bmad/bmb/workflows/create-module/workflow.yaml.bak +2 -0
- package/bmad/bmb/workflows/create-workflow/instructions.md +16 -8
- package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +158 -0
- package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +2 -0
- package/bmad/bmb/workflows/edit-agent/workflow.yaml.bak +33 -0
- package/bmad/bmb/workflows/edit-module/workflow.yaml.bak +34 -0
- package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +2 -0
- package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +2 -0
- package/bmad/bmb/workflows/redoc/workflow.yaml.bak +1 -0
- package/bmad/bmm/README.md +169 -0
- package/bmad/bmm/agents/analyst.md +67 -0
- package/bmad/bmm/agents/architect.md +73 -0
- package/bmad/bmm/agents/dev.md +69 -0
- package/bmad/bmm/agents/paige.md +82 -0
- package/bmad/bmm/agents/pm.md +76 -0
- package/bmad/bmm/agents/sm.md +85 -0
- package/bmad/bmm/agents/tea.md +72 -0
- package/bmad/bmm/agents/ux-designer.md +71 -0
- package/bmad/bmm/config.yaml +17 -0
- package/bmad/bmm/docs/quick-spec-flow.md +645 -0
- package/bmad/bmm/docs/quick-start.md +341 -0
- package/bmad/bmm/docs/scale-adaptive-system.md +1045 -0
- package/bmad/bmm/tasks/daily-standup.xml +85 -0
- package/bmad/bmm/teams/team-fullstack.yaml +11 -0
- package/bmad/bmm/teams/team-gamedev.yaml +14 -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/README.md +113 -0
- package/bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +110 -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 +423 -0
- package/bmad/bmm/workflows/1-analysis/domain-research/template.md +180 -0
- package/bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +36 -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 +439 -0
- package/bmad/bmm/workflows/1-analysis/research/instructions-market.md +679 -0
- package/bmad/bmm/workflows/1-analysis/research/instructions-router.md +133 -0
- package/bmad/bmm/workflows/1-analysis/research/instructions-technical.md +538 -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-ux-design/checklist.md +310 -0
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1319 -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 +64 -0
- package/bmad/bmm/workflows/2-plan-workflows/narrative/checklist.md +139 -0
- package/bmad/bmm/workflows/2-plan-workflows/narrative/instructions-narrative.md +608 -0
- package/bmad/bmm/workflows/2-plan-workflows/narrative/narrative-template.md +195 -0
- package/bmad/bmm/workflows/2-plan-workflows/narrative/workflow.yaml +29 -0
- package/bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +349 -0
- package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +395 -0
- package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +33 -0
- package/bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
- package/bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +423 -0
- package/bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +237 -0
- package/bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
- package/bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +46 -0
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +214 -0
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +58 -0
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +200 -0
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +451 -0
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +1133 -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 +87 -0
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +60 -0
- package/bmad/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +347 -0
- package/bmad/bmm/workflows/3-solutioning/architecture/architecture-template.md +103 -0
- package/bmad/bmm/workflows/3-solutioning/architecture/checklist.md +244 -0
- package/bmad/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +222 -0
- package/bmad/bmm/workflows/3-solutioning/architecture/instructions.md +715 -0
- package/bmad/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +13 -0
- package/bmad/bmm/workflows/3-solutioning/architecture/workflow.yaml +67 -0
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +175 -0
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +322 -0
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +146 -0
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +189 -0
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +64 -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 +420 -0
- package/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +74 -0
- package/bmad/bmm/workflows/4-implementation/correct-course/checklist.md +279 -0
- package/bmad/bmm/workflows/4-implementation/correct-course/instructions.md +201 -0
- package/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +43 -0
- package/bmad/bmm/workflows/4-implementation/create-story/README.md +146 -0
- package/bmad/bmm/workflows/4-implementation/create-story/checklist.md +240 -0
- package/bmad/bmm/workflows/4-implementation/create-story/instructions.md +283 -0
- package/bmad/bmm/workflows/4-implementation/create-story/template.md +51 -0
- package/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +74 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +367 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/checklist.md +38 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/instructions.md +262 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +26 -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 +189 -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 +58 -0
- package/bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1460 -0
- package/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +71 -0
- package/bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
- package/bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +238 -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 +47 -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 +234 -0
- package/bmad/bmm/workflows/4-implementation/story-context/workflow.yaml +57 -0
- package/bmad/bmm/workflows/4-implementation/story-done/instructions.md +111 -0
- package/bmad/bmm/workflows/4-implementation/story-done/workflow.yaml +25 -0
- package/bmad/bmm/workflows/4-implementation/story-ready/instructions.md +117 -0
- package/bmad/bmm/workflows/4-implementation/story-ready/workflow.yaml +25 -0
- package/bmad/bmm/workflows/README.md +256 -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 +34 -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/techdoc/documentation-standards.md +238 -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 +52 -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 +61 -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 +53 -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 +53 -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 +56 -0
- package/bmad/bmm/workflows/testarch/test-design/checklist.md +234 -0
- package/bmad/bmm/workflows/testarch/test-design/instructions.md +621 -0
- package/bmad/bmm/workflows/testarch/test-design/test-design-template.md +285 -0
- package/bmad/bmm/workflows/testarch/test-design/workflow.yaml +52 -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 +53 -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 +66 -0
- package/{src/modules → bmad}/bmm/workflows/workflow-status/README.md +38 -19
- package/bmad/bmm/workflows/workflow-status/init/instructions.md +390 -0
- package/bmad/bmm/workflows/workflow-status/init/workflow.yaml +27 -0
- package/bmad/bmm/workflows/workflow-status/instructions.md +386 -0
- package/bmad/bmm/workflows/workflow-status/paths/brownfield-level-0.yaml +54 -0
- package/bmad/bmm/workflows/workflow-status/paths/brownfield-level-1.yaml +58 -0
- package/bmad/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +76 -0
- package/bmad/bmm/workflows/workflow-status/paths/brownfield-level-3.yaml +95 -0
- package/bmad/bmm/workflows/workflow-status/paths/brownfield-level-4.yaml +88 -0
- package/bmad/bmm/workflows/workflow-status/paths/game-design.yaml +75 -0
- package/bmad/bmm/workflows/workflow-status/paths/greenfield-level-0.yaml +45 -0
- package/bmad/bmm/workflows/workflow-status/paths/greenfield-level-1.yaml +49 -0
- package/bmad/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml +78 -0
- package/bmad/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml +73 -0
- package/bmad/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +75 -0
- package/bmad/bmm/workflows/workflow-status/project-levels.yaml +59 -0
- package/bmad/bmm/workflows/workflow-status/sample-level-3-workflow.yaml +49 -0
- package/bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +31 -0
- package/bmad/bmm/workflows/workflow-status/workflow.yaml +28 -0
- package/bmad/cis/README.md +153 -0
- package/bmad/cis/agents/README.md +104 -0
- package/bmad/cis/agents/brainstorming-coach.md +62 -0
- package/bmad/cis/agents/creative-problem-solver.md +62 -0
- package/bmad/cis/agents/design-thinking-coach.md +62 -0
- package/bmad/cis/agents/innovation-strategist.md +62 -0
- package/bmad/cis/agents/storyteller.md +59 -0
- package/bmad/{bmd → cis}/config.yaml +3 -3
- package/bmad/cis/teams/creative-squad.yaml +6 -0
- package/bmad/cis/workflows/README.md +139 -0
- package/bmad/cis/workflows/design-thinking/README.md +56 -0
- package/bmad/cis/workflows/design-thinking/design-methods.csv +31 -0
- package/bmad/cis/workflows/design-thinking/instructions.md +200 -0
- package/bmad/cis/workflows/design-thinking/template.md +111 -0
- package/bmad/cis/workflows/design-thinking/workflow.yaml +32 -0
- package/bmad/cis/workflows/innovation-strategy/README.md +56 -0
- package/bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +31 -0
- package/bmad/cis/workflows/innovation-strategy/instructions.md +274 -0
- package/bmad/cis/workflows/innovation-strategy/template.md +189 -0
- package/bmad/cis/workflows/innovation-strategy/workflow.yaml +32 -0
- package/bmad/cis/workflows/problem-solving/README.md +56 -0
- package/bmad/cis/workflows/problem-solving/instructions.md +250 -0
- package/bmad/cis/workflows/problem-solving/solving-methods.csv +31 -0
- package/bmad/cis/workflows/problem-solving/template.md +165 -0
- package/bmad/cis/workflows/problem-solving/workflow.yaml +32 -0
- package/bmad/cis/workflows/storytelling/README.md +58 -0
- package/bmad/cis/workflows/storytelling/instructions.md +291 -0
- package/bmad/cis/workflows/storytelling/story-types.csv +26 -0
- package/bmad/cis/workflows/storytelling/template.md +113 -0
- package/bmad/cis/workflows/storytelling/workflow.yaml +32 -0
- package/bmad/core/agents/bmad-master.md.bak +69 -0
- package/bmad/core/config.yaml +2 -2
- package/bmad/core/tasks/workflow.xml +0 -8
- package/bmad/core/tools/shard-doc.xml +8 -43
- package/docs/document-sharding-guide.md +447 -0
- package/docs/index.md +225 -0
- package/docs/v4-to-v6-upgrade.md +9 -7
- package/package.json +1 -1
- package/src/core/tools/shard-doc.xml +8 -43
- package/src/modules/bmb/README.md +135 -73
- package/src/modules/bmb/workflows/create-agent/README.md +126 -243
- package/src/modules/bmb/workflows/create-agent/instructions.md +25 -12
- package/src/modules/bmb/workflows/create-module/README.md +163 -154
- package/src/modules/bmb/workflows/create-workflow/instructions.md +16 -8
- package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +158 -0
- package/src/modules/bmm/README.md +79 -92
- package/src/modules/bmm/agents/game-designer.agent.yaml +2 -2
- package/src/modules/bmm/agents/paige.agent.yaml +69 -0
- package/src/modules/bmm/agents/pm.agent.yaml +11 -1
- package/src/modules/bmm/docs/README.md +235 -0
- package/src/modules/bmm/docs/agents-guide.md +1109 -0
- package/src/modules/bmm/docs/brownfield-guide.md +638 -0
- package/src/modules/bmm/docs/brownfield-guide.md.backup +1324 -0
- package/src/modules/bmm/docs/enterprise-agentic-development.md +1040 -0
- package/src/modules/bmm/docs/faq.md +589 -0
- package/src/modules/bmm/docs/glossary.md +327 -0
- package/src/modules/bmm/docs/party-mode.md +1236 -0
- package/src/modules/bmm/docs/quick-spec-flow.md +652 -0
- package/src/modules/bmm/docs/quick-start.md +366 -0
- package/src/modules/bmm/docs/scale-adaptive-system.md +749 -0
- package/src/modules/bmm/docs/troubleshooting.md +680 -0
- package/src/modules/bmm/docs/workflow-architecture-reference.md +371 -0
- package/src/modules/bmm/docs/workflow-document-project-reference.md +487 -0
- package/src/modules/bmm/docs/workflows-analysis.md +670 -0
- package/src/modules/bmm/docs/workflows-implementation.md +1759 -0
- package/src/modules/bmm/docs/workflows-planning.md +1086 -0
- package/src/modules/bmm/docs/workflows-solutioning.md +726 -0
- package/src/modules/bmm/docs/workflows-testing.md +1572 -0
- package/src/modules/bmm/workflows/1-analysis/brainstorm-game/instructions.md +45 -26
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +42 -23
- package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +423 -0
- package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +180 -0
- package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +36 -0
- package/src/modules/bmm/workflows/1-analysis/game-brief/instructions.md +42 -28
- package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +434 -231
- package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +93 -77
- package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +14 -0
- package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
- package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
- package/src/modules/bmm/workflows/1-analysis/research/checklist.md +154 -57
- package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +68 -62
- package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +203 -137
- package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +53 -45
- package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +116 -79
- package/src/modules/bmm/workflows/1-analysis/research/template-market.md +37 -1
- package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +36 -1
- package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +13 -0
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +58 -22
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +22 -0
- package/src/modules/bmm/workflows/2-plan-workflows/gdd/instructions-gdd.md +52 -21
- package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +14 -0
- package/src/modules/bmm/workflows/2-plan-workflows/narrative/instructions-narrative.md +73 -22
- package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +295 -63
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +63 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +395 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +43 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +295 -321
- package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +198 -23
- package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +24 -6
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +138 -31
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +51 -4
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +50 -17
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +199 -26
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +1005 -141
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +132 -6
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +36 -5
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +21 -0
- package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +91 -79
- package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +17 -4
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +94 -45
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +26 -0
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +29 -0
- package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +20 -0
- package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +31 -0
- package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +27 -0
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +29 -0
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +31 -5
- package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1222 -241
- package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +28 -0
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +17 -0
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +8 -0
- package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +34 -1
- package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +27 -0
- package/src/modules/bmm/workflows/techdoc/documentation-standards.md +239 -0
- package/src/modules/bmm/workflows/workflow-status/init/instructions.md +117 -24
- package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/workflow-status/instructions.md +173 -111
- package/src/modules/bmm/workflows/workflow-status/sample-level-3-workflow.yaml +49 -0
- package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +31 -0
- package/src/modules/bmm/workflows/workflow-status/workflow.yaml +3 -3
- package/src/modules/cis/README.md +153 -0
- package/src/modules/cis/workflows/README.md +102 -30
- package/src/modules/cis/workflows/storytelling/instructions.md +10 -2
- package/tools/cli/commands/install.js +1 -1
- package/tools/cli/installers/lib/core/manifest-generator.js +4 -1
- package/.claude/commands/bmad/bmd/agents/cli-chief.md +0 -108
- package/.claude/commands/bmad/bmd/agents/doc-keeper.md +0 -115
- package/.claude/commands/bmad/bmd/agents/release-chief.md +0 -109
- package/.claude/hooks/bmad-tts-injector.sh +0 -415
- package/.claude/hooks/bmad-voice-manager.sh +0 -511
- package/.claude/hooks/check-output-style.sh +0 -112
- package/.claude/hooks/download-extra-voices.sh +0 -244
- package/.claude/hooks/github-star-reminder.sh +0 -154
- package/.claude/hooks/language-manager.sh +0 -392
- package/.claude/hooks/learn-manager.sh +0 -475
- package/.claude/hooks/personality-manager.sh +0 -438
- package/.claude/hooks/piper-download-voices.sh +0 -165
- package/.claude/hooks/piper-installer.sh +0 -178
- package/.claude/hooks/piper-multispeaker-registry.sh +0 -165
- package/.claude/hooks/piper-voice-manager.sh +0 -293
- package/.claude/hooks/play-tts-elevenlabs.sh +0 -404
- package/.claude/hooks/play-tts-piper.sh +0 -338
- package/.claude/hooks/play-tts.sh +0 -100
- package/.claude/hooks/provider-commands.sh +0 -540
- package/.claude/hooks/provider-manager.sh +0 -298
- package/.claude/hooks/replay-target-audio.sh +0 -95
- package/.claude/hooks/sentiment-manager.sh +0 -201
- package/.claude/hooks/speed-manager.sh +0 -291
- package/.claude/hooks/voice-manager.sh +0 -594
- package/.claude/hooks/voices-config.sh +0 -70
- package/bmad/_cfg/agents/bmd-cli-chief.customize.yaml +0 -32
- package/bmad/bmb/workflows/create-agent/agent-architecture.md.bak +0 -412
- package/bmad/bmb/workflows/create-agent/agent-command-patterns.md.bak +0 -759
- package/bmad/bmb/workflows/create-module/README.md.bak +0 -218
- package/bmad/bmb/workflows/create-module/checklist.md.bak +0 -245
- package/bmad/bmb/workflows/create-module/installer-templates/installer.js.bak +0 -231
- package/bmad/bmb/workflows/create-module/instructions.md.bak +0 -521
- package/bmad/bmb/workflows/create-module/module-structure.md.bak +0 -310
- package/bmad/bmd/README.md +0 -193
- package/bmad/bmd/README.md.bak +0 -193
- package/bmad/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
- package/bmad/bmd/agents/cli-chief-sidecar/instructions.md.bak +0 -102
- package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
- package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md.bak +0 -68
- package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
- package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md.bak +0 -123
- package/bmad/bmd/agents/cli-chief-sidecar/memories.md +0 -53
- package/bmad/bmd/agents/cli-chief-sidecar/memories.md.bak +0 -53
- package/bmad/bmd/agents/cli-chief.md +0 -108
- package/bmad/bmd/agents/cli-chief.md.bak +0 -108
- package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
- package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md.bak +0 -177
- package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
- package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md.bak +0 -81
- package/bmad/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
- package/bmad/bmd/agents/doc-keeper-sidecar/memories.md.bak +0 -88
- package/bmad/bmd/agents/doc-keeper.md +0 -115
- package/bmad/bmd/agents/doc-keeper.md.bak +0 -115
- package/bmad/bmd/agents/release-chief-sidecar/instructions.md +0 -164
- package/bmad/bmd/agents/release-chief-sidecar/instructions.md.bak +0 -164
- package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
- package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md.bak +0 -82
- package/bmad/bmd/agents/release-chief-sidecar/memories.md +0 -73
- package/bmad/bmd/agents/release-chief-sidecar/memories.md.bak +0 -73
- package/bmad/bmd/agents/release-chief.md +0 -109
- package/bmad/bmd/agents/release-chief.md.bak +0 -109
- package/bmad/docs/codex-instructions.md +0 -21
- package/docs/conversion-report-shard-doc-2025-10-26.md +0 -188
- package/src/modules/bmm/workflows/1-analysis/brainstorm-game/README.md +0 -38
- package/src/modules/bmm/workflows/1-analysis/brainstorm-project/README.md +0 -29
- package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
- package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
- package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
- package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
- package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
- package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
- package/src/modules/bmm/workflows/2-plan-workflows/gdd/README.md +0 -222
- package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -129
- package/src/modules/bmm/workflows/README.md +0 -577
- package/src/modules/bmm/workflows/workflow-status/workflow-status-template.md +0 -30
- package/src/modules/cis/readme.md +0 -86
- /package/bmad/_cfg/agents/{bmd-doc-keeper.customize.yaml → bmm-analyst.customize.yaml} +0 -0
- /package/bmad/_cfg/agents/{bmd-release-chief.customize.yaml → bmm-architect.customize.yaml} +0 -0
- /package/{docs/bmad-brownfield-guide.md → bmad/bmm/docs/brownfield-guide.md} +0 -0
- /package/{src/modules → bmad}/bmm/tasks/retrospective.xml +0 -0
- /package/{src/modules → bmad}/bmm/testarch/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/1-analysis/product-brief/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/1-analysis/research/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/2-plan-workflows/README.md +0 -0
- /package/{src/modules/bmm/workflows/2-plan-workflows/prd → bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories}/epics-template.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/3-solutioning/README.md +0 -0
- /package/{src/modules/bmm/workflows/3-solutioning/architecture/readme.md → bmad/bmm/workflows/3-solutioning/architecture/README.md} +0 -0
- /package/{src/modules → bmad}/bmm/workflows/3-solutioning/solutioning-gate-check/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/4-implementation/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/4-implementation/code-review/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/4-implementation/correct-course/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/4-implementation/dev-story/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/4-implementation/epic-tech-context/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/4-implementation/retrospective/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/4-implementation/sprint-planning/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/4-implementation/story-context/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/document-project/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/document-project/templates/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/testarch/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/testarch/atdd/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/testarch/automate/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/testarch/ci/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/testarch/framework/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/testarch/nfr-assess/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/testarch/test-design/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/testarch/test-review/README.md +0 -0
- /package/{src/modules → bmad}/bmm/workflows/testarch/trace/README.md +0 -0
- /package/src/modules/bmm/sub-modules/claude-code/{readme.md → README.md} +0 -0
|
@@ -1,594 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
# File: .claude/hooks/voice-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. Use at your own risk. See the Apache License for details.
|
|
26
|
-
#
|
|
27
|
-
# ---
|
|
28
|
-
#
|
|
29
|
-
# @fileoverview Voice Manager - Unified voice management for both ElevenLabs and Piper providers
|
|
30
|
-
# @context Central interface for listing, switching, previewing, and replaying TTS voices across providers
|
|
31
|
-
# @architecture Provider-aware operations with dynamic voice listing based on active provider
|
|
32
|
-
# @dependencies voices-config.sh (ElevenLabs mappings), piper-voice-manager.sh (Piper voices), provider-manager.sh
|
|
33
|
-
# @entrypoints Called by /agent-vibes:switch, /agent-vibes:list, /agent-vibes:whoami, /agent-vibes:replay commands
|
|
34
|
-
# @patterns Provider abstraction, numbered selection UI, silent mode for programmatic switching
|
|
35
|
-
# @related voices-config.sh, piper-voice-manager.sh, .claude/tts-voice.txt, .claude/audio/ (replay)
|
|
36
|
-
|
|
37
|
-
# Get script directory (physical path for sourcing files)
|
|
38
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
|
39
|
-
source "$SCRIPT_DIR/voices-config.sh"
|
|
40
|
-
|
|
41
|
-
# Determine target .claude directory based on context
|
|
42
|
-
# Priority:
|
|
43
|
-
# 1. CLAUDE_PROJECT_DIR env var (set by MCP for project-specific settings)
|
|
44
|
-
# 2. Script location (for direct slash command usage)
|
|
45
|
-
# 3. Global ~/.claude (fallback)
|
|
46
|
-
|
|
47
|
-
if [[ -n "$CLAUDE_PROJECT_DIR" ]] && [[ -d "$CLAUDE_PROJECT_DIR/.claude" ]]; then
|
|
48
|
-
# MCP context: Use the project directory where MCP was invoked
|
|
49
|
-
CLAUDE_DIR="$CLAUDE_PROJECT_DIR/.claude"
|
|
50
|
-
else
|
|
51
|
-
# Direct usage context: Use script location
|
|
52
|
-
SCRIPT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
53
|
-
CLAUDE_DIR="$(dirname "$SCRIPT_PATH")"
|
|
54
|
-
|
|
55
|
-
# If script is in global ~/.claude, use that
|
|
56
|
-
if [[ "$CLAUDE_DIR" == "$HOME/.claude" ]]; then
|
|
57
|
-
CLAUDE_DIR="$HOME/.claude"
|
|
58
|
-
elif [[ ! -d "$CLAUDE_DIR" ]]; then
|
|
59
|
-
# Fallback to global if directory doesn't exist
|
|
60
|
-
CLAUDE_DIR="$HOME/.claude"
|
|
61
|
-
fi
|
|
62
|
-
fi
|
|
63
|
-
|
|
64
|
-
VOICE_FILE="$CLAUDE_DIR/tts-voice.txt"
|
|
65
|
-
|
|
66
|
-
case "$1" in
|
|
67
|
-
list)
|
|
68
|
-
# Get active provider
|
|
69
|
-
PROVIDER_FILE="$CLAUDE_DIR/tts-provider.txt"
|
|
70
|
-
if [[ ! -f "$PROVIDER_FILE" ]]; then
|
|
71
|
-
PROVIDER_FILE="$HOME/.claude/tts-provider.txt"
|
|
72
|
-
fi
|
|
73
|
-
|
|
74
|
-
ACTIVE_PROVIDER="elevenlabs" # default
|
|
75
|
-
if [ -f "$PROVIDER_FILE" ]; then
|
|
76
|
-
ACTIVE_PROVIDER=$(cat "$PROVIDER_FILE")
|
|
77
|
-
fi
|
|
78
|
-
|
|
79
|
-
CURRENT_VOICE=$(cat "$VOICE_FILE" 2>/dev/null || echo "Cowboy Bob")
|
|
80
|
-
|
|
81
|
-
if [[ "$ACTIVE_PROVIDER" == "piper" ]]; then
|
|
82
|
-
echo "🎤 Available Piper TTS Voices:"
|
|
83
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
84
|
-
|
|
85
|
-
# List downloaded Piper voices
|
|
86
|
-
if [[ -f "$SCRIPT_DIR/piper-voice-manager.sh" ]]; then
|
|
87
|
-
source "$SCRIPT_DIR/piper-voice-manager.sh"
|
|
88
|
-
VOICE_DIR=$(get_voice_storage_dir)
|
|
89
|
-
VOICE_COUNT=0
|
|
90
|
-
for onnx_file in "$VOICE_DIR"/*.onnx; do
|
|
91
|
-
if [[ -f "$onnx_file" ]]; then
|
|
92
|
-
voice=$(basename "$onnx_file" .onnx)
|
|
93
|
-
if [ "$voice" = "$CURRENT_VOICE" ]; then
|
|
94
|
-
echo " ▶ $voice (current)"
|
|
95
|
-
else
|
|
96
|
-
echo " $voice"
|
|
97
|
-
fi
|
|
98
|
-
((VOICE_COUNT++))
|
|
99
|
-
fi
|
|
100
|
-
done | sort
|
|
101
|
-
|
|
102
|
-
if [[ $VOICE_COUNT -eq 0 ]]; then
|
|
103
|
-
echo " (No Piper voices downloaded yet)"
|
|
104
|
-
echo ""
|
|
105
|
-
echo "Download voices with: /agent-vibes:provider download <voice-name>"
|
|
106
|
-
echo "Examples: en_US-lessac-medium, en_GB-alba-medium"
|
|
107
|
-
fi
|
|
108
|
-
fi
|
|
109
|
-
else
|
|
110
|
-
echo "🎤 Available ElevenLabs TTS Voices:"
|
|
111
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
112
|
-
for voice in "${!VOICES[@]}"; do
|
|
113
|
-
if [ "$voice" = "$CURRENT_VOICE" ]; then
|
|
114
|
-
echo " ▶ $voice (current)"
|
|
115
|
-
else
|
|
116
|
-
echo " $voice"
|
|
117
|
-
fi
|
|
118
|
-
done | sort
|
|
119
|
-
fi
|
|
120
|
-
|
|
121
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
122
|
-
echo ""
|
|
123
|
-
echo "Usage: voice-manager.sh switch <name>"
|
|
124
|
-
echo " voice-manager.sh preview"
|
|
125
|
-
;;
|
|
126
|
-
|
|
127
|
-
preview)
|
|
128
|
-
# Get play-tts.sh path
|
|
129
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
130
|
-
TTS_SCRIPT="$SCRIPT_DIR/play-tts.sh"
|
|
131
|
-
|
|
132
|
-
# Check if a specific voice name was provided
|
|
133
|
-
if [[ -n "$2" ]] && [[ "$2" != "first" ]] && [[ "$2" != "last" ]] && ! [[ "$2" =~ ^[0-9]+$ ]]; then
|
|
134
|
-
# User specified a voice name
|
|
135
|
-
VOICE_NAME="$2"
|
|
136
|
-
|
|
137
|
-
# Check if voice exists
|
|
138
|
-
if [[ -n "${VOICES[$VOICE_NAME]}" ]]; then
|
|
139
|
-
echo "🎤 Previewing voice: ${VOICE_NAME}"
|
|
140
|
-
echo ""
|
|
141
|
-
"$TTS_SCRIPT" "Hello, this is ${VOICE_NAME}. How do you like my voice?" "${VOICE_NAME}"
|
|
142
|
-
else
|
|
143
|
-
echo "❌ Voice not found: ${VOICE_NAME}"
|
|
144
|
-
echo ""
|
|
145
|
-
echo "Available voices:"
|
|
146
|
-
for voice in "${!VOICES[@]}"; do
|
|
147
|
-
echo " • $voice"
|
|
148
|
-
done | sort
|
|
149
|
-
fi
|
|
150
|
-
exit 0
|
|
151
|
-
fi
|
|
152
|
-
|
|
153
|
-
# Original preview logic for first/last/number
|
|
154
|
-
echo "🎤 Voice Preview - Playing first 3 voices..."
|
|
155
|
-
echo ""
|
|
156
|
-
|
|
157
|
-
# Sort voices and preview first 3
|
|
158
|
-
VOICE_ARRAY=()
|
|
159
|
-
for voice in "${!VOICES[@]}"; do
|
|
160
|
-
VOICE_ARRAY+=("$voice")
|
|
161
|
-
done
|
|
162
|
-
|
|
163
|
-
# Sort the array
|
|
164
|
-
IFS=$'\n' SORTED_VOICES=($(sort <<<"${VOICE_ARRAY[*]}"))
|
|
165
|
-
unset IFS
|
|
166
|
-
|
|
167
|
-
# Play first 3 voices
|
|
168
|
-
COUNT=0
|
|
169
|
-
for voice in "${SORTED_VOICES[@]}"; do
|
|
170
|
-
if [ $COUNT -eq 3 ]; then
|
|
171
|
-
break
|
|
172
|
-
fi
|
|
173
|
-
echo "🔊 ${voice}..."
|
|
174
|
-
"$TTS_SCRIPT" "Hi, I'm ${voice}" "${VOICES[$voice]}"
|
|
175
|
-
sleep 0.5
|
|
176
|
-
COUNT=$((COUNT + 1))
|
|
177
|
-
done
|
|
178
|
-
|
|
179
|
-
echo ""
|
|
180
|
-
echo "Would you like to hear more? Reply 'yes' to continue."
|
|
181
|
-
;;
|
|
182
|
-
|
|
183
|
-
switch)
|
|
184
|
-
VOICE_NAME="$2"
|
|
185
|
-
SILENT_MODE=false
|
|
186
|
-
|
|
187
|
-
# Check for --silent flag
|
|
188
|
-
if [[ "$2" == "--silent" ]] || [[ "$3" == "--silent" ]]; then
|
|
189
|
-
SILENT_MODE=true
|
|
190
|
-
# If --silent is first arg, voice name is in $3
|
|
191
|
-
[[ "$2" == "--silent" ]] && VOICE_NAME="$3"
|
|
192
|
-
fi
|
|
193
|
-
|
|
194
|
-
if [[ -z "$VOICE_NAME" ]]; then
|
|
195
|
-
# Show numbered list for selection
|
|
196
|
-
echo "🎤 Select a voice by number:"
|
|
197
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
198
|
-
|
|
199
|
-
# Get current voice
|
|
200
|
-
CURRENT="Cowboy Bob"
|
|
201
|
-
if [ -f "$VOICE_FILE" ]; then
|
|
202
|
-
CURRENT=$(cat "$VOICE_FILE")
|
|
203
|
-
fi
|
|
204
|
-
|
|
205
|
-
# Create array of voice names
|
|
206
|
-
VOICE_ARRAY=()
|
|
207
|
-
for voice in "${!VOICES[@]}"; do
|
|
208
|
-
VOICE_ARRAY+=("$voice")
|
|
209
|
-
done
|
|
210
|
-
|
|
211
|
-
# Sort the array
|
|
212
|
-
IFS=$'\n' SORTED_VOICES=($(sort <<<"${VOICE_ARRAY[*]}"))
|
|
213
|
-
unset IFS
|
|
214
|
-
|
|
215
|
-
# Display numbered list in two columns for compactness
|
|
216
|
-
HALF=$(( (${#SORTED_VOICES[@]} + 1) / 2 ))
|
|
217
|
-
|
|
218
|
-
for i in $(seq 0 $((HALF - 1))); do
|
|
219
|
-
NUM1=$((i + 1))
|
|
220
|
-
VOICE1="${SORTED_VOICES[$i]}"
|
|
221
|
-
|
|
222
|
-
# Format first column
|
|
223
|
-
if [[ "$VOICE1" == "$CURRENT" ]]; then
|
|
224
|
-
COL1=$(printf "%2d. %-20s ✓" "$NUM1" "$VOICE1")
|
|
225
|
-
else
|
|
226
|
-
COL1=$(printf "%2d. %-20s " "$NUM1" "$VOICE1")
|
|
227
|
-
fi
|
|
228
|
-
|
|
229
|
-
# Format second column if it exists
|
|
230
|
-
NUM2=$((i + HALF + 1))
|
|
231
|
-
if [[ $((i + HALF)) -lt ${#SORTED_VOICES[@]} ]]; then
|
|
232
|
-
VOICE2="${SORTED_VOICES[$((i + HALF))]}"
|
|
233
|
-
if [[ "$VOICE2" == "$CURRENT" ]]; then
|
|
234
|
-
COL2=$(printf "%2d. %-20s ✓" "$NUM2" "$VOICE2")
|
|
235
|
-
else
|
|
236
|
-
COL2=$(printf "%2d. %-20s " "$NUM2" "$VOICE2")
|
|
237
|
-
fi
|
|
238
|
-
echo " $COL1 $COL2"
|
|
239
|
-
else
|
|
240
|
-
echo " $COL1"
|
|
241
|
-
fi
|
|
242
|
-
done
|
|
243
|
-
|
|
244
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
245
|
-
echo ""
|
|
246
|
-
echo "Enter number (1-${#SORTED_VOICES[@]}) or voice name:"
|
|
247
|
-
echo "Usage: /agent-vibes:switch 5"
|
|
248
|
-
echo " /agent-vibes:switch \"Northern Terry\""
|
|
249
|
-
exit 0
|
|
250
|
-
fi
|
|
251
|
-
|
|
252
|
-
# Detect active TTS provider
|
|
253
|
-
PROVIDER_FILE=""
|
|
254
|
-
if [[ -f "$CLAUDE_DIR/tts-provider.txt" ]]; then
|
|
255
|
-
PROVIDER_FILE="$CLAUDE_DIR/tts-provider.txt"
|
|
256
|
-
elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
|
|
257
|
-
PROVIDER_FILE="$HOME/.claude/tts-provider.txt"
|
|
258
|
-
fi
|
|
259
|
-
|
|
260
|
-
ACTIVE_PROVIDER="elevenlabs" # default
|
|
261
|
-
if [[ -n "$PROVIDER_FILE" ]]; then
|
|
262
|
-
ACTIVE_PROVIDER=$(cat "$PROVIDER_FILE")
|
|
263
|
-
fi
|
|
264
|
-
|
|
265
|
-
# Voice lookup strategy depends on active provider
|
|
266
|
-
if [[ "$ACTIVE_PROVIDER" == "piper" ]]; then
|
|
267
|
-
# Piper voice lookup: Scan voice directory for .onnx files
|
|
268
|
-
source "$SCRIPT_DIR/piper-voice-manager.sh"
|
|
269
|
-
VOICE_DIR=$(get_voice_storage_dir)
|
|
270
|
-
|
|
271
|
-
# Check if voice file exists (case-insensitive)
|
|
272
|
-
FOUND=""
|
|
273
|
-
shopt -s nullglob
|
|
274
|
-
for onnx_file in "$VOICE_DIR"/*.onnx; do
|
|
275
|
-
if [[ -f "$onnx_file" ]]; then
|
|
276
|
-
voice=$(basename "$onnx_file" .onnx)
|
|
277
|
-
if [[ "${voice,,}" == "${VOICE_NAME,,}" ]]; then
|
|
278
|
-
FOUND="$voice"
|
|
279
|
-
break
|
|
280
|
-
fi
|
|
281
|
-
fi
|
|
282
|
-
done
|
|
283
|
-
shopt -u nullglob
|
|
284
|
-
|
|
285
|
-
# If not found, check multi-speaker registry
|
|
286
|
-
if [[ -z "$FOUND" ]] && [[ -f "$SCRIPT_DIR/piper-multispeaker-registry.sh" ]]; then
|
|
287
|
-
source "$SCRIPT_DIR/piper-multispeaker-registry.sh"
|
|
288
|
-
|
|
289
|
-
MULTISPEAKER_INFO=$(get_multispeaker_info "$VOICE_NAME")
|
|
290
|
-
if [[ -n "$MULTISPEAKER_INFO" ]]; then
|
|
291
|
-
MODEL="${MULTISPEAKER_INFO%%:*}"
|
|
292
|
-
SPEAKER_ID="${MULTISPEAKER_INFO#*:}"
|
|
293
|
-
|
|
294
|
-
# Verify the model file exists
|
|
295
|
-
if [[ -f "$VOICE_DIR/${MODEL}.onnx" ]]; then
|
|
296
|
-
# Store speaker name in tts-voice.txt
|
|
297
|
-
echo "$VOICE_NAME" > "$VOICE_FILE"
|
|
298
|
-
|
|
299
|
-
# Store model and speaker ID separately for play-tts-piper.sh
|
|
300
|
-
echo "$MODEL" > "$CLAUDE_DIR/tts-piper-model.txt"
|
|
301
|
-
echo "$SPEAKER_ID" > "$CLAUDE_DIR/tts-piper-speaker-id.txt"
|
|
302
|
-
|
|
303
|
-
DESCRIPTION=$(get_multispeaker_description "$VOICE_NAME")
|
|
304
|
-
echo "✅ Multi-speaker voice switched to: $VOICE_NAME"
|
|
305
|
-
echo "🎤 Model: $MODEL.onnx (Speaker ID: $SPEAKER_ID)"
|
|
306
|
-
if [[ -n "$DESCRIPTION" ]]; then
|
|
307
|
-
echo "📝 Description: $DESCRIPTION"
|
|
308
|
-
fi
|
|
309
|
-
|
|
310
|
-
# Have the new voice introduce itself (unless silent mode)
|
|
311
|
-
if [[ "$SILENT_MODE" != "true" ]]; then
|
|
312
|
-
PLAY_TTS="$SCRIPT_DIR/play-tts.sh"
|
|
313
|
-
if [ -x "$PLAY_TTS" ]; then
|
|
314
|
-
"$PLAY_TTS" "Hi, I'm $VOICE_NAME. I'll be your voice assistant moving forward." > /dev/null 2>&1 &
|
|
315
|
-
fi
|
|
316
|
-
|
|
317
|
-
echo ""
|
|
318
|
-
echo "💡 Tip: To hear automatic TTS narration, enable the Agent Vibes output style:"
|
|
319
|
-
echo " /output-style Agent Vibes"
|
|
320
|
-
fi
|
|
321
|
-
exit 0
|
|
322
|
-
else
|
|
323
|
-
echo "❌ Multi-speaker model not found: $MODEL.onnx"
|
|
324
|
-
echo ""
|
|
325
|
-
echo "Download it with: /agent-vibes:provider download"
|
|
326
|
-
exit 1
|
|
327
|
-
fi
|
|
328
|
-
fi
|
|
329
|
-
fi
|
|
330
|
-
|
|
331
|
-
if [[ -z "$FOUND" ]]; then
|
|
332
|
-
echo "❌ Piper voice not found: $VOICE_NAME"
|
|
333
|
-
echo ""
|
|
334
|
-
echo "Available Piper voices:"
|
|
335
|
-
shopt -s nullglob
|
|
336
|
-
for onnx_file in "$VOICE_DIR"/*.onnx; do
|
|
337
|
-
if [[ -f "$onnx_file" ]]; then
|
|
338
|
-
echo " - $(basename "$onnx_file" .onnx)"
|
|
339
|
-
fi
|
|
340
|
-
done | sort
|
|
341
|
-
shopt -u nullglob
|
|
342
|
-
echo ""
|
|
343
|
-
if [[ -f "$SCRIPT_DIR/piper-multispeaker-registry.sh" ]]; then
|
|
344
|
-
echo "Multi-speaker voices (requires 16Speakers.onnx):"
|
|
345
|
-
source "$SCRIPT_DIR/piper-multispeaker-registry.sh"
|
|
346
|
-
for entry in "${MULTISPEAKER_VOICES[@]}"; do
|
|
347
|
-
name="${entry%%:*}"
|
|
348
|
-
echo " - $name"
|
|
349
|
-
done | sort
|
|
350
|
-
echo ""
|
|
351
|
-
fi
|
|
352
|
-
echo "Download extra voices with: /agent-vibes:provider download"
|
|
353
|
-
exit 1
|
|
354
|
-
fi
|
|
355
|
-
else
|
|
356
|
-
# ElevenLabs voice lookup
|
|
357
|
-
# Check if input is a number
|
|
358
|
-
if [[ "$VOICE_NAME" =~ ^[0-9]+$ ]]; then
|
|
359
|
-
# Get voice array
|
|
360
|
-
VOICE_ARRAY=()
|
|
361
|
-
for voice in "${!VOICES[@]}"; do
|
|
362
|
-
VOICE_ARRAY+=("$voice")
|
|
363
|
-
done
|
|
364
|
-
|
|
365
|
-
# Sort the array
|
|
366
|
-
IFS=$'\n' SORTED_VOICES=($(sort <<<"${VOICE_ARRAY[*]}"))
|
|
367
|
-
unset IFS
|
|
368
|
-
|
|
369
|
-
# Get voice by number (adjust for 0-based index)
|
|
370
|
-
INDEX=$((VOICE_NAME - 1))
|
|
371
|
-
|
|
372
|
-
if [[ $INDEX -ge 0 && $INDEX -lt ${#SORTED_VOICES[@]} ]]; then
|
|
373
|
-
VOICE_NAME="${SORTED_VOICES[$INDEX]}"
|
|
374
|
-
FOUND="${SORTED_VOICES[$INDEX]}"
|
|
375
|
-
else
|
|
376
|
-
echo "❌ Invalid number. Please choose between 1 and ${#SORTED_VOICES[@]}"
|
|
377
|
-
exit 1
|
|
378
|
-
fi
|
|
379
|
-
else
|
|
380
|
-
# Check if voice exists (case-insensitive)
|
|
381
|
-
FOUND=""
|
|
382
|
-
for voice in "${!VOICES[@]}"; do
|
|
383
|
-
if [[ "${voice,,}" == "${VOICE_NAME,,}" ]]; then
|
|
384
|
-
FOUND="$voice"
|
|
385
|
-
break
|
|
386
|
-
fi
|
|
387
|
-
done
|
|
388
|
-
fi
|
|
389
|
-
|
|
390
|
-
if [[ -z "$FOUND" ]]; then
|
|
391
|
-
echo "❌ Unknown voice: $VOICE_NAME"
|
|
392
|
-
echo ""
|
|
393
|
-
echo "Available voices:"
|
|
394
|
-
for voice in "${!VOICES[@]}"; do
|
|
395
|
-
echo " - $voice"
|
|
396
|
-
done | sort
|
|
397
|
-
exit 1
|
|
398
|
-
fi
|
|
399
|
-
fi
|
|
400
|
-
|
|
401
|
-
echo "$FOUND" > "$VOICE_FILE"
|
|
402
|
-
echo "✅ Voice switched to: $FOUND"
|
|
403
|
-
|
|
404
|
-
# Show voice ID only for ElevenLabs voices
|
|
405
|
-
if [[ "$ACTIVE_PROVIDER" != "piper" ]] && [[ -n "${VOICES[$FOUND]}" ]]; then
|
|
406
|
-
echo "🎤 Voice ID: ${VOICES[$FOUND]}"
|
|
407
|
-
fi
|
|
408
|
-
|
|
409
|
-
# Have the new voice introduce itself (unless silent mode)
|
|
410
|
-
if [[ "$SILENT_MODE" != "true" ]]; then
|
|
411
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
412
|
-
PLAY_TTS="$SCRIPT_DIR/play-tts.sh"
|
|
413
|
-
if [ -x "$PLAY_TTS" ]; then
|
|
414
|
-
"$PLAY_TTS" "Hi, I'm $FOUND. I'll be your voice assistant moving forward." "$FOUND" > /dev/null 2>&1 &
|
|
415
|
-
fi
|
|
416
|
-
|
|
417
|
-
echo ""
|
|
418
|
-
echo "💡 Tip: To hear automatic TTS narration, enable the Agent Vibes output style:"
|
|
419
|
-
echo " /output-style Agent Vibes"
|
|
420
|
-
fi
|
|
421
|
-
;;
|
|
422
|
-
|
|
423
|
-
get)
|
|
424
|
-
if [ -f "$VOICE_FILE" ]; then
|
|
425
|
-
cat "$VOICE_FILE"
|
|
426
|
-
else
|
|
427
|
-
echo "Cowboy Bob"
|
|
428
|
-
fi
|
|
429
|
-
;;
|
|
430
|
-
|
|
431
|
-
whoami)
|
|
432
|
-
echo "🎤 Current Voice Configuration"
|
|
433
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
434
|
-
|
|
435
|
-
# Get active TTS provider
|
|
436
|
-
PROVIDER_FILE="$CLAUDE_DIR/tts-provider.txt"
|
|
437
|
-
if [[ ! -f "$PROVIDER_FILE" ]]; then
|
|
438
|
-
PROVIDER_FILE="$HOME/.claude/tts-provider.txt"
|
|
439
|
-
fi
|
|
440
|
-
|
|
441
|
-
if [ -f "$PROVIDER_FILE" ]; then
|
|
442
|
-
ACTIVE_PROVIDER=$(cat "$PROVIDER_FILE")
|
|
443
|
-
if [[ "$ACTIVE_PROVIDER" == "elevenlabs" ]]; then
|
|
444
|
-
echo "Provider: ElevenLabs (Premium AI)"
|
|
445
|
-
elif [[ "$ACTIVE_PROVIDER" == "piper" ]]; then
|
|
446
|
-
echo "Provider: Piper TTS (Free, Offline)"
|
|
447
|
-
else
|
|
448
|
-
echo "Provider: $ACTIVE_PROVIDER"
|
|
449
|
-
fi
|
|
450
|
-
else
|
|
451
|
-
# Default to ElevenLabs if no provider file
|
|
452
|
-
echo "Provider: ElevenLabs (Premium AI)"
|
|
453
|
-
fi
|
|
454
|
-
|
|
455
|
-
# Get current voice
|
|
456
|
-
if [ -f "$VOICE_FILE" ]; then
|
|
457
|
-
CURRENT_VOICE=$(cat "$VOICE_FILE")
|
|
458
|
-
else
|
|
459
|
-
CURRENT_VOICE="Cowboy Bob"
|
|
460
|
-
fi
|
|
461
|
-
echo "Voice: $CURRENT_VOICE"
|
|
462
|
-
|
|
463
|
-
# Get current sentiment (priority)
|
|
464
|
-
if [ -f "$HOME/.claude/tts-sentiment.txt" ]; then
|
|
465
|
-
SENTIMENT=$(cat "$HOME/.claude/tts-sentiment.txt")
|
|
466
|
-
echo "Sentiment: $SENTIMENT (active)"
|
|
467
|
-
|
|
468
|
-
# Also show personality if set
|
|
469
|
-
if [ -f "$HOME/.claude/tts-personality.txt" ]; then
|
|
470
|
-
PERSONALITY=$(cat "$HOME/.claude/tts-personality.txt")
|
|
471
|
-
echo "Personality: $PERSONALITY (overridden by sentiment)"
|
|
472
|
-
fi
|
|
473
|
-
else
|
|
474
|
-
# No sentiment, check personality
|
|
475
|
-
if [ -f "$HOME/.claude/tts-personality.txt" ]; then
|
|
476
|
-
PERSONALITY=$(cat "$HOME/.claude/tts-personality.txt")
|
|
477
|
-
echo "Personality: $PERSONALITY (active)"
|
|
478
|
-
else
|
|
479
|
-
echo "Personality: normal"
|
|
480
|
-
fi
|
|
481
|
-
fi
|
|
482
|
-
|
|
483
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
484
|
-
;;
|
|
485
|
-
|
|
486
|
-
list-simple)
|
|
487
|
-
# Simple list for AI to parse and display
|
|
488
|
-
# Get active provider
|
|
489
|
-
PROVIDER_FILE="$CLAUDE_DIR/tts-provider.txt"
|
|
490
|
-
if [[ ! -f "$PROVIDER_FILE" ]]; then
|
|
491
|
-
PROVIDER_FILE="$HOME/.claude/tts-provider.txt"
|
|
492
|
-
fi
|
|
493
|
-
|
|
494
|
-
ACTIVE_PROVIDER="elevenlabs" # default
|
|
495
|
-
if [ -f "$PROVIDER_FILE" ]; then
|
|
496
|
-
ACTIVE_PROVIDER=$(cat "$PROVIDER_FILE")
|
|
497
|
-
fi
|
|
498
|
-
|
|
499
|
-
if [[ "$ACTIVE_PROVIDER" == "piper" ]]; then
|
|
500
|
-
# List downloaded Piper voices
|
|
501
|
-
if [[ -f "$SCRIPT_DIR/piper-voice-manager.sh" ]]; then
|
|
502
|
-
source "$SCRIPT_DIR/piper-voice-manager.sh"
|
|
503
|
-
VOICE_DIR=$(get_voice_storage_dir)
|
|
504
|
-
for onnx_file in "$VOICE_DIR"/*.onnx; do
|
|
505
|
-
if [[ -f "$onnx_file" ]]; then
|
|
506
|
-
basename "$onnx_file" .onnx
|
|
507
|
-
fi
|
|
508
|
-
done | sort
|
|
509
|
-
fi
|
|
510
|
-
else
|
|
511
|
-
# List ElevenLabs voices
|
|
512
|
-
for voice in "${!VOICES[@]}"; do
|
|
513
|
-
echo "$voice"
|
|
514
|
-
done | sort
|
|
515
|
-
fi
|
|
516
|
-
;;
|
|
517
|
-
|
|
518
|
-
replay)
|
|
519
|
-
# Replay recent TTS audio from history
|
|
520
|
-
# Use project-local directory with same logic as play-tts.sh
|
|
521
|
-
if [[ -n "$CLAUDE_PROJECT_DIR" ]]; then
|
|
522
|
-
AUDIO_DIR="$CLAUDE_PROJECT_DIR/.claude/audio"
|
|
523
|
-
else
|
|
524
|
-
# Fallback: try to find .claude directory in current path
|
|
525
|
-
CURRENT_DIR="$PWD"
|
|
526
|
-
while [[ "$CURRENT_DIR" != "/" ]]; do
|
|
527
|
-
if [[ -d "$CURRENT_DIR/.claude" ]]; then
|
|
528
|
-
AUDIO_DIR="$CURRENT_DIR/.claude/audio"
|
|
529
|
-
break
|
|
530
|
-
fi
|
|
531
|
-
CURRENT_DIR=$(dirname "$CURRENT_DIR")
|
|
532
|
-
done
|
|
533
|
-
# Final fallback to global if no project .claude found
|
|
534
|
-
if [[ -z "$AUDIO_DIR" ]]; then
|
|
535
|
-
AUDIO_DIR="$HOME/.claude/audio"
|
|
536
|
-
fi
|
|
537
|
-
fi
|
|
538
|
-
|
|
539
|
-
# Default to replay last audio (N=1)
|
|
540
|
-
N="${2:-1}"
|
|
541
|
-
|
|
542
|
-
# Validate N is a number
|
|
543
|
-
if ! [[ "$N" =~ ^[0-9]+$ ]]; then
|
|
544
|
-
echo "❌ Invalid argument. Please use a number (1-10)"
|
|
545
|
-
echo "Usage: /agent-vibes:replay [N]"
|
|
546
|
-
echo " N=1 - Last audio (default)"
|
|
547
|
-
echo " N=2 - Second-to-last"
|
|
548
|
-
echo " N=3 - Third-to-last"
|
|
549
|
-
exit 1
|
|
550
|
-
fi
|
|
551
|
-
|
|
552
|
-
# Check bounds
|
|
553
|
-
if [[ $N -lt 1 || $N -gt 10 ]]; then
|
|
554
|
-
echo "❌ Number out of range. Please choose 1-10"
|
|
555
|
-
exit 1
|
|
556
|
-
fi
|
|
557
|
-
|
|
558
|
-
# Get list of audio files sorted by time (newest first)
|
|
559
|
-
if [[ ! -d "$AUDIO_DIR" ]]; then
|
|
560
|
-
echo "❌ No audio history found"
|
|
561
|
-
echo "Audio files are stored in: $AUDIO_DIR"
|
|
562
|
-
exit 1
|
|
563
|
-
fi
|
|
564
|
-
|
|
565
|
-
# Get the Nth most recent file
|
|
566
|
-
AUDIO_FILE=$(ls -t "$AUDIO_DIR"/tts-*.mp3 2>/dev/null | sed -n "${N}p")
|
|
567
|
-
|
|
568
|
-
if [[ -z "$AUDIO_FILE" ]]; then
|
|
569
|
-
TOTAL=$(ls -t "$AUDIO_DIR"/tts-*.mp3 2>/dev/null | wc -l)
|
|
570
|
-
echo "❌ Audio #$N not found in history"
|
|
571
|
-
echo "Total audio files available: $TOTAL"
|
|
572
|
-
exit 1
|
|
573
|
-
fi
|
|
574
|
-
|
|
575
|
-
echo "🔊 Replaying audio #$N:"
|
|
576
|
-
echo " File: $(basename "$AUDIO_FILE")"
|
|
577
|
-
echo " Path: $AUDIO_FILE"
|
|
578
|
-
|
|
579
|
-
# Play the audio file in background
|
|
580
|
-
(paplay "$AUDIO_FILE" 2>/dev/null || aplay "$AUDIO_FILE" 2>/dev/null || mpg123 "$AUDIO_FILE" 2>/dev/null) &
|
|
581
|
-
;;
|
|
582
|
-
|
|
583
|
-
*)
|
|
584
|
-
echo "Usage: voice-manager.sh [list|switch|get|replay|whoami] [voice_name]"
|
|
585
|
-
echo ""
|
|
586
|
-
echo "Commands:"
|
|
587
|
-
echo " list - List all available voices"
|
|
588
|
-
echo " switch <voice_name> - Switch to a different voice"
|
|
589
|
-
echo " get - Get current voice name"
|
|
590
|
-
echo " replay [N] - Replay Nth most recent audio (default: 1)"
|
|
591
|
-
echo " whoami - Show current voice and personality"
|
|
592
|
-
exit 1
|
|
593
|
-
;;
|
|
594
|
-
esac
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
# File: .claude/hooks/voices-config.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 ElevenLabs Voice Configuration - Single source of truth for voice ID mappings
|
|
35
|
-
# @context Maps human-readable voice names to ElevenLabs API voice IDs for consistency
|
|
36
|
-
# @architecture Associative array (bash hash map) sourced by multiple scripts
|
|
37
|
-
# @dependencies None (pure data structure)
|
|
38
|
-
# @entrypoints Sourced by voice-manager.sh, play-tts-elevenlabs.sh, and personality managers
|
|
39
|
-
# @patterns Centralized configuration, DRY principle for voice mappings
|
|
40
|
-
# @related voice-manager.sh, play-tts-elevenlabs.sh, personality/*.md files
|
|
41
|
-
|
|
42
|
-
declare -A VOICES=(
|
|
43
|
-
["Amy"]="bhJUNIXWQQ94l8eI2VUf"
|
|
44
|
-
["Antoni"]="ErXwobaYiN019PkySvjV"
|
|
45
|
-
["Archer"]="L0Dsvb3SLTyegXwtm47J"
|
|
46
|
-
["Aria"]="TC0Zp7WVFzhA8zpTlRqV"
|
|
47
|
-
["Bella"]="EXAVITQu4vr4xnSDxMaL"
|
|
48
|
-
["Burt Reynolds"]="4YYIPFl9wE5c4L2eu2Gb"
|
|
49
|
-
["Charlotte"]="XB0fDUnXU5powFXDhCwa"
|
|
50
|
-
["Cowboy Bob"]="KTPVrSVAEUSJRClDzBw7"
|
|
51
|
-
["Demon Monster"]="vfaqCOvlrKi4Zp7C2IAm"
|
|
52
|
-
["Domi"]="AZnzlk1XvdvUeBnXmlld"
|
|
53
|
-
["Dr. Von Fusion"]="yjJ45q8TVCrtMhEKurxY"
|
|
54
|
-
["Drill Sergeant"]="vfaqCOvlrKi4Zp7C2IAm"
|
|
55
|
-
["Grandpa Spuds Oxley"]="NOpBlnGInO9m6vDvFkFC"
|
|
56
|
-
["Grandpa Werthers"]="MKlLqCItoCkvdhrxgtLv"
|
|
57
|
-
["Jessica Anne Bogart"]="flHkNRp1BlvT73UL6gyz"
|
|
58
|
-
["Juniper"]="aMSt68OGf4xUZAnLpTU8"
|
|
59
|
-
["Lutz Laugh"]="9yzdeviXkFddZ4Oz8Mok"
|
|
60
|
-
["Matilda"]="XrExE9yKIg1WjnnlVkGX"
|
|
61
|
-
["Matthew Schmitz"]="0SpgpJ4D3MpHCiWdyTg3"
|
|
62
|
-
["Michael"]="U1Vk2oyatMdYs096Ety7"
|
|
63
|
-
["Ms. Walker"]="DLsHlh26Ugcm6ELvS0qi"
|
|
64
|
-
["Northern Terry"]="wo6udizrrtpIxWGp2qJk"
|
|
65
|
-
["Pirate Marshal"]="PPzYpIqttlTYA83688JI"
|
|
66
|
-
["Rachel"]="21m00Tcm4TlvDq8ikWAM"
|
|
67
|
-
["Ralf Eisend"]="A9evEp8yGjv4c3WsIKuY"
|
|
68
|
-
["Tiffany"]="6aDn1KB0hjpdcocrUkmq"
|
|
69
|
-
["Tom"]="DYkrAHD8iwork3YSUBbs"
|
|
70
|
-
)
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Personal Customization File for Scott (CLI Chief)
|
|
2
|
-
# Changes here merge with the core agent at build time
|
|
3
|
-
# Experiment freely - this is your playground!
|
|
4
|
-
|
|
5
|
-
agent:
|
|
6
|
-
metadata:
|
|
7
|
-
name: "" # Try nicknames! "Scotty", "Chief", etc.
|
|
8
|
-
# title: '' # Uncomment to override title
|
|
9
|
-
# icon: '' # Uncomment to try different emoji
|
|
10
|
-
|
|
11
|
-
persona:
|
|
12
|
-
role: "" # Override the role description
|
|
13
|
-
identity: "" # Add to or replace the identity
|
|
14
|
-
communication_style: "" # Switch styles anytime - try Film Noir, Zen Master, etc!
|
|
15
|
-
principles: [] # Add your own principles or override existing ones
|
|
16
|
-
|
|
17
|
-
critical_actions: []
|
|
18
|
-
# Add custom startup actions
|
|
19
|
-
# - Remember my custom preferences
|
|
20
|
-
# - Load additional context files
|
|
21
|
-
|
|
22
|
-
prompts: []
|
|
23
|
-
# Add custom prompts for special operations
|
|
24
|
-
# - id: custom-diagnostic
|
|
25
|
-
# prompt: |
|
|
26
|
-
# My special diagnostic routine...
|
|
27
|
-
|
|
28
|
-
menu: []
|
|
29
|
-
# Add personal commands that merge with core commands
|
|
30
|
-
# - trigger: my-custom-command
|
|
31
|
-
# action: Do something special
|
|
32
|
-
# description: My custom operation
|