#!/usr/bin/env python3
from pathlib import Path
import json,sys
root=Path(__file__).resolve().parents[1]
contract=json.loads((root/'model-contract.json').read_text())
notes=(root/'sql/schedule_notes.sql').read_text()
status=json.loads((root/'evidence/runtime-status.json').read_text())
files=['read_committed_t1.sql','read_committed_t2.sql','repeatable_read_t1.sql','repeatable_read_t2.sql','serializable_t1.sql','serializable_t2.sql','read_uncommitted_probe.sql']
issues=[]
if contract.get('starter_must_not_pre_solve_skill') is not True: issues.append('STARTER_POLICY_MISSING')
if 'TODO 1' not in notes or 'TODO 5' not in notes: issues.append('LEARNER_PREDICTION_SCAFFOLD_MISSING')
for f in files:
    if not (root/'sql'/f).exists(): issues.append('MISSING_'+f)
if 'TO_FILL_FROM_REAL_RUNTIME' not in (root/'evidence/Transaction_Isolation_Evidence_Record_v1.template.json').read_text(): issues.append('RUNTIME_PLACEHOLDERS_MISSING')
if status.get('fabricated_runtime_evidence') is not False: issues.append('FABRICATED_RUNTIME_FLAG')
out={'schema':'DAT003_STATIC_PREFLIGHT_v1','status':'PASS' if not issues else 'FAIL','issues':issues}
print(json.dumps(out,indent=2)); sys.exit(0 if not issues else 1)
