from research import *
s=begin(832,'Select complete-family transfer tests','Can the established path grammar explain new source-controlled families without fitting their endpoints?',{'first_family':'File58 complete ledger matrices and declared partitions','other_candidates':['File43/54 full Luke display','File52c complete paired-anchor field','File63 ordered carrier network'],'predecessor':'C831'},['Strategy stagesD–H; C831 synthesis; local File58'])
m=json.loads((ROOT/'evidence/SOURCE_MANIFEST.json').read_text())
criteria={'scope':'whole literal tables and declared operators','newness':'check prior journals before calling a mechanism new','explanation':'recover internal fields and identify retained/lost information','limits':'source selection and historical intention remain premises'}
a=artifact('model/RESEARCH_SELECTION.json',json.dumps(criteria,indent=2)+'\n')
finish(s,{'selection':a,'source_snapshots':len(m),'primary':m['File52c_latest.md']},'The next test moves from genealogy to a bounded list with multiple source-defined measurements. Complete-family transformations, not additional endpoint searches, will guide the cycle.','Freeze File58’s complete ledger and partition data before calculating its consequences.',{'primary_pin':m['File52c_latest.md']=='a5ea84562101158b60d0cf296765d6eff38e7a2abda4e74ad1b353dfd13b9530','source_count':len(m)==41})
