agentvibes 5.6.0 → 5.6.2

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.
Files changed (101) hide show
  1. package/.agentvibes/config.json +3 -38
  2. package/.claude/config/audio-effects.cfg +1 -1
  3. package/.claude/config/background-music-enabled.txt +1 -1
  4. package/.claude/config/background-music-position.txt +6 -6
  5. package/.claude/github-star-reminder.txt +1 -1
  6. package/.claude/hooks/play-tts-ssh-remote.sh +119 -42
  7. package/.claude/hooks/play-tts-windows-receiver.sh +31 -0
  8. package/.claude/hooks/stop.sh +2 -27
  9. package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -108
  10. package/.claude/hooks-windows/play-tts.ps1 +58 -8
  11. package/.claude/piper-voices-dir.txt +1 -1
  12. package/.clawdbot/skill/README.md +326 -0
  13. package/.mcp.json +17 -27
  14. package/README.md +15 -2
  15. package/RELEASE_NOTES.md +64 -0
  16. package/bin/agent-vibes +39 -39
  17. package/package.json +1 -1
  18. package/src/bmad-detector.js +71 -71
  19. package/src/cli/list-personalities.js +110 -110
  20. package/src/cli/list-voices.js +114 -114
  21. package/src/commands/bmad-voices.js +394 -394
  22. package/src/commands/install-mcp.js +476 -476
  23. package/src/console/brand-colors.js +13 -13
  24. package/src/console/constants/personalities.js +44 -44
  25. package/src/console/modals/modal-overlay.js +247 -247
  26. package/src/console/navigation.js +5 -1
  27. package/src/console/tabs/agents-tab.js +5 -5
  28. package/src/console/tabs/help-tab.js +314 -314
  29. package/src/console/tabs/readme-tab.js +272 -272
  30. package/src/console/tabs/setup-tab.js +32 -17
  31. package/src/console/tabs/voices-tab.js +2 -2
  32. package/src/console/widgets/destroy-list.js +25 -25
  33. package/src/console/widgets/notice.js +55 -55
  34. package/src/console/widgets/personality-picker.js +213 -213
  35. package/src/console/widgets/reverb-picker.js +97 -97
  36. package/src/console/widgets/track-picker.js +1 -1
  37. package/src/i18n/de.js +202 -202
  38. package/src/i18n/es.js +202 -202
  39. package/src/i18n/fr.js +202 -202
  40. package/src/i18n/hi.js +202 -202
  41. package/src/i18n/ja.js +202 -202
  42. package/src/i18n/ko.js +202 -202
  43. package/src/i18n/pt.js +202 -202
  44. package/src/i18n/strings.js +54 -54
  45. package/src/i18n/zh-CN.js +202 -202
  46. package/src/installer/language-screen.js +31 -31
  47. package/src/installer/music-file-input.js +304 -304
  48. package/src/services/agent-voice-store.js +420 -423
  49. package/src/services/config-service.js +264 -264
  50. package/src/services/language-service.js +47 -47
  51. package/src/services/llm-provider-service.js +11 -4
  52. package/src/services/navigation-service.js +34 -10
  53. package/src/services/provider-service.js +143 -143
  54. package/src/utils/audio-duration-validator.js +298 -298
  55. package/src/utils/audio-format-validator.js +277 -277
  56. package/src/utils/dependency-checker.js +469 -469
  57. package/src/utils/file-ownership-verifier.js +358 -358
  58. package/src/utils/list-formatter.js +194 -194
  59. package/src/utils/music-file-validator.js +285 -285
  60. package/src/utils/preview-list-prompt.js +136 -136
  61. package/src/utils/secure-music-storage.js +412 -412
  62. package/.agentvibes/LITE-MODE.md +0 -236
  63. package/.agentvibes/README.md +0 -136
  64. package/.agentvibes/backup/session-start-tts.sh.20251210_212814 +0 -141
  65. package/.agentvibes/backups/agents/analyst_20260204_144958.md +0 -78
  66. package/.agentvibes/backups/agents/architect_20260204_144958.md +0 -72
  67. package/.agentvibes/backups/agents/dev_20260204_144958.md +0 -74
  68. package/.agentvibes/backups/agents/pm_20260204_144958.md +0 -72
  69. package/.agentvibes/backups/agents/quick-flow-solo-dev_20260204_144958.md +0 -64
  70. package/.agentvibes/backups/agents/sm_20260204_144958.md +0 -87
  71. package/.agentvibes/backups/agents/tea_20260204_144958.md +0 -79
  72. package/.agentvibes/backups/agents/tech-writer_20260204_144958.md +0 -82
  73. package/.agentvibes/backups/agents/ux-designer_20260204_144958.md +0 -80
  74. package/.agentvibes/config/README-personality-defaults.md +0 -162
  75. package/.agentvibes/config/agentvibes.json +0 -1
  76. package/.agentvibes/config/mode.txt +0 -1
  77. package/.agentvibes/config/personality-voice-defaults.default.json +0 -21
  78. package/.agentvibes/config/save-audio.txt +0 -1
  79. package/.agentvibes/config/voice-metadata.json +0 -160
  80. package/.agentvibes/hooks/help.sh +0 -191
  81. package/.agentvibes/hooks/post-tool-use-lite.sh +0 -111
  82. package/.agentvibes/hooks/save-audio-manager.sh +0 -162
  83. package/.agentvibes/hooks/session-start-full-optimized.sh +0 -102
  84. package/.agentvibes/hooks/session-start-full.sh +0 -142
  85. package/.agentvibes/hooks/session-start-lite-v2.sh +0 -34
  86. package/.agentvibes/hooks/session-start-lite.sh +0 -29
  87. package/.agentvibes/hooks/stop-lite.sh +0 -115
  88. package/.agentvibes/hooks/switch-mode.sh +0 -215
  89. package/.agentvibes/output-styles/audio-summary.md +0 -30
  90. package/.claude/audio/voice-samples/piper/alan.wav +0 -0
  91. package/.claude/audio/voice-samples/piper/amy.wav +0 -0
  92. package/.claude/audio/voice-samples/piper/charlotte.wav +0 -0
  93. package/.claude/audio/voice-samples/piper/joe.wav +0 -0
  94. package/.claude/audio/voice-samples/piper/john.wav +0 -0
  95. package/.claude/audio/voice-samples/piper/katherine.wav +0 -0
  96. package/.claude/audio/voice-samples/piper/kristin.wav +0 -0
  97. package/.claude/audio/voice-samples/piper/linda.wav +0 -0
  98. package/.claude/audio/voice-samples/piper/marcus.wav +0 -0
  99. package/.claude/audio/voice-samples/piper/ryan.wav +0 -0
  100. package/.claude/hooks/post-response.sh +0 -41
  101. package/bin/ensure-soprano-running.sh +0 -43
@@ -1,236 +0,0 @@
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.
@@ -1,136 +0,0 @@
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)
@@ -1,141 +0,0 @@
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 ""
@@ -1,78 +0,0 @@
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 &apos;aha!&apos; 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
- ```
@@ -1,72 +0,0 @@
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 &apos;what could be&apos; with &apos;what should be.&apos; 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
- ```