๐Ÿฉน Labs skill version drift โ€” root-caused & fixed

OrchestKit ยท found while answering "do any skills/subagents need updates?" ยท not from the CC adoption work
skills fixed 4 source #2699 weekly pin sync CI gap closed drift test 7/7 โœ… branch fix/labs-skill-version-drift

What drifted โ€” pin bumped, prose left behind

skillpin (frontmatter)body saidbody now sayswhat's new upstream
browser-tools0.31.10.23โ†’0.29.10.23โ†’0.31.1read cmd (0.30), session --restore/--namespace (0.31), react-dom renderer fix (0.31.1)
expect0.31.10.29.x0.31.1shares agent-browser pin; restore + read noted
emulate-seed0.8.00.7.0 ยท 13 emulators0.8.0 ยท 14 emulatorsTwilio emulator (14th): SMS/Verify/calls + Next.js example
portless0.15.00.10.xโ†’0.14.00.10.xโ†’0.15.0portless doctor diagnostics; HTTP/2 Host forwarding + --force cleanup fixes

Changelogs pulled live from vercel-labs GitHub releases. Note: npm has since moved further (emulate 0.9.0, portless 0.15.1) โ€” that's the weekly bot's next bump, out of scope here.

Why CI never caught it โ€” the real root cause

labs pin-sync bot (#2699) bumps frontmatter pins โ†’ bodies not touched
โœ— blocking job "Agents & Skills" runs run-tests.sh tests/skills โ€” globs test-*.sh ONLY, skips the .mjs drift test
โœ— the .mjs drift test runs ONLY in orchestkit-eval.yml โ€” where every step is continue-on-error: true
= drift test had NO blocking home โ†’ #2699 merged red, silently

โœ“ FIX: add a blocking .mjs step to the "Agents & Skills" job (drift + version-snapshot tests)

Initial hypothesis was "| tee masks the exit code" โ€” verified false (GH Actions bash sets pipefail; the eval step is continue-on-error). The actual gap is the test-*.sh-only glob in the blocking runner.

Also verified this session (unrelated housekeeping)

toolinstalledlatestaction
uv0.11.260.11.26already latest โ€” no-op
rtk0.42.40.43.0upgraded + verified (60% savings intact)

Prompt โ†’ copy back to Claude

Fix the labs skill version drift on branch fix/labs-skill-version-drift: update the bodies of browser-tools, expect, emulate-seed, and portless to match their upstream-version-tested frontmatter pins (agent-browser 0.31.1, emulate 0.8.0, portless 0.15.0) using the real vercel-labs GitHub release notes; and close the CI gap by adding a blocking step to the "Agents & Skills" job that runs the two .mjs skill-structure tests (run-tests.sh only globs test-*.sh, so they had no blocking home). Rebuild plugins, confirm test:skills is green, ship as one PR.