CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

exa-search

AI-powered web search via Exa with content extraction. Use when user says "exa search", "web search with content", "find similar pages", or needs broad web results beyond academic databases (arXiv, Semantic Scholar).

Quality

76%

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/exa-search/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

A highly actionable, well-sequenced operational skill: real commands, explicit failure paths with remediation, and clear positioning against sibling skills. The weaknesses are redundancy — the helper-resolution cascade and Policy D1 rationale each appear twice — and a Step 6 block that is half pseudocode, plus overlap between the body and the referenced integration contract it cites.

Suggestions

Consolidate the two near-identical helper-resolution bash cascades (Step 2's EXA_FETCHER and Step 6's WIKI_SCRIPT) into a single shared snippet or move them entirely into the referenced integration-contract.md, keeping only the invocation lines inline.

Rewrite Step 6 as fully executable bash (or explicitly label it as a template), replacing English pseudocode like 'and query category was "research paper"' and 'for each research-paper hit in results:' with concrete loop/condition syntax.

State the Policy D1 no-fallback rationale once (either in Constants or Step 2, with the other linking to it) to remove the duplicated explanation and reduce token cost.

DimensionReasoningScore

Conciseness

The body is dense and free of concept explanations Claude already knows, but it carries real duplication: the Policy D1 rationale is stated nearly verbatim in both Constants ("unresolved helper terminates with an explicit error") and Step 2 ("unresolved helper means the SKILL cannot produce its primary output — fail with explicit remediation"), and the ~17-line helper-resolution cascade in Step 2 is largely repeated for WIKI_SCRIPT in Step 6. This fits 'mostly efficient but includes some unnecessary explanation or could be tightened' rather than the 'minor instances' of a 4, and is far from the padded conceptual prose of a 2.

3 / 5

Actionability

Mostly executable: pip install, export of EXA_API_KEY, a copy-paste-ready resolution cascade with explicit remediation messages, and concrete `python3 "$EXA_FETCHER" search ... --content highlights` invocations with flags. It is not a 5 because the Step 6 block mixes English pseudocode with shell ("if [ -d research-wiki/ ] and query category was 'research paper':", "for each research-paper hit in results:"), so it is not copy-paste runnable; it is well above a 3 since everything else is real, complete code.

4 / 5

Workflow Clarity

A clearly sequenced six-step workflow with genuine checkpoints: Step 2's cascade validates helper resolution and exits with explicit fix instructions, Step 6 uses warn-and-skip with remediation, and Key Rules mandates checking EXA_API_KEY before searching. It stops short of a 5 because there is no explicit feedback loop for a failed search execution itself (e.g. API error, empty results) and Step 6 has no verification that wiki ingest succeeded — 'most checkpoints present; minor validation gaps'.

4 / 5

Progressive Disclosure

Structure is good and references are clearly signaled — [`shared-references/integration-contract.md`](...) §2 and [`shared-references/wiki-helper-resolution.md`](...) are one-level-deep, linked, and section-anchored — but the body re-inlines ~30 lines of resolution-cascade shell and policy text that the referenced contract documents, i.e. content that should live in the separate file appears inline. No references/, scripts/, or assets/ bundle exists in the skill directory to offset this. That places it at 'some structure, references present, but content that should be separate is inline', above the buried/unstructured level of 2 and below the clean split of 4.

3 / 5

Total

14

/

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: explicit third-person 'what' and 'when' with quoted trigger phrases and explicit boundary guidance against sibling academic-search skills. The only real gap is capability coverage — the 'what' lists just two actions while the skill body supports several more modes.

DimensionReasoningScore

Specificity

The description names the domain and two concrete actions — "AI-powered web search via Exa with content extraction" — which matches the anchor for 1-2 concrete actions without comprehensive coverage; capabilities like find-similar, domain/date filtering, and full-text/summary modes are absent. It is not a 4 because it does not list 'several specific actions', and not a 2 because the actions stated go beyond a bare domain mention.

3 / 5

Completeness

Both halves are explicit: the 'what' is "AI-powered web search via Exa with content extraction" and the 'when' is "Use when user says 'exa search', 'web search with content', 'find similar pages', or needs broad web results beyond academic databases" — concrete trigger phrases answering both questions directly. Not a 4, since the 'when' clause is already fully explicit rather than improvable.

5 / 5

Trigger Term Quality

Quoted natural phrases — "exa search", "web search with content", "find similar pages" — give good keyword coverage with tool-specific triggers. It falls short of the 5 anchor because common synonyms users would actually say (e.g. "search the web", "look this up online") and file-extension-style variations are missing, but it clearly exceeds the 'some relevant keywords' level of 3.

4 / 5

Distinctiveness Conflict Risk

The niche is clear and self-differentiating: the tool name "Exa" plus the explicit boundary "beyond academic databases (arXiv, Semantic Scholar)" steers triggers away from sibling search skills, matching the 'clear niche with distinct triggers; minimal conflict risk' anchor. It is not a 4 because the description already names the adjacent skills it should not absorb.

5 / 5

Total

17

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

frontmatter_unknown_keys

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

Warning

relative_links

Relative link issues: 4 suspicious

Warning

Total

13

/

16

Passed

Repository

wanshuiyin/Auto-claude-code-research-in-sleep

Path

skills/exa-search/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.