Iteration 02 ยท 2026-06-09 ยท driver: native Claude Code /loop (laptop run)
โ Dashboard ยท PR terrylica/mql5#91 ยท card 110 ยท stacked on bootstrap #90
fxview_cache.forex_bars โ bit-exact Rust verified against a pinned Python SSoT, populated through the wired producer, with batchโกstreaming parity and an independent FOSS corroboration. PR #91 open (base main; diff auto-cleans once #90 lands).
RAW Anderson-Darling Aยฒ of the de-gapped 200-bar strictly-trailing close-logret window vs a fitted Gaussian (sample mean + std ddof=1). Causal โ excludes the current bar's own return. None on warm-up (<200 bars) / <8 finite returns / degenerate window. (Card 110's "intra-bar per-tick" prose is superseded by the campaign's bar-close decision โ uses inter-bar close log-returns, which forex_bars persists.)
| Layer | Artifact | Result |
|---|---|---|
| Python SSoT | oracle_anderson_darling_a2.py (bit-faithful to the discovery probe k_anderson) | sha-pinned jsonl artifact |
| Rust kernel | orthogonal_extension_kernels/anderson_darling_a2.rs (scipy ndtr+log_ndtr via libm; NaN/Inf-total; causal) | clippy clean |
| Differential parity | vs pinned oracle on the frozen fixture | 11200 == oracle, max|dev| 4.5e-13 โช 1e-9 |
| Producer column | BarOrthogonalExtV1 + BarRow + schema.sql Nullable(Float64) + feature_metadata.yaml | test_schema_contract 4/4 |
| Producer populate | AndersonDarlingA2RollingState (read-before-push 200-logret ring; gap-NULL; persists across gaps) @ finalize | โ |
| batchโกstreaming | streaming observe() over the fixture per partition | 11200 == oracle, max|dev| 4.5e-13 |
| 3-way FOSS | scipy vs statsmodels | PASS (11128 windows) |
scipy (ddof=1, SSoT) and statsmodels (ddof=0 MLE) use the identical Aยฒ formula (source-verified) and agree to ~2.3e-3 โ the difference is ddof convention only (โค5e-3 bound still catches a formula/binning bug). statsmodels underflows to +inf in 72 deep-tail windows (|std-residual| up to ~10.4) where scipy/Rust (log_ndtr) stay finite โ positive evidence of the kernel's tail robustness.
observe() sits at the once-per-emitted-bar finalize point (722โ768โ780; gap cases drop non-emitted bars). Residual: a live bigblack producer-vs-oracle smoke on real ticks is the final integration check (no CH/MT5 on laptop โ deferred to operator bigblack validation).mise run rust:check GREEN; check:all-gates green on macOS except the worktree-context check:git-hook-installed (literal .git/hooks path; passes from the main checkout). feature-metadata:verify-offline PASS.CompletedBar field required a 1-line Default::default() in 2 blocklisted test literals (mechanical, behavior-identical).Feature #2 โ edge_spread_bps (card 52, bidask.edge SSoT, ฮต 1e-9). Same chain: oracle โ bit-exact kernel โ producer column (now that BarOrthogonalExtV1 exists, no carve-out needed) โ parity โ 3-way FOSS โ PR.
Presentation only โ never the SSoT.