CtrlK
BlogDocsLog inGet started
Tessl Logo

web-search

Search the web, platforms, and datasets. Use when asked to search, find, look up, research, or discover information from the web, YouTube, Amazon, eBay, news, academic sources, or any online platform.

57

Quality

66%

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 ./skills/research-tools/capabilities/web-search/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

50%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A broad, useful API catalog that is undermined by malformed JSON in many curl examples, heavily repeated auth boilerplate, a monolithic single-file structure with no bundled references, and async workflows lacking completion/validation guidance. It is organized by section but scores at the mid-level across all content dimensions.

Suggestions

Fix the malformed JSON payloads: several -d arguments close the object early (e.g. Tavily /search, Exa /search and /findSimilar, Linkup /search) then append bare keys and a stray '}'. Wrap all request fields inside a single "body": { ... } object so each example is copy-paste executable.

State the shared auth/header block once in Setup and reference it, instead of repeating the full 'Authorization: Bearer $GOOSEWORKS_API_KEY' header block ~40 times, to cut token bloat and improve conciseness.

Split each API into bundled reference files (e.g. references/tavily.md, references/searchapi.md) and keep SKILL.md as an overview with one-level-deep links; also add an explicit completion/status check (what a finished response looks like) to the async deep-research polling steps.

DimensionReasoningScore

Conciseness

The body is ~390 lines that repeat the identical auth/header block across roughly 40 curl calls rather than stating it once, which is unnecessary token repetition; it does not explain concepts Claude already knows, so it is above anchor 1, but the repeated boilerplate keeps it from the lean anchor-3 level.

2 / 3

Actionability

Examples are concrete curl commands, but a large fraction have malformed JSON — e.g. Tavily /search, Exa /search, Exa /findSimilar, and Linkup /search close the -d object early with '}' then append bare keys ('"query": ...') and a stray '}', so they are not copy-paste executable; the 'Discover More' block likewise mixes curl with trailing 'api show exa' text.

2 / 3

Workflow Clarity

Async deep-research flows are sequenced as 'Step 1: start / Step 2: poll', but the polling calls use a literal '{request_id}' with no substitution or completion-status guidance, and there are no validation checkpoints; the Tips section gives API-selection guidance but no verify/feedback loop, so it sits at anchor 2 rather than 3.

2 / 3

Progressive Disclosure

There are no bundle files (references/scripts/assets absent) and the entire per-API reference is inline in one ~390-line SKILL.md; section headers (## 1–6, ## Tips, ## Discover More) provide some structure, but content that should be split into separate reference files is monolithic inline, matching anchor 2 rather than the well-signaled multi-file anchor-3 pattern.

2 / 3

Total

8

/

12

Passed

Description

82%

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, third-person description with an explicit 'Use when...' trigger and a broad set of natural keywords and named platforms. Its main weakness is being a single-action ('Search') general-purpose skill, which limits both action specificity and distinctiveness against narrower search skills.

DimensionReasoningScore

Specificity

The description names the domain ('web, platforms, and datasets') and concrete targets (YouTube, Amazon, eBay, news, academic sources), but offers essentially one capability verb ('Search') rather than multiple distinct concrete actions like the anchor-3 example ('Extract... fill... merge'), so it sits at anchor 2.

2 / 3

Completeness

It clearly answers both 'what' ('Search the web, platforms, and datasets') and 'when' via an explicit 'Use when asked to search, find, look up, research, or discover...' clause, matching the anchor-3 example that pairs capability with an explicit trigger.

3 / 3

Trigger Term Quality

It lists natural terms a user would actually say — 'search, find, look up, research, or discover' — alongside specific platforms (YouTube, Amazon, eBay, news, academic sources), giving good coverage of common variations; not level 2 because it goes well beyond 'Works with PDF files'-style sparse keywords.

3 / 3

Distinctiveness Conflict Risk

Naming many platforms gives it some specificity, but as a broad general-purpose search skill ('web... or any online platform') it could overlap with more specialized search skills; it lacks the tight, conflict-free niche of the anchor-3 example, yet is more specific than the generic anchor-1 example.

2 / 3

Total

10

/

12

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.

Validation15 / 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
gooseworks-ai/goose-skills
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.