CtrlK
BlogDocsLog inGet started
Tessl Logo

web-reader

Read web pages, articles, and document links by converting URLs into Markdown text. Use the `read_url` tool directly, without bash. Sends the full URL to the third-party Jina Reader (r.jina.ai).

58

Quality

73%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./agent/src/skills/web-reader/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is a well-structured, highly actionable reference for a simple tool skill: exact call syntax, return format, limitations, and thoughtful privacy/staleness guidance including a bash-fallback caveat. Its weaknesses are modest — the redundant "Common Usage" examples pad the token budget, and the `no_cache` parameter lacks a concrete usage example.

Suggestions

Collapse the "Common Usage" section into a single example plus a short list of representative URLs to remove the repeated identical call.

Show one concrete call using the `no_cache` parameter (e.g. `read_url(url="...", no_cache=true)`) so the staleness workflow is fully executable.

DimensionReasoningScore

Conciseness

Mostly efficient — no concept re-teaching and tight sections — but the "Common Usage" section repeats the identical `read_url(url=...)` call three times with only the URL changed, which is padded content that could be trimmed to a single line or list of example URLs. Not a 2 because the rest of the body is lean; not a 4 because that redundant section is a clear candidate for tightening.

3 / 5

Actionability

Provides a copy-paste-ready tool call, the exact JSON return shape (status, title, url, content, length), and concrete behavioral details (8000-char truncation, SPA caveat, cached flag). The minor gap is that `no_cache=true` is described but never shown in an actual example call, keeping it just below fully executable coverage.

4 / 5

Workflow Clarity

A simple single-task skill whose single action is unambiguous — "Call the `read_url` tool directly (do not use bash + requests, call the tool directly)" — with conditional guidance for handling cached results (when to pass `no_cache=true`). Per the simple-skill guideline, an unambiguous single action earns a 5; no destructive or batch operations apply.

5 / 5

Progressive Disclosure

A short single-file skill with no bundle files needed; sections (Purpose, Usage, Notes, Privacy & freshness, Common Usage) are well-organized with no nested or buried references and no inlined content that belongs in a separate file. This satisfies the simple-skill exception for progressive disclosure.

5 / 5

Total

17

/

20

Passed

Description

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

The description gives a concrete, tool-specific account of what the skill does and even flags a behavioral constraint (no bash) and a third-party dependency, which is good. Its main weakness is the absence of any "Use when..." trigger guidance and thin coverage of natural trigger synonyms, which limits discoverability and completeness.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user asks to read, fetch, or open a web page, article, documentation link, or URL."

Include natural trigger synonyms users would actually say — fetch, open this link, browse, scrape — alongside "web pages", "articles", and "URLs".

Briefly state the expected outcome in the description (returns clean Markdown text of the page) so the "what" is comprehensive without relying on the body.

DimensionReasoningScore

Specificity

Names the domain and several concrete actions — "converting URLs into Markdown text", "Use the `read_url` tool directly, without bash", "Sends the full URL to the third-party Jina Reader (r.jina.ai)" — with minor gaps in coverage (essentially one conversion action and its mechanics). It is above a 3 because it goes beyond 1-2 generic actions with tool-level specifics, but below 5 because the action list is not comprehensive.

4 / 5

Completeness

The "what" is clear (converts URLs into Markdown text via the `read_url` tool), but there is no "Use when..." clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. It is not a 4 because "when" is entirely absent rather than merely imprecise.

3 / 5

Trigger Term Quality

Includes relevant natural terms like "web pages", "articles", "document links", and "URLs", but misses common variations users would say such as "fetch", "open this link", "browse", or "scrape". This matches the 3 anchor (some relevant keywords, missing common synonyms) rather than 4, where only a few natural terms would be missing.

3 / 5

Distinctiveness Conflict Risk

Distinct niche (URL-to-Markdown conversion via a named tool, `read_url`, and the Jina Reader service) with clear separation from generic file-processing skills. Minor overlap risk remains with general web-fetching tools since no explicit trigger phrases fully disambiguate it, keeping it below 5.

4 / 5

Total

14

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository
HKUDS/Vibe-Trading
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.