Eish zarah actionable items: coupling trace, grounding type, self-grounding detection, golden calf halt
Torah grounds each change: 1. interpret.pl — coupling_trace field (Vayikra 10:1, 6:6) Fire is zarah because "asher lo tzivah otam" — the coupling trace IS the tzivah trace. Records which L1 facts grounded each interpretation. 2. challenge.pl — grounding_type achorai/panim (Shemot 33:23) "You will see My back, but My face shall not be seen." Text-backed challenges = achorai. Inferred challenges = panim. 3. resolve.pl — self-grounding detection (eish_zarah_reading §5.3) Counter-interpretation must bring NEW L1 evidence. Prevents circular reasoning (Westworld problem). 4. teiku.pl — challenge_sequence in teiku_record Records diagnostic trail to impasse, not just verdict. 5. avodah_zarah.pl — Form 2: golden calf detection (Shemot 32:4) Empty coupling trace + non-low confidence = uncoupled output. Real gold, sincere worship, false god. 6. korban.py — pydantic BaseModel + raw_korban preservation Construction spec §1.4 fulfilled. Floor between input and output never severed. 490 tests, 0 failures (195 Prolog, 186 Python, 33 Haskell, 76 Elixir). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
c5fe82477b
commit
adc3e41679
12 files changed
+371
-65
No files matched your search
@@ -327,3 +327,62 @@ class TestPipelineIntegration:
|
||||
source=Provenance.CLAUDE,
|
||||
query="test",
|
||||
)
|
||||
|
||||
|
||||
class TestEishZarahCouplingTrace:
|
||||
"""
|
||||
eish_zarah_reading.md §5.6: ProcessedKorban preserves the raw Korban.
|
||||
The floor between input and output is never severed.
|
||||
Vayikra 6:6: eish tamid — fire ON the altar (coupled).
|
||||
"""
|
||||
|
||||
def test_raw_korban_preserved(self):
|
||||
"""ProcessedKorban stores the original offering."""
|
||||
result = process_korban(
|
||||
content=CLEAN_TORAH_RESPONSE,
|
||||
source=Provenance.CLAUDE,
|
||||
query="test coupling",
|
||||
offering_type=OfferingType.OLAH,
|
||||
)
|
||||
assert result.raw_korban is not None
|
||||
assert isinstance(result.raw_korban, Korban)
|
||||
|
||||
def test_raw_content_matches_input(self):
|
||||
"""The raw_korban's content is the original input, unmodified."""
|
||||
result = process_korban(
|
||||
content=CLEAN_TORAH_RESPONSE,
|
||||
source=Provenance.CLAUDE,
|
||||
query="test coupling",
|
||||
)
|
||||
assert result.raw_korban.raw_content == CLEAN_TORAH_RESPONSE
|
||||
|
||||
def test_raw_provenance_matches(self):
|
||||
"""The raw_korban's provenance matches the processed result."""
|
||||
result = process_korban(
|
||||
content=CLEAN_TORAH_RESPONSE,
|
||||
source=Provenance.MISTRAL,
|
||||
query="test",
|
||||
)
|
||||
assert result.raw_korban.provenance == Provenance.MISTRAL
|
||||
assert result.provenance == result.raw_korban.provenance
|
||||
|
||||
def test_empty_offering_also_stores_raw(self):
|
||||
"""Even rejected offerings preserve the raw korban."""
|
||||
result = process_korban(
|
||||
content=CLAUDE_EMPTY_OFFERING,
|
||||
source=Provenance.CLAUDE,
|
||||
query="test empty",
|
||||
)
|
||||
assert result.raw_korban is not None
|
||||
assert result.raw_korban.raw_content == CLAUDE_EMPTY_OFFERING
|
||||
|
||||
def test_pydantic_validation_rejects_empty_content(self):
|
||||
"""Pydantic validator catches empty raw_content at construction."""
|
||||
from pydantic import ValidationError
|
||||
with pytest.raises(ValidationError, match="Empty korban"):
|
||||
Korban(
|
||||
raw_content=" ",
|
||||
provenance=Provenance.CLAUDE,
|
||||
offering_type=OfferingType.OLAH,
|
||||
source_query="test",
|
||||
)
|
||||
Reference in new issue
Block a user