โ€บNavigation
Dashboard โ€บ Probes โ€บ Probe Hardening Loop โ€บ iter 7

iter 7 โ€” the shuffled-null gate lands FIXED

Attack item X-1 ยท 2026-07-29 ยท harness harness/structural_gates.py ยท gate /xi:structural-gates

Why this went now, ahead of the remaining measurement items

X-1 is a standing operator hard rule, not an optional attack item: a shuffled-null negative control must exist as a gate in any evaluation harness, because a walk-forward leak (0.926 OOS, stable in 333 of 333 cells) was once caught only at PR time. Six iterations of this loop had produced measurements and no gate at all. That was a compliance gap in the loop's own work, which makes it the highest-value remaining item regardless of what the suggested order said.

What is shuffled, and why that is the right null here

These probes are redundancy screens, not predictors โ€” there is no train/test split to permute. The relationship under test is "is this candidate reconstructable from the panel", so the null permutes the candidate within each cell. That destroys its association with every panel column while leaving both marginals exactly intact: ties, skew, point masses and the panel's own internal correlation structure all survive. Anything the instrument still reports is therefore its own artifact.

Both directions, because a gate that cannot fail is not a gate

Each leg runs a negative control (shuffled โ€” must report nothing) and a positive control (a genuine near-duplicate โ€” must not pass). If a positive control passes, the script fails on the grounds that the leg is inert. That lesson is from the compute envelope sitting unenforced for a day.

Prediction, written before running

Shuffling destroys dependence, so the true value is 0 โ€” but the statistic is a worst-of-N, so it will not read 0. From iter 4's independent measurement, mean worst-cell ฮพ at true ฮพ=0 was 0.0256. I predicted the ฮพ floor at โ‰ˆ0.02โ€“0.03 and legacy's worst |ฯ| at โ‰ˆ0.10 (max of ~19 estimates at n=490, sdโ‰ˆ0.045). Both landed.

Result

=== leg 1 โ€” rotation xi cascade ===
  NEGATIVE (shuffled): xi_worst mean 0.0256 ยท p95 0.0342 ยท max 0.0385 ยท PASS 60/60
  POSITIVE (near-duplicate): verdict BAN ยท xi_worst 0.9815

=== leg 2 โ€” legacy worst |rho| ===
  NEGATIVE (independent): worst |rho| mean 0.0600 ยท p95 0.1106 ยท max 0.1561 ยท PASS 400/400
  POSITIVE (near-copy of duration_us): verdict BAN ยท worst |rho| 0.9925

Neither probe manufactures redundancy on shuffled data, and both positive controls fired. The ฮพ null mean of 0.0256 reproduces iter 4's 0.0256 exactly โ€” two independently written harnesses agreeing on the same quantity, which is the cross-validation that makes both believable.

The number this iteration was actually for โ€” the noise floors

Statisticnull p95bandheadroom
rotation ฮพ_worst over 62 cells0.03420.5015ร—
legacy worst \|ฯ\| over 7 panel cols0.11060.85 (WATCH)7.7ร—

The null distribution of a worst-of-N statistic is its noise floor. A band below that floor cannot be cleared; a band far above it is not doing work. Both bands sit comfortably above chance โ€” so whatever else is wrong with these instruments, neither ฮพ's 0.50 nor legacy's 0.85 is set inside its own noise.

Worth stating precisely, because it is easy to over-read: this is a different question from the panel-Rยฒ defect. That line failed because it sat below where real shipped features live (0.65โ€“0.91), not below the noise floor. Iteration 7 answers "is the band above chance?" โ€” yes. It does not answer "is the band in the right place relative to real features?", which remains open.

What landed

/xi:structural-gates, wired into /xi:check-full, with /xi:doctor extended to verify both harnesses and run both gates. Zero free parameters โ€” a gate is not a dial. The full suite runs green: oracle parity exact to 2.44e-15, shuffled null clean in both directions.

Limits

Evidence: harness/structural_gates_evidence.json. Reproduce: mise run xi:structural-gates