Per the newly-saved memory pearl pearl_adaptive_carryover_discipline,
diagnoses Fix D's "intentionally preserve train Kelly + inventory EMAs
into eval" as the dominant cause of v8's eval-phase regression.
Design — 3 layers at the train→eval boundary:
Layer 1: Reset every adaptive EMA (Kelly wr/avg-win/avg-loss/
cumulative_dones, inventory β/variance, reward-clamp pos/neg/clip
EMAs) to neutral sentinels. Lets the controllers re-bootstrap from
eval-distribution observations rather than carrying poisoned train
state.
Layer 2: Defensive warmup window (500 steps) overrides risk-sizing
controllers — Kelly safety_frac 0.5→0.25, IQN τ_min 0.10→0.30,
entropy coef floor 0.01→0.05, PPO ε floor 0.05→0.10. Linear decay
back to normal over additional 200 steps.
Layer 3: 2× LR multiplier during warmup window. Network weights
adapt fast to new-regime statistics; this is the slowest-adapting
layer of the agent.
Adds 8 new ISV slots (686-693), bumps RL_SLOTS_END 686→694. New
small kernel rl_eval_warmup_decay applies overrides each step during
warmup. Pure additive design — no kernel logic changes outside the
new warmup-decay kernel.
Validation requires running ALL 3 folds (vs v8's single fold-1) per
pearl_single_window_oos_is_not_oos. Success criterion: mean eval pnl
across 3 folds > v8 mean.
No code change in this commit — design document only. Implementation
deferred until decision is made on whether to ship v9 or first
collect v8's fold-0 + fold-2 baseline for cleaner comparison.