CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

agent-web-search-setup

Fixes web search on an agent whose model backend can't run it: a relay/reseller proxying Claude or Codex returns empty instead of failing. Use when web search returns nothing, a model insists a shipped product doesn't exist, someone wants to give an agent internet access, or the user is on a third-party base URL, relay, or 中转站. Diagnoses which built-in tools are dead, removes them, and installs a working replacement.

Quality

84%

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

70%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 procedure itself is about as actionable and well-validated as a skill can be — concrete commands, explicit checkpoints, failure branches, and a done checklist — and it assumes no knowledge Claude already has. Its weakness is shape: it reads as a long empirical write-up rather than a skill body, with most of the deep-dive material belonging in the references/ directory the bundle already has.

Suggestions

Move the step-4 deep dives — Codex rollout parsing, the trust/hasTrustDialogAccepted permission mechanics, and the desktop-app two-client analysis — into reference files (e.g. references/verification.md, references/permissions.md), keeping SKILL.md to the core procedure with one-line pointers written the way backends.md is pointed to.

Cut the measurement narratives to their actionable conclusions: each 'was measured' anecdote currently carries a story plus a lesson; keep the lesson (e.g. 'slow is not dead — a timeout between two healthy latencies misreports a good endpoint') and drop the session history around it.

De-duplicate the repeated explanations — the init event is described three times (removal check, grant check, desktop-app check) and the trust mechanism twice; state each once and cross-reference it, which alone would trim a significant fraction of the body.

DimensionReasoningScore

Conciseness

The body runs ~645 lines / 38KB of dense narrative in which the same points are made repeatedly (the init event is explained three times, the trust mechanism twice) and measurement war stories pad nearly every paragraph ("One session lost three attempts to this and then reported a pre-fix run as proof the fix had worked"). It exceeds anchor 3's "mostly efficient but includes some unnecessary explanation" — there are several padded sections that could each be cut to their actionable conclusion, though it never hits anchor 1 because almost none of it explains concepts Claude already knows; the observations are genuinely non-obvious.

2 / 5

Actionability

Everything is copy-paste ready: `python3 <skill>/scripts/diagnose.py` with exit codes 0/1/2, the full `claude -p ... --disallowedTools WebSearch,WebFetch --disable-slash-commands < /dev/null 2> /tmp/verify-stderr.log` verification command with every flag explained, exact JSON/TOML config lines, and a complete executable Codex verification script including the session-id extraction, both exit-1 guard branches, and the tool-call parser. Specific examples cover both common cases (Claude Code and Codex).

5 / 5

Workflow Clarity

Four numbered steps (prove → remove → install → prove it works) each carry explicit validation: diagnose before editing, read the init event to confirm removal, the verification query requires a fetch as well as a search, and stderr emptiness is part of the pass. Feedback loops are explicit (inconclusive ≠ broken — re-run or try another model; spot-check URLs with curl -sIL before calling one fake; the Codex script's "every branch either prints a tool name, prints that there were none, or says which step could not be completed"), and the "What done looks like" checklist closes it out. These are config edits with a dedicated undo section, not destructive/batch operations, so no cap applies.

5 / 5

Progressive Disclosure

The one bundle reference is well signaled and one level deep ("Read references/backends.md for the current menu: what each option costs... and the one marked default", restated in a final Reference section), and diagnose.py is invoked by path. But ~600 lines of deep detail — the Codex rollout-parsing mechanics, the trust/hasTrustDialogAccepted permission behavior, the desktop-app two-client analysis — are inlined in SKILL.md where the rubric expects them split into reference files, which is the anchor-3 pattern of "content that should be separate is inline" rather than anchor 4's "minor organization gaps".

3 / 5

Total

15

/

20

Passed

Description

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

An exemplary description: concrete what-and-when in third person, with symptom, intent, and configuration triggers including a Chinese synonym for the target audience. The only gap is that it does not mention the verification step the skill itself treats as the definition of done.

DimensionReasoningScore

Specificity

"Diagnoses which built-in tools are dead, removes them, and installs a working replacement" lists several concrete actions covering the procedure's core, but the verification and undo steps the skill devotes entire sections to are absent — minor gaps in coverage matching the anchor-4 example of several specific actions with minor gaps rather than the fully comprehensive anchor 5.

4 / 5

Completeness

It explicitly answers what ("Fixes web search on an agent whose model backend can't run it... Diagnoses... removes them, and installs a working replacement") and when ("Use when web search returns nothing, ... or the user is on a third-party base URL, relay, or 中转站") with concrete trigger phrases, exactly matching the anchor-5 example pattern. The 'Use when...' clause is present and specific, so no cap applies.

5 / 5

Trigger Term Quality

Triggers span symptom phrases ("web search returns nothing", "a model insists a shipped product doesn't exist"), intent phrases ("someone wants to give an agent internet access"), and configuration synonyms ("third-party base URL, relay, or 中转站"), giving comprehensive natural-term coverage including a multilingual synonym. It is not anchor 4 because the synonym and symptom coverage leaves essentially no common user phrasing unrepresented.

5 / 5

Distinctiveness Conflict Risk

"a relay/reseller proxying Claude or Codex returns empty instead of failing" carves out a clear niche — broken built-in search behind third-party backends — with symptom- and configuration-based triggers that virtually no other skill would claim, matching the anchor-5 "clear niche with distinct triggers; minimal conflict risk". It is not anchor 4 because no closely related skill in a typical library shares this trigger surface.

5 / 5

Total

19

/

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

skill_md_line_count

SKILL.md is long (657 lines); consider splitting into references/ and linking

Warning

relative_links

Relative link issues: 1 suspicious

Warning

Total

14

/

16

Passed

Repository

daymade/claude-code-skills

Path

daymade-claude-code/agent-web-search-setup/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.