From 6ca359ae00e8e7921f08557be383bc2d0a2ce199 Mon Sep 17 00:00:00 2001 From: claude Date: Fri, 24 Jul 2026 21:48:38 +0200 Subject: [PATCH] =?UTF-8?q?audit:=20#271=20cycle=20close=20=E2=80=94=20C24?= =?UTF-8?q?=20reconciled=20with=20its=20own=20args=20paragraphs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Architect drift review (fable gate) on 26b3d68..HEAD, full diff read. What holds: invariant 4 stays clean (ArgKind a separate closed enum at every surface), minuted scope held (aura-research and SessionFrankfurt untouched, no matrix surfacing), C18/C19 discipline held (args-free bytes golden-pinned at v1, args id-bearing, no pending builder reaches a graph on op or load path). Fixed here (high/medium items): C24's out-of-the-round-trippable-set paragraph still listed LinComb/CostSum/Session — now records their #271 entry, with SimBroker as the remaining (scalar-typed, narrower) exclusion; the pre-ship-dormancy paragraph's 'first ship freezes v1' sentence stales against the shipped data-driven v2 writer — the dormancy is recorded as ended by #271, the first exercised Tier-2 bump. Routed (low items): #341 — refuse serializing a still-pending builder on the Rust path (silent unloadable v1 artifact); version-refusal prose prints only the ceiling. Regression: aura-bench all five surfaces fingerprint OK, deltas within noise (max +2.3% wall at loadavg 2.7, report-only) — the hot path is untouched by design (bootstrap-only channel). Full workspace suite independently re-run by the orchestrator: test-exit 0. Spec and plan swept per lifecycle. refs #271, refs #341 --- docs/design/contracts/c24-blueprint-data.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/design/contracts/c24-blueprint-data.md b/docs/design/contracts/c24-blueprint-data.md index 3e07988..860e261 100644 --- a/docs/design/contracts/c24-blueprint-data.md +++ b/docs/design/contracts/c24-blueprint-data.md @@ -70,8 +70,10 @@ loop for the round-trippable vocabulary. **Out of the round-trippable set** (deliberate; fails clean as `UnknownNodeType`): recording sinks (they capture an `mpsc::Sender` — runtime identity, not param-generic -data, C19) and construction-arg builders (`LinComb` / `CostSum` / `SimBroker` / -`Session` — structural-axis args, a C20 concern), additively addable later (#156). +data, C19) and `SimBroker` (a scalar-typed baked value, a narrower gap than the args +channel). `LinComb` / `CostSum` / `Session` — formerly listed here — entered the +round-trippable set with #271's typed construction args (see the add-op `args` +clause and the data-driven `format_version` below). ### Runs and families are built FROM blueprint-data @@ -269,12 +271,13 @@ Tier-1 (additive-optional) is serde-default silent-ignore with **no** `format_ve bump — a new optional field defaults to prior behaviour (C1). Tier-2 (must-understand: a new node type, edge semantics, or structural-axis kind) **bumps** `format_version` so an old reader refuses cleanly (`LoadError::UnsupportedVersion` / `UnknownNodeType`). -**Pre-ship dormancy (#61):** until the first external ship there are no out-of-repo -readers — reader and writer change atomically in one commit — so the Tier-2 bump -discipline is dormant and structurally-semantic additions (the `gangs` section) land as -additive-optional fields of v1; the first ship consciously freezes v1, gangs included, -and activates the bump discipline. The per-section required-flag scheme is deferred (no -current Tier-2 section to validate it; recorded on #156). +**Pre-ship dormancy (#61, ended by #271):** until the first external ship there were +no out-of-repo readers — reader and writer changed atomically in one commit — so the +Tier-2 bump discipline lay dormant and structurally-semantic additions (the `gangs` +section) landed as additive-optional fields of v1. #271's construction args are the +first exercised Tier-2 bump (data-driven, next paragraph); v1 remains the version of +every args-free document, gangs included. The per-section required-flag scheme stays +deferred (no per-section case yet; recorded on #156). **First data-driven bump (#271):** construction args are the first Tier-2 case whose version is decided PER DOCUMENT, not a single global bump. The writer emits