cycle: a named verse is read from the verse, not from the reference (tablet 32)
`devarim 6:5` on the live pod: 422 TEIKU_NO_ROOTS. Tablet 30 heard the scope, but the Shoresh Engine activates roots from the text it is handed, vayomer handed it the question, and a bare reference carries no Hebrew. The 422's own guidance said "name a verse". tablet30_scope_test asserted an explicit reference was honoured and passed — on the L1 fallback, which reads the scoped verse and never looks at the question. The Day-6 pattern, by the builder who named it. - BereishitCycle.engine_text/2: when the scope came from an explicit reference AND the question has no Hebrew letter, the engine is handed the verse's own consonantal words. Default scope earns no such reading (English stays a teiku); quoted Torah and reference+Hebrew are read from the asker's words, as before. - input.scope_resolution carries how the scope was chosen into tohu. - processing.scope.roots_read_from: "verse" | "question". - test/tablet32_reference_test.exs: an engine-shaped spy under the REAL name VavPipeline.ShoreshEnginePort reports the text it was handed. 5 tests; 4 fail without the fix. 459 tests, 0 failures on seeds 0 1 7 42 99. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
7e1a4473c7
commit
a48c22c5a3
3 files changed
+229
-4
No files matched your search
@@ -336,6 +336,7 @@ defmodule VavPipeline.BigdeiKodesh.Router do
|
||||
input = %{
|
||||
source: "peah",
|
||||
verse_scope: scope,
|
||||
scope_resolution: resolved_by,
|
||||
content: question
|
||||
}
|
||||
|
||||
@@ -350,7 +351,7 @@ defmodule VavPipeline.BigdeiKodesh.Router do
|
||||
roots_consulted: Map.get(data, :roots_activated, []) |> format_roots(),
|
||||
deliberation: "none",
|
||||
cycle_phase: "voker",
|
||||
scope: scope_report
|
||||
scope: Map.put(scope_report, :roots_read_from, roots_read_from(data))
|
||||
},
|
||||
disclosure: disclosure()
|
||||
})
|
||||
@@ -363,7 +364,7 @@ defmodule VavPipeline.BigdeiKodesh.Router do
|
||||
roots_consulted: Map.get(data, :roots_activated, []) |> format_roots(),
|
||||
deliberation: "single-judge",
|
||||
cycle_phase: "voker",
|
||||
scope: scope_report
|
||||
scope: Map.put(scope_report, :roots_read_from, roots_read_from(data))
|
||||
},
|
||||
note: "This question produced an unresolved result — teiku.",
|
||||
disclosure: disclosure()
|
||||
@@ -844,6 +845,11 @@ defmodule VavPipeline.BigdeiKodesh.Router do
|
||||
%{verse: scope_verse(scope), resolved_by: to_string(resolved_by)}
|
||||
end
|
||||
|
||||
# "question" — the engine read the asker's own Hebrew.
|
||||
# "verse" — the asker named a verse and quoted none of it, so the
|
||||
# roots are the verse's own (tablet 32).
|
||||
defp roots_read_from(data), do: data |> Map.get(:roots_read_from, :question) |> to_string()
|
||||
|
||||
defp parse_scope(nil), do: %{book: "bereishit", chapter: 1, verse: 1}
|
||||
|
||||
defp parse_scope(%{"book" => book, "chapter" => ch, "verse" => v}) do
|
||||
|
||||
Reference in new issue
Block a user