mirror of
https://github.com/addyosmani/agent-skills.git
synced 2026-11-05 04:06:02 +00:00
`validate-reference-links.js` scans every line of a SKILL.md, so a `references/…md` path shown inside a fenced code block is treated as a link to resolve. The rule this validator enforces therefore cannot be documented: its own failure message tells authors to write `../../references/<file>.md` rather than `references/<file>.md`, and a skill showing that contrast as an example fails the check that is explaining it. Reproduced on main by appending a fenced markdown example to using-agent-skills/SKILL.md — exit 1, with the guidance text printed underneath the very link it had just rejected. Lines inside a fence are now skipped. The scan is line-by-line rather than one regex over the document so the three CommonMark fence forms all hold: tilde fences, up to three spaces of indent, and a closing fence longer than its opener — and a ``` line inside a ~~~ block does not close it. Line numbers are preserved by collecting fenced line indices and skipping them during the scan, rather than stripping the text first, so the L<n> in an error still points at the real line. Deliberately local rather than shared with scripts/lib/skill-lint.js: that module's stripFencedCodeBlocks is the single regex with the gaps described in #437, and #444 is already rewriting it. Forking a rewrite in flight costs more than the duplication; once #444 lands the two should collapse into one helper under scripts/lib/. Three tests added. All three fail against the current validator; the third pins that a genuinely broken link outside a fence is still reported, so the exemption cannot silently swallow real breakage.