Files
Brummel 11dfff860c fieldtest: cycle 0031 node-naming — naming cure under-signposted on the by-name flow
Per-cycle fieldtest of node-instance naming (#56), driven as a downstream
consumer from the public interface only (ledger + spec + rustdoc + CLI; no
crates/*/src read), three fixtures built and run from HEAD.

Verdict: the core 0031 promise holds first-try. A consumer authors
Sma::builder().named("fast"), inspects param_space() (sma_cross.fast.length),
binds by name and runs; the default-name case (sma.length / exposure.scale,
verbatim lowercase) and paramless-interchangeable-stays-legal both hold.

0 bugs, 3 working, 2 friction, 1 spec_gap. The one real gap (verified by the
orchestrator against the fixture output): the spec's headline forcing function
IndistinguishableFanIn does NOT reach an author on the canonical
.with(...).bootstrap() flow. An un-named 2-SMA cross emits a literal DUPLICATE
knob (sma_cross.sma.length x2); the binder resolves names before the compile
fan-in check, so the author hits UnknownKnob / AmbiguousKnob("sma_cross.sma.length")
— which point at the knob, not at the cure "name your nodes". IndistinguishableFanIn
only surfaces via the positional compile_with_params path. Rejection still
happens (no invalid blueprint runs), so it is an ergonomic/signposting gap, not
a correctness bug. Routed to the backlog (relates to #58); 0031 stays
audit-closed. Minor: FlatGraph/Harness lack Debug, so a bootstrap Result can't
be {:?}-printed.
2026-06-11 12:18:29 +02:00

35 lines
1.1 KiB
TOML

# Standalone downstream-consumer crate for the cycle-0031 fieldtest
# (node-instance naming: `.named()`, uniform `<node>.<param>` param paths,
# IndistinguishableFanIn re-keyed onto the node name, ParamAlias retired).
#
# Like the prior cycle-0006..0011 fixtures, this is NOT a member of the aura
# workspace — it path-depends on the engine crates exactly as a real research
# project (C16) would. Built/run via
# cargo run --manifest-path fieldtests/cycle-0031-node-naming/Cargo.toml --bin <name>
# so HEAD source is always what runs. No crates/*/src was read; the API was
# discovered from the ledger (C9/C23), spec 0031, and `cargo doc`.
[workspace]
[package]
name = "c0031-fieldtest"
version = "0.0.0"
edition = "2024"
publish = false
[dependencies]
aura-core = { path = "../../crates/aura-core" }
aura-engine = { path = "../../crates/aura-engine" }
aura-std = { path = "../../crates/aura-std" }
[[bin]]
name = "c0031_1_named_single_run"
path = "c0031_1_named_single_run.rs"
[[bin]]
name = "c0031_2_forcing_function"
path = "c0031_2_forcing_function.rs"
[[bin]]
name = "c0031_3_default_names"
path = "c0031_3_default_names.rs"