audit: cycle 0104 tidy (drift-clean after three doc-mirror alignments)

Architect drift review (range d5c4361..45fb06d): drift_found, three items,
all doc-mirror — resolved inline as close-fixes:
- docs/design/INDEX.md — the two #171 deferral passages (C18 #158
  realization + C24 status) now record the shipped identity id (additive
  sibling; content id keeps the store/reproduce roles; introspection-only
  until a dedup consumer exists). Whole-harness / structural-axis
  content-addressing stays deferred.
- README.md — introspect table gains the --identity-id row incl. the
  combinable id-flag behaviour.
- docs/glossary.md — three record-reality entries: content id, identity id
  (Avoid: identity hash, topology-identity hash), topology hash; the
  README row aligned to the canonical term.

What holds (architect): additive-sibling discipline intact (no store code
touched, every content-id/topology_hash pin green); C23 honoured precisely
(each strip arm has a protecting property test; factoring byte-preserving
via the canonical golden); the two extra engine tests are genuinely
distinct coverage (recursion arm, role/output arms), no redundancy.

Regression gates (all green): cargo build clean; cargo test --workspace
884 passed / 0 failed (873 baseline + 11 new); clippy --all-targets
-D warnings clean; cargo doc --no-deps 0 warnings.

Ephemeral cycle artifacts removed per project convention (git rm):
docs/specs/0104-topology-identity-hash.md,
docs/plans/0104-topology-identity-hash.md.

refs #180
This commit is contained in:
2026-07-02 21:29:38 +02:00
parent 45fb06dba3
commit 7b429f931a
5 changed files with 24 additions and 857 deletions
+11 -5
View File
@@ -1351,9 +1351,13 @@ blueprint does not use leaves the id byte-stable (acc 3, composing #156/#164).
`families.jsonl` — the precondition for a bit-identical compare (C1). **Signal-only this
cycle**: the id covers the signal blueprint; the fixed r-sma 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
content-addressing remains deferred. The debug-name-in-id question was settled additively
(cycle 0104, #171): the **identity id** — the canonical form with every non-load-bearing
debug symbol blanked (invariant 11), hashed through the same `content_id` primitive and
surfaced as `aura graph introspect --identity-id` beside `--content-id` (combinable) —
makes same-topology blueprints comparable across authoring paths, while the byte-exact
`topology_hash` keeps every role untouched (introspection-only: no manifest field, no
store key until a dedup consumer exists). Reproduction is proven on
synthetic (deterministic) data; recorded-dataset reproduction rides the DataServer seam
(#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
@@ -1976,8 +1980,10 @@ r-sma wrapping (`sma_signal.fast.length`, the nested-composite prefix), not the
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
variants** (the scaffolding is not yet blueprint-data); the debug-name-in-id question is
settled by cycle 0104's **identity id** (#171: `blueprint_identity_json` + `graph
introspect --identity-id`, an additive sibling — the byte-exact content id keeps the
store/reproduce roles; introspection-only until a dedup consumer exists). Still deferred: retiring the pre-C24
hard-wired `aura-cli` harnesses (`HarnessKind`, `run_r_sma`, `*_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