Add WhatsApp emoji reaction support — receive, send, store, and search reactions.
67
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
This skill adds emoji reaction support to NanoClaw's WhatsApp channel: receive and store reactions, send reactions from the container agent via MCP tool, and query reaction history from SQLite.
Check if src/status-tracker.ts exists:
test -f src/status-tracker.ts && echo "Already applied" || echo "Not applied"If already applied, skip to Phase 3 (Verify).
git remote -vIf whatsapp is missing, add it:
git remote add whatsapp https://github.com/qwibitai/nanoclaw-whatsapp.gitgit fetch whatsapp skill/reactions
git merge whatsapp/skill/reactions || {
git checkout --theirs package-lock.json
git add package-lock.json
git merge --continue
}This adds:
scripts/migrate-reactions.ts (database migration for reactions table with composite PK and indexes)src/status-tracker.ts (forward-only emoji state machine for message lifecycle signaling, with persistence and retry)src/status-tracker.test.ts (unit tests for StatusTracker)container/skills/reactions/SKILL.md (agent-facing documentation for the react_to_message MCP tool)src/db.ts, src/channels/whatsapp.ts, src/types.ts, src/ipc.ts, src/index.ts, src/group-queue.ts, and container/agent-runner/src/ipc-mcp-stdio.tsnpx tsx scripts/migrate-reactions.tsnpm test
npm run buildAll tests must pass and build must be clean before proceeding.
npm run buildLinux:
systemctl --user restart nanoclawmacOS:
launchctl kickstart -k gui/$(id -u)/com.nanoclawsqlite3 store/messages.db "SELECT * FROM reactions ORDER BY timestamp DESC LIMIT 5;"Ask the agent to react to a message via the react_to_message MCP tool. Check your phone — the reaction should appear on the message.
Failed to process reaction errorsstore/messages.db exists and is accessibleUnauthorized IPC reaction attempt blocked — the agent can only react in its own group's chat7454673
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.