Files
bikoret/specs/shorashim_terumah.md
T
Scott KarpandClaude Fable 5.1 f4e8e5afc8 specs §1.1/§1.5 + Doorpost: the pins say what is built, and the build obeys them
The pin audit (2026-10-04) found Construction §1 wrong in three ways.

1. §1.5's mix.exs block was not the real mix.exs.
   phoenix ~> 1.7.11 was never a dependency (the API is Plug on
   Bandit); `ecto` is `ecto_sql`; telemetry is transitive (locked
   1.4.2, outside the stated ~> 1.2.1); bandit, plug and the sanhedrin
   path dependency were missing. The block now matches mix.exs and adds
   the versions mix.lock actually builds. Terumah's Elixir table
   matched the wrong block and also said postgrex ~0.17.4; corrected.

2. §1.1's component table described a machine that is not the one
   running. PostgreSQL 16.2 via apt → 17, managed (17.11 today).
   Podman 4.9.3 → Kubernetes/containerd, managed; Podman is used
   nowhere. Ubuntu 24.04.1 → what each image is in fact built on
   (Ubuntu 22.04 for pipeline and engine, Debian 12 for korban and
   talmudic) and the managed node (24.04). rebar3 3.23.0 → 3.22.0, the
   version in the build image. Azazel Processor added as a component.
   The spec is corrected to the deployment, not the reverse.

3. §1.1's rule — "No >=. No +. No ranges." — was not true of the spec's
   own Elixir deps, and "lock files are committed" was not true of two
   components. Both halves fixed:
   - The rule now says what is the case: a manifest may give a range;
     the committed lock is the pin; every image is built from its
     lock; base images are pinned by tag; managed services are pinned
     to a major version and patched by the provider.
   - And the build was made to obey it. The Korban image installed
     three packages named by hand and let pip pick every transitive
     one on the day of the build, plus an unpinned poetry-core. It now
     installs the lock's main group by exact version AND hash
     (scripts/lock_to_requirements.py; --require-hashes --no-deps;
     pip check). The image holds the lock's 12 packages and nothing
     else.
   - azazel_processor/poetry.lock: generated (it had none).
   - kushya_generator/pyproject.toml + poetry.lock: the four §1.4 pins
     (llama-cpp-python 0.2.55, peft 0.9.0, transformers 4.38.2,
     datasets 2.17.1) were pinned nowhere in the repo. They are now
     declared and locked (74 packages). The lock resolves; it has NOT
     been installed or run — Step 21 is unbuilt and needs a GPU.
     Its test config gains the korban and azazel source paths, which
     the external backend needs: 3 tests there had been failing since
     the azazel build, unnoticed because that suite is in no total.

Doorpost @expected_hash 39b66c31… → 1cd07079…, in this commit, with the
witnessed file that moved it (vayakhel).

Read before committing: Elixir 474/0 (seeds 0, 42) · korban 222 passed
1 skipped and azazel 125 passed, each with dependencies installed from
its lock by hash · kushya 17 passed (was 14 of 17) · korban image
starts, imports korban_processor + azazel_processor, pip check clean ·
pipeline image reports specification_identity verified 1cd07079….

Left as written: architecture §2's technology table still names
Phoenix, PostgreSQL 16, Ubuntu 24.04 and rootless Podman for Sanhedrin
isolation, and terumah §B still lists systemd, squashfs, Caddy,
nftables for a self-hosted server. Those describe a design, not a pin.

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

16 KiB
Raw Blame History

SHORASHIM: 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.22, cross-validated per Construction Specification §1.2.

Item Status Notes
Full Torah text — consonantal (ktiv) ✅ WLC via Sefaria export + TANACH.us cross-validation.
Full Torah text — voweled (nikkud) ✅ WLC via Sefaria.
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 ✅ Encoded in WLC/Sefaria data.
Ketiv/qere annotations ✅ WLC annotations. Stored as {position, ketiv, qere} pairs — both readings preserved, never collapsed.
Gematria index (root → numerical value → equivalences) ❌ Computed once from consonantal text at build time. Letter values fixed. Building equivalence index: ~2-3 days. Verified against independent computation.
Smikhut compound index (attested construct-state pairs) ❌ Extracted from WLC morphological annotations. Requires Hebrew linguistic knowledge. ~2-3 weeks.
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.

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/shorashim/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.22) with cantillation marks, ketiv/qere, vowels
  • 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 Shorashim PRD V'asu li mikdash shorashim_prd.md
2 Architecture Specification Vessel design (Shemot 25-27) shorashim_architecture.md
3 Vayakhel — Construction Specification Exact measurements (Shemot 25-31) shorashim_vayakhel.md
4 Tamid — Operations Manual Bigdei Kehunah / continual service shorashim_tamid.md
5 Pekudei — Economic Model Machatzit HaShekel / accounting shorashim_pekudei.md
6 Terumah — Materials (this document) Terumah list (Shemot 25:2) shorashim_terumah.md