Estate instrument
workspace-deps
Finds internal semver ranges a version bump has silently outgrown — the failure that is green on a laptop and red only on a clean CI checkout.
source: flashyos/tools/workspace-deps.mjs
node tools/workspace-deps.mjs [--fix] (flashyos)Bump a workspace package across its caret boundary and every consumer still pinned at the old range names a range the workspace cannot satisfy. npm ci does not fail: it fetches the last matching version from the registry, stale and missing the new exports, and links that instead of the workspace beside it.
Edge cases — each one paid for once
workspace:* would fix this and cannot be used
npm 10 ships the protocol unrewritten to the registry, breaking external installs. Published ranges must stay real semver — which is exactly what drifts, so the doctor runs offline in every test pass.