220 lines
5.7 KiB
Markdown
220 lines
5.7 KiB
Markdown
# /agent-vibes:bmad Command
|
|
|
|
Complete BMAD voice integration - assigns unique voices to each BMAD agent AND makes them speak when activated.
|
|
|
|
## Usage
|
|
|
|
```
|
|
/agent-vibes:bmad <subcommand> [arguments]
|
|
```
|
|
|
|
## Subcommands
|
|
|
|
### `enable`
|
|
|
|
Enables voice assignment for BMAD agents AND automatically injects TTS into agent activation instructions.
|
|
|
|
**What it does:**
|
|
|
|
1. ✅ Enables BMAD voice plugin (assigns voices to agents)
|
|
2. ✅ Backs up current voice/personality settings
|
|
3. ✅ Injects TTS hooks into all BMAD agent files
|
|
4. ✅ BMAD agents will now SPEAK when they activate!
|
|
|
|
**Example:**
|
|
|
|
```
|
|
/agent-vibes:bmad enable
|
|
```
|
|
|
|
**Output:**
|
|
|
|
```
|
|
✅ BMAD voice plugin enabled
|
|
💾 Previous settings backed up:
|
|
Voice: Aria
|
|
Personality: normal
|
|
|
|
📊 BMAD Agent Voice Mappings:
|
|
pm → Matthew Schmitz [professional]
|
|
dev → Jessica Anne Bogart [normal]
|
|
qa → Ralf Eisend [professional]
|
|
|
|
🎤 Automatically enabling TTS for BMAD agents...
|
|
|
|
✅ Injected TTS into: pm.md → Voice: Matthew Schmitz
|
|
✅ Injected TTS into: dev.md → Voice: Jessica Anne Bogart
|
|
✅ Injected TTS into: qa.md → Voice: Ralf Eisend
|
|
|
|
🎉 TTS enabled for 10 agents
|
|
💡 BMAD agents will now speak when activated!
|
|
```
|
|
|
|
### `disable`
|
|
|
|
Disables BMAD voice plugin AND removes TTS from all BMAD agents.
|
|
|
|
**What it does:**
|
|
|
|
1. ✅ Restores your previous voice/personality settings
|
|
2. ✅ Removes TTS hooks from all BMAD agent files
|
|
3. ✅ Disables BMAD voice plugin
|
|
4. ✅ Agents return to normal (silent) behavior
|
|
|
|
**Example:**
|
|
|
|
```
|
|
/agent-vibes:bmad disable
|
|
```
|
|
|
|
**Output:**
|
|
|
|
```
|
|
❌ BMAD voice plugin disabled
|
|
🔄 Restoring previous settings:
|
|
Voice: Aria
|
|
Personality: normal
|
|
|
|
🔇 Automatically disabling TTS for BMAD agents...
|
|
|
|
✅ Removed TTS from: pm.md
|
|
✅ Removed TTS from: dev.md
|
|
✅ Removed TTS from: qa.md
|
|
|
|
✅ TTS disabled for 10 agents
|
|
```
|
|
|
|
### `status`
|
|
|
|
Shows plugin status and current voice mappings.
|
|
|
|
**Example:**
|
|
|
|
```
|
|
/agent-vibes:bmad status
|
|
```
|
|
|
|
**Output:**
|
|
|
|
```
|
|
✅ BMAD voice plugin: ENABLED
|
|
|
|
📊 BMAD Agent Voice Mappings:
|
|
pm → Matthew Schmitz [professional]
|
|
dev → Jessica Anne Bogart [normal]
|
|
qa → Ralf Eisend [professional]
|
|
...
|
|
```
|
|
|
|
### `list`
|
|
|
|
Lists all BMAD agents and their assigned voices.
|
|
|
|
**Example:**
|
|
|
|
```
|
|
/agent-vibes:bmad list
|
|
```
|
|
|
|
### `set <agent-id> <voice> [personality]`
|
|
|
|
Quickly change voice for specific agent.
|
|
|
|
**Examples:**
|
|
|
|
```
|
|
/agent-vibes:bmad set pm "Aria"
|
|
/agent-vibes:bmad set dev "Cowboy Bob" sarcastic
|
|
/agent-vibes:bmad set qa "Northern Terry" professional
|
|
```
|
|
|
|
**Arguments:**
|
|
|
|
- `agent-id`: BMAD agent identifier (pm, dev, qa, architect, po, analyst, sm, ux-expert, bmad-master, bmad-orchestrator)
|
|
- `voice`: Valid AgentVibes voice name
|
|
- `personality` (optional): Personality to apply (default: normal)
|
|
|
|
### `edit`
|
|
|
|
Opens `.claude/plugins/bmad-voices.md` for manual editing.
|
|
|
|
**Example:**
|
|
|
|
```
|
|
/agent-vibes:bmad edit
|
|
```
|
|
|
|
**Usage:**
|
|
Edit the markdown table directly to change voice mappings.
|
|
|
|
## How It Works
|
|
|
|
### Voice Assignment
|
|
|
|
1. **Plugin File**: `.claude/plugins/bmad-voices.md` contains voice-to-agent mappings
|
|
2. **Activation Flag**: `.claude/plugins/bmad-voices-enabled.flag` enables/disables the plugin
|
|
|
|
### TTS Injection (Automatic)
|
|
|
|
When you run `/agent-vibes:bmad enable`, the system automatically:
|
|
|
|
1. **Scans BMAD agents**: Finds all `.md` files in `.bmad-core/agents/` or `bmad-core/agents/`
|
|
2. **Injects TTS hooks**: Modifies each agent's `activation-instructions` YAML block
|
|
3. **Assigns voices**: Uses the voice mapping from the plugin file
|
|
4. **Creates backups**: Saves `.backup-pre-tts` files before modifying
|
|
|
|
**What gets injected:**
|
|
|
|
```yaml
|
|
activation-instructions:
|
|
- STEP 4: Greet user with your name/role and immediately run `*help`
|
|
- # AGENTVIBES-TTS-INJECTION: Speak agent greeting with assigned voice
|
|
- Run this bash command to announce activation: .claude/hooks/play-tts.sh "Agent pm activated and ready" "Matthew Schmitz"
|
|
```
|
|
|
|
**Result**: When you activate a BMAD agent with `/BMad:agents:pm`, you'll hear:
|
|
🔊 "Agent pm activated and ready" (spoken in Matthew Schmitz's voice)
|
|
|
|
### Provider Support
|
|
|
|
The TTS injection works with **any configured TTS provider**:
|
|
|
|
- ✅ **ElevenLabs** - Uses AI voices with full voice mapping
|
|
- ✅ **Piper TTS** - Uses neural voices (free, offline)
|
|
|
|
The system automatically detects your configured provider via `/agent-vibes:provider info` and uses the appropriate TTS engine. You can switch providers anytime with `/agent-vibes:provider switch` and the BMAD agents will continue speaking using the new provider.
|
|
|
|
## Available BMAD Agents
|
|
|
|
| Agent ID | Role | Default Voice |
|
|
| ----------------- | --------------- | ------------------- |
|
|
| pm | Product Manager | Matthew Schmitz |
|
|
| dev | Developer | Jessica Anne Bogart |
|
|
| qa | QA Engineer | Ralf Eisend |
|
|
| architect | Architect | Michael |
|
|
| po | Product Owner | Amy |
|
|
| analyst | Analyst | Lutz Laugh |
|
|
| sm | Scrum Master | Ms. Walker |
|
|
| ux-expert | UX Expert | Aria |
|
|
| bmad-master | BMAD Master | Aria |
|
|
| bmad-orchestrator | Orchestrator | Ms. Walker |
|
|
|
|
## Implementation Details
|
|
|
|
**For AgentVibes Developers:**
|
|
|
|
The plugin integrates with the Agent Vibes output style through bash hooks:
|
|
|
|
```bash
|
|
# Check if BMAD agent is active
|
|
BMAD_AGENT_ID=$(echo "$COMMAND" | grep -oP '/BMad:agents:\K[a-z-]+')
|
|
|
|
# Get voice from plugin if enabled
|
|
if [[ -n "$BMAD_AGENT_ID" ]]; then
|
|
MAPPED_VOICE=$(.claude/hooks/bmad-voice-manager.sh get-voice "$BMAD_AGENT_ID")
|
|
if [[ -n "$MAPPED_VOICE" ]]; then
|
|
.claude/hooks/play-tts.sh "message" "$MAPPED_VOICE"
|
|
fi
|
|
fi
|
|
```
|