๐Ÿ”ฌ Body-Version-Drift Linter ยท #2599 (P2)

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)

Skillpackagepinbody maxverdict
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