slack-development
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.
Step 2: Load only relevant references and implement
More from getsentry/junior
nitro
Build and deploy universal JavaScript servers with Nitro v3. Use when working with nitro.config.ts, defineNitroConfig, defineHandler, defineConfig, server.ts entry, filesystem routing, route rules, useStorage, defineCachedHandler, useDatabase, definePlugin, runtime hooks, Vercel/Cloudflare deployment, or migrating from Nitro v2/nitropack.
2public-docs
Create and maintain public, user-facing product documentation for this repo's `packages/docs` app. Use when asked to write, revise, or review docs pages (tutorial/concept/reference/troubleshooting), improve docs information architecture, fix docs frontmatter/linking issues, or align docs quality with Vercel/Sentry-style standards.
2deslop
Simplifies code interfaces and removes codebase slop while preserving behavior. Use when asked to "deslop", "simplify this interface", "remove cruft", "clean up comments", or "reduce code slop". Enforces hard guardrails for smaller public surfaces, dead-code removal, and high-signal comments.
1vercel-sandbox
Investigate Vercel Sandbox lifecycle, timeout, snapshot, and persistence behavior. Use when users ask about Vercel Sandbox, `@vercel/sandbox`, `Sandbox.create`, `Sandbox.get`, why files disappeared, how snapshots differ from persistence, or whether Vercel's persistent sandbox beta applies.
1vercel-queues
Build and operate Vercel Queues with @vercel/queue across push and poll consumers. Use when users ask about "vercel queues", "@vercel/queue", "queue/v2beta", "handleCallback", "PollingQueueClient", "receive", queue retries, visibility timeouts, idempotency keys, or queue region routing.
1slack-msw-tests
Author Slack HTTP integration tests using the repository MSW harness and fixture factories. Use when asked to add a Slack integration test, mock Slack API calls with MSW, test Slack action HTTP behavior, or assert Slack request payloads in tests.
1