Files
Aura/fieldtests/cycle-0049-random-sweep/out_3_reproducibility.txt
T
Brummel af0191884d fieldtest: cycle-0049 — 4 examples, 7 findings
Public-API field test of the random param-sweep surface, from a standalone
downstream-consumer crate (path-deps only; the public interface = ledger +
glossary + spec 0049 + cargo doc rustdoc; no crates/*/src read). Four bins,
each built from HEAD and run: continuous tuning (200-point random tune ranked
by total_pips), the typed validation gate (all five reachable SweepError
variants pre-run), reproducibility + seed-sensitivity + the full i64::MIN..=MAX
sampler edge, and Space-trait interchangeability (one tune_and_rank<S: Space>
over both GridSpace and RandomSpace).

Findings: 0 bugs, 4 working, 2 spec_gap, 1 friction. The four working findings
confirm the cycle's acceptance criterion empirically — the headline tune reads
as the code a researcher would write, the gate is precise and fires before any
run, the C1 reproducibility promise is checkable in one line, and the Space
trait delivers one-consumer/both-enumerations.

Triage of the actionable findings:
- friction (no named-axis builder for RandomSpace — positional Vec<ParamRange>
  must align with param_space() by hand, and a same-kind transposition passes
  validation silently): filed as a feature for a future cycle, refs #79
  (a RandomBinder sibling to the grid's SweepBinder).
- spec_gap (SweepError rustdoc summary named only GridSpace): fixed inline in a
  follow-up doc commit.
- spec_gap (NonNumericRange / Bool-slot ranges unreachable with the shipped
  aura-std node roster — no node declares a Bool/Timestamp knob): RATIFIED as
  intentional. The variant is a forward-looking structural guard for the C16
  "author your own node" path (a Bool/Timestamp param-slot a custom node may
  declare); its current untriggerability with the standard roster is expected,
  not drift.

refs #79
2026-06-17 13:42:39 +02:00

24 lines
858 B
Plaintext

family A: 64 points; family B (same seed): 64 points
reproducible: family(seed=0xABCDEF) == family(seed=0xABCDEF) OK
first 3 points, seed 0xABCDEF vs 0x123456:
#0: [6,21,0.9149] vs [2,10,2.8858]
#1: [5,16,2.0410] vs [4,20,1.5472]
#2: [3,10,2.7001] vs [8,22,2.4252]
seed-sensitive: family(0xABCDEF) != family(0x123456) OK
wide-range probe: param-space slot 0 = idnode.k : I64
RandomSpace::new(full i64 range) accepted -> 8 points
points() over the full i64 range produced 8 points (no panic):
#0: k = 4456085495900499605
#1: k = -4084088288392011950
#2: k = -8521839250712812558
#3: k = -5194507324077150883
#4: k = -2952751159242293803
#5: k = -5443600385428481601
#6: k = 247114729376335590
#7: k = 3046653382386749148
wide-range I64 sampler: no panic OK
OK: reproducible + seed-sensitive; wide-range probe survived.