CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

slack-notifier

Use this skill when you want to send Slack messages — alerts, formatted reports, approval requests, or scheduled summaries — using Block Kit for rich formatting.

Quality

81%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

86%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A lean, code-first skill that covers the description's promised message types with concrete, mostly copy-paste-ready Python and a helpful Quick Reference table. Its main gaps are executability details (missing imports, undefined client global, unused SlackApiError, unmentioned ANTHROPIC_API_KEY) and the total absence of validation/error-recovery guidance.

Suggestions

Make the code runnable as shown: add the missing imports (`os`, `time`, `datetime`) and either construct the `WebClient` inside each function or show a single top-level initialization that the functions use.

Use the imported `SlackApiError` with a short try/except pattern (and verify the returned `ts`) so send failures are caught rather than silently crashing.

Add `ANTHROPIC_API_KEY` to the Setup section (and consider a parameter for the model in `post_ai_summary`) so the AI summary function works out of the box.

DimensionReasoningScore

Conciseness

The body is almost entirely executable code with minimal prose: a two-line Overview, a Setup block, five code sections, and a compact Quick Reference table. It explains nothing Claude already knows and every section earns its place, matching anchor 5 (lean and efficient, assumes Claude's competence).

5 / 5

Actionability

The five functions are concrete, copy-paste-ready Python covering the common cases (message, alert, approval, thread reply, AI summary), matching anchor 4 (mostly executable, minor gaps). It falls short of 5 because of those gaps: `os`, `time`, and `datetime` are used but never imported, the `slack` client is assumed as a global from an earlier section, `anthropic` is imported mid-file with no mention of `ANTHROPIC_API_KEY` in Setup, and `SlackApiError` is imported but never used — the code would not run as shown without fixes.

4 / 5

Workflow Clarity

Setup (install, create app, export token) is a clear sequence and each message type is an unambiguous single action under its own heading, consistent with the simple-skill exception. It stays at anchor 4 rather than 5 because there is no verification or error-recovery guidance at all — no error handling despite `SlackApiError` being imported, and no confirmation the channel exists or the message posted successfully.

4 / 5

Progressive Disclosure

The skill has no bundle files and no external references, and at ~135 lines of self-contained code it doesn't need any. Sections are well organized (Overview, Setup, task sections, Quick Reference navigation table), so per the scoring note for self-contained skills this matches anchor 5 (clear organization, easy navigation, no buried references).

5 / 5

Total

18

/

20

Passed

Description

70%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, compact description with explicit what/when structure, good natural trigger terms, and a distinct Slack/Block Kit niche. Its main weaknesses are the second-person voice ("when you want to"), which is penalized, and a 'when' clause that largely restates the 'what' instead of adding independent trigger conditions.

Suggestions

Rewrite in third person to match the guideline's voice requirement, e.g. "Sends Slack messages with Block Kit rich formatting: alerts, formatted reports, approval requests, and scheduled summaries. Use when the user asks to send Slack messages, notifications, approval requests, or post formatted reports to a channel."

Add common trigger synonyms users would naturally say — "Slack notification", "ping me on Slack", "post to a channel" — to raise trigger-term coverage.

Make the 'when' clause independent of the 'what' by citing user-side triggers (mentions of Slack, alerts needing to be sent, approval workflows) rather than restating the message types.

DimensionReasoningScore

Specificity

The description lists several concrete actions — "send Slack messages — alerts, formatted reports, approval requests, or scheduled summaries — using Block Kit for rich formatting" — which initially matches anchor 4 (several specific actions, minor gaps such as threaded replies). However, it is written in second person ("when you want to send"), which the guidelines penalize by reducing the specificity score by 1, landing it at anchor 3 (names the domain and concrete actions, not comprehensive).

3 / 5

Completeness

Both 'what' (send Slack messages with Block Kit: alerts, reports, approval requests, summaries) and 'when' ("Use this skill when you want to send Slack messages") are present. It falls short of anchor 5 because the 'when' clause restates the 'what' rather than offering independent, concrete trigger conditions (e.g., "when the user mentions Slack, notifications, or approval flows"), but is stronger than anchor 3 since the trigger is explicit.

4 / 5

Trigger Term Quality

Natural trigger terms are present: "Slack messages", "alerts", "approval requests", "summaries", "Block Kit". A few common variations users would say are missing (e.g., "notification", "ping me", "post to a channel"), matching anchor 4 (good keyword coverage, a few natural terms missing) rather than anchor 5 (full synonym and extension coverage) or anchor 3 (only some relevant keywords).

4 / 5

Distinctiveness Conflict Risk

"Send Slack messages ... using Block Kit for rich formatting" carves a clear niche with distinct triggers, but overlaps slightly with generic Slack/webhook/messaging skills where a simple "post this to Slack" request could match either. Fits anchor 4 (mostly distinct, minor overlap risk) better than anchor 5 (minimal conflict risk).

4 / 5

Total

15

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

ProwlrBot/prowlr-marketplace

Path

external/goose-recipes/slack-notifier/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.