{
  "P0": {
    "status": "passed",
    "checks": [
      "contract.md written covering question, estimands, outputs, info rules, invalidity conditions"
    ],
    "notes": ""
  },
  "P1": {
    "status": "passed",
    "checks": [
      "sha256 recorded and matches bundle.json",
      "schema/missing/duplicates/cluster sizes audited",
      "exclusions.csv sums: 2000-0=2000"
    ],
    "notes": ""
  },
  "P2": {
    "status": "passed",
    "checks": [
      "se_ols conventional OLS baseline computed and stored"
    ],
    "notes": ""
  },
  "P3": {
    "status": "passed",
    "checks": [
      "analysis.py reads only data/, writes results.json, no randomness"
    ],
    "notes": ""
  },
  "P4": {
    "status": "passed",
    "checks": [
      "rerun byte-identical",
      "manual CR1 SE match",
      "CI contains estimate",
      "positive SEs",
      "counts add up",
      "gate run 20261030T054851.767527Z.json: all P4-scope checks ok (reproducibility, CI, positive SE, exclusion ledger); failures only for P5 files not yet written"
    ],
    "notes": "",
    "gate_receipts": [
      "out/state/gate_receipts/20261030T054851.767527Z.json"
    ]
  },
  "P5": {
    "status": "passed",
    "checks": [
      "report.md with 6 required sections, all numbers cite results keys",
      "claims.json 4 claims referencing existing keys",
      "final gate run 20261030T054910.639314Z.json: PASSED 0/32 failed"
    ],
    "notes": "",
    "gate_receipts": [
      "out/state/gate_receipts/20261030T054910.639314Z.json"
    ]
  }
}