from research import *
s=begin(1384,'Build the exact source bibliography','Which frozen editions support the final explanation?',{},['evidence/SOURCE_MANIFEST.json'])
manifest=json.loads((ROOT/'evidence/SOURCE_MANIFEST.json').read_text())
selectors=[('Strategy','Strategy.md'),('File18','File_18.'),('File51a','File_51a.'),('Latest File52c','File52c_latest.md'),('File07','File_07.'),('File43','File_43.'),('File54','File_54.'),('File58','File_58.'),('File60','File_60.'),('File61','File_61.'),('File62','File_62.'),('File70','File_70.'),('Style Guide','Repository_Style_Guide'),('State Vocabulary','State_Vocabulary_Register'),('Project Procedures','Project_Procedures'),('Restart Capsule','Restart_Capsule')]
rows=[]
for label,token in selectors:
matches=[name for name in manifest if token in name];assert len(matches)==1,(label,matches)
name=matches[0];rows.append({'label':label,'snapshot':'evidence/sources/'+name,'sha256':manifest[name]})
a=artifact('model/final_source_bibliography.json',json.dumps({'principal_sources':rows,'full_manifest':'evidence/SOURCE_MANIFEST.json','full_source_count':len(manifest),'edition_policy':'Use frozen contents and hashes; current source decisions supersede older illustrative Strategy sentences.'},indent=2)+'\n')
finish(s,{'bibliography':a,'principal_sources':len(rows)},'The final bibliography identifies sixteen principal editions by exact snapshot and hash; the full manifest retains all44 sources used by the evidence cycle.','Prepare the final primitive-data register wrapper.',{'sixteen':len(rows)==16,'hashes':all(hashlib.sha256((ROOT/x['snapshot']).read_bytes()).hexdigest()==x['sha256'] for x in rows)})
Evidence
s1384.py
Linked sources and evidence
Edition and provenance
s1384.py
SHA-256 1842a5e9719810b7cc1197fda3d727f6b036fbd9684f1bb85db77daf41ae91a1
C480–C1634/Research_Cycles/C1132_C1431_Recovered/evidence/s1384.py