from research import *
s=begin(1399,'Resolve final claim bindings inside the evidence packet','Can all indexed source files be found without original workspace paths?',{},['deliverables/490d_Claim_Source_Index_C1431.json'])
d=json.loads((ROOT/'prep/claim_portability_initial_snapshot.json').read_text());resolved=d['bindings'];missing=[x for x in resolved if not x['packet_paths']]
a=artifact('model/claim_portability_initial_audit.json',json.dumps(d,indent=2)+'\n')
finish(s,{'audit':a,'unique_bindings':len(resolved),'missing_support_files':missing},'The portability audit finds51 of55 indexed files already inside the packet. Four inherited review/model support files need explicit snapshots before release; their exact hashes are known.','Snapshot the four missing support files, then finish the portable claim index.',{'fifty_five':len(resolved)==55,'four_missing':len(missing)==4,'all_missing_bound':all(len(x['sha256'])==64 for x in missing)})
