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.
72
66%
Does it follow best practices?
Impact
Pending
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 is a strength. 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 'query specific domains', 'aggregate results from multiple sources', or 'filter by date range' 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 provides highly actionable, executable code examples covering CLI and SDK usage, but is severely bloated with generic programming patterns (caching, rate limiting, Express boilerplate) that Claude can generate without instruction. The core skill—invoking web_search via z-ai-web-dev-sdk—is buried under hundreds of lines of unnecessary scaffolding. The content would benefit enormously from aggressive trimming and splitting advanced examples into separate reference files.
Suggestions
Reduce the core skill to ~50 lines covering: the API call pattern, the SearchFunctionResultItem type, CLI usage with one example, and the backend-only constraint. Move all advanced patterns (caching, rate limiting, Express integration, research assistant) to a separate EXAMPLES.md or ADVANCED.md.
Remove generic programming patterns Claude already knows (caching with Map, exponential backoff, Express.js route handlers, rate limiting) or replace them with one-line references like 'Implement caching/rate-limiting as needed.'
Add explicit validation steps for multi-step workflows like 'Search with AI Summary'—e.g., check that searchResults is non-empty before proceeding to the summarization step.
Consolidate the redundant sections (Common Use Cases list, Performance Tips, Security Considerations, Remember) into a single concise 'Notes' section, removing items that are obvious to Claude (e.g., 'sanitize user input', 'don't expose credentials client-side').
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~600+ lines. Massive amounts of code that Claude could easily generate on its own (caching classes, rate limiters, Express.js boilerplate, result validation scoring). The SearchProcessor, ResearchAssistant, CachedSearch, and RateLimitedSearch classes are generic patterns Claude already knows. The core skill (call zai.functions.invoke('web_search', {...})) could be conveyed in ~30 lines. | 1 / 3 |
Actionability | All code examples are fully executable with proper imports, concrete function signatures, and copy-paste ready patterns. Both CLI and SDK usage paths are well-documented with specific commands and working code. | 3 / 3 |
Workflow Clarity | The skill is primarily a single API call, so complex workflows aren't strictly needed. However, the 'Search with AI Summary' example shows a multi-step workflow without validation between steps. The troubleshooting section lists issues but doesn't integrate validation checkpoints into the workflows themselves. | 2 / 3 |
Progressive Disclosure | Monolithic wall of text with everything inline. The Express.js integration, research assistant class, caching implementation, rate limiting, and result validation could all be in separate reference files. No content is split out despite the document being extremely long. References to scripts/web_search.ts exist but the bulk content that should be externalized is all inline. | 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 | |
07048a9
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.