Text verification
How the check works
The process is designed to be boring, repeatable and inspectable. A failed check stops the release rather than being edited away.
- Freeze the official files.
The raw BSB downloads are copied without editing and their byte sizes and SHA-256 fingerprints are recorded.
- Build one canonical text.
ScriptureLeaf uses the official BSB translation table as its canonical build source. Unicode is normalised to NFC. Headings, translator notes and cross-references are kept as reader data but excluded from the canonical Scripture-text hashes.
- Hash chapter, book, Bible.
Each chapter gets a fingerprint. Each book fingerprint is made from its ordered chapter fingerprints. The whole-Bible fingerprint is made from the ordered book fingerprints. One changed character therefore changes the affected chapter, its book and the Bible fingerprint.
- Build ScriptureLeaf from that frozen source.
The verifier regenerates all 1,189 reader chapter files and checks 31,102 verse-number slots through the same deterministic presentation rules used by the site.
- Compare separate published copies.
Witness adapters align verse references, preserve the original strings, separate exact characters from same-word-sequence presentation differences, wording differences and structural gaps, and record source lineage. Enabled repository witnesses are pinned to exact commits; derived mirrors remain labelled as derived.
- Publish, never replace.
A release lives permanently at its dated URL. If the BSB source changes, ScriptureLeaf creates a new release and a verse-level changelog rather than silently replacing the old record.
Canonical rules for release 2026-09-06
- Unicode
- NFC
- Line endings
- LF
- Headings in Scripture hash
- No
- Translator notes in Scripture hash
- No
- Cross-references in Scripture hash
- No
- Verse numbers in canonical serialisation
- Yes
- Empty critical-text slots
- Preserved
4d4b312e8e24691f749584c77e75c6a5070056144add3adde8f727a1cfa212c8Reproduce it yourself
python3 verify/verify.py --release 2026-09-06
The verification package contains the acquisition, normalisation, hashing, witness and publishing code. A checkout at the pipeline commit recorded in the manifest should finish with MATCHES PUBLISHED MANIFEST, or identify the exact chapter-level hashes that differ.