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,404 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
# File: .claude/hooks/play-tts-elevenlabs.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 ElevenLabs TTS Provider Implementation - Premium cloud-based TTS
|
|
30
|
-
# @context Provider-specific implementation for ElevenLabs API integration with multilingual support
|
|
31
|
-
# @architecture Part of multi-provider TTS system - implements provider interface contract
|
|
32
|
-
# @dependencies Requires ELEVENLABS_API_KEY, curl, ffmpeg, paplay/aplay/mpg123, jq
|
|
33
|
-
# @entrypoints Called by play-tts.sh router with ($1=text, $2=voice_name) when provider=elevenlabs
|
|
34
|
-
# @patterns Follows provider contract: accept text/voice, output audio file path, API error handling, SSH audio optimization
|
|
35
|
-
# @related play-tts.sh, provider-manager.sh, voices-config.sh, language-manager.sh, GitHub Issue #25
|
|
36
|
-
#
|
|
37
|
-
|
|
38
|
-
# Fix locale warnings
|
|
39
|
-
export LC_ALL=C
|
|
40
|
-
|
|
41
|
-
TEXT="$1"
|
|
42
|
-
VOICE_OVERRIDE="$2" # Optional: voice name or direct voice ID
|
|
43
|
-
API_KEY="${ELEVENLABS_API_KEY}"
|
|
44
|
-
|
|
45
|
-
# Check for project-local pretext configuration
|
|
46
|
-
CONFIG_DIR="${CLAUDE_PROJECT_DIR:-.}/.claude/config"
|
|
47
|
-
CONFIG_FILE="$CONFIG_DIR/agentvibes.json"
|
|
48
|
-
|
|
49
|
-
if [[ -f "$CONFIG_FILE" ]] && command -v jq &> /dev/null; then
|
|
50
|
-
PRETEXT=$(jq -r '.pretext // empty' "$CONFIG_FILE" 2>/dev/null)
|
|
51
|
-
if [[ -n "$PRETEXT" ]]; then
|
|
52
|
-
TEXT="$PRETEXT: $TEXT"
|
|
53
|
-
fi
|
|
54
|
-
fi
|
|
55
|
-
|
|
56
|
-
# Limit text length to prevent API issues (max 500 chars for safety)
|
|
57
|
-
if [ ${#TEXT} -gt 500 ]; then
|
|
58
|
-
TEXT="${TEXT:0:497}..."
|
|
59
|
-
echo "⚠️ Text truncated to 500 characters for API safety"
|
|
60
|
-
fi
|
|
61
|
-
|
|
62
|
-
# Source the single voice configuration file
|
|
63
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
64
|
-
source "$SCRIPT_DIR/voices-config.sh"
|
|
65
|
-
source "$SCRIPT_DIR/language-manager.sh"
|
|
66
|
-
|
|
67
|
-
# @function determine_voice_and_language
|
|
68
|
-
# @intent Resolve voice name/ID and language for multilingual support
|
|
69
|
-
# @why Supports both voice names and direct IDs, plus language-specific voices
|
|
70
|
-
# @param $VOICE_OVERRIDE {string} Voice name or ID (optional)
|
|
71
|
-
# @returns Sets $VOICE_ID and $LANGUAGE_CODE global variables
|
|
72
|
-
# @sideeffects None
|
|
73
|
-
# @edgecases Handles unknown voices, falls back to default
|
|
74
|
-
VOICE_ID=""
|
|
75
|
-
LANGUAGE_CODE="en" # Default to English
|
|
76
|
-
|
|
77
|
-
# Get current language setting
|
|
78
|
-
CURRENT_LANGUAGE=$(get_language_code)
|
|
79
|
-
|
|
80
|
-
# Get language code for API
|
|
81
|
-
# ElevenLabs uses 2-letter ISO codes
|
|
82
|
-
case "$CURRENT_LANGUAGE" in
|
|
83
|
-
spanish) LANGUAGE_CODE="es" ;;
|
|
84
|
-
french) LANGUAGE_CODE="fr" ;;
|
|
85
|
-
german) LANGUAGE_CODE="de" ;;
|
|
86
|
-
italian) LANGUAGE_CODE="it" ;;
|
|
87
|
-
portuguese) LANGUAGE_CODE="pt" ;;
|
|
88
|
-
chinese) LANGUAGE_CODE="zh" ;;
|
|
89
|
-
japanese) LANGUAGE_CODE="ja" ;;
|
|
90
|
-
korean) LANGUAGE_CODE="ko" ;;
|
|
91
|
-
russian) LANGUAGE_CODE="ru" ;;
|
|
92
|
-
polish) LANGUAGE_CODE="pl" ;;
|
|
93
|
-
dutch) LANGUAGE_CODE="nl" ;;
|
|
94
|
-
turkish) LANGUAGE_CODE="tr" ;;
|
|
95
|
-
arabic) LANGUAGE_CODE="ar" ;;
|
|
96
|
-
hindi) LANGUAGE_CODE="hi" ;;
|
|
97
|
-
swedish) LANGUAGE_CODE="sv" ;;
|
|
98
|
-
danish) LANGUAGE_CODE="da" ;;
|
|
99
|
-
norwegian) LANGUAGE_CODE="no" ;;
|
|
100
|
-
finnish) LANGUAGE_CODE="fi" ;;
|
|
101
|
-
czech) LANGUAGE_CODE="cs" ;;
|
|
102
|
-
romanian) LANGUAGE_CODE="ro" ;;
|
|
103
|
-
ukrainian) LANGUAGE_CODE="uk" ;;
|
|
104
|
-
greek) LANGUAGE_CODE="el" ;;
|
|
105
|
-
bulgarian) LANGUAGE_CODE="bg" ;;
|
|
106
|
-
croatian) LANGUAGE_CODE="hr" ;;
|
|
107
|
-
slovak) LANGUAGE_CODE="sk" ;;
|
|
108
|
-
english|*) LANGUAGE_CODE="en" ;;
|
|
109
|
-
esac
|
|
110
|
-
|
|
111
|
-
if [[ -n "$VOICE_OVERRIDE" ]]; then
|
|
112
|
-
# Check if override is a voice name (lookup in mapping)
|
|
113
|
-
if [[ -n "${VOICES[$VOICE_OVERRIDE]}" ]]; then
|
|
114
|
-
VOICE_ID="${VOICES[$VOICE_OVERRIDE]}"
|
|
115
|
-
echo "🎤 Using voice: $VOICE_OVERRIDE (session-specific)"
|
|
116
|
-
# Check if override looks like a voice ID (alphanumeric string ~20 chars)
|
|
117
|
-
elif [[ "$VOICE_OVERRIDE" =~ ^[a-zA-Z0-9]{15,30}$ ]]; then
|
|
118
|
-
VOICE_ID="$VOICE_OVERRIDE"
|
|
119
|
-
echo "🎤 Using custom voice ID (session-specific)"
|
|
120
|
-
else
|
|
121
|
-
echo "⚠️ Unknown voice '$VOICE_OVERRIDE', trying language-specific voice"
|
|
122
|
-
fi
|
|
123
|
-
fi
|
|
124
|
-
|
|
125
|
-
# If no override or invalid override, use language-specific voice
|
|
126
|
-
if [[ -z "$VOICE_ID" ]]; then
|
|
127
|
-
# Try to get voice for current language
|
|
128
|
-
LANG_VOICE=$(get_voice_for_language "$CURRENT_LANGUAGE" "elevenlabs" 2>/dev/null)
|
|
129
|
-
|
|
130
|
-
if [[ -n "$LANG_VOICE" ]] && [[ -n "${VOICES[$LANG_VOICE]}" ]]; then
|
|
131
|
-
VOICE_ID="${VOICES[$LANG_VOICE]}"
|
|
132
|
-
echo "🌍 Using $CURRENT_LANGUAGE voice: $LANG_VOICE"
|
|
133
|
-
else
|
|
134
|
-
# Fall back to voice manager
|
|
135
|
-
VOICE_MANAGER_SCRIPT="$(dirname "$0")/voice-manager.sh"
|
|
136
|
-
if [[ -f "$VOICE_MANAGER_SCRIPT" ]]; then
|
|
137
|
-
VOICE_NAME=$("$VOICE_MANAGER_SCRIPT" get)
|
|
138
|
-
VOICE_ID="${VOICES[$VOICE_NAME]}"
|
|
139
|
-
fi
|
|
140
|
-
|
|
141
|
-
# Final fallback to default
|
|
142
|
-
if [[ -z "$VOICE_ID" ]]; then
|
|
143
|
-
echo "⚠️ No voice configured, using default"
|
|
144
|
-
VOICE_ID="${VOICES[Aria]}"
|
|
145
|
-
fi
|
|
146
|
-
fi
|
|
147
|
-
fi
|
|
148
|
-
|
|
149
|
-
# @function validate_inputs
|
|
150
|
-
# @intent Check required parameters and API key
|
|
151
|
-
# @why Fail fast with clear errors if inputs missing
|
|
152
|
-
# @exitcode 1=missing text, 2=missing API key
|
|
153
|
-
if [ -z "$TEXT" ]; then
|
|
154
|
-
echo "Usage: $0 \"text to speak\" [voice_name_or_id]"
|
|
155
|
-
exit 1
|
|
156
|
-
fi
|
|
157
|
-
|
|
158
|
-
if [ -z "$API_KEY" ]; then
|
|
159
|
-
echo "Error: ELEVENLABS_API_KEY not set"
|
|
160
|
-
echo "Set your API key: export ELEVENLABS_API_KEY=your_key_here"
|
|
161
|
-
exit 2
|
|
162
|
-
fi
|
|
163
|
-
|
|
164
|
-
# @function determine_audio_directory
|
|
165
|
-
# @intent Find appropriate directory for audio file storage
|
|
166
|
-
# @why Supports project-local and global storage
|
|
167
|
-
# @returns Sets $AUDIO_DIR global variable
|
|
168
|
-
# @sideeffects None
|
|
169
|
-
# @edgecases Handles missing directories, creates if needed
|
|
170
|
-
# AI NOTE: Check project dir first, then search up tree, finally fall back to global
|
|
171
|
-
if [[ -n "$CLAUDE_PROJECT_DIR" ]]; then
|
|
172
|
-
AUDIO_DIR="$CLAUDE_PROJECT_DIR/.claude/audio"
|
|
173
|
-
else
|
|
174
|
-
# Fallback: try to find .claude directory in current path
|
|
175
|
-
CURRENT_DIR="$PWD"
|
|
176
|
-
while [[ "$CURRENT_DIR" != "/" ]]; do
|
|
177
|
-
if [[ -d "$CURRENT_DIR/.claude" ]]; then
|
|
178
|
-
AUDIO_DIR="$CURRENT_DIR/.claude/audio"
|
|
179
|
-
break
|
|
180
|
-
fi
|
|
181
|
-
CURRENT_DIR=$(dirname "$CURRENT_DIR")
|
|
182
|
-
done
|
|
183
|
-
# Final fallback to global if no project .claude found
|
|
184
|
-
if [[ -z "$AUDIO_DIR" ]]; then
|
|
185
|
-
AUDIO_DIR="$HOME/.claude/audio"
|
|
186
|
-
fi
|
|
187
|
-
fi
|
|
188
|
-
|
|
189
|
-
mkdir -p "$AUDIO_DIR"
|
|
190
|
-
TEMP_FILE="$AUDIO_DIR/tts-$(date +%s).mp3"
|
|
191
|
-
|
|
192
|
-
# @function synthesize_with_elevenlabs
|
|
193
|
-
# @intent Call ElevenLabs API to generate speech
|
|
194
|
-
# @why Encapsulates API call with error handling
|
|
195
|
-
# @param Uses globals: $TEXT, $VOICE_ID, $API_KEY
|
|
196
|
-
# @returns Creates audio file at $TEMP_FILE
|
|
197
|
-
# @exitcode 0=success, 3=API error
|
|
198
|
-
# @sideeffects Creates MP3 file in audio directory
|
|
199
|
-
# @edgecases Handles network failures, API errors, rate limiting
|
|
200
|
-
# Choose model based on language
|
|
201
|
-
if [[ "$LANGUAGE_CODE" == "en" ]]; then
|
|
202
|
-
MODEL_ID="eleven_monolingual_v1"
|
|
203
|
-
else
|
|
204
|
-
MODEL_ID="eleven_multilingual_v2"
|
|
205
|
-
fi
|
|
206
|
-
|
|
207
|
-
# @function get_speech_speed
|
|
208
|
-
# @intent Read speed config and map to ElevenLabs API range (0.7-1.2)
|
|
209
|
-
# @why ElevenLabs only supports 0.7 (slower) to 1.2 (faster), must map user scale
|
|
210
|
-
# @returns Speed value for ElevenLabs API (clamped to 0.7-1.2)
|
|
211
|
-
get_speech_speed() {
|
|
212
|
-
local config_dir=""
|
|
213
|
-
|
|
214
|
-
# Determine config directory
|
|
215
|
-
if [[ -n "$CLAUDE_PROJECT_DIR" ]] && [[ -d "$CLAUDE_PROJECT_DIR/.claude" ]]; then
|
|
216
|
-
config_dir="$CLAUDE_PROJECT_DIR/.claude/config"
|
|
217
|
-
else
|
|
218
|
-
# Try to find .claude in current path
|
|
219
|
-
local current_dir="$PWD"
|
|
220
|
-
while [[ "$current_dir" != "/" ]]; do
|
|
221
|
-
if [[ -d "$current_dir/.claude" ]]; then
|
|
222
|
-
config_dir="$current_dir/.claude/config"
|
|
223
|
-
break
|
|
224
|
-
fi
|
|
225
|
-
current_dir=$(dirname "$current_dir")
|
|
226
|
-
done
|
|
227
|
-
# Fallback to global
|
|
228
|
-
if [[ -z "$config_dir" ]]; then
|
|
229
|
-
config_dir="$HOME/.claude/config"
|
|
230
|
-
fi
|
|
231
|
-
fi
|
|
232
|
-
|
|
233
|
-
local main_speed_file="$config_dir/tts-speech-rate.txt"
|
|
234
|
-
local target_speed_file="$config_dir/tts-target-speech-rate.txt"
|
|
235
|
-
|
|
236
|
-
# Legacy file paths for backward compatibility
|
|
237
|
-
local legacy_main_speed_file="$config_dir/piper-speech-rate.txt"
|
|
238
|
-
local legacy_target_speed_file="$config_dir/piper-target-speech-rate.txt"
|
|
239
|
-
|
|
240
|
-
local user_speed="1.0"
|
|
241
|
-
|
|
242
|
-
# If this is a non-English voice and target config exists, use it
|
|
243
|
-
if [[ "$CURRENT_LANGUAGE" != "english" ]]; then
|
|
244
|
-
if [[ -f "$target_speed_file" ]]; then
|
|
245
|
-
user_speed=$(cat "$target_speed_file" 2>/dev/null || echo "1.0")
|
|
246
|
-
elif [[ -f "$legacy_target_speed_file" ]]; then
|
|
247
|
-
user_speed=$(cat "$legacy_target_speed_file" 2>/dev/null || echo "1.0")
|
|
248
|
-
else
|
|
249
|
-
user_speed="0.5" # Default slower for learning
|
|
250
|
-
fi
|
|
251
|
-
else
|
|
252
|
-
# Otherwise use main config if available
|
|
253
|
-
if [[ -f "$main_speed_file" ]]; then
|
|
254
|
-
user_speed=$(grep -v '^#' "$main_speed_file" 2>/dev/null | grep -v '^$' | tail -1 || echo "1.0")
|
|
255
|
-
elif [[ -f "$legacy_main_speed_file" ]]; then
|
|
256
|
-
user_speed=$(grep -v '^#' "$legacy_main_speed_file" 2>/dev/null | grep -v '^$' | tail -1 || echo "1.0")
|
|
257
|
-
fi
|
|
258
|
-
fi
|
|
259
|
-
|
|
260
|
-
# Map user scale (0.5=slower, 1.0=normal, 2.0=faster, 3.0=very fast)
|
|
261
|
-
# to ElevenLabs range (0.7=slower, 1.0=normal, 1.2=faster)
|
|
262
|
-
# Formula: elevenlabs_speed = 0.7 + (user_speed - 0.5) * 0.2
|
|
263
|
-
# This maps: 0.5→0.7, 1.0→0.8, 2.0→1.0, 3.0→1.2
|
|
264
|
-
# Actually, let's use a better mapping:
|
|
265
|
-
# 0.5x → 0.7 (slowest ElevenLabs)
|
|
266
|
-
# 1.0x → 1.0 (normal)
|
|
267
|
-
# 2.0x → 1.15
|
|
268
|
-
# 3.0x → 1.2 (fastest ElevenLabs)
|
|
269
|
-
|
|
270
|
-
if command -v bc &> /dev/null; then
|
|
271
|
-
local eleven_speed
|
|
272
|
-
if (( $(echo "$user_speed <= 0.5" | bc -l) )); then
|
|
273
|
-
eleven_speed="0.7"
|
|
274
|
-
elif (( $(echo "$user_speed >= 3.0" | bc -l) )); then
|
|
275
|
-
eleven_speed="1.2"
|
|
276
|
-
elif (( $(echo "$user_speed <= 1.0" | bc -l) )); then
|
|
277
|
-
# Map 0.5-1.0 to 0.7-1.0
|
|
278
|
-
eleven_speed=$(echo "scale=2; 0.7 + ($user_speed - 0.5) * 0.6" | bc -l)
|
|
279
|
-
else
|
|
280
|
-
# Map 1.0-3.0 to 1.0-1.2
|
|
281
|
-
eleven_speed=$(echo "scale=2; 1.0 + ($user_speed - 1.0) * 0.1" | bc -l)
|
|
282
|
-
fi
|
|
283
|
-
echo "$eleven_speed"
|
|
284
|
-
else
|
|
285
|
-
# Fallback without bc: just clamp to safe values
|
|
286
|
-
if (( $(awk 'BEGIN {print ("'$user_speed'" <= 0.5)}') )); then
|
|
287
|
-
echo "0.7"
|
|
288
|
-
elif (( $(awk 'BEGIN {print ("'$user_speed'" >= 2.0)}') )); then
|
|
289
|
-
echo "1.2"
|
|
290
|
-
else
|
|
291
|
-
echo "1.0"
|
|
292
|
-
fi
|
|
293
|
-
fi
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
SPEECH_SPEED=$(get_speech_speed)
|
|
297
|
-
|
|
298
|
-
# Build JSON payload with jq for proper escaping
|
|
299
|
-
PAYLOAD=$(jq -n \
|
|
300
|
-
--arg text "$TEXT" \
|
|
301
|
-
--arg model "$MODEL_ID" \
|
|
302
|
-
--arg lang "$LANGUAGE_CODE" \
|
|
303
|
-
--argjson speed "$SPEECH_SPEED" \
|
|
304
|
-
'{
|
|
305
|
-
text: $text,
|
|
306
|
-
model_id: $model,
|
|
307
|
-
language_code: $lang,
|
|
308
|
-
voice_settings: {
|
|
309
|
-
stability: 0.5,
|
|
310
|
-
similarity_boost: 0.75,
|
|
311
|
-
speed: $speed
|
|
312
|
-
}
|
|
313
|
-
}')
|
|
314
|
-
|
|
315
|
-
curl -s -X POST "https://api.elevenlabs.io/v1/text-to-speech/${VOICE_ID}" \
|
|
316
|
-
-H "xi-api-key: ${API_KEY}" \
|
|
317
|
-
-H "Content-Type: application/json" \
|
|
318
|
-
-d "$PAYLOAD" \
|
|
319
|
-
-o "${TEMP_FILE}"
|
|
320
|
-
|
|
321
|
-
# @function add_silence_padding
|
|
322
|
-
# @intent Add silence to beginning of audio to prevent WSL static
|
|
323
|
-
# @why WSL audio subsystem cuts off first ~200ms, causing static/clipping
|
|
324
|
-
# @param Uses global: $TEMP_FILE
|
|
325
|
-
# @returns Updates $TEMP_FILE to padded version
|
|
326
|
-
# @sideeffects Modifies audio file, removes original
|
|
327
|
-
# @edgecases Gracefully falls back to unpadded if ffmpeg unavailable
|
|
328
|
-
# Add silence padding to prevent WSL audio static
|
|
329
|
-
if [ -f "${TEMP_FILE}" ]; then
|
|
330
|
-
# Check if ffmpeg is available for adding padding
|
|
331
|
-
if command -v ffmpeg &> /dev/null; then
|
|
332
|
-
PADDED_FILE="$AUDIO_DIR/tts-padded-$(date +%s).mp3"
|
|
333
|
-
# Add 200ms of silence at the beginning to prevent static
|
|
334
|
-
# Note: ElevenLabs returns mono audio, so we use mono silence
|
|
335
|
-
ffmpeg -f lavfi -i anullsrc=r=44100:cl=mono:d=0.2 -i "${TEMP_FILE}" \
|
|
336
|
-
-filter_complex "[0:a][1:a]concat=n=2:v=0:a=1[out]" \
|
|
337
|
-
-map "[out]" -c:a libmp3lame -b:a 128k -y "${PADDED_FILE}" 2>/dev/null
|
|
338
|
-
|
|
339
|
-
if [ -f "${PADDED_FILE}" ]; then
|
|
340
|
-
# Use padded file and clean up original
|
|
341
|
-
rm -f "${TEMP_FILE}"
|
|
342
|
-
TEMP_FILE="${PADDED_FILE}"
|
|
343
|
-
fi
|
|
344
|
-
# If padding failed, just use original file
|
|
345
|
-
fi
|
|
346
|
-
|
|
347
|
-
# @function play_audio
|
|
348
|
-
# @intent Play generated audio file using available player with sequential playback
|
|
349
|
-
# @why Support multiple audio players and prevent overlapping audio in learning mode
|
|
350
|
-
# @param Uses global: $TEMP_FILE, $CURRENT_LANGUAGE
|
|
351
|
-
# @sideeffects Plays audio with lock mechanism for sequential playback
|
|
352
|
-
# @edgecases Falls through players until one works
|
|
353
|
-
LOCK_FILE="/tmp/agentvibes-audio.lock"
|
|
354
|
-
|
|
355
|
-
# Wait for previous audio to finish (max 30 seconds)
|
|
356
|
-
for i in {1..60}; do
|
|
357
|
-
if [ ! -f "$LOCK_FILE" ]; then
|
|
358
|
-
break
|
|
359
|
-
fi
|
|
360
|
-
sleep 0.5
|
|
361
|
-
done
|
|
362
|
-
|
|
363
|
-
# Track last target language audio for replay command
|
|
364
|
-
if [[ "$CURRENT_LANGUAGE" != "english" ]]; then
|
|
365
|
-
TARGET_AUDIO_FILE="${CLAUDE_PROJECT_DIR:-.}/.claude/last-target-audio.txt"
|
|
366
|
-
echo "${TEMP_FILE}" > "$TARGET_AUDIO_FILE"
|
|
367
|
-
fi
|
|
368
|
-
|
|
369
|
-
# Create lock and play audio
|
|
370
|
-
touch "$LOCK_FILE"
|
|
371
|
-
|
|
372
|
-
# Get audio duration for proper lock timing
|
|
373
|
-
DURATION=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "${TEMP_FILE}" 2>/dev/null)
|
|
374
|
-
DURATION=${DURATION%.*} # Round to integer
|
|
375
|
-
DURATION=${DURATION:-1} # Default to 1 second if detection fails
|
|
376
|
-
|
|
377
|
-
# Convert to 48kHz stereo WAV for better SSH tunnel compatibility
|
|
378
|
-
# ElevenLabs returns 44.1kHz mono MP3, which causes static over SSH audio tunnels
|
|
379
|
-
# Converting to 48kHz stereo (Windows/PulseAudio native format) eliminates the static
|
|
380
|
-
if [[ -n "$SSH_CONNECTION" ]] || [[ -n "$SSH_CLIENT" ]] || [[ -n "$VSCODE_IPC_HOOK_CLI" ]]; then
|
|
381
|
-
CONVERTED_FILE="${TEMP_FILE%.mp3}.wav"
|
|
382
|
-
if ffmpeg -i "${TEMP_FILE}" -ar 48000 -ac 2 "${CONVERTED_FILE}" -y 2>/dev/null; then
|
|
383
|
-
TEMP_FILE="${CONVERTED_FILE}"
|
|
384
|
-
fi
|
|
385
|
-
fi
|
|
386
|
-
|
|
387
|
-
# Play audio (WSL/Linux) in background to avoid blocking, fully detached (skip if in test mode)
|
|
388
|
-
if [[ "${AGENTVIBES_TEST_MODE:-false}" != "true" ]]; then
|
|
389
|
-
(paplay "${TEMP_FILE}" || aplay "${TEMP_FILE}" || mpg123 "${TEMP_FILE}") >/dev/null 2>&1 &
|
|
390
|
-
PLAYER_PID=$!
|
|
391
|
-
fi
|
|
392
|
-
|
|
393
|
-
# Wait for audio to finish, then release lock
|
|
394
|
-
(sleep $DURATION; rm -f "$LOCK_FILE") &
|
|
395
|
-
disown
|
|
396
|
-
|
|
397
|
-
# Keep temp files for later review - cleaned up weekly by cron
|
|
398
|
-
echo "🎵 Saved to: ${TEMP_FILE}"
|
|
399
|
-
echo "🎤 Voice used: ${VOICE_NAME} (${VOICE_ID})"
|
|
400
|
-
else
|
|
401
|
-
echo "❌ Failed to generate audio - API may be unavailable"
|
|
402
|
-
echo "Check your API key and network connection"
|
|
403
|
-
exit 3
|
|
404
|
-
fi
|