fix(authority): a passing verdict was self-assertable by declaring no reviewer - #548
Merged
Conversation
added 2 commits
July 31, 2026 11:42
… reviewer
`benchmark.verdict: MEET` + `candidate_evidence.status: VERIFIED` +
`independent_outcome_review.status: HOLD` validated clean. Both of the first
two words are written by the same hand that owns the capability, so a
passing verdict required no second party at all.
## The controls existed and were unreachable
Everything under `independent_outcome_review` is rigorous: an SSH-signed
review commit, canonical registry and jurisdiction digests pinned into the
receipt, a receipt path bound to the capability and candidate, and
`review.reviewer_id === cap.owner` refused outright.
**All of it hangs off the `status !== 'HOLD'` branch.** Leaving the review
at HOLD skipped every one. A prohibition on reviewing your own work is not
a control while "no reviewer" remains an accepted answer — it only binds
the honest path.
Proven before the fix, against the real registers:
ACCEPTED MEET verdict, review HOLD, evidence VERIFIED
REFUSED MEET verdict, evidence still HOLD
REFUSED review non-HOLD without a real receipt
The two adjacent controls worked. The one joining them did not exist.
## The fix
A non-HOLD benchmark verdict now requires a non-HOLD independent outcome
review, which forces the whole receipt chain that was already written.
## Inert today, which is why it is cheap today
All 27 capabilities are HOLD on verdict, review and evidence, so this
changes nothing about the shipped documents — verified by asserting the
unmodified registry still validates. The first capability to claim a
passing verdict is the one that would otherwise have spent the gap, and it
would have spent it silently.
## Verification
- 20/20 validator tests. The new test fails **19 pass / 1 fail** with the
gate disabled and passes restored, so it is not satisfied by something
else already present.
- The test pins both directions: with evidence flipped back to HOLD the
verdict must still fail on the older assertion, so the two cannot be
satisfied one at a time.
- 9/9 rebind, 1/1 train, 29/29 fanout, 4/4 route. Foundation, preflight and
ADR gates pass.
Found while verifying the denormalisation refactor (#545), where it was
recorded as pre-existing and identical on `origin/main` rather than fixed
inside a refactor.
No gate weakened — this adds one. No production exposure widened, no
compliance claim. Every capability, jurisdiction binding and Korea control
remains HOLD.
This was referenced Jul 31, 2026
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.
benchmark.verdict: MEET+candidate_evidence.status: VERIFIED+independent_outcome_review.status: HOLDvalidated clean. Both of the first two words arewritten by the same hand that owns the capability, so a passing verdict required no second party
at all.
The controls existed and were unreachable
Everything under
independent_outcome_reviewis rigorous: an SSH-signed review commit, canonicalregistry and jurisdiction digests pinned into the receipt, a receipt path bound to the
capability and candidate, and
review.reviewer_id === cap.ownerrefused outright.All of it hangs off the
status !== 'HOLD'branch. Leaving the review at HOLD skipped everyone of them.
A prohibition on reviewing your own work is not a control while "no reviewer" is an accepted
answer — it binds only the honest path.
Proven before the fix, against the real registers
The two adjacent controls worked. The one joining them did not exist.
The fix
A non-HOLD benchmark verdict now requires a non-HOLD independent outcome review — which forces the
entire receipt chain that was already written and merely unreachable.
Inert today, which is why it is cheap today
All 27 capabilities are
HOLDon verdict, review and evidence, so nothing about the shippeddocuments changes. The test asserts the unmodified registry still validates, so "inert" is proven
rather than claimed.
The first capability to claim a passing verdict is the one that would otherwise have spent this
gap — and it would have spent it silently.
Verification
passes restored, so it is not being satisfied by something already present.
the older assertion — the two cannot be satisfied one at a time.
Found while verifying #545, where it was recorded as pre-existing and identical on
origin/mainrather than fixed inside a refactor.
No gate weakened — this adds one. No production exposure widened, no compliance claim. Every
capability, jurisdiction binding and Korea control remains
HOLD.