Per DD7=c, the SP18 D-leg structural Hold opportunity-cost reward
(compute_sp18_hold_opportunity_cost in trade_physics.cuh +
ISV[483..493) cap producer chain) replaces the reactive per-bar
Hold-cost chain (SP13 P0a + SP16 P2 + SP16 T3). This Pre-Phase commit
is slot-level documentation only — Phase 1 of SP18 deletes the
producer kernel + 3 consumer sites + host controller atomically.
Retired slot descriptions (sentinel 0.0 preserved for checkpoint compat):
461 sp16_phase2_hold_cost_scale_adaptive
462 sp16_t3_hcs_target_mean (Welford accumulator)
463 sp16_t3_hcs_target_m2
464 sp16_t3_hcs_diff_mean
465 sp16_t3_hcs_diff_m2
466 sp16_t3_hcs_prev_target
467 sp16_t3_hcs_sample_count
Preserved per DD7=c "keep the observation chain":
380..383 SP13 P0a hold-pricing observer (per-step writes still active)
460 MIN_HOLD_TEMPERATURE_ADAPTIVE (separate producer chain)
468..474 MHT_* Welford accumulators (MIN_HOLD_TEMPERATURE)
Pattern: SP14-C.1 RESERVED-gap precedent — retired slots stay in the
layout_fingerprint_seed + state_reset_registry (sentinel 0.0 rewritten
each fold) so checkpoints with the old slot names continue to load.
Legacy consumers fall back to scale=1.0 (bit-identical pre-Phase-2
behavior).
New `sp16_t2_t3_slots_marked_retired` lock test asserts the
"SP18 v2: RETIRED" marker is on each retired slot's description, AND
that the preserved MHT_* slots are NOT marked retired.
Audit doc updated per Invariant 7.
Plan: docs/superpowers/plans/2026-05-08-sp18-reward-shape-hold-attractor.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>