# Slack

> Slack

- Skill: `wimpysworld/slack` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add wimpysworld/slack`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wimpysworld/slack/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: wimpysworld (https://skillmd.com/u/wimpysworld)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wimpysworld/slack

---


# Slack

Read with the Slack MCP tools. Write with `slack-post`.

Do not use `slack_send_message`, `slack_send_message_draft`, `slack_schedule_message`, or `slack_update_canvas`. Read, search, and reaction tools are fine.

## slack-post

```
slack-post <target> --body-file PATH [--thread-ts TS]
slack-post <message-url> --body-file PATH
```

| Target | Result |
| --- | --- |
| `C0ABEN38TRB` | Post at the top of that channel or DM |
| `'#eng-fulfillment-automation'` | Post to a public channel by name |
| `U08V6EV65TQ` | DM that person |
| `https://acme.slack.com/archives/C.../p1785267943715149` | Reply inside that message's thread |

Pass a message URL unchanged. Never hand-convert the `p1785267943715149` path timestamp.

Where `slack-post` is missing, print the command for the operator to run.

## Rules

**Keep it short.** Slack is chat, not a document. One or two sentences is normal. No headings, no bullet lists, no sign-off. Nobody wants an essay in Slack, and a long message reads as generated even when every fact in it is right.

**Resolve a channel name to an ID first** with `slack_search_channels`. A name only reaches a public channel.

**Write the body to a file.** Quotes, backticks, and newlines survive.

**Reply in the thread when the target is a thread.**

**Apply `communication-rules` before drafting.** Read it first unless its complete, current instructions are already in this context.

**Apply `contribution-voice` before drafting.** Read it first unless its complete, current instructions are already in this context. Anything posted publishes under the user's name. Run its cut pass, then cut again for Slack.

**Report the `ts` that `slack-post` prints.**

