\section{The Noise Harness Methodology}
\label{sec:noise-harness}

% TODO content notes:
% - Describe the GBM null-data generator: dS = mu*S*dt + sigma*S*dW, fixed
%   seed, parameters (mu, sigma, N steps, start price) documented in
%   experiments/README.md and reproduced in 01_generate_gbm.py.
% - Key property to state explicitly: this series has zero exploitable
%   structure by construction — no autocorrelation edge, no regime, nothing
%   a real strategy could legitimately learn.
% - Define the test: run the same kernel/backtester pipeline against N
%   independent GBM seeds. A backtester free of lookahead bias should
%   produce a Sharpe distribution centered at ~0 across seeds. A backtester
%   with a leak will produce a systematically positive Sharpe regardless of
%   seed, because the "edge" comes from the mechanics, not the data.
% - State this as a pass/fail CI gate: mean Sharpe over >= 30 seeds must
%   fall within a pre-registered null band (e.g. -0.3 to 0.3); anything
%   outside that band fails the build. This is what
%   .github/workflows/noise-harness.yml is wired to enforce once
%   experiments/05_noise_harness.py exists.
