Asked to break the rotational orthogonality probe until it survives, then write 7 missing kernels and run it head-to-head against the legacy probe on 10 candidates. Twenty attack rounds found and fixed 14 real defects and converged โ but the head-to-head covered only 2 of the 10.
| Quantity | Value | Meaning |
|---|---|---|
| Head-to-head coverage | 2 of 10 candidates | 8 deferred, including 7 kernels never written |
| Iterations and defects | 20 firings, 14 defects fixed | 17 regression tests plus a 16 of 16 compound suite |
| Re-run, first divergent candidate | panel-R2 0.9794 -> 0.9118 | the original divergence was a panel-hygiene artifact |
| Re-run, second divergent candidate | peak 0.9828 at breadth 0.032 | a lone-cell spike the declared breadth dial demotes |
| Guard real-data sweep | 1 of 83 columns x 61 cells changed | zero collateral over-flagging |
| Firing | What it did |
|---|---|
| 1 | Checked the frozen worked examples on real data: 62 of 62 cells reproduced |
| 2 | Shuffled columns that should score zero scored up to 0.25; two estimator defects found and fixed |
| 20 | Third clean round in a row โ the loop stopped attacking and asked the operator to rule |
| T | Operator ruled; the head-to-head ran on 2 candidates and both diverged from legacy |
| W-Z | Rewired to the newly declared rule and cleaned the panel; the re-run reversed both divergences |
The loop's own declared terminal deliverable is half-done: 7 kernels were never written, so 8 of the 10 candidates were never compared. Blocking that, ISSUE #698 IS OPEN โ probe.fetch_cell OOMs at 5 GiB on two cells, so the probe's production read path cannot read them at all. That is a live code defect and needs fixing before any full-grid re-run. Note the ledger's stated blocker is stale: the handoff ruling it waits on was already given on 2026-07-10.
An open code defect blocks the production read path, and the campaign's own terminal deliverable โ 7 kernels and 8 of 10 candidates โ is unstarted. Both are concrete and both have owners. Reclassified from WAITING to HALTED: the work is not merely blocked on an external dependency, it is unfinished in scope.
'CONVERGED โ ROBUST-ENOUGH โ OPERATOR REVIEW. Terminal phase begins ONLY on the operator's ruling' (manifest.json) โ contradicted by the ledger row recording that ruling as already given.
Lifecycle status is process state, not a judgement of the findings. Results are stated as numbers with their uncertainty.
ROBUST-ENOUGH โ OPERATOR REVIEW (converged: 3 clean rounds, iters 18โ20) 2026-07-08 ยท loop: attack/defend (logically absurd / Popperian) ยท runner: ccmax-claude on bigblack, tmux Rotation-Orthogonal-Probe-Operational-Campaign
Goal. Prove โ empirically, with zero meta-evaluation โ that the rotational orthogonal probe
is far more robust than the legacy orthogonality_probe.py. The loop assumes robustness only so it can
try to destroy that assumption; robustness is earned by surviving attack. When 3 consecutive rounds find no
new gap, it emits ROBUST-ENOUGH for operator review โ it never promotes itself.
systemd-run scope)/home/tcaKB-MISS ticketcampaign/rotation-probe-operational)
opened on the first firing; every firing pushes to it, so the PR holds the whole campaign history as atomic
commits. All review and merging is the operator's (squash-merge); the loop never opens a second PR and never merges.iter <N>: <attack> โ <verdict>). Aborted firing = nothing committed.dashboard:rebuild โ dashboard:deploy โ each iteration is live here
the moment its firing ends; repo is SSoT../publish_verify.sh targeted-rsyncs this campaign folder to the live site and byte-verifies
every file (index, iteration pages, ledger, manifest, evidence). A firing is not complete until the verify
passes: other checkouts' whole-tree deploys race ours and revert changed files until the PR merges.Attack (break it) โ Defend (SOTA fix from KB.md) โ Ground (ledger row + this dashboard + regression test + atomic commit โ push โ deploy) โ Converge (3 clean rounds โ operator review).
Stop conditions (exhaustive โ no shift markers apply): convergence ยท frozen-invariant breach (abort + log + stop) ยท explicit operator stop, recorded verbatim in the ledger.
| File | What it is |
|---|---|
| LOOP_PROMPT.md | The optimized /loop prompt โ paste it to start. |
| KB.md | Offline SOTA knowledge base (bigblack has no web). |
| CLAUDE.md | Hub + append-only ledger + operator handoff table. |
| manifest.json | Machine-readable campaign state; loop appends iterations. |
| iter | date | attack | verdict | page |
|---|---|---|---|---|
| 0 | 2026-07-08 | โ scaffold โ campaign initialized, KB frozen, ยงB worst-cell cascade + kernel-gap census | SCAFFOLDED | โ |
| 0a | 2026-07-09 | โ contract amendment โ one-PR git discipline, per-firing publish, exhaustive stop conditions | AMENDED | โ |
| 1 | 2026-07-10 | A5 worst-cell substrate validity: ยงB bands transfer to the probe's stride-20 value-row substrate โ 62/62 cells, 0/7 worked-example mismatches | SURVIVES (clean 1/3) | iter 1 |
| 1a | 2026-07-10 | โ publish-convention amendment (operator-directed) โ live index was reverted by a racing whole-tree deploy from another checkout; publish_verify.sh (targeted campaign-folder rsync + byte-verify) now mandatory after every firing's deploy | AMENDED + HEALED | โ |
| 2 | 2026-07-10 | A7 negative-control null calibration: shuffle + circular-shift nulls of real columns, 62 cells ร 7 pairs โ found ฮพ null bias up to 0.25 on heavy-ties columns; TWO chatterjee_xi defects fixed in both probe files (tie-correct max-ranks + scattered deterministic tie-breaking); same attack re-run clean, A5 regression 7/7 | BREAKS โ DEFENDED (clean 0/3) | iter 2 |
| 2a | 2026-07-10 | โ OPERATOR STOP (stop condition c) โ verbatim: "Stop the loop." Cron cancelled; loop idle. Open threads at stop: A1 metamorphic, A3 block-length, A2 low-power, A4 cluster bootstrap, 750-dbps thin-fetch. Resume = re-fire /loop with LOOP_PROMPT.md. | STOPPED | โ |
| 2b | 2026-07-10 | โ OPERATOR RESUME โ verbatim: "Okay, so resume the loop and continue where you left off." Recurring firing re-scheduled. | RESUMED | โ |
| 3 | 2026-07-10 | A1 metamorphic invariants โ the loop attacks iter 2's own fix and finds it made near-line breadth votes row-order-dependent (a real cell's ฮพ crossed the frozen 0.50 line under joint re-ordering of the SAME rows); defense = content-addressed tie-break (row_identity_keys(close_time_us)) โ re-ordering now gives ฮฮพ = 0.0 exactly on all 62 cells; 3 unsound v1 oracles corrected honestly; A5/A7 regressions + declaration self-test green | BREAKS โ DEFENDED (clean 0/3) | iter 3 |
| 4 | 2026-07-10 | A6 thin-cell floor stability โ 8,680 real 60-row windows: 77 frozen-line crossings prove FLOOR_1000 alone doesn't make thin votes safe (worst: window ฮพ 0.72 vs cell truth 0.36 on a certified-orthogonal pair; BAN-line hits too); defense = sub-slice agreement stability guard (halves+thirds+quarters) + guarded ยงB verdict (stable-only BAN; PASS+unstableโPENDING) โ 76/76 crossings quarantined, 7/7 declared verdicts intact, fail-safe end-to-end; retires the 750-dbps thread | BREAKS โ DEFENDED (clean 0/3) | iter 4 |
| 5 | 2026-07-10 | A3 block-length sensitivity โ 16ร mean-block sweep {โn/2โฆ8โn} through the probe's own CI machinery on 18 pooled regimes ร 7 pairs (630 bootstrap CIs, |Spearman| binding): 0/126 verdict flips, max CI-lower-bound spread 0.019 (an order of magnitude below any frozen line); the hardcoded 2โn is not load-bearing | SURVIVES (clean 1/3) | iter 5 |
| 6 | 2026-07-10 | A4 bootstrap stitching โ the probe's own documented "~1% residual" claim falsified (real shifts to 0.036); defense #1 = boundary-respecting within-symbol bootstrap (residual eliminated); re-attack exposed a knife-edge combo flipping WATCHโBAN on Monte-Carlo noise at the 0.95 line; defense #2 = replicate-and-agree gating (R=3, disagreementโWATCH) โ 126/126 verdicts invariant across three estimator flavors | BREAKS โ DEFENDED ร2 (clean 0/3) | iter 6 |
| 7 | 2026-07-10 | A2 low-power blind spot โ 496 real feature pairs ร 4 markets scanned with distance correlation: 14 pairs (bar_* complexity family) carry dCorr up to 0.87 while ฮพ โค 0.45 and |ฯ| โค 0.76 everywhere โ strong smooth non-monotone dependence invisible to every binding gate; defense = ADVISORY dCorr cross-screen per KB ยง1 (surfaces the class, never a verdict; banding is the operator's โ handoff H7); 12 silent pairs surfaced + 2 caught by the frozen ยงB gate on the full substrate + 3/3 certified-orthogonal controls note-free | BREAKS โ DEFENDED (clean 0/3) | iter 7 |
| 8 | 2026-07-10 | Pooled-path order invariance โ base + 3 within-symbol joint reorderings of the same real rows through the probe's own evaluate_pooled: 36 verdict checks ร 2 statistics ร 4 orderings, 0 changes; the replicate-and-agree gate absorbs order noise at verdict level; the pooled path's positional tie-break proven not verdict-material โ iter-3 thread closed; A1โA7 library fully attacked | SURVIVES (clean 1/3) | iter 8 |
| 9 | 2026-07-10 | Epoch transfer โ the A5 gate shifted in time (hard cutoffs: pre-2026-01-01 and pre-2025-01-01, each cell's most recent 80k bars before the cutoff): 14/14 verdicts reproduce, 62/62 cells grounded per epoch; values drift with the regime but no frozen band crossed โ the verdicts are time-stable properties, not recent-regime artifacts | SURVIVES (clean 2/3) | iter 9 |
| 10 | 2026-07-10 | h_norm gate battery (last unattacked cascade stage) โ monotone/order checks exact; full-universe single-cell-false-BAN sweep clean (120 cols ร 62 cells); but the degenerate contract had rotted with a pandas behavior change: a real point-mass column read NaNโPENDING instead of the documented 0.0โBAN (qcut on a constant series silently returns all-NaN bins, no ValueError); fixed with an explicit version-proof short-circuit; same attack re-run clean | BREAKS โ DEFENDED (clean reset 0/3) | iter 10 |
| 11 | 2026-07-10 | Regime-label-shuffle null (KB ยง6's last control) โ a random partition of the same rows minted a BAN on the knife-edge candidate (pooled ฯ at the 0.95 line): the worst-of rollup cherry-picks partition noise, invisible to the replicate gate; defense v1 (positional sub-slices) broke the iter-8 invariant and was caught by the campaign's own regression suite; defense v2 = leave-one-symbol-out jackknife BAN guard โ shuffled BAN degrades to WATCH while the REAL regime BAN survives every deletion (perfect discrimination); A8 regression green again | BREAKS โ DEFENDED ร2 (clean 0/3) | iter 11 |
| 12 | 2026-07-10 | Kernel path end-to-end โ first exercise of the probe's REAL production path (registry kernels โ candidate_matrix โ hardened cascade): the shipped-twin positive control fires (bartels_rank_vn_ratio โ BAN, ฯ 0.9963 vs its twin, all hardened fields present); unproducible kernels fail-safe to PENDING (never certified); opened thread: candidate_matrix swallows kernel exceptions silently (diagnosability, not correctness) | SURVIVES (clean 1/3) | iter 12 |
| 13 | 2026-07-10 | PENDING diagnosability โ v1 confirmed broken kernels are silent (zero output, no record); defense = failure accounting covering BOTH silent modes (exception + all-NaN output) in candidate_matrix โ per-kernel rollup in the verdicts; the defense instantly solved the iter-12 mystery: petrosian_fd doesn't raise, it runs and yields all-NaN on the crypto substrate; no false flags on working kernels; verdicts unchanged (PENDING stays fail-safe) | BREAKS โ DEFENDED (clean reset 0/3) | iter 13 |
| 14 | 2026-07-10 | Full-suite sweep (compound claim: all 13 closures hold at once) โ 11/13 passed; 2 re-opened by ONE knife-edge pair whose true pooled ฯ sits ON the frozen 0.95 line and drifted across re-fetches: no finite procedure classifies a measure-zero point stably; defense = sound certification-stability oracles (PASS-vs-not-PASS invariance; BAN never minted against confident pooled PASS) โ mechanisms unchanged, jackknife guard stays; re-run โ suite 13/13 green; run_suite.sh = the standing compound regression | BREAKS โ DEFENDED (clean 0/3) | iter 14 |
| 15 | 2026-07-10 | Threshold-axis transfer (trilogy complete: substrateยทtimeยทresolution) โ resolution-localized redundancy discovered: price_impact|volume's ฮพ decays 0.9992@100 โ 0.7446@750, its declared BAN driven entirely by the fine-resolution slice; the worst-cell machinery behaves as declared (the v1 oracle over-demanded); defenses = driving-cell attribution (xi_worst_cell in every verdict) + certification-stability oracle โ 28/28 slice checks stable, attribution live | BREAKS โ DEFENDED (clean 0/3) | iter 15 |
| 16 | 2026-07-10 | End-to-end verdict determinism โ double-run on a frozen (replay-cached) feed: aggregate_worst_cell โ byte-identical verdict JSON; evaluate_pooled โ record-identical; the assembled machine (15 iterations of hardening) is a pure function of its inputs โ every terminal-phase verdict will be exactly reproducible from its input snapshot | SURVIVES (clean 1/3) | iter 16 |
| 17 | 2026-07-10 | Sibling-stage mechanics (the last ยงB stage directly attacked) โ a duplicate name in a slate crashed the whole run raw (dict collapse โ IndexError deep in numpy; a one-keystroke typo on the exact path the terminal phase drives); defense = dedup-with-warning at both verdict APIs; sibling fields well-formed 8/8; PENDING-SIBLING guard honestly conditional (no live PASS kernel; pinned by self-test); 8-kernel verdict landscape captured as terminal-phase triage | BREAKS โ DEFENDED (clean reset 0/3) | iter 17 |
| 18 | 2026-07-10 | Expanded-suite sweep โ all 16 regression tests re-run on the further-hardened code + fresh data: 16/16 green (~44 min), including the previously drift-fragile A4/A11 under the certification-stability oracles โ the temporal re-opening class is controlled; run_suite_v2.sh = the standing compound regression | SURVIVES (clean 1/3) | iter 18 |
| 19 | 2026-07-10 | 750-inclusion consistency (the oldest open observation, from iter 1) โ four ยงB aggregations per pair (raw/guarded ร full/750-excluded): 7/7 verdict-invariant; the iter-4 stability guard flags exactly the shaky 750 votes (price_impact family only) โ the guard performs the spearman_only config's job automatically; no known open threads remain anywhere | SURVIVES (clean 2/3) | iter 19 |
| 20 | 2026-07-10 | Non-finite consistency โ Inf census over every float column (60-day window, one pass) + working-kernel outputs: zero Inf in reality; the latent h_norm asymmetry (the one statistic that doesn't isfinite-mask) documented and armed as a tripwire regression | SURVIVES (clean 3/3) | iter 20 |
| โ | 2026-07-10 | ROBUST-ENOUGH โ OPERATOR REVIEW โ 3 consecutive clean rounds (iters 18/19/20). 20 iterations ยท 14 real findings found & fixed ยท 17 regression tests + the run_suite_v2.sh compound suite (16/16 green) ยท every attack-library item, control, cascade stage, transfer axis, the production path, determinism, and every carried observation attacked. Earned guarantees: certification stability ยท byte-level reproducibility ยท fail-safe PENDING with diagnosability ยท advisory ฮพ-low-power surfacing (banding = operator's, H7). The loop has stopped attacking and idles for the operator's ruling (handoff H8); the terminal phase (7 kernels + legacy head-to-head) runs only after that ruling | CONVERGED | ledger |
Full append-only ledger (with evidence links): CLAUDE.md.
See the handoff table in CLAUDE.md. In short: start the loop (H1), answer any
KB-MISS web tickets (H2), review the ROBUST-ENOUGH verdict (H3), merge PRs (H4). The loop
never merges, never promotes itself, never uses the web.
Kernel status: 7 of the 10 candidates have no kernel (Roll, CorwinโSchultz, AbdiโRanaldo, arcsine-occupation, arcsine-argmax, longest-excursion, Parkinson) โ the loop writes them (oracle-proven โค1e-9) before the head-to-head.