Fit the mc-injected walk-forward to the data window (short real windows are refused late, without a reachable remedy) #239
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?
Milestone fieldtest finding (2026-07-11, friction; consumer POV at
d3ad9f4):aura mc <bp.json> --real GER40over a ~30-day window is refused only at runtime withThe mc-generated pipeline injects a
std::walk_forwardstage with a fixed ~120-day total window; a 1-month window — the same window the README campaign example uses successfully — fails late, and themcsurface offers no way to fix it:mc --helpexposes--block-len/--resamples/--seedbut nothing to size the injected walk-forward, and gives no minimum-window guidance. A 6-month window runs fine.Directions (not mutually exclusive): default the injected walk-forward's window sizing to the data window; expose the sizing on the
mcsurface; document the minimum window inmc --help.Decision (2026-07-11, autonomous run): fit the injected roller to the data window instead of refusing.
The root: the dissolved wf/mc invocations stamp fixed 90/30/30-day roller sizes (
WF_REAL_*_NS,crates/aura-cli/src/main.rs) into the generated process document; a campaign window shorter than in_sample+out_of_sample (120 days) is refused late by the executor with no remedy reachable from the mc surface.Chosen: at dispatch — where the resolved campaign window is already known — the roller sizes scale down to fit when the fixed sizes exceed the window, preserving the 3:1 IS:OOS ratio with step = OOS (a window of exactly IS+OOS yields a single roll). Windows that fit the fixed sizes keep them byte-identically, so the committed exact-grade anchors (which run on fitting windows) are unaffected; only invocations that today dead-end change behaviour. Applies to both
walkforward --realandmc --real(same seam, same friction). The--helptext documents the fit.Rejected: exposing roller-sizing flags on the mc surface — custom sizing is exactly what an authored process document already expresses (
in_sample_ms/out_of_sample_ms/step_msonstd::walk_forward); the sugar's contract is a sensible default, not a second full surface. A user needing exact sizing writes the process document (the C25 escalation path).Unchanged: the executor's fit check itself (authored documents still validate against their declared window).