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.