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

72%

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%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 broad, well-sectioned API catalog with genuinely useful 'Best for' guidance and a thoughtful Tips section, but its execution is undermined by malformed JSON in many of the most prominent curl examples, heavily duplicated request boilerplate, and unexplained async-polling placeholders. Structurally, everything is inlined into one large file rather than split across reference files.

Suggestions

Fix the malformed request bodies: wrap payloads in "body":{...} and balance the quotes/braces in the Tavily /search and /crawl, Exa /search and /findSimilar, and Linkup examples, and remove the stray 'api show <name>' suffixes and backtick from the Discover More section so every example is copy-paste executable.

Deduplicate the curl boilerplate: state once that all calls go to $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run with Bearer auth and Content-Type headers, then show only the -d payload per example.

Explain the async polling loop for the Tavily/Exa/Valyu deep-research flows: where the {request_id}/{researchId}/{id} values come from in the create response, a suggested poll interval, and what a completed vs. failed status looks like.

DimensionReasoningScore

Conciseness

The identical curl boilerplate (endpoint URL plus Authorization and Content-Type headers) is repeated verbatim in roughly 30 code blocks, and the 'Discover More' section is redundant and garbled. There is no concept over-explanation, so it sits above anchor 2, but the heavy duplication could be collapsed with a documented variable or a single stated header convention.

3 / 5

Actionability

Commands are concrete curl calls with real parameters, but many flagship blocks (Tavily /search and /crawl, Exa /search and /findSimilar, both Linkup searches) contain malformed request bodies — the -d string closes early, the "body":{...} wrapper is missing, and quotes are unbalanced — plus stray 'api show exa' tokens and a stray backtick in 'Discover More'. These are not copy-paste executable, fitting anchor 3's 'incomplete; missing key details' better than anchor 4's 'minor gaps'.

3 / 5

Workflow Clarity

Async research flows do show a Step 1 create / Step 2 poll sequence and the setup section handles missing credentials, but polling placeholders like {request_id} and {researchId} are never explained, and there is no poll interval, completion criteria, or error-recovery guidance. Sequence present, checkpoints missing — anchor 3.

3 / 5

Progressive Disclosure

No bundle files exist; six full API catalogs (~390 lines, including complete engine lists and ad-library variants) are inlined in a single SKILL.md with per-API section headers. Structure is present, but content that clearly belongs in per-API reference files is inline, matching anchor 3 rather than anchor 2's 'no section headers'.

3 / 5

Total

12

/

20

Passed

Description

82%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 with an explicit and well-phrased trigger clause and excellent natural-keyword coverage including platform names. Its weaknesses are a generic single-verb capability statement and a broad 'any online platform' catch-all that raises conflict risk with other research-oriented skills.

DimensionReasoningScore

Specificity

"Search the web, platforms, and datasets" names the domain and a single core action, but never enumerates the skill's concrete capabilities (sourced answers, deep research, find-similar, crawling, platform search). It is above anchor 2 because the platform scope is concretely named, but below anchor 4 because only one generic action verb appears.

3 / 5

Completeness

It explicitly answers both "what" ("Search the web, platforms, and datasets") and "when" ("Use when asked to search, find, look up, research, or discover information from...") with concrete trigger phrases, matching the top anchor exactly.

5 / 5

Trigger Term Quality

"search, find, look up, research, or discover" covers the natural synonyms users would say, and "YouTube, Amazon, eBay, news, academic sources" adds platform-specific triggers — comprehensive natural-term coverage matching the top anchor.

5 / 5

Distinctiveness Conflict Risk

The enumerated platforms (YouTube, Amazon, eBay, academic sources) add distinctiveness, but the catch-all "or any online platform" makes it broad enough to overlap with other search/research skills — between the 'high overlap risk' (2) and 'minor overlap risk' (4) anchors.

3 / 5

Total

16

/

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