Skip to content

Requiring a decision to be written down twice measured redundancy, not delivery - #830

Merged
MongLong0214 merged 1 commit into
mainfrom
cdeb-v5-stage0-governance
Aug 22, 2026
Merged

Requiring a decision to be written down twice measured redundancy, not delivery#830
MongLong0214 merged 1 commit into
mainfrom
cdeb-v5-stage0-governance

Conversation

@MongLong0214

Copy link
Copy Markdown
Owner

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:

  • A0 — Natural Recorded Authority is primary admission. The natural, pre-study, immutable record is the repository's recorded policy. No duplicate prose source, no Record-Id, no corroboration required.
  • A1 — Independently Corroborated is evidence-strength metadata. Absence excludes nothing.
  • A2 — Owner Attested is disabled; collected zero times.

Both the preregistration and authority-policy.json forbid 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 including RESULT.md and the adversarial review. stage0-hold now sits beside invalidated as 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.

…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
@github-actions

Copy link
Copy Markdown

CommitLore — record lint

Trailers: clean — 1 commit in origin/main..1012c88969d637808bd55311dab317fb90518152
Active constraints: 6 limits · 11 ruled-out · 0 warnings — from 3 records over 12 changed paths

Active constraints for the paths this PR touches

Limits (6)

  • r-v5authority 1012c88 — 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
  • r-v5authority 1012c88 — 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
  • r-v4stage0id 6b427af — this proves a terminal study cannot be resolved as active through the declaration. It does not stop a caller that names a study root directly, which is why the measured-run gate is separate and still shut
  • r-v3terminalseal 7754f1a — the placeholder row remains in the ledger and always will. This makes it legible, not absent, and a reader who takes digests on faith rather than reading the deviation is still misled
  • r-v3terminalseal 7754f1a — the canonical digest binds the artifact list it is given. A transition that names too few artifacts is bound to a partial set, and nothing here decides what the right set is for a future study
  • r-v3terminalseal 7754f1a — guard coverage is unchanged -- thirteen exclusion kinds remain uncovered and one scan inert, recorded in the mutation baseline

Ruled out (11)

  • r-v5authority 1012c88 — 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
  • r-v5authority 1012c88 — 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
  • r-v5authority 1012c88 — 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
  • r-v5authority 1012c88 — 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
  • r-v4stage0id 6b427af — keeping a hardcoded list of terminal study ids in the resolver | the list and the studies drift apart silently, and the drift shows up as a terminated study resolving cleanly
  • r-v4stage0id 6b427af — leaving the declaration at null and passing the study root explicitly everywhere | every caller then carries the choice, and the one caller that forgets picks a default nobody reviewed
  • r-v4stage0id 6b427af — reusing the v3r1 study directory under a new name | §4.3 requires a new study id, and a renamed directory keeps the qualification verdicts this estimand discards
  • r-v3terminalseal 7754f1a — correcting the placeholder digests in place | the correction is indistinguishable from the mistake it repairs, and the row is historical evidence rather than a working value
  • r-v3terminalseal 7754f1a — recomputing digests for the historical rows from today's artifacts | the artifacts have changed since, so the result would be a number that never bound anything, wearing the authority of one that did
  • r-v3terminalseal 7754f1a — hand-maintaining evidence-matrix.md beside the JSON | two copies of the same claims disagree eventually and the disagreement is silent
  • r-v3terminalseal 7754f1a — leaving cdeb-fresh-v3r1 as the default study root | a terminated study as a fallback is how a measured run gets attempted against a study that ended

git log --follow accepts exactly one pathspec, so renames are not followed for 12 paths; query one path at a time to follow its rename chain

Trailer violations fail this check. Active constraints are informational — they are what the repository already decided, not a verdict on this PR.

@MongLong0214
MongLong0214 merged commit 628f010 into main Aug 22, 2026
15 checks passed
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