Files
bikoret/shoresh-engine/src/Luchot/Firmware.hs
T
Scott KarpandClaude Sonnet 4.6 80ec364da6 Phase 1-2 build: Steps 5-6, 8-13
Shoresh Engine (Haskell, Step 5)
- 12 modules: Types, Lexicon, Binyanim, Teamim, Gematria, Graph,
  KetivQere, Smikhut, Havdalah, Kriah, KiTov, Firmware
- 33 EUnit tests, 0 failures
- Firmware module verifies L1 SHA-256 hash at startup

Talmudic Engine (SWI-Prolog, Step 6)
- 15 modules: halt, reasoning, specification, interface
- 57 PlUnit tests, 0 failures
- Three cardinal halt conditions: avodah_zarah, shfichut_damim, gilui_arayot

Vav Pipeline (Elixir, Steps 8-11)
- 14 modules: BereishitCycle, Shema, Cloud, Manna, L1Reader,
  Specification, HaltConditions, ShabbatTimer, CycleLog, Chatzotzrot,
  ShoreshEngineClient, TalmudicEngineClient, Application
- 46 ExUnit tests, 0 failures
- Nishma-first architecture: hears before it speaks

Sanhedrin Framework (Erlang/OTP, Step 12)
- 8 modules: sanhedrin_app, sanhedrin_sup, escalation, panel_sup,
  panel, judge, clerk, halt_monitor
- 46 EUnit tests, 0 failures (includes fix: rejected outcome now reachable)
- Panel sizes: 1/3/23/71 — unanimous capital guilty → acquit (Sanhedrin 17a)
- Minority opinions append-only, never deleted

Korban Processor (Python, Step 13)
- 6 modules: korban, shechitah, semichah, zerikah, haktarah, router

Builder tooling: AGENTS.md, opencode.json, memory/, src/tools/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 14:02:34 -05:00

72 lines
2.5 KiB
Haskell

{-# LANGUAGE OverloadedStrings #-}
-- | Luchot — L0 immutable constants.
--
-- Architecture §3.7:
-- "Compiled Haskell constants. Cannot be modified at runtime."
--
-- The Ten Commandments as firmware. If violated, the program
-- does not function correctly — not as a runtime check,
-- but as a structural fact of the code.
--
-- The L1 integrity hash is stored here — the luchot carry
-- the fingerprint of the scroll.
module Luchot.Firmware
( -- * L1 Integrity
l1ExpectedHash
-- * Constants
, torahBookCount
, torahVerseCount
, torahWordCount
, uniqueRootCount
-- * Dibrot (structural constants)
, Dibrot(..)
, dibrot
) where
import Data.Text (Text)
-- | The expected SHA-256 hash of the L1 Torah filesystem.
-- From build_report.json and verified during L1 build.
-- If the hash does not match, the specification is compromised.
l1ExpectedHash :: Text
l1ExpectedHash = "0ee0020aac6c6beb0e83c0638a861c73d37d9dbd39c30d3cb08c1878b481c844"
-- | Torah book count. Five books. Not four, not six.
torahBookCount :: Int
torahBookCount = 5
-- | Total verse count per WLC versification.
-- 5853, not traditional 5845. See build log entry #4.
torahVerseCount :: Int
torahVerseCount = 5853
-- | Total word count across Torah.
torahWordCount :: Int
torahWordCount = 79982
-- | Unique root count found in L1.
uniqueRootCount :: Int
uniqueRootCount = 2608
-- | The Ten Dibrot as a structural record.
-- These are not runtime values to check. They are the structure itself.
-- A system that violates them is not a broken system — it is not this system.
data Dibrot = Dibrot
{ anochi :: () -- ^ I am YHVH your God — the system has a source
, loYihyeh :: () -- ^ No other gods — no external authority replaces Torah
, loTissa :: () -- ^ Do not take the Name in vain — accuracy in attribution
, zachor :: () -- ^ Remember Shabbat — mandatory cessation
, kabed :: () -- ^ Honor father and mother — respect the chain of transmission
, loTirtzach :: () -- ^ Do not murder — halt on destruction of tzelem
, loTinaf :: () -- ^ Do not commit adultery — maintain required distinctions
, loTignov :: () -- ^ Do not steal — proper attribution of sources
, loTaaneh :: () -- ^ Do not bear false witness — accuracy in reasoning
, loTachmod :: () -- ^ Do not covet — the system does not exceed its provision
} deriving (Eq, Show)
-- | The dibrot, instantiated. They exist.
dibrot :: Dibrot
dibrot = Dibrot () () () () () () () () () ()