import json
from pathlib import Path
ledger={}
for report in json.loads(Path('weekly-reports.json').read_text()):
 item=ledger.setdefault(report['id'],{'status':'open','first_week':report['week'],'evidence':None})
 item.update(owner=report['owner'],last_mentioned_week=report['week'])
 if report.get('closed'):
  evidence=report.get('evidence');assert evidence and Path(evidence).exists(),'Cannot close without real evidence file'
  item.update(status='closed',evidence=evidence)
assert ledger['B01']['status']=='open' and ledger['B01']['last_mentioned_week']==2
assert ledger['B02']['status']=='closed' and ledger['B02']['evidence']=='V02.md'
assert ledger['B03']['owner']is None
Path('blocker-ledger-reference.json').write_text(json.dumps(ledger,ensure_ascii=False,indent=2))
print('Read 5 real report records; B01 persists open into week3; B02 closes with existing V02.md; B03 needs owner.')
