Unify the SKILL.md project-check checkers on a markdown-contract harness
Status: closed/done · Impact: medium · Complexity: medium
Three project-check checkers in the SKILL.md family each re-parsed SKILL.md
their own way. Reframe markdown-contract as the unified validation harness for
them: one shared SKILL.md contract (lenient frontmatter Zod + open H2 body plane)
with each behavioral check expressed as an injected docRule, so the three
checkers share one parse and one finding surface.
Acceptance criteria
Section titled “Acceptance criteria”- The three SKILL.md-family checkers (pipe-tail, legacy-script-path, skill-doc mermaid + step-coverage) are unified on one shared SKILL.md contract.
- A new
skill_md_harness.tsowns the contract; the three checker scripts become thin renderers. - Each behavioral check is an injected
docRuledoing its own IO/shell-out (mmdc, sibling reads, cross-file coverage). - Output is byte-stable — markers, per-error text, and 0/1/2 exit codes are verified identical before and after across the corpus and fixtures.
Out of scope
Section titled “Out of scope”- The
invariants.yamllegacy scan stays a direct YAML scan (unprojected) through the same shared core, keeping its existing finding id.