Widen the zero-trade/null-result note beyond walk-forward: sweep, generalize, and the vacuous-mc case #324
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Field evidence (milestone fieldtest "Surface honesty on stderr", 2026-07-24, run source-blind against the release binary only): the zero-trade note shipped by #313 fires on both walk-forward paths — but its benign-null-result siblings on the other verbs stay silent or worse:
sweepwith every member zero-trade → silent exit 0, noaura: note:.generalizewith every instrument zero-trade →per_instrument [["EURUSD",0.0],["GBPUSD",0.0]], exit 0, no note — a consumer cannot distinguish0.0= break-even from0.0= never traded.mcwhere the strategy never trades →aura: mc is vacuous: every seed produced an identical result …, exit 2, no class marker — a benign null result presented as a hard precondition error.#313 was deliberately scoped to walk-forward (decision log on #278), so this is a widening, not a defect in the shipped cycle. The ask: state which verbs owe a
note:on an all-zero/null result and apply the C14 class-marker grammar there; separately decide whethermc's vacuous case is really a usage error (exit 2) or a benign null result (note:+ exit 0 — note this half would change an exit code, which the C14 partition treats as contract).Provenance: fieldtest spec
fieldtest-milestone-stderr-honesty(working file), captured survey infieldtests/milestone-stderr-honesty/captured/example3_survey.logon the cycle branch.Additional case from the binary-only M1 milestone fieldtest (2026-07-24)
Plain
aura runon the synthetic stream: 18 cycles → 0 trades → all-zero metrics, with no notice that the built-in synthetic stream is a tiny smoke fixture. A bootstrapper validating on synthetic can read the zeros as a broken strategy (the fieldtest consumer did, until the--realrun clarified). When widening the zero-trade notice, include this path: a one-line "synthetic stream is an N-cycle smoke fixture; expect 0 trades" note on the zero-trade run path (or inrun --help).Absorbed #325 (tracker harvest, 2026-07-24)
The per-verb marker/exit contract ask from #325 is now part of this issue's scope: generalize's partial failure surfaces as exit 1 with no
warning:marker and no per-instrument attribution, while sweep and walkforward follow the recorded-warning + exit-3 convention. One cycle should state the C14 per-verb contract and widen the null-result notes together — deciding them separately risks two half-contracts. See #325 for the captured survey (fieldtests/milestone-stderr-honesty/captured/example3_survey.log).