from pathlib import Path import shutil,hashlib,json ROOT=Path('/workspace/scratch/1b40da62dcbd') work=ROOT/'spine_integration_20260928' old=ROOT/'audit_cancel_20260928/recovered/evidence/deliverables' out=work/'deliverables' main=(old/'490d_Chronological_Families_Explanation_C1431.md').read_text() def sub(a,b): global main assert main.count(a)==1,(a,main.count(a)) main=main.replace(a,b) sub('A connected explanation of the selected source families · C1132–C1431 continuation · September 28, 2026','A connected explanation of the selected source families · C1431 synthesis with the September 28, 2026 MT/LXX/SP spine extension') sub('This continuation develops the complete row and Moses reconstructions, the source provenance of the SP rectangle, and the NT comparison. Established inverse, Covenant and count constructions are integrated to show the common method.','The C1132–C1431 continuation develops the complete row and Moses reconstructions, the source provenance of the SP rectangle, and the NT comparison. The present edition adds the supplied LXX/SP spine study: the same segmented reversal yields MT convergence, a 500-year LXX separation and a 190-year SP separation. The accepted SP Fall construction then connects its inverse heads with MT Creation intervals and the LXX. Established Covenant and count constructions retain their place in the common explanation.') sub('| Original named duration words | Apply one admitted reversal; then a declared Key | Complete inverse paths and calendar completion |','| Original named duration words | Apply one admitted reversal; then a declared Key | MT/LXX/SP trunks, preserved head differences and specified calendar comparisons |') sub('The account uses latest File52c and the current selected LXX Lamech pair 182/753, with remainder 571. Older LXX 777 comparisons retain their appendix role. The inverse of the inverse is deferred.','The inherited MT account uses the File52c edition frozen at C1431. Its comparative extension uses the supplied September 28 study, *Reversed Creation–Flood Spines: LXX Comparison and the Accepted SP Solution*. The selected LXX Lamech pair remains 182/753, with remainder 571; older 777 comparisons retain their appendix role. The inverse of the inverse is deferred.') sub('sandbox:/workspace/scratch/1b40da62dcbd/c1132_c1431/deliverables/Chronological_Families_Map.png',str(old/'Chronological_Families_Map.png')) # Local absolute image path will be converted to sandbox for the reader and stripped for PDF rendering. sub('!['+'Six source routes connecting the chronological families]('+str(old/'Chronological_Families_Map.png')+')','![Six source routes connecting the chronological families](sandbox:'+str(old/'Chronological_Families_Map.png')+')') sub('The Moses lane joins the reconstructed path to separately supplied File52c event nodes.','The Moses lane joins the reconstructed path to separately supplied File52c event nodes. The comparative chapter below extends the inverse route to the LXX and accepted SP trunks.') sub('The transmitted SP 4411 does not by itself supply a newly reconstructed complete Rounded SP field.','The transmitted SP 4411 does not by itself supply a newly reconstructed complete Rounded SP genealogical field. The accepted Fall construction introduced below now supplies the complete selected SP trunks, using 4406 Regular and 13396 Cumulative as their derived Fall heads.') sub('All four admitted completed paths can be compared compactly.','The four admitted MT paths can be compared compactly.') sub('Every transformed row totals 14720 and therefore ends at 14726 BC.','Every MT row in this table totals 14720 and therefore ends at 14726 BC.') sub('The completed 14720 duration gives 16000 under E,','The completed MT 14720 duration gives 16000 under E,') sub('For the appointed E route, holding 6 BC converts 14720 to 16000','For the appointed MT E route, holding 6 BC converts 14720 to 16000') sub('Every nonempty proper prefix of the four transformed paths','Every nonempty proper prefix of the four transformed MT paths') sub('## Calendar Keys preserve a declared measure',(work/'prep/comparative_chapter.md').read_text().rstrip()+'\n\n## Calendar Keys preserve a declared measure') sub('Anchored Keys connect declared measures. Covenant joins arise','The comparative trunks extend segmented reversal to MT, LXX and the accepted SP Fall inputs. Their common tail preserves the different Regular/Cumulative head separations; fixed segments, the SP-to-MT 300-year translation and the LXX/SP 1700 return connect the outputs across families. Anchored Keys connect declared measures. Covenant joins arise') sub('The compact presentation has four parts: a primitive-data register, an operation inventory, a relation ledger and a complete-family reconstruction ledger.','The C1431 compact presentation has four parts: a primitive-data register, an operation inventory, a relation ledger and a complete-family reconstruction ledger. The added comparative chapter and technical §4A explicitly extend its inverse-path account with the new study\u2019s six trunks.') sub('The NT’s two Key equations express one scale relation.','The NT’s two Key equations express one scale relation. The spine comparison\u2019s repeated 2700 is likewise generated by one common tail and anchor change; its distinct 0, +500 and −190 mode differences come from the selected source legs.') main += '\nThis expanded edition adds the September 28 LXX/SP comparison after the original C1431 checkpoint. The original 779-check completion remains a claim about that frozen checkpoint; the added arithmetic has its own bounded review in the integration notes. The supplied study is included in full in the reader package, retaining its source register, further comparisons and correction ledger. The original four-part JSON grammar and claim index remain C1431 records; the comparative chapter cites the dated study directly, and technical §4A supplies the added reconstruction.\n' (out/'490d_Chronological_Families_Explanation_C1431.md').write_text(main) tech=(old/'490d_Technical_Companion_C1431.md').read_text() assert tech.count('## 5. Keys, anchors and integer stages')==1 tech=tech.replace('## 5. Keys, anchors and integer stages',(work/'prep/comparative_technical.md').read_text().rstrip()+'\n\n## 5. Keys, anchors and integer stages') tech=tech.replace('| Latest Rounded source | File52c | Controls the admitted original words and inverse comparisons |','| Inherited Rounded source | File52c edition frozen at C1431 | Controls the inherited MT original words and inverse comparisons |\n| Comparative spine extension | September 28 LXX/SP study | Six selected MT/LXX/SP trunks; common +2700 tail; mode gaps 0/+500/−190 |\n| Accepted SP Fall | Regular 4411−5=4406; Cumulative 13401−5=13396 | Derived Fall heads before reversal; source Creation members retained |') tech=tech.replace('The companion accompanies the connected explanation at C1431. Exact source identities and literal claim locators are in the claim/source index; all formulas retain their completed source/proof routes.','This companion contains the C1431 technical account plus the dated comparative spine extension in §4A. The original claim/source index binds the inherited account. The supplied comparative study and the separate integration review bind the added section; its arithmetic is outside the original C1431 verification count.') tech=tech.replace('in final_Covenant_claim_index.json','in the final Covenant claim index') (out/'490d_Technical_Companion_C1431.md').write_text(tech) print(json.dumps({'main_words':len(main.split()),'technical_words':len(tech.split()),'output':str(out)},indent=2))