CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

browser

Drives a real browser through the omowright library from the js eval kernel: sites the user is already signed into, forms and clicks, JS-rendered pages, screenshots, web QA, extension popups, a human handoff for login, CAPTCHA or OTP, and a browser you own for scraping, bot-scored targets, network capture and QA traces. Use for any interactive browser task; not for a plain search or an unblocked static fetch.

75

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Medium

Suggest reviewing before use

SKILL.md
Quality
Evals
Security

Quality

Content

88%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 strong, highly actionable skill body: executable code throughout, explicit validation via the doctor with recovery loops, disciplined loop rules, and guardrails for risky actions. The two weaknesses are minor — some over-long sentences and slight install-guidance overlap cost conciseness, and the owned-engine reference chain adds a second hop of navigation.

Suggestions

Split the long Step 0 guard paragraph into shorter sentences or a small table (env value → guarded behavior → named error and response) to tighten conciseness; the run-on sentences about the connected-mode permission prompts and Stop handling are the densest in the file.

Flatten the owned-engine reference chain: add ladder.md, network.md, and frames-and-humans.md (with their one-line descriptions) directly to the 'Where the rest lives' table so every reference is one level deep from SKILL.md.

Deduplicate install guidance between Step 1 and the Rules section — the 'Never launch a headless browser because the attached one is missing' rule restates Step 1 content; keeping it in one place (or moving the detail to references/install.md) would save tokens.

DimensionReasoningScore

Conciseness

The body is dense and imperative with no explanation of concepts Claude already knows, but a few passages could be trimmed: the long winding guard paragraph in Step 0 ("Under `connected` the app sees what the browser is doing, and before a click, Enter or script that sends, posts, pays, orders, subscribes, deletes or closes an account...") and install guidance that overlaps between Step 1 and the Rules section ("Never launch a headless browser because the attached one is missing" repeats Step 1's table content). This matches the anchor 'Efficient; minor instances of over-explanation that could be trimmed'; it is not 5 ('every token earns its place') because of those sentences, and clearly not 3 since there is no genuinely unnecessary explanation.

4 / 5

Actionability

The guidance is fully executable and copy-paste ready: a working import snippet for `loadOmowright`, the command `node "<skill-root>/scripts/browser-doctor.mjs" --json` with a state-by-state table prescribing next actions, a complete try/finally session loop covering navigate, bskSnapshot, click, fill, press, waitForNavigation, screenshot, and stop, plus a concrete `requestHelp` example with real option names. This matches the anchor 'Fully executable; copy-paste ready code or commands; specific examples cover the common cases'.

5 / 5

Workflow Clarity

The multi-step process is clearly sequenced with explicit validation and error-recovery loops: Step 0 (engine selection via `OMO_BROWSER_ENGINE` with a value table), Step 1 (load, run the doctor, and on missing pieces install then 're-run the doctor' — a validate-fix-retry loop), numbered loop rules including "Two identical failures mean change approach, not retry. A third identical attempt is a defect", and named error outcomes (`BrowserActionDeclinedError`, `BrowserUserStoppedError`) with prescribed responses. Destructive actions are explicitly gated (the app asks the user before anything that 'sends, posts, pays, orders, subscribes, deletes'), so the destructive-operation cap does not apply. This matches the anchor 'Clear sequence with explicit validation steps; feedback loops for error recovery; checklists for complex processes'.

5 / 5

Progressive Disclosure

The body is a lean overview with a well-signaled 'Where the rest lives' table, and every referenced path exists in the bundle (commands.md, install.md, remote.md, owned-engine/README.md, recipes/1password.md, and the three scripts). However, the owned-engine branch is two levels deep: SKILL.md points to references/owned-engine/README.md, which is itself a routing index to ladder.md, network.md, and frames-and-humans.md. That minor deviation from the anchor's 'one-level-deep references' places this between the 4 anchor ('most content is appropriately placed; references mostly clear; minor organization gaps') and the 5 anchor; the README is a genuine routing summary with substantial inline content rather than a hollow pass-through, so it sits clearly above 3 but not fully at 5.

4 / 5

Total

18

/

20

Passed

Description

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

An excellent description: third-person, specific on both engines' capabilities, dense with natural trigger terms including synonyms and edge cases, and closing with explicit positive and negative trigger guidance that separates it from plain-fetch and search skills. No fluff or over-claims are present.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions with comprehensive coverage across both engines: "Drives a real browser", "forms and clicks", "screenshots", "web QA", "extension popups", "a human handoff for login, CAPTCHA or OTP", "scraping, bot-scored targets, network capture and QA traces". This matches the anchor 'Lists multiple specific concrete actions; comprehensive coverage'; a 4 would require minor gaps in coverage, but both engines and edge cases (CAPTCHA, OTP, WAF) are explicitly named.

5 / 5

Completeness

It explicitly answers both questions: the 'what' opens the description ("Drives a real browser through the omowright library... sites the user is already signed into, forms and clicks...") and the 'when' closes it with concrete triggers ("Use for any interactive browser task; not for a plain search or an unblocked static fetch"). This matches the anchor 'Clearly and explicitly answers both what AND when with concrete trigger phrases' and includes negative triggers, so the missing-'Use when' cap at 3 does not apply.

5 / 5

Trigger Term Quality

Natural terms users would actually say are comprehensively covered with synonyms: "browser", "signed into", "forms and clicks", "screenshots", "login, CAPTCHA or OTP", "scraping", "network capture", "web QA". This matches the anchor 'Comprehensive coverage of natural terms including synonyms'; it is above 4 ('a few natural terms missing') because both handoff triggers (login/CAPTCHA/OTP) and owned-engine triggers (scraping, bot-scored, network capture) are present.

5 / 5

Distinctiveness Conflict Risk

It carves a clear niche with minimal conflict risk by explicitly excluding neighboring skills: "not for a plain search or an unblocked static fetch" demarcates it from fetch/search skills, while interactive triggers (login, CAPTCHA, OTP, extension popups, borrowing signed-in sessions) are unique to this skill. This matches the anchor 'Clear niche with distinct triggers; minimal conflict risk'.

5 / 5

Total

20

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 3 deeper-than-1-level

Warning

referenced_paths_exist

Referenced path issues: 6 deeper-than-1-level

Warning

Total

14

/

16

Passed

Repository

code-yeongyu/oh-my-openagent

Path

packages/shared-skills/skills/browser/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.