slack-development
Installation
SKILL.md
Implement Slack-facing behavior with predictable formatting, inbound routing, and responsive long-running UX.
Step 1: Classify the requested change
Determine which category applies before writing code:
| Category | Typical request | Primary reference |
|---|---|---|
| Output formatting | "Fix markdown", "why does Slack render this weirdly?" | ${CLAUDE_SKILL_ROOT}/references/slack-output-formatting.md |
| Slack event payloads | "What does Slack send?", "why did raw event parsing fail?" | ${CLAUDE_SKILL_ROOT}/references/slack-inbound-message-formats.md |
| Chat SDK payload contract | "What fields do handlers actually receive?", "which fields are reliable in onSubscribedMessage?" |
${CLAUDE_SKILL_ROOT}/references/chat-sdk-payload-contract.md |
| Thread routing | "Passive detector skips thread replies", "reply/no-reply logic is wrong" | ${CLAUDE_SKILL_ROOT}/references/slack-thread-routing.md |
| Assistant-thread APIs | "Why does assistant.threads.setStatus fail?", "should this DM have assistant status/title?", "does Chat tab DM count as an assistant thread?" |
Read Slack docs for assistant_thread_started, assistant_thread_context_changed, message.im, and assistant.threads.* first, then load ${CLAUDE_SKILL_ROOT}/references/assistant-thread-apis.md and ${CLAUDE_SKILL_ROOT}/references/chat-sdk-payload-contract.md |
| Long-running behavior | "No feedback while it runs", "show progress", "stream output" | ${CLAUDE_SKILL_ROOT}/references/chat-sdk-patterns.md |
| Multiple categories | Change touches formatting, routing, and/or runtime UX | Read only the needed references above |
If the request is ambiguous, ask one focused question and continue after clarification.