Branch feat/odb-ext/b5-10-bootstrap → terrylica/mql5 PR #143 (loop never merges). All gates green: targeted cargo test · rust:check · check:all-gates · pre-push suite.
The campaign's ground rules are now frozen: a sha-anchored list of the 10 feature names (the v4 cohort), a locked per-feature table of the exact Python reference call and the numeric tolerance the Rust port must meet, proof that the frozen test fixture carries every input these features consume, and — new this campaign — a measured demonstration that every wrong way to build each feature produces a visibly different number on real data (so a mis-port cannot hide). Nothing here touches the production schema.
| # | prerequisite | verdict | machine SSoT (sha256) |
|---|---|---|---|
| ① | Agnostic TEST-B convergence (today-slate 107/108/98/80/78) | PASS 5/5 540/540 windows each · #107/#108 EXACT (worst_abs 0.0) · #98/#80/#78 ≤ 4.3e-14 rel · converse control FAILs as designed (0.0056) | agnostic_b5_10_result.json · 5c29316a… |
| ② | Adversarial build-today decision — INLINE bounded probe (§6.S), no open-ended Attacker | GO-ALL-5 7 rejected forks all breach on real windows · H4 bounds hold 300/300 · RG8 witnesses pinned | adversarial_build_today_b5_10_result.json · da46956d… (byte-identical on C&H re-run) |
| ③ | Substrate-map §2.1 + RG8 gap-policy pinning | PASS all 5 substrate classes covered column-for-column · zero blocked | substrate-map_impl_b5_10.md (fixture c106c51e…) |
| card | rejected fork (pinned convention) | breach | max-abs |
|---|---|---|---|
| 107 | NSRPS tie → latest occurrence (pinned: earliest) | 37/60 | 2.513e-02 |
| 107 | Rust f64::signum 0→+1 (pinned: np.sign 0→0) | 10/65 | 1.010e-02 |
| 108 | grammar size excl. rule S (pinned: incl. S) | 60/60 | 5.051e-03 |
| 98 | row-stochastic normalization (pinned: joint f=C/total) | 60/60 | 1.135e+00 |
| 80 | argument-swap sign negation (the #7 lesson class) | 60/60 | 1.403e+00 |
| 80 | ordinal ranks (pinned: average-tie rankdata) | 80/80 | 2.285e-03 |
| 78 | average-tie grid copula (pinned: stable mergesort ordinal) | 73/80 | 1.502e-03 |
All breaches ≥ 7 orders above the locked tolerance tier. Ties in logret/dur/spread are COMMON on the fixture (rank-convention forks breach even on untargeted windows); zero-sign bars exist at 5 dbps only — the #107 signum fork is witnessed there, never fabricated. Anomalies checked, not rationalized: the EURUSD@25 #107/#108 witness coincidence was verified benign first-hand (different arrays, coarse integer collision; #98 discriminates the pair).
| iter | card | tier | H4 analytic bound (observed range on 60 disjoint windows) |
|---|---|---|---|
| 02 | 107 | EXACT (integer/(L−1)) | [0,1] (obs 0.2864 … 0.3434) |
| 03 | 108 | EXACT (integer/L) | (0,1.02] (obs 0.49 … 0.6) |
| 04 | 98 | counts EXACT + ε 1e-9 | [0,1] (obs 0.0 … 0.0201 — zero-flux windows are REAL) |
| 05 | 80 | ε 1e-9 value-parity | [−2,2] (obs −0.7013 … 0.3127) |
| 06 | 78 | ε 1e-9 value-parity | [0,1.05] (obs 0.0050 … 0.0526) |
Env pins: numpy==2.5.0 · scipy==1.18.0 · Python 3.14 · threads=5 (RG2 value-parity where float machinery is numpy-version-sensitive). Full table incl. clean-room attestations: python-ssot-and-tolerance-table_impl_b5_10.md.
| side | tally | outcome |
|---|---|---|
| Attacker (bounded, 2m16s) | 6/6 PASS | probe re-run byte-identical; anchor triple-equality e5473634…; witnesses exact |
| Defender (bounded, 1m6s) | 7/8 + 1 RESOLVED | the FAIL was a checklist-expectation error — cohort names are alphabetical by documented convention; build order lives in the JSON implementation_order (verbatim §1) |
Conceded gaps: none. One self-caused drift gate (check:cli-spec) fixed in place before PR-open. Record: challenge-and-held-impl-b5-10-01-bootstrap.md.
orthogonal_extension_cohort_v4.rs (10 None-stub slots) + JSON anchor + .sha256 + LOCKED_V4 anchor-pin test (652b5d0)cli_spec.json regen for the two probe CLIs (5f4c1bf)No BarRow / schema.sql / feature_metadata.yaml changes — test_schema_contract green at every commit. Next: iter 02 (#107) stacks on this branch.