Use ONLY when the user explicitly says: 'use the skill web-to-markdown ...' (or 'use a skill web-to-markdown ...'). Converts webpage URLs to clean Markdown by calling the local web2md CLI (Puppeteer + Readability), suitable for JS-rendered pages.
Install with Tessl CLI
npx tessl i github:softaworks/agent-toolkit --skill web-to-markdownOverall
score
78%
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
Discovery
70%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description excels at specificity and completeness, clearly explaining what the skill does and providing explicit trigger guidance. However, the trigger terms are artificially restrictive, requiring users to say a specific phrase rather than using natural language like 'convert webpage to markdown' or 'fetch URL content'. This defeats the purpose of skill selection since users won't naturally use the prescribed phrase.
Suggestions
Replace the artificial trigger phrase with natural user language like 'Use when the user wants to convert a webpage to markdown, fetch URL content as text, or mentions web2md, webpage extraction, or JS-rendered pages'
Add common variations users might say: 'scrape webpage', 'get page content', 'URL to markdown', 'extract article from URL'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists specific concrete actions: 'Converts webpage URLs to clean Markdown by calling the local web2md CLI (Puppeteer + Readability), suitable for JS-rendered pages.' This describes the exact mechanism and capability. | 3 / 3 |
Completeness | Clearly answers both what ('Converts webpage URLs to clean Markdown by calling the local web2md CLI') and when ('Use ONLY when the user explicitly says: use the skill web-to-markdown'). The when clause is explicit, even if overly restrictive. | 3 / 3 |
Trigger Term Quality | The trigger terms are artificially restrictive ('explicitly says: use the skill web-to-markdown') rather than natural user language. Users would naturally say 'convert this webpage to markdown' or 'get the content from this URL', not the prescribed phrase. | 1 / 3 |
Distinctiveness Conflict Risk | Very distinct niche - specifically for converting webpages to Markdown using a particular CLI tool. The explicit trigger requirement and specific technology stack (Puppeteer + Readability) make conflicts unlikely. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
77%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured skill with excellent actionability and workflow clarity. The explicit trigger gate enforcement is appropriate for a specialized tool. Minor improvements could be made in conciseness by trimming explanatory text Claude doesn't need, and the extensive options list could potentially be externalized for better progressive disclosure.
Suggestions
Remove explanatory phrases like 'Works best with Chromium-family browsers' and 'Extracts main content (Readability)' - Claude understands these concepts
Consider moving the full list of optional rendering controls to a separate REFERENCE.md file, keeping only the most common flags inline
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Content is mostly efficient but includes some unnecessary explanation (e.g., 'Handles JS-rendered pages (Puppeteer → user Chrome)' and browser compatibility notes that Claude would understand). The input options list is comprehensive but could be more compact. | 2 / 3 |
Actionability | Provides fully executable commands for all scenarios: single URL, batch processing, interactive mode, stdout output. Commands are copy-paste ready with clear flag explanations and concrete examples. | 3 / 3 |
Workflow Clarity | Clear 6-step workflow with explicit validation checkpoint (step 5: verify files exist and are non-empty). Includes installation verification step and specific commands for different scenarios. The interactive mode workflow includes clear human-in-the-loop instructions. | 3 / 3 |
Progressive Disclosure | Content is well-organized with clear sections, but the optional rendering controls list is lengthy and could be moved to a separate reference file. For a skill of this size (~80 lines), inline content is acceptable but borders on too much detail in one file. | 2 / 3 |
Total | 10 / 12 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
| Criteria | Description | Result |
|---|---|---|
license_field | 'license' field is missing | Warning |
body_examples | No examples detected (no code fences and no 'Example' wording) | Warning |
body_steps | No step-by-step structure detected (no ordered list); consider adding a simple workflow | Warning |
Total | 13 / 16 Passed | |
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.