CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

browser-automation

Local OpenWork Electron browser automation with CDP. Use when driving a local Electron dev app, browser_list, browser_snapshot, browser_eval, composer automation, or local UI smoke tests.

64

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

78%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 well-crafted, lean skill body with concrete commands, selectors, and a complete automation script, plus real validation checkpoints (port wait, response confirmation, known-good smoke prompt). The only material defect is the undeclared `inserted` variable in the code snippet's error branches, which breaks executability exactly when something goes wrong.

Suggestions

Fix the browser_eval snippet by declaring `const inserted = true;` after the paste (or replacing the bare `inserted` references with `inserted: true`), so the failure branches return cleanly instead of throwing a ReferenceError.

Add a short error-recovery loop after the Browser Tool Flow, e.g., "If no OpenWork target appears in browser_list, confirm the CDP port is listening (lsof) and that pnpm dev started successfully."

Drop or merge the "What I Do" bullets into the intro to remove the small amount of duplication with the description.

DimensionReasoningScore

Conciseness

The body is lean and assumes competence: exact commands (pnpm dev with port overrides, nohup, lsof), exact URLs, and one focused code snippet, with no explanation of concepts Claude already knows. Minor trims are possible — the "What I Do" bullets partially duplicate the description, and the env-var-default shell block is slightly awkward presentation — matching anchor 4 rather than the every-token-earns-its-place anchor 5.

4 / 5

Actionability

Guidance is concrete and near copy-paste ready: exact selectors ('[contenteditable="true"][data-lexical-editor="true"]'), a full browser_eval IIFE, and specific commands. However, the snippet's failure branches return an undeclared variable `inserted` ("reason: 'Run task not found', inserted"), which throws a ReferenceError in the error path, so the code is not fully executable — anchor 4, not 5.

4 / 5

Workflow Clarity

The 6-step Browser Tool Flow is clearly sequenced and includes validation checkpoints: waiting for the CDP port with lsof, confirming the session response via document.body.innerText or URL, and a known-good smoke prompt with its expected response in Notes. It falls short of anchor 5 because there is no error-recovery loop (e.g., what to do if the OpenWork target is missing or the paste fails).

4 / 5

Progressive Disclosure

No bundle files exist and none are needed: the ~100-line body keeps all content appropriately inline with clear, well-ordered section headers (setup, launch, flow, session, notes), making navigation easy. This matches anchor 5 — content appropriately split for its size with nothing that belongs in a separate reference file.

5 / 5

Total

17

/

20

Passed

Description

73%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, appropriately concise description with an explicit and multi-faceted "Use when" clause and excellent distinctiveness. Its main weakness is the "what" half: capabilities are expressed as a single noun phrase plus tool names rather than concrete actions, which limits specificity and keeps completeness at anchor 4 rather than 5.

Suggestions

Expand the "what" half with 2-3 concrete action verbs, e.g., "Attaches browser tools to the OpenWork Electron app via CDP, drives the UI, and sends composer tasks" before the "Use when" clause.

Add one or two natural trigger synonyms users might say, such as "CDP debugging" or "drive the local app", to broaden the trigger phrase coverage toward anchor 5.

DimensionReasoningScore

Specificity

"Local OpenWork Electron browser automation with CDP" names the domain but describes only one generic action category; tool names like browser_eval are listed as triggers rather than concrete actions (no verbs such as attach, drive the UI, or send tasks). It fits anchor 3 (domain plus 1-2 actions, not comprehensive) and falls short of anchor 4, which expects several specific listed actions.

3 / 5

Completeness

Both parts are present: the "what" is stated as "Local OpenWork Electron browser automation with CDP" and the "when" is an explicit "Use when..." clause with concrete triggers. It is not anchor 5 because the "what" is a compressed noun phrase without explicit action verbs, leaving it slightly less clear than the anchor's fully stated capabilities.

4 / 5

Trigger Term Quality

The "Use when" clause covers four natural trigger scenarios: "local Electron dev app", "browser_list, browser_snapshot, browser_eval", "composer automation", and "local UI smoke tests". Coverage is good but a few natural terms are missing (e.g., "CDP debugging", "DevTools", "drive the app"), so it does not reach anchor 5's comprehensive synonym/extension coverage.

4 / 5

Distinctiveness Conflict Risk

Highly distinctive niche terms ("OpenWork Electron", "composer", named browser tools like browser_eval) make accidental triggering by unrelated skills very unlikely. This matches anchor 5 (clear niche with distinct triggers, minimal conflict risk).

5 / 5

Total

16

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

different-ai/openwork

Path

.opencode/skills/browser-automation/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.