Browser automation powers web testing, scraping, and AI agent interactions. The difference between a flaky script and a reliable system comes down to understanding selectors, waiting strategies, and anti-detection patterns.
48
37%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/browser-automation/SKILL.mdQuality
Discovery
32%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description reads more like an introductory paragraph for a tutorial than a skill description for selection purposes. It lacks concrete actions the skill performs, omits a 'Use when...' clause entirely, and uses an editorial/explanatory tone ('The difference between a flaky script and a reliable system...') rather than directly stating capabilities. The trigger terms are partially relevant but miss many common user phrasings.
Suggestions
Add an explicit 'Use when...' clause with trigger terms like 'browser automation', 'Puppeteer', 'Playwright', 'Selenium', 'headless browser', 'web scraping', 'web crawling', or 'automate website'.
Replace the editorial second sentence with concrete actions, e.g., 'Automates browser interactions including clicking elements, filling forms, navigating pages, handling waits, configuring selectors, and implementing anti-detection patterns.'
Use third-person declarative voice throughout (e.g., 'Guides browser automation for web testing, scraping, and AI agent interactions') instead of the current abstract/editorial tone.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (browser automation) and some actions (web testing, scraping, AI agent interactions), and mentions technical concepts (selectors, waiting strategies, anti-detection patterns), but doesn't list concrete specific actions the skill performs—it reads more like a topic introduction than a capability list. | 2 / 3 |
Completeness | The description addresses 'what' at a high level but completely lacks a 'Use when...' clause or any explicit trigger guidance for when Claude should select this skill. Per the rubric, a missing 'Use when...' clause caps completeness at 2, and the 'what' is also weak, so this scores a 1. | 1 / 3 |
Trigger Term Quality | Includes some relevant keywords like 'browser automation', 'web testing', 'scraping', 'selectors', and 'anti-detection', but misses common user terms like 'Puppeteer', 'Playwright', 'Selenium', 'headless browser', 'web crawling', 'click', 'navigate', or 'fill form'. | 2 / 3 |
Distinctiveness Conflict Risk | The mention of browser automation, selectors, and anti-detection patterns provides some distinctiveness, but 'web testing' and 'scraping' are broad enough to overlap with general web development or data extraction skills. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill is highly actionable with excellent, executable code examples covering a wide range of browser automation scenarios. However, it is severely over-long and repetitive — the same concepts (waitForTimeout bad, use getByRole, stealth plugins) are restated 2-3 times across different sections. The lack of any progressive disclosure or content splitting makes this a monolithic reference that would consume significant context window budget, and much of the content (basic retry patterns, what iframes are, CSS selector fragility) is knowledge Claude already has.
Suggestions
Split the content into a concise SKILL.md overview (~100 lines) with references to separate files like PATTERNS.md, SHARP-EDGES.md, and ANTI-DETECTION.md
Eliminate duplicate content — the waitForTimeout anti-pattern, locator priority list, and stealth setup each appear 2-3 times across Patterns, Sharp Edges, and Validation Checks sections
Remove metadata sections (Capabilities, Scope, When to Use, Limitations) from the body content — these belong in YAML frontmatter
Add a decision flowchart or brief workflow at the top: 'Testing → use these patterns; Scraping → use these patterns; Agent control → use these patterns' to improve workflow clarity
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is extremely verbose at ~500+ lines. It repeats the same concepts multiple times (e.g., waitForTimeout anti-pattern appears in Patterns, Sharp Edges, and Validation Checks; stealth pattern is duplicated similarly; locator priority is stated three times). Sections like 'Capabilities', 'Scope', 'When to Use', and 'Limitations' are metadata that belong in frontmatter, not body content. Much of this content (what CSS selectors are, how iframes work, basic retry patterns) is knowledge Claude already possesses. | 1 / 3 |
Actionability | The skill provides extensive, executable code examples throughout — complete Playwright test configurations, stealth setup, retry patterns with exponential backoff, network interception, parallel execution, and iframe handling. Code is copy-paste ready with real imports and realistic usage patterns. | 3 / 3 |
Workflow Clarity | Individual patterns are well-explained with good/bad examples, but there's no clear overall workflow or decision tree for when to apply which pattern. The Sharp Edges section provides good 'symptom → fix' flows, but lacks explicit validation checkpoints. For destructive scraping operations, there's no verify-before-proceeding pattern. | 2 / 3 |
Progressive Disclosure | The entire skill is a monolithic wall of text with no references to external files despite being extremely long. Content like the full stealth pattern, all sharp edges, validation checks, and detailed code examples could easily be split into separate reference files. There are no bundle files to support progressive disclosure, and the skill doesn't attempt any layering. | 1 / 3 |
Total | 7 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (1117 lines); consider splitting into references/ and linking | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
e40fdb8
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.