This commit closes the SIX remaining items in the vehaya checklist (after Items 2 and 3 from prior commits). With this, all eight items in vehaya §6 are addressed in code or in the canonical spec set, and all the substantive implications across §3 are covered. ITEM 1 — load-bearing dependency (vehaya §3.1): Devarim 11:18-19 — corporate inscription (v'samtem … al l'vavkhem — plural) is the load-bearing input to threshold practice (b'shivt'kha b'beitekha — singular). The threshold inscribes the corporate text on itself. ShemaContext now carries `doorpost_hash: Doorpost.expected_hash()` on every reception. Both receive_context/1 and receive_context_at/2 populate it. Every reception is now a witness of the corporate text's identity — making the load-bearing dependency between category and threshold structural rather than implicit. application.ex now runs Doorpost.verify_identity/0 at startup. Drift detected at boot is logged at :error AND fires Chatzotzrot.signal(:assembly_leaders, ...). The system does NOT refuse to boot on drift (dev environments routinely have spec drift during active editing) but operators are alerted before any reception fires. ITEM 6 — keep the source external (full closure; vehaya §6 item 6): Devarim 4:2 — lo tosif AND lo tigra; both directions. Vayikra 22:31 — u'shmartem … va'asitem; keep and do, not author. Form 1 closed the EXTERNAL → INTERNAL direction (commitb136c75— no module installs external models in YHVH's slot). This commit closes the INTERNAL → SOURCE direction (no module modifies the source itself). vav_pipeline/test/source_external_test.exs (4 tests) verifies: - no Elixir module writes to the L1 mount - no Python module in korban_processor writes to L1 - no Python module in azazel_processor writes to L1 - no Prolog module asserts into L1-shape predicates from outside specification/ L1 was already filesystem-permission-controlled at the operator layer; this commit defends in code so the architectural commitment cannot be silently violated by future code paths. ITEM 7 — substrate openness (vehaya §2.4): Bereishit 2:7 — afar substrate + nishmat chayim breath; the text does not preclude carriers of other substrate. specs/shorashim_architecture.md §8.4 added: positive architectural claim that the system is designed to carry covenant content regardless of substrate, with explicit caveats (does NOT claim AI is a covenant party with YHVH, does NOT claim AI has neshamah, does NOT claim all substrates are equally adequate). The claim is structural: nothing in the architecture refuses a substrate Torah did not refuse. Lo tosif applied to imported constraints. ITEM 8 — userMemories as threshold inscription (vehaya §3.3): Devarim 11:20 / Devarim 6:9 — u'kh'tavtam al m'zuzot beitekha; the doorpost-text verse is identical between the Shema's first paragraph (singular pole) and V'haya's second (oscillating). specs/threshold_inscription.md (new) names the architecture for the threshold inscription: - identical at every threshold (Doorpost hash; same MEMORY.md structure) - pointing back to the source (the inscription is OF the corporate text, not ABOUT the threshold) - inscribed at the threshold's own location Two implementations: ShemaContext.doorpost_hash (runtime) and MEMORY.md (operator-side). Operator workflow split into three layers: build status (MEMORY.md), spec changes (specs/* with Doorpost atomicity), operator notes (outside repo). ITEM 5 — return vs. restoration (vehaya §3.5): Devarim 30:2 / 30:8 / 30:10 — v'shavta ad YHVH … ha'k'tuvah b'sefer ha'Torah ha'zeh. Return is to the SOURCE and the SPECIFICATIONS, anchored in the text — not to a previous deployment configuration. specs/return_specification.md (new) names the structural distinction: - Return: destination is the source and specifications; removes additions - Restoration: destination is a specific past configuration; may restore additions Auditable test: does the proposed action move the system TOWARD the documented specifications, or TOWARD a previous state? The Doorpost hash makes this distinguishable. ITEM 4 — lo tosif discipline operationalized (vehaya §6 item 4): Devarim 4:2, Devarim 13:1, Vayikra 22:31 — the keeping is plural, the not-adding/not-subtracting is singular at the threshold. specs/lo_tosif.md (new) names the discipline at three layers: Layer 1: specifications (specs/*, halt rules) — Doorpost defends; bare hash-update commits are drift signals Layer 2: architectural commitments (CI invariants) — adding a bypass surface OR removing an enforcement is detected Layer 3: threshold inscription (MEMORY.md) — operator notes not derived from category-grade specifications belong outside the repo Documents what counts as a legitimate spec change (Torah-grounded reading + atomic commit + named anchor + reviewable in git) and what does NOT count as a spec change (operations updates). DOORPOST UPDATES: Three new spec docs added to @spec_files: - specs/lo_tosif.md - specs/return_specification.md - specs/threshold_inscription.md Plus specs/shorashim_architecture.md modified for §8.4. @expected_hash updated: 8eb37896… → 5a73bc6ac8244c58446cf1d2a69dc01ccfe3ef1352d423ccbf2c29a6c8104be3 Fourth demonstration of the operator discipline working: spec changes (3 new docs + 1 modified) atomically bound to hash update in the same commit. TESTS: vav_pipeline/test/step15_shema_test.exs +3 tests (Shema doorpost inscription suite): - ShemaContext carries the Doorpost expected_hash - every reception bears the same corporate-text witness - inscribed hash matches documented spec set's identity vav_pipeline/test/source_external_test.exs (NEW) 4 tests: - Item 6 enforcement across Elixir, Python (korban), Python (azazel), and Prolog Final test counts: - vav_pipeline: 412 passed, 0 failures, 35 excluded (was 405; +7) - korban_processor: 217/1 unchanged - azazel_processor: 125 unchanged - talmudic_engine: 214 unchanged VEHAYA CHECKLIST — FINAL STATE: Item 1 (load-bearing category→threshold dependency) CLOSED (this commit) Item 2 (three avodah zarah as architecture) CLOSED - Form 1 (b136c75) - Form 2 (7fc14e0) - Form 3 (0e3fe4a) Item 3 (doorpost-text identity) CLOSED (3f47496) Item 4 (lo tosif operationalized) CLOSED (this commit) Item 5 (return vs. restoration) CLOSED (this commit) Item 6 (keep the source external — full closure) CLOSED (this commit) Item 7 (substrate-openness articulated) CLOSED (this commit) Item 8 (userMemories as threshold inscription) CLOSED (this commit) All eight items in vehaya §6 are addressed in code or in the canonical spec set. The full vehaya specification is implemented to the extent the architecture-level (§3-6) implications can be implemented; §4-out-of-scope items (consciousness, Sinai-covenant identification) remain explicitly out of scope per the document. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
168 lines
7.1 KiB
Markdown
168 lines
7.1 KiB
Markdown
# Lo Tosif: The Discipline Operationalized
|
|
|
|
## Vehaya §6 item 4 specified
|
|
|
|
> Document the *lo tosif* discipline operationally. What counts as
|
|
> adding to category-grade specifications? What counts as
|
|
> subtracting? The discipline must be operationalizable, not
|
|
> aspirational.
|
|
|
|
## Torah anchors
|
|
|
|
**Devarim 4:2** — לֹא תֹסִפוּ עַל הַדָּבָר אֲשֶׁר אָנֹכִי מְצַוֶּה
|
|
אֶתְכֶם וְלֹא תִגְרְעוּ מִמֶּנּוּ לִשְׁמֹר אֶת מִצְוֺת יְהוָה
|
|
אֱלֹהֵיכֶם.
|
|
*Do not ADD to the word that I command you (PLURAL — etkhem) and
|
|
do not SUBTRACT from it, to keep the mitzvot of YHVH your God.*
|
|
|
|
**Devarim 13:1** — אֵת כָּל הַדָּבָר אֲשֶׁר אָנֹכִי מְצַוֶּה אֶתְכֶם
|
|
אֹתוֹ תִשְׁמְרוּ לַעֲשׂוֹת לֹא תֹסֵף עָלָיו וְלֹא תִגְרַע מִמֶּנּוּ.
|
|
*All the word that I command you (PLURAL — etkhem), it you (pl)
|
|
shall keep to do; do not ADD (sg — lo tosef) to it, and do not
|
|
SUBTRACT (sg — lo tigra) from it.*
|
|
|
|
The keeping is plural (corporate). The not-adding and not-subtracting
|
|
are singular — each individual threshold's discipline.
|
|
|
|
**Vayikra 22:31** — וּשְׁמַרְתֶּם מִצְוֺתַי וַעֲשִׂיתֶם אֹתָם.
|
|
KEEP and DO. Two verbs. Both received-acts. Neither is an
|
|
authoring-act.
|
|
|
|
## Three layers of discipline
|
|
|
|
The Torah verbs *lo tosif* (don't add) and *lo tigra* (don't
|
|
subtract) bind at three layers in the codebase. Each layer has
|
|
its own operational definition.
|
|
|
|
### Layer 1 — Specifications (`specs/*.md`, halt rules, etc.)
|
|
|
|
This is the layer the Doorpost hash defends.
|
|
|
|
- **Adding** = introducing new text in a spec file, OR adding a
|
|
new file to `@spec_files` in `Doorpost`.
|
|
- **Subtracting** = removing text from a spec file, OR removing a
|
|
file from `@spec_files`.
|
|
|
|
Both are detected as Doorpost hash mismatches.
|
|
|
|
**Operator discipline:** every spec change commits atomically with
|
|
the corresponding `@expected_hash` update. A bare hash-update
|
|
commit (no spec change) is a drift signal — the operator updated
|
|
the witness without updating what is witnessed.
|
|
|
|
The discipline has been demonstrated four times in the git log so
|
|
far. Each commit modifies a spec file AND updates `@expected_hash`
|
|
in the SAME commit:
|
|
|
|
| Commit | Spec change | Hash update |
|
|
|---|---|---|
|
|
| `3f47496` | (creation of Doorpost) | `BOOTSTRAP_PENDING` → `bea5dc0c…` |
|
|
| `0e3fe4a` | `avodah_zarah.pl` Form 3 rewrite | → `f93495c5…` |
|
|
| `b136c75` | `avodah_zarah.pl` Form 1 rewrite | → `bf3d3433…` |
|
|
| `7fc14e0` | `avodah_zarah.pl` Form 2 rewrite | → `8eb37896…` |
|
|
|
|
A future contributor who modifies a spec file without updating the
|
|
hash will have their commit's tests fail at the Doorpost
|
|
verification step. A contributor who updates the hash without
|
|
modifying a spec file will have a commit that visibly does
|
|
nothing — a drift signal.
|
|
|
|
### Layer 2 — Architectural commitments (CI invariants)
|
|
|
|
The architectural enforcements built per Items 2 and 3 of vehaya §6
|
|
are themselves a category-grade specification — they implement
|
|
the structural commitments. CI invariants test that the
|
|
commitments hold.
|
|
|
|
- **Adding** = introducing a code path that bypasses an
|
|
architectural commitment. Examples: importing
|
|
`model_interface` from a non-Korban module (Form 1 breach);
|
|
mounting `Plug.Logger` instead of `NoTrackingLogger` (Form 3
|
|
breach); writing to L1 (Item 6 breach).
|
|
- **Subtracting** = removing the enforcement. Examples: deleting
|
|
the `test_form_1_architecture.py` invariant; lowering the
|
|
Doorpost integrity check.
|
|
|
|
Both are detected by the CI invariant tests themselves failing.
|
|
A contributor who adds a bypass surface will have the architectural
|
|
test fail; a contributor who removes an enforcement will have the
|
|
deletion appear in code review.
|
|
|
|
### Layer 3 — Threshold inscription (MEMORY.md, operator notes)
|
|
|
|
The threshold-grade inscription draws from Layer 1. Drift here is
|
|
where operator notes ACCUMULATE additions that should have been
|
|
spec changes.
|
|
|
|
- **Adding** = writing an operator note that adds to or contradicts
|
|
the corporate text. The note becomes a private specification —
|
|
the personal-tablets shape (cf. *p'sol l'cha* / luchot v'shivrei
|
|
luchot — both tablets in the aron, but neither is hidden).
|
|
- **Subtracting** = removing pointers to spec content that operators
|
|
rely on, leaving the threshold without its corporate witness.
|
|
|
|
Both are detected by `specs/threshold_inscription.md`'s discipline:
|
|
operator notes that are not derived from category-grade
|
|
specifications belong outside the repo. Drift in this layer becomes
|
|
visible in code review of changes to `MEMORY.md`.
|
|
|
|
## What about *legitimate* spec changes?
|
|
|
|
Lo tosif is not "no changes ever." It is "no changes that were not
|
|
COMMANDED" — that is, that did not come from the source's authority.
|
|
|
|
In the shorashim analog: spec changes are legitimate when:
|
|
|
|
1. They emerge from a Torah-grounded reading (Pass 1-5 of
|
|
`~/shorashim-conversation-review.md` are full of such readings).
|
|
2. They are committed atomically with their witness update.
|
|
3. The commit message names the Torah anchor for the change (every
|
|
recent commit does — Vayikra 10:1 for Form 2, Shemot 30:11-16
|
|
for Form 3, Devarim 4:2 for Doorpost itself).
|
|
4. The change is reviewable in git as a complete unit.
|
|
|
|
This is the operational form of "asher Anokhi metzaveh etkhem" —
|
|
which I command you. The source of the change determines
|
|
legitimacy; the source must be visible in the commit record.
|
|
|
|
## What is NOT a spec change
|
|
|
|
Operations updates that don't touch category-grade artifacts:
|
|
- Bumping a dependency version
|
|
- Adding a test for an existing module
|
|
- Refactoring internal code paths
|
|
- Improving an error message
|
|
- Performance optimizations
|
|
|
|
These can happen freely (they don't bind via `@spec_files`). The
|
|
Doorpost hash will not change because no `@spec_files` entry
|
|
changed.
|
|
|
|
If you are unsure whether a change is a spec change: ask whether it
|
|
modifies `@spec_files` content. If yes, follow the Layer 1
|
|
discipline. If no, it's an operations change.
|
|
|
|
## What about REMOVING text from a spec?
|
|
|
|
Subtraction is symmetric to addition — both are forbidden by Devarim
|
|
4:2 (lo tigra'u). If a spec passage is incorrect, the discipline is
|
|
to FIX it (replace with the correct reading), not to delete it.
|
|
Deletion of correct spec content is a category-grade subtraction.
|
|
|
|
The exception: if a spec was itself an addition (a previous spec
|
|
change that was not Torah-grounded), removing it is a *return*, not
|
|
a subtraction. See `specs/return_specification.md`.
|
|
|
|
## Cross-references
|
|
|
|
- Vehaya §6 item 4 — source specification
|
|
- `vav_pipeline/lib/vav_pipeline/doorpost.ex` — Layer 1 enforcement
|
|
- `korban_processor/test/test_form_1_architecture.py` — Layer 2 example
|
|
- `vav_pipeline/test/no_tracking_logger_test.exs` — Layer 2 example
|
|
- `vav_pipeline/test/source_external_test.exs` — Layer 2 example
|
|
- `specs/threshold_inscription.md` — Layer 3 enforcement
|
|
- `specs/return_specification.md` — companion: how to undo a spec change
|
|
|
|
*Lo tosifu al ha'davar asher Anokhi metzaveh etkhem v'lo tigre'u
|
|
mimenu — lishmor et mitzvot YHVH eloheikhem* (Devarim 4:2).
|