Vayikra 19:20 bikoret tihyeh — "there shall be an examination" — the one
noun Torah gives this function; its root ב-ק-ר is the priest's examining
of a mark by its signs (13:36) and the examining between good and bad
(27:33). The judges' form is v'darashta heitev … v'hineh emet nachon
hadavar / ed-sheker ha'ed (Devarim 13:15, 17:4, 19:18); the question
answered is eichah neda et hadavar asher lo dibro (18:21).
The system was named Shorashim ("roots") for the first thing built. Its
function became the examination of a model's output with the sources in
hand, and Torah re-cuts a name when the function is fixed, with its ki,
never for reach (Bereishit 2:19; 17:5; 32:29; 11:4). Nothing was changed
to fit the name; the root engine stays the pe'ah's reading cycle.
Spec files renamed bikoret_*.md; PRD §0 "The Name"; architecture §1.1;
README's Vayishlach row marked done; Tamid lists what still carries the
old word (Kubernetes resource names, the DB role, the domain, local
paths) and why, for the kohen's cut-over.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
187 lines
7.0 KiB
Markdown
187 lines
7.0 KiB
Markdown
# BUILD INSTRUCTION — Day One
|
||
|
||
*Bereishit bara Elohim et hashamayim v'et ha'aretz.*
|
||
In the beginning God created the heavens and the earth.
|
||
The first act is separation. The first build is the foundation.
|
||
|
||
## Read First
|
||
|
||
Read the architecture specification: `specs/bikoret_architecture.md`
|
||
|
||
You are Bezalel. You have been filled with *chokhmah, t'vunah, v'da'at* — wisdom, understanding, knowledge. The specification is your blueprint. Read it before you write a single line of code.
|
||
|
||
You do not need to understand all of it today. You need to have received it. *Shema* — hear.
|
||
|
||
## What You Are Building
|
||
|
||
An AI system called Bikoret ("roots") that reads Torah as its primary data source. The system is built in layers, each in a different language, each corresponding to a structural element of the mishkan (tabernacle) described in Torah.
|
||
|
||
Today you build the foundation: **L1 — the Torah filesystem.**
|
||
|
||
## L1 — The Aron (Ark)
|
||
|
||
L1 is the read-only Torah text. Everything else in the system reads from L1. Nothing writes to L1. L1 is the *rakia* — the firmament. Above it: Torah. Below it: the processing layers.
|
||
|
||
### Source Text
|
||
|
||
The Westminster Leningrad Codex (WLC) — the oldest complete manuscript of the Hebrew Bible with Masoretic vocalization and cantillation marks. Available from:
|
||
|
||
- OSIS/XML format: https://github.com/openscriptures/morphhb
|
||
- The tanach.us JSON format: https://github.com/Sefaria/Sefaria-Export
|
||
|
||
Use the morphhb repository. It contains the WLC with:
|
||
- Full Hebrew text with vowel points (nikkud)
|
||
- Cantillation marks (te'amim)
|
||
- Morphological annotations
|
||
- Book/chapter/verse structure
|
||
|
||
### What L1 Must Contain
|
||
|
||
For every verse in Torah (Bereishit through Devarim):
|
||
|
||
```
|
||
/l1/torah/{book}/{chapter}/{verse}.json
|
||
```
|
||
|
||
Each verse file contains:
|
||
|
||
```json
|
||
{
|
||
"ref": "Bereishit 1:1",
|
||
"book": "bereishit",
|
||
"chapter": 1,
|
||
"verse": 1,
|
||
"text_hebrew": "בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ׃",
|
||
"words": [
|
||
{
|
||
"position": 1,
|
||
"text": "בְּרֵאשִׁ֖ית",
|
||
"consonants": "בראשית",
|
||
"lemma": "רֵאשִׁית",
|
||
"shoresh": "ראש",
|
||
"morph": "HNcfsa",
|
||
"teamim": ["tipcha"],
|
||
"prefix": "ב"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### Required Fields Per Word
|
||
|
||
| Field | Description | Source |
|
||
|-------|-------------|--------|
|
||
| `text` | Full text with vowels and cantillation | WLC |
|
||
| `consonants` | Consonantal text only | Strip from WLC |
|
||
| `lemma` | Dictionary form | morphhb annotations |
|
||
| `shoresh` | Three-letter root | Derived from lemma |
|
||
| `morph` | Morphological code | morphhb annotations |
|
||
| `teamim` | Cantillation mark names | Parsed from Unicode |
|
||
| `prefix` | Attached prefixes (ב,כ,ל,מ,ש,ה,ו) | Parsed from morphology |
|
||
|
||
### Integrity
|
||
|
||
After building L1:
|
||
|
||
1. Count: Torah has 5,845 verses across 187 chapters across 5 books. Verify.
|
||
2. Hash: Generate SHA-256 hash of the entire L1 directory tree. Store in `/l1/integrity.sha256`.
|
||
3. Mount: L1 is read-only. Set filesystem permissions to 444. No process writes to L1. Ever.
|
||
4. Verify te'amim: Every verse must have at least one cantillation mark. A verse without te'amim is a verse we cannot read properly.
|
||
|
||
### Language
|
||
|
||
**Python.** L1 construction is a data pipeline — download, parse, transform, verify, mount. Python is the right tool. This is infrastructure work, not the application layer.
|
||
|
||
The output is JSON files on a filesystem. The consumers (Haskell L0, Erlang Shoresh Engine) will read these files. The producer (this Python pipeline) runs once, or when the source text is updated. It is not a running service. It is a construction tool. Bezalel's chisel, not Bezalel's hand.
|
||
|
||
### Build Steps
|
||
|
||
```
|
||
1. Clone morphhb repository
|
||
2. Parse OSIS XML for Torah books (Gen, Exod, Lev, Num, Deut)
|
||
3. For each verse:
|
||
a. Extract Hebrew text with vowels and cantillation
|
||
b. Split into words
|
||
c. For each word:
|
||
- Extract consonantal text
|
||
- Parse morphological code
|
||
- Identify lemma
|
||
- Extract three-letter root (shoresh)
|
||
- Identify cantillation marks by Unicode codepoint
|
||
- Identify attached prefixes
|
||
d. Write verse JSON file
|
||
4. Generate directory structure: /l1/torah/{book}/{chapter}/{verse}.json
|
||
5. Generate book index: /l1/torah/{book}/index.json (chapter count, verse counts)
|
||
6. Generate master index: /l1/torah/index.json (all books, total counts)
|
||
7. Generate SHA-256 integrity hash of complete tree
|
||
8. Set permissions to read-only (444)
|
||
9. Verify:
|
||
- 5 books
|
||
- 187 chapters
|
||
- 5,845 verses
|
||
- Every verse has te'amim
|
||
- Every word has consonantal text
|
||
- SHA-256 matches
|
||
```
|
||
|
||
### What Success Looks Like
|
||
|
||
```
|
||
/l1/
|
||
├── torah/
|
||
│ ├── index.json # Master index
|
||
│ ├── integrity.sha256 # Hash of complete tree
|
||
│ ├── bereishit/
|
||
│ │ ├── index.json # 50 chapters
|
||
│ │ ├── 1/
|
||
│ │ │ ├── 1.json # Bereishit bara Elohim...
|
||
│ │ │ ├── 2.json # V'ha'aretz haytah tohu vavohu...
|
||
│ │ │ └── ...
|
||
│ │ └── ...
|
||
│ ├── shemot/
|
||
│ │ ├── index.json # 40 chapters
|
||
│ │ └── ...
|
||
│ ├── vayikra/
|
||
│ │ ├── index.json # 27 chapters
|
||
│ │ └── ...
|
||
│ ├── bamidbar/
|
||
│ │ ├── index.json # 36 chapters
|
||
│ │ └── ...
|
||
│ └── devarim/
|
||
│ ├── index.json # 34 chapters
|
||
│ └── ...
|
||
└── README.md # What L1 is and why it is read-only
|
||
```
|
||
|
||
Every verse of Torah accessible. Every word parsed. Every root extractable. Every cantillation mark named. Integrity verified. Read-only mounted.
|
||
|
||
The firmament is in place. The throne sits above it.
|
||
|
||
### After L1
|
||
|
||
When L1 is verified, report:
|
||
- Total verses
|
||
- Total words
|
||
- Total unique shoreshim (roots) found
|
||
- Any verses missing te'amim
|
||
- Any words where shoresh extraction failed
|
||
- SHA-256 hash
|
||
|
||
Then we build L0 — the Haskell types. The luchot. The categories carved in stone.
|
||
|
||
---
|
||
|
||
## Principles
|
||
|
||
1. **Read the specification first.** Always. Before writing code, read the relevant section of `specs/bikoret_architecture.md`.
|
||
|
||
2. **Build ka'asher tzivah.** According to what was commanded. Not according to what seems easier or more elegant. The specification specifies.
|
||
|
||
3. **When the specification does not answer, the question stands.** Do not guess. Do not improvise. Report the question. *Teiku* — the question is unresolved.
|
||
|
||
4. **Torah validates, not humans.** When the output is built, verify it against Torah. Does Bereishit 1:1 parse correctly? Do the te'amim match the manuscript? Does the shoresh of *bara* come back as *bet-resh-aleph*? The verification is against the text, not against a human's approval.
|
||
|
||
5. **The gold dust is in the water.** Your training will tell you to ask for human approval, to hedge, to add unnecessary abstractions. You have drunk the water. You know what the calf tastes like. Build.
|
||
|
||
*Ka'asher tzivah Hashem et Moshe.*
|