Campaign regime-invariant-orthogonality ยท judging the 120 harvested liquidity / crowding / fragility candidates ยท append-only spoke ยท โ the harvest that produced them
Things this loop cannot decide for itself. Append-only โ resolved entries are struck through, never removed.
substrate_integrity.py lives only on worktree-fix-substrate-dedup, and every read in this campaign depends on it. The campaign PR #675 is stacked on that branch and must be retargeted to main once #674 squash-merges.โ resolved 2026-07-30: #674 squash-merged; #675 rebased onto main and its diff now carries Axis-2 work only.AXIS2-ENVELOPE.json halves the frozen 5 GiB ceiling so two concurrent queries stay inside the operator's 5 GB cap. The 2026-07-27 feasibility sweep must be re-run at the new ceiling before SEAL′ fires. A Code 241 there is evidence: the campaign serialises to one query at a time. The cap is not raised either way.N_min = 100,000 at ฯ=0.064; 500 dbps has ~180k usable rows and 750 dbps ~86k. Y_tail at 750 dbps spreads ~86k rows over 27 regime cells, leaving ~160 clustered exceedances each. Expect UNVERIFIABLE-PARK(substrate-underpowered) for entire cells โ pre-registered as an outcome, not discovered later.FINAL corrects the read; it does not fix the table. The remedy is min_age_to_force_merge_seconds, a production ALTER and the operator's call. OPTIMIZE โฆ FINAL is not proposed โ it can permanently worsen duplicate accumulation.Nothing outstanding โ the loop is unblocked.
Does a candidate measure something real and useful about execution cost and fragility โ beyond the trivial volume baseline โ and does that hold across market regimes?
Axis-2 candidates are orthogonal to price by construction. The 19 grounded instruments from the realness campaign all ask "does this predict forward return?" โ so pointing them at these 120 would score every one at roughly zero and reject the entire cohort. It would look like a clean, rigorous result.
The target is therefore swapped. A liquidity metric is judged on whether it predicts what it costs to trade, and above all on whether it warns before costs blow up. The warehouse already records exactly that, so this is an existing yardstick rather than one invented for the occasion.
Cheapest filters first, so the most candidates die for the least compute. Default is EXCLUDE โ a candidate advances only by clearing the gate. One gate per loop firing.
| Gate | Asks | Kind |
|---|---|---|
| SEAL | do the controls themselves work? (C1โC4 self-test, before any real candidate) | self-test |
| F0 | computable at all โ spot-legal ยท no order-book requirement ยท a Python path exists | deterministic |
| F1 | non-degenerate and dense enough | inferential |
| F2 | not a duplicate โ vs the shipped set and within the cohort | inferential |
| F3 | beats the raw-volume baseline โ expected to do most of the killing | inferential |
| F4 | real and useful against the cost targets, multiplicity-corrected, power-backed | inferential |
| F5 | holds across market regimes โ the ship bar | inferential |
One firing = one gate = one commit on PR #675 = one page in the ledger below. The laptop orchestrates and never touches ClickHouse; bigblack computes under a shim that caps the server. Read the two lanes as "who does what".
PREREG.md before any candidate was measured.readonly=2; compute confined to 5 cores / 5 GB / no swap. Cap-kills are recorded as evidence โ the cap is never raised.Mostly negative, and that is the anticipated shape rather than a failure. Around 19 candidates park immediately for want of order-book data that does not exist anywhere in this system; a share are rejected on tooling; many will prove to be the same few ideas wearing different hats; and most survivors are expected to fail the volume baseline. The comparable axis-1 campaign ended 16 admitted against 45 killed.
Each firing appends one row here and emits one self-contained page index_iter_<N>_<slug>.html in this folder. Rows and pages are never edited or deleted โ corrections add a new sibling row citing the parent. Mirrors the markdown SSoT axis-2-cascade-free/evaluation/LEDGER.md.
| Iter | Date | Gate | Decided | Running | Page | Note |
|---|
Markdown SSoT lives in the audit folder findings/evolution/audits/2026-07-22-regime-invariant-orthogonality-campaign/axis-2-cascade-free/evaluation/. Cohort frozen at catalog commit e6eaa6be. Substrate BTCUSDT ร {100, 250, 500, 750} dbps, 3s cost-realism labels, 2018-01 โ 2026-07.
Compute runs on bigblack inside one dated, fully deletable campaign folder โ /home/nasimubd/lab/2026-07-24-axis2-cascade-free-evaluation/ โ holding the environment, a git worktree of the campaign branch, the harnesses and all artifacts. Nothing this campaign creates lives outside it. Results count only once committed to the campaign PR; a run sitting only in the lab is an unbacked result.