CtrlK
BlogDocsLog inGet started
Tessl Logo

slack

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

4.93x
Quality

67%

Does it follow best practices?

Impact

79%

4.93x

Average score across 3 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/slack/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

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.

DimensionReasoningScore

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.

DimensionReasoningScore

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.

Validation10 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

Total

10

/

11

Passed

Repository
vercel-labs/agent-browser
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.