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,540 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
# File: .claude/hooks/provider-commands.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 Provider management slash commands
|
|
35
|
-
# @context User-facing commands for switching and managing TTS providers
|
|
36
|
-
# @architecture Part of /agent-vibes:* command system with language compatibility checking
|
|
37
|
-
# @dependencies provider-manager.sh, language-manager.sh, voice-manager.sh, piper-voice-manager.sh
|
|
38
|
-
# @entrypoints Called by /agent-vibes:provider slash commands (list, switch, info, test, get, preview)
|
|
39
|
-
# @patterns Interactive confirmations, platform detection, language compatibility validation
|
|
40
|
-
# @related provider-manager.sh, play-tts.sh, voice-manager.sh, piper-voice-manager.sh
|
|
41
|
-
#
|
|
42
|
-
|
|
43
|
-
# Get script directory
|
|
44
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
45
|
-
source "$SCRIPT_DIR/provider-manager.sh"
|
|
46
|
-
source "$SCRIPT_DIR/language-manager.sh"
|
|
47
|
-
|
|
48
|
-
COMMAND="${1:-help}"
|
|
49
|
-
|
|
50
|
-
# @function is_language_supported
|
|
51
|
-
# @intent Check if a language is supported by a provider
|
|
52
|
-
# @param $1 {string} language - Language code (e.g., "spanish", "french")
|
|
53
|
-
# @param $2 {string} provider - Provider name (e.g., "elevenlabs", "piper")
|
|
54
|
-
# @returns 0 if supported, 1 if not
|
|
55
|
-
is_language_supported() {
|
|
56
|
-
local language="$1"
|
|
57
|
-
local provider="$2"
|
|
58
|
-
|
|
59
|
-
# English is always supported
|
|
60
|
-
if [[ "$language" == "english" ]] || [[ "$language" == "en" ]]; then
|
|
61
|
-
return 0
|
|
62
|
-
fi
|
|
63
|
-
|
|
64
|
-
case "$provider" in
|
|
65
|
-
elevenlabs)
|
|
66
|
-
# ElevenLabs supports all languages via multilingual voices
|
|
67
|
-
return 0
|
|
68
|
-
;;
|
|
69
|
-
piper)
|
|
70
|
-
# Piper only supports English natively
|
|
71
|
-
return 1
|
|
72
|
-
;;
|
|
73
|
-
*)
|
|
74
|
-
return 1
|
|
75
|
-
;;
|
|
76
|
-
esac
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
# @function provider_list
|
|
80
|
-
# @intent Display all available providers with status
|
|
81
|
-
provider_list() {
|
|
82
|
-
local current_provider
|
|
83
|
-
current_provider=$(get_active_provider)
|
|
84
|
-
|
|
85
|
-
echo "┌────────────────────────────────────────────────────────────┐"
|
|
86
|
-
echo "│ Available TTS Providers │"
|
|
87
|
-
echo "├────────────────────────────────────────────────────────────┤"
|
|
88
|
-
|
|
89
|
-
# ElevenLabs
|
|
90
|
-
if [[ "$current_provider" == "elevenlabs" ]]; then
|
|
91
|
-
echo "│ ✓ ElevenLabs Premium quality ⭐⭐⭐⭐⭐ [ACTIVE] │"
|
|
92
|
-
else
|
|
93
|
-
echo "│ ElevenLabs Premium quality ⭐⭐⭐⭐⭐ │"
|
|
94
|
-
fi
|
|
95
|
-
echo "│ Cost: Free tier + \$5-22/mo │"
|
|
96
|
-
echo "│ Platform: All (Windows, macOS, Linux, WSL) │"
|
|
97
|
-
echo "│ Offline: No │"
|
|
98
|
-
echo "│ │"
|
|
99
|
-
|
|
100
|
-
# Piper
|
|
101
|
-
if [[ "$current_provider" == "piper" ]]; then
|
|
102
|
-
echo "│ ✓ Piper TTS Free, offline ⭐⭐⭐⭐ [ACTIVE] │"
|
|
103
|
-
else
|
|
104
|
-
echo "│ Piper TTS Free, offline ⭐⭐⭐⭐ │"
|
|
105
|
-
fi
|
|
106
|
-
echo "│ Cost: Free forever │"
|
|
107
|
-
echo "│ Platform: WSL, Linux only │"
|
|
108
|
-
echo "│ Offline: Yes │"
|
|
109
|
-
echo "└────────────────────────────────────────────────────────────┘"
|
|
110
|
-
echo ""
|
|
111
|
-
echo "Learn more: agentvibes.org/providers"
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
# @function provider_switch
|
|
115
|
-
# @intent Switch to a different TTS provider
|
|
116
|
-
provider_switch() {
|
|
117
|
-
local new_provider="$1"
|
|
118
|
-
local force_mode=false
|
|
119
|
-
|
|
120
|
-
# Check for --force or --yes flag
|
|
121
|
-
if [[ "$2" == "--force" ]] || [[ "$2" == "--yes" ]] || [[ "$2" == "-y" ]]; then
|
|
122
|
-
force_mode=true
|
|
123
|
-
fi
|
|
124
|
-
|
|
125
|
-
# Auto-enable force mode if running non-interactively (e.g., from MCP)
|
|
126
|
-
# Check multiple conditions for MCP/non-interactive context
|
|
127
|
-
if [[ ! -t 0 ]] || [[ -n "$CLAUDE_PROJECT_DIR" ]] || [[ -n "$MCP_SERVER" ]]; then
|
|
128
|
-
force_mode=true
|
|
129
|
-
fi
|
|
130
|
-
|
|
131
|
-
if [[ -z "$new_provider" ]]; then
|
|
132
|
-
echo "❌ Error: Provider name required"
|
|
133
|
-
echo "Usage: /agent-vibes:provider switch <provider> [--force]"
|
|
134
|
-
echo "Available: elevenlabs, piper"
|
|
135
|
-
return 1
|
|
136
|
-
fi
|
|
137
|
-
|
|
138
|
-
# Validate provider
|
|
139
|
-
if ! validate_provider "$new_provider"; then
|
|
140
|
-
echo "❌ Invalid provider: $new_provider"
|
|
141
|
-
echo ""
|
|
142
|
-
echo "Available providers:"
|
|
143
|
-
list_providers
|
|
144
|
-
return 1
|
|
145
|
-
fi
|
|
146
|
-
|
|
147
|
-
local current_provider
|
|
148
|
-
current_provider=$(get_active_provider)
|
|
149
|
-
|
|
150
|
-
if [[ "$current_provider" == "$new_provider" ]]; then
|
|
151
|
-
echo "✓ Already using $new_provider"
|
|
152
|
-
return 0
|
|
153
|
-
fi
|
|
154
|
-
|
|
155
|
-
# Platform check for Piper
|
|
156
|
-
if [[ "$new_provider" == "piper" ]]; then
|
|
157
|
-
if ! grep -qi microsoft /proc/version 2>/dev/null && [[ "$(uname -s)" != "Linux" ]]; then
|
|
158
|
-
echo "❌ Piper is only supported on WSL and Linux"
|
|
159
|
-
echo "Your platform: $(uname -s)"
|
|
160
|
-
echo "See: agentvibes.org/platform-support"
|
|
161
|
-
return 1
|
|
162
|
-
fi
|
|
163
|
-
|
|
164
|
-
# Check if Piper is installed
|
|
165
|
-
if ! command -v piper &> /dev/null; then
|
|
166
|
-
echo "❌ Piper TTS is not installed"
|
|
167
|
-
echo ""
|
|
168
|
-
echo "Install with: pipx install piper-tts"
|
|
169
|
-
echo "Or run: .claude/hooks/piper-installer.sh"
|
|
170
|
-
echo ""
|
|
171
|
-
echo "Visit: agentvibes.org/install-piper"
|
|
172
|
-
return 1
|
|
173
|
-
fi
|
|
174
|
-
fi
|
|
175
|
-
|
|
176
|
-
# Check language compatibility
|
|
177
|
-
local current_language
|
|
178
|
-
current_language=$(get_language_code)
|
|
179
|
-
|
|
180
|
-
if [[ "$current_language" != "english" ]]; then
|
|
181
|
-
if ! is_language_supported "$current_language" "$new_provider" 2>/dev/null; then
|
|
182
|
-
echo "⚠️ Language Compatibility Warning"
|
|
183
|
-
echo ""
|
|
184
|
-
echo "Current language: $current_language"
|
|
185
|
-
echo "Target provider: $new_provider"
|
|
186
|
-
echo ""
|
|
187
|
-
echo "❌ Language '$current_language' is not natively supported by $new_provider"
|
|
188
|
-
echo " Will fall back to English when using $new_provider"
|
|
189
|
-
echo ""
|
|
190
|
-
echo "Options:"
|
|
191
|
-
echo " 1. Continue anyway (will use English)"
|
|
192
|
-
echo " 2. Switch language to English"
|
|
193
|
-
echo " 3. Cancel provider switch"
|
|
194
|
-
echo ""
|
|
195
|
-
|
|
196
|
-
# Skip prompt in force mode
|
|
197
|
-
if [[ "$force_mode" == true ]]; then
|
|
198
|
-
echo "⏩ Force mode: Continuing with fallback to English..."
|
|
199
|
-
else
|
|
200
|
-
read -p "Choose option [1-3]: " -n 1 -r
|
|
201
|
-
echo
|
|
202
|
-
|
|
203
|
-
case $REPLY in
|
|
204
|
-
1)
|
|
205
|
-
echo "⏩ Continuing with fallback to English..."
|
|
206
|
-
;;
|
|
207
|
-
2)
|
|
208
|
-
echo "🔄 Switching language to English..."
|
|
209
|
-
"$SCRIPT_DIR/language-manager.sh" set english
|
|
210
|
-
;;
|
|
211
|
-
3)
|
|
212
|
-
echo "❌ Provider switch cancelled"
|
|
213
|
-
return 1
|
|
214
|
-
;;
|
|
215
|
-
*)
|
|
216
|
-
echo "❌ Invalid option, cancelling"
|
|
217
|
-
return 1
|
|
218
|
-
;;
|
|
219
|
-
esac
|
|
220
|
-
fi
|
|
221
|
-
fi
|
|
222
|
-
fi
|
|
223
|
-
|
|
224
|
-
# Confirm switch (skip in force mode)
|
|
225
|
-
if [[ "$force_mode" != true ]]; then
|
|
226
|
-
echo ""
|
|
227
|
-
echo "⚠️ Switch to $(echo $new_provider | tr '[:lower:]' '[:upper:]')?"
|
|
228
|
-
echo ""
|
|
229
|
-
echo "Current: $current_provider"
|
|
230
|
-
echo "New: $new_provider"
|
|
231
|
-
if [[ "$current_language" != "english" ]]; then
|
|
232
|
-
echo "Language: $current_language"
|
|
233
|
-
fi
|
|
234
|
-
echo ""
|
|
235
|
-
read -p "Continue? [y/N]: " -n 1 -r
|
|
236
|
-
echo
|
|
237
|
-
|
|
238
|
-
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
239
|
-
echo "❌ Switch cancelled"
|
|
240
|
-
return 1
|
|
241
|
-
fi
|
|
242
|
-
else
|
|
243
|
-
echo "⏩ Force mode: Switching to $new_provider..."
|
|
244
|
-
fi
|
|
245
|
-
|
|
246
|
-
# Perform switch
|
|
247
|
-
set_active_provider "$new_provider"
|
|
248
|
-
|
|
249
|
-
# Update target voice if language learning mode is active
|
|
250
|
-
local target_lang_file=""
|
|
251
|
-
local target_voice_file=""
|
|
252
|
-
|
|
253
|
-
# Check project-local first, then global
|
|
254
|
-
if [[ -d "$SCRIPT_DIR/../.." ]]; then
|
|
255
|
-
local project_dir="$SCRIPT_DIR/../.."
|
|
256
|
-
if [[ -f "$project_dir/.claude/tts-target-language.txt" ]]; then
|
|
257
|
-
target_lang_file="$project_dir/.claude/tts-target-language.txt"
|
|
258
|
-
target_voice_file="$project_dir/.claude/tts-target-voice.txt"
|
|
259
|
-
fi
|
|
260
|
-
fi
|
|
261
|
-
|
|
262
|
-
# Fallback to global
|
|
263
|
-
if [[ -z "$target_lang_file" ]]; then
|
|
264
|
-
if [[ -f "$HOME/.claude/tts-target-language.txt" ]]; then
|
|
265
|
-
target_lang_file="$HOME/.claude/tts-target-language.txt"
|
|
266
|
-
target_voice_file="$HOME/.claude/tts-target-voice.txt"
|
|
267
|
-
fi
|
|
268
|
-
fi
|
|
269
|
-
|
|
270
|
-
# If target language is set, update voice for new provider
|
|
271
|
-
if [[ -n "$target_lang_file" ]] && [[ -f "$target_lang_file" ]]; then
|
|
272
|
-
local target_lang
|
|
273
|
-
target_lang=$(cat "$target_lang_file")
|
|
274
|
-
|
|
275
|
-
if [[ -n "$target_lang" ]]; then
|
|
276
|
-
# Get the recommended voice for this language with new provider
|
|
277
|
-
local new_target_voice
|
|
278
|
-
new_target_voice=$(get_voice_for_language "$target_lang" "$new_provider")
|
|
279
|
-
|
|
280
|
-
if [[ -n "$new_target_voice" ]]; then
|
|
281
|
-
echo "$new_target_voice" > "$target_voice_file"
|
|
282
|
-
echo ""
|
|
283
|
-
echo "🔄 Updated target language voice:"
|
|
284
|
-
echo " Language: $target_lang"
|
|
285
|
-
echo " Voice: $new_target_voice (for $new_provider)"
|
|
286
|
-
fi
|
|
287
|
-
fi
|
|
288
|
-
fi
|
|
289
|
-
|
|
290
|
-
# Test new provider
|
|
291
|
-
echo ""
|
|
292
|
-
echo "🔊 Testing provider..."
|
|
293
|
-
"$SCRIPT_DIR/play-tts.sh" "Provider switched to $new_provider successfully" 2>/dev/null
|
|
294
|
-
|
|
295
|
-
echo ""
|
|
296
|
-
echo "✓ Provider switch complete!"
|
|
297
|
-
echo "Visit agentvibes.org for tips and tricks"
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
# @function provider_info
|
|
301
|
-
# @intent Show detailed information about a provider
|
|
302
|
-
provider_info() {
|
|
303
|
-
local provider_name="$1"
|
|
304
|
-
|
|
305
|
-
if [[ -z "$provider_name" ]]; then
|
|
306
|
-
echo "❌ Error: Provider name required"
|
|
307
|
-
echo "Usage: /agent-vibes:provider info <provider>"
|
|
308
|
-
return 1
|
|
309
|
-
fi
|
|
310
|
-
|
|
311
|
-
case "$provider_name" in
|
|
312
|
-
elevenlabs)
|
|
313
|
-
echo "┌────────────────────────────────────────────────────────────┐"
|
|
314
|
-
echo "│ ElevenLabs - Premium TTS Provider │"
|
|
315
|
-
echo "├────────────────────────────────────────────────────────────┤"
|
|
316
|
-
echo "│ Quality: ⭐⭐⭐⭐⭐ (Highest available) │"
|
|
317
|
-
echo "│ Cost: Free tier + \$5-22/mo │"
|
|
318
|
-
echo "│ Platform: All (Windows, macOS, Linux, WSL) │"
|
|
319
|
-
echo "│ Offline: No (requires internet) │"
|
|
320
|
-
echo "│ │"
|
|
321
|
-
echo "│ Trade-offs: │"
|
|
322
|
-
echo "│ + Highest voice quality and naturalness │"
|
|
323
|
-
echo "│ + 50+ premium voices available │"
|
|
324
|
-
echo "│ + Multilingual support (30+ languages) │"
|
|
325
|
-
echo "│ - Requires API key and internet │"
|
|
326
|
-
echo "│ - Costs money after free tier │"
|
|
327
|
-
echo "│ │"
|
|
328
|
-
echo "│ Best for: Premium quality, multilingual needs │"
|
|
329
|
-
echo "└────────────────────────────────────────────────────────────┘"
|
|
330
|
-
echo ""
|
|
331
|
-
echo "Full comparison: agentvibes.org/providers"
|
|
332
|
-
;;
|
|
333
|
-
|
|
334
|
-
piper)
|
|
335
|
-
echo "┌────────────────────────────────────────────────────────────┐"
|
|
336
|
-
echo "│ Piper TTS - Free Offline Provider │"
|
|
337
|
-
echo "├────────────────────────────────────────────────────────────┤"
|
|
338
|
-
echo "│ Quality: ⭐⭐⭐⭐ (Very good) │"
|
|
339
|
-
echo "│ Cost: Free forever │"
|
|
340
|
-
echo "│ Platform: WSL, Linux only │"
|
|
341
|
-
echo "│ Offline: Yes (fully local) │"
|
|
342
|
-
echo "│ │"
|
|
343
|
-
echo "│ Trade-offs: │"
|
|
344
|
-
echo "│ + Completely free, no API costs │"
|
|
345
|
-
echo "│ + Works offline, no internet needed │"
|
|
346
|
-
echo "│ + Fast synthesis (local processing) │"
|
|
347
|
-
echo "│ - WSL/Linux only (no macOS/Windows) │"
|
|
348
|
-
echo "│ - Slightly lower quality than ElevenLabs │"
|
|
349
|
-
echo "│ │"
|
|
350
|
-
echo "│ Best for: Budget-conscious, offline use, privacy │"
|
|
351
|
-
echo "└────────────────────────────────────────────────────────────┘"
|
|
352
|
-
echo ""
|
|
353
|
-
echo "Full comparison: agentvibes.org/providers"
|
|
354
|
-
;;
|
|
355
|
-
|
|
356
|
-
*)
|
|
357
|
-
echo "❌ Unknown provider: $provider_name"
|
|
358
|
-
echo "Available: elevenlabs, piper"
|
|
359
|
-
;;
|
|
360
|
-
esac
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
# @function provider_test
|
|
364
|
-
# @intent Test current provider with sample audio
|
|
365
|
-
provider_test() {
|
|
366
|
-
local current_provider
|
|
367
|
-
current_provider=$(get_active_provider)
|
|
368
|
-
|
|
369
|
-
echo "🔊 Testing provider: $current_provider"
|
|
370
|
-
echo ""
|
|
371
|
-
|
|
372
|
-
"$SCRIPT_DIR/play-tts.sh" "Provider test successful. Audio is working correctly with $current_provider."
|
|
373
|
-
|
|
374
|
-
echo ""
|
|
375
|
-
echo "✓ Test complete"
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
# @function provider_get
|
|
379
|
-
# @intent Show currently active provider
|
|
380
|
-
provider_get() {
|
|
381
|
-
local current_provider
|
|
382
|
-
current_provider=$(get_active_provider)
|
|
383
|
-
|
|
384
|
-
echo "🎤 Current Provider: $current_provider"
|
|
385
|
-
echo ""
|
|
386
|
-
|
|
387
|
-
# Show brief info
|
|
388
|
-
case "$current_provider" in
|
|
389
|
-
elevenlabs)
|
|
390
|
-
echo "Quality: ⭐⭐⭐⭐⭐"
|
|
391
|
-
echo "Cost: Free tier + \$5-22/mo"
|
|
392
|
-
echo "Offline: No"
|
|
393
|
-
;;
|
|
394
|
-
piper)
|
|
395
|
-
echo "Quality: ⭐⭐⭐⭐"
|
|
396
|
-
echo "Cost: Free forever"
|
|
397
|
-
echo "Offline: Yes"
|
|
398
|
-
;;
|
|
399
|
-
esac
|
|
400
|
-
|
|
401
|
-
echo ""
|
|
402
|
-
echo "Use /agent-vibes:provider info $current_provider for details"
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
# @function provider_preview
|
|
406
|
-
# @intent Preview voices for the currently active provider
|
|
407
|
-
# @architecture Delegates to provider-specific voice managers
|
|
408
|
-
provider_preview() {
|
|
409
|
-
local current_provider
|
|
410
|
-
current_provider=$(get_active_provider)
|
|
411
|
-
|
|
412
|
-
echo "🎤 Voice Preview ($current_provider)"
|
|
413
|
-
echo ""
|
|
414
|
-
|
|
415
|
-
case "$current_provider" in
|
|
416
|
-
elevenlabs)
|
|
417
|
-
# Use the ElevenLabs voice manager
|
|
418
|
-
"$SCRIPT_DIR/voice-manager.sh" preview "$@"
|
|
419
|
-
;;
|
|
420
|
-
piper)
|
|
421
|
-
# Use the Piper voice manager's list functionality
|
|
422
|
-
source "$SCRIPT_DIR/piper-voice-manager.sh"
|
|
423
|
-
|
|
424
|
-
# Check if a specific voice was requested
|
|
425
|
-
local voice_arg="$1"
|
|
426
|
-
|
|
427
|
-
if [[ -n "$voice_arg" ]]; then
|
|
428
|
-
# User requested a specific voice - check if it's a valid Piper voice
|
|
429
|
-
# Piper voice names are like: en_US-lessac-medium
|
|
430
|
-
# Try to find a matching voice model
|
|
431
|
-
|
|
432
|
-
# Check if the voice arg looks like a Piper model name (contains underscores/hyphens)
|
|
433
|
-
if [[ "$voice_arg" =~ ^[a-z]{2}_[A-Z]{2}- ]]; then
|
|
434
|
-
# Looks like a Piper voice model name
|
|
435
|
-
if verify_voice "$voice_arg"; then
|
|
436
|
-
echo "🎤 Previewing Piper voice: $voice_arg"
|
|
437
|
-
echo ""
|
|
438
|
-
"$SCRIPT_DIR/play-tts.sh" "Hello, this is the $voice_arg voice. How do you like it?" "$voice_arg"
|
|
439
|
-
else
|
|
440
|
-
echo "❌ Voice model not found: $voice_arg"
|
|
441
|
-
echo ""
|
|
442
|
-
echo "💡 Piper voice names look like: en_US-lessac-medium"
|
|
443
|
-
echo " Run /agent-vibes:list to see available Piper voices"
|
|
444
|
-
fi
|
|
445
|
-
else
|
|
446
|
-
# Looks like an ElevenLabs voice name (like "Antoni", "Jessica")
|
|
447
|
-
echo "❌ '$voice_arg' appears to be an ElevenLabs voice"
|
|
448
|
-
echo ""
|
|
449
|
-
echo "You're currently using Piper TTS (free provider)."
|
|
450
|
-
echo "Piper has different voices than ElevenLabs."
|
|
451
|
-
echo ""
|
|
452
|
-
echo "Options:"
|
|
453
|
-
echo " 1. Run /agent-vibes:list to see available Piper voices"
|
|
454
|
-
echo " 2. Switch to ElevenLabs: /agent-vibes:provider switch elevenlabs"
|
|
455
|
-
echo ""
|
|
456
|
-
echo "Popular Piper voices to try:"
|
|
457
|
-
echo " • en_US-lessac-medium (clear, professional)"
|
|
458
|
-
echo " • en_US-amy-medium (warm, friendly)"
|
|
459
|
-
echo " • en_US-joe-medium (casual, natural)"
|
|
460
|
-
fi
|
|
461
|
-
return
|
|
462
|
-
fi
|
|
463
|
-
|
|
464
|
-
# No specific voice - preview first 3 voices
|
|
465
|
-
echo "🎤 Piper Preview of 3 people"
|
|
466
|
-
echo ""
|
|
467
|
-
|
|
468
|
-
# Play first 3 Piper voices as samples
|
|
469
|
-
local sample_voices=(
|
|
470
|
-
"en_US-lessac-medium:Lessac"
|
|
471
|
-
"en_US-amy-medium:Amy"
|
|
472
|
-
"en_US-joe-medium:Joe"
|
|
473
|
-
)
|
|
474
|
-
|
|
475
|
-
for voice_entry in "${sample_voices[@]}"; do
|
|
476
|
-
local voice_name="${voice_entry%%:*}"
|
|
477
|
-
local display_name="${voice_entry##*:}"
|
|
478
|
-
|
|
479
|
-
echo "🔊 ${display_name}..."
|
|
480
|
-
"$SCRIPT_DIR/play-tts.sh" "Hi, my name is ${display_name}" "$voice_name"
|
|
481
|
-
|
|
482
|
-
# Wait for the voice to finish playing before starting next one
|
|
483
|
-
sleep 3
|
|
484
|
-
done
|
|
485
|
-
|
|
486
|
-
echo ""
|
|
487
|
-
echo "✓ Preview complete"
|
|
488
|
-
echo "💡 Use /agent-vibes:list to see all available Piper voices"
|
|
489
|
-
;;
|
|
490
|
-
*)
|
|
491
|
-
echo "❌ Unknown provider: $current_provider"
|
|
492
|
-
;;
|
|
493
|
-
esac
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
# @function provider_help
|
|
497
|
-
# @intent Show help for provider commands
|
|
498
|
-
provider_help() {
|
|
499
|
-
echo "Provider Management Commands"
|
|
500
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
501
|
-
echo ""
|
|
502
|
-
echo "Usage:"
|
|
503
|
-
echo " /agent-vibes:provider list # Show all providers"
|
|
504
|
-
echo " /agent-vibes:provider switch <name> # Switch provider"
|
|
505
|
-
echo " /agent-vibes:provider info <name> # Provider details"
|
|
506
|
-
echo " /agent-vibes:provider test # Test current provider"
|
|
507
|
-
echo " /agent-vibes:provider get # Show active provider"
|
|
508
|
-
echo ""
|
|
509
|
-
echo "Examples:"
|
|
510
|
-
echo " /agent-vibes:provider switch piper"
|
|
511
|
-
echo " /agent-vibes:provider info elevenlabs"
|
|
512
|
-
echo ""
|
|
513
|
-
echo "Learn more: agentvibes.org/docs/providers"
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
# Route to appropriate function
|
|
517
|
-
case "$COMMAND" in
|
|
518
|
-
list)
|
|
519
|
-
provider_list
|
|
520
|
-
;;
|
|
521
|
-
switch)
|
|
522
|
-
provider_switch "$2" "$3"
|
|
523
|
-
;;
|
|
524
|
-
info)
|
|
525
|
-
provider_info "$2"
|
|
526
|
-
;;
|
|
527
|
-
test)
|
|
528
|
-
provider_test
|
|
529
|
-
;;
|
|
530
|
-
get)
|
|
531
|
-
provider_get
|
|
532
|
-
;;
|
|
533
|
-
preview)
|
|
534
|
-
shift # Remove 'preview' from args
|
|
535
|
-
provider_preview "$@"
|
|
536
|
-
;;
|
|
537
|
-
help|*)
|
|
538
|
-
provider_help
|
|
539
|
-
;;
|
|
540
|
-
esac
|