block-kit
Installation
SKILL.md
Block Kit
Help the developer build a rich Block Kit layout. If $0 is provided, it specifies the target surface (message, modal, or home-tab).
This skill walks through surface selection, layout planning, JSON generation, and validation. Block types, elements, and fields come from the live docs (see Source of Truth below) — discover them and read each component's schema there, never from memory.
Common Block Kit mistakes (and why): A few errors recur often enough to flag up front. Most others are caught by
blocks.validatein Step 5, so lean on validation rather than memorizing rules.
"type": "text"is not a thing. Text is a composition object:{ "type": "plain_text", "text": "..." }or{ "type": "mrkdwn", "text": "..." }.markdownis a block type, not a text type. Amarkdownblock holds standard markdown; text objects inside other blocks usemrkdwn(see mrkdwn vs. themarkdownblock in Step 4). Slack'smrkdwnis*bold*/_italic_/~strike~, not**bold**.- Messages need a top-level
textfallback.blocks.validatewon't flag a missing one, but notifications and screen readers display it instead of the blocks — so summarize what the layout conveys rather than leaving it empty.
Source of Truth: the Live Docs
Every block, element, and composition object is documented on docs.slack.dev. Append .md to any reference URL to fetch it as markdown with WebFetch (no auth required).