From 7865030d33ecdf696d70a71d2c8dcd53d565e710 Mon Sep 17 00:00:00 2001 From: Brummel Date: Sun, 14 Jun 2026 02:29:37 +0200 Subject: [PATCH] =?UTF-8?q?audit:=20cycle=200039=20=E2=80=94=20drift-clean?= =?UTF-8?q?=20(GraphBuilder=20name-based=20wiring)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Close-audit for cycle 0039 (commit range 3a1dceb..a6a314b). Architect drift review against the design ledger + CLAUDE.md domain invariants: no contract drift, no debt. No regression scripts are configured (the architect is the gate); build + test + clippy verified green independently by the orchestrator (aura-engine 123 passed, +9 new; full workspace green; clippy --all-targets -D warnings exit 0). cycle 0039 (clean): - C23 / C11 preserved: the compilat is byte-unchanged this cycle. harness.rs (Edge / FlatGraph / Target / SourceSpec) is untouched; the new GraphBuilder resolves every port/field name in build() (resolve_slot / resolve_field) and lowers to the unchanged Composite::new with raw-index Edge / Role / OutField. No name-carrying field was added to any compilat type — names resolve at the authoring boundary and never reach FlatGraph. - C10 / C17 preserved: GraphBuilder is a genuine fluent Rust builder over the existing structs, not a DSL. Node references are typed Copy handles; only port/field names are strings, resolved against declared NodeSchema data. - C8 / C1 / C2 preserved: resolution is cold authoring-time; the run loop and the bootstrap kind-check remain the structural gate (name resolution is necessary, not sufficient). - #21 deferral is coherent: the exposure/price swap is made legible (named slots) but deliberately NOT structurally closed; issue #65 carries the structural follow-up (promoting port/field names to load-bearing keys), and no ledger contract claims the swap is closed. Awareness (not drift, spec-consistent): feed() indexes self.roles[role.0] directly, so a RoleHandle minted by a different builder panics rather than returning BuildError::BadHandle (which covers only NodeHandles, per the signed spec). RoleHandle out-of-range robustness is unspecified by spec 0039.