CI gate: a skill's body must mention a version that reaches its upstream-version-tested pin. The back-half of the pair โ check-labs-versions.mjs watches the pin (vs npm); this watches the body (vs the pin).
The rule: a skill is stale when the highest 0.x version token in its body is behind the pin.
Higher minor anywhere โ OK. Pin's minor with a patch-agnostic 0.29.x โ OK (covers any patch).
Only minor/major drift fails; patch precision is relaxed for .x. Legit "New in 0.5.0" changelog
lines pass โ the body just has to mention the current version somewhere.
๐ The 7 pinned skills (live verdicts)
Skill
package
pin
body max
verdict
All green after this PR. Before it, mcp-visual-output (0.15) and multi-surface-render (0.17) were red โ the linter caught body rot that #2605 didn't reach.
๐๏ธ Try it โ drag the body version against a pin