audit(0094): cycle close — content-addressed reproduction; ledger refreshed, coverage closed; rm ephemeral spec/plan
Architect drift review (4751d4b..HEAD): drift_found — ledger-currency only; the
code is clean.
What holds (architect, confirmed by diff + green tests):
- Inv 8 / C9: aura-engine byte-untouched; content_id + sha2 in aura-cli, the
store in aura-registry.
- Inv 9: Registry::{put,get}_blueprint is a dumb bytes-by-key store (opaque
String keyed by String hash; no sha2, no parse, no sha256==hash verify — the
caller owns the hash). No domain knowledge crept into the engine or registry.
- C1: the run_blueprint_member extraction is behaviour-preserving (keystone
blueprint_sweep_member_equals_single_run_and_shares_topology_hash unchanged +
green); serde_json/float_roundtrip serves determinism (disk==recomputed), not a
mask (1-ULP canary green).
- C11/C12: one blueprint stored per family, keyed by the shared topology_hash.
Resolutions:
- [ledger] Refreshed C18 + C24: added the cycle-0094 Realization (the
content-addressed store runs/blueprints/<hash>.json + aura reproduce), and
retired the now-false "content-addressed identity / full reproduction deferred"
claims (INDEX.md:1261, C24 deferred block). Only the structural-axis /
whole-harness content-id (and the debug-name-in-id question) genuinely remains,
filed forward (#171, #170).
- [debt->closed] Added the two untested refuse-don't-guess E2E arms
(aura_reproduce_rejects_a_non_generated_family — a hard-wired sweep member has
no topology_hash; aura_reproduce_rejects_a_missing_stored_blueprint — the store
was deleted), and a cross-surface unit pin
(topology_hash_is_the_content_id_of_the_canonical_form) so the two acc-1 paths
cannot silently drift.
- [scaling] MC/walk-forward-from-blueprint (#170) will need the same put_blueprint
hook or reproduce won't cover them — noted on #170.
No regression scripts in this project (Test is the gate): full workspace suite
green (51 suites), clippy -D warnings clean, binary verified end-to-end.
Ephemeral spec/plan git-rm'd per the lifecycle convention; durable rationale is in
the ledger. The World/C21 milestone stays open (#170 remains).
closes #158
This commit is contained in:
+34
-5
@@ -1258,7 +1258,8 @@ byte-identical — C14/C23). The cross-instrument *generalization score* (worst-
|
||||
floor + sign-agreement + per-instrument breakdown) is a **recomputable aggregate**
|
||||
over those members, not a persisted family-level record — distinct from #144/#145's
|
||||
per-winner selection annotation on `RunManifest.selection`.
|
||||
Deferred (Non-goals): content-addressed identity + replay-dedup; the "run-diff"
|
||||
Deferred (Non-goals): replay-dedup (content-addressed *identity* shipped — #158,
|
||||
cycle 0094, Realization below); the "run-diff"
|
||||
depth and ranking families against each other (cross-family, vs. within-family);
|
||||
and a live producer for the flat `runs.jsonl` standalone-run path — no CLI command
|
||||
writes it (sweep/walkforward persist to the family store; `aura run` does not
|
||||
@@ -1288,6 +1289,32 @@ topologies (C21/C24), `commit` no longer identifies the graph, so the manifest m
|
||||
topology's identity. The format and the carrier are C24's design; recorded here as
|
||||
the reproduction requirement it must meet.
|
||||
|
||||
**Realization (2026-07-01, cycle 0094 — content-addressed reproduction of a generated
|
||||
run, #158).** A blueprint sweep's topology is now **content-addressed**: the canonical
|
||||
`blueprint_to_json` bytes are stored once, keyed by the `topology_hash` the manifest
|
||||
already carries, in a **dumb bytes-by-key store** beside the run registry
|
||||
(`runs/blueprints/<hash>.json` — `Registry::put_blueprint`/`get_blueprint`, aura-registry;
|
||||
no `sha2`, no parse — the caller owns the hash, and reproduction's bit-identical compare is
|
||||
the integrity check). `aura reproduce <family-id>` re-derives every persisted member: load
|
||||
the member's blueprint by its `topology_hash`, reconstruct the sweep point from the
|
||||
recorded params, re-run through the **same** `run_blueprint_member` the live sweep uses
|
||||
(so bit-identity is by construction, C1), and compare metrics — refuse-don't-guess on an
|
||||
unknown id / missing stored blueprint (exit 2), DIVERGED → exit 1. The manifest + the
|
||||
content-addressed store + the commit are the complete re-derivation recipe (C18). One
|
||||
blueprint is stored per family (all members share the signal `topology_hash` — C11/C12
|
||||
dedup). `aura graph introspect --content-id` exposes the same id for an op-script, via the
|
||||
one `content_id` primitive `topology_hash` also uses (acc 1); a Tier-1 optional the
|
||||
blueprint does not use leaves the id byte-stable (acc 3, composing #156/#164).
|
||||
`serde_json/float_roundtrip` is enabled so stored f64 metrics round-trip exactly through
|
||||
`families.jsonl` — the precondition for a bit-identical compare (C1). **Signal-only this
|
||||
cycle**: the id covers the signal blueprint; the fixed Stage-1-R scaffolding stays
|
||||
commit-identified (it is not yet blueprint-data, C24). Whole-harness / structural-axis
|
||||
content-addressing, and whether the id should exclude the composite **debug-name** (a
|
||||
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).
|
||||
|
||||
### C19 — Bootstrap: blueprint → instance (recursive)
|
||||
**Guarantee.** Construction is a distinct phase, recursive at every level. Each
|
||||
node type has a **factory** `params → sized concrete node` (e.g. `SMA(length)`
|
||||
@@ -1863,10 +1890,12 @@ consumes the graph). Monte-Carlo / walk-forward over a loaded blueprint are the
|
||||
per verb (a tracked follow-on); per-member trace-writing on `--trace` and an axis-name
|
||||
discovery surface are tracked debt.
|
||||
|
||||
**Deferred to the World / project-as-crate cycle**: **full** content-addressed
|
||||
reproduction (#158, C18) — the `topology_hash` field landed cycle 0092; what remains is
|
||||
re-deriving the FlatGraph from a stored manifest and a content-id that covers
|
||||
structural-axis variants; retiring the pre-C24
|
||||
**Content-addressed reproduction shipped (cycle 0094, #158, C18)**: `topology_hash`
|
||||
landed cycle 0092; re-deriving a member's FlatGraph from a stored manifest + the
|
||||
content-addressed blueprint store (`aura reproduce`) shipped cycle 0094 (see C18
|
||||
Realization). What **remains** is a content-id that covers **structural-axis / whole-harness
|
||||
variants** (the scaffolding is not yet blueprint-data) and the debug-name-in-id question
|
||||
(#171/#170). Still deferred: retiring the pre-C24
|
||||
hard-wired `aura-cli` harnesses (`HarnessKind`, `run_stage1_r`, `*_sweep_family`) once
|
||||
the project-as-crate layer lands (#159, paired with #157's data-authoring surface). **Out of the first cut's round-trippable set**
|
||||
(deliberate; fails clean as `UnknownNodeType`, never a silent wrong graph): recording
|
||||
|
||||
Reference in New Issue
Block a user