audit(0095): cycle close — MC over a loaded blueprint; ledger refreshed (C18/C21); rm ephemeral spec/plan
Architect drift review (scope cec7811..HEAD, the sole gate — no regression script) returned drift-clean with positive What-holds: - invariants 8/9: the whole cycle is aura-cli (main.rs + cli_run.rs + ephemeral docs); nothing entered aura-engine/aura-registry; FamilyKind::MonteCarlo, monte_carlo, append_family, mc_member_reports are pre-existing seams reused. - invariant 1 / C1: draws run disjoint-parallel via the engine monte_carlo seam (seed-input order, no within-sim concurrency); bit-identity proven by the reproduce round-trip (unit + E2E). - the C1 lockstep is a single shared fn: synthetic_walk_sources (one fixed SyntheticSpec) is called by BOTH the persist path and the reproduce MonteCarlo branch; pip is lockstepped too (both pass DataSource::Synthetic). - the sweep-sibling pattern matches: Result<McFamily,String> + boundary render. - scope honesty: WF deferral (#173, dep #169) and synthetic-walk-DGP (#172) are named in the spec + feat body, not silent. Carry-on debt (does NOT block close, filed forward, NOT new-this-cycle drift): synthetic_walk_sources' len:60 is hand-calibrated to the shallow stage1 warm-up; a deep-lookback closed blueprint warms poorly -> silent-vacuous draws with no error, and the anti-degenerate test only exercises the shallow fixture. Folded into #172 (real-data DGP retires the length calibration) per the architect's recommendation, rather than a new thread. Ledger refreshed: the C21 realization block now records the MC verb shipped (cycle 0095) with WF deferred; the C18 reproduction block notes aura reproduce now spans FamilyKind::MonteCarlo. Verified green (orchestrator, this session): cargo build --workspace clean; cargo clippy --workspace --all-targets -- -D warnings clean; cargo test --workspace green. Cycle is drift-clean (not a milestone close — #170's WF half remains, milestone stays open). refs #170
This commit is contained in:
+19
-4
@@ -1313,7 +1313,10 @@ content-addressing, and whether the id should exclude the composite **debug-name
|
||||
non-load-bearing symbol, invariant 11 — an op-script and the Rust builder produce
|
||||
different canonical forms today), remain deferred (#171, #170). Reproduction is proven on
|
||||
synthetic (deterministic) data; recorded-dataset reproduction rides the DataServer seam
|
||||
(#124).
|
||||
(#124). **Cycle 0095 (#170):** `aura reproduce` now also spans `FamilyKind::MonteCarlo` —
|
||||
branching on the family kind, it reconstructs each member's seed-driven synthetic walk from
|
||||
the recorded `manifest.seed` (the `Sweep` arm unchanged), so an `aura mc` family re-derives
|
||||
bit-identically through the same `run_blueprint_member` path.
|
||||
|
||||
### C19 — Bootstrap: blueprint → instance (recursive)
|
||||
**Guarantee.** Construction is a distinct phase, recursive at every level. Each
|
||||
@@ -1886,9 +1889,21 @@ reproducible per C18. Two design facts: a sweep needs an **open** blueprint (a f
|
||||
has an empty `param_space`, distinct from cycle-1's bound run fixture), and the signal is
|
||||
**re-loaded per member** from its serialized doc (the `Composite` is `!Clone` — its
|
||||
`PrimitiveBuilder`s hold `Box<dyn Fn>` build closures, #164 — and `bootstrap_with_cells`
|
||||
consumes the graph). Monte-Carlo / walk-forward over a loaded blueprint are the same machinery
|
||||
per verb (a tracked follow-on); per-member trace-writing on `--trace` and an axis-name
|
||||
discovery surface are tracked debt.
|
||||
consumes the graph). **Monte-Carlo over a loaded blueprint shipped (cycle 0095, #170).** `aura mc
|
||||
<blueprint.json> --seeds N` runs a **closed** blueprint across N seeds — each seed a distinct
|
||||
synthetic price walk (`synthetic_walk_sources`, the `mc_family` `SyntheticSpec` pattern), the
|
||||
draws disjoint-parallel via the engine `monte_carlo` seam (invariant 1) — and aggregates to a
|
||||
`FamilyKind::MonteCarlo` family with one stored blueprint per family (the C18 hook), so it
|
||||
`aura reproduce`s bit-identically (C1). MC binds no axis, so it needs a **closed** blueprint
|
||||
(the sweep's open/closed distinction inverted); an open one returns a named `Err` (rendered
|
||||
exit-2 at the `run_blueprint_mc` boundary, the sweep sibling's contract — no hidden exit in the
|
||||
pure builder). **Walk-forward is deferred (#173, dep #169):** a loaded blueprint declares no
|
||||
axes to re-fit per window, so it could only be a non-IS-refit windowed eval — which would
|
||||
collide with the hard-wired `walkforward` verb's IS-optimizing guarantee. The synthetic-walk DGP
|
||||
is the machinery, not trader-grade MC statistics; a real-data block-bootstrap — and the
|
||||
`synthetic_walk_sources` `len:60`↔warm-up coupling it retires (a deep-lookback closed blueprint
|
||||
warms poorly → silent-vacuous draws today) — ride #172. Per-member trace-writing on `--trace` and
|
||||
an axis-name discovery surface are tracked debt.
|
||||
|
||||
**Content-addressed reproduction shipped (cycle 0094, #158, C18)**: `topology_hash`
|
||||
landed cycle 0092; re-deriving a member's FlatGraph from a stored manifest + the
|
||||
|
||||
Reference in New Issue
Block a user