Implement web page content extraction capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to scrape web pages, extract article content, retrieve page metadata, or build applications that process web content. Supports automatic content extraction with title, HTML, and publication time retrieval.
73
67%
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-reader/SKILL.mdQuality
Discovery
92%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 well-crafted skill description that clearly articulates specific capabilities, includes natural trigger terms, and explicitly states both what the skill does and when to use it. The main weakness is potential overlap with other web scraping or content extraction skills, though the specific SDK reference helps mitigate this. The description uses proper third-person voice throughout.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: 'scrape web pages', 'extract article content', 'retrieve page metadata', 'build applications that process web content', and mentions specific outputs like 'title, HTML, and publication time retrieval'. | 3 / 3 |
Completeness | Clearly answers both what ('implement web page content extraction using z-ai-web-dev-sdk, supports automatic content extraction with title, HTML, publication time') and when ('Use this skill when the user needs to scrape web pages, extract article content, retrieve page metadata, or build applications that process web content'). | 3 / 3 |
Trigger Term Quality | Includes strong natural keywords users would say: 'scrape web pages', 'extract article content', 'page metadata', 'web content', 'content extraction'. These cover common variations of how users would describe web scraping needs. | 3 / 3 |
Distinctiveness Conflict Risk | The mention of 'z-ai-web-dev-sdk' provides some distinctiveness, but 'web content extraction' and 'scrape web pages' could overlap with other web scraping or HTTP request skills. The SDK name helps but the general web scraping domain is broad enough to risk conflicts. | 2 / 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, well-structured code examples covering CLI and SDK usage. However, it is severely bloated - easily 3-4x longer than necessary, with repetitive patterns (caching shown twice, multiple-page fetching shown 3+ ways) and extensive boilerplate code for patterns Claude already knows (rate limiting, caching classes, Express endpoints). The content desperately needs to be split into a concise overview with references to separate files for advanced patterns.
Suggestions
Reduce the main file to ~100 lines covering: basic CLI usage, one SDK example, response format, and the backend-only constraint. Move advanced use cases (RSS reader, scraping pipeline, Express integration, scheduled fetcher) to a separate EXAMPLES.md or ADVANCED.md file.
Remove redundant code examples - caching appears in both the WebContentAnalyzer class and the CachedWebReader best practice; multiple-page reading appears in 3 different forms. Keep one canonical example of each pattern.
Eliminate explanations of standard programming patterns (rate limiting, caching, parallel processing) that Claude already knows. Instead, just note 'implement caching and rate limiting for production use' with a brief code snippet showing the SDK-specific parts.
Add explicit validation steps for batch scraping workflows - e.g., verify response has expected fields before processing, check content length thresholds, and implement retry logic with backoff for failed URLs.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~600+ lines. Massive amounts of repetitive code examples (caching is shown twice, multiple pages is shown multiple ways, content extraction patterns repeated). The CLI section alone has 4 nearly identical examples. Many patterns (rate limiting, caching, parallel processing) are standard patterns Claude already knows and don't need full class implementations. | 1 / 3 |
Actionability | All code examples are fully executable with proper imports, error handling, and usage examples. Both CLI commands and SDK code are copy-paste ready with concrete function invocations and response handling. | 3 / 3 |
Workflow Clarity | The 'How It Works' section provides a basic 4-step sequence, and individual code examples have clear flows. However, there are no explicit validation checkpoints for batch/scraping operations - no guidance on verifying extracted content quality, no feedback loops for retrying failed pages beyond basic try/catch. | 2 / 3 |
Progressive Disclosure | Monolithic wall of text with everything inline. The response format table, all advanced use cases (RSS reader, content aggregator, scraping pipeline, scheduled fetcher, Express.js integration), best practices, and troubleshooting are all in one massive file. References a scripts directory but doesn't offload any content to separate files. | 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 (1141 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.