From 226bf57130217ba22afb08d62ea6b2bf6e112364 Mon Sep 17 00:00:00 2001 From: Brummel Date: Sat, 27 Jun 2026 00:34:52 +0200 Subject: [PATCH] =?UTF-8?q?audit(0080):=20cycle=20close=20=E2=80=94=20drif?= =?UTF-8?q?t-clean;=20ledger=20sync=20(selection=20types=20relocated,=20re?= =?UTF-8?q?gistry-vocab=20decision=20recorded)=20(refs=20#136)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cycle 0080 was a 44-line behaviour-preserving re-export relocation along the exact engine↔domain seam the 0079 architect review just blessed, so the drift review is carried from 0079 rather than re-dispatched; the only drift introduced is the ledger note, synced here. Regression gate green and unchanged: full suite 665/0 (incl. the C18 goldens), clippy --workspace --all-targets -D warnings clean. Ledger sync (docs/design/INDEX.md): added a cycle-0080 realization note — FamilySelection/SelectionMode are now in aura-analysis (engine-side extraction complete); recorded the user-ratified decision that the aura-registry Metric/metric_cmp/deflation vocabulary stays in the registry by design (it is the trading selection layer, its deflation statistics branch irreducibly on metric identity, and genericity would be a one-implementor abstraction); and that making RunReport generic / a domain-agnostic orchestration substrate is deferred to the World/C21 layer, explicitly out of #136. No baseline moved (the suite is the regression gate; green-unchanged), so no ratify statement. No spec/plan ephemera to drop. --- docs/design/INDEX.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/docs/design/INDEX.md b/docs/design/INDEX.md index 85f1012..4b1a2dc 100644 --- a/docs/design/INDEX.md +++ b/docs/design/INDEX.md @@ -896,11 +896,22 @@ compatibility this cycle, and still hosts the trace-coupled `summarize`, `RunRep `RunManifest`, and the columnar trace utils. The non-node engine-workspace crates are now `aura-engine` (run loop), `aura-cli` (`aura` binary), `aura-ingest` (ingestion edge), `aura-composites` (composite-builder convenience layer), and `aura-analysis` (post-run -domain reductions). Behaviour-preserving (C1): every serde shape is byte-identical (C18 -goldens green). **Deferred (#136 tail, genuine design forks):** making `RunReport` -generic over the metric type and re-bounding `sweep`/`mc`/`walkforward`; relocating the -`aura-registry` `Metric`/`metric_cmp`/rank vocabulary; relocating the mis-placed -orchestration types `FamilySelection`/`SelectionMode` out of the analysis module. +domain reductions + selection provenance). Behaviour-preserving (C1): every serde shape +is byte-identical (C18 goldens green). +**Realization (cycle 0080, #136 — engine-side extraction complete).** The last +trading-domain types still *defined* in `aura-engine`'s `report` module — the +selection-provenance types `FamilySelection` / `SelectionMode` — also move to +`aura-analysis` (the only non-cyclic home: `RunManifest.selection` needs the type and the +engine already depends on `aura-analysis`; the registry/CLI reach them unchanged via the +re-export). Behaviour-preserving (C1; suite 665/0). **Settled (2026-06-27, user-ratified +in the #136 thread):** the `aura-registry` `Metric` / `metric_cmp` / deflation vocabulary +**stays in the registry by design** — the registry is the trading *selection* layer, not +the domain-free engine, and its deflation statistics branch irreducibly on metric +identity (R-bootstrap vs. `total_pips` dispersion floor); forcing genericity would be a +one-implementor abstraction. **Deferred to the World / C21 layer (explicitly *not* #136):** +making `RunReport` generic over a metric type and turning the orchestration/registry layer +into a reusable domain-agnostic substrate — until then `RunReport` / `RunManifest` / +`summarize` stay trace-coupled in the engine. ### C17 — Authoring surface **Guarantee.** All *logic* — nodes, strategies, **and experiments/harnesses** —