from research import *
family="sp"
p=ROOT/'prep/manuscript_sp.json'
packet=json.loads(p.read_text());modules=packet if isinstance(packet,list) else packet['modules'];m=modules[1]
textbody=m.get('text',m.get('body',''))
for old,new in []:textbody=textbody.replace(old,new)
s=begin(1073,'Manuscript: '+m['title'],'Does this section accurately connect its complete source family to the shared explanation?',{'draft_sha256':hashlib.sha256(p.read_bytes()).hexdigest(),'module_index':1},['C1071','prep/manuscript_sp.json'])
sources=m.get('sources',[]);source_notes=[]
for x in sources:
if isinstance(x,str):source_notes.append(x)
else:source_notes.append(x.get('file','')+' '+(', '.join(x.get('sections',[])) if 'sections' in x else x.get('section','')))
steps=m.get('steps',[])
if not steps and family=='round':steps=['C932–C952','C1058–C1068']
content='### '+m['title']+'\n\n'+textbody+'\n\n*Sources:* '+'; '.join(source_notes)+'.\n\n*Research record:* '+', '.join('C'+str(x) if isinstance(x,int) else str(x) for x in steps)+'.\n'
rel='deliverables/sections/02_sp_2.md'
a=artifact(rel,content)
checks={'all_lives_appear':all(str(x) in textbody for x in [930,912,905,910,895,847,365,720,653]),'cap_excludes_Noah':'Noah remains outside' in textbody,'totals':115+249+124+120==608}
finish(s,{'section':a,'body_words':len(textbody.split()),'source_references':len(source_notes)},"The SP section presents one rule on all nine rows, preserves inclusive versus ordinary deaths, and traces the changes into the Cumulative field.",'Reassess the next explanatory section against its source roles and the sealed calculations.',checks)
Evidence
s1073.py
Edition and provenance
s1073.py
SHA-256 dba7e577e9ccbb27b4847218309d6fb6944a480f77f75cdedb817b02a6c36d0c
C480–C1634/Research_Cycles/C0932_C1131/evidence/s1073.py