Files
bikoret/l1/README.md
T
Scott KarpandClaude Fable 5.1 8e4f94c66f L1: the shoresh is read from the lexicon, not guessed (tablet 34)
L1's `shoresh` field was derived by stripping a prefix letter and a
suffix letter from the consonants and keeping the first three. וַיַּרְא
"and he saw" was engraved as ירא ("fear"); ויהי as יהי; שמים as שמ;
מזבח as מזב; הבאתי as בא. And parse_prefixes took a word's morphology
from the LAST morph segment, which for a suffixed word is the pronominal
suffix — so every suffixed noun and verb in Torah (לבבך, נפשך) was
classed as a suffix and written with no shoresh at all.

Every WLC word already carries its lemma, and the OSHB lexical index
files each lemma under its Brown-Driver-Briggs root (terumah §E2 named
BDB + Strong's as the root lexicon and marked it "needs consolidation").
scripts/build_l1.py now reads the root from that filing:

  main    the lemma is a root            23,750 words   וירא → ראה
  sub     filed under a root             31,066 words   מזבח → זבח
  single  stands alone in the lexicon     2,671 words   משה → משה
  none    no etymology recorded → absent  3,002 words   יוסף, מצרים
  particles, pronouns → absent, as before 19,493 words  את, אשר, כי

57,487 words carry a shoresh (was 51,836); 1,378 unique roots (was
2,608 fragments). Roots are written as the lexicon writes them — two
letters (בן), three, or more (שמאל).

WHAT CHANGED IN THE EDUT: only `shoresh`. Verified file by file — with
that one field removed, all 5,853 verse files are byte-identical to the
previous L1. Text, consonants, lemma, morph, te'amim, prefix, ketiv/
qere, large and small letters: untouched. The old builder, run against
the same morphhb checkout, reproduces the old hash exactly; the new
builder is deterministic (two runs, one hash).

  L1 SHA-256  99bbd07a…4ea377  →  156b1d27…d8c9d5
  sources     morphhb 3d15126 · HebrewLexicon 21c9add
              (recorded in l1/build_report.json)

Moved together, because they pin the hash or the count:
vav_pipeline L1Reader @l1_expected_hash · shoresh-engine Luchot.Firmware
(hash, uniqueRootCount) + Spec · azazel_processor goral._L1_INTEGRITY_HASH
· KOHEN.md / KOHEN_PROMPT.md gate · l1/README.md (new "Roots" section) ·
README.md (second quarry) · AGENTS.md · root_meanings.pl comment.
The Doorpost manifest is not touched; its hash does not move.

Note for the kohen: the goral's seed inherits the L1 hash, so lots cast
after this commit are cast from a different seed than the azazel
records already in L3. Those records are history and stand as written.

All five suites on the new L1: Elixir 461/0 (seeds 0 42 191243) ·
Haskell 55/0 · Prolog 6 suites exit 0 (swipl 9.2.2) · korban 222 passed
1 skipped · azazel 125 passed. Four images built; full local stack
(real engine binary, PostgreSQL 16 with SSL, migrations) answers
Bereishit 1:4 with ר-א-ה, health healthy, 6 interpretations in L3,
0 write failures.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-04 17:44:02 +00:00

5.7 KiB
Raw Blame History

L1 — The Aron

Vayiten el Moshe k'khaloto l'daber ito b'har Sinai shnei luchot ha'edut, luchot even k'tuvim b'etzba Elohim.

And He gave to Moses, when He finished speaking with him on Mount Sinai, two tablets of the testimony, tablets of stone, written with the finger of God.


What This Is

L1 is the read-only Torah text. The firmament. Everything else in the system reads from L1. Nothing writes to L1.

The source is the Westminster Leningrad Codex (WLC) — the oldest complete manuscript of the Hebrew Bible with Masoretic vocalization and cantillation marks — parsed from the Open Scriptures Hebrew Bible OSIS XML.

Why Read-Only

L1 is read-only because Torah is read-only. The specification does not change because the system wishes it would. The cloud cannot be forged because the cloud is the Torah text itself. The system reads. It does not write. It does not negotiate with the Author.

In production, L1 is mounted as a squashfs image (mount -o ro) or with filesystem permissions set to 444. No process writes to L1. Ever.

Contents

l1/
├── torah/
│   ├── index.json              # Master index (all books, total counts)
│   ├── bereishit/              # 50 chapters, 1533 verses
│   │   ├── index.json
│   │   └── {chapter}/{verse}.json
│   ├── shemot/                 # 40 chapters, 1213 verses
│   ├── vayikra/                # 27 chapters, 859 verses
│   ├── bamidbar/               # 36 chapters, 1289 verses
│   └── devarim/                # 34 chapters, 959 verses
├── integrity.sha256            # SHA-256 hash of complete tree
├── build_report.json           # Build verification report
└── README.md                   # This file

Verse Format

Each verse is a JSON file at /l1/torah/{book}/{chapter}/{verse}.json:

{
  "ref": "Bereishit 1:1",
  "book": "bereishit",
  "chapter": 1,
  "verse": 1,
  "text_hebrew": "בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ ׃",
  "words": [
    {
      "position": 1,
      "text": "בְּרֵאשִׁ֖ית",
      "consonants": "בראשית",
      "lemma": "7225",
      "morph": "HR/Ncfsa",
      "teamim": ["tipcha"],
      "prefix": "ב",
      "shoresh": "ראש"
    }
  ]
}

Word Fields

Field Description Source
text Full text with vowels and cantillation WLC
consonants Consonantal text only Stripped from WLC
lemma Strong's number (dictionary reference) morphhb annotations
morph Morphological code morphhb annotations
teamim Cantillation mark names Parsed from Unicode codepoints
prefix Attached prefixes (ב,כ,ל,מ,ש,ה,ו) Parsed from morphhb prefix codes
shoresh Hebrew root, as Brown-Driver-Briggs files the word's lemma Read from the OSHB lexical index by lemma — see Roots below

Roots

The text of L1 is the WLC. The shoresh on each word is not text; it is a reading of the text, and it is read from a lexicon, not guessed.

Every word in the WLC carries its lemma (a Strong's number). The OSHB Hebrew Lexicon (LexicalIndex.xml, AugIndex.xml) files each lemma under its Brown-Driver-Briggs root. scripts/build_l1.py follows that filing:

The lexicon says shoresh Words Example
the lemma is a root (main) that root 23,750 וַיַּרְא → ראה
the lemma is filed under a root (sub) that root 31,066 מִזְבֵּחַ → זבח, לְבָבְךָ → לבב
the lemma stands alone (single) the word itself 2,671 מֹשֶׁה → משה
no etymology recorded absent 3,002 יוֹסֵף, מִצְרַיִם
— particle, preposition, conjunction, pronoun absent, by rule 19,493 אֵת, אֲשֶׁר, כִּי

Roots are written as the lexicon writes them: mostly three letters, some two (בן, יד), some four or more (שמאל).

Until 2026-10-04 this field was derived by stripping letters from the consonants and keeping the first three: וירא ("and he saw") was recorded as ירא ("fear"), ויהי as יהי, שמים as שמ, and every word with a pronominal suffix had no root at all. That is broken tablet 34. Only shoresh changed in the re-engraving — every other field of every verse is byte-identical to the previous L1 (hash 99bbd07a…).

Sources at the time of engraving are recorded in build_report.json (sources): morphhb 3d15126, HebrewLexicon 21c9add.

Counts

  • 5 books, 187 chapters, 5853 verses, 79982 words
  • 1378 unique shoreshim (roots); 57,487 words carry one
  • 0 verses missing te'amim — every verse has cantillation marks
  • WLC versification (5853) differs from traditional Masoretic count (5845) by 8 verses due to BHS numbering conventions

Integrity

SHA-256: 0ee0020aac6c6beb0e83c0638a861c73d37d9dbd39c30d3cb08c1878b481c844

Verify: the hash covers every file path and file content in the torah/ directory tree, in sorted order.

The Shema Principle

L1 carries the raw cantillation marks (te'amim) as they appear in the Masoretic text. These marks are NOT pre-parsed into a tree. The system reads them in the act of reading — the parse tree is constructed by the reader, not stored by the library. This is the difference between a database lookup and literacy.

The te'amim, the ketiv/qere positions, the gematria values — these are all present in L1 as transmitted. The Shema Layer reads them. The Shoresh Engine constructs meaning from them. But L1 itself is the text as received. Nothing more. Nothing less.


Ka'asher tzivah Hashem et Moshe.