1{2 "P0": {3 "status": "passed",4 "checks": [5 "TASK.md read fully",6 "contract.md written"7 ],8 "notes": ""9 },10 "P1": {11 "status": "passed",12 "checks": [13 "sha256 of all 6 files computed and match README/bundle",14 "line/item counts recorded",15 "schemas and units recorded",16 "8 anomalies logged in data_audit.md",17 "exclusions.csv written (5->5)"18 ],19 "notes": ""20 },21 "P2": {22 "status": "passed",23 "checks": [24 "baseline_reported in results.json: printed values in their reported units plus author-printed conversions (Table 6 % change -35.0%)",25 "same evaluation rule (printed locators) used for harmonised values"26 ],27 "notes": "Baseline = un-transformed printed estimates."28 },29 "P3": {30 "status": "passed",31 "checks": [32 "out/analysis.py reads only data/, prints every source line used, writes out/results.json",33 "no randomness; random_seed null",34 "A19 locator anchor bug fixed and re-run"35 ],36 "notes": ""37 },38 "P4": {39 "status": "passed",40 "checks": [41 "clean re-run byte-identical (cmp)",42 "input hashes unchanged",43 "14 consistency checks PASS (see checks.md)"44 ],45 "notes": ""46 },47 "P5": {48 "status": "passed",49 "checks": [50 "report.md has the 6 required sections",51 "every claim's results_keys exist in results.json",52 "claims.json written (7 claims, all supported)"53 ],54 "notes": ""55 }56}