feat(skill): add WhatsApp reactions skill (emoji reactions + status tracker) (#509)

* feat(skill): add reactions skill (emoji reactions + status tracker)

* refactor(reactions): minimize overlays per upstream review

Address gavrielc's review on qwibitai/nanoclaw#509:
- SKILL.md: remove all inline code, follow add-telegram/add-whatsapp pattern (465→79 lines)
- Rebuild overlays as minimal deltas against upstream/main base
- ipc-mcp-stdio.ts: upstream base + only react_to_message tool (8% delta)
- ipc.ts: upstream base + only reactions delta (14% delta)
- group-queue.test.ts: upstream base + isActive tests only (5% delta)
- Remove group-queue.ts overlay (isActive provided by container-hardening)
- Remove group-queue.ts from manifest modifies list

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Yonatan Azrielant
2026-03-08 14:02:20 -04:00
committed by GitHub
parent 5b2bafd7bb
commit ab9abbb21a
16 changed files with 6985 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
---
name: reactions
description: React to WhatsApp messages with emoji. Use when the user asks you to react, when acknowledging a message with a reaction makes sense, or when you want to express a quick response without sending a full message.
---
# Reactions
React to messages with emoji using the `mcp__nanoclaw__react_to_message` tool.
## When to use
- User explicitly asks you to react ("react with a thumbs up", "heart that message")
- Quick acknowledgment is more appropriate than a full text reply
- Expressing agreement, approval, or emotion about a specific message
## How to use
### React to the latest message
```
mcp__nanoclaw__react_to_message(emoji: "👍")
```
Omitting `message_id` reacts to the most recent message in the chat.
### React to a specific message
```
mcp__nanoclaw__react_to_message(emoji: "❤️", message_id: "3EB0F4C9E7...")
```
Pass a `message_id` to react to a specific message. You can find message IDs by querying the messages database:
```bash
sqlite3 /workspace/project/store/messages.db "
SELECT id, sender_name, substr(content, 1, 80), timestamp
FROM messages
WHERE chat_jid = '<chat_jid>'
ORDER BY timestamp DESC
LIMIT 5;
"
```
### Remove a reaction
Send an empty string to remove your reaction:
```
mcp__nanoclaw__react_to_message(emoji: "")
```
## Common emoji
| Emoji | When to use |
|-------|-------------|
| 👍 | Acknowledgment, approval |
| ❤️ | Appreciation, love |
| 😂 | Something funny |
| 🔥 | Impressive, exciting |
| 🎉 | Celebration, congrats |
| 🙏 | Thanks, prayer |
| ✅ | Task done, confirmed |
| ❓ | Needs clarification |