tidy: clear the milestone fieldtest findings (refusal reasons, --help, ledger + glossary)
Resolves the four non-bug findings from the inferential-validation milestone
fieldtest (the bug — the broken-pipe panic — is fixed in 1088320):
- [friction] generalize refusals now carry a reason instead of a bare usage dump:
<2 instruments, a multi-value candidate flag, a missing knob, a duplicate
symbol, and a non-stage1-r strategy each get a one-line why (mirroring the
R-only metric refusal). Two parser tests strengthened to pin the message.
- [friction] --select <argmax|plateau:mean|plateau:worst> added to the
walkforward branch of the global USAGE (aura --help) — the plateau objective
was undiscoverable from the only help the CLI prints (the per-subcommand usage
already carried it).
- [spec_gap] C1 gains a scope note: bit-identity is per-run; a derived metric
recomputed by two different command paths may differ by floating-point
reassociation (<=1 ULP), which is not a C1 violation — ratifies the
fieldtester's reading of the sweep-vs-generalize sqn difference.
- [spec_gap] the milestone vocabulary is added to docs/glossary.md:
cross-instrument generalization, deflated score, overfit probability,
neighbourhood score, plateau selection, sign-agreement, worst-case floor.
The fieldtest triage spec (docs/specs/fieldtest-*) is removed now its findings
are resolved; the tracked fieldtests/ scenario corpus stays.
Verified: cargo test --workspace green (0 failed), clippy --workspace
--all-targets -D warnings clean; `aura --help` shows --select; the refusals
print their reason.
refs #146
This commit is contained in:
@@ -113,6 +113,14 @@ source of truth — not session memory.
|
||||
loop that reaches a unique state after each input tick. Same input (incl. seed)
|
||||
→ bit-identical run. Two backtests are fully disjoint and run concurrently
|
||||
without locking.
|
||||
**Scope (ratified, fieldtest 0078).** The bit-identity is *per run* — one backtest
|
||||
of given (inputs, seed) reproduces byte-for-byte. A *derived metric* recomputed for
|
||||
the same params by two *different command paths* (e.g. a swept member's `sqn` vs the
|
||||
same cell re-run under `aura generalize`) may differ by floating-point reassociation
|
||||
(≤1 ULP), since the two paths accumulate the same logical reduction in a different
|
||||
operation order (IEEE-754 non-associativity). This is not a C1 violation: C1 governs
|
||||
the determinism of a single run, not the cross-command bit-identity of a re-derived
|
||||
statistic.
|
||||
**Forbids.** Concurrency *within* a single sim; any nondeterministic input that
|
||||
is not captured as an explicit input (see C11, C12).
|
||||
**Why.** Real money rides on backtest results; reproducibility and an audit
|
||||
|
||||
Reference in New Issue
Block a user