mirror of
https://github.com/addyosmani/agent-skills.git
synced 2026-10-26 15:05:04 +00:00
stripFencedCodeBlocks matched fences with a single whole-document regex that only recognised a column-zero backtick fence closed by a run of exactly the same length. Three CommonMark-legal forms slipped through and their contents were linted as prose: tilde fences, fences indented one to three spaces, and closing fences longer than their opener. This is live on main today — spec-driven-development's list-nested examples use indented fences, so the linter has been reading their contents as skill text. Replace the regex with a line scanner that tracks the opener's marker and length, closes only on a same-marker run at least as long, treats an unterminated fence as running to end of file (so sections after it fail loud), and follows the CommonMark rule that a backtick fence's info string may not contain backticks. Stripped lines become empty lines so positions are preserved. Add unit coverage for each form plus CRLF input, and run scripts/lib/skill-lint-test.js in CI — it was the only test file the workflow did not execute. Revives the approach from #444 by @ujjwalks, which was approved and then closed after a rebase conflict. Closes #437