feat(lenses): Exodus 21-30 lens content, batch 3 of Exodus pilot (#820, #1781)#1799
Merged
Merged
Conversation
#1781) Book of the Covenant + tabernacle instructions. Lower per-chapter density (legal/architectural genre): 35 entries across 10 chapters, average 3.5 lenses/chapter. All 100/100 on lens_quality_scorer. Per-chapter distribution: - ex21 (servants; injury laws) 3 lenses - ex22 (property; vulnerable-protection) 3 lenses - ex23 (justice; festivals; angel) 4 lenses - ex24 (covenant ratification) 5 lenses (peak) - ex25 (ark; mercy seat; lampstand) 4 lenses - ex26 (coverings; veils) 3 lenses - ex27 (bronze altar; courtyard) 3 lenses - ex28 (priestly garments) 3 lenses - ex29 (priestly consecration) 4 lenses - ex30 (incense; basin; oil) 3 lenses Theological highlights: - ex24 christocentric: v 8's 'blood of the covenant' is the formula Christ redeploys verbatim at Mt 26:28 — Sinai becomes upper room. - ex25 grammatical: kapporet = mercy seat, root kafar (atone). Cherubim guarding the mercy seat (v 18) recall Eden's cherubim (Gen 3:24); Christ reopens what they closed. - ex26 typological: the inner veil (vv 31-33) is built to be torn (Mark 15:38, Heb 10:19-20) — woven cherubim match the ark's cherubim. - ex28 typological: Aaron carries Israel's names on shoulders + heart; Christ as great high priest (Heb 4:14) carries his people the same way. - ex29 christocentric: blood on ear/thumb/toe (v 20) consecrates hearing/doing/walking; Heb 7:27 abolishes the cycle while fulfilling it. - ex30 typological: half-shekel atonement-money the same for rich and poor (v 15) — one ransom, no scaling, prefiguring Christ's. - ex23 typological: 'my angel... with my name in him' (vv 20-21) read by patristics as pre-incarnate appearance. Pipeline gates (all green): - schema_validator.py: 0 failed (142820 passed) - lens_quality_scorer.py: 35/35 entries 100/100 (one fix iteration — three rubric-token misses fixed in seconds) - build_sqlite.py: 8 lenses, 290 contents (255 baseline + 35 new) - validate_sqlite.py: 0 failed Drafting note: three rubric-token swaps needed (ex25 typological, ex25 canonical, ex28 typological). I had used 'thread' (canonical token) in a typological entry and 'pattern' (typological token) in a canonical entry — same lesson as the genesis batch 5 'structural'/ 'narrator' issue. The lens_rubrics.json must_have_one_of lists are strict substring matches, so token-token swaps don't carry over between lenses. Worth a small rubric improvement: typological's tokens overlap heavily with canonical's, and the scorer treats them as disjoint. Future drafts should check both lists when in doubt. Branched off latest master pre-#1798 merge; once #1798 lands, the live lens_contents row count will be 303 + 35 = 338.
7 tasks
Content Pipeline Results✅ All pipeline checks passed
|
Test Results✅ All tests passed
Coverage
⏱️ Duration: 93.7s |
This was referenced Apr 29, 2026
feat(lenses): Exodus 31-40 lens content, batch 4 of Exodus pilot — closes Exodus (#820, #1781)
#1800
Merged
Merged
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Batch 3 of the Exodus pilot. Book of the Covenant (ex21–23) + covenant ratification (ex24) + tabernacle instructions (ex25–30). 35 entries across 10 chapters, all 100/100 on
lens_quality_scorerafter one small fix pass.The lowest per-chapter density of any batch in the pilot — average 3.5 lenses/chapter — and that's correct. Legal codes and architectural specifications don't need six lenses each; forcing them would dilute. ex24 is the only peak (5 lenses) because covenant ratification is the chapter where law-and-construction become liturgy.
Per-chapter lens distribution
Total 35 entries, average 3.5 lenses/chapter.
Theological highlights
Pipeline gates (all green)
schema_validator.pylens_quality_scorer.pybuild_sqlite.pyvalidate_sqlite.pyDrafting note — token-swap fixes (lesson surfaced)
Three entries needed a single fix iteration. The pattern:
Same root cause as the gen42/43
structural/narratorfix in batch 4 of the Genesis pilot: the rubricmust_have_one_oflists are strict substring matches, and the typological/canonical token sets overlap conceptually but are scored disjointly. Drafting under the assumption that "this is clearly a typological entry" doesn't help if the entry uses canonical tokens — the scorer doesn't read the lens label, only the substrings.Suggested rubric improvement (would be ~5 min): the rubric file already separates these lists; consider adding a small overlap allowance (e.g., "thread" → counts for both) or making each lens's
must_have_one_ofmore distinct. Alternatively, add this to the drafting checklist: "verify each lens entry contains a token from that lens's specific list, not the conceptual neighbour".Three quick
str_replaceswaps fixed all three. No content rewrite.Branch / merge notes
masterat70d3f30(pre-feat(lenses): Exodus 11-20 lens content, batch 2 of Exodus pilot (#820, #1781) #1798).Watch list for tier-2 audit
Five entries flagged for editor review:
Rollback plan
Revert the merge commit. The 10 new chapter files are additive and isolated under
content/hermeneutic_lenses/chapters/; no existing content, schema, or app code is touched.Roadmap
After this lands, batch 4 (ex31–ex40) closes the Exodus pilot. Golden calf, glory, covenant renewal, tabernacle construction. Expected high density on ex32 (calf), ex33 (glory), ex34 (renewal); construction chapters (ex36–39) will be sparse like this batch.
Refs #820. Closes part of #1781.