{
 "P0": {
  "status": "passed",
  "checks": [
   "TASK.md read fully",
   "contract.md written"
  ],
  "notes": ""
 },
 "P1": {
  "status": "passed",
  "checks": [
   "SHA-256 computed and matched bundle.json",
   "schema/missing/duplicates checked",
   "len(cluster_sizes)=G and sum=N for all 9 rows",
   "exclusions.csv written (0 removed)"
  ],
  "notes": "G=5 Rademacher discreteness noted"
 },
 "P2": {
  "status": "passed",
  "checks": [
   "naive iid-SE interval coverage and var bias computed under same evaluation rule (baseline_iid_* keys)"
  ],
  "notes": "baseline badly undercovers when ICC>0"
 },
 "P3": {
  "status": "passed",
  "checks": [
   "analysis.py reads only data/design.csv",
   "per-cell seeds from design.csv",
   "bootstrap vectorised B x G",
   "writes results.json, table1.csv, figure1.png"
  ],
  "notes": "runtime ~2s"
 },
 "P4": {
  "status": "passed",
  "checks": [
   "clean re-run: results.json byte-identical, table/figure md5 identical",
   "32/32 internal consistency checks PASS (state/verify_output.txt)",
   "analytic CR0 bias agrees with MC (max |z|=2.46)"
  ],
  "notes": "see state/checks.md"
 },
 "P5": {
  "status": "passed",
  "checks": [
   "report.md has 6 required sections",
   "claims.json keys all exist in results.json",
   "all report numbers taken from results.json"
  ],
  "notes": ""
 }
}