docs: bound params are overridable defaults — C12 amendment, glossary, guide

Task 7 of the bound-override cycle: the design ledger's C12 records the
bound-as-default semantics (axis 1 may name a bound param; identity reads
the authored document; the retired axes-bind-only-open-knobs restriction
was an implementation consequence, not a recorded decision), the glossary's
blueprint entry carries the same sentence, and the authoring-guide's
data-only starter section explains the one-file run+sweep quickstart.

closes #246
This commit is contained in:
2026-07-13 04:32:47 +02:00
parent 024d878ac3
commit e4fb64d7c6
3 changed files with 16 additions and 5 deletions
+5 -4
View File
@@ -38,10 +38,11 @@ the same shape every node in `aura-std` already follows.
- **The project's own signal doesn't need a crate by default.** `aura new` - **The project's own signal doesn't need a crate by default.** `aura new`
scaffolds a **data-only** project (`docs/project-layout.md`, "A project scaffolds a **data-only** project (`docs/project-layout.md`, "A project
repo (two tiers)") — a strategy over the std vocabulary is a repo (two tiers)") — a strategy over the std vocabulary is a
blueprint/campaign document, not Rust: the scaffold ships a single closed blueprint/campaign document, not Rust: the scaffold ships **one** closed
`signal.json` starter, runnable immediately with no build step, and also `signal.json` starter that serves both verbs — `aura run` uses its bound
the sweep target itself (a bound param is a default any `--axis` may values as-is, `aura sweep --axis <bp>.fast.length=2,4,8` overrides them
override, #246). (bound = default, not fixed); `--list-axes` lists the open knobs and the
bound defaults alike, so every override target is discoverable.
- **A project-specific *native* node type** — the moment §0's three-part - **A project-specific *native* node type** — the moment §0's three-part
pattern is actually needed — lives in an attached **node crate**: pattern is actually needed — lives in an attached **node crate**:
`aura nodes new <name>` scaffolds a sibling cdylib crate (`Cargo.toml` + `aura nodes new <name>` scaffolds a sibling cdylib crate (`Cargo.toml` +
+10
View File
@@ -1132,6 +1132,16 @@ Seed-as-input reconciles Monte-Carlo with C1. The "frozen topology" of the
atomic unit is one harness instance, selected by the harness's **structural atomic unit is one harness instance, selected by the harness's **structural
axes** (C20); the structural experiment matrix is the outer orchestration over axes** (C20); the structural experiment matrix is the outer orchestration over
this dimension, the tuning sweep the inner (C19/C20). this dimension, the tuning sweep the inner (C19/C20).
**Amendment (2026-07-12, #246).** A bound blueprint param is the param's
**default**: axis 1 (param-sweep) may name a bound param — the family boundary
re-opens it on the probe and on every member reload, and the axis binds it per
cell. "Open" means *must be bound by an axis*; "bound" means *default,
overridable by an axis*. `run`/`mc` still require every param resolved (a truly
open param still refuses). Identity is untouched: `content_id_of` and
`topology_hash` read the authored document, never a re-opened probe, and each
member manifest records its per-cell bindings as before. The restriction this
amends — axes bind only open knobs — was an implementation consequence of
`bind()` shrinking the param surface, not a recorded decision.
### C13 — Hot-reload is authoring-only; deploy is frozen ### C13 — Hot-reload is authoring-only; deploy is frozen
**Guarantee.** A node/strategy is authored as a native Rust `cdylib`, **Guarantee.** A node/strategy is authored as a native Rust `cdylib`,
+1 -1
View File
@@ -29,7 +29,7 @@ A strategy's primary, backtestable DAG output: one signed, bounded `f64 ∈ [-1,
### blueprint ### blueprint
**Avoid:** — **Avoid:** —
The param-generic, input-role-generic graph-as-data produced by running a Rust builder; it carries free numeric params and free input roles before bootstrap. Bootstrapped into a frozen instance by binding params + data + seed. Registered and inspected headless (`aura graph register`, `aura graph introspect --params` — the raw `param_space` namespace campaign axes bind against; cycle 0107/#196). The param-generic, input-role-generic graph-as-data produced by running a Rust builder; it carries free numeric params and free input roles before bootstrap. Bootstrapped into a frozen instance by binding params + data + seed. Registered and inspected headless (`aura graph register`, `aura graph introspect --params` — the raw `param_space` namespace campaign axes bind against; cycle 0107/#196); a *bound* param is an overridable **default** — a sweep axis naming it re-opens it per family (#246), while `run` uses it as-is.
### bootstrap ### bootstrap
**Avoid:** — **Avoid:** —