CtrlK
BlogDocsLog inGet started
Tessl Logo

broken-link-checker

Scans a website to find broken links (404s, 500s). Crawls internal pages, identifies broken outbound links, and reports source pages for easy fixing. Use this when the user asks to "check for broken links", "find 404s", "audit my links", or "is my site healthy".

65

Quality

78%

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 ./seo/broken-link-checker/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

68%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, actionable skill body that externalizes its implementation into a real script and structures the workflow clearly. Its main weakness is the missing validation/feedback checkpoint for the batch crawl, which caps workflow clarity, plus a minor path-reference mismatch.

Suggestions

Add a validation checkpoint after Step 2: instruct Claude to confirm the crawl completed, inspect stderr/crawl errors, and retry on partial failure before reporting — this satisfies the batch-operation feedback-loop requirement and lifts the workflow_clarity cap.

Include a 2-3 line sample of the JSON 'broken_links' entry so Claude can concretely map the 'source', 'target', and 'status' fields rather than relying on field names alone.

Reference the script with a skill-rooted relative path ('scripts/checker.py') or document the expected install location so the path matches the actual bundle location.

DimensionReasoningScore

Conciseness

The body is largely efficient with a concrete script command and tight step structure, but the opening persona ('You are a technical SEO specialist...') and the motivation line ('Broken links hurt user experience and waste crawl budget') are minor over-explanation of concepts Claude already knows that could be trimmed.

4 / 5

Actionability

Provides a copy-paste-ready command referencing a real script, concrete JSON field names ('broken_links', 'source'), and specific fix templates per category, but stops short of showing the actual JSON output structure, leaving a minor gap.

4 / 5

Workflow Clarity

The three steps are clearly sequenced, but this is a batch crawl (up to 50 pages) with no validation checkpoint — no instruction to verify the crawl completed, inspect crawl errors, or retry on partial failure before reporting — so per the batch-operation cap, workflow clarity cannot exceed 3.

3 / 5

Progressive Disclosure

The heavy implementation is appropriately externalized into scripts/checker.py (verified to exist) and signaled clearly via a code block, with well-organized sections in a short body, but the referenced path 'seo/broken-link-checker/scripts/checker.py' uses a project-rooted prefix rather than the skill-rooted 'scripts/checker.py', a minor navigation gap.

4 / 5

Total

15

/

20

Passed

Description

88%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, well-constructed description that clearly states what the skill does and when to use it with concrete, natural trigger phrases. The only gaps are a couple of missing synonyms (dead links, link rot) and one slightly broad trigger that risks minor overlap with general site-health skills.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'Scans a website to find broken links (404s, 500s)', 'Crawls internal pages', 'identifies broken outbound links', 'reports source pages for easy fixing' — giving comprehensive coverage of the domain, matching the anchor-5 example.

5 / 5

Completeness

Explicitly answers both 'what' (scans/crawls/identifies/reports broken links) and 'when' ('Use this when the user asks to...') with concrete trigger phrases, matching the anchor-5 pattern exactly.

5 / 5

Trigger Term Quality

Provides four natural phrases users would say — 'check for broken links', 'find 404s', 'audit my links', 'is my site healthy' — including a status-code synonym, but misses common variants like 'dead links' or 'link rot', so it is good but not fully comprehensive.

4 / 5

Distinctiveness Conflict Risk

The core triggers (broken links, 404s, audit links) carve a clear niche, but the broad phrase 'is my site healthy' creates minor overlap risk with a general SEO/site-audit skill, fitting 'mostly distinct; minor overlap risk'.

4 / 5

Total

18

/

20

Passed

Validation

93%

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

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
nowork-studio/NotFair
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.