CtrlK
BlogDocsLog inGet started
Tessl Logo

kernel-typescript-sdk

Build Kernel browser automation in TypeScript with server-side Playwright or CDP, including profiles, proxies, and reliable session cleanup.

67

Quality

82%

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

90%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 SDK skill body: fully executable code for every workflow, explicit cleanup discipline with a checklist, and no wasted tokens. The two weaknesses are the missing error-recovery feedback loops and a dangling local reference to a nonexistent examples file.

Suggestions

Fix or remove the broken reference to ./examples/examples.md — no examples/ directory exists in the bundle, so the 'Additional integration examples' link leads nowhere; either ship the file or drop the pointer.

Add a short error-recovery note to the lifecycles (e.g., how to handle a failed deleteByID or retry a timed-out playwright.execute call) to complete the validation feedback loop the workflows otherwise lack.

DimensionReasoningScore

Conciseness

The body is lean throughout: no explanation of what Playwright or CDP is, no basic programming filler, and every sentence carries operational information (e.g., "Always delete a created session in finally. The idle timeout is a safety net, not the normal cleanup path"). Repeated imports/boilerplate across code blocks exist only to keep each example complete and executable. Not a 4 because there is no identifiable padding or over-explanation to trim.

5 / 5

Actionability

Every scenario ships copy-paste-ready TypeScript: install commands, Kernel initialization, full playwright.execute lifecycle, CDP connect/close ordering, profile creation and attach, proxy attach/check/update, and binary-data endpoints, each with real parameters and complete error handling. Not a 4 because the examples cover the common cases end-to-end with no gaps requiring the reader to fill in steps.

5 / 5

Workflow Clarity

Both lifecycles are clearly sequenced (create → try → automate → finally close local client → deleteByID), with explicit checkpoints ("if (!response.success) throw", context existence check, proxy availability check) and a numbered 5-item Cleanup Rules checklist with ordering rules for dependent deletes. Not a 5 because there are no error-recovery/feedback loops (e.g., verifying deleteByID succeeded or retrying transient failures) — checkpoints fail fast but do not guide recovery; not a 3 because validation is explicit and present at each risky step, not merely implied.

4 / 5

Progressive Disclosure

Well-organized overview with clearly headed sections covering install, path choice, both lifecycles, profiles, proxies, binary data, and a consolidated References list; no bundle directories exist, so the body appropriately self-contains the essentials. Not a 5 because the one local progressive-disclosure pointer — "Additional integration examples: [examples](./examples/examples.md)" — references a file that does not exist in the bundle, so the promised deeper material is unreachable; not a 3 because overall structure and signaling are good, with only this single navigation defect.

4 / 5

Total

18

/

20

Passed

Description

75%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 dense, concrete, third-person description that clearly states what the skill does with technology-specific terms and minimal conflict risk. Its main weakness is the complete absence of a 'when to use' trigger clause, which caps completeness at 3 and leaves natural trigger phrases (scraping, headless, stealth) uncovered.

Suggestions

Append an explicit trigger clause, e.g. "Use when building browser automation or web scraping with the Kernel platform (@onkernel/sdk), persisting login state with profiles, or routing sessions through proxies."

Add one or two natural synonyms users would actually say — such as 'headless browser', 'web scraping', or 'stealth sessions' — to broaden trigger coverage beyond the current technical keywords.

Mention the boundary with the kernel-cli skill (one-off commands) directly in the description so the two sibling skills are distinguishable at trigger time, not only in the body.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Build Kernel browser automation in TypeScript with server-side Playwright or CDP, including profiles, proxies, and reliable session cleanup" — naming specific technologies (Playwright, CDP), features (profiles, proxies), and a concrete operational concern (session cleanup). Not a level below (4) because coverage of the skill's core capabilities is comprehensive, not merely 'several actions with minor gaps'; the only omitted items (e.g., screenshot/file endpoints) are secondary.

5 / 5

Completeness

The 'what' is clearly and concretely answered (build Kernel browser automation with Playwright/CDP, profiles, proxies, cleanup), but there is no 'Use when...' clause or equivalent explicit trigger guidance — the guideline caps completeness at 3 for this. Not a 2 because the 'what' is fully explicit rather than vague; not a 4 because 'when' is entirely absent, not just under-specified.

3 / 5

Trigger Term Quality

Strong natural keywords users would say: "browser automation", "TypeScript", "Playwright", "CDP", "profiles", "proxies", "session cleanup". Not a 5 because common variations users might naturally use are missing — e.g., 'web scraping', 'headless browser', 'screenshots', 'anti-detect'/'stealth' — and there is no explicit trigger phrasing that surfaces those synonyms; not a 3 because the present keywords are specific and well-chosen rather than merely 'some relevant keywords'.

4 / 5

Distinctiveness Conflict Risk

The repeated product anchor "Kernel" plus "TypeScript" and the specific Playwright/CDP framing carve out a clear niche with minimal conflict risk — a user needing this skill would say 'Kernel', and generic browser-automation or Playwright requests are unlikely to be captured. Not a 4 because the product-specific naming leaves no meaningful overlap with closely related skills at the description level.

5 / 5

Total

17

/

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

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 1 missing

Warning

Total

14

/

16

Passed

Repository
stevenknowswhy/ProfessionalBuyer
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.