CtrlK
BlogDocsLog inGet started
Tessl Logo

dev-browser

Fallback browser automation with persistent Chrome state. Use only when Browser Use is unavailable or blocked.

56

Quality

66%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Critical

Do not install without reviewing

Fix and improve this skill with Tessl

tessl review fix ./templates/plate-template/.agents/skills/dev-browser/SKILL.md

The canonical home for this skill is dev-browser in udecode/plate

SKILL.md
Quality
Evals
Security

Quality

Content

75%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.

The body is a strong, highly executable operational runbook: every command is copy-paste ready and the Chrome setup path includes real validation and error-recovery loops. Its main weaknesses are redundancy — the same rules are restated across 'Plate Defaults', 'Rules', and 'Preferred Shape', plus an empty 'Fallback Setup' stub — and a scattered top-level structure that could push platform-specific detail into a reference file.

Suggestions

Merge the 'Plate Defaults', 'Rules', and 'Preferred Shape' sections into one rule set; directives like the dedicated --user-data-dir, macOS 'open -na', and 'not the daily Default profile' currently appear two or three times.

Delete or flesh out the 'Fallback Setup' section — it currently contains a single sentence that duplicates the Plate Defaults connect-failure guidance.

Move the macOS-specific Local State enumeration, rsync clone, and launch block into a one-level-deep reference file (e.g., references/macos-chrome-setup.md) and link it from a short platform note, keeping the main body lean.

DimensionReasoningScore

Conciseness

The body is mostly lean and assumes Claude's competence (no explanation of what Chrome or CDP is), but the 'Plate Defaults', 'Rules', and 'Preferred Shape' sections restate the same directives two or three times — persistent profile, dedicated --user-data-dir, macOS 'open -na', and 'do not use the daily Default profile' each appear in at least two sections — and the 'Fallback Setup' section is a one-sentence stub. Not 4 because the duplication is a genuine tightening opportunity, not just a minor instance.

3 / 5

Actionability

The guidance is fully executable and copy-paste ready: install commands, the default connect command, a Python snippet to enumerate Chrome profiles, an rsync profile-clone command with the right Singleton/lockfile exclusions, the macOS launch invocation, curl sanity checks, the WebSocket-URL fallback, and lsof to identify a port thief. Specific examples cover the common cases (default connect, broken CDP endpoint, wrong process on 9222).

5 / 5

Workflow Clarity

The Google Chrome path is a clear 5-step sequence with explicit validation checkpoints (curl /json/version health check, page-title verification, WebSocket-URL fallback) and error-recovery loops (lsof, kill the wrong listener, relaunch). Not 5 because the top-level flow across sections is scattered — the 'Fallback Setup' section is an empty stub with no steps, and the connect-first-then-inspect ordering lives in bullet lists rather than an explicit sequence.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent) and none are referenced, so there is no nested-reference risk; sections are clearly headed and navigable. Not 5 because the body runs ~130 lines with the macOS-specific Local State/rsync/open path inlined — platform-specific setup that would fit a one-level-deep reference file — and the duplicate 'Plate Defaults'/'Rules' sections could be consolidated.

4 / 5

Total

16

/

20

Passed

Description

57%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.

The description's strongest asset is its explicit fallback-only trigger condition, which makes the skill hard to fire by mistake. Its weakness is that it says almost nothing about what the skill concretely does — no actions, commands, or distinguishing technical keywords beyond 'browser automation with persistent Chrome state'.

Suggestions

Add 2-3 concrete actions to the what clause, e.g., 'Connect to a persistent debug Chrome on 127.0.0.1:9222, reuse a dedicated signed-in profile, and drive pages via CDP.'

Include distinguishing trigger keywords users would naturally say — 'Chrome', 'CDP', 'remote debugging', 'persistent browser session', '9222' — to improve both trigger matching and distinctiveness.

State the fallback relationship in user-facing terms ('use when the primary browser tool is blocked') so a user asking for browser help without knowing the primary tool's name can still land on this skill.

DimensionReasoningScore

Specificity

The description names the domain ('Fallback browser automation with persistent Chrome state') but lists no concrete actions — no connect, launch, profile-clone, or debug commands — matching the 'names the domain but actions are minimal or generic' anchor. It does not reach 3 because 'persistent Chrome state' is a property, not an action, and there is no second concrete capability stated.

2 / 5

Completeness

It has an explicit 'when' clause ('Use only when Browser Use is unavailable or blocked') and a what ('Fallback browser automation with persistent Chrome state'), satisfying both halves. Not 5 because the 'what' is high-level — it never says concretely what the skill does (connect to a persistent CDP Chrome on 9222, reuse a dedicated debug profile) — and not 3 because both what and when are explicitly present.

4 / 5

Trigger Term Quality

It carries relevant keywords ('browser automation', 'Chrome', 'Browser Use', 'unavailable or blocked') but misses the natural phrases a user would say — CDP, remote debugging, debug browser, scrape/browse a page, sign in, persistent session. Not 4 because common variations and synonyms for this domain are largely absent.

3 / 5

Distinctiveness Conflict Risk

The 'fallback only when Browser Use is unavailable or blocked' guard gives it a clear, narrow niche with minimal wrong-skill trigger risk. Not 5 because the generic phrase 'browser automation' still overlaps with the primary browser skill and other automation tools; no additional distinguishing triggers (e.g., CDP, 9222, persistent profile) appear in the description.

4 / 5

Total

13

/

20

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 — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

relative_links

Relative link issues: 1 suspicious

Warning

Total

13

/

16

Passed

Repository
udecode/plate
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.