
If you're tired of Slack messages that look broken because you used Markdown instead of mrkdwn, this is for you. It teaches Claude the weird syntax differences (single asterisks for bold, pipe-separated links in angle brackets, no header support) and pushes you toward better message structure. The guidance on leading with the point and using threads appropriately is solid. Most useful when you're drafting announcements or important messages where formatting actually matters. It won't make your meetings shorter, but at least your update posts will scan better on mobile.
$ npx -y skills add anthropics/knowledge-work-plugins --skill slack-messaging --agent claude-codeInstalls into .claude/skills of the current project.
This skill provides guidance for composing well-formatted, effective Slack messages.
Apply this skill whenever composing, drafting, or helping the user write a Slack message — including when using slack_send_message, slack_send_message_draft, or slack_create_canvas.
Slack uses its own markup syntax called mrkdwn, which differs from standard Markdown. Always use mrkdwn when composing Slack messages:
| Format | Syntax | Notes |
|---|---|---|
| Bold | *text* | Single asterisks, NOT double |
| Italic | _text_ | Underscores |
| Strikethrough | ~text~ | Tildes |
| Code (inline) | `code` | Backticks |
| Code block | ```code``` | Triple backticks |
| Quote | > text | Angle bracket |
| Link | <url|display text> | Pipe-separated in angle brackets |
| User mention | <@U123456> | User ID in angle brackets |
| Channel mention | <#C123456> | Channel ID in angle brackets |
| Bulleted list | - item or • item | Dash or bullet character |
| Numbered list | 1. item | Number followed by period |
**bold** (double asterisks) — Slack uses *bold* (single asterisks)## headers — Slack does not support Markdown headers. Use *bold text* on its own line instead.[text](url) for links — Slack uses <url|text> format--- for horizontal rules — Slack does not render these*bold* for names, dates, deadlines, and action items so they stand out when scanning.reply_broadcast (also post to channel) only when the reply contains information everyone needs to see.#general is usually more formal than #random.Sponsors