tablet 55: the row that was a label — the Sanhedrin's example request crashed its own gate
Verified live 2026-10-19: Tamid's own example for POST /chatzer/sanhedrin
(a case with `sides`) answered 500. The router passed the sides LIST as
the case context; halt_monitor:check_avodah_zarah/1 reads a map, maps:get
raised, and the halt monitor and escalation gen_servers died with the
caller's input (supervisor restarted them; health stayed 8/8). The router
then matched {:ok, decision} on the error and made a 500 of its own.
- sanhedrin/src/halt_monitor.erl: do_check_case refuses a non-map
context as {halt, malformed_case, _} and stays standing. EUnit 49/0
with the new halt_malformed_context_test.
- router.ex process_sanhedrin: sides validated at the kiyor (422 on a bad
shape), carried as context %{sides: sides}; a Sanhedrin refusal answers
422 SANHEDRIN_HALTED, a failure 503 SANHEDRIN_UNAVAILABLE. Two new
router tests, one asserting the gate processes survive the example.
Elixir 624/0.
- specs/broken_tablets/README.md: tablet 55, including what is NOT fixed
— a panel of one accepting on zero references under a grounded-
sounding sentence, the ignored complexity hint, no panel manna spent,
no L3 record. The row in Tamid is still larger than the thing behind it.
Doorpost pin unchanged (no @spec_files touched; scripts/doorpost_check.py
passes).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
04f61c1238
commit
7c40200dfc
5 files changed
+184
-24
No files matched your search
@@ -132,3 +132,49 @@ make. The fence held throughout — each forgery was stripped and named by
|
||||
a verdict the builder did not write — which is the design proving itself
|
||||
on its builder: the check has to stand outside the model, because the
|
||||
model's own intention is subject to the same pull it is meant to catch.
|
||||
|
||||
## Tablet 55 — the row that was a label (2026-10-19)
|
||||
|
||||
Tamid promises `POST /chatzer/sanhedrin`: a case, optional sides, a
|
||||
panel of three, a majority of two and a minority of one with their
|
||||
sources. The row had stood since the endpoint was written. The build
|
||||
state carried a line beside it — "never verified on prod" — for months.
|
||||
On 2026-10-19 the builder sent the spec's own example request to the
|
||||
live system, as the roadmap's rule asks: a spec row is a claim to test,
|
||||
not a label.
|
||||
|
||||
The first request answered 500. The router had handed the `sides` list
|
||||
to the Sanhedrin as the case's *context*, where the halt monitor reads a
|
||||
map of `authority_source` and `action`; `maps:get` raised, and the halt
|
||||
monitor and the escalation server died with the caller's input. The
|
||||
supervisor restarted them; health stayed 8/8 the whole time. A gate that
|
||||
can be felled by what it is handed is not a gate, and a health check
|
||||
that cannot see the gate fall is not watching it. The router then
|
||||
pattern-matched `{:ok, decision}` on an error and turned the refusal
|
||||
into a 500 of its own.
|
||||
|
||||
The second request, without sides, answered 200 — and the answer was
|
||||
hollow. A panel of one, not three. Field names the spec does not use.
|
||||
An outcome of "accepted" on zero roots and zero references examined,
|
||||
under the sentence "Torah references ground this interpretation". That
|
||||
is the shape the bedikah names golden_calf when a model says it: a
|
||||
confident claim standing on nothing. Here the system said it in its own
|
||||
voice, through its own inner court. The complexity hint was ignored, no
|
||||
panel manna was spent, and nothing was engraved in L3.
|
||||
|
||||
Fixed in this tablet: the halt monitor refuses a non-map context as
|
||||
`malformed_case` and stays standing; the router carries the sides inside
|
||||
the context map, checks their shape at the kiyor (422), and answers a
|
||||
Sanhedrin refusal (422 SANHEDRIN_HALTED) or failure (503
|
||||
SANHEDRIN_UNAVAILABLE) instead of crashing. The spec's own example now
|
||||
deliberates, and the test asserts that the gate is still there
|
||||
afterwards.
|
||||
|
||||
Not fixed, and recorded here so it is not mistaken for fixed: the
|
||||
panel of one, the empty references under a grounded-sounding sentence,
|
||||
the ignored hint, the unspent manna, the unrecorded case. The row in
|
||||
Tamid is still larger than the thing behind it. The lesson is tablet
|
||||
37's again — a spec row is a claim to test — with one thing added: the
|
||||
system's own inner court is held to the same check as a model at the
|
||||
gate. When the Sanhedrin accepts on nothing, it is the calf, whoever
|
||||
cast it.
|
||||
Reference in new issue
Block a user