from pathlib import Path import hashlib, json, subprocess root = Path(subprocess.check_output(['git','rev-parse','--show-toplevel'], text=True).strip()) packet = root/'harness/experiments/compact-help-20261001/package' inventory = json.loads((packet/'evidence-files.json').read_text(encoding='utf-8')) prefix = packet.relative_to(root).as_posix() assert {p.relative_to(packet).as_posix() for p in packet.rglob('*') if p.is_file()} == set(inventory)|{'evidence-files.json'} for relative, expected in inventory.items(): data = (packet/relative).read_bytes() indexed = subprocess.check_output(['git','show',':'+prefix+'/'+relative], cwd=root) actual = {'bytes':len(data),'sha256':hashlib.sha256(data).hexdigest()} assert actual == expected, relative assert indexed == data, 'Index changes captured bytes: '+relative assert subprocess.check_output(['git','show',':'+prefix+'/evidence-files.json'],cwd=root) == (packet/'evidence-files.json').read_bytes() print(json.dumps({'status':'PASS','captured_files':len(inventory),'indexed_inventory_identical':True,'policy':'All captured package bytes preserved by scoped -text attributes'},indent=2))