agentleFS
slackapislackapi/slack-skills-plugin/skills/slack-messaging/SKILL.md

slack-messaging

Skill165 starsChanged 2 months agoMITView on GitHub

Use when writing, drafting, scheduling, or improving a Slack message, announcement, or reply sent via the Slack MCP tools (slack_send_message, slack_send_message_draft, slack_schedule_message). Covers Slack markdown formatting, message structure, thread etiquette, reactions, and scheduling, and points to the right dialect for canvases and Block Kit.

8 other projects use a version of this, 4 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use test-driven-development and skill-creator.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • OpenAISkill

    test-driven-development

    Use when implementing any feature or bugfix, before writing implementation code

    Also in 3 projects that use this

  • SentrySkill

    skill-creator

    Create new agent skills following the Agent Skills specification. Use when asked to "create a skill", "add a new skill", "write a skill", "make a skill", "build a skill", or scaffold a new skill with SKILL.md. Guides through requirements, writing, registration, and verification.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 8 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Lead with the point: Put the most important information in the first line.

    line 57
  2. Very specific:

    Bold key information: Use bold for names, dates, deadlines, and action items so they stand out when scanning.

    line 61
  3. Distinctive:

    Reply in threads: when responding to a specific message to keep the main channel clean.

    line 65
  4. Distinctive:

    When writing announcements, use a clear structure: context, key info, call to action.

    line 74
  5. Very specific:

    Use slack_schedule_message to post later.

    line 78

“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Slack Messaging Best Practices

This skill provides guidance for composing well-formatted, effective Slack messages.

When to Use

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_schedule_message. The formatting rules below cover these message tools. slack_create_canvas uses a different, richer markdown dialect — see the Canvas note below.

Formatting

The message tools (slack_send_message, slack_send_message_draft, slack_schedule_message) accept standard markdown and convert it to Slack formatting on send. Write normal markdown. Do not use Slack's legacy mrkdwn syntax (*bold*, ~strike~); those single-character forms mean something different in standard markdown. Each text element is limited to ~5000 characters.

FormatSyntax
Bold**text**
Italic_text_ (or *text*)
Strikethrough~~text~~
Code (inline)`code`
Quote> text
Link[display text](url)
Bulleted list- item
Numbered list1. item

Block elements also work. Write them as literal markdown:

  • Code block with an optional language for syntax highlighting:

    ```python
    print("hello")
    ```
  • Table with | delimiters (escape a literal pipe inside a cell as \|):

    | Feature | Status |
    |---------|--------|
    | Tables  | works  |
  • Headers with # / ## / ###:

    ## Section title

The one thing that does not embed in a message: inline images (![alt](url)) typically render as a plain link rather than an inline image. For rich embedded layouts (buttons, images, structured cards) you need Block Kit; for a document-style surface where images do embed, use a canvas. See the Notes below.

Message Structure Guidelines

  • Lead with the point. Put the most important information in the first line. Many people read Slack on mobile or in notifications where only the first line shows.
  • Keep it short. Aim for 1-3 short paragraphs (the ~5000-character limit is a ceiling, not a target). If the message is long or structured, consider a Canvas instead.
  • Use line breaks generously. Walls of text are hard to read. Separate distinct thoughts with blank lines.
  • Use bullet points for lists. Anything with 3+ items should be a list, not a run-on sentence.
  • Bold key information. Use **bold** for names, dates, deadlines, and action items so they stand out when scanning.

Thread vs. Channel Etiquette

  • Reply in threads when responding to a specific message to keep the main channel clean.
  • Use reply_broadcast (also post to channel) only when the reply contains information everyone needs to see.
  • Post in the channel (not a thread) when starting a new topic, making an announcement, or asking a question to the whole group.
  • Don't start a new thread to continue an existing conversation; find and reply to the original message.

Tone and Audience

  • Match the tone to the channel: #general is usually more formal than #random.
  • For simple acknowledgments, add an emoji reaction with slack_add_reaction instead of a reply message (use slack_get_reactions to read existing reactions).
  • When writing announcements, use a clear structure: context, key info, call to action.

Scheduling

  • Use slack_schedule_message to post later. post_at is a Unix timestamp that must be at least 2 minutes in the future and at most 120 days out; the message body uses the same standard markdown as above.
  • Scheduled messages can't be edited via the API once set — the user manages them from Drafts & sent in Slack.

Notes

  • Canvas formatting is different. slack_create_canvas uses Canvas-flavored Markdown, a richer dialect than the message tools: headers, tables, checklists, and inline images (![alt](url)) all embed, and it also supports user/channel reference cards, callouts, and columns. Do not assume the message rules above apply — follow the slack_create_canvas tool's own formatting guidance when composing a canvas.
  • Scope: this skill owns composing and formatting the text of messages sent through the Slack MCP message tools. For interactive layouts (buttons, menus, modals, Home tabs, or any Block Kit JSON), use the block-kit skill, which composes and validates the block payload. For calling the Slack Web API directly (chat.postMessage and friends) rather than the MCP tools, use the slack-api skill.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.