e20dd9ae49
main advanced with two `fix(cli)` commits (dec0780,6a775f7) landed by a parallel session while the clap adoption (cycles 0098/0099) was built from780d823. Both touch behaviour the clap migration rewrote or sits beside; this merge preserves them rather than letting the rewrite silently drop them: -dec0780(open-blueprint guard, #176): `aura run <open blueprint.json>` must refuse with a clean exit 2, never a `compile_with_params` arity panic (exit 101). The fix lived in the old hand-rolled `run` .json-arm, which the clap migration replaced — re-integrated into `dispatch_run`'s .json branch (the same `blueprint_axis_probe().param_space()` check + "closed blueprint" diagnostic). -6a775f7(walkforward axis-once, #177): axis validation hoisted to a single dispatch-boundary pre-flight, in the execution fn `blueprint_walkforward_family` — which the migration did not touch, so it auto-merged unchanged. Both fixes are verified by their own RED tests (`aura_run_rejects_an_open_blueprint_without_panicking`, `aura_walkforward_emits_an_unknown_axis_rejection_once`), and both are consistent with this cycle's iteration-2 exit-code classification: an open blueprint and an unknown axis are argument faults, so usage errors → exit 2. The conflict was confined to `fn main` in crates/aura-cli/src/main.rs (the clap `Cli::parse()` dispatch vs the old argv `match`); resolved to the clap side plus the re-integrated guard. cli_run.rs auto-merged (their two new tests + this cycle's renegotiated pins). Verified green (orchestrator, this session): cargo build --workspace, cargo clippy --workspace --all-targets -- -D warnings, and cargo test --workspace all clean.