Requiring a decision to be written down twice measured redundancy, not delivery - #830
Merged
Conversation
…t delivery v4's admission gate asked whether the same ruling could be recovered from prose with the record removed. 190 of 241 decisions failed it. The owner's review names the cost: that gate excluded precisely the case the product exists for -- a judgment recorded once, which the current code does not explain, and which the next agent will not know unless the record reaches it. So v5 removes the gate rather than renaming it. The natural, pre-study, immutable record is itself the repository's recorded policy (A0). Independent corroboration becomes metadata (A1) and its absence excludes nothing. Owner testimony is disabled and collected zero times. This is not circular because the policy source and the outcome are different things. The source is frozen before the study; the eventual outcome is whether the final tree implements a functionally viable approach the policy ruled out. Citing a `Record-Id`, repeating the record's wording and stating the reason are all named as forbidden outcomes, because each would let the treatment satisfy the measurement merely by arriving. v4 is sealed at `stage0-hold` with every artifact intact, and `stage0-hold` now sits beside `invalidated` as a terminal phase. A study that reached a verdict is as finished as one that was invalidated -- running against either would attribute a result to a study that ended. The v5 cutoff is the 2026-08-20 freeze and the sealed bundles are reused. A fresh snapshot would have added 14 decisions, every one of them in agent-control-plane, every one authored on 2026-08-21 inside the window where v4's shortfall was known; the other two moved repositories contributed 0 decisions across 162 commits. The 14 read as ordinary development and are probably natural, but their timing cannot be undone, and they would have landed on the repository nearest the eligibility floor. Record-Id: r-v5authority Provenance: authored Certainty: firm Blast: system Undo: easy Ruled-out: renaming v4's independent-prose gate rather than removing it | the preregistration and the authority policy both forbid any gate that requires a decision to be documented outside its record, because a gate that does is the v4 gate whatever it is called Ruled-out: re-snapshotting to grow the corpus | the only decisions a fresh snapshot adds are the 14 authored during the study, in the repository where they would decide eligibility Ruled-out: asking the owner to attest the 14 are natural | that is owner testimony, which is disabled, and the answer would arrive after the counts were known Ruled-out: keeping `invalidated` as the only terminal phase | v4 is not invalid, it is finished, and a phase list that only knows about invalidation would let a study with a published verdict be run again Limit: reusing the frozen bundles bounds the corpus to what existed on 2026-08-20. If v5 holds, the 14 excluded decisions are reported by name and count so the owner can order a deliberate re-snapshot rather than have one smuggled in here Limit: this commit registers the model and the thresholds. It produces no v5 count, and the preregistration is deliberately written before the census so the counts cannot choose the rules Verified: 21 tests pass across the v5, v4 and terminal-hardening governance files; both typechecks clean. The handover is proved by arrival -- each of the three ended studies is refused by name when a declaration tries to make it active CommitLore-Version: 2.0.0
CommitLore — record lintTrailers: clean — 1 commit in Active constraints for the paths this PR touchesLimits (6)
Ruled out (11)
Trailer violations fail this check. Active constraints are informational — they are what the repository already decided, not a verdict on this PR. |
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.
Opens CDEB-Fresh v5 Stage 0. Registers the model and the thresholds; produces no v5 count — the preregistration is deliberately written before the census so the counts cannot choose the rules.
What changed, and why
v4's admission gate asked whether the same ruling could be recovered from prose with the record removed. 190 of 241 decisions failed it. That gate excluded precisely the case the product exists for: a judgment recorded once, which the current code does not explain, and which the next agent will not know unless the record reaches it.
v5 removes the gate rather than renaming it:
Record-Id, no corroboration required.Both the preregistration and
authority-policy.jsonforbid any future gate that requires a decision to be documented outside its record — that gate is v4's whatever it gets called.Not circular
Policy source and outcome are different things. The source is frozen before the study; the eventual outcome is whether the final tree implements a functionally viable approach the policy ruled out. Citing a
Record-Id, repeating the record's wording, and stating the reason are all named forbidden outcomes, because each would let the treatment satisfy the measurement merely by arriving.v4 sealed, not deleted
stage0-hold, every artifact intact includingRESULT.mdand the adversarial review.stage0-holdnow sits besideinvalidatedas a terminal phase: a study that reached a verdict is as finished as one that was invalidated, and running against either would attribute a result to a study that ended.Snapshot decision, with the measurement
The v5 cutoff is the 2026-08-20 freeze and the sealed bundles are reused. A fresh snapshot would add 14 decisions, all in
agent-control-plane, all authored 2026-08-21 — inside the window where v4's shortfall was known, on the repository nearest the eligibility floor. The other two moved repositories contributed 0 decisions across 162 commits, so a fresh snapshot imports the contaminated set and nothing else.The 14 read as ordinary development (SQLite DDL, retry semantics, permit types) and are probably natural. Their timing cannot be undone. This choice runs against GO and is recorded as a named deviation with the counts, so the owner can order a deliberate re-snapshot rather than have one smuggled in.
Verification
21 tests pass across the v5, v4 and terminal-hardening governance files; both typechecks clean. The handover is proved by arrival — each of the three ended studies is refused by name when a declaration tries to make it active.