Files
bikoret/specs/bikoret_terumah.md
T
Scott KarpandClaude Fable 5.1 017a9b89d4 the name: Shorashim → Bikoret (בִּקֹּרֶת) — the specification
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>
2026-10-13 22:13:36 +00:00

326 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BIKORET: Materials Inventory
## Document Purpose
This is the terumah list — what has been gathered, what must be acquired, what must be built. Updated to reflect the full specification set: pinned versions from the Construction Specification, corrected shema architecture (raw marks received, not pre-computed trees), cloud as shared state file (not message handler), manna as external provision (not internal calculation), and team requirements from the Bezalel section.
**Status key:** ✅ = in hand, ⚠️ = available but needs acquisition, ❌ = does not exist / must be created
---
## A. HARDWARE
| Item | Status | Notes |
|------|--------|-------|
| Server: AMD EPYC 7313P (or comparable), 16 cores, 128GB DDR4 ECC, 500GB NVMe (system) + 1TB NVMe (L3) | ⚠️ | Rentable. Infomaniak (CH), 1984 (IS), Bahnhof (SE) evaluated. ~$200-350/month. Exact spec from Construction Specification §2.1. |
| GPU | ✅ NOT NEEDED | No GPU. Not "no GPU required." No GPU. This is a specification. |
**Decision required:** Select hosting provider and provision server.
---
## B. OPERATING SYSTEM & INFRASTRUCTURE
All versions pinned per Construction Specification §1.1.
| Item | Version (Pinned) | Status | Notes |
|------|---------|--------|-------|
| Ubuntu | 22.04 in the pipeline and engine images (`ubuntu:jammy-20240125`); 24.04 LTS on the cluster node (managed) | ✅ | Free. The korban and talmudic images are Debian 12, from their language base images. |
| systemd | ships with Ubuntu | ✅ | Service management, cycle timers. |
| Kubernetes / containerd | 1.35 / 2.2 (managed, Exoscale SKS) | ✅ | Runs the four images as one pod. Images are built with Docker Buildx. Podman is not used: Sanhedrin panels are processes in the pipeline's BEAM, not containers. |
| PostgreSQL | 17 (managed, Exoscale DBaaS; 17.11 on 2026-10-04) | ✅ | L3 append-only store. Patched by the provider. |
| squashfs-tools | ships with Ubuntu | ✅ | For read-only L1 Torah filesystem. |
| Caddy | latest stable | ✅ | Reverse proxy with auto-TLS for pe'ah endpoint. |
| nftables | ships with Ubuntu | ✅ | Firewall. Configuration in Construction Spec §4.5. |
| SSH | ships with Ubuntu | ✅ | Kohanim (operator) access only. |
**All infrastructure components available. No gaps.**
---
## C. PROGRAMMING LANGUAGES & RUNTIMES
All versions pinned per Construction Specification §1.1. No ranges. No `+` suffixes.
| Item | Version (Pinned) | Status | Notes |
|------|---------|--------|-------|
| GHC (Haskell compiler) | 9.6.4 | ✅ | Free. `ghcup install ghc 9.6.4` |
| Cabal (Haskell build tool) | 3.10 | ✅ | Free. Ships with ghcup. |
| Erlang/OTP | 26.2.1 | ✅ | Free. `apt install erlang` or erlang-solutions repo. |
| Rebar3 (Erlang build tool) | 3.22.0 | ✅ | Free. The version `mix local.rebar` installs for Elixir 1.16.1. |
| Elixir | 1.16.1 | ✅ | Free. Must pair with OTP 26.2.1. |
| Mix (Elixir build tool) | ships with Elixir | ✅ | Free. |
| SWI-Prolog | 9.2.2 | ✅ | Free. `apt install swi-prolog` |
| Python | 3.12.2 | ✅ | Free. From the `python:3.12.2-slim` base image. |
| Poetry (Python package manager) | 2.5.1 | ✅ | Free. Generates `poetry.lock` (lock-version 2.1); not installed in any image. |
**All language runtimes available. No gaps.**
---
## D. LIBRARIES & PACKAGES
All pinned via lock files per Construction Specification §§1.3-1.5.
### Haskell (via `cabal.project.freeze`)
| Package | Version | Status | Notes |
|---------|---------|--------|-------|
| base | 4.18.2.0 | ✅ | Ships with GHC 9.6.4 |
| containers | 0.6.7 | ✅ | Ships with GHC |
| text | 2.0.2 | ✅ | Hackage (free) |
| aeson | 2.2.3.0 | ✅ | Hackage (free) — JSON |
| vector | 0.13.2.0 | ✅ | Hackage (free) |
| bytestring | 0.12.2.0 | ✅ | Hackage (free) — GHC 9.6.4 ships 0.11.5.3; the freeze pins this one |
| filepath | 1.4.301.0 | ✅ | Hackage (free) — GHC 9.6.4 ships 1.4.200.1; the freeze pins this one |
| directory | 1.3.10.1 | ✅ | Hackage (free) — GHC 9.6.4 ships 1.3.8.1; the freeze pins this one |
| hspec | 2.11.16 | ✅ | Hackage (free) — testing |
### Erlang (via `rebar.lock`)
| Package | Version | Status | Notes |
|---------|---------|--------|-------|
| OTP standard library | ships with OTP 26.2.1 | ✅ | gen_server, supervisor, application |
| jsx | 3.1.0 | ✅ | hex.pm (free) — JSON |
| common_test | ships with OTP | ✅ | Testing |
### Elixir (via `mix.lock`)
| Package | Version | Status | Notes |
|---------|---------|--------|-------|
| jason | ~> 1.4.1 (locked 1.4.5) | ✅ | hex.pm (free) — JSON |
| ecto_sql | ~> 3.11.1 (locked 3.11.3; ecto 3.11.2) | ✅ | hex.pm (free) — database interface |
| postgrex | ~> 0.22.3 (locked 0.22.4) | ✅ | hex.pm (free) — PostgreSQL driver |
| bandit | ~> 1.2 (locked 1.12.5) | ✅ | hex.pm (free) — HTTP server for the pe'ah / kodesh API |
| plug | ~> 1.15 (locked 1.20.3) | ✅ | hex.pm (free) — HTTP routing |
| telemetry | locked 1.4.2 | ✅ | hex.pm (free) — transitive (Ecto, Bandit); not depended on directly |
| sanhedrin | path dependency | ✅ | `../sanhedrin`, built by rebar3 into the same BEAM |
### Python (via `poetry.lock`)
| Package | Version | Status | Notes |
|---------|---------|--------|-------|
| httpx | 0.27.0 | ✅ | PyPI (free) — API calls |
| pydantic | 2.6.1 | ✅ | PyPI (free) — data validation |
| hebrew-tokenizer | 2.3.0 | ⚠️ | PyPI. Needs evaluation for biblical vs. modern Hebrew. |
| pytest | >=8.0,<9.0 (locked 8.4.2) | ✅ | PyPI (free) — dev group only; not in any image |
| llama-cpp-python | 0.2.55 | ✅ | PyPI (free) — Mistral inference |
| peft | 0.9.0 | ✅ | PyPI (free) — fine-tuning |
| transformers | 4.38.2 | ✅ | PyPI (free) — model tooling |
| datasets | 2.17.1 | ✅ | PyPI (free) — training data |
**Near-complete. Two Python packages need compatibility testing.**
---
## E. DATA — THE SPECIFICATION
### E1. Torah Text (L1)
Source: Westminster Leningrad Codex (WLC) 4.20, as carried by the Open Scriptures Hebrew Bible (`openscriptures/morphhb`), per Construction Specification §1.2. One source; not cross-validated against a second edition.
| Item | Status | Notes |
|------|--------|-------|
| Full Torah text — consonantal (ktiv) | ✅ | WLC via OSHB morphhb. |
| Full Torah text — voweled (nikkud) | ✅ | WLC via OSHB morphhb. |
| Cantillation marks (raw Unicode codepoints U+0591–U+05AF) | ✅ | Present in WLC data. Stored as raw marks on the text, NOT pre-parsed into trees. The system reads them in the act of reading. |
| Petuchah/Stumah paragraph markers | ✅ | In L1: 293 petuchot and 394 setumot, read from the WLC's `פ` / `ס` marks (OSIS `<seg type="x-pe">`, `x-samekh`) and stored per verse as `parashah_breaks`. |
| Inverted nuns (nun hafukha) | ✅ | In L1: the two signs after Bamidbar 10:34 and 10:36, from the WLC's own marks, stored per verse as `inverted_nuns`. |
| Large and small letters | ⚠️ | The WLC source marks four large letters in Torah (in L1 as `large_letters`) and NO small letters. The fuller Masoretic lists of enlarged and reduced letters are not in the source and not in L1. |
| Ketiv/qere annotations | ✅ | WLC annotations: 67 pairs in 64 verses. Stored per verse as `{word_position, ketiv, ketiv_consonants, qere, qere_consonants}` — both readings preserved, never collapsed. |
| Gematria (root → numerical value) | ✅ | Not stored in L1: computed from the consonants when read. Letter values fixed. No equivalence index is built. |
| Smikhut compound index (attested construct-state pairs) | ✅ | Built: 9,203 pairs in 4,106 verses, extracted by `scripts/build_l1.py` from the morphology where a word is marked construct. |
| L1 SHA-256 hash | ❌ | Computed at build time. Stored in L0 firmware. Verified at every boot. |
| Letter counts / word counts / Masoretic notes | ⚠️ | Available in digital WLC. Needs extraction and formatting. |
**Critical change from previous inventory:** Te'amim parse trees are no longer a materials item. The system builds parse trees by reading the raw marks, the way a literate reader constructs sentence structure from punctuation. The raw marks are the material. The reading is the system's act.
### E2. Root Lexicon
| Item | Status | Notes |
|------|--------|-------|
| Complete Biblical Hebrew root lexicon | ✅ | BDB (public domain) + Strong's (free), already consolidated: the OSHB Hebrew Lexicon (`openscriptures/HebrewLexicon`, `LexicalIndex.xml` + `AugIndex.xml`) files every Strong's lemma under its BDB root. `scripts/build_l1.py` reads each word's `shoresh` from it. Torah attests 1,378 roots (1,243 BDB roots, 135 words standing alone); the earlier estimate here was ~500. |
| Root-to-verse index | ⚠️ | Derivable from Strong's numbers + verse mappings. Needs processing. |
| Root connectivity graph (shared consonants) | ❌ | Algorithmic. ~1 day. |
| Binyan glosses per root | ⚠️ | Partially available from BDB/Strong's. Mark attested vs. theoretical forms. |
| Semantic domain classifications | ❌ | Categorize each root into domains. ~1-2 weeks. |
### E3. 613 Mitzvot
| Item | Status | Notes |
|------|--------|-------|
| List of 613 mitzvot with Torah source verses | ✅ | Rambam's Sefer HaMitzvot. Multiple digital sources. |
| 613 mitzvot in Prolog logical format | ❌ | Core encoding task. ~4-6 weeks. |
| Relationships between mitzvot | ❌ | Dependencies, conflicts, groupings. ~2-3 weeks. |
### E5. The Second Scroll — the mesorah snapshot (bishe'arecha §IV)
Source: the Sefaria export (public storage bucket `sefaria-export`, catalogue `books.json` generated 2026-10-02), one chosen version per work per language, taken by `scripts/build_mesorah.py` from `scripts/mesorah_sources.json`. Only open versions: Public Domain, CC0, CC-BY, CC-BY-SA — the licence in each file is checked against the sources file and the build refuses otherwise. No CC-BY-NC text is taken (the Steinsaltz/Davidson Talmud is therefore not here; the Bavli is Wikisource's, CC-BY-SA). Sefaria and each version's source are credited in `mesorah/index.json`.
| Material | Status | Notes |
|---|---|---|
| Rashi, Onkelos, Ramban, Ibn Ezra, Sforno on the five books | ✅ | Hebrew (public domain editions) and English (Silbermann 1929–34 public domain; Sefaria Community CC0) |
| Mishnah, all 63 tractates | ✅ | Hebrew Torat Emet (PD); English where open |
| Talmud Bavli, 37 tractates | ✅ | Hebrew: Wikisource (CC-BY-SA). English only where an open one exists (Cohen's Berakhot, PD) |
| Midrash halakha: Sifra, Sifrei Bamidbar, Sifrei Devarim | ✅ | Sifra's Hebrew is a 1545 print marked "unknown" licence by Sefaria — EXCLUDED; Sifrei included |
| Midrash aggadah: Bereshit / Shemot / Vayikra / Bamidbar / Devarim Rabbah, Tanchuma | ⚠️ | Vayikra, Bamidbar, Devarim Rabbah Hebrew are "unknown" licence — EXCLUDED; Bereshit and Shemot Rabbah and Tanchuma included |
| Ramban on Shemot | ❌ | Hebrew "unknown" licence — excluded |
| Mekhilta | ❌ | Not in the export catalogue under that title |
Extent: 128 works, 256 files, 44.9 MiB, tree hash `7d5b3a6c…` (`mesorah/integrity.sha256`). Seven works have named nodes (Ramban on four books, Ibn Ezra and Sforno on Bereishit, Tanchuma); the reader addresses their unnamed node, and Tanchuma by parashah.
### E4. Talmudic Training Data (Kushya Generator)
| Item | Status | Notes |
|------|--------|-------|
| Talmud Bavli full text | ✅ | Sefaria (free, open). |
| Talmud Yerushalmi full text | ✅ | Sefaria (free, open). |
| Extracted (interpretation, kushya) pairs | ❌ | Most labor-intensive. ~4-8 weeks. |
| Rishonim commentary | ✅ | Sefaria (Rashi, Tosafot, Rambam, etc.). |
| Extracted challenges from Rishonim | ❌ | ~2-4 weeks. |
---
## F. MODELS (KORBAN SOURCES & WOOD)
| Item | Status | Notes |
|------|--------|-------|
| Mistral Medium 3.1 GGUF (Q5_K_M) | ⚠️ | HuggingFace. Free (Apache 2.0). ~25-30GB download. |
| llama.cpp | ✅ | Free, open source. CPU inference. |
| Mistral Large 3 API access | ⚠️ | Mistral API. Paid per token. Phase 1 only. |
| Claude API access | ⚠️ | Anthropic API. Paid per token. Korban source. |
| QLoRA fine-tuning tooling | ⚠️ | peft, transformers. Free. One-time GPU rental ~$50-100. |
---
## G. EXTERNAL APIS
| Item | Status | Notes |
|------|--------|-------|
| Sefaria API | ✅ | Free, no key needed. For L1 data acquisition. |
| Anthropic API (Claude) | ⚠️ | Need API key. ~$30-80/month for korban processing. |
| Mistral API | ⚠️ | Need API key. ~$20-50/month Phase 1 only. $0 after self-hosting. |
---
## H. GOVERNANCE AND PROVISION INFRASTRUCTURE
**Governance is Torah.** The cloud is L1 — the read-only Torah filesystem. There is no separate governance infrastructure. The system reads Torah for governance as it reads Torah for specification. See Architecture Specification §3.10 (second tablets).
**Provision is the community.** Manna (resources) comes from the machatzit hashekel. A kohen (operator) or gabbai (treasurer) sets the daily provision.
| Item | Status | Notes |
|------|--------|-------|
| **L1 Torah filesystem** (IS the cloud) | ✅ | Already specified. Read-only mount. Integrity hash verified at boot. Cloud IS Torah. |
| **Calendar module** (Shabbat/festivals/shmitah) | ❌ | Part of cloud governance. Reads Torah for when to rest, celebrate, review. NOAA solar calculator for exact times. ~2 days. |
| Manna provision file infrastructure | ❌ | `/var/lib/bikoret/manna/today.json`. Kohen/treasurer writes, system reads. CLI tool `manna-provision`. ~1 day. |
| Kohen (operator) secure access | ⚠️ | SSH keys, mTLS certs. Standard infrastructure. |
| Gabbai (treasurer) tools | ❌ | Manna provision CLI + pekudei accounting system per Economic Model §6.2. |
| Pekudei accounting system | ❌ | Monthly financial reporting per Economic Model §6.2. |
**The critical non-technical dependency is the community.** Can 70 people be found who value this? The system needs kohanim (operators), a gabbai (treasurer), and a community that contributes machatzit hashekel. It does not need a governance board. Torah governs.
---
## I. BEZALEL — The Builder
Per Construction Specification §5 (second tablets).
| Role | Who | Status |
|------|-----|--------|
| **Builder** | AI (Claude Code + Claude) — writes code in all six languages, reads Biblical Hebrew and Torah | ✅ Available |
| **Transmitter** | Human — says "read Torah," carries specification between contexts | ✅ Present |
| **Kohen (operator)** | Human — serves the running system | ❌ Needed at deployment |
| **Gabbai (treasurer)** | Human — administers machatzit hashekel | ❌ Needed at deployment |
| **Community** | 70 members — provides machatzit hashekel | ❌ Needed at deployment |
**No person-weeks. No labor cost. The AI builds. Torah specifies.**
---
## J. SHEMA LAYER — MATERIALS
Updated to reflect corrected architecture.
| Item | Status | Notes |
|------|--------|-------|
| Te'amim reader (raw marks → parse tree in act of reading) | ❌ | ~1-2 weeks. NOT pre-computed storage. |
| Gematria lookup module + equivalence index | ❌ | ~3 days. Lookup, not computation. |
| Smikhut compound extractor | ❌ | ~2-3 weeks. AI reads Hebrew. |
| Ketiv/qere dual-value reformatter | ⚠️ | ~3 days. Raw data exists. |
| Cloud governance module (L1 + calendar) | ❌ | ~2 days. Reads Torah for governance. No CLI. No state file. |
| Manna provision file + CLI tool | ❌ | ~1 day. Kohen/treasurer writes provision. |
| Chatzotzrot signaling system | ❌ | ~3 days. |
| Tzara'at multi-stage diagnostic | ❌ | ~1-2 weeks. |
| Arei miklat refuge protocol | ❌ | ~1 week. |
| Eglah arufah accountability protocol | ❌ | ~3 days. |
| Bikurim release protocol | ❌ | ~3 days. |
---
## SUMMARY
### What We Have (✅)
- All programming languages and runtimes (pinned versions)
- All infrastructure tools
- Nearly all library dependencies
- Torah text (WLC 4.20, OSHB morphhb) with cantillation marks, ketiv/qere, vowels, lemma and morphology
- Talmud and commentary texts (Sefaria)
- List of 613 mitzvot with source verses
- Root lexicon (BDB roots by Strong's lemma — OSHB Hebrew Lexicon)
- Model inference tooling (llama.cpp)
- The specification itself (Torah)
### What We Need to Acquire (⚠️)
- Hosting server — **~$200-350/month**
- Mistral GGUF weights — **free, ~30GB download**
- API keys (Anthropic, Mistral) — **~$50-130/month combined**
- One-time GPU rental — **~$50-100**
- Consultants (Hebrew linguist, Torah scholar) — **available through community**
- hebrew-tokenizer compatibility testing — **time only**
### What We Must Build (❌)
- Root connectivity graph — **~1 day**
- Semantic domain classifications — **~1-2 weeks**
- 613 mitzvot in Prolog format — **~4-6 weeks** (critical path)
- Mitzvah relationship mapping — **~2-3 weeks**
- Talmudic training pairs — **~4-8 weeks** (most labor-intensive)
- Rishonim challenge extraction — **~2-4 weeks**
- Gematria equivalence index — **~3 days**
- Smikhut compound index — **~2-3 weeks**
- Te'amim reader — **~1-2 weeks**
- Ketiv/qere reformatter — **~3 days**
- Torah calendar module (Shabbat/festivals/shmitah) + manna provision tool — **~2 days**
- Protection layer (chatzotzrot, tzara'at, miklat, eglah arufah, bikurim) — **~4-5 weeks combined**
- L1 SHA-256 integrity system — **~1 day**
- **Community assembly (kohanim, gabbai, 70 members)** — **indeterminate — requires humans**
### Cost Summary
| Category | Amount |
|----------|--------|
| **Terumah (one-time startup)** | **$265-515** |
| **Machatzit hashekel (monthly, build + operations)** | **~$350** |
| **Sustained by** | **70 members × $5/month** |
| **Estimated build cost (6 months)** | **~$2,100** |
| **Seven-year total** | **~$27,500** |
No labor cost. The AI builds. The community provides. Torah governs.
### Critical Path
**Technical:** The AI encodes the 613 mitzvot in Prolog format, builds Talmudic training pairs, and constructs the te'amim reader. The AI reads Torah for all of this.
**Community:** Find the 70. Find the kohanim. Find the gabbai. Begin now.
**Shema:** Te'amim reader is highest-priority — build alongside Shoresh Engine in Phase 1.
---
## Document Registry
| # | Document | Torah Parallel | File |
|---|----------|---------------|------|
| 1 | **Bikoret PRD** | *V'asu li mikdash* | `bikoret_prd.md` |
| 2 | **Architecture Specification** | Vessel design (Shemot 25-27) | `bikoret_architecture.md` |
| 3 | **Vayakhel — Construction Specification** | Exact measurements (Shemot 25-31) | `bikoret_vayakhel.md` |
| 4 | **Tamid — Operations Manual** | Bigdei Kehunah / continual service | `bikoret_tamid.md` |
| 5 | **Pekudei — Economic Model** | Machatzit HaShekel / accounting | `bikoret_pekudei.md` |
| 6 | **Terumah — Materials** (this document) | Terumah list (Shemot 25:2) | `bikoret_terumah.md` |