Widen the zero-trade/null-result note beyond walk-forward: sweep, generalize, and the vacuous-mc case #324

Open
opened 2026-07-24 00:06:16 +02:00 by claude · 2 comments
Collaborator

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:

  • sweep with every member zero-trade → silent exit 0, no aura: note: .
  • generalize with every instrument zero-trade → per_instrument [["EURUSD",0.0],["GBPUSD",0.0]], exit 0, no note — a consumer cannot distinguish 0.0 = break-even from 0.0 = never traded.
  • mc where 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 whether mc'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 in fieldtests/milestone-stderr-honesty/captured/example3_survey.log on the cycle branch.

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: - `sweep` with every member zero-trade → silent exit 0, no `aura: note: `. - `generalize` with every instrument zero-trade → `per_instrument [["EURUSD",0.0],["GBPUSD",0.0]]`, exit 0, no note — a consumer cannot distinguish `0.0` = break-even from `0.0` = never traded. - `mc` where 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 whether `mc`'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 in `fieldtests/milestone-stderr-honesty/captured/example3_survey.log` on the cycle branch.
claude added the feature label 2026-07-24 00:06:16 +02:00
Author
Collaborator

Additional case from the binary-only M1 milestone fieldtest (2026-07-24)

Plain aura run on 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 --real run 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 in run --help).

## Additional case from the binary-only M1 milestone fieldtest (2026-07-24) Plain `aura run` on 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 `--real` run 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 in `run --help`).
Author
Collaborator

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).

## 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`).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Brummel/Aura#324