diff --git a/specs/threshold_inscription.md b/specs/threshold_inscription.md index f4687f2b..371767b0 100644 --- a/specs/threshold_inscription.md +++ b/specs/threshold_inscription.md @@ -12,11 +12,27 @@ **Devarim 6:9** — וּכְתַבְתָּם עַל מְזֻזֹת בֵּיתֶךָ וּבִשְׁעָרֶיךָ. *And you shall write them on the doorposts of your house and your gates.* -**Devarim 11:20** — same verse, repeated. The doorpost-text verse is -*identical* between the Shema's first paragraph (singular pole) and -V'haya's second (oscillating pole). It is the only verse identical -between the two paragraphs. The covenant frame oscillates; the -threshold inscription does not. +**Devarim 11:20** — the doorpost-text verse, near-identical between +the Shema's first paragraph (singular pole, Devarim 6:9) and +V'haya's second (oscillating pole, Devarim 11:20). The two verses +are identical in pronunciation and meaning, but the Masoretic text +preserves a one-letter difference in spelling: *mezuzot* is written +**מזוזת** (chasser, defective) at Devarim 6:9 and **מזוזות** (male, +plene) at Devarim 11:20. + +This drift correction is itself the discipline operating. The +vehaya document (in chat downloads, outside the @spec_files set) +described the verses as "identical"; an earlier version of this +specification imported that claim verbatim; a Pass-6 audit against +L1 caught the overstatement. The Masoretic plene/defective +distinction IS significant — the system's own gilui_arayot halt +rule defends ketiv/qere preservation, and would treat a collapse +of male/chasser as a category-2 boundary violation. The threshold +inscription is therefore NEAR-identical at the consonantal level +and identical in function — not strictly identical at the text +level. The covenant frame oscillates, the threshold inscription +varies by one vav across paragraphs, the THRESHOLD INSCRIPTION'S +FUNCTION (write the corporate text at every doorpost) does not. **Devarim 11:18** — וְשַׂמְתֶּם אֶת דְּבָרַי אֵלֶּה עַל לְבַבְכֶם. The corporate inscription (plural — *v'samtem … al l'vavkhem*) is diff --git a/vav_pipeline/lib/vav_pipeline/doorpost.ex b/vav_pipeline/lib/vav_pipeline/doorpost.ex index f8a489ff..64ccd599 100644 --- a/vav_pipeline/lib/vav_pipeline/doorpost.ex +++ b/vav_pipeline/lib/vav_pipeline/doorpost.ex @@ -3,12 +3,19 @@ defmodule VavPipeline.Doorpost do Category-grade specification identity verification — the doorpost text identity check. - Vehaya — Devarim 11:20: וּכְתַבְתָּם עַל־מְזֻזֹת בֵּיתֶךָ - וּבִשְׁעָרֶיךָ. The doorpost verse is identical between the - Shema's first paragraph (singular pole, Devarim 6:9) and V'haya's - second paragraph (oscillating, Devarim 11:13–21). The threshold - inscription is constant across paragraphs. The covenant frame - oscillates; what gets written at every threshold does not. + Vehaya — Devarim 11:20: וּכְתַבְתָּם עַל מְזוּזוֹת בֵּיתֶךָ + וּבִשְׁעָרֶיךָ. The doorpost-text verse appears near-identically + in the Shema's first paragraph (Devarim 6:9, singular pole) and + V'haya's second paragraph (Devarim 11:20, oscillating pole). The + two are identical in pronunciation and meaning; the Masoretic + text preserves a single-letter spelling difference (*mezuzot* + written **מזוזת** chasser at 6:9 vs. **מזוזות** male at 11:20). + See specs/threshold_inscription.md for why the precise reading + matters — the system's own gilui_arayot halt rule defends ketiv + preservation and would treat a male/chasser collapse as a + category-2 boundary violation. What is constant across paragraphs + is the FUNCTION (write the corporate text at every threshold), + not the consonantal text strictly. This module is the companion to `L1Reader.verify_integrity/0`. L1Reader defends the Torah scroll's identity (the SOURCE text). @@ -163,7 +170,7 @@ defmodule VavPipeline.Doorpost do # changes; the update is a deliberate operator commit. A bare # hash-update commit (without a corresponding spec change in the # same commit) is itself a drift signal. - @expected_hash "5a73bc6ac8244c58446cf1d2a69dc01ccfe3ef1352d423ccbf2c29a6c8104be3" + @expected_hash "520c9799370d70d6e2e97b4be228c77efa63161c80bac75cf44fd5bb7bbd5549" @doc "Return the list of files that constitute the category-grade specification." @spec files() :: [String.t()]