Stateless: mention + account_state -> KevinDecision. Conviction-weighted sizing, time_horizon-derived hold periods, hard per-ticker cap. The bridge and the backtest mini-engine both call evaluate_mention so behaviour cannot drift.