Re-adjudicate: nothing to demote, and close the hole that would have mattered
There is nothing to re-adjudicate. The proven set is empty and always has
been -- verified three ways: proven-status reports EMPTY, validatedSkills()
returns {} for every archetype, and zero conditioning entries have ever
reached PROVEN. The one PROVEN feature is recent_frequency_prior, which is the
incumbent counter itself, proven by the S78 ablation as ~100% of the
champion's resolution. It is the baseline every challenger is measured
against, not a conditioning interaction, and demoting it would leave the model
with nothing to grade from.
A correction to the premise: the cumulative gate did NOT catch a false
positive last session. It caught nothing, because there was nothing in the
proven set to catch. What it did was tighten alpha from 0.0026 to 0.0013
within one session, which demonstrated the mechanism working rather than a
demotion. So steps 3 and 4 -- demote, recalibrate -- are vacuous here, and
readjudicateAll says so plainly rather than glossing a no-op.
But the worry behind the order was well founded, and the audit found the real
exposure: promote() did not require the cumulative denominator. It checked n,
lift and CI, and nothing stopped a future session from testing eight
hypotheses, correcting by eight, and promoting on a p-value that would not
survive the programme's real denominator. That is precisely the hole that
makes a retroactive re-adjudication pass necessary later, so it is closed at
promotion time instead. isSufficient now refuses evidence carrying no
correction, evidence corrected against fewer tests than the cumulative count,
and any p-value that does not clear 0.05 over its own test count. The same
rule guards a PROVEN conditioning entry.
The second audit found two of four analysis scripts still correcting
per-session; pitcher-prove-k and tb-solo-and-interactions now use the
cumulative ledger, so the correction is native on every path.
reAblation.js is the standing second line: pure and injectable, so the
decision rule cannot drift from the gate's, and every verdict records both
p-values and both test counts so a demotion is re-derivable by anyone. A
feature promoted at alpha 0.05/20 can demote on the same p-value once the bar
is 0.05/60 -- correct, because the bar rose only after the programme had more
chances to get lucky. No fresh measurement is PENDING_RETEST and never a
demotion: absence of a re-test is not evidence, and demoting on it would
punish whichever stat happens to be off-season.
Net effect on the proven set is zero. No demotions, no recalibrations, and no
public ledger event -- announcing "recalibrated after re-adjudication" when
nothing changed would itself be a false signal of rigour.
4,238 tests green (337 suites); web build exit 0; counter byte-identical.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W1sivYNqY2TS5ftykmHBU9
This commit is contained in:
@@ -3,6 +3,28 @@
|
||||
## Last Updated
|
||||
2026-08-03
|
||||
|
||||
## Session 88 (2026-08-04) — Re-adjudication: nothing to demote, hole closed ✅
|
||||
Spec: `specs/re-adjudication.md`. 4,238 tests / 337 suites green, build exit 0.
|
||||
Counter byte-identical. Nothing recalibrated — nothing needed to be.
|
||||
- **PROVEN SET IS EMPTY, verified 3 ways** (proven-status, featureRegistry
|
||||
summary, validatedSkills). Zero conditioning entries ever reached PROVEN, so
|
||||
STEP 3 (demote) and STEP 4 (recalibrate) are vacuous — correctly.
|
||||
- **Correction: the cumulative gate did NOT catch a false positive last session.**
|
||||
It caught nothing; it tightened α 0.0026 → 0.0013, demonstrating the mechanism.
|
||||
- **THE REAL HOLE, CLOSED:** `promote()` could bypass cumulative correction.
|
||||
`isSufficient` now requires `bonferroni_tests`, refuses anything below the
|
||||
cumulative count, and refuses a p that doesn't clear 0.05/tests. Same guard on
|
||||
`recordConditioning(PROVEN)`. Verified: no-correction / per-session-8-vs-38 /
|
||||
weak-p all refused; cumulative-38 with p=0.0005 accepted.
|
||||
- **Cumulative correction now NATIVE on all analysis paths** — pitcher-prove-k
|
||||
and tb-solo-and-interactions migrated off per-session counts.
|
||||
- **`reAblation.js` built** (standing second line): pure/injectable, records both
|
||||
p-values + both test counts per verdict, `PENDING_RETEST` when there is no
|
||||
fresh measurement (absence is not evidence).
|
||||
- **Net effect on the proven set: ZERO.** No demotions, no recalibrations, no
|
||||
ledger event — announcing a recalibration that changed nothing would itself be
|
||||
a false signal of rigour.
|
||||
|
||||
## Session 87 (2026-08-03) — Defence ingested; cumulative correction locked ✅
|
||||
Spec: `specs/defense-ingest-and-cumulative-correction.md`. 4,228 tests / 336
|
||||
suites green, build exit 0. Counter + clusters byte-identical.
|
||||
|
||||
Reference in New Issue
Block a user