slack-message
Rules for sending Slack messages and reference request payloads.
Skill by ahstn
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/ahstn-slack-message
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/slack-message
What's inside
- Skill name
slack-message- Description
- Rules for sending Slack messages and reference request payloads.
- License
- MIT
- Instructions
- 40 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (3)
- SKILL.md
- variables.example.jsonc · references/
- .gitignore · sensitive/
SKILL.md (first lines)
# Slack message
- Use `skill://personality` to draft messages. Always end each sent message, including thread replies, with a Block Kit `context` block: `:omp: Sent by Adam's Interns` as a footer.
- Use `mrkdwn` for the footer so custom emoji render. Assume `:omp:` exists in the workspace. Avoid adding it to the message body.
- Include the body and footer in top-level `text` for notifications and screen readers. The footer does not change sender identity.
- Current Slack MCP send/draft/schedule tools lack `blocks`. Use direct HTTP with an existing authorised Slack token; never print or store the token. If no token is available, report the blocker; do not replace the footer with normal text.
- Confirm the recipient before sending. Check Slack's JSON `ok` field, retain returned `channel` and `ts`, and return the permalink. Do not retry an uncertain send without checking for duplicates.
- If the message or user prompt is ambiguous or uncertain, use `ask` for clarification and alignment before sending. Examples: the prompt does not match the current Slack state, or the channel, recipient or target message is unclear. Do not guess the intended destination or content.
## Local lookup
- Before resolving a recipient, check that `sensitive/variables.json` exists relative to this skill. If it exists, read it and use it first.
- If missing, use `ask` to offer two options: the user creates the file, or you create it from their frequent chats. For the second option, ask which users, channels or group chats to include, then resolve their IDs with read-only Slack calls. Do not guess IDs or send messages during setup. Keep the file gitignored.
- Use three maps: `users` keyed by username, `channels` keyed by channel name, and `group_chats` keyed by comma-separated participant usernames. Each value is an object with `id` and `notes` strings; see [`variables.example.jsonc`]. Read `.id` for API requests and `.notes` for destination guidance. Group chat IDs can be used directly as `channel`, regardless of ID prefix. Search Slack for missing entries.
## Tested requests
Run in the shell where the tokens are available. Replace placeholders with values from the gitignored [`variables.json`] and API responses; use the returned DM channel ID for direct messages. Add `thread_ts` to the send payload for replies.
```bash
TOKEN="${SLACK_XOXP_TOKEN:-${SLACK_MCP_XOXP_TOKEN}}"
# Verify identity.
curl -sS --max-time 30 https://slack.com/api/auth.test -H "Authorization: Bearer $TOKEN"
# Open a DM; use the returned channel.id below.
curl -sS --max-time 30 https://slack.com/api/conversations.open -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json; charset=utf-8' --data '{"users":"<user ID>"}'
# Send; \u0027 preserves the apostrophe inside shell single quotes.
curl -sS --max-time 30 https://slack.com/api/chat.postMessage -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json; charset=utf-8' --data '{"channel":"<channel ID>","text":":omp: Footer test.\nSent by Adam\u0027s Interns","blocks":[{"type":"section","text":{"type":"mrkdwn","text":":omp: Footer test."}},{"type":"context","elements":[{"type":"mrkdwn","text":":omp: Sent by Adam\u0027s Interns"}]}]}'
# Get the link: this method uses query parameters, not a JSON body.
curl -sS --max-time 30 --get https://slack.com/api/chat.getPermalink -H "Authorization: Bearer $TOKEN" --data-urlencode 'channel=<channel ID>' --data-urlencode 'message_ts=REPLACE_WITH_RETURNED_TS'
unset TOKEN
```
See [Context block | Slack] and [chat.postMessage API method | Slack].
[Context block | Slack]: https://docs.slack.dev/reference/block-kit/blocks/context-block/
[chat.postMessage API method | Slack]: https://docs.slack.dev/reference/methods/chat.postMessage/
[`variables.json`]: sensitive/variables.json
[`variables.example.jsonc`]: references/variables.example.jsoncFrom ahstn/dotfiles, MIT.
More from ahstn/dotfiles
- 0.609score
kubes-mode-v2
ahstn
Personal working mode for software engineering tasks.
SkillAFreshness: A★ 3Claude Code +9 - 0.609score
jira-manager
Jira skill maintainers
Use this skill for all Jira workflows: create epics and issues, transition tickets, add comments, search with JQL, and manage the backlog.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
computer-use-cua-driver
ahstn
Operate native macOS, Windows, or Linux GUI applications with Cua Driver through an available MCP connection or the installed CLI.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
code-review-and-quality
ahstn
Reviews staged or unstaged diffs, branches, and GitHub pull requests for defects and material code-health costs.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
tty-fork
ahstn
Start a fresh or forked OMP session in a right or below split, or a new tab, in tty7, Herdr, or Tern.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
github-librarian
ahstn
Use when looking up GitHub repositories, upstream source, or library internals, either via quick `gh search` queries or by cloning into ~/.cache/github/ for…
SkillAFreshness: A★ 3Claude Code +9 - 0.560score
kubes-mode
ahstn
No description from the publisher yet.
SkillAFreshness: A★ 3Claude Code +9 - 0.557score
personality
ahstn
Draft, edit, or review professional writing in the user's conversational engineering voice.
SkillBFreshness: B★ 3Claude Code +9 - 0.534score
github-yeet
OpenAI
Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request
SkillAFreshness: A★ 3Claude Code +9 - 0.514score
code-structure-and-modularity
ahstn
Code structure and module-boundary rubric for writing, extending, reviewing, or reorganizing code.
SkillCFreshness: C★ 3Claude Code +9 - 0.486score
wayfinder
ahstn
Plan a huge chunk of work — more than one agent session can hold — as a shared map of investigation tickets on your issue tracker, and resolve them one at a…
SkillCFreshness: C★ 3Claude Code +9 - 0.484score
grill
ahstn
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree.
SkillCFreshness: C★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 23, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/ahstn/dotfiles
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ahstn
- 0.609score
kubes-mode-v2
ahstn
Personal working mode for software engineering tasks.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
code-review-and-quality
ahstn
Reviews staged or unstaged diffs, branches, and GitHub pull requests for defects and material code-health costs.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
computer-use-cua-driver
ahstn
Operate native macOS, Windows, or Linux GUI applications with Cua Driver through an available MCP connection or the installed CLI.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
github-librarian
ahstn
Use when looking up GitHub repositories, upstream source, or library internals, either via quick `gh search` queries or by cloning into ~/.cache/github/ for…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
tty-fork
ahstn
Start a fresh or forked OMP session in a right or below split, or a new tab, in tty7, Herdr, or Tern.
SkillAFreshness: A★ 3Claude Code +9 - 0.560score
kubes-mode
ahstn
No description from the publisher yet.
SkillAFreshness: A★ 3Claude Code +9
Cite this page
slack-message skill. Agent Mart. https://agentmart.dev/skills/ahstn-slack-message (last updated 2026-10-24)