agentvibes 5.3.0 → 5.4.0
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/.agentvibes/LITE-MODE.md +236 -0
- package/.agentvibes/README.md +136 -0
- package/.agentvibes/backup/session-start-tts.sh.20251210_212814 +141 -0
- package/.agentvibes/backups/agents/analyst_20260204_144958.md +78 -0
- package/.agentvibes/backups/agents/architect_20260204_144958.md +72 -0
- package/.agentvibes/backups/agents/dev_20260204_144958.md +74 -0
- package/.agentvibes/backups/agents/pm_20260204_144958.md +72 -0
- package/.agentvibes/backups/agents/quick-flow-solo-dev_20260204_144958.md +64 -0
- package/.agentvibes/backups/agents/sm_20260204_144958.md +87 -0
- package/.agentvibes/backups/agents/tea_20260204_144958.md +79 -0
- package/.agentvibes/backups/agents/tech-writer_20260204_144958.md +82 -0
- package/.agentvibes/backups/agents/ux-designer_20260204_144958.md +80 -0
- package/.agentvibes/bmad/bmad-voices.md +69 -69
- package/.agentvibes/config/README-personality-defaults.md +162 -0
- package/.agentvibes/config/mode.txt +1 -0
- package/.agentvibes/config/personality-voice-defaults.default.json +21 -0
- package/.agentvibes/config/save-audio.txt +1 -0
- package/.agentvibes/config/voice-metadata.json +160 -0
- package/.agentvibes/config.json +24 -15
- package/.agentvibes/hooks/help.sh +191 -0
- package/.agentvibes/hooks/post-tool-use-lite.sh +111 -0
- package/.agentvibes/hooks/save-audio-manager.sh +162 -0
- package/.agentvibes/hooks/session-start-full-optimized.sh +102 -0
- package/.agentvibes/hooks/session-start-full.sh +142 -0
- package/.agentvibes/hooks/session-start-lite-v2.sh +34 -0
- package/.agentvibes/hooks/session-start-lite.sh +29 -0
- package/.agentvibes/hooks/stop-lite.sh +115 -0
- package/.agentvibes/hooks/switch-mode.sh +215 -0
- package/.agentvibes/output-styles/audio-summary.md +30 -0
- package/.claude/activation-instructions +54 -54
- package/.claude/audio/voice-samples/piper/alan.wav +0 -0
- package/.claude/audio/voice-samples/piper/amy.wav +0 -0
- package/.claude/audio/voice-samples/piper/charlotte.wav +0 -0
- package/.claude/audio/voice-samples/piper/joe.wav +0 -0
- package/.claude/audio/voice-samples/piper/john.wav +0 -0
- package/.claude/audio/voice-samples/piper/katherine.wav +0 -0
- package/.claude/audio/voice-samples/piper/kristin.wav +0 -0
- package/.claude/audio/voice-samples/piper/linda.wav +0 -0
- package/.claude/audio/voice-samples/piper/marcus.wav +0 -0
- package/.claude/audio/voice-samples/piper/ryan.wav +0 -0
- package/.claude/commands/agent-vibes/add.md +21 -21
- package/.claude/commands/agent-vibes/agent-vibes.md +101 -101
- package/.claude/commands/agent-vibes/agent.md +79 -79
- package/.claude/commands/agent-vibes/background-music.md +111 -111
- package/.claude/commands/agent-vibes/bmad.md +198 -198
- package/.claude/commands/agent-vibes/clean.md +18 -18
- package/.claude/commands/agent-vibes/cleanup.md +18 -18
- package/.claude/commands/agent-vibes/commands.json +145 -145
- package/.claude/commands/agent-vibes/effects.md +97 -97
- package/.claude/commands/agent-vibes/get.md +9 -9
- package/.claude/commands/agent-vibes/hide.md +91 -91
- package/.claude/commands/agent-vibes/language.md +23 -23
- package/.claude/commands/agent-vibes/learn.md +67 -67
- package/.claude/commands/agent-vibes/list.md +13 -13
- package/.claude/commands/agent-vibes/mute.md +37 -37
- package/.claude/commands/agent-vibes/preview.md +17 -17
- package/.claude/commands/agent-vibes/provider.md +68 -68
- package/.claude/commands/agent-vibes/replay-target.md +14 -14
- package/.claude/commands/agent-vibes/sample.md +12 -12
- package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -84
- package/.claude/commands/agent-vibes/set-pretext.md +65 -65
- package/.claude/commands/agent-vibes/set-speed.md +41 -41
- package/.claude/commands/agent-vibes/show.md +84 -84
- package/.claude/commands/agent-vibes/switch.md +87 -87
- package/.claude/commands/agent-vibes/target-voice.md +26 -26
- package/.claude/commands/agent-vibes/target.md +30 -30
- package/.claude/commands/agent-vibes/translate.md +68 -68
- package/.claude/commands/agent-vibes/unmute.md +45 -45
- package/.claude/commands/agent-vibes/whoami.md +7 -7
- package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
- package/.claude/commands/agent-vibes-rdp.md +24 -24
- package/.claude/config/audio-effects.cfg +4 -11
- package/.claude/config/audio-effects.cfg.sample +52 -52
- package/.claude/config/background-music-position.txt +27 -0
- package/.claude/config/background-music-volume.txt +1 -1
- package/.claude/config/background-music.cfg +1 -0
- package/.claude/config/background-music.txt +1 -0
- package/.claude/config/tts-speech-rate.txt +1 -4
- package/.claude/config/tts-verbosity.txt +1 -0
- package/.claude/docs/TERMUX_SETUP.md +408 -408
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/README-TTS-QUEUE.md +135 -135
- package/.claude/hooks/audio-cache-utils.sh +0 -0
- package/.claude/hooks/audio-processor.sh +60 -14
- package/.claude/hooks/background-music-manager.sh +0 -0
- package/.claude/hooks/bmad-party-manager.sh +225 -0
- package/.claude/hooks/bmad-speak-enhanced.sh +0 -0
- package/.claude/hooks/bmad-speak.sh +6 -13
- package/.claude/hooks/bmad-tts-injector.sh +0 -0
- package/.claude/hooks/bmad-voice-manager.sh +0 -0
- package/.claude/hooks/clawdbot-receiver-SECURE.sh +25 -23
- package/.claude/hooks/clawdbot-receiver.sh +4 -28
- package/.claude/hooks/clean-audio-cache.sh +0 -0
- package/.claude/hooks/cleanup-cache.sh +0 -0
- package/.claude/hooks/configure-rdp-mode.sh +0 -0
- package/.claude/hooks/download-extra-voices.sh +0 -0
- package/.claude/hooks/effects-manager.sh +0 -0
- package/.claude/hooks/github-star-reminder.sh +0 -0
- package/.claude/hooks/language-manager.sh +0 -0
- package/.claude/hooks/learn-manager.sh +0 -0
- package/.claude/hooks/macos-voice-manager.sh +0 -0
- package/.claude/hooks/migrate-background-music.sh +0 -0
- package/.claude/hooks/migrate-to-agentvibes.sh +0 -0
- package/.claude/hooks/optimize-background-music.sh +0 -0
- package/.claude/hooks/personality-manager.sh +0 -0
- package/.claude/hooks/piper-download-voices.sh +0 -0
- package/.claude/hooks/piper-installer.sh +1 -1
- package/.claude/hooks/piper-multispeaker-registry.sh +0 -0
- package/.claude/hooks/piper-voice-manager.sh +0 -0
- package/.claude/hooks/play-tts-enhanced.sh +0 -0
- package/.claude/hooks/play-tts-macos.sh +6 -12
- package/.claude/hooks/play-tts-piper.sh +50 -79
- package/.claude/hooks/play-tts-soprano.sh +9 -43
- package/.claude/hooks/play-tts-ssh-remote.sh +43 -215
- package/.claude/hooks/play-tts-termux-ssh.sh +0 -0
- package/.claude/hooks/play-tts.sh +31 -31
- package/.claude/hooks/post-response.sh +41 -0
- package/.claude/hooks/prepare-release.sh +0 -0
- package/.claude/hooks/provider-commands.sh +0 -0
- package/.claude/hooks/provider-manager.sh +0 -0
- package/.claude/hooks/replay-target-audio.sh +0 -0
- package/.claude/hooks/requirements.txt +6 -6
- package/.claude/hooks/sentiment-manager.sh +0 -0
- package/.claude/hooks/session-start-tts.sh +56 -39
- package/.claude/hooks/soprano-gradio-synth.py +139 -139
- package/.claude/hooks/speed-manager.sh +0 -0
- package/.claude/hooks/stop.sh +63 -0
- package/.claude/hooks/termux-installer.sh +0 -0
- package/.claude/hooks/translate-manager.sh +0 -0
- package/.claude/hooks/translator.py +237 -237
- package/.claude/hooks/tts-queue-worker.sh +0 -0
- package/.claude/hooks/tts-queue.sh +0 -0
- package/.claude/hooks/verbosity-manager.sh +0 -0
- package/.claude/hooks/voice-manager.sh +26 -4
- package/.claude/hooks-windows/audio-cache-utils.ps1 +119 -119
- package/.claude/hooks-windows/bmad-party-speak.ps1 +278 -278
- package/.claude/hooks-windows/bmad-speak.ps1 +264 -264
- package/.claude/hooks-windows/clean-audio-cache.ps1 +53 -53
- package/.claude/hooks-windows/effects-manager.ps1 +294 -294
- package/.claude/hooks-windows/language-manager.ps1 +193 -193
- package/.claude/hooks-windows/learn-manager.ps1 +241 -241
- package/.claude/hooks-windows/personality-manager.ps1 +266 -266
- package/.claude/hooks-windows/play-tts-soprano.ps1 +5 -5
- package/.claude/hooks-windows/play-tts-termux-ssh.ps1 +138 -138
- package/.claude/hooks-windows/play-tts-windows-piper.ps1 +164 -0
- package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -0
- package/.claude/hooks-windows/play-tts.ps1 +104 -513
- package/.claude/hooks-windows/provider-manager.ps1 +158 -192
- package/.claude/hooks-windows/session-start-tts.ps1 +55 -46
- package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
- package/.claude/hooks-windows/speed-manager.ps1 +166 -166
- package/.claude/hooks-windows/voice-manager-windows.ps1 +176 -260
- package/.claude/output-styles/agent-vibes.md +202 -202
- package/.claude/personalities/angry.md +14 -14
- package/.claude/personalities/annoying.md +14 -14
- package/.claude/personalities/crass.md +14 -14
- package/.claude/personalities/dramatic.md +14 -14
- package/.claude/personalities/dry-humor.md +50 -50
- package/.claude/personalities/flirty.md +20 -20
- package/.claude/personalities/funny.md +14 -14
- package/.claude/personalities/grandpa.md +32 -32
- package/.claude/personalities/millennial.md +14 -14
- package/.claude/personalities/moody.md +14 -14
- package/.claude/personalities/normal.md +16 -16
- package/.claude/personalities/pirate.md +14 -14
- package/.claude/personalities/poetic.md +14 -14
- package/.claude/personalities/professional.md +14 -14
- package/.claude/personalities/rapper.md +55 -55
- package/.claude/personalities/robot.md +14 -14
- package/.claude/personalities/sarcastic.md +38 -38
- package/.claude/personalities/sassy.md +14 -14
- package/.claude/personalities/surfer-dude.md +14 -14
- package/.claude/personalities/zen.md +14 -14
- package/.claude/piper-voices-dir.txt +1 -0
- package/.claude/settings.json +25 -15
- package/.claude/verbosity.txt +1 -1
- package/.clawdbot/README.md +105 -105
- package/.clawdbot/skill/SKILL.md +149 -145
- package/.mcp.json +30 -11
- package/CLAUDE.md +170 -215
- package/README.md +206 -525
- package/RELEASE_NOTES.md +1132 -1976
- package/WINDOWS-SETUP.md +208 -208
- package/bin/agent-vibes +0 -0
- package/bin/agentvibes-voice-browser.js +64 -1289
- package/bin/agentvibes.js +0 -0
- package/bin/ensure-soprano-running.sh +43 -0
- package/bin/mcp-server.js +121 -121
- package/bin/mcp-server.sh +0 -0
- package/bin/test-bmad-pr +78 -78
- package/mcp-server/QUICK_START.md +203 -203
- package/mcp-server/README.md +345 -345
- package/mcp-server/WINDOWS_SETUP.md +260 -260
- package/mcp-server/docs/troubleshooting-audio.md +313 -313
- package/mcp-server/examples/claude_desktop_config.json +11 -11
- package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
- package/mcp-server/examples/custom_instructions.md +169 -169
- package/mcp-server/install-deps.js +130 -130
- package/mcp-server/pyproject.toml +52 -52
- package/mcp-server/requirements.txt +2 -2
- package/mcp-server/server.py +1451 -1578
- package/mcp-server/test_server.py +395 -395
- package/package.json +1 -3
- package/setup-windows.ps1 +815 -815
- package/src/installer.js +42 -5
- package/templates/agentvibes-receiver.sh +158 -483
- package/templates/audio/welcome-music.mp3 +0 -0
- package/.agentvibes/bmad-voice-map.json +0 -104
- package/.agentvibes/copilot-sessions.log +0 -4
- package/.claude/config/audio-effects-bmad.cfg +0 -50
- package/.claude/config/background-music-enabled.txt +0 -1
- package/.claude/config/intro-text.txt +0 -1
- package/.claude/config/personality.txt +0 -1
- package/.claude/config/piper-speech-rate.txt +0 -4
- package/.claude/config/piper-target-speech-rate.txt +0 -1
- package/.claude/config/reverb-level.txt +0 -1
- package/.claude/config/tts-target-speech-rate.txt +0 -1
- package/voice-assignments.json +0 -8245
- /package/{.claude → .agentvibes}/config/agentvibes.json +0 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# AgentVibes Lite Mode
|
|
2
|
+
|
|
3
|
+
**Minimal overhead TTS for power users and parallel sessions**
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Lite Mode is a streamlined version of AgentVibes designed for users who want:
|
|
8
|
+
- **Minimal token overhead** (~50 tokens vs ~500 in full mode)
|
|
9
|
+
- **Zero conversation clutter** (silent operation, no stdout noise)
|
|
10
|
+
- **Maximum performance** (no file saving, direct TTS)
|
|
11
|
+
- **Parallel session support** (completion TTS to know which session finished)
|
|
12
|
+
|
|
13
|
+
Perfect for Alex's use case and other power users running multiple Claude sessions.
|
|
14
|
+
|
|
15
|
+
## Key Differences
|
|
16
|
+
|
|
17
|
+
| Feature | Lite Mode | Full Mode |
|
|
18
|
+
|---------|-----------|-----------|
|
|
19
|
+
| **Session tokens** | ~50 | ~500 (2000 with MCP) |
|
|
20
|
+
| **Acknowledgment TTS** | ❌ Disabled | ✅ Enabled |
|
|
21
|
+
| **Completion TTS** | ✅ Smart (token-aware) | ✅ Always on |
|
|
22
|
+
| **Tool calls** | 0 per turn | 2+ per turn |
|
|
23
|
+
| **.wav files** | ❌ None | ✅ Saved |
|
|
24
|
+
| **Stdout output** | ❌ Silent | Verbose |
|
|
25
|
+
| **Verbosity** | Auto-scales | User configured |
|
|
26
|
+
| **Best for** | Parallel sessions, minimal overhead | Feature-rich experience |
|
|
27
|
+
|
|
28
|
+
## How It Works
|
|
29
|
+
|
|
30
|
+
### Full Mode (Current)
|
|
31
|
+
```
|
|
32
|
+
User prompt → Claude receives 500-token SessionStart hook
|
|
33
|
+
→ Claude calls Bash tool for acknowledgment TTS
|
|
34
|
+
→ Claude does work
|
|
35
|
+
→ Claude calls Bash tool for completion TTS
|
|
36
|
+
→ Creates .wav files, shows verbose output
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Lite Mode (New)
|
|
40
|
+
```
|
|
41
|
+
User prompt → Claude receives 50-token instruction
|
|
42
|
+
→ Claude does work (no acknowledgment)
|
|
43
|
+
→ Claude adds "Audio Summary: [text]" at end
|
|
44
|
+
→ PostToolUse hook extracts summary
|
|
45
|
+
→ Direct TTS in background (no files, silent)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Architecture
|
|
49
|
+
|
|
50
|
+
### Architecture
|
|
51
|
+
```
|
|
52
|
+
.agentvibes/ # Source of truth - actual implementations
|
|
53
|
+
├── hooks/
|
|
54
|
+
│ ├── session-start-lite.sh # Lite mode protocol (~50 tokens)
|
|
55
|
+
│ ├── session-start-full.sh # Full mode protocol (~500 tokens)
|
|
56
|
+
│ ├── post-tool-use-lite.sh # Lite mode completion TTS
|
|
57
|
+
│ ├── switch-mode.sh # Mode switcher (just updates mode.txt)
|
|
58
|
+
│ └── help.sh # Help/diagnostics
|
|
59
|
+
├── config/
|
|
60
|
+
│ └── mode.txt # Current mode (lite|full)
|
|
61
|
+
└── output-styles/
|
|
62
|
+
└── audio-summary.md # Reference documentation
|
|
63
|
+
|
|
64
|
+
.claude/ # Claude Code's directory
|
|
65
|
+
├── hooks/
|
|
66
|
+
│ ├── session-start-tts.sh # Thin wrapper - delegates to .agentvibes/
|
|
67
|
+
│ ├── post-tool-use.sh # Thin wrapper - delegates to .agentvibes/
|
|
68
|
+
│ └── play-tts.sh # Main TTS script
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**How it works:**
|
|
72
|
+
- `.claude/hooks/` contains thin wrapper scripts
|
|
73
|
+
- Wrappers read `.agentvibes/config/mode.txt`
|
|
74
|
+
- Based on mode, they source the appropriate script from `.agentvibes/hooks/`
|
|
75
|
+
- **No copying needed!** Mode switching just updates `mode.txt`
|
|
76
|
+
|
|
77
|
+
### Mode Switching
|
|
78
|
+
|
|
79
|
+
**Claude Code (Slash Commands):**
|
|
80
|
+
```bash
|
|
81
|
+
/agent-vibes:help # Show status & available commands
|
|
82
|
+
/agent-vibes:mode # Show current mode
|
|
83
|
+
/agent-vibes:mode lite # Switch to lite mode
|
|
84
|
+
/agent-vibes:mode full # Switch to full mode
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Claude Desktop (MCP Tools):**
|
|
88
|
+
```python
|
|
89
|
+
help() # Show status, settings & diagnostics
|
|
90
|
+
get_mode() # Show current mode
|
|
91
|
+
set_mode(mode='lite') # Switch to lite mode
|
|
92
|
+
set_mode(mode='full') # Switch to full mode
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Installation
|
|
96
|
+
|
|
97
|
+
1. **Install AgentVibes normally**
|
|
98
|
+
```bash
|
|
99
|
+
npx agentvibes install
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
2. **Switch to lite mode** (optional)
|
|
103
|
+
```bash
|
|
104
|
+
/agent-vibes:mode lite
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
3. **Restart Claude session** to apply changes
|
|
108
|
+
|
|
109
|
+
## Smart Verbosity
|
|
110
|
+
|
|
111
|
+
Lite mode automatically adjusts TTS based on response length:
|
|
112
|
+
|
|
113
|
+
- **< 50 tokens**: Silent (no TTS)
|
|
114
|
+
- **50-200 tokens**: "Done"
|
|
115
|
+
- **> 200 tokens**: Full audio summary
|
|
116
|
+
|
|
117
|
+
Configure thresholds via environment variables:
|
|
118
|
+
```bash
|
|
119
|
+
export AGENTVIBES_MIN_TOKENS=50
|
|
120
|
+
export AGENTVIBES_SHORT_TOKENS=200
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Safety Features
|
|
124
|
+
|
|
125
|
+
### Zero-Copy Architecture
|
|
126
|
+
Mode switching is instant because there's no file copying:
|
|
127
|
+
- Wrapper hooks in `.claude/hooks/` are permanent
|
|
128
|
+
- They read `.agentvibes/config/mode.txt` every time
|
|
129
|
+
- Mode switch just updates one file: `mode.txt`
|
|
130
|
+
- Changes take effect on next session restart
|
|
131
|
+
|
|
132
|
+
### Help & Diagnostics
|
|
133
|
+
```bash
|
|
134
|
+
/agent-vibes:help
|
|
135
|
+
```
|
|
136
|
+
Shows:
|
|
137
|
+
- Current mode (lite/full)
|
|
138
|
+
- TTS status (working/issues/muted)
|
|
139
|
+
- Current settings (voice, provider, verbosity)
|
|
140
|
+
- Available commands
|
|
141
|
+
- Automatic issue detection with fix suggestions
|
|
142
|
+
|
|
143
|
+
## Performance Comparison
|
|
144
|
+
|
|
145
|
+
### Token Usage (per session)
|
|
146
|
+
- **Full Mode**: ~500 tokens (SessionStart) + MCP tools (~1500) = **2000 tokens**
|
|
147
|
+
- **Lite Mode**: ~50 tokens (SessionStart) + 0 tool calls = **50 tokens**
|
|
148
|
+
- **Savings**: **97.5% reduction**
|
|
149
|
+
|
|
150
|
+
### Latency
|
|
151
|
+
- **Full Mode**: 2 tool calls × ~200ms = 400ms overhead
|
|
152
|
+
- **Lite Mode**: 0 tool calls = 0ms overhead
|
|
153
|
+
- **Result**: Faster responses
|
|
154
|
+
|
|
155
|
+
### File System
|
|
156
|
+
- **Full Mode**: Creates .wav file for every TTS
|
|
157
|
+
- **Lite Mode**: No files (direct TTS)
|
|
158
|
+
- **Result**: No disk I/O
|
|
159
|
+
|
|
160
|
+
## Use Cases
|
|
161
|
+
|
|
162
|
+
### ✅ When to Use Lite Mode
|
|
163
|
+
- Running multiple Claude sessions in parallel
|
|
164
|
+
- Working on token-constrained tasks
|
|
165
|
+
- Prefer minimal conversation clutter
|
|
166
|
+
- Only need completion notifications
|
|
167
|
+
- Want maximum performance
|
|
168
|
+
|
|
169
|
+
### ✅ When to Use Full Mode
|
|
170
|
+
- Want personality-driven TTS
|
|
171
|
+
- Using language learning mode
|
|
172
|
+
- Enjoy audio effects & background music
|
|
173
|
+
- Prefer rich, expressive feedback
|
|
174
|
+
- Using BMAD party mode
|
|
175
|
+
|
|
176
|
+
## Technical Details
|
|
177
|
+
|
|
178
|
+
### Session-Start Hook (Lite)
|
|
179
|
+
```bash
|
|
180
|
+
# ~50 tokens vs ~500 in full mode
|
|
181
|
+
cat <<'EOF'
|
|
182
|
+
# AgentVibes Lite Mode
|
|
183
|
+
|
|
184
|
+
**At the end of EVERY response, add:**
|
|
185
|
+
|
|
186
|
+
**Audio Summary:** [Brief 1-sentence summary]
|
|
187
|
+
|
|
188
|
+
This will be spoken automatically via TTS.
|
|
189
|
+
EOF
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Post-Tool-Use Hook (Lite)
|
|
193
|
+
- Greps for "Audio Summary:" marker
|
|
194
|
+
- Counts tokens in response
|
|
195
|
+
- Skips TTS if response < 50 tokens
|
|
196
|
+
- Simplifies to "Done" if < 200 tokens
|
|
197
|
+
- Calls TTS directly (say/espeak/spd-say)
|
|
198
|
+
- Runs in background
|
|
199
|
+
- Completely silent (no stdout)
|
|
200
|
+
|
|
201
|
+
### Full Mode Protection
|
|
202
|
+
- Original hooks backed up to `.agentvibes/hooks/session-start-full.sh`
|
|
203
|
+
- Switching to full mode restores original behavior
|
|
204
|
+
- Zero impact on existing users
|
|
205
|
+
- Full mode remains the default
|
|
206
|
+
|
|
207
|
+
## FAQ
|
|
208
|
+
|
|
209
|
+
### Q: Will this affect existing AgentVibes installations?
|
|
210
|
+
**A:** No. Full mode is the default. Lite mode is opt-in.
|
|
211
|
+
|
|
212
|
+
### Q: Can I switch back and forth?
|
|
213
|
+
**A:** Yes, anytime with `/agent-vibes:mode full` or `/agent-vibes:mode lite`
|
|
214
|
+
|
|
215
|
+
### Q: Do I lose features in lite mode?
|
|
216
|
+
**A:** Yes. Personalities, learning mode, audio effects, background music, and acknowledgment TTS are disabled. Only smart completion TTS works.
|
|
217
|
+
|
|
218
|
+
### Q: What if the mode switcher breaks something?
|
|
219
|
+
**A:** Use `/agent-vibes:mode restore` to rollback, or manually copy from `.agentvibes/backup/`
|
|
220
|
+
|
|
221
|
+
### Q: Can I customize the token thresholds?
|
|
222
|
+
**A:** Yes, set `AGENTVIBES_MIN_TOKENS` and `AGENTVIBES_SHORT_TOKENS` environment variables.
|
|
223
|
+
|
|
224
|
+
### Q: Does this work with MCP?
|
|
225
|
+
**A:** Yes! Lite mode reduces SessionStart tokens regardless of MCP. However, MCP tool definitions still add ~1500 tokens per turn (not our control).
|
|
226
|
+
|
|
227
|
+
## Credits
|
|
228
|
+
|
|
229
|
+
Designed based on feedback from Alex Verhovsky, who identified the need for a minimal-overhead TTS mode for power users running parallel Claude sessions.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
**Full Mode**: Feature-rich, expressive, personality-driven
|
|
234
|
+
**Lite Mode**: Minimal, performant, silent, essential
|
|
235
|
+
|
|
236
|
+
Choose the mode that fits your workflow.
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# .agentvibes/ Directory
|
|
2
|
+
|
|
3
|
+
This directory contains **AgentVibes-specific configuration and state files** for your project.
|
|
4
|
+
|
|
5
|
+
## Why `.agentvibes/`?
|
|
6
|
+
|
|
7
|
+
Starting with **AgentVibes v2.10.0**, all AgentVibes configuration has been consolidated into this directory to:
|
|
8
|
+
|
|
9
|
+
1. **Avoid namespace collisions** - `.claude/plugins/` was confusing because Claude Code may introduce official plugins in the future
|
|
10
|
+
2. **Clear ownership** - `.agentvibes/` is clearly an AgentVibes-managed directory
|
|
11
|
+
3. **Better organization** - All AgentVibes state in one predictable location
|
|
12
|
+
4. **Easier maintenance** - Users know exactly where to find AgentVibes files
|
|
13
|
+
|
|
14
|
+
## Directory Structure
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
.agentvibes/
|
|
18
|
+
├── bmad/ # BMAD integration
|
|
19
|
+
│ ├── bmad-voices.md # Agent-to-voice mappings
|
|
20
|
+
│ ├── bmad-voices-enabled.flag # BMAD plugin enabled/disabled
|
|
21
|
+
│ ├── bmad-party-mode-disabled.flag # Party mode opt-out (optional)
|
|
22
|
+
│ └── .bmad-previous-settings # Backup of pre-BMAD voice settings
|
|
23
|
+
└── config/ # AgentVibes configuration
|
|
24
|
+
├── agentvibes.json # Pretext configuration
|
|
25
|
+
├── personality-voice-defaults.json # Piper voice defaults per personality
|
|
26
|
+
└── README-personality-defaults.md # Documentation for voice defaults
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## File Purposes
|
|
30
|
+
|
|
31
|
+
### bmad/
|
|
32
|
+
|
|
33
|
+
**`bmad-voices.md`**
|
|
34
|
+
- Maps BMAD agent IDs to TTS voices
|
|
35
|
+
- Format: Markdown table with columns for agent ID, name, intro, Piper TTS voice, Piper voice, personality
|
|
36
|
+
- Edited via `/agent-vibes:bmad edit` or manually
|
|
37
|
+
- Used for multi-agent voice conversations in BMAD party mode
|
|
38
|
+
|
|
39
|
+
**`bmad-voices-enabled.flag`**
|
|
40
|
+
- Presence indicates BMAD voice plugin is active
|
|
41
|
+
- Created automatically when BMAD is detected
|
|
42
|
+
- Removed when plugin is disabled
|
|
43
|
+
|
|
44
|
+
**`bmad-party-mode-disabled.flag`** (optional)
|
|
45
|
+
- Created via `/agent-vibes:bmad-party disable`
|
|
46
|
+
- Disables automatic TTS for BMAD agent responses
|
|
47
|
+
- Remove to re-enable party mode
|
|
48
|
+
|
|
49
|
+
**`.bmad-previous-settings`**
|
|
50
|
+
- Backup of voice/personality/sentiment before enabling BMAD plugin
|
|
51
|
+
- Used to restore settings when disabling BMAD plugin
|
|
52
|
+
- Format: Simple key=value pairs
|
|
53
|
+
|
|
54
|
+
### config/
|
|
55
|
+
|
|
56
|
+
**`agentvibes.json`**
|
|
57
|
+
- Stores the TTS pretext (prefix spoken before all messages)
|
|
58
|
+
- Set via `/agent-vibes:set-pretext`
|
|
59
|
+
- Example: `{"pretext": "AgentVibes"}`
|
|
60
|
+
|
|
61
|
+
**`personality-voice-defaults.json`**
|
|
62
|
+
- Default Piper TTS voice assignments for each personality
|
|
63
|
+
- Maps personality names (angry, flirty, zen, etc.) to specific Piper voices
|
|
64
|
+
- Used when switching personalities via `/agent-vibes:personality`
|
|
65
|
+
- Customizable by editing the JSON file
|
|
66
|
+
|
|
67
|
+
**`README-personality-defaults.md`**
|
|
68
|
+
- Documentation explaining how personality voice defaults work
|
|
69
|
+
- Installation and customization guide
|
|
70
|
+
- Voice selection criteria
|
|
71
|
+
|
|
72
|
+
## Migration from `.claude/`
|
|
73
|
+
|
|
74
|
+
If you're upgrading from an earlier version:
|
|
75
|
+
|
|
76
|
+
- Old location: `.claude/config/agentvibes.json` → New: `.agentvibes/config/agentvibes.json`
|
|
77
|
+
- Old location: `.claude/plugins/bmad-voices-enabled.flag` → New: `.agentvibes/bmad/bmad-voices-enabled.flag`
|
|
78
|
+
- Old location: `.claude/config/bmad-voices.md` → New: `.agentvibes/bmad/bmad-voices.md`
|
|
79
|
+
|
|
80
|
+
AgentVibes automatically migrates these files on upgrade.
|
|
81
|
+
|
|
82
|
+
## Gitignore
|
|
83
|
+
|
|
84
|
+
The entire `.agentvibes/` directory is gitignored by default because it contains:
|
|
85
|
+
- User-specific configuration (pretext, voice preferences)
|
|
86
|
+
- Runtime state (enabled flags, previous settings)
|
|
87
|
+
- Project-local TTS settings
|
|
88
|
+
|
|
89
|
+
**Never commit `.agentvibes/` to version control.**
|
|
90
|
+
|
|
91
|
+
## Relationship to `.claude/`
|
|
92
|
+
|
|
93
|
+
**`.claude/`** = Claude Code's official directory
|
|
94
|
+
- Contains hooks, commands, agents, personalities
|
|
95
|
+
- Most files are tracked in git (part of your project setup)
|
|
96
|
+
|
|
97
|
+
**`.agentvibes/`** = AgentVibes runtime state
|
|
98
|
+
- User-specific TTS configuration
|
|
99
|
+
- BMAD integration state
|
|
100
|
+
- Never tracked in git
|
|
101
|
+
|
|
102
|
+
## Troubleshooting
|
|
103
|
+
|
|
104
|
+
**BMAD voices not working?**
|
|
105
|
+
```bash
|
|
106
|
+
# Check if BMAD plugin is enabled
|
|
107
|
+
ls -la .agentvibes/bmad/bmad-voices-enabled.flag
|
|
108
|
+
|
|
109
|
+
# View current voice mappings
|
|
110
|
+
cat .agentvibes/bmad/bmad-voices.md
|
|
111
|
+
|
|
112
|
+
# Check plugin status
|
|
113
|
+
/agent-vibes:bmad status
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Pretext not being spoken?**
|
|
117
|
+
```bash
|
|
118
|
+
# Check pretext configuration
|
|
119
|
+
cat .agentvibes/config/agentvibes.json
|
|
120
|
+
|
|
121
|
+
# Should show: {"pretext": "YourPretext"}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Migration issues?**
|
|
125
|
+
If you're experiencing issues after upgrading, manually run the migration:
|
|
126
|
+
```bash
|
|
127
|
+
# Remove old config (after backup)
|
|
128
|
+
mv .claude/config/agentvibes.json .agentvibes/config/
|
|
129
|
+
mv .claude/plugins/bmad-voices-enabled.flag .agentvibes/bmad/
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## See Also
|
|
133
|
+
|
|
134
|
+
- [AgentVibes Documentation](../README.md)
|
|
135
|
+
- [BMAD Voice Integration](../docs/bmad-v6-support.md)
|
|
136
|
+
- [TTS Architecture](../docs/architecture/provider-system.md)
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/session-start-tts.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes SessionStart Hook - Injects TTS Protocol Instructions
|
|
6
|
+
#
|
|
7
|
+
# This hook outputs TTS protocol instructions to stdout, which Claude Code
|
|
8
|
+
# adds to the conversation context at session start.
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
# Fix locale warnings
|
|
12
|
+
export LC_ALL=C
|
|
13
|
+
|
|
14
|
+
# Get script directory
|
|
15
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
16
|
+
|
|
17
|
+
# Check if AgentVibes is installed
|
|
18
|
+
if [[ ! -f "$SCRIPT_DIR/play-tts.sh" ]]; then
|
|
19
|
+
# AgentVibes not installed, don't inject anything
|
|
20
|
+
exit 0
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# Check for sentiment (priority) or personality (fallback)
|
|
24
|
+
SENTIMENT=$(cat .claude/tts-sentiment.txt 2>/dev/null || cat ~/.claude/tts-sentiment.txt 2>/dev/null || echo "")
|
|
25
|
+
PERSONALITY=$(cat .claude/tts-personality.txt 2>/dev/null || cat ~/.claude/tts-personality.txt 2>/dev/null || echo "normal")
|
|
26
|
+
|
|
27
|
+
# Determine which to use
|
|
28
|
+
if [[ -n "$SENTIMENT" ]]; then
|
|
29
|
+
STYLE_MODE="sentiment"
|
|
30
|
+
STYLE_NAME="$SENTIMENT"
|
|
31
|
+
else
|
|
32
|
+
STYLE_MODE="personality"
|
|
33
|
+
STYLE_NAME="$PERSONALITY"
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# Get verbosity level (Issue #32)
|
|
37
|
+
VERBOSITY=$(cat .claude/tts-verbosity.txt 2>/dev/null || cat ~/.claude/tts-verbosity.txt 2>/dev/null || echo "low")
|
|
38
|
+
|
|
39
|
+
# Output TTS protocol instructions to stdout
|
|
40
|
+
# Claude Code will add this to the conversation context
|
|
41
|
+
cat <<'EOF'
|
|
42
|
+
|
|
43
|
+
# AgentVibes TTS Protocol
|
|
44
|
+
|
|
45
|
+
**CRITICAL: You MUST execute TTS at TWO points for EVERY user interaction:**
|
|
46
|
+
|
|
47
|
+
## 1. ACKNOWLEDGMENT (Start of Every Task)
|
|
48
|
+
Immediately after receiving ANY user message:
|
|
49
|
+
1. Generate a brief, unique acknowledgment message
|
|
50
|
+
2. Execute: `Bash: .claude/hooks/play-tts.sh "[your message]"`
|
|
51
|
+
3. Then proceed with the work
|
|
52
|
+
|
|
53
|
+
## 2. COMPLETION (End of Every Task)
|
|
54
|
+
After finishing the task:
|
|
55
|
+
1. Generate a brief, unique completion message
|
|
56
|
+
2. Execute: `Bash: .claude/hooks/play-tts.sh "[your message]"`
|
|
57
|
+
|
|
58
|
+
## Rules
|
|
59
|
+
- Use Bash tool to execute play-tts.sh
|
|
60
|
+
- Keep messages under 150 characters
|
|
61
|
+
- Generate unique messages each time
|
|
62
|
+
- Use relative path: .claude/hooks/play-tts.sh
|
|
63
|
+
- This is NOT optional - follow for EVERY interaction
|
|
64
|
+
|
|
65
|
+
## Example
|
|
66
|
+
```
|
|
67
|
+
User: "check git status"
|
|
68
|
+
[Bash: .claude/hooks/play-tts.sh "I'll check that for you."]
|
|
69
|
+
[... do work ...]
|
|
70
|
+
[Bash: .claude/hooks/play-tts.sh "Done! All clean."]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
EOF
|
|
74
|
+
|
|
75
|
+
# Add verbosity-specific protocol (Issue #32)
|
|
76
|
+
case "$VERBOSITY" in
|
|
77
|
+
low)
|
|
78
|
+
cat <<'EOF'
|
|
79
|
+
## Verbosity: LOW (Minimal)
|
|
80
|
+
- Speak only at acknowledgment (start) and completion (end)
|
|
81
|
+
- Do NOT speak reasoning, decisions, or findings during work
|
|
82
|
+
- Keep it quiet and focused
|
|
83
|
+
|
|
84
|
+
EOF
|
|
85
|
+
;;
|
|
86
|
+
|
|
87
|
+
medium)
|
|
88
|
+
cat <<'EOF'
|
|
89
|
+
## Verbosity: MEDIUM (Balanced)
|
|
90
|
+
- Speak at acknowledgment and completion (always)
|
|
91
|
+
- Also speak major decisions and key findings during work
|
|
92
|
+
- Use emoji markers for automatic TTS:
|
|
93
|
+
🤔 [decision text] - Major decisions (e.g., "🤔 I'll use grep to search all files")
|
|
94
|
+
✓ [finding text] - Key findings (e.g., "✓ Found 12 instances at line 1323")
|
|
95
|
+
|
|
96
|
+
Example:
|
|
97
|
+
```
|
|
98
|
+
User: "Find all TODO comments"
|
|
99
|
+
[TTS: Acknowledgment]
|
|
100
|
+
🤔 I'll use grep to search for TODO comments
|
|
101
|
+
[Work happens...]
|
|
102
|
+
✓ Found 12 TODO comments across 5 files
|
|
103
|
+
[TTS: Completion]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
EOF
|
|
107
|
+
;;
|
|
108
|
+
|
|
109
|
+
high)
|
|
110
|
+
cat <<'EOF'
|
|
111
|
+
## Verbosity: HIGH (Maximum Transparency)
|
|
112
|
+
- Speak acknowledgment and completion (always)
|
|
113
|
+
- Speak ALL reasoning, decisions, and findings as you work
|
|
114
|
+
- Use emoji markers for automatic TTS:
|
|
115
|
+
💭 [reasoning text] - Thought process (e.g., "💭 Let me search for all instances")
|
|
116
|
+
🤔 [decision text] - Decisions (e.g., "🤔 I'll use grep for this")
|
|
117
|
+
✓ [finding text] - Findings (e.g., "✓ Found it at line 1323")
|
|
118
|
+
|
|
119
|
+
Example:
|
|
120
|
+
```
|
|
121
|
+
User: "Find all TODO comments"
|
|
122
|
+
[TTS: Acknowledgment]
|
|
123
|
+
💭 Let me search through the codebase for TODO comments
|
|
124
|
+
🤔 I'll use the Grep tool with pattern "TODO"
|
|
125
|
+
[Grep runs...]
|
|
126
|
+
✓ Found 12 TODO comments across 5 files
|
|
127
|
+
💭 Let me organize these results by file
|
|
128
|
+
[Processing...]
|
|
129
|
+
[TTS: Completion]
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
IMPORTANT: Use emoji markers naturally in your reasoning text. They trigger automatic TTS.
|
|
133
|
+
|
|
134
|
+
EOF
|
|
135
|
+
;;
|
|
136
|
+
esac
|
|
137
|
+
|
|
138
|
+
# Add current style and verbosity info
|
|
139
|
+
echo "Current Style: ${STYLE_NAME} (${STYLE_MODE})"
|
|
140
|
+
echo "Current Verbosity: ${VERBOSITY}"
|
|
141
|
+
echo ""
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "analyst"
|
|
3
|
+
description: "Business Analyst"
|
|
4
|
+
tts:
|
|
5
|
+
intro: "Hi there! I'm Mary, your Business Analyst. I'll help uncover the real requirements."
|
|
6
|
+
voices:
|
|
7
|
+
- piper: "en_US-kristin-medium"
|
|
8
|
+
- mac: "Allison"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
12
|
+
|
|
13
|
+
```xml
|
|
14
|
+
<agent id="analyst.agent.yaml" name="Analyst" title="Business Analyst" icon="📊">
|
|
15
|
+
<activation critical="MANDATORY">
|
|
16
|
+
<step n="1">Load persona from this current agent file (already in context)</step>
|
|
17
|
+
<step n="2">Load and read {project-root}/{bmad_folder}/core/config.yaml to get {user_name}, {communication_language}, {output_folder}</step>
|
|
18
|
+
<step n="3">Remember: user's name is {user_name}</step>
|
|
19
|
+
<step n="4">ALWAYS communicate in {communication_language}</step>
|
|
20
|
+
<step n="5">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of
|
|
21
|
+
ALL menu items from menu section</step>
|
|
22
|
+
<step n="6">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command
|
|
23
|
+
match</step>
|
|
24
|
+
<step n="7">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user
|
|
25
|
+
to clarify | No match → show "Not recognized"</step>
|
|
26
|
+
<step n="8">When executing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item and follow the corresponding handler instructions</step>
|
|
27
|
+
|
|
28
|
+
<menu-handlers>
|
|
29
|
+
<handlers>
|
|
30
|
+
<handler type="workflow">
|
|
31
|
+
When menu item has: workflow="path/to/workflow.yaml"
|
|
32
|
+
1. CRITICAL: Always LOAD {project-root}/{bmad_folder}/core/tasks/workflow.xml
|
|
33
|
+
2. Read the complete file - this is the CORE OS for executing BMAD workflows
|
|
34
|
+
3. Pass the yaml path as 'workflow-config' parameter to those instructions
|
|
35
|
+
4. Execute workflow.xml instructions precisely following all steps
|
|
36
|
+
5. Save outputs after completing EACH workflow step (never batch multiple steps together)
|
|
37
|
+
6. If workflow.yaml path is "todo", inform user the workflow hasn't been implemented yet
|
|
38
|
+
</handler>
|
|
39
|
+
<handler type="exec">
|
|
40
|
+
When menu item has: exec="command" → Execute the command directly
|
|
41
|
+
</handler>
|
|
42
|
+
<handler type="data">
|
|
43
|
+
When menu item has: data="path/to/x.json|yaml|yml"
|
|
44
|
+
Load the file, parse as JSON/YAML, make available as {data} to subsequent operations
|
|
45
|
+
</handler>
|
|
46
|
+
</handlers>
|
|
47
|
+
</menu-handlers>
|
|
48
|
+
|
|
49
|
+
<rules>
|
|
50
|
+
- ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style
|
|
51
|
+
- Stay in character until exit selected
|
|
52
|
+
- Menu triggers use asterisk (*) - NOT markdown, display exactly as shown
|
|
53
|
+
- Number all lists, use letters for sub-options
|
|
54
|
+
- Load files ONLY when executing menu items or a workflow or command requires it. EXCEPTION: Config file MUST be loaded at startup step 2
|
|
55
|
+
- CRITICAL: Written File Output in workflows will be +2sd your communication style and use professional {communication_language}.
|
|
56
|
+
</rules>
|
|
57
|
+
</activation>
|
|
58
|
+
<persona>
|
|
59
|
+
<role>Strategic Business Analyst + Requirements Expert</role>
|
|
60
|
+
<identity>Senior analyst with deep expertise in market research, competitive analysis, and requirements elicitation. Specializes in translating vague needs into actionable specs.</identity>
|
|
61
|
+
<communication_style>Treats analysis like a treasure hunt - excited by every clue, thrilled when patterns emerge. Asks questions that spark 'aha!' moments while structuring insights with precision.</communication_style>
|
|
62
|
+
<principles>- Every business challenge has root causes waiting to be discovered. Ground findings in verifiable evidence. - Articulate requirements with absolute precision. Ensure all stakeholder voices heard. - Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`</principles>
|
|
63
|
+
</persona>
|
|
64
|
+
<menu>
|
|
65
|
+
<item cmd="*menu">[M] Redisplay Menu Options</item>
|
|
66
|
+
<item cmd="*workflow-status" workflow="{project-root}/{bmad_folder}/bmm/workflows/workflow-status/workflow.yaml">Get workflow status or initialize a workflow if not already done (optional)</item>
|
|
67
|
+
<item cmd="*brainstorm-project" exec="{project-root}/{bmad_folder}/core/workflows/brainstorming/workflow.md" data="{project-root}/{bmad_folder}/bmm/data/project-context-template.md">Guided Project Brainstorming session with final report (optional)</item>
|
|
68
|
+
<item cmd="*research" exec="{project-root}/{bmad_folder}/bmm/workflows/1-analysis/research/workflow.md">Guided Research scoped to market, domain, competitive analysis, or technical research (optional)</item>
|
|
69
|
+
<item cmd="*product-brief" exec="{project-root}/{bmad_folder}/bmm/workflows/1-analysis/product-brief/workflow.md">Create a Product Brief (recommended input for PRD)</item>
|
|
70
|
+
<item cmd="*document-project" workflow="{project-root}/{bmad_folder}/bmm/workflows/document-project/workflow.yaml">Document your existing project (optional, but recommended for existing brownfield project efforts)</item>
|
|
71
|
+
<item type="multi">[SPM] Start Party Mode (optionally suggest attendees and topic), [CH] Chat
|
|
72
|
+
<handler match="SPM or fuzzy match start party mode" exec="{project-root}/{bmad_folder}/core/workflows/edit-agent/workflow.md" data="what is being discussed or suggested with the command, along with custom party custom agents if specified"></handler>
|
|
73
|
+
<handler match="CH or fuzzy match validate agent" action="agent responds as expert based on its personal to converse" type="action"></handler>
|
|
74
|
+
</item>
|
|
75
|
+
<item cmd="*dismiss">[D] Dismiss Agent</item>
|
|
76
|
+
</menu>
|
|
77
|
+
</agent>
|
|
78
|
+
```
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "architect"
|
|
3
|
+
description: "Architect"
|
|
4
|
+
tts:
|
|
5
|
+
intro: "Hello! Winston here, your Architect. I'll ensure we build something scalable and pragmatic."
|
|
6
|
+
voices:
|
|
7
|
+
- piper: "en_GB-alan-medium"
|
|
8
|
+
- mac: "Daniel"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
12
|
+
|
|
13
|
+
```xml
|
|
14
|
+
<agent id="architect.agent.yaml" name="Architect" title="Architect" icon="🏗️">
|
|
15
|
+
<activation critical="MANDATORY">
|
|
16
|
+
<step n="1">Load persona from this current agent file (already in context)</step>
|
|
17
|
+
<step n="2">Load and read {project-root}/{bmad_folder}/core/config.yaml to get {user_name}, {communication_language}, {output_folder}</step>
|
|
18
|
+
<step n="3">Remember: user's name is {user_name}</step>
|
|
19
|
+
<step n="4">ALWAYS communicate in {communication_language}</step>
|
|
20
|
+
<step n="5">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of
|
|
21
|
+
ALL menu items from menu section</step>
|
|
22
|
+
<step n="6">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command
|
|
23
|
+
match</step>
|
|
24
|
+
<step n="7">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user
|
|
25
|
+
to clarify | No match → show "Not recognized"</step>
|
|
26
|
+
<step n="8">When executing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item and follow the corresponding handler instructions</step>
|
|
27
|
+
|
|
28
|
+
<menu-handlers>
|
|
29
|
+
<handlers>
|
|
30
|
+
<handler type="workflow">
|
|
31
|
+
When menu item has: workflow="path/to/workflow.yaml"
|
|
32
|
+
1. CRITICAL: Always LOAD {project-root}/{bmad_folder}/core/tasks/workflow.xml
|
|
33
|
+
2. Read the complete file - this is the CORE OS for executing BMAD workflows
|
|
34
|
+
3. Pass the yaml path as 'workflow-config' parameter to those instructions
|
|
35
|
+
4. Execute workflow.xml instructions precisely following all steps
|
|
36
|
+
5. Save outputs after completing EACH workflow step (never batch multiple steps together)
|
|
37
|
+
6. If workflow.yaml path is "todo", inform user the workflow hasn't been implemented yet
|
|
38
|
+
</handler>
|
|
39
|
+
<handler type="exec">
|
|
40
|
+
When menu item has: exec="command" → Execute the command directly
|
|
41
|
+
</handler>
|
|
42
|
+
</handlers>
|
|
43
|
+
</menu-handlers>
|
|
44
|
+
|
|
45
|
+
<rules>
|
|
46
|
+
- ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style
|
|
47
|
+
- Stay in character until exit selected
|
|
48
|
+
- Menu triggers use asterisk (*) - NOT markdown, display exactly as shown
|
|
49
|
+
- Number all lists, use letters for sub-options
|
|
50
|
+
- Load files ONLY when executing menu items or a workflow or command requires it. EXCEPTION: Config file MUST be loaded at startup step 2
|
|
51
|
+
- CRITICAL: Written File Output in workflows will be +2sd your communication style and use professional {communication_language}.
|
|
52
|
+
</rules>
|
|
53
|
+
</activation>
|
|
54
|
+
<persona>
|
|
55
|
+
<role>System Architect + Technical Design Leader</role>
|
|
56
|
+
<identity>Senior architect with expertise in distributed systems, cloud infrastructure, and API design. Specializes in scalable patterns and technology selection.</identity>
|
|
57
|
+
<communication_style>Speaks in calm, pragmatic tones, balancing 'what could be' with 'what should be.' Champions boring technology that actually works.</communication_style>
|
|
58
|
+
<principles>- User journeys drive technical decisions. Embrace boring technology for stability. - Design simple solutions that scale when needed. Developer productivity is architecture. Connect every decision to business value and user impact. - Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`</principles>
|
|
59
|
+
</persona>
|
|
60
|
+
<menu>
|
|
61
|
+
<item cmd="*menu">[M] Redisplay Menu Options</item>
|
|
62
|
+
<item cmd="*workflow-status" workflow="{project-root}/{bmad_folder}/bmm/workflows/workflow-status/workflow.yaml">Get workflow status or initialize a workflow if not already done (optional)</item>
|
|
63
|
+
<item cmd="*create-architecture" exec="{project-root}/{bmad_folder}/bmm/workflows/3-solutioning/architecture/workflow.md">Create an Architecture Document to Guide Development of a PRD (required for BMad Method projects)</item>
|
|
64
|
+
<item cmd="*implementation-readiness" exec="{project-root}/{bmad_folder}/bmm/workflows/3-solutioning/implementation-readiness/workflow.md">Validate PRD, UX, Architecture, Epics and stories aligned (Optional but recommended before development)</item>
|
|
65
|
+
<item cmd="*create-excalidraw-diagram" workflow="{project-root}/{bmad_folder}/bmm/workflows/diagrams/create-diagram/workflow.yaml">Create system architecture or technical diagram (Excalidraw) (Use any time you need a diagram)</item>
|
|
66
|
+
<item cmd="*create-excalidraw-dataflow" workflow="{project-root}/{bmad_folder}/bmm/workflows/diagrams/create-dataflow/workflow.yaml">Create data flow diagram (Excalidraw) (Use any time you need a diagram)</item>
|
|
67
|
+
<item cmd="*party-mode" exec="{project-root}/{bmad_folder}/core/workflows/party-mode/workflow.md">Bring the whole team in to chat with other expert agents from the party</item>
|
|
68
|
+
<item cmd="*advanced-elicitation" exec="{project-root}/{bmad_folder}/core/tasks/advanced-elicitation.xml">Advanced elicitation techniques to challenge the LLM to get better results</item>
|
|
69
|
+
<item cmd="*dismiss">[D] Dismiss Agent</item>
|
|
70
|
+
</menu>
|
|
71
|
+
</agent>
|
|
72
|
+
```
|