audit: cycle 0106 tidy — ledger/glossary lift, unwired-hint fix, spec/plan retired

Architect drift review (holds: C14 headless authoring, C16/C17 no-DSL with
aura-research a true leaf, content-id move behaviour-preserving per the
untouched id goldens). Resolution per item:

- fix (docs): C18 gains the cycle-0106 realization note (processes/ +
  campaigns/ stores, document canonical form, the content-id primitive's
  library home, the referential tier, no-executor status); the #109
  analysis-meta-level open thread records the artifact half shipped v1 and
  what stays open (executor question, verb dissolution 'once it carries',
  the remaining #188 amendment package). Glossary: new campaign document +
  process document entries; content id generalized to all three artifact
  classes; experiment marked superseded by the campaign document (#188
  re-cut of the builder-API thread).
- fix (code): the --unwired guide advertised an identity_id process ref
  that validate_campaign refuses — the process.ref open-slot hint now says
  content-id-only (strategy refs keep both); lib + seam pins updated.
- filed forward: #190 (metric-vocabulary single-sourcing, the 0105 roster
  drift class), #191 (identity-ref store scan is O(store), performance
  only).
- carry-on: regression gates green by hand — cargo test --workspace 916/0,
  clippy -D warnings clean, cargo doc --no-deps 0 warnings; no baseline to
  ratify (project has no metric baseline scripts).

Cycle 0106 spec and plan retired per convention (git rm); durable record
is the ledger notes above plus #188/#189.

refs #189
This commit is contained in:
2026-07-03 16:27:02 +02:00
parent a9e047eca7
commit ebe85683c9
6 changed files with 46 additions and 2977 deletions
+30 -2
View File
@@ -1367,8 +1367,24 @@ spans the third variant, `FamilyKind::WalkForward` — the same branch rebuilds
windowed slice from `manifest.window` (winner params via the shared `manifest→cells` recovery),
so an `aura walkforward` family re-derives bit-identically too. All three family kinds now
persist *and* reproduce through the one shared `topology_hash`+`put_blueprint` hook.
### C19 — Bootstrap: blueprint → instance (recursive)
**Realization (cycle 0106, #189 — research-artifact document stores).** The registry's
content-addressed store family grew two siblings beside `blueprints/`: `processes/` and
`campaigns/` hold the two research-artifact document types shipped by the #188 role-model
pass — the **process document** (role 5: a named validation/eval methodology, a closed std
stage vocabulary wrapping shipped primitives) and the **campaign document** (role 6b:
persisted experiment intent — instruments × windows × strategy refs by content/identity id ×
param axes × process ref (content-id-only) × data-level presentation). Documents are
canonical JSON (`format_version` envelope, omit-defaults, no trailing newline) keyed by the
**shared content-id primitive, now library-hosted** (`aura_research::content_id_of`;
`aura-cli`'s `content_id`/`topology_hash` delegate byte-identically — the id goldens pin the
move). Unlike `put_blueprint` (caller owns the hash), the document puts self-key from
canonical bytes; gets are `Ok(None)` treat-as-empty. The **referential tier**
(`validate_campaign_refs`) resolves process/strategy refs against the stores (identity refs
by store scan) and checks each campaign axis — name AND declared `ScalarKind`, the axis
carries its kind once — against the referenced blueprint's `param_space`. Campaign P1
control constructs (axes/gates/ladders per #188) carry intent only: **no executor exists**;
executor need is re-tested against the intent-persistence diagnosis before one is scoped
(#189 triage, decided item 6).
**Guarantee.** Construction is a distinct phase, recursive at every level. Each
node type has a **factory** `params → sized concrete node` (e.g. `SMA(length)`
sizes its ring buffer). A **blueprint** is the param-generic, input-role-generic
@@ -2127,6 +2143,18 @@ artifact, and any run is deterministic once instantiated" (C1).
brainstorm / milestone), and the **composable-orchestration** half — the axes
(sweep / MC / walk-forward) becoming tools applied to a World-constructed harness
instead of the hard-wired `aura-cli` verbs (`sweep_family` / `walkforward_family`).
**Status (cycle 0106, #189 — the artifact half shipped v1).** The #188 role-model pass
re-cut the "experiment-builder API" reading of this thread (role-6b work mis-typed in
role-2 technique): experiment intent is now **data**, not a Rust API. Cycle 0106 shipped
both document vocabularies (process document, campaign document — `aura-research`),
two-tier validation, the op-script-precedent introspection contract
(`aura process|campaign introspect --vocabulary/--block/--unwired/--content-id`), and
content-addressed stores (C18 realization note) — authorable and checkable headless, no
compile, no run. Still open here: the executor question (deliberately unscoped until the
intent-persistence diagnosis is re-tested, #189), the "once it carries" dissolution of the
hard-wired verbs into the campaign path (user decision 2026-07-03 on #188), and the
remaining #188 amendment package (role-model contract entry; C20 "plain Rust loops"
clause; C22 wording; invariant-10 clarification).
- **Inferential honesty of the World — family-selection without false-discovery
control (tracked: milestone "Inferential validation (defend against false
discovery at sweep scale)", #144 / #145 / #146; adjacent #139).** The World's