Consolidate the synthetic walkforward select->optimize dispatch onto the campaign executor #225
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 #215 cycle-close architect review (2026-07-10). #215 taught the
campaign walk_forward executor to honour a plateau select on the per-window
in-sample winner, with a gate-lattice soundness guard in the campaign preflight
(plateau is refused when a gate precedes the wf stage, because a gate filters
survivors below the full parameter grid). That leaves plateau-in-wf logic with
two live homes:
run_walk_forward_stage→select_sweep_winner(
crates/aura-campaign/src/exec.rs), gated by the campaign preflight;--real) walkforward pathblueprint_walkforward_family→select_winner→optimize_plateau(
crates/aura-cli/src/main.rs:740-746), which has accepted plateau since #173and carries no gate-lattice guard (moot today — the synthetic path has no gate
stages — but it is a second, independent select→optimise dispatch).
Direction (not prescriptive)
Consolidate the synthetic walkforward path onto the one campaign executor (the
dissolved-verb direction, #220), so plateau-in-wf — and its lattice-soundness
guard — has a single home. Until then, a change to the plateau/argmax winner
dispatch must be mirrored in both places or they drift.
synthetic path predates #215), correctly scoped out of #215.
Re-anchoring after cycle #295 (aura-runner/aura-measurement extraction, merged
4ed6455): the synthetic walk-forward path this issue targets moved out of the CLI binary.blueprint_walkforward_familynow lives atcrates/aura-runner/src/family.rs:514-573, callingselect_winner(crates/aura-runner/src/family.rs:293-309, dispatching tooptimize_deflated/optimize_plateau).crates/aura-cli/src/main.rsnow only calls it as a library function (line 912); the oldmain.rs:740-746reference is stale.The campaign-side home is unchanged:
run_walk_forward_stage(crates/aura-campaign/src/exec.rs:990) still calls the privateselect_sweep_winner(crates/aura-campaign/src/exec.rs:900-937), still gated by the campaign preflight's gate-lattice guard. The duplication this issue flags is still live, and the two dispatch functions have already diverged further:select_sweep_winnertakes(SelectRule, deflate: bool, seed: u64)with an Argmax-without-deflation arm, whileselect_winnertakes aSelectionenum with no deflate parameter (its Argmax arm always deflates). A change to one no longer trivially mirrors onto the other.The #295 extraction removes the structural obstacle that made consolidation awkward: the synthetic path is no longer embedded in the
aura-clibinary.crates/aura-vocabulary/tests/c28_layering.rsalready permitsaura-runnerto depend onaura-campaign(aura-runner sits in the assembly position directly above aura-campaign), andaura-runneralready carries that dependency edge for other reasons. Consolidatingselect_winnerontoaura-campaign'sselect_sweep_winner(or a shared primitive both call) is now reachable without a new C28 edge. The decided document-first direction (#300) does not bear on this issue -- #225 is internal dispatch de-duplication between two library crates, not CLI flag surface, so it is not absorbed by #300's flag-to-document migration.Direction stands: consolidate the two select->optimize dispatch homes (
crates/aura-runner/src/family.rs::select_winnerandcrates/aura-campaign/src/exec.rs::select_sweep_winner) so the plateau/argmax winner logic, and the gate-lattice soundness guard, have one home.idea label removed (ratified 2026-07-21, idea-cull round): since #295 removed the structural obstacle (aura-runner may depend on aura-campaign), consolidating select_sweep_winner/select_winner is a concrete reachable task, not a droppable idea.