CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

browse

Drive a real stealth browser from your shell — act on websites (order food, file an expense, pull data behind a login), with per-person persistent sign-ins kept in the person's browser profile (Kernel, Anchor, Browserbase, or Browser Use — picked by which API key you have). Use for ACTING on a site; to just read a page, use curl/wget first. Requires managed model access and a keychain grant for the browser provider key; follow the missing-key steps below.

Quality

84%

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

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

This is a dense, operationally excellent skill body: a clearly sequenced workflow with validation and consent gates exactly at the risky points, and copy-paste code for the shared runner. Its weaknesses are verbosity (historical asides, an unversioned known-warts list, restated guidance) and heavy reliance on provider docs that are not present in this bundle, which caps both actionability and progressive disclosure.

Suggestions

Conciseness: move the version-pinned browser-use wart list ("0.12.9 … flaky per-step client-auth race … AgentOutput validation error") into a 'Known issues' section in the relevant provider doc or a reference file, and cut asides like the BROWSE_LAB_* naming history that don't change what Claude does.

Actionability: include a minimal inline create/CDP_URL example (or ensure the providers/ docs ship with the bundle) so the core 'Create the browser' step is executable from the skill as distributed, rather than a pointer to files not present.

Progressive disclosure: move the ~100 lines of embedded Python (browse-runner.py and browse-nav.py heredocs) into scripts/ files the skill invokes, keeping SKILL.md as the lean overview the structure already aims for.

DimensionReasoningScore

Conciseness

Mostly efficient — nearly every paragraph carries non-obvious operational knowledge (keychain semantics, profile-as-credential rules, provider quirks) that Claude cannot know — but it could be tightened: asides like "the `BROWSE_LAB_*` names are historical — they predate this skill becoming the default", "(the printed copy is for your eyes…)", and restating the browse-vs-curl guidance already in the description pad the text. The unpinned version-specific wart list ("Browser-use 0.12.9 has two known warts") is time-sensitive detail not placed in a known-issues/deprecated section, which the guidelines say should penalize conciseness, keeping this at 3 rather than 4.

3 / 5

Actionability

Highly concrete where it speaks: a copy-paste runner script, `sh "<skill dir>/install-runtime.sh"`, exact keychain curl calls, the wall-URL extraction one-liner, and the nav script all match the 'mostly executable' to 'fully executable' anchors. It stops short of 5 because the single most important steps — creating and deleting the browser — are delegated to provider docs ("Follow your provider doc's 'Create the browser' section") that are not present in this bundle, and the runner depends on `PROFILE_ENV`/`PROFILE_SERVICE` values defined only in those absent docs.

4 / 5

Workflow Clarity

The sequence is explicit and well-checkpointed: pick provider → prerequisites (check env first, credential-exists check before bootstrap) → 1. Create → 2. Run → 3. Clean up → Reporting, with validation gates exactly where risk lives: pre-launch spending consent ("the consent moment is BEFORE launch… write the authorization INTO the task text"), sanity-checking the wall URL against the task domain (prompt-injection defense), account-ownership confirmation before acting, and feedback loops for recovery (relaunch-and-rerun after sign-in, retry once on the flaky auth race, raise BROWSE_LAB_MAX_STEPS on malformed-step retries). This matches the 5 anchor's 'explicit validation steps; feedback loops for error recovery'.

5 / 5

Progressive Disclosure

Good structure with a sound split: provider-specific detail pushed to one-level-deep, clearly signaled references ("Read `providers/kernel.md`", "Read the provider doc BEFORE creating anything") while shared logic (runner, keychain, spending, reporting) stays inline — matching the 4 anchor. Not 5: the referenced files (four provider docs, install-runtime.sh) are absent from the bundle so navigation cannot be verified, and ~100 lines of Python (runner + nav script) plus the multi-step keychain ask/drop flow are inlined in SKILL.md where a scripts/ or reference file would keep the overview leaner.

4 / 5

Total

16

/

20

Passed

Description

87%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: concrete capabilities, an explicit 'Use for…' trigger clause that also disambiguates against plain fetches, and a distinct niche. It uses third-person/imperative voice throughout. The only softness is moderate keyword coverage and unnamed secondary capabilities (uploads, spending).

DimensionReasoningScore

Specificity

Quotes several concrete actions — "act on websites (order food, file an expense, pull data behind a login)", "per-person persistent sign-ins kept in the person's browser profile", "picked by which API key you have" — matching the 'lists several specific actions; minor gaps' anchor. It falls short of the 5 anchor only because capabilities like file upload/attaching receipts and spending authorization aren't named, and it is not below 4 since the actions named are specific and varied rather than generic.

4 / 5

Completeness

Both questions are explicitly answered: what — "Drive a real stealth browser from your shell — act on websites…"; when — "Use for ACTING on a site; to just read a page, use curl/wget first", with concrete trigger phrases attached. This matches the 5 anchor ('clearly and explicitly answers both what AND when with concrete trigger phrases') and exceeds the 4 anchor where 'when' is merely present but less specific — here the when-cluse actively disambiguates with a fallback (curl/wget).

5 / 5

Trigger Term Quality

Natural phrases users would actually say are present — "order food", "file an expense", "pull data behind a login", "ACTING on a site", "read a page" — giving good keyword coverage per the 4 anchor. Not a 5: common variations such as "fill out a form", "book", "checkout", or "browser" as a bare trigger word are missing, but it clearly exceeds the 3 anchor's 'missing common variations' level.

4 / 5

Distinctiveness Conflict Risk

It carves out a clear niche with distinct triggers — "Use for ACTING on a site; to just read a page, use curl/wget first" — explicitly steering read-only requests away, and names its unique providers (Kernel, Anchor, Browserbase, Browser Use). Minimal conflict risk with generic fetch/scrape skills; fits the 5 anchor, not the 4 anchor which requires notable overlap with closely related skills.

5 / 5

Total

18

/

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

yc-software/qm

Path

skills-seed/browse/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.