CtrlK
BlogDocsLog inGet started
Tessl Logo

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.

72

Quality

91%

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.

An exemplary skill body: engine-selection routing is table-driven, the doctor step provides real validation with state-by-state recovery actions, the session loop is copy-paste ready, and every referenced bundle file exists and is clearly labeled. The two small costs are a couple of trimmable meta-passages and the owned-engine reference subtree adding a second level of nesting.

DimensionReasoningScore

Conciseness

The body is terse, table-driven, and telegraphic ("Two identical failures mean change approach, not retry. A third identical attempt is a defect."), with no explanation of concepts Claude already knows. Two minor instances that could be trimmed: the guard meta-note "It is not a security boundary: code that imports the raw entry (`resolveOmowrightEntry()`) is not guarded..." and the emphasis restatement "A Chrome that is merely installed is not their browser" following "the browser the user actually uses". Anchor 4 (efficient, minor instances of over-explanation) fits better than anchor 5, whose "every token earns its place" is slightly undercut by those passages.

4 / 5

Actionability

Fully executable throughout: `node "<skill-root>/scripts/browser-doctor.mjs" --json`, a complete session loop with real method calls (`connectBrowserSkill`, `bskSnapshot`, `click`, `fill`, `press`, `screenshot`, `stop()` in a `finally`), `session.requestHelp({ prompt, targets, timeoutMs })`, and install commands. The doctor state table maps every output (`ready`, `no-cli`, `choose-browser`, `no-browser-support`) to an exact next command. Copy-paste ready; matches anchor 5.

5 / 5

Workflow Clarity

Clear sequence: Step 0 (engine gate keyed on `OMO_BROWSER_ENGINE`) → Step 1 (load + validate via browser-doctor, with a recovery loop: "relay it verbatim, wait, re-run the doctor") → the loop with a numbered rules checklist ("Read before every action", "Navigation and large DOM changes stale every ref") and mandatory `stop()` cleanup. Explicit validation step plus feedback loops for error recovery; anchor 5's checklist-and-recovery pattern matches.

5 / 5

Progressive Disclosure

All referenced files exist (references/commands.md, install.md, remote.md, owned-engine/README.md, recipes/1password.md) and the "Where the rest lives" table labels each with its content, so navigation is clear. However, the owned-engine subtree (README.md → ladder.md, network.md, frames-and-humans.md) makes the reference hierarchy two levels deep, short of anchor 5's "one-level-deep references"; anchor 4's "minor organization gaps" is the best fit, and it is well above anchor 3 since nothing is buried or unlabeled.

4 / 5

Total

18

/

20

Passed

Description

92%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 description: it names the mechanism and enumerates concrete capabilities, gives an explicit 'Use for...' trigger clause plus a negative boundary, and carves out a distinct niche from adjacent fetch/search skills. The only weakness is trigger vocabulary — a few bits of internal jargon ('js eval kernel', 'QA traces') and some missing natural user phrasings like 'navigate to' or 'automate'.

DimensionReasoningScore

Specificity

Quotes: "Drives a real browser", "forms and clicks", "screenshots, web QA, extension popups", "a human handoff for login, CAPTCHA or OTP", "a browser you own for scraping, bot-scored targets, network capture and QA traces" — multiple specific concrete capabilities with comprehensive coverage of the browser-task domain. Not anchor 4: no "minor gaps in coverage" — every major capability category (navigation, forms, screenshots, QA, human handoff, scraping, network capture) is explicitly named.

5 / 5

Completeness

Explicitly answers both questions: the "what" is "Drives a real browser through the omowright library... sites the user is already signed into, forms and clicks... network capture and QA traces", and the "when" is "Use for any interactive browser task; not for a plain search or an unblocked static fetch" — an explicit trigger clause that even adds a negative boundary the anchor-5 example lacks. Not anchor 4, since the "when" clause is fully explicit, not merely "could be more specific".

5 / 5

Trigger Term Quality

Natural terms users would say are present: "browser", "forms and clicks", "screenshots", "login, CAPTCHA or OTP", "scraping", "web QA", "JS-rendered pages". But "js eval kernel", "bot-scored targets", and "QA traces" are technical jargon a user would never say, and common phrasings like "navigate to a page", "open a website", or "automate" are missing. Fits anchor 4 (good keyword coverage, a few natural terms missing) rather than anchor 5 (comprehensive coverage including synonyms), since the natural-synonym coverage is good but not exhaustive.

4 / 5

Distinctiveness Conflict Risk

A clear niche (interactive, signed-in browser automation through a named library) with an explicit exclusion — "not for a plain search or an unblocked static fetch" — that separates it from plain-fetch/search skills. Distinct triggers ("login, CAPTCHA or OTP", "extension popups", "bot-scored targets") carry minimal conflict risk; matches anchor 5's "clear niche with distinct triggers".

5 / 5

Total

19

/

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/lazycodex
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.