from research import *
s=begin(1116,'Bind the explanatory claims to source copies','Can readers trace all five main argument blocks to supplied sources and completed calculations?',{},['evidence/SOURCE_MANIFEST.json','deliverables/review/Integrated_Draft_v2.md'])
manifest=json.loads((ROOT/'evidence/SOURCE_MANIFEST.json').read_text())
groups=[
('Ordered rows and SP cap',['File_09','File_18','File_51a'],'C953–C983','Reader sections 1–6; technical §§1–2'),
('Rounded inverse and completed paths',['File52c_latest'],'C932–C952; C1058–C1068','Reader sections 7–12; technical §§3–4'),
('Keys, retained parts and placement',['File_12','File_46','File_63','supplement-a'],'C984–C1007','Reader sections 13–18; technical §§5–7'),
('Covenant and clutch',['File_60','File_61','File_62'],'C1032–C1057','Reader sections 19–24; technical §8'),
('Lists, NT and Toledot',['File_58','File_43','File_54','File_70.Genesis'],'C1008–C1031','Reader sections 25–30; technical §9')]
rows=[]
for title,tokens,steps,where in groups:
files=[k for k in manifest if any(t.lower() in k.lower() for t in tokens)]
rows.append({'argument':title,'files':[{'name':k,'sha256':manifest[k]} for k in files],'research':steps,'reading':where})
content='# Source and claim index\n\nThe main draft contains section-level source locators. This index binds its five main arguments to the exact supplied source copies carried in the evidence packet. File52c_latest.md is the latest File52c and controls Rounded interpretation. The full manifest records all 44 frozen source and continuity files.\n\n| Argument | Source copies | Research | Reading location |\n|---|---|---|---|\n'
for r in rows:content+='| '+r['argument']+' | '+'; '.join(x['name'] for x in r['files'])+' | '+r['research']+' | '+r['reading']+' |\n'
content+='\nInherited comparisons are identified as inherited in the text. Claims established during this cycle are reproduced in the sequential journal. Source copies are evidence, not revised originals. Supplement A §10.3 controls the 9660|2940 retained-parts comparison. File54 §§8.6 and 13.2 control the 2450/35 metric.\n'
a=artifact('deliverables/Source_Claim_Index_C1131.md',content)
b=artifact('model/source_claim_index.json',json.dumps(rows,indent=2)+'\n')
finish(s,{'reader_index':a,'bound_claims':b,'source_counts':[len(r['files']) for r in rows]},'The five argument blocks now have explicit source-copy bindings alongside the existing thirty section-level locators. The two corrected source attributions are retained.','Consolidate the independent calculation and integration reviews before final editing.',{'all_groups_nonempty':all(r['files'] for r in rows),'five_groups':len(rows)==5,'latest52c':rows[1]['files'][0]['sha256']=='a5ea84562101158b60d0cf296765d6eff38e7a2abda4e74ad1b353dfd13b9530'})
Evidence
s1116.py
Linked sources and evidence
- File 62
- File 52c
- File 12
- File 18
- File 46
- File 09
- File 58
- File 51a
- File 54
- File 43
- File 70
- File 63
- File 61
- File 60
Edition and provenance
s1116.py
SHA-256 15cdb77bf42ced7599e0802f0f86adc83d38d04fbd7e3899b5b9fd8528809bc6
C480–C1634/Research_Cycles/C0932_C1131/evidence/s1116.py