CtrlK
BlogDocsLog inGet started
Tessl Logo

webshop-price-checker

This skill scans product listings or detail pages to verify if an item's price meets a specified budget constraint. It is triggered when evaluating a potential product for purchase. It extracts the price from the displayed information (e.g., '$164.95') and compares it against the maximum allowed budget, outputting a boolean decision on whether the item is within budget.

61

Quality

77%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./experiments/src/skills/webshop/webshop-price-checker/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

A concise, well-sequenced instruction body for a simple single-purpose skill, with sensible decision branching and no token waste. Its weaknesses are executable specificity — the central script call has no invocation syntax and no file backing it — and bundle integration, since the one provided reference file is never surfaced.

Suggestions

Show the exact script invocation in step 3 (e.g., `python scripts/check_price.py --price "$164.95" --budget 200.00`) and ship the script at that path so the instruction is copy-paste executable.

Reference the bundled reference file where relevant, e.g., in step 2: "See [price_patterns.md](references/price_patterns.md) for common price string formats and budget phrasings".

Add a brief note on handling edge cases the script might report (multiple prices, malformed price strings) or unexpected script errors, to round out the decision workflow.

DimensionReasoningScore

Conciseness

The body is ~19 lean lines with no explanation of concepts Claude already knows; every line either gives a process step or an operational note ("Do not perform manual price parsing or comparison", "If the price cannot be found... continue your search"). This matches the score-5 anchor (lean, assumes competence, every token earns its place) and clearly beats the score-4 anchor, which requires over-explanation to trim.

5 / 5

Actionability

Step 3 says "Run the `check_price.py` script, providing it with the extracted price string and the budget" but never shows the actual command — no script path, no argument format, no example invocation — and the bundled `scripts/` directory does not exist, so the instruction cannot be executed as written. This fits the score-3 anchor (some concrete guidance but incomplete, missing key details); it is not score 4 because the core action lacks an executable form, and not score 2 because the steps, inputs, and expected output are otherwise specific.

3 / 5

Workflow Clarity

The Process section gives a clear four-step sequence (identify budget → locate price → run check → decide) with explicit True/False branches and a missing-price fallback in Notes, which serves as a checkpoint for the main failure mode. It matches the score-4 anchor (clear sequence, most checkpoints present, minor gaps); it is not score 5 because there is no guidance for handling script errors or ambiguous output, and not score 3 because both decision branches and the not-found case are addressed.

4 / 5

Progressive Disclosure

The body itself is well-organized with clear Process/Notes sections, but scored against the actual bundle it has real organization gaps: the bundled `references/price_patterns.md` (useful budget phrasings and price formats) is never mentioned or linked from the body, and the referenced `check_price.py` has no corresponding file in the bundle. This matches the score-3 anchor (structure present, references present but not clearly signaled); the under-50-line simple-skill exception would allow a 5, but an orphaned reference file plus a dangling script reference is more than a minor gap.

3 / 5

Total

15

/

20

Passed

Description

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

A strong, concrete description that clearly communicates what the skill does in third person with specific actions and an example price string. Its main weakness is the trigger presentation: it describes when it fires in mechanical language rather than natural user phrases, and it lacks common synonyms a user would say.

Suggestions

Replace "It is triggered when evaluating a potential product for purchase" with an explicit 'Use when...' clause containing natural user phrases, e.g., "Use when checking whether a product's price fits a budget, such as 'under $200' or 'less than 200 dollars'".

Add common synonyms and phrasings users would naturally say — "cost", "affordable", "max price", "under $X" — to improve trigger-term coverage.

Tighten the description by merging the redundant trigger sentence into a single 'Use when' clause, since the current two-sentence structure repeats the evaluation context.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "scans product listings or detail pages", "extracts the price from the displayed information (e.g., '$164.95')", "compares it against the maximum allowed budget", "outputting a boolean decision" — which comprehensively covers this narrow task. It matches the score-5 anchor (multiple specific concrete actions, comprehensive coverage) and exceeds the score-4 anchor because there are no notable coverage gaps for the task it defines.

5 / 5

Completeness

The 'what' is explicit and detailed (scan, extract price, compare against budget, output boolean), and the 'when' is present as equivalent explicit trigger guidance ("It is triggered when evaluating a potential product for purchase"), so the missing-'Use when' cap at 3 does not apply. It falls short of score 5 because the 'when' clause is abstract — no concrete trigger phrases a user would actually say — matching the score-4 anchor ('when' could be more explicit or specific).

4 / 5

Trigger Term Quality

Core keywords like "price", "budget", "product", and "purchase" are present and natural, but common user phrasings and synonyms ("under $X", "affordable", "cost", "max spend") are missing, and the trigger is stated mechanically ("It is triggered when evaluating a potential product for purchase") rather than with natural user phrases. This fits the score-3 anchor (some relevant keywords, missing common variations); it is not score 4 because the natural-phrase coverage is thin, and not score 2 because the domain keywords themselves are genuine and specific.

3 / 5

Distinctiveness Conflict Risk

The niche (price-vs-budget verification on shopping pages) is well-delineated with distinct vocabulary ("product listings", "detail pages", "budget constraint"), giving minor overlap risk only with closely related shopping-assistant skills. It matches the score-4 anchor; it is not score 5 because the trigger phrasing is generic enough that a broad 'shopping assistant' skill could plausibly fire on the same utterances.

4 / 5

Total

16

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
zjunlp/SkillNet
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.