Skip to content

feat(ci): staleness is measured, and the measurement is a ratchet - #10

Merged
github-actions[bot] merged 1 commit into
mainfrom
feat/version-currency-ratchet
Aug 31, 2026
Merged

feat(ci): staleness is measured, and the measurement is a ratchet#10
github-actions[bot] merged 1 commit into
mainfrom
feat/version-currency-ratchet

Conversation

@catomean

Copy link
Copy Markdown
Contributor

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-inventory encodes 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. --check ratchets 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 --update when it does.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WqKqMnHQHSmkGFfc5t7Rxn

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
@github-actions
github-actions Bot merged commit 503f476 into main Aug 31, 2026
1 check passed
@github-actions
github-actions Bot deleted the feat/version-currency-ratchet branch August 31, 2026 08:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant