Interact with Slack workspaces using browser automation. Use when the user needs to check unread channels, navigate Slack, send messages, extract data, find information, search conversations, or automate any Slack task. Triggers include "check my Slack", "what channels have unreads", "send a message to", "search Slack for", "extract from Slack", "find who said", or any task requiring programmatic Slack interaction.
74
67%
Does it follow best practices?
Impact
79%
4.93xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/slack/SKILL.mdQuality
Discovery
100%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a strong skill description that clearly defines its scope (Slack workspace interaction via browser automation), lists specific capabilities, and provides explicit trigger guidance with natural user phrases. It follows third-person voice throughout and covers both the 'what' and 'when' comprehensively. Minor improvement could include mentioning file formats or specific Slack features (threads, DMs, channels) but overall this is well-crafted.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: check unread channels, navigate Slack, send messages, extract data, find information, search conversations, and automate Slack tasks. Also specifies the method (browser automation). | 3 / 3 |
Completeness | Clearly answers both 'what' (interact with Slack workspaces using browser automation, with specific actions listed) and 'when' (explicit 'Use when...' clause plus a 'Triggers include' section with concrete example phrases). | 3 / 3 |
Trigger Term Quality | Excellent coverage of natural trigger phrases users would actually say: 'check my Slack', 'what channels have unreads', 'send a message to', 'search Slack for', 'extract from Slack', 'find who said'. These are realistic user utterances. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive — clearly scoped to Slack workspaces specifically, with the browser automation method further narrowing its niche. The trigger terms are all Slack-specific and unlikely to conflict with other skills. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
35%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill provides a comprehensive guide to Slack browser automation with concrete commands and good structural organization. However, it is significantly too verbose, includes session-specific element refs that will mislead rather than help, and lacks validation/error-recovery steps critical for fragile browser automation workflows. Trimming redundant explanations, removing hardcoded refs, and adding error handling guidance would substantially improve it.
Suggestions
Remove hardcoded element refs (@e12, @e13, @e14, @e21) — these are session-specific and unreliable. Instead, instruct Claude to identify elements by their accessible name/role in each snapshot.
Cut the 'Sidebar Structure', 'Tabs in Slack', and 'Limitations' sections — Claude can discover UI structure from snapshots and doesn't need to be told this is browser automation, not API access.
Add explicit validation/error-recovery steps: check that connection succeeded, verify elements exist before clicking, handle cases where Slack hasn't fully loaded or requires re-authentication.
Reduce the file by at least 40% by removing explanatory prose and consolidating the many similar 'Common Tasks' examples into a concise pattern with one detailed example.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is excessively verbose at ~200+ lines. It explains Slack's sidebar structure, tab layout, and general UI concepts that Claude can discover via snapshots. Hardcoded ref numbers like @e12, @e13, @e14 are session-specific and misleading. The 'Limitations' section explains obvious things (e.g., 'this uses browser automation, not the Slack API'). Much of this content is redundant or unhelpful. | 1 / 3 |
Actionability | Commands like `agent-browser connect 9222`, `agent-browser snapshot -i`, and `agent-browser click @eXX` are concrete and executable. However, the hardcoded element refs (@e12, @e13, @e14, @e21) are session-specific and unreliable, making many examples not truly copy-paste ready. The 'fill @e_search' placeholder syntax is pseudocode-like. | 2 / 3 |
Workflow Clarity | The Core Workflow section provides a clear 5-step sequence, and the full example at the end shows a complete flow. However, there are no validation checkpoints or error recovery steps — no guidance on what to do if a ref doesn't exist, if Slack hasn't loaded, or if connection fails. For browser automation (which is fragile), missing feedback loops is a significant gap. | 2 / 3 |
Progressive Disclosure | The content is organized with clear headers and sections, which aids navigation. However, it's monolithic — all content is inline in one large file when sections like 'Sidebar Structure', 'Extracting Data', and the full example script could be split into referenced files. The References section at the end links to external Slack docs but not to any companion skill files. | 2 / 3 |
Total | 7 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
allowed_tools_field | 'allowed-tools' contains unusual tool name(s) | Warning |
Total | 10 / 11 Passed | |
fa043a4
Table of Contents
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.