About fixing-broken-links
A Skill for scanning files for links and repairing broken ones, intended for people maintaining Markdown, HTML, and other documents. It checks external URLs and local paths, then reports link statuses and actions taken.
Key features
- 01Extract links in multiple formats
- 02Check external URL status codes
- 03Verify local relative paths
- 04Find replacement URLs for broken links
- 05Report statuses and repair actions
Use cases
- 01Check links in Markdown documents
- 02Validate resource addresses in HTML pages
- 03Find missing local files referenced by documents
- 04Document link-checking and repair results
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ revitalb-port/ skills-registry-demo --skill fixing-broken-linksAfter installing, type/fixing-broken-linksin Claude Code to confirm it loaded.
Details
From the project READMEFixing Broken Links
Scan a file (or set of files) for URLs, test every link, and fix any that are broken.
Workflow
1. Extract All Links
Read the target file(s) and collect every URL:
- Markdown links:
[text](url) - Bare URLs:
https://... - HTML
hrefandsrcattributes - Reference-style link definitions:
[id]: url - Local relative paths:
./path/to/file,resources/foo/SKILL.md
2. Test Each Link
For external URLs:
- Use
curl -sL -o /dev/null -w "%{http_code}" --max-time 10 "<url>"to get the HTTP status code - Batch independent checks for speed (run multiple curl commands in parallel or in quick succession)
- Classify results:
200–299→ OK301/302→ OK but note the redirect target403→ Might be valid (some sites block curl); try with a browser user-agent header404→ Broken429→ Rate limited; retry once after a short pause000or timeout → Retry once; if still failing, mark as unreachable
For local file paths:
- Check if the file exists on disk with
[ -f "path" ] - If it's a relative path, resolve it from the file's directory
3. Fix Broken Links
For each broken link:
- Search the web for the correct/current URL (the resource may have moved)
- If found, replace the old URL with the new one
- If the resource no longer exists, note it and either:
- Remove the link and leave the text
- Comment it out with a note
- Replace with an archived version (web.archive.org)
4. Report
Produce a summary table:
| URL | Status | Action |
|-----|--------|--------|
| https://example.com/page | 200 | OK |
| https://old.example.com/moved | 404 → 301 | Updated to https://new.example.com/page |
| ./docs/missing.md | MISSING | Removed link |
Tips
- For large files with many links, batch curl calls to avoid slowdowns
- Some sites (GitHub, npm) rate-limit aggressively — space out requests
- Always re-read the file after making changes to confirm replacements didn't break formatting
- For Markdown files, verify link syntax is preserved:
[text](url)not[text]( url )(no extra spaces)
Comments
Markdown supported