feat(ci): staleness is measured, and the measurement is a ratchet - #10
Merged
Merged
Conversation
The 2026-08-31 fleet audit found the box on an EOL Node, aoz-housing a full framework generation behind on every axis, and ai-kit pinned at three tags across seven consumers — one at the pre-org-move OWNER. None of it hidden, all of it unmeasured. Same lesson shared-inventory encodes for duplication: writing 'stay current' in a doc is what already failed. blessed-versions.json is the SSOT (blessed major per key package + the tag every internal git pin must carry); version-currency.mjs measures every default branch against it, reports UNCHECKED for anything it could not read rather than counting it clean, and --check ratchets the total: fall or hold, never rise. Baseline seeded at the audit's real number: 80. Self-test pins both sides with the audit's own fixtures (the aoz manifest, the dead-owner pin) and runs in ci.yml beside the other detector tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WqKqMnHQHSmkGFfc5t7Rxn
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The 2026-08-31 fleet audit (all 38 repos, default branches) found the box on an EOL Node 20, aoz-housing a full framework generation behind on every axis at once, and ai-kit pinned at three different tags across seven consumers — one still at the pre-org-move owner. None of it was hidden; all of it was unmeasured. Writing "stay current" down is what already failed — same lesson
shared-inventoryencodes for duplication.What this adds
scripts/ci/blessed-versions.json— SSOT: blessed major per key package + the tag every internal git pin must carry. Raising a number here is a deliberate PR.scripts/ci/version-currency.mjs— measures every default branch against it. UNCHECKED (could-not-read) is reported, never counted as clean.--checkratchets the total gap count: fall or hold, never rise. Baseline seeded at the audit's real number: 80.scripts/ci/test-version-currency.mjs— both sides pinned with the audit's own fixtures (the aoz-housing manifest, the dead-owner pin); wired into ci.yml beside the other detector self-tests..github/workflows/version-currency.yml— weekly, report to step summary + strict check, mirroring shared-inventory.yml.The baseline will FALL as the currency waves land (Wave 1 is merging now); the ratchet prints a reminder to tighten it via
--updatewhen it does.🤖 Generated with Claude Code
https://claude.ai/code/session_01WqKqMnHQHSmkGFfc5t7Rxn