Code↔hypothesis misalignment found by the semantic auditor — the code does NOT implement the hypothesis. Re-code the strategy to implement the hypothesis EXACTLY (instrument, timeframe, direction, the named edge/mechanic, sizing). Concrete issues: Entry condition contradicts the hypothesis's stated trigger. The hypothesis title/body specify entering ONLY when the perp trades at a LARGE absolute premium to spot (60-200+ bps, cited as one-to-two orders of magnitude above the ~30 bps round-trip cost). The code has no absolute-premium gate anywhere: `calculate_signal` computes `basis = (perp_px - spot_px)/spot_px*1e4`, then `dev = basis - self._basis_sum/n` (rolling mean over basis_window=96 bars), and `_manage` opens the long-spot/short-perp pair on the sole condition `dev >= entry_dev_bps` (default 2.5, bounds [1.0, 6.0]); there is no check that `basis > 0`. The base-template entry path is inert here (`should_enter` returns None, `position_size` returns 0), so `_manage` is the only entry gate. Per the strategy's own measured distribution (mean -5.31 bps, max +0.00 bps, 0.00% of bars beyond |20| bps), the perp is never at a premium in this data, so every entry fires while the perp is at an outright DISCOUNT to spot — the opposite sign to the hypothesis's condition — and at a ~2.5 bps trigger magnitude 24-80x below the 60-200+ bps dislocation that is the hypothesis's entire cost-clearing rationale. The 512 trades / PF 0.066 / -50% result corroborates that entries fire under the substituted mechanism rather than the hypothesized one.