alirezarezvani/claude-md-link-check
Verify every @path chain import and every markdown link inside every CLAUDE.md in this project resolves to an existing file. Read-only — returns broken links with file:line refs, never edits.
npx skills add https://github.com/alirezarezvani/ClaudeForge --skill claude-md-link-check
Optional path-glob: $ARGUMENTS (default . — entire tree).
Run these steps in order. Do not modify any file.
find <root> -name "CLAUDE.md" -type f -not -path "*/.git/*" -not -path "*/node_modules/*". Also include .claude/rules/*.md. Record paths.^@\S+. The literal after @ is a relative path.text where target is not an HTTP(S) URL, not mailto:, not a bare anchor #section.Read on the parent file to confirm position, then test -e <resolved-path> or Glob).@../CLAUDE.md inside skill/CLAUDE.md, resolved path is CLAUDE.md.Backend inside the root, resolved path is backend/CLAUDE.md.## Link Check
Files inspected: <count>
References checked: <chain_imports> @-imports, <md_links> markdown links
### Broken
- <file>:<line> — `<original-target>` → does not resolve (expected `<absolute-path>`)
- ... (omit section if empty)
### Clean
<count> references resolved.
## Link Check\n\nAll <N> references resolved across <M> files.. Do not pad.Hard rule: never invent a fix. Report the broken target verbatim. Repair is the user's call (or /sync-claude-md's).
Take alirezarezvani/claude-md-link-check from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.