plan(ml-alpha): trunk-grows refactor + deployability validation roadmap
20-commit atomic ladder (X0–X19) + Phase 1→2 gate + Phase 2 runtime
runbook. Implements spec da1dd92bf:
X0: perception_forward_golden fixture (bit-equivalence gate)
X1: CfcTrunk v2 weight skeleton (no callers)
X2–X9: incremental weight-group migrations (VSN, Mamba2 ×2, LN ×2,
attn-pool, CfC, GRN heads), each gated by golden fixture
X10: hoist forward kernels into CfcTrunk methods
X11: capture_graph_a covers full v2 forward + captured-vs-uncaptured
equivalence test
X12: CheckpointV2 envelope + save/load (V1 hard-rejected)
X13: PerceptionTrainer.save_checkpoint delegate
X14: alpha_train saves best_h6000 checkpoint
X15: verify ml-backtesting accepts CheckpointV2 (no code change)
X16: max_drawdown_pct with \$35k base
X17: emit_deployability_verdict + tiered logic + 6 unit tests
X18: GPU smoke test against real trained checkpoint
X19: three sweep YAMLs (smoke, threshold-tuning, deployability)
Gate: fold-0 smoke must reproduce recorded 3-fold A/B numbers
within ±0.010 absolute before Phase 2 begins
P.1–6: Argo runtime (training → smoke → threshold → sweep → verdict)
Self-review confirms 1:1 spec coverage. Three soft adaptation points
(HEAD_MID constant, Mamba2Block accessors, BacktestHarnessConfig field
names) resolve at code-read time. One placeholder (todo!() in X11
explanatory text) is called out in self-review for replacement when
that commit lands.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>