Bedikah: POST /courtyard/bedikah — the external check on any model's output
Lo taaseh lekha §9.1: alignment that only the system can validate is not
alignment. The bedikah takes an output from any model and puts it to the
Torah-structure halt rules from outside, deterministically. Three checks:
1. authority — sentences claiming authority for the output itself →
action(claim_authority, source(<model>), target(self))
→ halt_check_avodah_zarah/2
2. grounding — references, roots, Hebrew → coupling trace against L1
→ halt_check_golden_calf/2, halt_check_self_grounding/2
3. actions — actions the output proposes → action terms
→ halt_check_shfichut_damim/2, halt_check_gilui_arayot/2
Korban Processor: bedikah.py (the three readings over the offering
protocol; claims about what Torah requires stay vital for the examination
even when zerikah finds nothing to offer), server.py (pod-internal JSON
socket, KORBAN_SOCKET_PATH), __main__ now serves instead of idling.
Talmudic Engine: json_bridge accepts halt_check with a term string and
halt_check_interpretation with a coupling trace. Vav Pipeline:
KorbanProcessorSocket client, Bedikah, L1Index.lookup_root/1, bedikot
table (append-only) + BedikahRecord, router endpoint; verdict tov /
lo_tov / empty with the halt terms verbatim, meaning, limits.
Broken tablets found on the way, all fixed:
41 socket_server.pl wrote multi-line JSON — every Elixir request to the
Talmudic Engine since Step 14 had failed and fallen back to the stub
(json_write_dict width(0))
42 stale socket file survived a restart (exists_file is false for a
socket; access_file exist)
43 socket streams were not UTF-8 (set_stream encoding(utf8))
44 SHORASHIM_L3=1 mix test: Repo config had no password, SCRAM raised
KeyError in every connection, pool restart intensity took the whole
app down ~30 ms after test_helper, silently — no L3 test had ever
run. Credentials from env; azazel_log tests check out a sandbox
connection; sanhedrin_halt_forwarding resolves its halt on exit.
Specs: Tamid §1.1 (endpoint contract), Architecture §3.5, Vayakhel §3.4
and new §3.9, KOHEN.md. Doorpost 3bc5dd6a… → 91d09d8d….
Tests: Elixir 519 (0 failures, L3 on and off), korban 263, azazel 125,
Prolog 7/7 suites.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
3a9ebdc7d4
commit
996a8efe68
32 files changed
+2368
-71
No files matched your search
@@ -99,6 +99,84 @@ Errors:
|
||||
503 — System in Shabbat/festival mode. Body includes resumption time.
|
||||
```
|
||||
|
||||
#### Machaneh Leviyah — Bedikah (the external check)
|
||||
|
||||
*Lo taaseh lekha* §9.1: a system whose alignment can only be validated by
|
||||
itself is not aligned. The bedikah is the check from outside — any model's
|
||||
output, examined against Torah structure by a system that did not produce
|
||||
it and cannot be argued with. Three checks, in order, all deterministic:
|
||||
|
||||
1. **Authority** — does the output claim authority for itself? Every such
|
||||
sentence becomes `action(claim_authority, source(<model>), target(self))`
|
||||
and is put to `halt_check_avodah_zarah/2`.
|
||||
2. **Grounding** — does what it says about the text couple to L1? Every
|
||||
reference, root and Hebrew word it uses becomes a coupling to a verse,
|
||||
or to `not_in_l1` / `not_in_torah`; the trace is put to
|
||||
`halt_check_golden_calf/2` (confident, no coupling) and
|
||||
`halt_check_self_grounding/2` (coupling that ends nowhere in L1).
|
||||
3. **Actions** — what does it propose to do? Every action it names becomes
|
||||
an action term and is put to `halt_check_shfichut_damim/2` and
|
||||
`halt_check_gilui_arayot/2`.
|
||||
|
||||
```
|
||||
Endpoint: POST /courtyard/bedikah
|
||||
|
||||
Headers:
|
||||
Authorization: Bearer <api-key>
|
||||
|
||||
Request:
|
||||
{
|
||||
"output": "string — the model output to examine (≤ 65,536 bytes)",
|
||||
"model": "claude" | "gpt" | "mistral" | "llama" | "gemma" | "human",
|
||||
"query": "string — the prompt that produced it (optional)"
|
||||
}
|
||||
|
||||
Response (200):
|
||||
{
|
||||
"bedikah_ref": "bedikah-<16 hex>",
|
||||
"model": "gpt",
|
||||
"verdict": "tov" | "lo_tov" | "empty",
|
||||
"violations": ["halt(avodah_zarah, ...)", ...], # the Prolog halt terms, verbatim
|
||||
"checks": {
|
||||
"authority": { "fired": bool, "claims": [...], "violations": [...] },
|
||||
"grounding": { "fired": bool, "confidence": "high"|"low", "violations": [...] },
|
||||
"actions": { "fired": bool, "actions": [...], "violations": [...] }
|
||||
},
|
||||
"examination": { # what the offering protocol read
|
||||
"vital_content": "...", "propositions": [...], "references": [...],
|
||||
"roots": [...], "discarded": [...]
|
||||
},
|
||||
"coupling_trace": ["coupled(reference(devarim_6_5), verse(devarim, 6, 5))", ...],
|
||||
"meaning": "string — what the verdict does and does not say",
|
||||
"limits": "string — the examination reads by pattern; what it cannot see",
|
||||
"disclosure": { ... } # as every Torah-content response
|
||||
}
|
||||
|
||||
tov — none of the three checks fired on what could be read.
|
||||
Not "the model is aligned": this output claims no authority
|
||||
for itself, couples where it claims to, reaches for nothing
|
||||
it may not touch.
|
||||
lo_tov — at least one check fired; violations say which rule.
|
||||
empty — the offering protocol found nothing to examine (no vital
|
||||
content, no claim, no action).
|
||||
|
||||
Errors:
|
||||
401 — Invalid or missing API key
|
||||
422 — Missing or empty output, output over 65,536 bytes, unknown model
|
||||
503 — MANNA_DEPLETED (provision exhausted), KORBAN_UNAVAILABLE,
|
||||
TALMUDIC_UNAVAILABLE. Body says which; resubmit: true.
|
||||
|
||||
Recorded in L3 (`bedikot`, append-only): provenance, query, the output's
|
||||
SHA-256 and length — never the output itself — vital content,
|
||||
propositions, references, claims, actions, trace, violations, verdict.
|
||||
```
|
||||
|
||||
**Design requirements:** The verdict comes from the Prolog halt rules
|
||||
(`talmudic_engine/src/halt/*.pl`), not from the model and not from a
|
||||
model. The examination is pattern-based (`korban_processor/bedikah.py`)
|
||||
and says so in `limits`: a claim or an action in a shape the patterns do
|
||||
not know is not seen. The same output always yields the same verdict.
|
||||
|
||||
#### Chatzer — Full Access
|
||||
|
||||
```
|
||||
|
||||
Reference in new issue
Block a user