Skip to content

feat(lenses): Leviticus 1-10 lens content, batch 1 of Pentateuch-rest pilot (#820, #1782)#1801

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-3-leviticus-1-to-10
Apr 29, 2026
Merged

feat(lenses): Leviticus 1-10 lens content, batch 1 of Pentateuch-rest pilot (#820, #1782)#1801
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-3-leviticus-1-to-10

Conversation

@CraigBuckmaster
Copy link
Copy Markdown
Owner

First batch of the Pentateuch-rest pilot for Epic #820. Leviticus 1–10, the sacrificial-system + ordination block.

Tracking issue: #1782 ([#820 / 3] Pentateuch rest — Exodus, Leviticus, Numbers, Deuteronomy). Exodus is now done; this kicks off Leviticus.

Per-chapter distribution (32 entries total)

Chapter Lenses Count Notes
lev1 typological, christocentric, grammatical, literary 4 Burnt offering — strong typological/christocentric pull
lev2 grammatical, typological, devotional 3 Grain offering
lev3 typological, canonical, christocentric 3 Fellowship offering — covenant-meal type
lev4 grammatical, typological, christocentric, devotional 4 Sin offering — atonement peak
lev5 grammatical, redemptive, typological 3 Guilt offering — Isa 53:10 asham anchor
lev6 literary, devotional 2 Priestly procedures (sparse, procedural)
lev7 literary, canonical 2 Priestly procedures cont. (sparse)
lev8 typological, christocentric, literary 3 Aaron's ordination
lev9 typological, christocentric, canonical, devotional 4 Eighth day, fire from heaven — theology peak
lev10 grammatical, literary, devotional, canonical 4 Nadab and Abihu — holiness peak

Sacrificial-system chapters (lev1–lev5) lean typological/christocentric per the brief's Lev genre profile. Procedural chapters (lev6, lev7) are sparse. lev9 and lev10 (the narrative theology peaks of the block) maxed at 4.

Theological anchors

  • lev1 'olah — Hebrew root 'alah ("to go up") drives the grammatical entry; christocentric anchor lands on Heb 9:14's amomos (without blemish) tracing Lev 1:3, 10's tamim.
  • lev3 shelamim — peace offering pattern → Lord's table type → Rom 5:1 "peace with God." Three-lens triangulation on the same Hebrew root without overlap.
  • lev4 chattat — grammatical entry surfaces the lexical pun (same word names problem and remedy); christocentric entry lifts vv 13-21's congregational scope to 1 Jn 2:2's "sins of the whole world."
  • lev5 asham — the clearest Servant-song bridge in the early Levitical sacrifices. Isa 53:10's ʾāšām is the same Hebrew word used at v 6, 7, 15. Grammatical entry names this lexical fact; typological entry traces it to Christ.
  • lev8 ordination — typological pattern (anointing oil, blood ear-thumb-toe, seven-day waiting) → Heb 5:1-10 high priest qualification. Christocentric entry lands on Heb 9:11-14.
  • lev9 fire-from-heaven — typological lens recast around the eighth-day type (Gen 17:12 / 2 Chr 7:9 / Lk 24:1), not the fire — to leave the canonical lens free to thread fire across canon (Gen 15:17 / 1 Kgs 18:38 / 2 Chr 7:1 / Acts 2:3) without overlap.
  • lev10 esh zarah — grammatical entry on the adjective zar (alien, illegitimate); canonical entry threads v 3's holiness principle through Acts 5, 1 Cor 11, Heb 12.

Pipeline gates

Gate Result
python3 _tools/schema_validator.py 0 failures, 19 pre-existing ESV warnings
python3 _tools/lens_quality_scorer.py --chapter lev{1..10} --floor 100 32/32 entries scoring 100/100 (after one fix — see below)
python3 _tools/build_sqlite.py hermeneutic_lenses: 8 lenses, 409 contents (= 377 baseline + 32 new)
python3 _tools/validate_sqlite.py 0 failures, 2 pre-existing non-fatal warnings

app/assets/db-manifest.json and app/assets/explore-images.json drift was reverted before staging — only the 10 chapter JSON files ship.

Quality-fix log (transparent)

One first-pass miss. The lev9 typological entry originally read:

v 1's eighth day marks new beginning — a typological motif: …

The scorer's must_have_one_of for typological is a substring match, and "type" is not a substring of "typological" (typ-OLOGICAL ≠ typ-E). The entry was rewritten to use "pattern foreshadows" + "type-chain" — both legitimate typological tokens — yielding 100/100. Recorded here in case the same trap bites a future batch.

Scholar-set adaptation

Leviticus uses Milgrom (Jacob Milgrom, Anchor Bible Leviticus + Numbers) where Exodus used Alter and Sarna. All panel_filter arrays in this PR use milgrom/calvin/mac — Alter and Sarna do not appear, since they are scoped to Genesis/Exodus content and would surface no panel in these chapters even if technically valid against the global allowlist.

Plagiarism guards

The Lev themes panels are unusually thin (single-sentence titles like "The Eighth Day: Fire from Heaven" + a six-tag scores list), so word-overlap risk is naturally low. Even so:

  • lev9 — themes title is "Fire from Heaven." Typological entry pivots to the eighth-day type-chain (different motif); canonical entry uses "flame motif echoes" rather than restating "fire from heaven" verbatim.
  • lev10 — themes title is "Strange Fire Before the Lord." Grammatical entry uses Hebrew esh zarah + adjective analysis; literary entry names the v 3 speech as the chapter's center; canonical entry threads v 3's holiness principle, not the calf-strange-fire framing.

Tier-2 audit watch list

Cross-canonical and lexical claims that warrant tier-2 spot-check:

  • lev1 / christocentric — Heb 9:14 amomos matches Lev 1:3, 10 tamim
  • lev2 / typological — leaven (Mt 16:6) + covenant-salt (Mk 9:50) typology
  • lev3 / christocentricshalom root → Rom 5:1 "peace with God"
  • lev4 / grammatical — chattat lexical doubling (sin / sin offering)
  • lev5 / grammatical + typological — Lev 5:6, 7, 15 asham → Isa 53:10 asham lexical chain
  • lev8 / christocentric — Heb 9:11-14 high priest typology
  • lev9 / typological — eighth-day type-chain (Gen 17:12, 2 Chr 7:9, Lk 24:1)
  • lev9 / canonical — fire-from-heaven motif (Gen 15:17, 1 Kgs 18:38, 2 Chr 7:1, Acts 2:3)
  • lev10 / canonical — Acts 5:1-11, 1 Cor 11:30, Heb 12:28-29 holiness-violation thread

Out of scope

  • No content/leviticus/* changes
  • No app code changes
  • No db-manifest.json / explore-images.json drift (reverted)
  • No new scholar entries — Milgrom already in _tools/config.py's SCHOLAR_REGISTRY (verified)

Rollback plan

Single-commit PR. Revert with git revert <sha> and rerun _tools/build_sqlite.py to roll the hermeneutic_lenses table back to 377 contents.

@github-actions
Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

Step Status Details
Schema Validation 144784 passed, 0 failed
Build DB
DB Integrity 101 passed, 0 failed

@github-actions
Copy link
Copy Markdown

Test Results

✅ All tests passed

Passed Failed Total
Tests ✅ 4001 ❌ 0 4001
Suites ✅ 532 ❌ 0 532

Coverage

Statements Branches Functions Lines

⏱️ Duration: 88.6s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant