Add a release gate the roster check cannot satisfy - #134
Merged
bitcoinuniverseadmin merged 1 commit intoSep 18, 2026
Merged
Conversation
The roster gate answers whether this repository still agrees with itself about which protocols exist. It runs on every commit, and a gate that runs constantly is one people learn to make green, so it was never the right place to ask whether a revision is fit to release. Adds --release, a separate mode that refuses the five ways a release can be declared complete without being complete: an unknown denominator, a summary that counts something other than the operations declared, forged completion where a label claims more than the descriptors do, missing or duplicated operations, and a revision or network other than the one being released. It also refuses a complete historical coverage claim or a readable release status on a protocol whose operations were never accepted, which is the specific gap the seven historical declarations left open. Run against what this repository pins today, and against the live deployment, it fails, naming all seven. That is the correct answer: no declared read has a qualified acceptance run behind it yet. The frontend acceptance type widens with it, so a consumer can represent a result other than the single hardcoded literal it was pinned to. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bitcoinuniverseadmin
deleted the
feat/protocol-release-gate-20260918
branch
September 18, 2026 19:32
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.
Implements FE-GATE-04 and FE-COVERAGE-01 from the 2026-09-18 protocol coverage handoff. Pairs with bitcoinuniverseio/backend-apis#203, which produces the acceptance summary this gate reads.
Why a second gate
--checkasks whether this repository still agrees with itself about which protocols exist. It runs on every commit, which is exactly what makes it the wrong place to ask whether a revision is fit to release: a gate that runs constantly is one people learn to make green.What
--releaserefusesUsage:
protocol-contract.mjs --release <url|file> [--expect-sha <sha>] [--network <name>]What it says today
Run against the pinned manifest and against
https://explorer.bitcoinuniverse.io, it exits 1 and names all seven historicalcompletedeclarations B01 flagged, plus the missing denominator. That is the correct verdict: no declared read has a qualified acceptance run behind it.Verification
--checkand fails--release, so the two gates cannot silently converge.tsc --noEmitclean. Text gate passes.🤖 Generated with Claude Code