agentvibes 2.4.0 → 2.4.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 (127) hide show
  1. package/.bmad-core/agent-teams/team-all.yaml +15 -0
  2. package/.bmad-core/agent-teams/team-fullstack.yaml +19 -0
  3. package/.bmad-core/agent-teams/team-ide-minimal.yaml +11 -0
  4. package/.bmad-core/agent-teams/team-no-ui.yaml +14 -0
  5. package/.bmad-core/agents/analyst.md +84 -0
  6. package/.bmad-core/agents/architect.md +85 -0
  7. package/.bmad-core/agents/bmad-master.md +110 -0
  8. package/.bmad-core/agents/bmad-orchestrator.md +147 -0
  9. package/.bmad-core/agents/dev.md +81 -0
  10. package/.bmad-core/agents/pm.md +84 -0
  11. package/.bmad-core/agents/po.md +79 -0
  12. package/.bmad-core/agents/qa.md +87 -0
  13. package/.bmad-core/agents/sm.md +65 -0
  14. package/.bmad-core/agents/ux-expert.md +69 -0
  15. package/.bmad-core/checklists/architect-checklist.md +440 -0
  16. package/.bmad-core/checklists/change-checklist.md +184 -0
  17. package/.bmad-core/checklists/pm-checklist.md +372 -0
  18. package/.bmad-core/checklists/po-master-checklist.md +434 -0
  19. package/.bmad-core/checklists/story-dod-checklist.md +96 -0
  20. package/.bmad-core/checklists/story-draft-checklist.md +155 -0
  21. package/.bmad-core/core-config.yaml +22 -0
  22. package/.bmad-core/data/bmad-kb.md +809 -0
  23. package/.bmad-core/data/brainstorming-techniques.md +38 -0
  24. package/.bmad-core/data/elicitation-methods.md +156 -0
  25. package/.bmad-core/data/technical-preferences.md +5 -0
  26. package/.bmad-core/data/test-levels-framework.md +148 -0
  27. package/.bmad-core/data/test-priorities-matrix.md +174 -0
  28. package/.bmad-core/enhanced-ide-development-workflow.md +248 -0
  29. package/.bmad-core/install-manifest.yaml +230 -0
  30. package/.bmad-core/tasks/advanced-elicitation.md +119 -0
  31. package/.bmad-core/tasks/apply-qa-fixes.md +150 -0
  32. package/.bmad-core/tasks/brownfield-create-epic.md +162 -0
  33. package/.bmad-core/tasks/brownfield-create-story.md +149 -0
  34. package/.bmad-core/tasks/correct-course.md +72 -0
  35. package/.bmad-core/tasks/create-brownfield-story.md +314 -0
  36. package/.bmad-core/tasks/create-deep-research-prompt.md +280 -0
  37. package/.bmad-core/tasks/create-doc.md +103 -0
  38. package/.bmad-core/tasks/create-next-story.md +114 -0
  39. package/.bmad-core/tasks/document-project.md +345 -0
  40. package/.bmad-core/tasks/execute-checklist.md +88 -0
  41. package/.bmad-core/tasks/facilitate-brainstorming-session.md +138 -0
  42. package/.bmad-core/tasks/generate-ai-frontend-prompt.md +53 -0
  43. package/.bmad-core/tasks/index-docs.md +175 -0
  44. package/.bmad-core/tasks/kb-mode-interaction.md +77 -0
  45. package/.bmad-core/tasks/nfr-assess.md +345 -0
  46. package/.bmad-core/tasks/qa-gate.md +163 -0
  47. package/.bmad-core/tasks/review-story.md +316 -0
  48. package/.bmad-core/tasks/risk-profile.md +355 -0
  49. package/.bmad-core/tasks/shard-doc.md +187 -0
  50. package/.bmad-core/tasks/test-design.md +176 -0
  51. package/.bmad-core/tasks/trace-requirements.md +266 -0
  52. package/.bmad-core/tasks/validate-next-story.md +136 -0
  53. package/.bmad-core/templates/architecture-tmpl.yaml +651 -0
  54. package/.bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
  55. package/.bmad-core/templates/brownfield-architecture-tmpl.yaml +477 -0
  56. package/.bmad-core/templates/brownfield-prd-tmpl.yaml +281 -0
  57. package/.bmad-core/templates/competitor-analysis-tmpl.yaml +307 -0
  58. package/.bmad-core/templates/front-end-architecture-tmpl.yaml +219 -0
  59. package/.bmad-core/templates/front-end-spec-tmpl.yaml +350 -0
  60. package/.bmad-core/templates/fullstack-architecture-tmpl.yaml +824 -0
  61. package/.bmad-core/templates/market-research-tmpl.yaml +253 -0
  62. package/.bmad-core/templates/prd-tmpl.yaml +203 -0
  63. package/.bmad-core/templates/project-brief-tmpl.yaml +222 -0
  64. package/.bmad-core/templates/qa-gate-tmpl.yaml +103 -0
  65. package/.bmad-core/templates/story-tmpl.yaml +138 -0
  66. package/.bmad-core/user-guide.md +577 -0
  67. package/.bmad-core/utils/bmad-doc-template.md +327 -0
  68. package/.bmad-core/utils/workflow-management.md +71 -0
  69. package/.bmad-core/workflows/brownfield-fullstack.yaml +298 -0
  70. package/.bmad-core/workflows/brownfield-service.yaml +188 -0
  71. package/.bmad-core/workflows/brownfield-ui.yaml +198 -0
  72. package/.bmad-core/workflows/greenfield-fullstack.yaml +241 -0
  73. package/.bmad-core/workflows/greenfield-service.yaml +207 -0
  74. package/.bmad-core/workflows/greenfield-ui.yaml +236 -0
  75. package/.bmad-core/working-in-the-brownfield.md +606 -0
  76. package/.claude/commands/BMad/analyst.md +88 -0
  77. package/.claude/commands/BMad/architect.md +89 -0
  78. package/.claude/commands/BMad/bmad-master.md +114 -0
  79. package/.claude/commands/BMad/bmad-orchestrator.md +151 -0
  80. package/.claude/commands/BMad/dev.md +85 -0
  81. package/.claude/commands/BMad/pm.md +88 -0
  82. package/.claude/commands/BMad/po.md +83 -0
  83. package/.claude/commands/BMad/qa.md +91 -0
  84. package/.claude/commands/BMad/sm.md +69 -0
  85. package/.claude/commands/BMad/tasks/advanced-elicitation.md +123 -0
  86. package/.claude/commands/BMad/tasks/apply-qa-fixes.md +154 -0
  87. package/.claude/commands/BMad/tasks/brownfield-create-epic.md +166 -0
  88. package/.claude/commands/BMad/tasks/brownfield-create-story.md +153 -0
  89. package/.claude/commands/BMad/tasks/correct-course.md +76 -0
  90. package/.claude/commands/BMad/tasks/create-brownfield-story.md +318 -0
  91. package/.claude/commands/BMad/tasks/create-deep-research-prompt.md +284 -0
  92. package/.claude/commands/BMad/tasks/create-doc.md +107 -0
  93. package/.claude/commands/BMad/tasks/create-next-story.md +118 -0
  94. package/.claude/commands/BMad/tasks/document-project.md +349 -0
  95. package/.claude/commands/BMad/tasks/execute-checklist.md +92 -0
  96. package/.claude/commands/BMad/tasks/facilitate-brainstorming-session.md +142 -0
  97. package/.claude/commands/BMad/tasks/generate-ai-frontend-prompt.md +57 -0
  98. package/.claude/commands/BMad/tasks/index-docs.md +179 -0
  99. package/.claude/commands/BMad/tasks/kb-mode-interaction.md +81 -0
  100. package/.claude/commands/BMad/tasks/nfr-assess.md +349 -0
  101. package/.claude/commands/BMad/tasks/qa-gate.md +167 -0
  102. package/.claude/commands/BMad/tasks/review-story.md +320 -0
  103. package/.claude/commands/BMad/tasks/risk-profile.md +359 -0
  104. package/.claude/commands/BMad/tasks/shard-doc.md +191 -0
  105. package/.claude/commands/BMad/tasks/test-design.md +180 -0
  106. package/.claude/commands/BMad/tasks/trace-requirements.md +270 -0
  107. package/.claude/commands/BMad/tasks/validate-next-story.md +140 -0
  108. package/.claude/commands/BMad/ux-expert.md +73 -0
  109. package/.claude/github-star-reminder.txt +1 -0
  110. package/.claude/hooks/play-tts-piper.sh +10 -2
  111. package/.claude/piper-voices-dir.txt +1 -0
  112. package/.claude/plugins/bmad-voices-enabled.flag +0 -0
  113. package/.mcp.json +88 -0
  114. package/README.md +7 -7
  115. package/RELEASE_NOTES.md +64 -0
  116. package/RELEASE_NOTES_v2.4.0_DRAFT.md +116 -0
  117. package/RELEASE_NOTES_v2.4.1_DRAFT.md +61 -0
  118. package/docs/macos-piper-issue.md +172 -0
  119. package/docs/stargazer-cms-prd.md +1918 -0
  120. package/docs/whatsapp-plugin-github-issue.md +393 -0
  121. package/docs/whatsapp-tts-plugin-feasibility.md +418 -0
  122. package/docs/whatsapp-tts-standalone-plugin.md +628 -0
  123. package/linkedin/vibe-coding-and-pulseaudio.md +121 -0
  124. package/mcp-server/agentvibes.db +0 -0
  125. package/package.json +1 -1
  126. package/scripts/audio-tunnel.config +17 -0
  127. package/src/installer.js +52 -19
@@ -0,0 +1,393 @@
1
+ # GitHub Issue: WhatsApp TTS Notifications Plugin
2
+
3
+ ## Title
4
+ 🔔 Feature: WhatsApp TTS Notifications Plugin with Voice Round-Robin
5
+
6
+ ## Labels
7
+ `enhancement`, `plugin`, `tts`, `whatsapp`, `mcp-server`
8
+
9
+ ## Description
10
+
11
+ ### Summary
12
+ Create a **standalone plugin** in an independent repository that enables voice notifications for incoming WhatsApp messages through the MCP (Model Context Protocol) server. The plugin will integrate with AgentVibes (via subprocess) and provide natural language control to enable/disable notifications per contact/channel with round-robin voice assignment for speaker differentiation in group chats.
13
+
14
+ **Repository**: New standalone repo: `whatsapp-agentvibes` or `agentvibes-whatsapp-plugin`
15
+ **Distribution**: PyPI package (`pip install whatsapp-agentvibes`)
16
+ **Architecture**: Independent MCP server that calls AgentVibes TTS via subprocess
17
+
18
+ ### Problem Statement
19
+ Users who integrate WhatsApp with Claude (via whatsapp-mcp) want audible notifications for important messages, with the ability to:
20
+ - Selectively enable/disable notifications per contact or group
21
+ - Distinguish between speakers in group chats through different voices
22
+ - Control notifications using natural language commands
23
+ - Leverage AgentVibes' existing voice library (27+ voices)
24
+
25
+ ### Proposed Solution
26
+ Build a **standalone MCP server in an independent repository** that bridges the WhatsApp MCP server with AgentVibes TTS capabilities, providing:
27
+
28
+ 1. **Voice Notifications**: Automatically read incoming WhatsApp messages aloud
29
+ 2. **Round-Robin Voice Assignment**: Different contacts get different voices (consistent per contact)
30
+ 3. **MCP Commands**: Natural language control for notification management
31
+ 4. **Group Chat Support**: Per-sender voice assignment within groups
32
+ 5. **Clean Architecture**: Standalone repo with AgentVibes as external dependency (subprocess calls)
33
+ 6. **Independent Distribution**: pip package on PyPI
34
+
35
+ **Why Standalone?**
36
+ - ✅ Separation of concerns (TTS engine vs messaging integration)
37
+ - ✅ Independent versioning and releases
38
+ - ✅ Easier maintenance and community contributions
39
+ - ✅ Opens path for plugin ecosystem (Signal, Telegram, Slack)
40
+ - ✅ Users install only what they need
41
+
42
+ ### Architecture Overview
43
+
44
+ **Standalone Repository Architecture:**
45
+
46
+ ```
47
+ ┌─────────────────────────────────────┐
48
+ │ whatsapp-agentvibes │ ← New Standalone Repo (pip package)
49
+ │ (Independent MCP Server) │
50
+ │ │
51
+ │ - Message monitoring (SQLite poll) │
52
+ │ - Voice assignment (round-robin) │
53
+ │ - Notification config management │
54
+ │ - MCP command handlers │
55
+ └──────────────┬──────────────────────┘
56
+ │ depends on (subprocess calls)
57
+
58
+ ┌────────┴─────────┬────────────────┐
59
+ ▼ ▼ ▼
60
+ ┌────────────┐ ┌──────────────┐ ┌─────────────┐
61
+ │ WhatsApp │ │ AgentVibes │ │ FastMCP │
62
+ │ MCP Server │ │ (installed) │ │ (Python) │
63
+ │ │ │ play-tts.sh │ │ │
64
+ └────────────┘ └──────────────┘ └─────────────┘
65
+ (data) (subprocess) (framework)
66
+ ```
67
+
68
+ **Integration Method:**
69
+ - **WhatsApp**: Direct SQLite database reads (read-only)
70
+ - **AgentVibes**: Subprocess calls to `~/.claude/hooks/play-tts.sh`
71
+ - **No code imports**: Plugin is fully independent
72
+
73
+ ### Key Features
74
+
75
+ #### 1. New MCP Commands
76
+ - **`whatsapp_enable_notifications(contact_or_chat: str)`** - Enable TTS for a contact/group
77
+ - **`whatsapp_disable_notifications(contact_or_chat: str)`** - Disable TTS for a contact/group
78
+ - **`whatsapp_list_notification_channels()`** - Show all enabled notification channels
79
+ - **`whatsapp_set_contact_voice(contact: str, voice: str)`** - Override automatic voice assignment
80
+ - **`whatsapp_get_notification_status()`** - Show notification statistics
81
+
82
+ #### 2. Round-Robin Voice Assignment
83
+ - Hash-based voice selection: Same contact always gets same voice
84
+ - Persistent mapping stored in `.claude/whatsapp-notifications.json`
85
+ - Automatic distribution across 27+ available voices
86
+ - Manual override capability per contact
87
+
88
+ #### 3. Group Chat Voice Differentiation
89
+ - Per-sender voice assignment within groups
90
+ - Announces sender name: "John says: Hello there"
91
+ - Consistent voices across all group interactions
92
+
93
+ #### 4. Message Monitoring
94
+ - Polls WhatsApp SQLite database every 2 seconds
95
+ - Filters messages by enabled contacts only
96
+ - Skips self-sent messages (is_from_me = true)
97
+ - Handles text messages and media notifications
98
+
99
+ ### Example Usage
100
+
101
+ **Scenario 1: Enable notifications for a contact**
102
+ ```
103
+ User: "Enable WhatsApp notifications for my mom"
104
+ Claude: [Searches contacts for "mom"]
105
+ [Finds: Jane Smith, +1234567890]
106
+ [Enables notifications]
107
+ ✅ Enabled notifications for Jane Smith with voice "Aria"
108
+
109
+ [Message arrives from Jane]
110
+ TTS (Aria): "Message from Jane Smith: Don't forget to call me tonight"
111
+ ```
112
+
113
+ **Scenario 2: Group chat with multiple voices**
114
+ ```
115
+ User: "Enable notifications for the Family group"
116
+ Claude: ✅ Enabled notifications for Family group
117
+ Voices will be assigned per sender automatically
118
+
119
+ [Messages arrive]
120
+ TTS (Aria): "Dad: Can someone pick up milk?"
121
+ TTS (Terry): "Mom: I'll get it on the way home"
122
+ TTS (Bob): "Sister: Thanks Mom!"
123
+ ```
124
+
125
+ **Scenario 3: Managing notifications**
126
+ ```
127
+ User: "Show me all WhatsApp notification channels"
128
+ Claude: 🔔 WhatsApp Notifications Active:
129
+ 1. Jane Smith (+1234567890) - Voice: Aria
130
+ 2. Family Group - 3 senders with voices
131
+ 3. Work Team - Voice: Jenny
132
+ ```
133
+
134
+ ### Implementation Plan
135
+
136
+ #### Phase 0: Repository Setup (Day 1-2)
137
+ - [ ] Create new GitHub repository: `whatsapp-agentvibes`
138
+ - [ ] Set up Python package structure with pyproject.toml
139
+ - [ ] Configure GitHub Actions for testing/linting
140
+ - [ ] Create initial README with installation instructions
141
+ - [ ] Set up issue templates and contributing guidelines
142
+
143
+ #### Phase 1: Core Integration (Week 1)
144
+ - [ ] Implement `AgentVibesClient` class (subprocess wrapper)
145
+ - Detect AgentVibes installation
146
+ - Call play-tts.sh script
147
+ - List available voices
148
+ - Handle errors gracefully
149
+ - [ ] Set up configuration management (JSON file in `~/.config/`)
150
+ - [ ] Add hash-based voice assignment logic
151
+ - [ ] Implement basic MCP tools:
152
+ - `whatsapp_enable_notifications`
153
+ - `whatsapp_disable_notifications`
154
+ - `whatsapp_list_notification_channels`
155
+ - [ ] Write unit tests for voice assignment and config
156
+
157
+ #### Phase 2: Message Monitoring (Week 2)
158
+ - [ ] Implement SQLite database polling (2-second interval)
159
+ - [ ] Add timestamp tracking for incremental message fetch
160
+ - [ ] Implement message filtering by enabled contacts
161
+ - [ ] Integrate with AgentVibes `play-tts.sh` script
162
+ - [ ] Handle group vs direct message differentiation
163
+
164
+ #### Phase 3: Advanced Features (Week 3)
165
+ - [ ] Add manual voice override tool: `whatsapp_set_contact_voice`
166
+ - [ ] Implement status/statistics tool: `whatsapp_get_notification_status`
167
+ - [ ] Add group chat per-sender voice assignment
168
+ - [ ] Implement media message announcements ("John sent a photo")
169
+ - [ ] Add sender name prefixing for group messages
170
+
171
+ #### Phase 4: Testing & Documentation (Week 4)
172
+ - [ ] Write unit tests for voice assignment logic
173
+ - [ ] Create end-to-end integration tests
174
+ - [ ] Write comprehensive documentation:
175
+ - Installation guide
176
+ - Configuration reference
177
+ - Usage examples
178
+ - Troubleshooting section
179
+ - [ ] Create demo video showing the feature
180
+ - [ ] Update main AgentVibes README
181
+
182
+ ### Technical Specifications
183
+
184
+ **Technology Stack**:
185
+ - Python 3.8+ (MCP server)
186
+ - FastMCP framework (existing)
187
+ - SQLite (WhatsApp message database - read-only)
188
+ - Bash (AgentVibes TTS scripts)
189
+ - JSON (configuration storage)
190
+
191
+ **Database Interaction**:
192
+ ```python
193
+ # Poll for new messages
194
+ query = """
195
+ SELECT id, chat_jid, sender, content, timestamp, is_from_me
196
+ FROM messages
197
+ WHERE timestamp > ? AND is_from_me = 0
198
+ ORDER BY timestamp ASC
199
+ """
200
+ ```
201
+
202
+ **Voice Assignment Algorithm**:
203
+ ```python
204
+ def assign_voice_to_contact(contact_jid: str, available_voices: list) -> str:
205
+ """Assigns consistent voice using hash-based selection"""
206
+ contact_hash = hash(contact_jid) % len(available_voices)
207
+ return available_voices[contact_hash]
208
+ ```
209
+
210
+ **Configuration Format**:
211
+ ```json
212
+ {
213
+ "enabled_contacts": [
214
+ "1234567890@s.whatsapp.net",
215
+ "group123@g.us"
216
+ ],
217
+ "contact_voices": {
218
+ "1234567890@s.whatsapp.net": "Aria",
219
+ "group123@g.us": {
220
+ "sender1@s.whatsapp.net": "Northern Terry",
221
+ "sender2@s.whatsapp.net": "Kristin"
222
+ }
223
+ },
224
+ "last_checked_timestamp": "2025-11-12T10:30:00Z"
225
+ }
226
+ ```
227
+
228
+ ### Dependencies
229
+
230
+ **Prerequisites (Must Be Installed)**:
231
+ - WhatsApp MCP Server (https://github.com/lharries/whatsapp-mcp)
232
+ - AgentVibes TTS system (https://github.com/paulpreibisch/AgentVibes)
233
+ - Called via subprocess, not imported
234
+ - Python 3.8+
235
+
236
+ **Python Dependencies (requirements.txt)**:
237
+ ```txt
238
+ mcp>=0.9.0
239
+ aiosqlite>=0.19.0
240
+ ```
241
+
242
+ **Note**: AgentVibes is NOT listed as a pip dependency because it's called via subprocess.
243
+
244
+ ### Repository Structure
245
+
246
+ **New Standalone Repository: `whatsapp-agentvibes`**
247
+
248
+ ```
249
+ whatsapp-agentvibes/
250
+ ├── README.md # Installation & usage
251
+ ├── LICENSE # Apache 2.0
252
+ ├── requirements.txt # Python dependencies
253
+ ├── pyproject.toml # Package metadata
254
+ ├── setup.py # Installation script
255
+
256
+ ├── src/
257
+ │ └── whatsapp_agentvibes/
258
+ │ ├── __init__.py
259
+ │ ├── server.py # Main MCP server
260
+ │ ├── monitor.py # WhatsApp message monitoring
261
+ │ ├── voice_manager.py # Voice assignment logic
262
+ │ ├── config.py # Configuration management
263
+ │ └── agentvibes_client.py # AgentVibes subprocess wrapper
264
+
265
+ ├── config/
266
+ │ ├── notifications.json.example # Example configuration
267
+ │ └── claude_desktop_config.json # MCP setup example
268
+
269
+ ├── tests/
270
+ │ ├── test_voice_assignment.py
271
+ │ ├── test_monitor.py
272
+ │ ├── test_config.py
273
+ │ └── test_agentvibes_client.py
274
+
275
+ ├── docs/
276
+ │ ├── installation.md
277
+ │ ├── configuration.md
278
+ │ ├── troubleshooting.md
279
+ │ └── development.md
280
+
281
+ └── .github/
282
+ └── workflows/
283
+ ├── test.yml # CI tests
284
+ └── publish.yml # PyPI publish
285
+ ```
286
+
287
+ **Configuration Location**: `~/.config/whatsapp-agentvibes/config.json`
288
+
289
+ ### Benefits
290
+
291
+ ✅ **Standalone architecture** - Independent repo, separate from AgentVibes codebase
292
+ ✅ **Zero modification to existing systems** - WhatsApp bridge and AgentVibes core remain unchanged
293
+ ✅ **Independent versioning** - Plugin releases independently from AgentVibes
294
+ ✅ **Native MCP integration** - Works seamlessly with Claude Desktop and Claude Code
295
+ ✅ **Natural language control** - "Enable notifications for Mom" vs manual commands
296
+ ✅ **Voice variety** - 27+ voices for rich speaker differentiation
297
+ ✅ **Consistent voice assignment** - Same contact always gets same voice
298
+ ✅ **Privacy-focused** - All processing local, no external data transmission
299
+ ✅ **Plugin ecosystem** - Opens path for Signal-TTS, Telegram-TTS, Slack-TTS
300
+ ✅ **Easy installation** - `pip install whatsapp-agentvibes`
301
+
302
+ ### Challenges & Solutions
303
+
304
+ | Challenge | Solution |
305
+ |-----------|----------|
306
+ | Polling latency (1-5 sec delay) | Acceptable for notifications; 2-second interval balances responsiveness with CPU usage |
307
+ | Voice assignment persistence | JSON config file in `.claude/` directory with hash-based stable assignment |
308
+ | Group chat complexity | Extend mapping to `{group_jid: {sender_jid: voice}}` structure |
309
+ | Media message handling | Announce metadata: "[Name] sent a photo/video/voice message" |
310
+ | Database schema changes | Read-only access to existing schema; no modifications needed |
311
+
312
+ ### Testing Strategy
313
+
314
+ 1. **Unit Tests**:
315
+ - Voice assignment hash consistency
316
+ - Configuration save/load
317
+ - Message filtering logic
318
+
319
+ 2. **Integration Tests**:
320
+ - SQLite database polling
321
+ - AgentVibes TTS integration
322
+ - MCP command execution
323
+
324
+ 3. **End-to-End Tests**:
325
+ - Enable/disable notifications flow
326
+ - Group message voice differentiation
327
+ - Configuration persistence across restarts
328
+
329
+ ### Documentation Requirements
330
+
331
+ 1. **Installation Guide**:
332
+ - Prerequisites (WhatsApp MCP + AgentVibes)
333
+ - MCP server configuration
334
+ - Claude Desktop integration
335
+
336
+ 2. **Usage Guide**:
337
+ - Enabling/disabling notifications
338
+ - Voice management
339
+ - Group chat handling
340
+
341
+ 3. **Configuration Reference**:
342
+ - JSON structure
343
+ - MCP command reference
344
+ - Troubleshooting section
345
+
346
+ 4. **Developer Guide**:
347
+ - Architecture overview
348
+ - Adding new commands
349
+ - Extending voice assignment logic
350
+
351
+ ### Success Criteria
352
+
353
+ - [ ] All MCP commands functional and tested
354
+ - [ ] Voice round-robin working consistently
355
+ - [ ] Group chat voice differentiation operational
356
+ - [ ] Polling latency under 3 seconds
357
+ - [ ] Documentation complete and accurate
358
+ - [ ] Demo video created
359
+ - [ ] Zero breaking changes to AgentVibes core
360
+ - [ ] Zero breaking changes to WhatsApp MCP
361
+
362
+ ### Estimated Effort
363
+
364
+ - **Development**: 25-35 hours
365
+ - **Testing**: 8-12 hours
366
+ - **Documentation**: 6-8 hours
367
+ - **Total**: ~40-55 hours (~1-2 weeks for full-time developer)
368
+
369
+ ### Related Resources
370
+
371
+ - **Standalone Architecture Document**: [/docs/whatsapp-tts-standalone-plugin.md](https://github.com/paulpreibisch/AgentVibes/blob/main/docs/whatsapp-tts-standalone-plugin.md)
372
+ - **Feasibility Analysis**: [/docs/whatsapp-tts-plugin-feasibility.md](https://github.com/paulpreibisch/AgentVibes/blob/main/docs/whatsapp-tts-plugin-feasibility.md)
373
+ - **WhatsApp MCP Server**: https://github.com/lharries/whatsapp-mcp
374
+ - **AgentVibes TTS System**: https://github.com/paulpreibisch/AgentVibes
375
+ - **AgentVibes Voice Library**: https://github.com/paulpreibisch/AgentVibes/blob/main/docs/voice-library.md
376
+
377
+ ### Community Feedback
378
+
379
+ Before starting implementation, please provide feedback on:
380
+ 1. Is the MCP command naming intuitive?
381
+ 2. Should we support custom notification sounds (in addition to TTS)?
382
+ 3. Any concerns about the 2-second polling interval?
383
+ 4. Should we add a "Do Not Disturb" schedule feature?
384
+ 5. Interest in extending to other messaging platforms (Signal, Telegram)?
385
+
386
+ ---
387
+
388
+ **Ready to implement!** Please comment if you have questions or suggestions before we proceed.
389
+
390
+ **Related Issues**: None yet
391
+ **Milestone**: AgentVibes v2.4.0
392
+ **Assignees**: TBD
393
+ **Priority**: High (highly requested feature)