container/skills/whatsapp-formatting/SKILL.md
Format messages for WhatsApp, including mentions that render as real WhatsApp tags. Use when responding in a WhatsApp conversation (platform_id / chatJid ends with @s.whatsapp.net or @g.us).
npx skillsauth add qwibitai/nanoclaw whatsapp-formattingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
WhatsApp uses its own lightweight markup and a phone-number-based mention syntax. The host's WhatsApp adapter (Baileys) handles markdown conversion automatically, but mentions are only protocol-level mentions if you use the right syntax — otherwise they render as plain text and don't notify the recipient.
You're in a WhatsApp conversation when any of these are true:
@s.whatsapp.net (1-on-1 DM)@g.us (group)chatJid matching the aboveTo tag a user so their name appears bold and clickable in WhatsApp and they get a push notification, write the @ followed by their phone number digits (no +, no spaces, no display name):
@15551234567 can you confirm?
The adapter scans your outgoing text for @<digits> (5–15 digits, optional leading + is stripped) and tells WhatsApp to render them as real mention tags.
The sender's phone JID is always in your inbound message metadata. When a user writes to you, inbound content.sender looks like [email protected]. The part before the @ is exactly what you put after @ when tagging them back.
| You write | What recipients see |
|-----------|---------------------|
| @Adam can you... | Plain text @Adam. No tag, no notification. |
| @15551234567 can you... | Bold/blue @Adam (or whatever name they're saved as), notification fires. |
| @+15551234567 ... | Same as above — adapter strips the +. |
participants / inbound content.sender to find the JID of the person you mean. Don't guess from display names — pushNames can collide and are not reliable.@<name> — it won't tag and it will look like a tag that failed.WhatsApp uses single-character delimiters, not doubled like standard Markdown.
| Style | Syntax | Renders as |
|-------|--------|------------|
| Bold | *bold* | bold |
| Italic | _italic_ | italic |
| Strikethrough | ~strike~ | ~strike~ |
| Monospace | `code` | code |
| Block monospace | ```block``` | preformatted block |
The adapter converts standard Markdown (**bold**, [link](url), # heading) to the WhatsApp-native form automatically, so you don't have to think about it — but be aware that single asterisks become italics, not bold.
<@U123> (that's Slack), <@!123> (Discord), or any other channel's mention syntax.@[email protected] in the text — only the digits before the JID's @ go after your @.tools
Introduce yourself to a newly connected channel. Triggered automatically when a channel is first wired. Send a friendly greeting and brief overview of what you can do.
tools
Pro frontend engineering discipline. Enforces build-test-verify workflow for every web project. Never declare done until the site is built, tested, responsive, accessible, and visually verified in a real browser. Pairs with a deployment skill such as vercel-cli, where one is installed.
tools
Customize your own agent — add capabilities, install packages, add MCP servers, edit code or CLAUDE.md. Use when the user asks you to add a feature, install a tool, or modify how you work. For non-trivial code changes, delegate to a builder agent via create_agent.
development
Browse the web for any task — research topics, read articles, interact with web apps, fill forms, take screenshots, extract data, and test web pages. Use whenever a browser would be useful, not just when the user explicitly asks.