โ€บNavigation
Reconciliation โ€” open ยท HALTED

Asked to harden the rotation and legacy orthogonality probes into instruments that can certify a candidate, by grounding 17 named defects. Fourteen iterations closed 14 of the 17 and landed five correctness fixes โ€” with an explicit finding that neither probe can certify anything yet.

What it measured
QuantityValueMeaning
Attack items closed14 of 17three never reached
Oracle parity2.44e-15 against the reference R packagethe binding statistic is now pinned
Unanimity-rule false-veto rate72% below the linethe guard measures line-proximity, not instability
Shuffled-null headroom15x (rotation, 60 of 60), 7.7x (legacy, 400 of 400)bands sit well above chance
Data-driven BAN floor4,720 bar-equivalents vs a declared floor of 1,000the declared floor is 4.7x too low
How it ran
FiringWhat it did
1Pinned the statistic to its author's own R package and refuted an earlier divergence โ€” it had been measured against a third-party package
4Measured the unanimity guard on genuinely independent data: it vetoes 72% of the time anyway
7Landed the shuffled-data control on both probes โ€” both correctly report nothing
8Found the volatility regime labels are computed with lookahead: 2-5% of past rows get relabelled on each re-run
14Confirmed row-order invariance, then hit the iteration cap; loop stopped and its cron cancelled
What it produced
What is outstanding, and who owns it

Three named attack items remain open and unreached before the cap โ€” all hermetic, so they need only the loop re-armed. Beyond that the OPERATOR owes sign-off on the two pre-registration drafts (every remedy is a dial) and a supervised full-width read on bigblack for three queue items. One research gap needs a 2001 paper retrieved off-box.

Why this status

The campaign's own definition of done requires every attack item closed with a recorded reason; three are open with no reason but the clock, and the loop's cron was cancelled.

'CAP REACHED 2026-07-30. 14 iterations run, 14 of 17 items addressed, loop stopped and its cron cancelled.' (LOOP_PROMPT.md line 3)

Lifecycle status is process state, not a judgement of the findings. Results are stated as numbers with their uncertainty.

Dashboard โ€บ Probes โ€บ Probe Hardening Loop

Probe Hardening Loop 2026-07-29 ยท 14 ITERATIONS ยท LOOP STOPPED AT CAP

Goal: make the rotation and legacy orthogonality probes operational as certifying instruments โ€” not merely as measuring ones. Both now read a correct substrate (#674), but neither can currently defend a verdict.

Why this campaign exists

On 2026-07-29 an 11-source primary-literature retrieval established that the symptoms this campaign had been reading as data findings are mostly properties of the estimator and the decision rule. The ledger below records each item as it is grounded.

SymptomActually a property ofMechanism
A candidate "sits 0.0008 from the line"Estimator ฮพ randomly breaks X-ties, so it is a randomized statistic. Measured spread 0.0432 โ‰ˆ 54 margins
Sub-slice readings cross the lineEstimator attainable max is (nโˆ’2)/(n+1), and โˆšn scaling gives a quarter ~2ร— the null SD
30.9% tied values in one cellData (consequences estimator-side) Y-ties change the denominator and inflate ฯ„ยฒ; X-ties inject Monte-Carlo noise
Power collapses as cells are addedDecision rule 558 crossing opportunities under a zero-tolerance conjunction
A fixed absolute 0.50 line on a maxDecision rule no null distribution exists for a max of ฮพ statistics โ€” by the author's own statement

Operational status โ€” final see full status page

Neither probe can certify a candidate yet, and that was the expected outcome. The loop was authorised to land zero-parameter correctness fixes and to measure everything else. Every remaining blocker is either a dial needing pre-registration, or a re-baseline needing a full-width bigblack read โ€” both out of scope by design.

CapabilityRotationLegacy
Reads one row per bar ยท deterministic fetch ยท values uncorrupted yes #674yes #674
Estimator pinned to a canonical oracle yes 2.44e-15 vs XICOR โ€” iter 1 n/a
Gate reproducible ยท row-order invariant yes iter 3, iter 14 untested
Reports nothing on shuffled data ยท bands above noise floor yes 15ร— headroom โ€” iter 7 yes 7.7ร— โ€” iter 7
Estimator stable near a decision line band safe, margins not iter 2 ยท fix available, not wired iter 3 unknown L-4 unreached
Comparison panel legitimate blind spot iter 5 over-credits +0.42 levels, +0.16 trade IDs โ€” iter 5, iter 6
Labels free of lookahead no 2โ€“5% of past rows relabelled per re-run โ€” iter 8 n/a
BAN verdict is data-driven only above 4,720 bar-equiv vs declared 1,000 โ€” iter 10 untested
Verdict statistically calibrated no 72% false veto iter 4 ยท drifts with N iter 9 ยท permutation calibrates the wrong null iter 13 no L-3 unreached
Can certify a candidate not yetnot defensibly

Campaign index

ArtifactWhat
Final status pagePer-capability verdicts, the 14-item attack-list outcome, and the operator handoff queue.
LOOP_PROMPT.mdThe iteration contract: attack list, guardrails, autonomy boundary, bigblack handoff queue.
KB.mdStanding knowledge for the loop โ€” what is settled, what is contested, what must not be assumed.
CLAUDE.mdNavigator for AI re-entry after compaction.
Research SSoTfindings/evolution/audits/2026-07-29-probe-hardening-loop/SOTA-RESEARCH-CASCADE-DECIDABILITY.md โ€” 11 primary sources, 63 recorded gaps.
Harnessesfindings/evolution/audits/2026-07-29-probe-hardening-loop/harness/ โ€” every committed number is re-runnable from here.

Environment

Computation runs on the laptop. Hermetic by default: committed fixtures (tests/fixtures/*-bars-close-sample-10k.csv, 10,000 real closes, 2.63% ties), synthetic generators with known ground truth, and CRAN XICOR 0.4.1 under R 4.6.1 as the ฮพ oracle reference โ€” Chatterjee's own package.

Real-cell reads are permitted narrow only, under the additive narrow_2gib_profile (2 GiB / 2 threads / โ‰ค8 columns, readonly=2). Measured 2026-07-29: at 2 GiB a full 125-column deduplicated fetch fails (Code 241) on large cells at every configuration tried, and lowering LIMIT does not help because close_time_us is not in the sort key โ€” the whole partition is scanned and FINAL-merged regardless. A 4-column read passes on every cell, worst case 9.35 s. So the frozen 5 GiB profile is the minimum for full-width work, and a full R2 re-run stays a supervised operation.

Ledger append-only

One row per iteration, appended in order. Rows are never edited or reordered โ€” a wrong row is superseded by a later row, not corrected in place. Each row links the iteration page that carries the evidence.

IterDateWhat was groundedStatusPage
1 2026-07-29 ฮพ pinned to Chatterjee's own implementation โ€” and the prior 2e-3 divergence refuted. Leg 1 (continuous X, so both sides deterministic): exact parity vs CRAN XICOR 0.4.1, max |diff| 2.44e-15 across 15 cases, Y-tie fractions 0/5/10/30.9/50% ร— independent / quadratic / near-monotone. Leg 2 (X-ties, so XICOR is random): repo consistent with XICOR's B=2000 rearrangement distribution on all 6 cases, two-sided smoothed p โ‰ฅ 0.0060 vs ฮฑ=0.00167. The earlier 2e-3 gap was against xicorpy, not canon โ€” XICOR never branches on ties, so the tie-formula hypothesis had nothing to attach to; and xicorpy's tie detector checks duplicate (x,y) row pairs, not tied values in a column, so it reports "no ties" on a 30.9%-tied column. Gate landed as /xi:oracle. Also recorded: this harness produced a false positive on itself (a min/max support test over 200 draws flagged an ordinary draw 3.1e-5 below the observed min), replaced with the smoothed two-sided p-value the research prescribes. One non-central case (z=โˆ’2.73) is carried forward as evidence for R-2, since a deterministic hash tie-break is one specific rearrangement rather than a random draw. FIXED
R-3
iter 1
2 2026-07-29 ฮพ's tie-break jitter is ordinary sampling error (nโˆ’ยฝ) โ€” the 0.006 moat survives, the 0.0008 margin does not. Fitted exponent โˆ’0.465 / โˆ’0.493 / โˆ’0.521 (Rยฒ 0.984โ€“0.997) across tie fractions 0.10 / 0.309 / 0.50, so Chatterjee's "ignorable if n is large" holds for this estimator. At the cascade's own n = 3,990 near the line: sd 0.00171โ€“0.00295 (0.28โ€“0.49ร— moat), and 0.00436 (0.73ร— moat) in the realistic worst case of a rate-valued kernel on a 201-level lattice. So the band placement is safe at ~1.4 ฯƒ, but the reported 0.0008 margin is 0.18 ฯƒ โ€” categorical_recurrence_rate_close_ties's 0.4992-vs-0.50 verdict is seed noise. Decisive reframe: exposure is per-KERNEL, not per-cell. The real BTCUSDT fixture through the probe's own value-row construction gave sd exactly 0.00000 โ€” a continuous derived series has no X-ties, so ฮพ is deterministic; the 30.9% tie rate lives in raw closes, not in a rolling statistic. Only lattice-valued kernels (rates, counts, signs) are exposed. Also cross-validates the research: its 0.0080 at n=2,000 is reproduced here as 0.00782 โ€” and identified as a near-null measurement, which is why my pre-written prediction of 0.0057 was ~2ร— too high. Scopes R-2 from "average everything" down to "lattice-valued kernels adjudicated near a line". GROUNDED
R-1
iter 2
3 2026-07-29 De-randomised ฮพ lands as a zero-parameter capability, and the iter-1 oracle gate stops flaking. Both from one root cause โ€” the same X-tie randomness had infected the gate itself, whose p-value moved 0.0060 โ†’ 0.0050 โ†’ 0.0030 against a 0.00167 threshold across re-runs. Seeding XICOR's draws (its own manual prescribes this) makes the gate bit-identical across runs (md5 match), worst case now a deterministic p=0.00600 at 3.6ร— margin. chatterjee_xi_derandomised() averages over rearrangements and reports its own MC-SE โ€” the property that makes it safe without a pre-registered threshold. The 1/โˆšR law was verified, not assumed, across 200 replications (ratios 0.899โ€“0.985), and the reported MC-SE tracks true sd closely (R=32: 0.000804 vs 0.000781). Budget is derived: R=37 resolves the 0.0008 margin at 1 SE, 147 for 2ร— headroom, 330 for 3ร—. Free for continuous kernels (short-circuits to reps=1, mc_se=0, 1 ms). Cost is negligible โ€” R=128 across 62 cells is 7 seconds against a 41-minute R2 run. Cascade deliberately NOT rewired: that would move every verdict and belongs to the supervised re-baseline, so the capability and its evidence land, adoption stays queued. FIXED
R-2
iter 3
4 2026-07-29 The zero-tolerance unanimity guard measures nearness to the line, not instability of the data โ€” 72% false veto on candidates that genuinely belong below it. Measured against a known ground truth with the repo's own xi_cell_vote_stable / xi_worstcell_verdict_guarded, 60 candidates per level, 62 cells, n=3,990, continuous x so estimator jitter is excluded and only the RULE is under test. False-veto is 0% at every true ฮพ from 0.00 to 0.40 (nothing is ever flagged), then collapses: at ฮพ=0.45, worst-cell 0.4740 โ€” below the 0.50 line โ€” only 17/60 certify, refused by the unanimity clause rather than by magnitude. A flat tolerance k cannot fix this: required k is 0 below 0.40, โ‰ˆ2 at 0.45, โ‰ˆ38 of 62 at 0.48 โ€” any k large enough to recover power near the line nullifies the guard everywhere else. That refines the research's k-FWER recommendation rather than following it. Self-attacked: the ฮพ=0.48 row is NOT claimed as false veto โ€” its worst-cell mean is 0.5046, above the line, so refusing it is defensible; the argument rests on 0.45 alone. Incidentally measured the max-over-62 selection bias in our own instrument: worst-cell sits +0.024 above per-cell truth at ฮพ=0.45. Four remedy options drafted with free parameters named; no dial touched, guard not deleted (its deletion argument is second-hand and about the sample mean โ€” gap #962). QUANTIFIED
R-6
iter 4
5 2026-07-29 Prediction wrong, and the direction reverses: neither panel is correct. I predicted โ‰ฅ2 of 7 candidates would flip with legacy too harsh on price-level correlation. Zero flipped โ€” all seven are functions of log-returns, hence stationary, hence they never touch the price-level family. Return-based kernels are immune to this defect. Adversarial arms added after that null result found the single flip runs the opposite way: a pure function of price level is BAN under legacy (correct) and PASS under A1 (blind spot) โ€” A1 cannot see the levels a candidate is redundant with. The mechanism I predicted is real but sub-threshold: an independent-but-trending candidate has ฯ inflated +0.42 (0.357 โ†’ 0.776) by the level family alone, yet stays under the 0.85 band. Consequence: the obvious fix โ€” apply A1's exclusion to legacy โ€” is not a pure improvement, it trades over-crediting for blindness. No code changed; L-1 moves from "confirmed defect, apply A1" to "characterised, both panels defective in opposite directions, operator decision needed". Harness artifact disclosed: the ฯ=1.0000 is trivially true because the fixture lacks vwap so I synthesised it as the same rolling mean as the candidate โ€” the exactness is an artifact, the direction is not. GROUNDED
L-1
iter 5
6 2026-07-29 The trade-ID panel was a declared treatment, not a bug โ€” but the head-to-head's "legacy" arm ran a panel legacy would never use. The harness self-documents it at step2b_real_legacy_loo.py:175: "a1_panel_excluded bypassed for the legacy panel ONLY โ€” that IS the variable under test", and it runs both arms. The bug framing is refuted. What survives is sharper: legal_all is the rotation universe, and it is a strict superset of legacy's own panel by exactly 6 columns (both trade IDs, gap_trade_count, is_liquidation_cascade, is_orphan, max_gap_duration_us) with zero columns going the other way. Neither probe's own rules admit trade IDs; only legal_all does. Empirically a monotone trade ID is a stronger artifact than price level: the same independent-but-trending candidate that levels lifted to 0.776 (sub-threshold, iter 5) is lifted to 0.9340 โ†’ WATCH, the trade ID adding +0.16 and crossing the 0.85 band. Stationary return-based kernels untouched (ฯ โ‰ค 0.42) โ€” same trend-specific immunity as iter 5. Consequence is interpretive, not a code fix: that arm is not "the legacy probe". Self-correction disclosed: my first run compared against a1_panel_excluded alone and reported 13 differing columns; legal_all still applies STR_KEY_PLACEHOLDER/PURE_META/type filters, so the real figure is 6 โ€” corrected before publishing. GROUNDED
L-2
iter 6
7 2026-07-29 The shuffled-null gate lands for both probes, and both bands sit well above their noise floors. Taken ahead of the suggested order because X-1 is a standing operator hard rule and six iterations had produced measurements with no gate at all โ€” a compliance gap in the loop's own work. The null permutes the candidate within each cell, destroying association while leaving every marginal (ties, skew, point masses, panel correlation) exactly intact, so anything still reported is the instrument's own artifact. Results โ€” rotation ฮพ_worst: mean 0.0256 ยท p95 0.0342 ยท PASS 60/60; legacy worst |ฯ|: mean 0.0600 ยท p95 0.1106 ยท PASS 400/400. Neither probe manufactures redundancy on shuffled data, and both POSITIVE controls fired (BAN at ฮพ 0.9815 and ฯ 0.9925) so neither leg is inert. The ฮพ null mean reproduces iter 4's 0.0256 exactly โ€” two independently written harnesses agreeing. Noise floors, the number this was for: ฮพ p95 0.0342 vs the 0.50 line = 15ร— headroom; legacy p95 0.1106 vs 0.85 = 7.7ร—. Neither band is set inside its own noise โ€” a different question from the panel-Rยฒ defect, which failed for sitting below where real features live, not below chance. Landed as /xi:structural-gates in /xi:check-full, with /xi:doctor extended to verify both harnesses. Limits: the legacy panel here is 7 columns not ~19, so 0.1106 is a lower bound (~0.14 extrapolated); synthetic cells are independent so the floors are optimistic; and X-2 remains open and may not transfer โ€” a redundancy screen has no train/test split, so the rule needs restating before it can be a gate. FIXED
X-1
iter 7
8 2026-07-29 The volatility regime label is computed with lookahead. X-2 had to be restated first โ€” a redundancy screen has no train/test split, so the transferable invariant is "perturbing FUTURE rows must not change any label or reading assigned to PAST rows". Under that test, regime_labels() computes volatility on a trailing window (correct) then buckets it against globally computed terciles โ€” so a bar's regime is assigned relative to volatility that had not happened yet. Magnitude is entirely scenario-dependent, which is itself the finding: operationally 2.25% of past rows relabelled by appending just 5% more bars (2.47% at +10%, 5.24% at +25% and +50%), against 65.74% under a 2.5ร— volatility stress โ€” the stress figure is a bound and must not be quoted as the operational number. My prediction of 5โ€“25% was wrong in both directions. The test discriminates: sess_lab 0.00%, trend_lab 0.00%, ฮพ sub-slice bit-identical โ€” it isolates the one axis consulting a global statistic. Not a prediction leak (nothing is forecast); the harm is irreproducible stratification, and it lands on the coverage ledger, which accumulates across runs and would therefore be summing observations taken under different stratifications. No existing verdict is invalidated โ€” within one run the stratification is self-consistent. Four remedies drafted; all but one invalidate all accumulated coverage, so it is the operator's call. Harness runnable as /xi:future-perturbation but deliberately kept out of check-full โ€” wiring a known-failing gate into the suite would force the decision by making CI unusable, which is coercion rather than reporting. check-full stays green. QUANTIFIED
X-2
iter 8
9 2026-07-30 Quadrupling coverage consumes the entire PASS moat โ€” the cost of the expansion plan, quantified. Cells cut as overlapping windows of one master series, which is faithfully why the real 62 are dependent. The Gaussian maximum law fits almost exactly: displacement/sd vs โˆš(2 ln N) has slope 0.964โ€“1.079 and Rยฒ 0.966โ€“0.997 across every level and overlap. Correlation damps it ~12% (N=62: 0.0307 at overlap 0.9 vs 0.0347 at 0.0), so iter 4's +0.024 and iter 7's floors โ€” both on independent cells โ€” are conservative, which is the right direction to be wrong in. The number that matters: 62โ†’248 cells moves the worst-cell statistic +0.0053 to +0.0098, against a PASS moat of only 0.006 (0.494 ceiling โ†’ 0.50 line). So a candidate at 0.494 on today's grid lands near 0.501 on a 4ร— grid โ€” over the line without becoming one bit more redundant. Pure selection: the candidate didn't change, the max got more chances. All three predictions held. Refines the research's caution: it said don't subtract the โˆš(2 ln N) drift because Gaussian results don't transfer to a bounded tied rank statistic โ€” this shows the scaling does describe ฮพ empirically, but subtraction still needs a per-cell sd (a modelling choice), real cells differ in n and tie structure, and any correction is parameter-bearing. No dial touched. Operational takeaway: a verdict is only comparable to another taken at the same N. QUANTIFIED
R-9
iter 9
10 2026-07-30 BAN is only data-driven above 4,720 bar-equivalents โ€” 4.7ร— the declared FLOOR_BARS=1000 โ€” and iteration 2's ceiling claim was overstated. The (nโˆ’2)/(n+1) ceiling is attained exactly (|diff| โ‰ค 1.11e-16). At the cascade's typical scale the fullโ†’quarter ceiling gap is 0.0023, just 1% of the floor-scale gap (0.1719) โ€” negligible against either line, so the ceiling is NOT a general mechanism for sub-slice disagreement and my iter-2 framing implied otherwise. Where it does bite is sharper than predicted โ€” three regimes, not one: below 59 value rows the full cell itself is capped under 0.95 so BAN is silently unreachable; between 59 and 236 rows (1,180โ€“4,720 bar-equiv) the full cell can exceed 0.95 but the quarter cannot, forcing "unstable" by arithmetic rather than evidence; above 236 rows stability reflects the data. Verified through the real xi_cell_vote_stable, not inferred from reading code. The guard's docstring says "BAN can never rest on noisy thin-cell evidence" and it does achieve that โ€” but in regime 2 the exclusion is not evidence-quality filtering, and 4,720 is a threshold nobody chose, emerging from FLOOR_BARS ร— quarters ร— the 0.95 line. PASS is never affected (a quarter needs only 20 rows to attain 0.50). Self-attack recorded: my prediction was wrong in shape (regime 1 unanticipated), the forced? flag has an off-by-one at exactly 236 rows, and the measurement uses a near-perfect relation so it establishes the mechanism, not its frequency. Nothing changed โ€” all three are dials. GROUNDED
R-4
iter 10
11 2026-07-30 The campaign's one CONTESTED item resolves โ€” by measurement, without the unretrievable citation. The dispute was whether a closed-form standardisation can recover comparability between sub-slice lengths, blocked because the fixed-b refutation was second-hand and about the sample mean (gap #962). The question is directly measurable for ฮพ. Across 2,000 replications at n=3,990: โˆšk scaling holds in all four arms (max rel. error 1.6โ€“2.5%) and shape is preserved in all four โ€” so standardisation DOES work; the sub-slice rule is repairable, not necessarily deletable, supporting the c.6 position. But ยง(b)'s suspicion was right for a different reason than it gave: the constant is not universal. z_sd using 2/5 โ€” continuous 0.974โ€“0.998 (collapses), 30.9% ties 0.991โ€“1.009 (collapses), 5 levels 1.069โ€“1.092 (fails), binary 1.580โ€“1.605 (fails badly). That last figure matches Thm 2.2's predicted โˆš(1/0.4)=1.581 to three decimals โ€” theorem reproduced, not cited. My prediction was wrong (I expected 30.9% ties to break it; they didn't), and rather than assert the "Y is still nearly continuous" explanation I added 5-level and binary arms to test it โ€” confirmed. Concrete consequence: LINKUSDT@100 is in the safe zone, but sign-valued kernels like the shipped bar_sign_markov_flux are exactly where a hard-coded 2/5 understates sd by 58%. The sound repair is Thm 2.3's plug-in ฯ„ฬ‚ยฒโ‚™ โ€” measurement shows it is necessary, not optional. Nothing changed; KB entry can move CONTESTED โ†’ resolved-with-caveat. Limit that keeps ยง(b) partly alive: contiguous splits of i.i.d. data were tested, so serial dependence remains unaddressed. GROUNDED
R-5
iter 11
12 2026-07-30 ฯ„ฬ‚ยฒโ‚™ is fit for purpose โ€” the repair route iteration 11 identified is green. Iter 11 argued from theory that ฯ„ยฒ must be estimated; this tests whether the estimator delivers, since "a consistent estimator exists" and "this implementation is calibrated on my data" are different claims. 1,000 null draws ร— 4 regimes ร— 2 lengths through XICOR(ties=TRUE). sd accuracy 7/8 within 5%, including both binary rows โ€” the case that defeats the fixed constant. The estimator demonstrably responds to discreteness rather than passing it through: reported sd รท โˆš(2/5n) = 1.0000 continuous, 1.0000 tied31, 1.0908 levels5, 1.5811 binary โ€” exactly โˆš(1/0.4), the theoretical Bernoulli(ยฝ) value. So the shipped bar_sign_markov_flux exposure iter 11 flagged is handled. p-values uniform 8/8, binary included โ€” the normal-approximation risk I named in advance did not materialise. The one mismatch chased rather than waved: tied31@3990 reports sd 5.7% high; I first checked my own harness (2,757 distinct of 3,990 = tie fraction exactly 0.309, faithful), then found the mechanism โ€” at 30.9% ties the estimator returns exactly the no-ties constant while the true sd sits just below, so it is marginally wrong in the conservative direction. Confirmed downstream: tied31 under-rejects (P(p<.05) = 0.040/0.045 vs nominal 0.05). Inference stays valid, loses a little power. Nothing changed โ€” landing the standardisation moves every sub-slice comparison and is the operator's call. GROUNDED
R-8
iter 12
13 2026-07-30 A permutation reference fixes the max but calibrates the WRONG NULL โ€” and my own size check was too lenient. Substantive finding, which held as predicted: permuting the candidate within each cell absorbs the selection bias, the cell dependence and the per-cell heterogeneity with no sd estimate and no Gaussian assumption โ€” it solves the max-selection problem cleanly. But shuffling destroys all association, so the reference is "ฮพ = 0" while the cascade's rule is "ฮพ_worst < 0.50", a practical-redundancy threshold. Measured: the permutation test reaches 90% power at per-cell ฮพ โ‰ˆ 0.094 while the fixed line fires 0% across the entire sweep (iter 9 put its firing point near ฮพโ‰ˆ0.45) โ€” roughly 5ร— apart. The two problems are separate; permutation fixes the first and cannot fix the second, which refines the research's c.3 recommendation. Self-criticism, recorded not re-tuned: the harness printed "VALID" for a size of 0.092 against nominal 0.05 โ€” 2.09 se out, exact binomial P=0.038. That is not a clean pass and my 3ฯƒ criterion waved it through. A permutation test should be exact. Likely cause is a design question the research does not address: I permute each cell independently while the observed cells are overlapping windows, so the reference is built under a different dependence structure โ€” and the naive expectation was that this would be conservative, whereas it went the other way. I have no explanation and did not invent one. Second flaw disclosed: dep_c is a mixing coefficient, not ฮพ, so the sweep never reached the decision-relevant band near 0.45. QUANTIFIED, not FIXED โ€” adoption needs the size settled, the permutation scheme resolved, and ฮฑ/B pre-registered. Nothing changed. QUANTIFIED
R-7
iter 13
14 2026-07-30 Row-order invariance holds exactly โ€” and PR #674's re-ordering, which I introduced, moved nothing. X-3 read literally would pass vacuously (every harness here is seeded), so it was aimed at the metamorphic version: re-order rows without changing content, the verdict must not move. The stake is the loop's own: iteration 1 changed the fetch to ORDER BY close_time_us DESC, first_agg_trade_id DESC, which reorders every row tied on close_time_us โ€” and BTCUSDT@250's window carries 40,054 such ties. If ฮพ were order-dependent, that "pure correctness fix" would have silently moved verdicts. Content-addressed keys give exact invariance โ€” |diff| 0.00e+00 at every tie rate including 0.95 โ€” while the positional default demonstrably does not (1.71e-03 / 4.47e-04 / 5.27e-03), so the negative control fires 3/3 and the gate can bite. Sizing that: the positional drift reaches 5.27e-03 against a 0.006 PASS moat โ€” re-ordering alone could move a verdict nearly the full width of the moat, which is what the content-addressed fix bought. Replaying #674's exact permutation leaves ฮพ bit-identical (0.00e+00), and xi_cell_vote_stable returns an identical value and stability flag. Verified, not assumed. Self-consistency noted: the harness had to use the unique key rather than close_time_us as identity โ€” precisely the degeneracy iteration 1's G2 gate now refuses, arrived at independently. Landed as /xi:order-invariance in /xi:check-full (unlike X-2, which is real but failing and stays out). Suite green: oracle 2.44e-15, shuffled null clean, order-invariance exact. Zero free parameters. FIXED
X-3
iter 14
โ˜… 2026-07-30 CAP REACHED โ€” loop stopped after 14 iterations. Neither probe can certify a candidate yet, and that was the expected outcome. 14 of 17 attack items addressed (3 legacy items unreached); 14 committed harnesses; 2 pre-registration drafts; 16 commits. Five zero-parameter fixes landed: the ฮพ oracle gate (the binding stage was the repo's only unpinned statistic โ€” now exact to 2.44e-15 against Chatterjee's own package), the de-randomised estimator with self-reported MC-SE, a seeded gate (the iter-1 gate was itself flaking), and the X-1 and X-3 structural gates โ€” all wired into /xi:check-full, suite green. Four items quantified and left untouched because each is a dial: the unanimity guard's 72% false veto, the volatility-tercile lookahead, the worst-of-N coverage cost, and the permutation reference's wrong-null result. The loop corrected the record and itself: two campaign framings refuted (L-1 ran the opposite way; L-2's "bug" was a declared treatment), the one contested item resolved, one of my own earlier claims overturned (iter 2's ceiling argument), two of my own harnesses caught producing bad output, and predictions wrong in 5 of 14 iterations โ€” recorded as findings, not smoothed over. The guard was never deleted โ€” gap #962 still blocks it, and iter 11 showed it is repairable anyway. Everything remaining needs either your pre-registration or a full-width bigblack read; both were out of scope by design. Handoff queue and per-capability verdicts on the final status page. CAP REACHED
loop stopped
final status

Status vocabulary: GROUNDED measured, no fix needed ยท FIXED zero-parameter correctness fix committed ยท QUANTIFIED measured, fix needs pre-registration (draft written, dial untouched) ยท BLOCKED recorded reason, moved on.

bigblack handoff โ€” queued, not attempted by the loop

  1. Re-run R2 on the deduplicated substrate, all 62 cells (full-width, needs the frozen 5 GiB profile).
  2. Re-derive P_50 from the 66 shipped columns on deduplicated data โ€” mechanical, k=50 frozen, zero degrees of freedom.
  3. Confirm the ฮพ jitter finding at real per-cell n on real cells โ€” the loop establishes the n-scaling curve locally.
  4. ฮพ stability guard โ€” 4 remedy options drafted; a flat tolerance k provably cannot work.
  5. Volatility tercile lookahead โ€” 4 remedy options drafted; 3 of 4 invalidate all accumulated coverage.
  6. Wire de-randomisation into the cascade โ€” R=37 resolves the 0.0008 margin, ~1.7 s per 62 cells.
  7. Retrieve Lahiri (2001) โ€” the only route to closing the serial-dependence half of ยง(b).
  8. L-3 / L-4 / L-5 โ€” the three legacy items not reached before the cap.