Verb front-end asymmetry: sweep defaults the stop, walkforward/mc require it #217
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?
Surfaced by the milestone "Verb dissolution" (#210) close fieldtest (2026-07-07).
aura sweep --strategy r-sma --real GER40 --fast 3,5 --slow 12,20runs and defaults the stop to 3 / 2.0. The identically-shapedwalkforward/mcinvocation is refused: "walkforward requires --fast --slow --stop-length --stop-k". The required-knob contract is inconsistent across sibling verbs, and no doc flags the difference — exercising "the r-sma real path" uniformly across the verbs forces the consumer to learn a per-verb knob-requirement rule by trial and error.Pre-existing front-end behaviour, surfaced by uniform use across the verbs.
Resolution (one of): align the required-knob contract across the verbs (either all default the stop or all require it), or document the per-verb difference in the usage strings.
Design decision (derived): align by defaulting the stop
The issue offers three resolutions: (a) all verbs default the stop, (b) all
verbs require it, (c) document the per-verb difference. Resolved as (a),
derived:
test-pinned contract (a dissolved sweep binds NO regime; the member runner
resolves the default — the manifest stamps stop_length=3/stop_k=2.0) and
would shift every sweep campaign document's content id. The heavier break
for the same consistency gain.
trial-and-error friction the close fieldtest flagged; it does not remove it.
--stop-length/--stop-kbecome optional onwalkforward/mc/generalize; each missing flag independently defaults to the
single-sourced constants (length 3, k 2.0) — the exact regime the campaign
member runner already resolves for an unbound regime (
stop_rule_for_regime,#219). The generated campaign document still binds the regime explicitly, so
a default invocation produces a byte-identical document (same content id) to
an explicit
--stop-length 3 --stop-k 2.0invocation — no content-id churn,no change to any pinned grade. The multi-value stop refusal ("the stop is a
single risk regime") is unchanged. Sweep is untouched. Usage strings name
the defaults. R-yardstick provenance is preserved regardless: every member
manifest stamps the resolved stop values (C18), and the risk regime remains
the structural, compared-not-selected campaign axis (C10/C20 — decision of
2026-07-06).
Independent per-flag defaulting mirrors mc's existing knob defaults
(--block-len/--resamples/--seed default independently). Status: design
settled — behaviour is pinnable as an executable spec.