Implement web search capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to search for real-time information from the web, retrieve up-to-date content beyond the knowledge cutoff, or find the latest news and data. Returns structured search results with URLs, snippets, and metadata.
57
66%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/web-search/SKILL.mdQuality
Discovery
89%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a solid skill description that clearly communicates both what the skill does and when to use it. The explicit 'Use this skill when...' clause with natural trigger terms makes it easy for Claude to select appropriately. The main weakness is that the core capability (web search) is somewhat singular, with the description padding it by restating the same concept in different ways rather than listing truly distinct actions.
Suggestions
Add more specific concrete actions beyond general search, such as 'search news articles, look up current events, verify facts against live sources, retrieve webpage content' to improve specificity.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (web search) and mentions some actions ('search for real-time information', 'retrieve up-to-date content', 'find the latest news'), but the core capability is essentially one action (web search) described in multiple ways rather than listing multiple distinct concrete actions. It does mention structured output format (URLs, snippets, metadata). | 2 / 3 |
Completeness | Clearly answers both 'what' (implement web search capabilities, returns structured results with URLs/snippets/metadata) and 'when' (explicit 'Use this skill when...' clause covering search for real-time info, content beyond knowledge cutoff, latest news and data). | 3 / 3 |
Trigger Term Quality | Includes strong natural trigger terms users would say: 'search', 'web', 'real-time information', 'latest news', 'up-to-date content', 'knowledge cutoff'. These cover common variations of how users would request web search functionality. | 3 / 3 |
Distinctiveness Conflict Risk | The combination of web search, the specific SDK name (z-ai-web-dev-sdk), and the focus on real-time/up-to-date information creates a clear niche that is unlikely to conflict with other skills. The SDK reference further narrows the scope. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill is highly actionable with executable code examples but is severely bloated. The core information (SDK import, function invocation with parameters, result type) could be conveyed in under 50 lines, but instead spans 500+ lines with extensive boilerplate code (caching, rate limiting, Express APIs, research assistants) that Claude can generate independently. The lack of progressive disclosure compounds the verbosity problem—everything is crammed into a single file with no external references despite the bundle structure suggesting a scripts directory exists.
Suggestions
Reduce the body to ~50-80 lines covering: SDK import, basic invocation, CLI usage, result type, the backend-only constraint, and a single error handling pattern. Move advanced examples (caching, rate limiting, Express integration, research assistant) to separate referenced files.
Remove sections Claude already knows: 'Common Use Cases' list, 'Performance Tips', 'Security Considerations', and 'Troubleshooting' are all general knowledge that waste tokens.
Create a progressive disclosure structure: keep a Quick Start section in SKILL.md, then reference files like ADVANCED.md, INTEGRATION.md, and the existing scripts/web_search.ts for detailed examples.
Remove the SearchProcessor, ResearchAssistant, CachedSearch, and RateLimitedSearch classes entirely—these are generic patterns Claude can produce on demand and don't teach anything specific to this SDK.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~500+ lines. Massive amounts of code that Claude could easily generate on its own (caching classes, rate limiting, Express.js boilerplate, result validation scoring). The core skill is just calling `zai.functions.invoke('web_search', {...})` which could be conveyed in ~30 lines. Lists of common use cases, performance tips, security considerations, and troubleshooting are all things Claude already knows. | 1 / 3 |
Actionability | The skill provides fully executable, copy-paste ready code examples for both CLI and SDK usage. The code is concrete with real imports, function signatures, and usage patterns. The SearchFunctionResultItem interface is clearly defined. | 3 / 3 |
Workflow Clarity | The skill is fundamentally a single API call, so complex workflows aren't strictly needed. However, the multi-step examples (like searchAndSummarize) lack validation checkpoints. The CLI vs SDK decision guidance is clear, but the overall flow between sections is muddled by the sheer volume of examples without clear sequencing of when to use what. | 2 / 3 |
Progressive Disclosure | Monolithic wall of text with no references to external files despite mentioning a scripts directory. Everything is inlined—advanced use cases, integration examples, best practices, troubleshooting—all in one massive file. The content desperately needs splitting into separate reference files (e.g., API reference, integration examples, advanced patterns). | 1 / 3 |
Total | 7 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (913 lines); consider splitting into references/ and linking | Warning |
Total | 10 / 11 Passed | |
52b2597
Table of Contents
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.