6e214957d1
Iteration-2 plan for cycle 0065 (Stage-1 R signal quality). Sub-splits the spec's iteration 2: this plan is the node + metric layer; the CLI/recording surface (#129) becomes a separate iteration 3. Five tasks, sequenced so each signature change threads all its callers before its build gate, and the two signature changes land before the composite that consumes both: 1. PositionManagement gains a 4th `size` input (col 10, from the Sizer); R stays size-INVARIANT (RED test pins it). Threads the PM unit tests + the stage1_r_e2e direct-eval column setups. 2. Sizer node (aura-std): `size = risk_budget / stop_distance`, flat-1R; the Stage-2 fixed-fractional seam slots in unchanged. 3. summarize_r enrichment: SQN, conviction terciles, net-of-cost; gains a `round_trip_cost` param (reads dense cols 6/7/9). Threads report.rs + the E2E callers and extends the cross-crate layout guard. 4. RunMetrics.r: Option<RMetrics> with serde(default, skip_serializing_if) for legacy runs.jsonl back-compat. Threads every RunMetrics literal (report.rs, aura-registry, aura-engine/mc). 5. RiskExecutor composite (aura-engine integration-test fixture, sibling of vol_stop_composite): FixedStop -> Sizer -> PositionManagement behind open bias+price roles, price fanned to both; bias produced in-graph (single source, no stale-price two-cycle merge). Veto is a documented seam, not a node. E2E equivalence + R-invariance under risk_budget. refs #117