agentvibes 2.0.17 → 2.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.bmad-core/agent-teams/team-all.yaml +15 -0
- package/.bmad-core/agent-teams/team-fullstack.yaml +19 -0
- package/.bmad-core/agent-teams/team-ide-minimal.yaml +11 -0
- package/.bmad-core/agent-teams/team-no-ui.yaml +14 -0
- package/.bmad-core/agents/analyst.md +84 -0
- package/.bmad-core/agents/architect.md +85 -0
- package/.bmad-core/agents/bmad-master.md +110 -0
- package/.bmad-core/agents/bmad-orchestrator.md +147 -0
- package/.bmad-core/agents/dev.md +81 -0
- package/.bmad-core/agents/pm.md +84 -0
- package/.bmad-core/agents/po.md +79 -0
- package/.bmad-core/agents/qa.md +87 -0
- package/.bmad-core/agents/sm.md +65 -0
- package/.bmad-core/agents/ux-expert.md +69 -0
- package/.bmad-core/checklists/architect-checklist.md +440 -0
- package/.bmad-core/checklists/change-checklist.md +184 -0
- package/.bmad-core/checklists/pm-checklist.md +372 -0
- package/.bmad-core/checklists/po-master-checklist.md +434 -0
- package/.bmad-core/checklists/story-dod-checklist.md +96 -0
- package/.bmad-core/checklists/story-draft-checklist.md +155 -0
- package/.bmad-core/core-config.yaml +22 -0
- package/.bmad-core/data/bmad-kb.md +809 -0
- package/.bmad-core/data/brainstorming-techniques.md +38 -0
- package/.bmad-core/data/elicitation-methods.md +156 -0
- package/.bmad-core/data/technical-preferences.md +5 -0
- package/.bmad-core/data/test-levels-framework.md +148 -0
- package/.bmad-core/data/test-priorities-matrix.md +174 -0
- package/.bmad-core/enhanced-ide-development-workflow.md +248 -0
- package/.bmad-core/install-manifest.yaml +230 -0
- package/.bmad-core/tasks/advanced-elicitation.md +119 -0
- package/.bmad-core/tasks/apply-qa-fixes.md +150 -0
- package/.bmad-core/tasks/brownfield-create-epic.md +162 -0
- package/.bmad-core/tasks/brownfield-create-story.md +149 -0
- package/.bmad-core/tasks/correct-course.md +72 -0
- package/.bmad-core/tasks/create-brownfield-story.md +314 -0
- package/.bmad-core/tasks/create-deep-research-prompt.md +280 -0
- package/.bmad-core/tasks/create-doc.md +103 -0
- package/.bmad-core/tasks/create-next-story.md +114 -0
- package/.bmad-core/tasks/document-project.md +345 -0
- package/.bmad-core/tasks/execute-checklist.md +88 -0
- package/.bmad-core/tasks/facilitate-brainstorming-session.md +138 -0
- package/.bmad-core/tasks/generate-ai-frontend-prompt.md +53 -0
- package/.bmad-core/tasks/index-docs.md +175 -0
- package/.bmad-core/tasks/kb-mode-interaction.md +77 -0
- package/.bmad-core/tasks/nfr-assess.md +345 -0
- package/.bmad-core/tasks/qa-gate.md +163 -0
- package/.bmad-core/tasks/review-story.md +316 -0
- package/.bmad-core/tasks/risk-profile.md +355 -0
- package/.bmad-core/tasks/shard-doc.md +187 -0
- package/.bmad-core/tasks/test-design.md +176 -0
- package/.bmad-core/tasks/trace-requirements.md +266 -0
- package/.bmad-core/tasks/validate-next-story.md +136 -0
- package/.bmad-core/templates/architecture-tmpl.yaml +651 -0
- package/.bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
- package/.bmad-core/templates/brownfield-architecture-tmpl.yaml +477 -0
- package/.bmad-core/templates/brownfield-prd-tmpl.yaml +281 -0
- package/.bmad-core/templates/competitor-analysis-tmpl.yaml +307 -0
- package/.bmad-core/templates/front-end-architecture-tmpl.yaml +219 -0
- package/.bmad-core/templates/front-end-spec-tmpl.yaml +350 -0
- package/.bmad-core/templates/fullstack-architecture-tmpl.yaml +824 -0
- package/.bmad-core/templates/market-research-tmpl.yaml +253 -0
- package/.bmad-core/templates/prd-tmpl.yaml +203 -0
- package/.bmad-core/templates/project-brief-tmpl.yaml +222 -0
- package/.bmad-core/templates/qa-gate-tmpl.yaml +103 -0
- package/.bmad-core/templates/story-tmpl.yaml +138 -0
- package/.bmad-core/user-guide.md +577 -0
- package/.bmad-core/utils/bmad-doc-template.md +327 -0
- package/.bmad-core/utils/workflow-management.md +71 -0
- package/.bmad-core/workflows/brownfield-fullstack.yaml +298 -0
- package/.bmad-core/workflows/brownfield-service.yaml +188 -0
- package/.bmad-core/workflows/brownfield-ui.yaml +198 -0
- package/.bmad-core/workflows/greenfield-fullstack.yaml +241 -0
- package/.bmad-core/workflows/greenfield-service.yaml +207 -0
- package/.bmad-core/workflows/greenfield-ui.yaml +236 -0
- package/.bmad-core/working-in-the-brownfield.md +606 -0
- package/.claude/activation-instructions +54 -0
- package/.claude/commands/BMad/agents/analyst.md +88 -0
- package/.claude/commands/BMad/agents/architect.md +89 -0
- package/.claude/commands/BMad/agents/bmad-master.md +114 -0
- package/.claude/commands/BMad/agents/bmad-orchestrator.md +151 -0
- package/.claude/commands/BMad/agents/dev.md +85 -0
- package/.claude/commands/BMad/agents/pm.md +88 -0
- package/.claude/commands/BMad/agents/po.md +83 -0
- package/.claude/commands/BMad/agents/qa.md +91 -0
- package/.claude/commands/BMad/agents/sm.md +69 -0
- package/.claude/commands/BMad/agents/ux-expert.md +73 -0
- package/.claude/commands/BMad/tasks/advanced-elicitation.md +123 -0
- package/.claude/commands/BMad/tasks/apply-qa-fixes.md +154 -0
- package/.claude/commands/BMad/tasks/brownfield-create-epic.md +166 -0
- package/.claude/commands/BMad/tasks/brownfield-create-story.md +153 -0
- package/.claude/commands/BMad/tasks/correct-course.md +76 -0
- package/.claude/commands/BMad/tasks/create-brownfield-story.md +318 -0
- package/.claude/commands/BMad/tasks/create-deep-research-prompt.md +284 -0
- package/.claude/commands/BMad/tasks/create-doc.md +107 -0
- package/.claude/commands/BMad/tasks/create-next-story.md +118 -0
- package/.claude/commands/BMad/tasks/document-project.md +349 -0
- package/.claude/commands/BMad/tasks/execute-checklist.md +92 -0
- package/.claude/commands/BMad/tasks/facilitate-brainstorming-session.md +142 -0
- package/.claude/commands/BMad/tasks/generate-ai-frontend-prompt.md +57 -0
- package/.claude/commands/BMad/tasks/index-docs.md +179 -0
- package/.claude/commands/BMad/tasks/kb-mode-interaction.md +81 -0
- package/.claude/commands/BMad/tasks/nfr-assess.md +349 -0
- package/.claude/commands/BMad/tasks/qa-gate.md +167 -0
- package/.claude/commands/BMad/tasks/review-story.md +320 -0
- package/.claude/commands/BMad/tasks/risk-profile.md +359 -0
- package/.claude/commands/BMad/tasks/shard-doc.md +191 -0
- package/.claude/commands/BMad/tasks/test-design.md +180 -0
- package/.claude/commands/BMad/tasks/trace-requirements.md +270 -0
- package/.claude/commands/BMad/tasks/validate-next-story.md +140 -0
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/bmad-tts-injector.sh +33 -4
- package/.claude/hooks/bmad-voice-manager.sh +146 -10
- package/.claude/hooks/check-output-style.sh +60 -8
- package/.claude/hooks/github-star-reminder.sh +67 -7
- package/.claude/hooks/language-manager.sh +34 -2
- package/.claude/hooks/learn-manager.sh +34 -2
- package/.claude/hooks/personality-manager.sh +34 -1
- package/.claude/hooks/piper-download-voices.sh +131 -9
- package/.claude/hooks/piper-installer.sh +38 -4
- package/.claude/hooks/piper-voice-manager.sh +102 -36
- package/.claude/hooks/play-tts-elevenlabs.sh +32 -6
- package/.claude/hooks/play-tts-piper.sh +79 -18
- package/.claude/hooks/play-tts.sh +34 -3
- package/.claude/hooks/provider-commands.sh +36 -1
- package/.claude/hooks/provider-manager.sh +32 -1
- package/.claude/hooks/replay-target-audio.sh +34 -3
- package/.claude/hooks/sentiment-manager.sh +39 -1
- package/.claude/hooks/speed-manager.sh +36 -2
- package/.claude/hooks/voice-manager.sh +85 -6
- package/.claude/hooks/voices-config.sh +39 -2
- package/README.md +77 -137
- package/RELEASE_NOTES.md +269 -0
- package/RELEASE_NOTES_v2.0.17_DRAFT.md +650 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760744118.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760748535.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760748676.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760750748.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760750947.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760752718.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760752907.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753017.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753045.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753241.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753315.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753382.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753408.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753426.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753446.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753541.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753553.mp3 +0 -0
- package/agentvibes.org/.claude/audio/tts-padded-1760753577.mp3 +0 -0
- package/agentvibes.org/.claude/commands/agent-vibes/add.md +21 -0
- package/agentvibes.org/.claude/commands/agent-vibes/agent-vibes.md +68 -0
- package/agentvibes.org/.claude/commands/agent-vibes/bmad.md +196 -0
- package/agentvibes.org/.claude/commands/agent-vibes/commands.json +77 -0
- package/agentvibes.org/.claude/commands/agent-vibes/get.md +9 -0
- package/agentvibes.org/.claude/commands/agent-vibes/language.md +23 -0
- package/agentvibes.org/.claude/commands/agent-vibes/learn.md +67 -0
- package/agentvibes.org/.claude/commands/agent-vibes/list.md +13 -0
- package/agentvibes.org/.claude/commands/agent-vibes/personality.md +79 -0
- package/agentvibes.org/.claude/commands/agent-vibes/preview.md +17 -0
- package/agentvibes.org/.claude/commands/agent-vibes/provider.md +54 -0
- package/agentvibes.org/.claude/commands/agent-vibes/replay-target.md +14 -0
- package/agentvibes.org/.claude/commands/agent-vibes/replay.md +19 -0
- package/agentvibes.org/.claude/commands/agent-vibes/sample.md +12 -0
- package/agentvibes.org/.claude/commands/agent-vibes/sentiment.md +52 -0
- package/agentvibes.org/.claude/commands/agent-vibes/set-language.md +47 -0
- package/agentvibes.org/.claude/commands/agent-vibes/set-pretext.md +65 -0
- package/agentvibes.org/.claude/commands/agent-vibes/set-speed.md +41 -0
- package/agentvibes.org/.claude/commands/agent-vibes/switch.md +53 -0
- package/agentvibes.org/.claude/commands/agent-vibes/target-voice.md +26 -0
- package/agentvibes.org/.claude/commands/agent-vibes/target.md +30 -0
- package/agentvibes.org/.claude/commands/agent-vibes/update.md +20 -0
- package/agentvibes.org/.claude/commands/agent-vibes/version.md +10 -0
- package/agentvibes.org/.claude/commands/agent-vibes/whoami.md +7 -0
- package/agentvibes.org/.claude/hooks/bmad-tts-injector.sh +386 -0
- package/agentvibes.org/.claude/hooks/bmad-voice-manager.sh +375 -0
- package/agentvibes.org/.claude/hooks/check-output-style.sh +60 -0
- package/agentvibes.org/.claude/hooks/github-star-reminder.sh +94 -0
- package/agentvibes.org/.claude/hooks/language-manager.sh +360 -0
- package/agentvibes.org/.claude/hooks/learn-manager.sh +443 -0
- package/agentvibes.org/.claude/hooks/personality-manager.sh +324 -0
- package/agentvibes.org/.claude/hooks/piper-download-voices.sh +133 -0
- package/agentvibes.org/.claude/hooks/piper-installer.sh +144 -0
- package/agentvibes.org/.claude/hooks/piper-voice-manager.sh +227 -0
- package/agentvibes.org/.claude/hooks/play-tts-elevenlabs.sh +376 -0
- package/agentvibes.org/.claude/hooks/play-tts-piper.sh +281 -0
- package/agentvibes.org/.claude/hooks/play-tts.sh +69 -0
- package/agentvibes.org/.claude/hooks/provider-commands.sh +505 -0
- package/agentvibes.org/.claude/hooks/provider-manager.sh +248 -0
- package/agentvibes.org/.claude/hooks/replay-target-audio.sh +64 -0
- package/agentvibes.org/.claude/hooks/sentiment-manager.sh +163 -0
- package/agentvibes.org/.claude/hooks/speed-manager.sh +259 -0
- package/agentvibes.org/.claude/hooks/voice-manager.sh +477 -0
- package/agentvibes.org/.claude/hooks/voices-config.sh +33 -0
- package/agentvibes.org/.claude/journal/2025-10-07.html +373 -0
- package/agentvibes.org/.claude/journal/index.html +91 -0
- package/agentvibes.org/.claude/output-styles/agent-vibes.md +203 -0
- package/agentvibes.org/.claude/personalities/angry.md +17 -0
- package/agentvibes.org/.claude/personalities/annoying.md +17 -0
- package/agentvibes.org/.claude/personalities/crass.md +17 -0
- package/agentvibes.org/.claude/personalities/dramatic.md +17 -0
- package/agentvibes.org/.claude/personalities/dry-humor.md +53 -0
- package/agentvibes.org/.claude/personalities/flirty.md +23 -0
- package/agentvibes.org/.claude/personalities/funny.md +17 -0
- package/agentvibes.org/.claude/personalities/grandpa.md +35 -0
- package/agentvibes.org/.claude/personalities/millennial.md +17 -0
- package/agentvibes.org/.claude/personalities/moody.md +17 -0
- package/agentvibes.org/.claude/personalities/normal.md +19 -0
- package/agentvibes.org/.claude/personalities/pirate.md +17 -0
- package/agentvibes.org/.claude/personalities/poetic.md +17 -0
- package/agentvibes.org/.claude/personalities/professional.md +17 -0
- package/agentvibes.org/.claude/personalities/robot.md +17 -0
- package/agentvibes.org/.claude/personalities/sarcastic.md +41 -0
- package/agentvibes.org/.claude/personalities/sassy.md +17 -0
- package/agentvibes.org/.claude/personalities/surfer-dude.md +17 -0
- package/agentvibes.org/.claude/personalities/zen.md +17 -0
- package/agentvibes.org/.claude/piper-voices-dir.txt +1 -0
- package/agentvibes.org/.claude/plugins/bmad-voices.md +42 -0
- package/agentvibes.org/.claude/tts-provider.txt +1 -0
- package/agentvibes.org/.mcp-minimal.json +60 -0
- package/agentvibes.org/CHANGELOG.md +56 -0
- package/agentvibes.org/README.md +93 -0
- package/agentvibes.org/app/(auth)/layout.tsx +15 -0
- package/agentvibes.org/app/(auth)/reset-password/page.tsx +45 -0
- package/agentvibes.org/app/(auth)/signin/page.tsx +82 -0
- package/agentvibes.org/app/(auth)/signup/page.tsx +104 -0
- package/agentvibes.org/app/(default)/blog/[slug]/page.tsx +128 -0
- package/agentvibes.org/app/(default)/blog/page.tsx +95 -0
- package/agentvibes.org/app/(default)/layout.tsx +31 -0
- package/agentvibes.org/app/(default)/page.tsx +20 -0
- package/agentvibes.org/app/api/hello/route.ts +3 -0
- package/agentvibes.org/app/css/additional-styles/theme.css +82 -0
- package/agentvibes.org/app/css/additional-styles/utility-patterns.css +55 -0
- package/agentvibes.org/app/css/style.css +100 -0
- package/agentvibes.org/app/layout.tsx +63 -0
- package/agentvibes.org/components/code-block.tsx +27 -0
- package/agentvibes.org/components/cta.tsx +58 -0
- package/agentvibes.org/components/features.tsx +256 -0
- package/agentvibes.org/components/hero-home.tsx +133 -0
- package/agentvibes.org/components/mdx-components.tsx +128 -0
- package/agentvibes.org/components/modal-video.tsx +137 -0
- package/agentvibes.org/components/page-illustration.tsx +55 -0
- package/agentvibes.org/components/spotlight.tsx +77 -0
- package/agentvibes.org/components/testimonials.tsx +282 -0
- package/agentvibes.org/components/ui/footer.tsx +82 -0
- package/agentvibes.org/components/ui/header.tsx +68 -0
- package/agentvibes.org/components/ui/logo.tsx +10 -0
- package/agentvibes.org/components/workflows.tsx +176 -0
- package/agentvibes.org/content/blog/discovering-new-piper-voices.mdx +253 -0
- package/agentvibes.org/content/blog/getting-started-agentvibes.mdx +228 -0
- package/agentvibes.org/content/blog/introducing-agentvibes-v2.mdx +250 -0
- package/agentvibes.org/content/blog/language-learning-with-agentvibes.mdx +142 -0
- package/agentvibes.org/content/blog/voice-personalities-guide.mdx +119 -0
- package/agentvibes.org/lib/blog.ts +73 -0
- package/agentvibes.org/next.config.js +6 -0
- package/agentvibes.org/package-lock.json +4285 -0
- package/agentvibes.org/package.json +40 -0
- package/agentvibes.org/pnpm-lock.yaml +1141 -0
- package/agentvibes.org/postcss.config.js +5 -0
- package/agentvibes.org/public/audio/02-sarcastic.mp3 +0 -0
- package/agentvibes.org/public/audio/03-angry.mp3 +0 -0
- package/agentvibes.org/public/audio/04-grandpa.mp3 +0 -0
- package/agentvibes.org/public/audio/05-sarcastic-example2.mp3 +0 -0
- package/agentvibes.org/public/audio/french-rachel.mp3 +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_0_Cori_Samuel.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_10_Steve_C.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_11_Owlivia.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_12_Paul_Hampton.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_13_Jennifer_Dorr.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_14_Emily_Cripps.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_15_Martin_Clifton.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_1_Kara_Shallenberg.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_2_Kristin_Hughes.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_3_Maria_Kasper.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_4_Mike_Pelton.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_5_Mark_Nelson.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_6_Michael_Scherer.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_7_James_K_White.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_8_Rose_Ibex.wav +0 -0
- package/agentvibes.org/public/audio/piper-voices/speaker_9_progressingamerica.wav +0 -0
- package/agentvibes.org/public/audio/spanish-antoni.mp3 +0 -0
- package/agentvibes.org/public/favicon.ico +0 -0
- package/agentvibes.org/public/fonts/nacelle-italic.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-regular.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-semibold.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-semibolditalic.woff2 +0 -0
- package/agentvibes.org/public/images/blurred-shape-gray.svg +1 -0
- package/agentvibes.org/public/images/blurred-shape.svg +1 -0
- package/agentvibes.org/public/images/client-logo-01.svg +1 -0
- package/agentvibes.org/public/images/client-logo-02.svg +1 -0
- package/agentvibes.org/public/images/client-logo-03.svg +1 -0
- package/agentvibes.org/public/images/client-logo-04.svg +1 -0
- package/agentvibes.org/public/images/client-logo-05.svg +1 -0
- package/agentvibes.org/public/images/client-logo-06.svg +1 -0
- package/agentvibes.org/public/images/client-logo-07.svg +1 -0
- package/agentvibes.org/public/images/client-logo-08.svg +1 -0
- package/agentvibes.org/public/images/client-logo-09.svg +1 -0
- package/agentvibes.org/public/images/features.png +0 -0
- package/agentvibes.org/public/images/footer-illustration.svg +1 -0
- package/agentvibes.org/public/images/hero-image-01.jpg +0 -0
- package/agentvibes.org/public/images/logo.svg +1 -0
- package/agentvibes.org/public/images/page-illustration.svg +1 -0
- package/agentvibes.org/public/images/secondary-illustration.svg +1 -0
- package/agentvibes.org/public/images/testimonial-01.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-02.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-03.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-04.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-05.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-06.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-07.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-08.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-09.jpg +0 -0
- package/agentvibes.org/public/images/workflow-01.png +0 -0
- package/agentvibes.org/public/images/workflow-02.png +0 -0
- package/agentvibes.org/public/images/workflow-03.png +0 -0
- package/agentvibes.org/public/videos/video.mp4 +0 -0
- package/agentvibes.org/tsconfig.json +28 -0
- package/agentvibes.org/utils/useMasonry.tsx +67 -0
- package/agentvibes.org/utils/useMousePosition.tsx +27 -0
- package/docs/ai-optimized-documentation-standards.md +78 -4
- package/docs/bryce-beattie-voice-licensing.md +131 -0
- package/docs/commands.md +21 -1
- package/docs/mcp-setup.md +1 -6
- package/github-star-reminder.txt +1 -0
- package/linkedin/vibe-coding-and-pulseaudio.md +121 -0
- package/mcp-server/WINDOWS_SETUP.md +182 -199
- package/mcp-server/docs/elevenlabs-setup.md +213 -0
- package/mcp-server/docs/troubleshooting-audio.md +316 -0
- package/mcp-server/server.py +38 -4
- package/mcp-server/test_server.py +38 -3
- package/package.json +1 -1
- package/scripts/audio-tunnel.config +17 -0
- package/test/helpers/test-helper.bash +31 -4
- package/test/unit/personality-manager.bats +22 -6
- package/test/unit/play-tts.bats +21 -3
- package/test/unit/provider-manager.bats +508 -0
- package/test/unit/speed-manager.bats +436 -0
- package/test/unit/voice-manager.bats +4 -1
- package/.claude/piper-voices/en_US-lessac-medium.onnx +0 -0
- package/.claude/piper-voices/en_US-lessac-medium.onnx.json +0 -493
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# /validate-next-story Task
|
|
2
|
+
|
|
3
|
+
When this command is used, execute the following task:
|
|
4
|
+
|
|
5
|
+
<!-- Powered by BMAD™ Core -->
|
|
6
|
+
|
|
7
|
+
# Validate Next Story Task
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
To comprehensively validate a story draft before implementation begins, ensuring it is complete, accurate, and provides sufficient context for successful development. This task identifies issues and gaps that need to be addressed, preventing hallucinations and ensuring implementation readiness.
|
|
12
|
+
|
|
13
|
+
## SEQUENTIAL Task Execution (Do not proceed until current Task is complete)
|
|
14
|
+
|
|
15
|
+
### 0. Load Core Configuration and Inputs
|
|
16
|
+
|
|
17
|
+
- Load `.bmad-core/core-config.yaml`
|
|
18
|
+
- If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story validation."
|
|
19
|
+
- Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`
|
|
20
|
+
- Identify and load the following inputs:
|
|
21
|
+
- **Story file**: The drafted story to validate (provided by user or discovered in `devStoryLocation`)
|
|
22
|
+
- **Parent epic**: The epic containing this story's requirements
|
|
23
|
+
- **Architecture documents**: Based on configuration (sharded or monolithic)
|
|
24
|
+
- **Story template**: `bmad-core/templates/story-tmpl.md` for completeness validation
|
|
25
|
+
|
|
26
|
+
### 1. Template Completeness Validation
|
|
27
|
+
|
|
28
|
+
- Load `.bmad-core/templates/story-tmpl.yaml` and extract all section headings from the template
|
|
29
|
+
- **Missing sections check**: Compare story sections against template sections to verify all required sections are present
|
|
30
|
+
- **Placeholder validation**: Ensure no template placeholders remain unfilled (e.g., `{{EpicNum}}`, `{{role}}`, `_TBD_`)
|
|
31
|
+
- **Agent section verification**: Confirm all sections from template exist for future agent use
|
|
32
|
+
- **Structure compliance**: Verify story follows template structure and formatting
|
|
33
|
+
|
|
34
|
+
### 2. File Structure and Source Tree Validation
|
|
35
|
+
|
|
36
|
+
- **File paths clarity**: Are new/existing files to be created/modified clearly specified?
|
|
37
|
+
- **Source tree relevance**: Is relevant project structure included in Dev Notes?
|
|
38
|
+
- **Directory structure**: Are new directories/components properly located according to project structure?
|
|
39
|
+
- **File creation sequence**: Do tasks specify where files should be created in logical order?
|
|
40
|
+
- **Path accuracy**: Are file paths consistent with project structure from architecture docs?
|
|
41
|
+
|
|
42
|
+
### 3. UI/Frontend Completeness Validation (if applicable)
|
|
43
|
+
|
|
44
|
+
- **Component specifications**: Are UI components sufficiently detailed for implementation?
|
|
45
|
+
- **Styling/design guidance**: Is visual implementation guidance clear?
|
|
46
|
+
- **User interaction flows**: Are UX patterns and behaviors specified?
|
|
47
|
+
- **Responsive/accessibility**: Are these considerations addressed if required?
|
|
48
|
+
- **Integration points**: Are frontend-backend integration points clear?
|
|
49
|
+
|
|
50
|
+
### 4. Acceptance Criteria Satisfaction Assessment
|
|
51
|
+
|
|
52
|
+
- **AC coverage**: Will all acceptance criteria be satisfied by the listed tasks?
|
|
53
|
+
- **AC testability**: Are acceptance criteria measurable and verifiable?
|
|
54
|
+
- **Missing scenarios**: Are edge cases or error conditions covered?
|
|
55
|
+
- **Success definition**: Is "done" clearly defined for each AC?
|
|
56
|
+
- **Task-AC mapping**: Are tasks properly linked to specific acceptance criteria?
|
|
57
|
+
|
|
58
|
+
### 5. Validation and Testing Instructions Review
|
|
59
|
+
|
|
60
|
+
- **Test approach clarity**: Are testing methods clearly specified?
|
|
61
|
+
- **Test scenarios**: Are key test cases identified?
|
|
62
|
+
- **Validation steps**: Are acceptance criteria validation steps clear?
|
|
63
|
+
- **Testing tools/frameworks**: Are required testing tools specified?
|
|
64
|
+
- **Test data requirements**: Are test data needs identified?
|
|
65
|
+
|
|
66
|
+
### 6. Security Considerations Assessment (if applicable)
|
|
67
|
+
|
|
68
|
+
- **Security requirements**: Are security needs identified and addressed?
|
|
69
|
+
- **Authentication/authorization**: Are access controls specified?
|
|
70
|
+
- **Data protection**: Are sensitive data handling requirements clear?
|
|
71
|
+
- **Vulnerability prevention**: Are common security issues addressed?
|
|
72
|
+
- **Compliance requirements**: Are regulatory/compliance needs addressed?
|
|
73
|
+
|
|
74
|
+
### 7. Tasks/Subtasks Sequence Validation
|
|
75
|
+
|
|
76
|
+
- **Logical order**: Do tasks follow proper implementation sequence?
|
|
77
|
+
- **Dependencies**: Are task dependencies clear and correct?
|
|
78
|
+
- **Granularity**: Are tasks appropriately sized and actionable?
|
|
79
|
+
- **Completeness**: Do tasks cover all requirements and acceptance criteria?
|
|
80
|
+
- **Blocking issues**: Are there any tasks that would block others?
|
|
81
|
+
|
|
82
|
+
### 8. Anti-Hallucination Verification
|
|
83
|
+
|
|
84
|
+
- **Source verification**: Every technical claim must be traceable to source documents
|
|
85
|
+
- **Architecture alignment**: Dev Notes content matches architecture specifications
|
|
86
|
+
- **No invented details**: Flag any technical decisions not supported by source documents
|
|
87
|
+
- **Reference accuracy**: Verify all source references are correct and accessible
|
|
88
|
+
- **Fact checking**: Cross-reference claims against epic and architecture documents
|
|
89
|
+
|
|
90
|
+
### 9. Dev Agent Implementation Readiness
|
|
91
|
+
|
|
92
|
+
- **Self-contained context**: Can the story be implemented without reading external docs?
|
|
93
|
+
- **Clear instructions**: Are implementation steps unambiguous?
|
|
94
|
+
- **Complete technical context**: Are all required technical details present in Dev Notes?
|
|
95
|
+
- **Missing information**: Identify any critical information gaps
|
|
96
|
+
- **Actionability**: Are all tasks actionable by a development agent?
|
|
97
|
+
|
|
98
|
+
### 10. Generate Validation Report
|
|
99
|
+
|
|
100
|
+
Provide a structured validation report including:
|
|
101
|
+
|
|
102
|
+
#### Template Compliance Issues
|
|
103
|
+
|
|
104
|
+
- Missing sections from story template
|
|
105
|
+
- Unfilled placeholders or template variables
|
|
106
|
+
- Structural formatting issues
|
|
107
|
+
|
|
108
|
+
#### Critical Issues (Must Fix - Story Blocked)
|
|
109
|
+
|
|
110
|
+
- Missing essential information for implementation
|
|
111
|
+
- Inaccurate or unverifiable technical claims
|
|
112
|
+
- Incomplete acceptance criteria coverage
|
|
113
|
+
- Missing required sections
|
|
114
|
+
|
|
115
|
+
#### Should-Fix Issues (Important Quality Improvements)
|
|
116
|
+
|
|
117
|
+
- Unclear implementation guidance
|
|
118
|
+
- Missing security considerations
|
|
119
|
+
- Task sequencing problems
|
|
120
|
+
- Incomplete testing instructions
|
|
121
|
+
|
|
122
|
+
#### Nice-to-Have Improvements (Optional Enhancements)
|
|
123
|
+
|
|
124
|
+
- Additional context that would help implementation
|
|
125
|
+
- Clarifications that would improve efficiency
|
|
126
|
+
- Documentation improvements
|
|
127
|
+
|
|
128
|
+
#### Anti-Hallucination Findings
|
|
129
|
+
|
|
130
|
+
- Unverifiable technical claims
|
|
131
|
+
- Missing source references
|
|
132
|
+
- Inconsistencies with architecture documents
|
|
133
|
+
- Invented libraries, patterns, or standards
|
|
134
|
+
|
|
135
|
+
#### Final Assessment
|
|
136
|
+
|
|
137
|
+
- **GO**: Story is ready for implementation
|
|
138
|
+
- **NO-GO**: Story requires fixes before implementation
|
|
139
|
+
- **Implementation Readiness Score**: 1-10 scale
|
|
140
|
+
- **Confidence Level**: High/Medium/Low for successful implementation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
20251017
|
|
@@ -1,9 +1,38 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
3
|
+
# File: .claude/hooks/bmad-tts-injector.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 BMAD TTS Injection Manager - Patches BMAD agents for TTS integration
|
|
30
|
+
# @context Automatically modifies BMAD agent YAML files to include AgentVibes TTS capabilities
|
|
31
|
+
# @architecture Injects TTS hooks into activation-instructions and core_principles sections
|
|
32
|
+
# @dependencies bmad-core/agents/*.md files, play-tts.sh, bmad-voice-manager.sh
|
|
33
|
+
# @entrypoints Called via bmad-tts-injector.sh {enable|disable|status|restore}
|
|
34
|
+
# @patterns File patching with backup, provider-aware voice mapping, injection markers for idempotency
|
|
35
|
+
# @related play-tts.sh, bmad-voice-manager.sh, .bmad-core/agents/*.md
|
|
7
36
|
#
|
|
8
37
|
|
|
9
38
|
set -e # Exit on error
|
|
@@ -1,10 +1,62 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/bmad-voice-manager.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied, including but not limited to the warranties of
|
|
26
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
27
|
+
# In no event shall the authors or copyright holders be liable for any claim,
|
|
28
|
+
# damages or other liability, whether in an action of contract, tort or
|
|
29
|
+
# otherwise, arising from, out of or in connection with the software or the
|
|
30
|
+
# use or other dealings in the software.
|
|
31
|
+
#
|
|
32
|
+
# ---
|
|
33
|
+
#
|
|
34
|
+
# @fileoverview BMAD Voice Plugin Manager - Maps BMAD agents to unique TTS voices
|
|
35
|
+
# @context Enables each BMAD agent to have its own distinct voice for multi-agent sessions
|
|
36
|
+
# @architecture Markdown table-based voice mapping with enable/disable flag, auto-detection of BMAD
|
|
37
|
+
# @dependencies .claude/plugins/bmad-voices.md (voice mappings), bmad-tts-injector.sh, .bmad-core/ (BMAD installation)
|
|
38
|
+
# @entrypoints Called by /agent-vibes:bmad commands, auto-enabled on BMAD detection
|
|
39
|
+
# @patterns Plugin architecture, auto-enable on dependency detection, state backup/restore on toggle
|
|
40
|
+
# @related bmad-tts-injector.sh, .claude/plugins/bmad-voices.md, .bmad-agent-context file
|
|
2
41
|
|
|
3
42
|
PLUGIN_DIR=".claude/plugins"
|
|
4
43
|
PLUGIN_FILE="$PLUGIN_DIR/bmad-voices.md"
|
|
5
44
|
ENABLED_FLAG="$PLUGIN_DIR/bmad-voices-enabled.flag"
|
|
6
45
|
|
|
7
|
-
# Auto-enable
|
|
46
|
+
# AI NOTE: Auto-enable pattern - When BMAD is detected via .bmad-core/install-manifest.yaml,
|
|
47
|
+
# automatically enable the voice plugin to provide seamless multi-agent voice support.
|
|
48
|
+
# This avoids requiring manual plugin activation after BMAD installation.
|
|
49
|
+
|
|
50
|
+
# @function auto_enable_if_bmad_detected
|
|
51
|
+
# @intent Automatically enable BMAD voice plugin when BMAD framework is detected
|
|
52
|
+
# @why Provide seamless integration - users shouldn't need to manually enable voice mapping
|
|
53
|
+
# @param None
|
|
54
|
+
# @returns None
|
|
55
|
+
# @exitcode 0=auto-enabled, 1=not enabled (already enabled or BMAD not detected)
|
|
56
|
+
# @sideeffects Creates enabled flag file, creates plugin directory
|
|
57
|
+
# @edgecases Only auto-enables if plugin not already enabled, silent operation
|
|
58
|
+
# @calledby get_agent_voice
|
|
59
|
+
# @calls mkdir, touch
|
|
8
60
|
auto_enable_if_bmad_detected() {
|
|
9
61
|
# Check if BMAD is installed
|
|
10
62
|
if [[ -f ".bmad-core/install-manifest.yaml" ]] && [[ ! -f "$ENABLED_FLAG" ]]; then
|
|
@@ -16,7 +68,16 @@ auto_enable_if_bmad_detected() {
|
|
|
16
68
|
return 1
|
|
17
69
|
}
|
|
18
70
|
|
|
19
|
-
#
|
|
71
|
+
# @function get_agent_voice
|
|
72
|
+
# @intent Retrieve TTS voice assigned to specific BMAD agent
|
|
73
|
+
# @why Each BMAD agent needs unique voice for multi-agent conversation differentiation
|
|
74
|
+
# @param $1 {string} agent_id - BMAD agent identifier (pm, dev, qa, architect, etc.)
|
|
75
|
+
# @returns Echoes voice name to stdout, empty string if plugin disabled or agent not found
|
|
76
|
+
# @exitcode Always 0
|
|
77
|
+
# @sideeffects May auto-enable plugin if BMAD detected
|
|
78
|
+
# @edgecases Returns empty string if plugin disabled/missing, parses markdown table syntax
|
|
79
|
+
# @calledby bmad-tts-injector.sh, play-tts.sh when BMAD agent is active
|
|
80
|
+
# @calls auto_enable_if_bmad_detected, grep, awk, sed
|
|
20
81
|
get_agent_voice() {
|
|
21
82
|
local agent_id="$1"
|
|
22
83
|
|
|
@@ -41,7 +102,16 @@ get_agent_voice() {
|
|
|
41
102
|
echo "$voice"
|
|
42
103
|
}
|
|
43
104
|
|
|
44
|
-
#
|
|
105
|
+
# @function get_agent_personality
|
|
106
|
+
# @intent Retrieve TTS personality assigned to specific BMAD agent
|
|
107
|
+
# @why Agents may have distinct speaking styles (friendly, professional, energetic, etc.)
|
|
108
|
+
# @param $1 {string} agent_id - BMAD agent identifier
|
|
109
|
+
# @returns Echoes personality name to stdout, empty string if not found
|
|
110
|
+
# @exitcode Always 0
|
|
111
|
+
# @sideeffects None
|
|
112
|
+
# @edgecases Returns empty string if plugin file missing, parses column 5 of markdown table
|
|
113
|
+
# @calledby bmad-tts-injector.sh for personality-aware voice synthesis
|
|
114
|
+
# @calls grep, awk, sed
|
|
45
115
|
get_agent_personality() {
|
|
46
116
|
local agent_id="$1"
|
|
47
117
|
|
|
@@ -57,12 +127,31 @@ get_agent_personality() {
|
|
|
57
127
|
echo "$personality"
|
|
58
128
|
}
|
|
59
129
|
|
|
60
|
-
#
|
|
130
|
+
# @function is_plugin_enabled
|
|
131
|
+
# @intent Check if BMAD voice plugin is currently enabled
|
|
132
|
+
# @why Allow conditional logic based on plugin state
|
|
133
|
+
# @param None
|
|
134
|
+
# @returns Echoes "true" or "false" to stdout
|
|
135
|
+
# @exitcode Always 0
|
|
136
|
+
# @sideeffects None
|
|
137
|
+
# @edgecases None
|
|
138
|
+
# @calledby show_status, enable_plugin, disable_plugin
|
|
139
|
+
# @calls None (file existence check)
|
|
61
140
|
is_plugin_enabled() {
|
|
62
141
|
[[ -f "$ENABLED_FLAG" ]] && echo "true" || echo "false"
|
|
63
142
|
}
|
|
64
143
|
|
|
65
|
-
#
|
|
144
|
+
# @function enable_plugin
|
|
145
|
+
# @intent Enable BMAD voice plugin and backup current voice settings
|
|
146
|
+
# @why Allow users to switch to per-agent voices while preserving original configuration
|
|
147
|
+
# @param None
|
|
148
|
+
# @returns None
|
|
149
|
+
# @exitcode Always 0
|
|
150
|
+
# @sideeffects Creates flag file, backs up current voice/personality/sentiment to .bmad-previous-settings
|
|
151
|
+
# @sideeffects Creates activation-instructions file for BMAD agents, calls bmad-tts-injector.sh
|
|
152
|
+
# @edgecases Handles missing settings files gracefully with defaults
|
|
153
|
+
# @calledby Main command dispatcher with "enable" argument
|
|
154
|
+
# @calls mkdir, cat, source, list_mappings, bmad-tts-injector.sh
|
|
66
155
|
enable_plugin() {
|
|
67
156
|
mkdir -p "$PLUGIN_DIR"
|
|
68
157
|
|
|
@@ -193,7 +282,16 @@ ACTIVATION_EOF
|
|
|
193
282
|
fi
|
|
194
283
|
}
|
|
195
284
|
|
|
196
|
-
#
|
|
285
|
+
# @function disable_plugin
|
|
286
|
+
# @intent Disable BMAD voice plugin and restore previous voice settings
|
|
287
|
+
# @why Allow users to return to single-voice mode with their original configuration
|
|
288
|
+
# @param None
|
|
289
|
+
# @returns None
|
|
290
|
+
# @exitcode Always 0
|
|
291
|
+
# @sideeffects Removes flag file, restores settings from backup, calls bmad-tts-injector.sh disable
|
|
292
|
+
# @edgecases Handles missing backup file gracefully, warns user if no backup exists
|
|
293
|
+
# @calledby Main command dispatcher with "disable" argument
|
|
294
|
+
# @calls source, rm, echo, bmad-tts-injector.sh
|
|
197
295
|
disable_plugin() {
|
|
198
296
|
BACKUP_FILE="$PLUGIN_DIR/.bmad-previous-settings"
|
|
199
297
|
|
|
@@ -250,7 +348,16 @@ disable_plugin() {
|
|
|
250
348
|
fi
|
|
251
349
|
}
|
|
252
350
|
|
|
253
|
-
#
|
|
351
|
+
# @function list_mappings
|
|
352
|
+
# @intent Display all BMAD agent-to-voice mappings in readable format
|
|
353
|
+
# @why Help users see which voice is assigned to each agent
|
|
354
|
+
# @param None
|
|
355
|
+
# @returns None
|
|
356
|
+
# @exitcode 0=success, 1=plugin file not found
|
|
357
|
+
# @sideeffects Writes formatted output to stdout
|
|
358
|
+
# @edgecases Parses markdown table format, skips header and separator rows
|
|
359
|
+
# @calledby enable_plugin, show_status, main command dispatcher with "list"
|
|
360
|
+
# @calls grep, sed, echo
|
|
254
361
|
list_mappings() {
|
|
255
362
|
if [[ ! -f "$PLUGIN_FILE" ]]; then
|
|
256
363
|
echo "❌ Plugin file not found: $PLUGIN_FILE"
|
|
@@ -271,7 +378,18 @@ list_mappings() {
|
|
|
271
378
|
done
|
|
272
379
|
}
|
|
273
380
|
|
|
274
|
-
#
|
|
381
|
+
# @function set_agent_voice
|
|
382
|
+
# @intent Update voice and personality mapping for specific BMAD agent
|
|
383
|
+
# @why Allow customization of agent voices to user preferences
|
|
384
|
+
# @param $1 {string} agent_id - BMAD agent identifier
|
|
385
|
+
# @param $2 {string} voice - New voice name
|
|
386
|
+
# @param $3 {string} personality - New personality (optional, defaults to "normal")
|
|
387
|
+
# @returns None
|
|
388
|
+
# @exitcode 0=success, 1=plugin file not found or agent not found
|
|
389
|
+
# @sideeffects Modifies plugin file, creates .bak backup
|
|
390
|
+
# @edgecases Validates agent exists before updating
|
|
391
|
+
# @calledby Main command dispatcher with "set" argument
|
|
392
|
+
# @calls grep, sed
|
|
275
393
|
set_agent_voice() {
|
|
276
394
|
local agent_id="$1"
|
|
277
395
|
local voice="$2"
|
|
@@ -294,7 +412,16 @@ set_agent_voice() {
|
|
|
294
412
|
echo "✅ Updated $agent_id → $voice [$personality]"
|
|
295
413
|
}
|
|
296
414
|
|
|
297
|
-
#
|
|
415
|
+
# @function show_status
|
|
416
|
+
# @intent Display plugin status, BMAD detection, and current voice mappings
|
|
417
|
+
# @why Provide comprehensive overview of plugin state for troubleshooting
|
|
418
|
+
# @param None
|
|
419
|
+
# @returns None
|
|
420
|
+
# @exitcode Always 0
|
|
421
|
+
# @sideeffects Writes status information to stdout
|
|
422
|
+
# @edgecases Checks for BMAD installation via manifest file
|
|
423
|
+
# @calledby Main command dispatcher with "status" argument
|
|
424
|
+
# @calls is_plugin_enabled, list_mappings
|
|
298
425
|
show_status() {
|
|
299
426
|
# Check for BMAD installation
|
|
300
427
|
local bmad_installed="false"
|
|
@@ -317,7 +444,16 @@ show_status() {
|
|
|
317
444
|
list_mappings
|
|
318
445
|
}
|
|
319
446
|
|
|
320
|
-
#
|
|
447
|
+
# @function edit_plugin
|
|
448
|
+
# @intent Open plugin configuration file for manual editing
|
|
449
|
+
# @why Allow advanced users to modify voice mappings directly
|
|
450
|
+
# @param None
|
|
451
|
+
# @returns None
|
|
452
|
+
# @exitcode 0=success, 1=plugin file not found
|
|
453
|
+
# @sideeffects Displays file path and instructions
|
|
454
|
+
# @edgecases Does not actually open editor, just provides guidance
|
|
455
|
+
# @calledby Main command dispatcher with "edit" argument
|
|
456
|
+
# @calls echo
|
|
321
457
|
edit_plugin() {
|
|
322
458
|
if [[ ! -f "$PLUGIN_FILE" ]]; then
|
|
323
459
|
echo "❌ Plugin file not found: $PLUGIN_FILE"
|
|
@@ -1,15 +1,58 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
#
|
|
3
|
-
#
|
|
4
|
-
# @context Detects if agent-vibes output style is active
|
|
5
|
-
# @architecture Helper for slash commands to warn users
|
|
6
|
-
# @why Voice commands won't work without agent-vibes output style
|
|
3
|
+
# File: .claude/hooks/check-output-style.sh
|
|
7
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 Output Style Detection - Detects if Agent Vibes output style is active in Claude Code
|
|
35
|
+
# @context Voice commands require the Agent Vibes output style to work properly with automatic TTS
|
|
36
|
+
# @architecture Heuristic detection using environment variables and file system checks
|
|
37
|
+
# @dependencies CLAUDECODE environment variable, .claude/output-styles/agent-vibes.md file
|
|
38
|
+
# @entrypoints Called by slash commands to warn users if output style is incorrect
|
|
39
|
+
# @patterns Environment-based detection, graceful degradation with helpful error messages
|
|
40
|
+
# @related .claude/output-styles/agent-vibes.md, Claude Code output style system
|
|
8
41
|
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
42
|
+
# AI NOTE: Output style detection is heuristic-based because Claude Code does not expose
|
|
43
|
+
# the active output style via environment variables. We check for CLAUDECODE env var and
|
|
44
|
+
# the presence of the agent-vibes.md output style file as indicators.
|
|
12
45
|
|
|
46
|
+
# @function check_output_style
|
|
47
|
+
# @intent Detect if Agent Vibes output style is likely active in Claude Code session
|
|
48
|
+
# @why Voice commands depend on output style hooks that automatically invoke TTS
|
|
49
|
+
# @param None
|
|
50
|
+
# @returns None
|
|
51
|
+
# @exitcode 0=likely using agent-vibes style, 1=not using or cannot detect
|
|
52
|
+
# @sideeffects None (read-only checks)
|
|
53
|
+
# @edgecases Cannot directly detect output style, relies on CLAUDECODE env var and file presence
|
|
54
|
+
# @calledby Main execution block, slash command validation
|
|
55
|
+
# @calls None (direct environment and file checks)
|
|
13
56
|
check_output_style() {
|
|
14
57
|
# Strategy: Check if this script is being called from within a Claude response
|
|
15
58
|
# If CLAUDECODE env var is set, we're in Claude Code
|
|
@@ -36,7 +79,16 @@ check_output_style() {
|
|
|
36
79
|
return 0
|
|
37
80
|
}
|
|
38
81
|
|
|
39
|
-
#
|
|
82
|
+
# @function show_output_style_warning
|
|
83
|
+
# @intent Display helpful warning about enabling Agent Vibes output style
|
|
84
|
+
# @why Users need guidance on how to enable automatic TTS narration
|
|
85
|
+
# @param None
|
|
86
|
+
# @returns None
|
|
87
|
+
# @exitcode Always 0
|
|
88
|
+
# @sideeffects Writes warning message to stdout
|
|
89
|
+
# @edgecases None
|
|
90
|
+
# @calledby Main execution block when check_output_style fails
|
|
91
|
+
# @calls echo
|
|
40
92
|
show_output_style_warning() {
|
|
41
93
|
echo ""
|
|
42
94
|
echo "⚠️ Voice commands require the Agent Vibes output style"
|
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
#
|
|
3
|
-
#
|
|
4
|
-
# @context Shows a gentle reminder once per day to star the repo
|
|
5
|
-
# @architecture Tracks last reminder date in a timestamp file
|
|
6
|
-
# @why Encourage users to support the project without being annoying
|
|
3
|
+
# File: .claude/hooks/github-star-reminder.sh
|
|
7
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 GitHub Star Reminder System - Gentle daily reminder to star repository
|
|
35
|
+
# @context Shows a once-per-day reminder to encourage users to support the project without being annoying
|
|
36
|
+
# @architecture Timestamp-based tracking using daily date comparison in a state file
|
|
37
|
+
# @dependencies date command for timestamp generation
|
|
38
|
+
# @entrypoints Called by play-tts.sh router on every TTS execution, sourced or executed directly
|
|
39
|
+
# @patterns Rate-limiting via file-based state, graceful degradation, user-opt-out support
|
|
40
|
+
# @related .claude/github-star-reminder.txt (state file), .claude/github-star-reminder-disabled.flag (opt-out)
|
|
8
41
|
|
|
9
42
|
# Determine config directory (project-local or global)
|
|
10
43
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
@@ -20,7 +53,16 @@ fi
|
|
|
20
53
|
|
|
21
54
|
GITHUB_REPO="https://github.com/paulpreibisch/AgentVibes"
|
|
22
55
|
|
|
23
|
-
#
|
|
56
|
+
# @function is_reminder_disabled
|
|
57
|
+
# @intent Check if GitHub star reminders have been disabled by the user
|
|
58
|
+
# @why Respect user preferences and provide opt-out mechanism for reminders
|
|
59
|
+
# @param None
|
|
60
|
+
# @returns None
|
|
61
|
+
# @exitcode 0=reminders disabled, 1=reminders enabled
|
|
62
|
+
# @sideeffects Reads flag files from local/global .claude directories
|
|
63
|
+
# @edgecases Checks both flag file and "disabled" text in reminder file for backward compatibility
|
|
64
|
+
# @calledby should_show_reminder
|
|
65
|
+
# @calls cat for reading reminder file content
|
|
24
66
|
is_reminder_disabled() {
|
|
25
67
|
# Check for disable flag file
|
|
26
68
|
local disable_file_local="$CLAUDE_DIR/github-star-reminder-disabled.flag"
|
|
@@ -41,7 +83,16 @@ is_reminder_disabled() {
|
|
|
41
83
|
return 1 # Not disabled
|
|
42
84
|
}
|
|
43
85
|
|
|
44
|
-
#
|
|
86
|
+
# @function should_show_reminder
|
|
87
|
+
# @intent Determine if reminder should be displayed based on date and disable status
|
|
88
|
+
# @why Implement once-per-day rate limiting to avoid annoying users
|
|
89
|
+
# @param None
|
|
90
|
+
# @returns None
|
|
91
|
+
# @exitcode 0=should show, 1=should not show
|
|
92
|
+
# @sideeffects Reads .claude/github-star-reminder.txt for last reminder date
|
|
93
|
+
# @edgecases Shows reminder if file doesn't exist (first run), compares YYYYMMDD format dates
|
|
94
|
+
# @calledby Main execution block
|
|
95
|
+
# @calls is_reminder_disabled, cat, date
|
|
45
96
|
should_show_reminder() {
|
|
46
97
|
# Check if disabled first
|
|
47
98
|
if is_reminder_disabled; then
|
|
@@ -65,7 +116,16 @@ should_show_reminder() {
|
|
|
65
116
|
return 1
|
|
66
117
|
}
|
|
67
118
|
|
|
68
|
-
#
|
|
119
|
+
# @function show_reminder
|
|
120
|
+
# @intent Display friendly GitHub star reminder with opt-out instructions
|
|
121
|
+
# @why Encourage community support while being respectful and non-intrusive
|
|
122
|
+
# @param None
|
|
123
|
+
# @returns None
|
|
124
|
+
# @exitcode Always 0
|
|
125
|
+
# @sideeffects Updates reminder file with current date, writes to stdout
|
|
126
|
+
# @edgecases None
|
|
127
|
+
# @calledby Main execution block when should_show_reminder returns true
|
|
128
|
+
# @calls date, echo
|
|
69
129
|
show_reminder() {
|
|
70
130
|
echo ""
|
|
71
131
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
@@ -1,6 +1,38 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
#
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/language-manager.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied. Use at your own risk. See the Apache License for details.
|
|
26
|
+
#
|
|
27
|
+
# ---
|
|
28
|
+
#
|
|
29
|
+
# @fileoverview Language Manager - Manages multilingual TTS with 30+ language support
|
|
30
|
+
# @context Enables TTS in multiple languages with provider-specific voice recommendations (ElevenLabs multilingual vs Piper native)
|
|
31
|
+
# @architecture Dual-map system: ELEVENLABS_VOICES and PIPER_VOICES for provider-aware voice selection
|
|
32
|
+
# @dependencies provider-manager.sh for active provider detection, .claude/tts-language.txt for state
|
|
33
|
+
# @entrypoints Called by /agent-vibes:language commands, play-tts-*.sh for voice resolution
|
|
34
|
+
# @patterns Provider abstraction, language-to-voice mapping, backward compatibility with legacy LANGUAGE_VOICES
|
|
35
|
+
# @related play-tts-elevenlabs.sh, play-tts-piper.sh, provider-manager.sh, learn-manager.sh
|
|
4
36
|
|
|
5
37
|
# Determine target .claude directory based on context
|
|
6
38
|
# Priority:
|