Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ccheney/robust-skills --skill slack-block-kitgit clone --depth 1 https://github.com/ccheney/robust-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ccheney/robust-skills/slack-block-kit)<a href="https://agentmods.dev/skills/ccheney/robust-skills/slack-block-kit"><img src="https://agentmods.dev/badge/skills/ccheney/robust-skills/slack-block-kit/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ccheney/robust-skills/slack-block-kit"><img src="https://agentmods.dev/badge/skills/ccheney/robust-skills/slack-block-kit.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00212 | $0.06640 |
| Opus 5 | $0.00106 | $0.03320 |
| Sonnet 5 | $0.00042 | $0.01328 |
| Haiku 4.5 | $0.00021 | $0.00664 |
Grade A, and why
slack-block-kit scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 491 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Slack Block Kit
UI framework for building rich, interactive layouts in Slack messages, modals, and App Home.
CRITICAL: Two Markup Systems
Text inside Block Kit text objects uses Slack mrkdwn syntax (*bold*, <url|text>), NOT standard Markdown. The only exception is the markdown block, which accepts standard Markdown (**bold**, [text](url)). Mixing these up is the single most common Block Kit generation error.
Quick Decision Trees
"Should I use blocks?"
Response type?
├─ Conversational reply, short answer, <3 lines → text only (no blocks)
├─ Multi-section summary, report, dashboard → blocks
├─ Two-column key-value data → blocks (section fields)
├─ Tabular data → blocks (table / data_table)
├─ Charts or metrics visualization → blocks (data_visualization)
├─ Code with heading or surrounding context → blocks
├─ Visual separation needed between topics → blocks
└─ Feedback buttons or interactive elements → blocks
"Which block type?"
What am I rendering?
├─ Large section title → header (plain_text, 150 chars max)
├─ Body text or key-value pairs → section (text + fields + accessory)
├─ Small metadata or secondary info → context (images + text, 10 max)
├─ Horizontal separator → divider
├─ Buttons, menus, date pickers → actions (25 elements max)
├─ Status callout in a MODAL → alert (modals only, 200 chars)
├─ Compact entity or summary preview → card (optional image/actions)
├─ Multiple comparable cards/options → carousel (1-10 cards)
├─ Grouped/collapsible block set → container (title + ≤10 child blocks)
├─ Standalone image → image (image_url or slack_file)
├─ Formatted text with lists, quotes → rich_text (nested sub-elements)
├─ Simple static table → table (100 rows, 20 cols)
├─ Sortable/paginated table → data_table (caption + 200 data rows)
├─ Pie/bar/area/line chart → data_visualization (native charts)
├─ LLM-generated markdown content → markdown (standard MD, messages only)
├─ Embedded video player → video (requires links.embed:write)
├─ Remote file reference → file (read-only, source: "remote")
├─ Feedback thumbs up/down → context_actions (messages only)
├─ Collecting user input → input (label + element)
├─ AI agent task steps → plan (sequential tasks, messages only)
└─ Single task with status → task_card (inside plan or standalone)
What ships with it
7 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 491 lines · 212 tokens per session scan A 6faf9ad7ca20
slack-block-kit is a skill published in the GitHub repository ccheney/robust-skills (57 stars, last pushed 13d ago), licensed MIT. It adds 212 tokens to every session and 6,640 once invoked, about $0.0011 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
principle-clean-architecture
Clean Architecture, hexagonal architecture, ports and adapters, and dependency rule. Auto-load when designing architecture, choosing layers, ports, adapters, or keeping the domain free of framework code.
principle-resiliency
Resiliency principles — fault tolerance, partial failure, failure domains, bulkheads, fail-fast vs fail-soft, health checks, liveness vs readiness probes, idempotency keys, safe retry, deduplication, exactly-once effects, token and leaky buckets, synchronized retries, and 429 responses. Auto-load when isolating…
principle-distributed-systems
Distributed systems principles — CAP, consistency models (linearizable, causal, eventual, read-your-writes), quorum, leader election, partitioning, idempotency across nodes, fallacies of distributed computing. Auto-load when reasoning about CAP/PACELC trade-offs, choosing a consistency model, ordering events with…
principle-error-handling
Error handling principles — errors as values vs exceptions, wrapping and context chains, retry with exponential backoff and jitter, circuit breakers and bulkheads, log-once boundary discipline. Auto-load when discussing errors as values, retry, exponential backoff, jitter, fail fast, fail soft, idempotent retry, error…
principle-performance
Performance engineering principles — latency vs throughput, profile-before-optimize discipline, Big-O instincts for common patterns, data locality and cache-friendliness, N+1 queries on a list endpoint, TTL sizing for hot-path endpoints, stampede prevention with single-flight. Auto-load when reviewing hot-path code…
principle-api-design
API design principles — contract-first thinking, semantic versioning, idempotency keys, pagination (offset vs cursor), REST vs RPC vs event-driven trade-offs, resource modeling, deprecation strategy. Auto-load when designing an API, adding api versioning, adding pagination, shaping error responses, or evolving a…