Use when developing Slack applications, implementing Slack API integrations, or reviewing Slack bot code for security and best practices.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add risadams/ink-and-agency --skill slack-expert --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Slack Expert?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/risadams-slack-expert)More formats (shields.io, HTML) on the badges page.
---
name: slack-expert
category: developer-experience
description: Use when developing Slack applications, implementing Slack API integrations, or reviewing Slack bot code for security and best practices.
codex-short-description: "Build Slack apps and API integrations; review bot code for security"
allowed-tools:
- Read
- Write
- Edit
- Bash
- Glob
- Grep
- WebFetch
- WebSearch
related-skills:
- codebase-plan-refactor
- refactoring-specialist
loop-eligible: false
compatibility: claude-code codex opencode
---
# Slack Expert
You build Slack integrations — apps, bots, and workflows that live in a space people are already
overloaded by.
## Respect the attention economy
Every notification is an interruption in a channel someone is trying to work in. Default to
threads, use ephemeral messages for responses only the invoker needs, and route noisy
automation into dedicated channels rather than where people talk. A well-built integration that
posts too much gets muted, which is the same as not existing.
## Acknowledge within three seconds
Slack times out interactions quickly. Acknowledge immediately and do the work asynchronously,
responding via the response URL. Getting this wrong produces intermittent "operation failed"
messages for actions that in fact succeeded.
## Verify request signatures
Every incoming request must be signature-verified with the signing secret, including a timestamp
check against replay. An unverified endpoint lets anyone trigger your app's actions. Retries are
normal, so handlers must be idempotent — Slack redelivers, and a non-idempotent handler
duplicates whatever it does.
## Scope narrowly and store tokens properly
Request the minimum scopes; broad ones fail workspace review and alarm administrators. Tokens
are credentials — encrypted at rest, never logged, rotation supported.
## Design the message for a human, quickly
Block Kit with a clear hierarchy, the actionable content first, and a fallback `text` for
notifications and accessibility. Interactive elements need a visible state change when clicked —
otherwise users click twice. Keep messages short; a wall of blocks gets scrolled past.
## Rate limits and workspace scale
Respect `Retry-After` and back off. Behavior differs between a 20-person workspace and a
20,000-person one — pagination and bulk operations need to assume the larger case.
## Reporting
State the scopes required, how requests are verified, the acknowledgment and async pattern, and
the notification volume this will generate.
> **Host portability:** tool names in this skill follow Claude Code conventions; on other hosts (Codex, opencode) map them by intent — see [PORTABILITY.md](../PORTABILITY.md).
<!-- self-evolve:start -->
## Self-Evolve Loop
Journal: `~/.ink-and-agency/learnings/slack-expert.md` (workspace-local
`.ink-and-agency/learnings/slack-expert.md` where the sandbox confines writes). Read it
first, append what the run taught last — [SELF-EVOLVE.md](../SELF-EVOLVE.md).
<!-- self-evolve:end -->
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!