#!/usr/bin/env python3
"""
Step 6 — Anti-overfitting checklist (static framing; pair with walk-forward + slippage sweeps).

Prints a concise research checklist; does not run a backtest.
"""

from __future__ import annotations

CHECKLIST = """
================================================================================
 Step 6 — Anti-overfitting framing (manual + quantitative guards)
================================================================================
 1. Out-of-sample structure: walk-forward by year (see vrp_research_sweeps.py) —
    stable sign of edge matters more than a single full-sample CAGR.
 2. Implementation stress: slippage grid (same script) — if edge vanishes at
    realistic friction, it is not actionable.
 3. Data-source robustness: Theta vs iVol on intersected days (vrp_research_theta_vs_ivol.py)
    — large divergence flags curve/synchronization issues, not alpha.
 4. Regime concentration: extended_regime_metrics downside_share and standalone_max_dd
    — a few regimes driving all loss is a complexity / tail risk warning.
 5. No parameter search on the test window: R1–R4 parameters are fixed in code;
    any future tuning must use a hold-out period not used for reporting.
 6. VVIX / vol-of-vol conditioning (vrp_research_metrics.py quartiles) is exploratory;
    treat as hypothesis generation, not confirmation.
================================================================================
"""


def main() -> None:
    print(CHECKLIST.strip())


if __name__ == "__main__":
    main()
