"""Provenance record for the files that document protocol amendment 1 (the site: operator tests of 2 September 2026): the four
DataForSEO responses named serp-optest-* and the DuckDuckGo HTML response, with bytes, SHA-256, mtime and purpose. Written to
data/protocol-evidence-<date>.json and packaged with the dataset. Usage: python3 scripts/protocol-evidence.py 2026-09-02"""
import json,glob,os,hashlib,sys,datetime
date=sys.argv[1]; out=[]
for f in sorted(glob.glob('raw_responses/dataforseo/serp-optest-*.json'))+sorted(glob.glob('raw_responses/ddg-optest-*.html')):
    fb=open(f,'rb').read()
    purpose=('DataForSEO Google organic response for a site: operator query, showing off-domain results (amendment 1)' if 'google' in f or 'serp-optest-site' in f or 'serp-optest-testgorilla' in f else 'DataForSEO Bing organic response for a site: operator query, showing no results (amendment 1)') if f.endswith('.json') else 'DuckDuckGo HTML response for a site: operator query, no parseable results (amendment 1)'
    if 'bing' in f: purpose='DataForSEO Bing organic response for a site: operator query, showing no results (amendment 1)'
    out.append({'file':f,'bytes':len(fb),'sha256':hashlib.sha256(fb).hexdigest(),'mtime_utc':datetime.datetime.fromtimestamp(os.path.getmtime(f),datetime.UTC).strftime('%Y-%m-%dT%H:%M:%SZ'),'purpose':purpose})
json.dump({'date':date,'note':'Files behind protocol amendment 1 in SCOPE.md; none is a discovery attempt for any product-site row.','files':out},open(f'data/protocol-evidence-{date}.json','w'),indent=1); print('protocol evidence:',len(out),'files')
