โ€บNavigation

Iteration 02 ยท 2026-06-09 ยท driver: native Claude Code /loop (laptop run)

Feature #1 โ€” anderson_darling_a2 (PR #91)

โ† Dashboard ยท PR terrylica/mql5#91 ยท card 110 ยท stacked on bootstrap #90

Done. The first ฮพ-confirmed candidate is a REAL continuous-float production column on 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).

What it computes

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.)

The chain โ€” one SSoT, bit-exact to the column

LayerArtifactResult
Python SSoToracle_anderson_darling_a2.py (bit-faithful to the discovery probe k_anderson)sha-pinned jsonl artifact
Rust kernelorthogonal_extension_kernels/anderson_darling_a2.rs (scipy ndtr+log_ndtr via libm; NaN/Inf-total; causal)clippy clean
Differential parityvs pinned oracle on the frozen fixture11200 == oracle, max|dev| 4.5e-13 โ‰ช 1e-9
Producer columnBarOrthogonalExtV1 + BarRow + schema.sql Nullable(Float64) + feature_metadata.yamltest_schema_contract 4/4
Producer populateAndersonDarlingA2RollingState (read-before-push 200-logret ring; gap-NULL; persists across gaps) @ finalizeโ€”
batchโ‰กstreamingstreaming observe() over the fixture per partition11200 == oracle, max|dev| 4.5e-13
3-way FOSSscipy vs statsmodelsPASS (11128 windows)

3-way FOSS finding (it earned its keep)

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.

Challenge-and-Held (inline; sub-agent dispatch skipped per the tick-3 signal)

Gates / scope

Next

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.