Universal link validation using lychee for Claude Code sessions. Runs at session end to detect broken links and path policy violations.
Scanned 2/12/2026
Install via CLI
openskills install terrylica/cc-skills---
name: link-validation
description: Universal link validation using lychee for Claude Code sessions. Runs at session end to detect broken links and path policy violations.
triggers:
- link validation
- broken links
- lychee
- check links
- markdown links
---
# Link Validation Skill
Validates markdown links in your workspace using [lychee](https://github.com/lycheeverse/lychee).
## When to Use This Skill
Use this skill when:
- Checking for broken links in markdown files
- Validating link paths before committing documentation
- Running automated link checks at session end
- Detecting path policy violations (absolute paths, excessive traversal)
## What It Does
At session end (Stop hook), this skill:
1. **Discovers** all markdown files in your workspace
2. **Runs lychee** to check for broken links
3. **Lints paths** for policy violations (absolute paths, excessive traversal)
4. **Outputs JSON** results for programmatic consumption
## Requirements
- [lychee](https://github.com/lycheeverse/lychee) installed (`brew install lychee`)
- Python 3.11+ and uv
## Output
Results are written to `.link-check-results.md` in your workspace:
```markdown
# Link Check Results
**Correlation ID**: `01JEGQXV8KHTNF3YD8G7ZC9XYK`
## Lychee Link Validation
No broken links found.
## Path Policy Violations
No path violations found.
```
## Path Policy Rules
| Rule | Severity | Description |
| -------------------- | -------- | -------------------------------------- |
| NO_ABSOLUTE_PATHS | Error | Filesystem absolute paths not allowed |
| NO_PARENT_ESCAPES | Warning | Excessive `../` may escape repository |
| MARKETPLACE_RELATIVE | Warning | Plugins should use `./` relative paths |
## Configuration
Override the default lychee config by placing `.lycheerc.toml` in your workspace root.
See [config/lychee.toml](../../config/lychee.toml) for the default configuration.
## References
- [ADR: Link Checker Plugin Extraction](../../../../docs/adr/2025-12-11-link-checker-plugin-extraction.md)
- [Design Spec](../../../../docs/design/2025-12-11-link-checker-plugin-extraction/spec.md)
- [lychee Documentation](https://github.com/lycheeverse/lychee)
---
## Troubleshooting
| Issue | Cause | Solution |
| -------------------- | -------------------- | ---------------------------------- |
| lychee not found | Not installed | Run `mise install lychee` |
| Too many 403 errors | Rate limiting | Add rate limit to .lycheerc.toml |
| Relative path errors | Wrong base directory | Run from repository root |
| False positives | Dynamic content | Add URL pattern to exclude list |
| Timeout on links | Slow external sites | Increase timeout in config |
| Cache issues | Stale cached results | Clear cache with `--no-cache` flag |
No comments yet. Be the first to comment!