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>
This commit is contained in:
1 parent
622e814c9e
commit
80ec364da6
86 files changed
+9646
No files matched your search
@@ -0,0 +1,70 @@
|
||||
%%%-------------------------------------------------------------------
|
||||
%%% @doc Sanhedrin top-level supervisor.
|
||||
%%%
|
||||
%%% Architecture §3.2 supervision tree:
|
||||
%%% sanhedrin_sup (top supervisor)
|
||||
%%% ├── clerk (gen_server — vote collection, opinion storage)
|
||||
%%% ├── escalation (gen_server — routes cases to appropriate panel size)
|
||||
%%% └── halt_monitor (gen_server — monitors for 3 cardinal sin conditions)
|
||||
%%%
|
||||
%%% Panel supervisors are started dynamically by escalation
|
||||
%%% via panel_sup:start_panel/2.
|
||||
%%% @end
|
||||
%%%-------------------------------------------------------------------
|
||||
-module(sanhedrin_sup).
|
||||
|
||||
-behaviour(supervisor).
|
||||
|
||||
-export([start_link/0]).
|
||||
-export([init/1]).
|
||||
|
||||
-define(SERVER, ?MODULE).
|
||||
|
||||
start_link() ->
|
||||
supervisor:start_link({local, ?SERVER}, ?MODULE, []).
|
||||
|
||||
init([]) ->
|
||||
SupFlags = #{
|
||||
strategy => one_for_one,
|
||||
intensity => 5,
|
||||
period => 60
|
||||
},
|
||||
ChildSpecs = [
|
||||
%% Clerk — vote collection and opinion storage
|
||||
#{
|
||||
id => clerk,
|
||||
start => {clerk, start_link, []},
|
||||
restart => permanent,
|
||||
shutdown => 5000,
|
||||
type => worker,
|
||||
modules => [clerk]
|
||||
},
|
||||
%% Escalation — complexity assessment and case routing
|
||||
#{
|
||||
id => escalation,
|
||||
start => {escalation, start_link, []},
|
||||
restart => permanent,
|
||||
shutdown => 5000,
|
||||
type => worker,
|
||||
modules => [escalation]
|
||||
},
|
||||
%% Halt monitor — 3 cardinal sin conditions
|
||||
#{
|
||||
id => halt_monitor,
|
||||
start => {halt_monitor, start_link, []},
|
||||
restart => permanent,
|
||||
shutdown => 5000,
|
||||
type => worker,
|
||||
modules => [halt_monitor]
|
||||
},
|
||||
%% Panel supervisor — dynamic, starts panels on demand
|
||||
#{
|
||||
id => panel_sup,
|
||||
start => {panel_sup, start_link, []},
|
||||
restart => permanent,
|
||||
shutdown => infinity,
|
||||
type => supervisor,
|
||||
modules => [panel_sup]
|
||||
}
|
||||
],
|
||||
{ok, {SupFlags, ChildSpecs}}.
|
||||
Reference in new issue
Block a user