From 61a8436c2cbfb9ff1bdcaa7de1d15ee576806e73 Mon Sep 17 00:00:00 2001 From: Brummel Date: Mon, 15 Jun 2026 13:47:37 +0200 Subject: [PATCH] =?UTF-8?q?audit:=20cycle=200043=20=E2=80=94=20drift-clean?= =?UTF-8?q?=20(monte-carlo=20family)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Architect drift review over b920362..HEAD (the 0043 monte-carlo cycle). Cycle is sound: C12 axis 4 faithfully realized (monte_carlo varies the seed, the 0042 seeded source genuinely perturbs each run, so distinct_seeds_produce_distinct_draws is a real property); C1 honoured (one run_indexed core, output sorted by job index = input order independent of completion, 1-vs-8-thread determinism pinned, parallelism across draws never within); the run_indexed extraction is a genuine behaviour-preserving refactor (C11/C23 — the three pre-existing sweep tests stay green, and both family executors are thin adapters over the single core; the points.len() -> n.max(1) clamp is equivalent since GridSpace rejects empty axes); the #71 eager-agnostic firewall is respected (API takes seeds + a per-draw closure, no materialized stream Vec crosses the boundary). One medium doc-lag found and fixed here: aura-engine/src/lib.rs module header listed Monte-Carlo (and, already stale, the grid sweep) under "Still to come"; both orchestration axes ship now, so the header records the grid axis (sweep / SweepFamily) and the seed axis (monte_carlo / McFamily) as delivered, with walk-forward, random param-sweep, registry lineage, and the C10 position-event / broker layer remaining future. Regression gate (test suite — no dedicated regression scripts in project facts): cargo test --workspace green (incl. 7 new mc::tests + the sweep guard tests); clippy --workspace --all-targets -D warnings clean; cargo doc -p aura-engine clean (the new intra-doc links resolve). closes #68 --- crates/aura-engine/src/lib.rs | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/crates/aura-engine/src/lib.rs b/crates/aura-engine/src/lib.rs index 34cafb7..2331dda 100644 --- a/crates/aura-engine/src/lib.rs +++ b/crates/aura-engine/src/lib.rs @@ -22,14 +22,20 @@ //! pip-equity + exposure streams into [`RunMetrics`]; [`f64_field`] bridges a //! recording sink's `Vec` rows to it. //! -//! Still to come (subsequent cycles): the broker-independent -//! position-event output and downstream broker nodes (C10), and the param -//! injection + orchestration axes of the atomic sim unit -//! (`(topology + params + data-window + seed)`, swept by optimize / walk-forward -//! / Monte-Carlo). The **seed** axis now ships: [`SyntheticSpec`] is a seeded -//! `Source` producer (`Fn(u64) -> impl Source`, C12 seed-as-input) whose stream -//! is fully seed-determined, making [`RunManifest`]'s seed a live captured input; -//! the atomic unit's `-> metrics` reduction ships via [`summarize`]. +//! Orchestration families of the atomic sim unit +//! (`(topology + params + data-window + seed)`) ship along two of C12's axes: the +//! **grid** axis via [`sweep`] over a [`GridSpace`] into a [`SweepFamily`], and +//! the **seed** axis via [`monte_carlo`] over a seed set into an [`McFamily`] +//! (C12 axis 4: Monte-Carlo *is* a sweep over seeds; both drive one shared +//! disjoint-parallel executor). The **seed** input itself ships too: +//! [`SyntheticSpec`] is a seeded `Source` producer (`Fn(u64) -> impl Source`, +//! C12 seed-as-input) whose stream is fully seed-determined, making +//! [`RunManifest`]'s seed a live captured input; the atomic unit's `-> metrics` +//! reduction ships via [`summarize`]. +//! +//! Still to come (subsequent cycles): the broker-independent position-event +//! output and downstream broker nodes (C10), the random param-sweep and +//! walk-forward orchestration axes, and registry lineage across a family. //! //! Visualization is never here: it is a downstream consumer node on the streams.