b849bb76b9
Task 5 of the verb-axis-generalization plan — the cycle's point, pinned: - walkforward_campaign_runs_an_arbitrary_blueprint and mc_campaign_runs_an_arbitrary_blueprint drive r_breakout_open.json (wrapped channel_hi/channel_lo axes) over the real archive; generalize_campaign_runs_an_arbitrary_blueprint grades r_meanrev_open.json across two instruments. All three invocations were structurally impossible before this cycle (exit 2). - New refusals: campaign mode without --axis (wf/mc), mc --real + --seeds mix, raw-form axis name before data access, unknown axis as a named Knob fault — each mirroring sweep's shipped contract. - Final acceptance gates ran green in the loop: full workspace suite, clippy -D warnings, cargo doc warning-free, zero too_many_arguments allows in verb_sugar.rs, no RGrid in the workspace, no r_sma_open embed at the three verb dispatch sites (the aura graph default embed survives by design). closes #220 closes #214