feat(cli): finalize the risk-regime axis — ledger note + clippy-clean regime check (#210 T5)
The last slice of the risk-regime structural axis. The sugar parity (`translate_sweep` emitting `risk: vec![]`, absent-serializing) and the real-data two-regime e2e landed in the earlier slices (the loop's self-correction and its e2e phase), so this closes the remaining pieces: - design-ledger note: the risk regime realizes the StopRule structural axis at the campaign-document level — kept-separate keying, compared-not-selected (the R-unit argument), the C18 stamp, absent-parity, and the deferred trace gap (#212). - clippy: `validate_campaign`'s regime check reads `k <= 0.0 || k.is_nan()` instead of `!(k > 0.0)` (neg_cmp_op_on_partial_ord), behaviour-identical. Full workspace suite green; clippy clean. refs #210
This commit is contained in:
@@ -938,6 +938,26 @@ dedicated `aura-composites` crate, so `aura-engine`'s runtime dependency stays
|
||||
`aura-core`-only and `aura-std` is an `aura-engine` `[dev-dependencies]` (the graph
|
||||
stays acyclic).
|
||||
|
||||
**Realization (2026-07-06 — the risk regime as a structural campaign axis, #210).**
|
||||
The `StopRule{Fixed,Vol}` structural axis is realized at the campaign-document
|
||||
level as `CampaignDoc.risk: [RiskRegime]` (a serializable, content-addressable
|
||||
mirror of the runtime enum — `aura-research`, sole variant `Vol{length,k}`, the
|
||||
fixed-stop rule additive when needed). It is a **kept-separate** matrix axis, a
|
||||
peer of instruments and windows: the executor keys the nominee map by
|
||||
`(strategy, window, regime)`, so generalize aggregates across instruments
|
||||
*within* a regime, never across regimes. Regimes are therefore **compared** at
|
||||
presentation, never argmax-**selected** across — a cross-regime E[R] argmax would
|
||||
compare R-multiples in different R units (the stop defines 1R), so the legacy
|
||||
verbs' `--stop-length`/`--stop-k` joint stop grid is retired as a campaign
|
||||
methodology (finding the best regime = the same walk-forward / worst-case-R
|
||||
validation, run once per regime, and picking the most robust — a comparison, not
|
||||
a search). Each member manifest stamps its resolved stop (default included),
|
||||
closing the C18 gap; absent/empty `risk` = one implicit default regime,
|
||||
absent-serializing for content-id parity. Deferred (documented): regime-aware
|
||||
**trace** persistence — the trace re-run and cell-key dir naming still assume the
|
||||
default stop, since `CellRealization` carries no regime (`#212`); the core
|
||||
run/stamp/generalize path is unaffected.
|
||||
|
||||
**Realization (cycle 0066).** SQN is the operational single-number objective for
|
||||
ranking an r-sma sweep family by signal quality — C12 **axis-2 (argmax-metric)**
|
||||
over the C18 family store. `metric_cmp` (`aura-registry`) learns the
|
||||
|
||||
Reference in New Issue
Block a user