{
 "P0": {
  "status": "passed",
  "checks": [
   "TASK.md read fully",
   "contract.md written"
  ],
  "notes": ""
 },
 "P1": {
  "status": "passed",
  "checks": [
   "SHA-256 matches README",
   "schema/missing/duplicates/contiguity checked",
   "yoy recomputed from levels (<5e-5)",
   "exclusion ledger sums: 345-35=310"
  ],
  "notes": "COVID training exclusion decided"
 },
 "P2": {
  "status": "passed",
  "checks": [
   "naive = gdp_yoy(t-2) computed for 48 origins x 2 horizons; rmse/mae_naive_* written"
  ],
  "notes": ""
 },
 "P3": {
  "status": "passed",
  "checks": [
   "analysis.py reads only data/, deterministic, no RNG (random_seed null)",
   "192-row forecasts.csv written"
  ],
  "notes": ""
 },
 "P4": {
  "status": "passed",
  "checks": [
   "clean rerun byte-identical",
   "info-rule dates verified per row",
   "independent reimplementation matches 3 forecasts",
   "RMSE>=MAE>0, rel_improvement identity",
   "gate run 20261030T050212.682868Z: contract/reproducibility OK; only P5 files missing (expected at P4)"
  ],
  "notes": "see out/state/checks.md",
  "gate_receipts": [
   "out/state/gate_receipts/20261030T050212.682868Z.json"
  ]
 },
 "P5": {
  "status": "passed",
  "checks": [
   "report.md with 6 sections citing keys",
   "claims.json 5 claims, keys exist",
   "final gate 20261030T050248.040985Z: PASSED 0/43 failed"
  ],
  "notes": "",
  "gate_receipts": [
   "out/state/gate_receipts/20261030T050248.040985Z.json"
  ]
 }
}