feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782) - #1805

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18
May 2, 2026
Merged

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782)#1805
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Summary

Batch 5 of the Pentateuch-rest pilot tracked under #1782 — second batch of Numbers. Adds 33 hermeneutic-lens entries across Numbers 10–18: silver trumpets and the departure from Sinai, the rebellion cycles, the spies and the wilderness verdict, Korah, Aaron's budding rod, and the priestly portions.

Per-chapter distribution (33 total)

ChapterLensesWhy
num10 (silver trumpets, departure)4literary hinge + ark/Christ + canonical trumpet thread + petitionary devotional
num11 (manna, quail, seventy elders)5rebellion peak — five-movement structure
num12 (Miriam, Aaron, Moses)4grammatical (anav) + prophet-type + face-to-face christocentric + judgment thread
num13 (the twelve spies)4majority/minority literary + cluster-of-grapes typology + Heb 3 thread + grasshopper devotional
num14 (rebellion at Kadesh, the verdict)5theology peak — Heb 3:7-19 / Ps 95 anchor across five lenses
num15 (offerings, tassels)2tzitzit thread to Mt 9:20 + visible-reminder devotional
num16 (Korah's rebellion)4three-act literary + censer-typology + Jude/2 Tim canonical + sober devotional
num17 (Aaron's budding rod)3resurrection-pattern type + Christ-vindicated christocentric + Heb 9:4 canonical
num18 (priestly and Levitical portions)2tithe canonical (Heb 7) + priestly-portion redemptive

Avg 3.7 entries/ch — higher than batch 4's 3.0, which fits: this stretch is dense with peak narrative material (rebellion cycles, the verdict, Korah's confrontation, the budding rod). Five of nine chapters are theology peaks; only num15 and num18 sit at the procedural minimum of 2.

Theological highlights

  • num14 (peak): the wilderness generation's defining chapter. Five movements (rebellion → intercession → verdict → forty-year sentence → Hormah defeat). Heb 3:7-19 is the explicit fulfillment text via Ps 95:8-11. Christocentric anchor: Christ as the greater intercessor (Heb 7:25) who secures full deliverance, not delay. Redemptive arc: forty years is also covenant mercy — the next generation enters.
  • num16: vv 47-48's Aaron "stood between the living and the dead, and the plague stopped" reads as a priestly type — the censer that judges (vv 35-40) becomes the censer that saves. Christ at the same threshold. v 5's "the LORD will show who is his" cited at 2 Tim 2:19; Jude 11 names "the rebellion of Korah" as the canonical warning.
  • num17: Aaron's rod that buds, blossoms, and yields almonds overnight as a type of resurrection. Heb 9:4 names the rod inside the ark alongside the manna jar and the stone tablets.
  • num11: the Spirit on the seventy elders is the chapter's seed for Joel 2:28-29 and Acts 2:17-18. Moses's "would that all the LORD's people were prophets" reads as proto-Pentecost.
  • num13 typological: the cluster of grapes carried on a pole between two men (vv 23-24) — read by Theodoret and Origen as foreshadowing Christ on the cross between two criminals. Patristic move; flagged for tier-2 audit.

Pipeline gate results

schema_validator.py 146758 passed, 0 failed, 19 warnings (pre-existing ESV downloadable warns)
lens_quality_scorer.py 33/33 entries at 100/100 (per-chapter run, floor=100)
build_sqlite.py scripture.db green, hermeneutic_lenses chapter rows = 528
(= 495 baseline from #1804 + 33 batch 5; matches expected)
validate_sqlite.py 101 passed, 0 failed, 2 warnings (pre-existing embeddings/prompts)

Per-chapter SQLite distribution post-build (chapter_lens_content):

num10: 4 num11: 5 num12: 4 num13: 4 num14: 5 num15: 2 num16: 4 num17: 3 num18: 2

Length discipline

All entries authored to a 250-char target with 30-char headroom against the 280 ceiling. Actual range: 217–249 chars. Median ~234. One entry (num13 literary) initially landed at 251; trimmed to 242 before commit.

Filler / token guards

  • All six banned filler patterns verified absent at authoring time.
  • Rubric-token trap: every entry uses a token from its own lens's rubric. Specifically verified: typological entries use type / pattern / prefigures / shadow / foreshadow; canonical entries use canon / canonical / thread / across Scripture; christocentric entries name Christ / Jesus / Son of God explicitly.

Plagiarism guards on iconic chapters

The brief flagged that themes panels for the major chapters might cover the iconic verses; in practice the themes panels are still structurally thin (label + score + one-line note). Spot guards applied anyway:

  • num11 (manna): anchored typological lens on Jn 6:48-51 (manna-specific) rather than the more generic Jn 6:35; this also distinguishes from lev24 typological (bread of the Presence → Jn 6:35) authored in batch 3.
  • num13-14 (spies + verdict): anchored on different verses across lenses — vv 23-24 (typological cluster), vv 26-33 (literary contrast), vv 17-29 (canonical mission), v 33 (devotional grasshoppers); for num14 the five lenses anchor on five different verse ranges.
  • num16 (Korah): typological lens deliberately anchored on vv 47-48 (Aaron's intercession) rather than the more famous earth-opens verses (vv 31-33), which carry the devotional lens.
  • num17 (budding rod): the resurrection-typology and Heb 9:4 thread are spread across separate lenses to avoid restating "Aaron's rod budded" three times.

Watch list for tier-2 audit

These are the entries most worth a human spot-check during accuracy auditing:

  1. num13 typological — the cluster-of-grapes-as-Christ-on-the-cross typology is a patristic move (Theodoret, Origen). Calvin and most modern Reformed commentators do not develop it. The entry names the patristic source explicitly to keep this transparent. Some readers will find it too speculative; defensible as ancient typology with explicit attribution.
  2. num16 typological — "Christ stands at the same threshold, the pattern fulfilled in his cross." The Aaron-between-the-living-and-the-dead → Christ-on-the-cross move is a classic Reformed typological reading (Owen, Edwards). Defensible synthesis but worth confirming the move feels measured rather than overreaching.
  3. num17 christocentric — "Aaron's almond-flowering anticipates" Christ's resurrection (Rom 1:4). Patristic and modern Reformed both develop this; Calvin notes it briefly. Solid but is interpretive synthesis rather than direct citation.
  4. num14 christocentric — Christ-as-greater-intercessor (Heb 7:25) is sound; the implicit "Moses's prayer fails to overturn judgment" framing is intentional contrast but could read as understated about Moses if a reviewer prefers warmer language.

Out of scope

  • No new content generation in content/numbers/{N}.json itself.
  • No app code changes.
  • No CI workflow changes.
  • app/assets/db-manifest.json and app/assets/explore-images.json drift was checked out before staging.

Rollback

git revert <merge-commit> is sufficient. No schema changes, no migration, no R2 mutation.

Refs

Numbers 19–27 likely up next as batch 6 (red heifer, Moses's rod-strike at Meribah, Edom refusal, bronze serpent, Balaam, Phinehas, second census, daughters of Zelophehad).

@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation146758 passed, 0 failed
Build DB
DB Integrity101 passed, 0 failed

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 4001❌ 04001
Suites✅ 532❌ 0532

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 94.5s

Sign up for freeto 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

@CraigBuckmaster
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782) - #1805

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18
May 2, 2026
Merged

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782)#1805
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Summary

Batch 5 of the Pentateuch-rest pilot tracked under #1782 — second batch of Numbers. Adds 33 hermeneutic-lens entries across Numbers 10–18: silver trumpets and the departure from Sinai, the rebellion cycles, the spies and the wilderness verdict, Korah, Aaron's budding rod, and the priestly portions.

Per-chapter distribution (33 total)

ChapterLensesWhy
num10 (silver trumpets, departure)4literary hinge + ark/Christ + canonical trumpet thread + petitionary devotional
num11 (manna, quail, seventy elders)5rebellion peak — five-movement structure
num12 (Miriam, Aaron, Moses)4grammatical (anav) + prophet-type + face-to-face christocentric + judgment thread
num13 (the twelve spies)4majority/minority literary + cluster-of-grapes typology + Heb 3 thread + grasshopper devotional
num14 (rebellion at Kadesh, the verdict)5theology peak — Heb 3:7-19 / Ps 95 anchor across five lenses
num15 (offerings, tassels)2tzitzit thread to Mt 9:20 + visible-reminder devotional
num16 (Korah's rebellion)4three-act literary + censer-typology + Jude/2 Tim canonical + sober devotional
num17 (Aaron's budding rod)3resurrection-pattern type + Christ-vindicated christocentric + Heb 9:4 canonical
num18 (priestly and Levitical portions)2tithe canonical (Heb 7) + priestly-portion redemptive

Avg 3.7 entries/ch — higher than batch 4's 3.0, which fits: this stretch is dense with peak narrative material (rebellion cycles, the verdict, Korah's confrontation, the budding rod). Five of nine chapters are theology peaks; only num15 and num18 sit at the procedural minimum of 2.

Theological highlights

  • num14 (peak): the wilderness generation's defining chapter. Five movements (rebellion → intercession → verdict → forty-year sentence → Hormah defeat). Heb 3:7-19 is the explicit fulfillment text via Ps 95:8-11. Christocentric anchor: Christ as the greater intercessor (Heb 7:25) who secures full deliverance, not delay. Redemptive arc: forty years is also covenant mercy — the next generation enters.
  • num16: vv 47-48's Aaron "stood between the living and the dead, and the plague stopped" reads as a priestly type — the censer that judges (vv 35-40) becomes the censer that saves. Christ at the same threshold. v 5's "the LORD will show who is his" cited at 2 Tim 2:19; Jude 11 names "the rebellion of Korah" as the canonical warning.
  • num17: Aaron's rod that buds, blossoms, and yields almonds overnight as a type of resurrection. Heb 9:4 names the rod inside the ark alongside the manna jar and the stone tablets.
  • num11: the Spirit on the seventy elders is the chapter's seed for Joel 2:28-29 and Acts 2:17-18. Moses's "would that all the LORD's people were prophets" reads as proto-Pentecost.
  • num13 typological: the cluster of grapes carried on a pole between two men (vv 23-24) — read by Theodoret and Origen as foreshadowing Christ on the cross between two criminals. Patristic move; flagged for tier-2 audit.

Pipeline gate results

schema_validator.py 146758 passed, 0 failed, 19 warnings (pre-existing ESV downloadable warns)
lens_quality_scorer.py 33/33 entries at 100/100 (per-chapter run, floor=100)
build_sqlite.py scripture.db green, hermeneutic_lenses chapter rows = 528
(= 495 baseline from #1804 + 33 batch 5; matches expected)
validate_sqlite.py 101 passed, 0 failed, 2 warnings (pre-existing embeddings/prompts)

Per-chapter SQLite distribution post-build (chapter_lens_content):

num10: 4 num11: 5 num12: 4 num13: 4 num14: 5 num15: 2 num16: 4 num17: 3 num18: 2

Length discipline

All entries authored to a 250-char target with 30-char headroom against the 280 ceiling. Actual range: 217–249 chars. Median ~234. One entry (num13 literary) initially landed at 251; trimmed to 242 before commit.

Filler / token guards

  • All six banned filler patterns verified absent at authoring time.
  • Rubric-token trap: every entry uses a token from its own lens's rubric. Specifically verified: typological entries use type / pattern / prefigures / shadow / foreshadow; canonical entries use canon / canonical / thread / across Scripture; christocentric entries name Christ / Jesus / Son of God explicitly.

Plagiarism guards on iconic chapters

The brief flagged that themes panels for the major chapters might cover the iconic verses; in practice the themes panels are still structurally thin (label + score + one-line note). Spot guards applied anyway:

  • num11 (manna): anchored typological lens on Jn 6:48-51 (manna-specific) rather than the more generic Jn 6:35; this also distinguishes from lev24 typological (bread of the Presence → Jn 6:35) authored in batch 3.
  • num13-14 (spies + verdict): anchored on different verses across lenses — vv 23-24 (typological cluster), vv 26-33 (literary contrast), vv 17-29 (canonical mission), v 33 (devotional grasshoppers); for num14 the five lenses anchor on five different verse ranges.
  • num16 (Korah): typological lens deliberately anchored on vv 47-48 (Aaron's intercession) rather than the more famous earth-opens verses (vv 31-33), which carry the devotional lens.
  • num17 (budding rod): the resurrection-typology and Heb 9:4 thread are spread across separate lenses to avoid restating "Aaron's rod budded" three times.

Watch list for tier-2 audit

These are the entries most worth a human spot-check during accuracy auditing:

  1. num13 typological — the cluster-of-grapes-as-Christ-on-the-cross typology is a patristic move (Theodoret, Origen). Calvin and most modern Reformed commentators do not develop it. The entry names the patristic source explicitly to keep this transparent. Some readers will find it too speculative; defensible as ancient typology with explicit attribution.
  2. num16 typological — "Christ stands at the same threshold, the pattern fulfilled in his cross." The Aaron-between-the-living-and-the-dead → Christ-on-the-cross move is a classic Reformed typological reading (Owen, Edwards). Defensible synthesis but worth confirming the move feels measured rather than overreaching.
  3. num17 christocentric — "Aaron's almond-flowering anticipates" Christ's resurrection (Rom 1:4). Patristic and modern Reformed both develop this; Calvin notes it briefly. Solid but is interpretive synthesis rather than direct citation.
  4. num14 christocentric — Christ-as-greater-intercessor (Heb 7:25) is sound; the implicit "Moses's prayer fails to overturn judgment" framing is intentional contrast but could read as understated about Moses if a reviewer prefers warmer language.

Out of scope

  • No new content generation in content/numbers/{N}.json itself.
  • No app code changes.
  • No CI workflow changes.
  • app/assets/db-manifest.json and app/assets/explore-images.json drift was checked out before staging.

Rollback

git revert <merge-commit> is sufficient. No schema changes, no migration, no R2 mutation.

Refs

Numbers 19–27 likely up next as batch 6 (red heifer, Moses's rod-strike at Meribah, Edom refusal, bronze serpent, Balaam, Phinehas, second census, daughters of Zelophehad).

@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation146758 passed, 0 failed
Build DB
DB Integrity101 passed, 0 failed

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 4001❌ 04001
Suites✅ 532❌ 0532

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 94.5s

Sign up for freeto 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

@CraigBuckmaster
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782) - #1805

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18
May 2, 2026
Merged

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782)#1805
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Summary

Batch 5 of the Pentateuch-rest pilot tracked under #1782 — second batch of Numbers. Adds 33 hermeneutic-lens entries across Numbers 10–18: silver trumpets and the departure from Sinai, the rebellion cycles, the spies and the wilderness verdict, Korah, Aaron's budding rod, and the priestly portions.

Per-chapter distribution (33 total)

ChapterLensesWhy
num10 (silver trumpets, departure)4literary hinge + ark/Christ + canonical trumpet thread + petitionary devotional
num11 (manna, quail, seventy elders)5rebellion peak — five-movement structure
num12 (Miriam, Aaron, Moses)4grammatical (anav) + prophet-type + face-to-face christocentric + judgment thread
num13 (the twelve spies)4majority/minority literary + cluster-of-grapes typology + Heb 3 thread + grasshopper devotional
num14 (rebellion at Kadesh, the verdict)5theology peak — Heb 3:7-19 / Ps 95 anchor across five lenses
num15 (offerings, tassels)2tzitzit thread to Mt 9:20 + visible-reminder devotional
num16 (Korah's rebellion)4three-act literary + censer-typology + Jude/2 Tim canonical + sober devotional
num17 (Aaron's budding rod)3resurrection-pattern type + Christ-vindicated christocentric + Heb 9:4 canonical
num18 (priestly and Levitical portions)2tithe canonical (Heb 7) + priestly-portion redemptive

Avg 3.7 entries/ch — higher than batch 4's 3.0, which fits: this stretch is dense with peak narrative material (rebellion cycles, the verdict, Korah's confrontation, the budding rod). Five of nine chapters are theology peaks; only num15 and num18 sit at the procedural minimum of 2.

Theological highlights

  • num14 (peak): the wilderness generation's defining chapter. Five movements (rebellion → intercession → verdict → forty-year sentence → Hormah defeat). Heb 3:7-19 is the explicit fulfillment text via Ps 95:8-11. Christocentric anchor: Christ as the greater intercessor (Heb 7:25) who secures full deliverance, not delay. Redemptive arc: forty years is also covenant mercy — the next generation enters.
  • num16: vv 47-48's Aaron "stood between the living and the dead, and the plague stopped" reads as a priestly type — the censer that judges (vv 35-40) becomes the censer that saves. Christ at the same threshold. v 5's "the LORD will show who is his" cited at 2 Tim 2:19; Jude 11 names "the rebellion of Korah" as the canonical warning.
  • num17: Aaron's rod that buds, blossoms, and yields almonds overnight as a type of resurrection. Heb 9:4 names the rod inside the ark alongside the manna jar and the stone tablets.
  • num11: the Spirit on the seventy elders is the chapter's seed for Joel 2:28-29 and Acts 2:17-18. Moses's "would that all the LORD's people were prophets" reads as proto-Pentecost.
  • num13 typological: the cluster of grapes carried on a pole between two men (vv 23-24) — read by Theodoret and Origen as foreshadowing Christ on the cross between two criminals. Patristic move; flagged for tier-2 audit.

Pipeline gate results

schema_validator.py 146758 passed, 0 failed, 19 warnings (pre-existing ESV downloadable warns)
lens_quality_scorer.py 33/33 entries at 100/100 (per-chapter run, floor=100)
build_sqlite.py scripture.db green, hermeneutic_lenses chapter rows = 528
(= 495 baseline from #1804 + 33 batch 5; matches expected)
validate_sqlite.py 101 passed, 0 failed, 2 warnings (pre-existing embeddings/prompts)

Per-chapter SQLite distribution post-build (chapter_lens_content):

num10: 4 num11: 5 num12: 4 num13: 4 num14: 5 num15: 2 num16: 4 num17: 3 num18: 2

Length discipline

All entries authored to a 250-char target with 30-char headroom against the 280 ceiling. Actual range: 217–249 chars. Median ~234. One entry (num13 literary) initially landed at 251; trimmed to 242 before commit.

Filler / token guards

  • All six banned filler patterns verified absent at authoring time.
  • Rubric-token trap: every entry uses a token from its own lens's rubric. Specifically verified: typological entries use type / pattern / prefigures / shadow / foreshadow; canonical entries use canon / canonical / thread / across Scripture; christocentric entries name Christ / Jesus / Son of God explicitly.

Plagiarism guards on iconic chapters

The brief flagged that themes panels for the major chapters might cover the iconic verses; in practice the themes panels are still structurally thin (label + score + one-line note). Spot guards applied anyway:

  • num11 (manna): anchored typological lens on Jn 6:48-51 (manna-specific) rather than the more generic Jn 6:35; this also distinguishes from lev24 typological (bread of the Presence → Jn 6:35) authored in batch 3.
  • num13-14 (spies + verdict): anchored on different verses across lenses — vv 23-24 (typological cluster), vv 26-33 (literary contrast), vv 17-29 (canonical mission), v 33 (devotional grasshoppers); for num14 the five lenses anchor on five different verse ranges.
  • num16 (Korah): typological lens deliberately anchored on vv 47-48 (Aaron's intercession) rather than the more famous earth-opens verses (vv 31-33), which carry the devotional lens.
  • num17 (budding rod): the resurrection-typology and Heb 9:4 thread are spread across separate lenses to avoid restating "Aaron's rod budded" three times.

Watch list for tier-2 audit

These are the entries most worth a human spot-check during accuracy auditing:

  1. num13 typological — the cluster-of-grapes-as-Christ-on-the-cross typology is a patristic move (Theodoret, Origen). Calvin and most modern Reformed commentators do not develop it. The entry names the patristic source explicitly to keep this transparent. Some readers will find it too speculative; defensible as ancient typology with explicit attribution.
  2. num16 typological — "Christ stands at the same threshold, the pattern fulfilled in his cross." The Aaron-between-the-living-and-the-dead → Christ-on-the-cross move is a classic Reformed typological reading (Owen, Edwards). Defensible synthesis but worth confirming the move feels measured rather than overreaching.
  3. num17 christocentric — "Aaron's almond-flowering anticipates" Christ's resurrection (Rom 1:4). Patristic and modern Reformed both develop this; Calvin notes it briefly. Solid but is interpretive synthesis rather than direct citation.
  4. num14 christocentric — Christ-as-greater-intercessor (Heb 7:25) is sound; the implicit "Moses's prayer fails to overturn judgment" framing is intentional contrast but could read as understated about Moses if a reviewer prefers warmer language.

Out of scope

  • No new content generation in content/numbers/{N}.json itself.
  • No app code changes.
  • No CI workflow changes.
  • app/assets/db-manifest.json and app/assets/explore-images.json drift was checked out before staging.

Rollback

git revert <merge-commit> is sufficient. No schema changes, no migration, no R2 mutation.

Refs

Numbers 19–27 likely up next as batch 6 (red heifer, Moses's rod-strike at Meribah, Edom refusal, bronze serpent, Balaam, Phinehas, second census, daughters of Zelophehad).

@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation146758 passed, 0 failed
Build DB
DB Integrity101 passed, 0 failed

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 4001❌ 04001
Suites✅ 532❌ 0532

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 94.5s

Sign up for freeto 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

@CraigBuckmaster
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782) - #1805

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18
May 2, 2026
Merged

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782)#1805
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Summary

Batch 5 of the Pentateuch-rest pilot tracked under #1782 — second batch of Numbers. Adds 33 hermeneutic-lens entries across Numbers 10–18: silver trumpets and the departure from Sinai, the rebellion cycles, the spies and the wilderness verdict, Korah, Aaron's budding rod, and the priestly portions.

Per-chapter distribution (33 total)

ChapterLensesWhy
num10 (silver trumpets, departure)4literary hinge + ark/Christ + canonical trumpet thread + petitionary devotional
num11 (manna, quail, seventy elders)5rebellion peak — five-movement structure
num12 (Miriam, Aaron, Moses)4grammatical (anav) + prophet-type + face-to-face christocentric + judgment thread
num13 (the twelve spies)4majority/minority literary + cluster-of-grapes typology + Heb 3 thread + grasshopper devotional
num14 (rebellion at Kadesh, the verdict)5theology peak — Heb 3:7-19 / Ps 95 anchor across five lenses
num15 (offerings, tassels)2tzitzit thread to Mt 9:20 + visible-reminder devotional
num16 (Korah's rebellion)4three-act literary + censer-typology + Jude/2 Tim canonical + sober devotional
num17 (Aaron's budding rod)3resurrection-pattern type + Christ-vindicated christocentric + Heb 9:4 canonical
num18 (priestly and Levitical portions)2tithe canonical (Heb 7) + priestly-portion redemptive

Avg 3.7 entries/ch — higher than batch 4's 3.0, which fits: this stretch is dense with peak narrative material (rebellion cycles, the verdict, Korah's confrontation, the budding rod). Five of nine chapters are theology peaks; only num15 and num18 sit at the procedural minimum of 2.

Theological highlights

  • num14 (peak): the wilderness generation's defining chapter. Five movements (rebellion → intercession → verdict → forty-year sentence → Hormah defeat). Heb 3:7-19 is the explicit fulfillment text via Ps 95:8-11. Christocentric anchor: Christ as the greater intercessor (Heb 7:25) who secures full deliverance, not delay. Redemptive arc: forty years is also covenant mercy — the next generation enters.
  • num16: vv 47-48's Aaron "stood between the living and the dead, and the plague stopped" reads as a priestly type — the censer that judges (vv 35-40) becomes the censer that saves. Christ at the same threshold. v 5's "the LORD will show who is his" cited at 2 Tim 2:19; Jude 11 names "the rebellion of Korah" as the canonical warning.
  • num17: Aaron's rod that buds, blossoms, and yields almonds overnight as a type of resurrection. Heb 9:4 names the rod inside the ark alongside the manna jar and the stone tablets.
  • num11: the Spirit on the seventy elders is the chapter's seed for Joel 2:28-29 and Acts 2:17-18. Moses's "would that all the LORD's people were prophets" reads as proto-Pentecost.
  • num13 typological: the cluster of grapes carried on a pole between two men (vv 23-24) — read by Theodoret and Origen as foreshadowing Christ on the cross between two criminals. Patristic move; flagged for tier-2 audit.

Pipeline gate results

schema_validator.py 146758 passed, 0 failed, 19 warnings (pre-existing ESV downloadable warns)
lens_quality_scorer.py 33/33 entries at 100/100 (per-chapter run, floor=100)
build_sqlite.py scripture.db green, hermeneutic_lenses chapter rows = 528
(= 495 baseline from #1804 + 33 batch 5; matches expected)
validate_sqlite.py 101 passed, 0 failed, 2 warnings (pre-existing embeddings/prompts)

Per-chapter SQLite distribution post-build (chapter_lens_content):

num10: 4 num11: 5 num12: 4 num13: 4 num14: 5 num15: 2 num16: 4 num17: 3 num18: 2

Length discipline

All entries authored to a 250-char target with 30-char headroom against the 280 ceiling. Actual range: 217–249 chars. Median ~234. One entry (num13 literary) initially landed at 251; trimmed to 242 before commit.

Filler / token guards

  • All six banned filler patterns verified absent at authoring time.
  • Rubric-token trap: every entry uses a token from its own lens's rubric. Specifically verified: typological entries use type / pattern / prefigures / shadow / foreshadow; canonical entries use canon / canonical / thread / across Scripture; christocentric entries name Christ / Jesus / Son of God explicitly.

Plagiarism guards on iconic chapters

The brief flagged that themes panels for the major chapters might cover the iconic verses; in practice the themes panels are still structurally thin (label + score + one-line note). Spot guards applied anyway:

  • num11 (manna): anchored typological lens on Jn 6:48-51 (manna-specific) rather than the more generic Jn 6:35; this also distinguishes from lev24 typological (bread of the Presence → Jn 6:35) authored in batch 3.
  • num13-14 (spies + verdict): anchored on different verses across lenses — vv 23-24 (typological cluster), vv 26-33 (literary contrast), vv 17-29 (canonical mission), v 33 (devotional grasshoppers); for num14 the five lenses anchor on five different verse ranges.
  • num16 (Korah): typological lens deliberately anchored on vv 47-48 (Aaron's intercession) rather than the more famous earth-opens verses (vv 31-33), which carry the devotional lens.
  • num17 (budding rod): the resurrection-typology and Heb 9:4 thread are spread across separate lenses to avoid restating "Aaron's rod budded" three times.

Watch list for tier-2 audit

These are the entries most worth a human spot-check during accuracy auditing:

  1. num13 typological — the cluster-of-grapes-as-Christ-on-the-cross typology is a patristic move (Theodoret, Origen). Calvin and most modern Reformed commentators do not develop it. The entry names the patristic source explicitly to keep this transparent. Some readers will find it too speculative; defensible as ancient typology with explicit attribution.
  2. num16 typological — "Christ stands at the same threshold, the pattern fulfilled in his cross." The Aaron-between-the-living-and-the-dead → Christ-on-the-cross move is a classic Reformed typological reading (Owen, Edwards). Defensible synthesis but worth confirming the move feels measured rather than overreaching.
  3. num17 christocentric — "Aaron's almond-flowering anticipates" Christ's resurrection (Rom 1:4). Patristic and modern Reformed both develop this; Calvin notes it briefly. Solid but is interpretive synthesis rather than direct citation.
  4. num14 christocentric — Christ-as-greater-intercessor (Heb 7:25) is sound; the implicit "Moses's prayer fails to overturn judgment" framing is intentional contrast but could read as understated about Moses if a reviewer prefers warmer language.

Out of scope

  • No new content generation in content/numbers/{N}.json itself.
  • No app code changes.
  • No CI workflow changes.
  • app/assets/db-manifest.json and app/assets/explore-images.json drift was checked out before staging.

Rollback

git revert <merge-commit> is sufficient. No schema changes, no migration, no R2 mutation.

Refs

Numbers 19–27 likely up next as batch 6 (red heifer, Moses's rod-strike at Meribah, Edom refusal, bronze serpent, Balaam, Phinehas, second census, daughters of Zelophehad).

@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation146758 passed, 0 failed
Build DB
DB Integrity101 passed, 0 failed

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 4001❌ 04001
Suites✅ 532❌ 0532

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 94.5s

Sign up for freeto 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

@CraigBuckmaster
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782) - #1805

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18
May 2, 2026
Merged

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782)#1805
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Summary

Batch 5 of the Pentateuch-rest pilot tracked under #1782 — second batch of Numbers. Adds 33 hermeneutic-lens entries across Numbers 10–18: silver trumpets and the departure from Sinai, the rebellion cycles, the spies and the wilderness verdict, Korah, Aaron's budding rod, and the priestly portions.

Per-chapter distribution (33 total)

ChapterLensesWhy
num10 (silver trumpets, departure)4literary hinge + ark/Christ + canonical trumpet thread + petitionary devotional
num11 (manna, quail, seventy elders)5rebellion peak — five-movement structure
num12 (Miriam, Aaron, Moses)4grammatical (anav) + prophet-type + face-to-face christocentric + judgment thread
num13 (the twelve spies)4majority/minority literary + cluster-of-grapes typology + Heb 3 thread + grasshopper devotional
num14 (rebellion at Kadesh, the verdict)5theology peak — Heb 3:7-19 / Ps 95 anchor across five lenses
num15 (offerings, tassels)2tzitzit thread to Mt 9:20 + visible-reminder devotional
num16 (Korah's rebellion)4three-act literary + censer-typology + Jude/2 Tim canonical + sober devotional
num17 (Aaron's budding rod)3resurrection-pattern type + Christ-vindicated christocentric + Heb 9:4 canonical
num18 (priestly and Levitical portions)2tithe canonical (Heb 7) + priestly-portion redemptive

Avg 3.7 entries/ch — higher than batch 4's 3.0, which fits: this stretch is dense with peak narrative material (rebellion cycles, the verdict, Korah's confrontation, the budding rod). Five of nine chapters are theology peaks; only num15 and num18 sit at the procedural minimum of 2.

Theological highlights

  • num14 (peak): the wilderness generation's defining chapter. Five movements (rebellion → intercession → verdict → forty-year sentence → Hormah defeat). Heb 3:7-19 is the explicit fulfillment text via Ps 95:8-11. Christocentric anchor: Christ as the greater intercessor (Heb 7:25) who secures full deliverance, not delay. Redemptive arc: forty years is also covenant mercy — the next generation enters.
  • num16: vv 47-48's Aaron "stood between the living and the dead, and the plague stopped" reads as a priestly type — the censer that judges (vv 35-40) becomes the censer that saves. Christ at the same threshold. v 5's "the LORD will show who is his" cited at 2 Tim 2:19; Jude 11 names "the rebellion of Korah" as the canonical warning.
  • num17: Aaron's rod that buds, blossoms, and yields almonds overnight as a type of resurrection. Heb 9:4 names the rod inside the ark alongside the manna jar and the stone tablets.
  • num11: the Spirit on the seventy elders is the chapter's seed for Joel 2:28-29 and Acts 2:17-18. Moses's "would that all the LORD's people were prophets" reads as proto-Pentecost.
  • num13 typological: the cluster of grapes carried on a pole between two men (vv 23-24) — read by Theodoret and Origen as foreshadowing Christ on the cross between two criminals. Patristic move; flagged for tier-2 audit.

Pipeline gate results

schema_validator.py 146758 passed, 0 failed, 19 warnings (pre-existing ESV downloadable warns)
lens_quality_scorer.py 33/33 entries at 100/100 (per-chapter run, floor=100)
build_sqlite.py scripture.db green, hermeneutic_lenses chapter rows = 528
(= 495 baseline from #1804 + 33 batch 5; matches expected)
validate_sqlite.py 101 passed, 0 failed, 2 warnings (pre-existing embeddings/prompts)

Per-chapter SQLite distribution post-build (chapter_lens_content):

num10: 4 num11: 5 num12: 4 num13: 4 num14: 5 num15: 2 num16: 4 num17: 3 num18: 2

Length discipline

All entries authored to a 250-char target with 30-char headroom against the 280 ceiling. Actual range: 217–249 chars. Median ~234. One entry (num13 literary) initially landed at 251; trimmed to 242 before commit.

Filler / token guards

  • All six banned filler patterns verified absent at authoring time.
  • Rubric-token trap: every entry uses a token from its own lens's rubric. Specifically verified: typological entries use type / pattern / prefigures / shadow / foreshadow; canonical entries use canon / canonical / thread / across Scripture; christocentric entries name Christ / Jesus / Son of God explicitly.

Plagiarism guards on iconic chapters

The brief flagged that themes panels for the major chapters might cover the iconic verses; in practice the themes panels are still structurally thin (label + score + one-line note). Spot guards applied anyway:

  • num11 (manna): anchored typological lens on Jn 6:48-51 (manna-specific) rather than the more generic Jn 6:35; this also distinguishes from lev24 typological (bread of the Presence → Jn 6:35) authored in batch 3.
  • num13-14 (spies + verdict): anchored on different verses across lenses — vv 23-24 (typological cluster), vv 26-33 (literary contrast), vv 17-29 (canonical mission), v 33 (devotional grasshoppers); for num14 the five lenses anchor on five different verse ranges.
  • num16 (Korah): typological lens deliberately anchored on vv 47-48 (Aaron's intercession) rather than the more famous earth-opens verses (vv 31-33), which carry the devotional lens.
  • num17 (budding rod): the resurrection-typology and Heb 9:4 thread are spread across separate lenses to avoid restating "Aaron's rod budded" three times.

Watch list for tier-2 audit

These are the entries most worth a human spot-check during accuracy auditing:

  1. num13 typological — the cluster-of-grapes-as-Christ-on-the-cross typology is a patristic move (Theodoret, Origen). Calvin and most modern Reformed commentators do not develop it. The entry names the patristic source explicitly to keep this transparent. Some readers will find it too speculative; defensible as ancient typology with explicit attribution.
  2. num16 typological — "Christ stands at the same threshold, the pattern fulfilled in his cross." The Aaron-between-the-living-and-the-dead → Christ-on-the-cross move is a classic Reformed typological reading (Owen, Edwards). Defensible synthesis but worth confirming the move feels measured rather than overreaching.
  3. num17 christocentric — "Aaron's almond-flowering anticipates" Christ's resurrection (Rom 1:4). Patristic and modern Reformed both develop this; Calvin notes it briefly. Solid but is interpretive synthesis rather than direct citation.
  4. num14 christocentric — Christ-as-greater-intercessor (Heb 7:25) is sound; the implicit "Moses's prayer fails to overturn judgment" framing is intentional contrast but could read as understated about Moses if a reviewer prefers warmer language.

Out of scope

  • No new content generation in content/numbers/{N}.json itself.
  • No app code changes.
  • No CI workflow changes.
  • app/assets/db-manifest.json and app/assets/explore-images.json drift was checked out before staging.

Rollback

git revert <merge-commit> is sufficient. No schema changes, no migration, no R2 mutation.

Refs

Numbers 19–27 likely up next as batch 6 (red heifer, Moses's rod-strike at Meribah, Edom refusal, bronze serpent, Balaam, Phinehas, second census, daughters of Zelophehad).

@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation146758 passed, 0 failed
Build DB
DB Integrity101 passed, 0 failed

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 4001❌ 04001
Suites✅ 532❌ 0532

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 94.5s

Sign up for freeto 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

@CraigBuckmaster
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782) - #1805

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18
May 2, 2026
Merged

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782)#1805
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Summary

Batch 5 of the Pentateuch-rest pilot tracked under #1782 — second batch of Numbers. Adds 33 hermeneutic-lens entries across Numbers 10–18: silver trumpets and the departure from Sinai, the rebellion cycles, the spies and the wilderness verdict, Korah, Aaron's budding rod, and the priestly portions.

Per-chapter distribution (33 total)

ChapterLensesWhy
num10 (silver trumpets, departure)4literary hinge + ark/Christ + canonical trumpet thread + petitionary devotional
num11 (manna, quail, seventy elders)5rebellion peak — five-movement structure
num12 (Miriam, Aaron, Moses)4grammatical (anav) + prophet-type + face-to-face christocentric + judgment thread
num13 (the twelve spies)4majority/minority literary + cluster-of-grapes typology + Heb 3 thread + grasshopper devotional
num14 (rebellion at Kadesh, the verdict)5theology peak — Heb 3:7-19 / Ps 95 anchor across five lenses
num15 (offerings, tassels)2tzitzit thread to Mt 9:20 + visible-reminder devotional
num16 (Korah's rebellion)4three-act literary + censer-typology + Jude/2 Tim canonical + sober devotional
num17 (Aaron's budding rod)3resurrection-pattern type + Christ-vindicated christocentric + Heb 9:4 canonical
num18 (priestly and Levitical portions)2tithe canonical (Heb 7) + priestly-portion redemptive

Avg 3.7 entries/ch — higher than batch 4's 3.0, which fits: this stretch is dense with peak narrative material (rebellion cycles, the verdict, Korah's confrontation, the budding rod). Five of nine chapters are theology peaks; only num15 and num18 sit at the procedural minimum of 2.

Theological highlights

  • num14 (peak): the wilderness generation's defining chapter. Five movements (rebellion → intercession → verdict → forty-year sentence → Hormah defeat). Heb 3:7-19 is the explicit fulfillment text via Ps 95:8-11. Christocentric anchor: Christ as the greater intercessor (Heb 7:25) who secures full deliverance, not delay. Redemptive arc: forty years is also covenant mercy — the next generation enters.
  • num16: vv 47-48's Aaron "stood between the living and the dead, and the plague stopped" reads as a priestly type — the censer that judges (vv 35-40) becomes the censer that saves. Christ at the same threshold. v 5's "the LORD will show who is his" cited at 2 Tim 2:19; Jude 11 names "the rebellion of Korah" as the canonical warning.
  • num17: Aaron's rod that buds, blossoms, and yields almonds overnight as a type of resurrection. Heb 9:4 names the rod inside the ark alongside the manna jar and the stone tablets.
  • num11: the Spirit on the seventy elders is the chapter's seed for Joel 2:28-29 and Acts 2:17-18. Moses's "would that all the LORD's people were prophets" reads as proto-Pentecost.
  • num13 typological: the cluster of grapes carried on a pole between two men (vv 23-24) — read by Theodoret and Origen as foreshadowing Christ on the cross between two criminals. Patristic move; flagged for tier-2 audit.

Pipeline gate results

schema_validator.py 146758 passed, 0 failed, 19 warnings (pre-existing ESV downloadable warns)
lens_quality_scorer.py 33/33 entries at 100/100 (per-chapter run, floor=100)
build_sqlite.py scripture.db green, hermeneutic_lenses chapter rows = 528
(= 495 baseline from #1804 + 33 batch 5; matches expected)
validate_sqlite.py 101 passed, 0 failed, 2 warnings (pre-existing embeddings/prompts)

Per-chapter SQLite distribution post-build (chapter_lens_content):

num10: 4 num11: 5 num12: 4 num13: 4 num14: 5 num15: 2 num16: 4 num17: 3 num18: 2

Length discipline

All entries authored to a 250-char target with 30-char headroom against the 280 ceiling. Actual range: 217–249 chars. Median ~234. One entry (num13 literary) initially landed at 251; trimmed to 242 before commit.

Filler / token guards

  • All six banned filler patterns verified absent at authoring time.
  • Rubric-token trap: every entry uses a token from its own lens's rubric. Specifically verified: typological entries use type / pattern / prefigures / shadow / foreshadow; canonical entries use canon / canonical / thread / across Scripture; christocentric entries name Christ / Jesus / Son of God explicitly.

Plagiarism guards on iconic chapters

The brief flagged that themes panels for the major chapters might cover the iconic verses; in practice the themes panels are still structurally thin (label + score + one-line note). Spot guards applied anyway:

  • num11 (manna): anchored typological lens on Jn 6:48-51 (manna-specific) rather than the more generic Jn 6:35; this also distinguishes from lev24 typological (bread of the Presence → Jn 6:35) authored in batch 3.
  • num13-14 (spies + verdict): anchored on different verses across lenses — vv 23-24 (typological cluster), vv 26-33 (literary contrast), vv 17-29 (canonical mission), v 33 (devotional grasshoppers); for num14 the five lenses anchor on five different verse ranges.
  • num16 (Korah): typological lens deliberately anchored on vv 47-48 (Aaron's intercession) rather than the more famous earth-opens verses (vv 31-33), which carry the devotional lens.
  • num17 (budding rod): the resurrection-typology and Heb 9:4 thread are spread across separate lenses to avoid restating "Aaron's rod budded" three times.

Watch list for tier-2 audit

These are the entries most worth a human spot-check during accuracy auditing:

  1. num13 typological — the cluster-of-grapes-as-Christ-on-the-cross typology is a patristic move (Theodoret, Origen). Calvin and most modern Reformed commentators do not develop it. The entry names the patristic source explicitly to keep this transparent. Some readers will find it too speculative; defensible as ancient typology with explicit attribution.
  2. num16 typological — "Christ stands at the same threshold, the pattern fulfilled in his cross." The Aaron-between-the-living-and-the-dead → Christ-on-the-cross move is a classic Reformed typological reading (Owen, Edwards). Defensible synthesis but worth confirming the move feels measured rather than overreaching.
  3. num17 christocentric — "Aaron's almond-flowering anticipates" Christ's resurrection (Rom 1:4). Patristic and modern Reformed both develop this; Calvin notes it briefly. Solid but is interpretive synthesis rather than direct citation.
  4. num14 christocentric — Christ-as-greater-intercessor (Heb 7:25) is sound; the implicit "Moses's prayer fails to overturn judgment" framing is intentional contrast but could read as understated about Moses if a reviewer prefers warmer language.

Out of scope

  • No new content generation in content/numbers/{N}.json itself.
  • No app code changes.
  • No CI workflow changes.
  • app/assets/db-manifest.json and app/assets/explore-images.json drift was checked out before staging.

Rollback

git revert <merge-commit> is sufficient. No schema changes, no migration, no R2 mutation.

Refs

Numbers 19–27 likely up next as batch 6 (red heifer, Moses's rod-strike at Meribah, Edom refusal, bronze serpent, Balaam, Phinehas, second census, daughters of Zelophehad).

@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation146758 passed, 0 failed
Build DB
DB Integrity101 passed, 0 failed

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 4001❌ 04001
Suites✅ 532❌ 0532

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 94.5s

Sign up for freeto 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

@CraigBuckmaster
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782) - #1805

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18
May 2, 2026
Merged

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782)#1805
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Summary

Batch 5 of the Pentateuch-rest pilot tracked under #1782 — second batch of Numbers. Adds 33 hermeneutic-lens entries across Numbers 10–18: silver trumpets and the departure from Sinai, the rebellion cycles, the spies and the wilderness verdict, Korah, Aaron's budding rod, and the priestly portions.

Per-chapter distribution (33 total)

ChapterLensesWhy
num10 (silver trumpets, departure)4literary hinge + ark/Christ + canonical trumpet thread + petitionary devotional
num11 (manna, quail, seventy elders)5rebellion peak — five-movement structure
num12 (Miriam, Aaron, Moses)4grammatical (anav) + prophet-type + face-to-face christocentric + judgment thread
num13 (the twelve spies)4majority/minority literary + cluster-of-grapes typology + Heb 3 thread + grasshopper devotional
num14 (rebellion at Kadesh, the verdict)5theology peak — Heb 3:7-19 / Ps 95 anchor across five lenses
num15 (offerings, tassels)2tzitzit thread to Mt 9:20 + visible-reminder devotional
num16 (Korah's rebellion)4three-act literary + censer-typology + Jude/2 Tim canonical + sober devotional
num17 (Aaron's budding rod)3resurrection-pattern type + Christ-vindicated christocentric + Heb 9:4 canonical
num18 (priestly and Levitical portions)2tithe canonical (Heb 7) + priestly-portion redemptive

Avg 3.7 entries/ch — higher than batch 4's 3.0, which fits: this stretch is dense with peak narrative material (rebellion cycles, the verdict, Korah's confrontation, the budding rod). Five of nine chapters are theology peaks; only num15 and num18 sit at the procedural minimum of 2.

Theological highlights

  • num14 (peak): the wilderness generation's defining chapter. Five movements (rebellion → intercession → verdict → forty-year sentence → Hormah defeat). Heb 3:7-19 is the explicit fulfillment text via Ps 95:8-11. Christocentric anchor: Christ as the greater intercessor (Heb 7:25) who secures full deliverance, not delay. Redemptive arc: forty years is also covenant mercy — the next generation enters.
  • num16: vv 47-48's Aaron "stood between the living and the dead, and the plague stopped" reads as a priestly type — the censer that judges (vv 35-40) becomes the censer that saves. Christ at the same threshold. v 5's "the LORD will show who is his" cited at 2 Tim 2:19; Jude 11 names "the rebellion of Korah" as the canonical warning.
  • num17: Aaron's rod that buds, blossoms, and yields almonds overnight as a type of resurrection. Heb 9:4 names the rod inside the ark alongside the manna jar and the stone tablets.
  • num11: the Spirit on the seventy elders is the chapter's seed for Joel 2:28-29 and Acts 2:17-18. Moses's "would that all the LORD's people were prophets" reads as proto-Pentecost.
  • num13 typological: the cluster of grapes carried on a pole between two men (vv 23-24) — read by Theodoret and Origen as foreshadowing Christ on the cross between two criminals. Patristic move; flagged for tier-2 audit.

Pipeline gate results

schema_validator.py 146758 passed, 0 failed, 19 warnings (pre-existing ESV downloadable warns)
lens_quality_scorer.py 33/33 entries at 100/100 (per-chapter run, floor=100)
build_sqlite.py scripture.db green, hermeneutic_lenses chapter rows = 528
(= 495 baseline from #1804 + 33 batch 5; matches expected)
validate_sqlite.py 101 passed, 0 failed, 2 warnings (pre-existing embeddings/prompts)

Per-chapter SQLite distribution post-build (chapter_lens_content):

num10: 4 num11: 5 num12: 4 num13: 4 num14: 5 num15: 2 num16: 4 num17: 3 num18: 2

Length discipline

All entries authored to a 250-char target with 30-char headroom against the 280 ceiling. Actual range: 217–249 chars. Median ~234. One entry (num13 literary) initially landed at 251; trimmed to 242 before commit.

Filler / token guards

  • All six banned filler patterns verified absent at authoring time.
  • Rubric-token trap: every entry uses a token from its own lens's rubric. Specifically verified: typological entries use type / pattern / prefigures / shadow / foreshadow; canonical entries use canon / canonical / thread / across Scripture; christocentric entries name Christ / Jesus / Son of God explicitly.

Plagiarism guards on iconic chapters

The brief flagged that themes panels for the major chapters might cover the iconic verses; in practice the themes panels are still structurally thin (label + score + one-line note). Spot guards applied anyway:

  • num11 (manna): anchored typological lens on Jn 6:48-51 (manna-specific) rather than the more generic Jn 6:35; this also distinguishes from lev24 typological (bread of the Presence → Jn 6:35) authored in batch 3.
  • num13-14 (spies + verdict): anchored on different verses across lenses — vv 23-24 (typological cluster), vv 26-33 (literary contrast), vv 17-29 (canonical mission), v 33 (devotional grasshoppers); for num14 the five lenses anchor on five different verse ranges.
  • num16 (Korah): typological lens deliberately anchored on vv 47-48 (Aaron's intercession) rather than the more famous earth-opens verses (vv 31-33), which carry the devotional lens.
  • num17 (budding rod): the resurrection-typology and Heb 9:4 thread are spread across separate lenses to avoid restating "Aaron's rod budded" three times.

Watch list for tier-2 audit

These are the entries most worth a human spot-check during accuracy auditing:

  1. num13 typological — the cluster-of-grapes-as-Christ-on-the-cross typology is a patristic move (Theodoret, Origen). Calvin and most modern Reformed commentators do not develop it. The entry names the patristic source explicitly to keep this transparent. Some readers will find it too speculative; defensible as ancient typology with explicit attribution.
  2. num16 typological — "Christ stands at the same threshold, the pattern fulfilled in his cross." The Aaron-between-the-living-and-the-dead → Christ-on-the-cross move is a classic Reformed typological reading (Owen, Edwards). Defensible synthesis but worth confirming the move feels measured rather than overreaching.
  3. num17 christocentric — "Aaron's almond-flowering anticipates" Christ's resurrection (Rom 1:4). Patristic and modern Reformed both develop this; Calvin notes it briefly. Solid but is interpretive synthesis rather than direct citation.
  4. num14 christocentric — Christ-as-greater-intercessor (Heb 7:25) is sound; the implicit "Moses's prayer fails to overturn judgment" framing is intentional contrast but could read as understated about Moses if a reviewer prefers warmer language.

Out of scope

  • No new content generation in content/numbers/{N}.json itself.
  • No app code changes.
  • No CI workflow changes.
  • app/assets/db-manifest.json and app/assets/explore-images.json drift was checked out before staging.

Rollback

git revert <merge-commit> is sufficient. No schema changes, no migration, no R2 mutation.

Refs

Numbers 19–27 likely up next as batch 6 (red heifer, Moses's rod-strike at Meribah, Edom refusal, bronze serpent, Balaam, Phinehas, second census, daughters of Zelophehad).

@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation146758 passed, 0 failed
Build DB
DB Integrity101 passed, 0 failed

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 4001❌ 04001
Suites✅ 532❌ 0532

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 94.5s

Sign up for freeto 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

@CraigBuckmaster
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782) - #1805

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18
May 2, 2026
Merged

feat(lenses): Numbers 10-18 lens content, batch 5 of Pentateuch-rest pilot (#820, #1782)#1805
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-4-numbers-10-to-18

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Summary

Batch 5 of the Pentateuch-rest pilot tracked under #1782 — second batch of Numbers. Adds 33 hermeneutic-lens entries across Numbers 10–18: silver trumpets and the departure from Sinai, the rebellion cycles, the spies and the wilderness verdict, Korah, Aaron's budding rod, and the priestly portions.

Per-chapter distribution (33 total)

ChapterLensesWhy
num10 (silver trumpets, departure)4literary hinge + ark/Christ + canonical trumpet thread + petitionary devotional
num11 (manna, quail, seventy elders)5rebellion peak — five-movement structure
num12 (Miriam, Aaron, Moses)4grammatical (anav) + prophet-type + face-to-face christocentric + judgment thread
num13 (the twelve spies)4majority/minority literary + cluster-of-grapes typology + Heb 3 thread + grasshopper devotional
num14 (rebellion at Kadesh, the verdict)5theology peak — Heb 3:7-19 / Ps 95 anchor across five lenses
num15 (offerings, tassels)2tzitzit thread to Mt 9:20 + visible-reminder devotional
num16 (Korah's rebellion)4three-act literary + censer-typology + Jude/2 Tim canonical + sober devotional
num17 (Aaron's budding rod)3resurrection-pattern type + Christ-vindicated christocentric + Heb 9:4 canonical
num18 (priestly and Levitical portions)2tithe canonical (Heb 7) + priestly-portion redemptive

Avg 3.7 entries/ch — higher than batch 4's 3.0, which fits: this stretch is dense with peak narrative material (rebellion cycles, the verdict, Korah's confrontation, the budding rod). Five of nine chapters are theology peaks; only num15 and num18 sit at the procedural minimum of 2.

Theological highlights

  • num14 (peak): the wilderness generation's defining chapter. Five movements (rebellion → intercession → verdict → forty-year sentence → Hormah defeat). Heb 3:7-19 is the explicit fulfillment text via Ps 95:8-11. Christocentric anchor: Christ as the greater intercessor (Heb 7:25) who secures full deliverance, not delay. Redemptive arc: forty years is also covenant mercy — the next generation enters.
  • num16: vv 47-48's Aaron "stood between the living and the dead, and the plague stopped" reads as a priestly type — the censer that judges (vv 35-40) becomes the censer that saves. Christ at the same threshold. v 5's "the LORD will show who is his" cited at 2 Tim 2:19; Jude 11 names "the rebellion of Korah" as the canonical warning.
  • num17: Aaron's rod that buds, blossoms, and yields almonds overnight as a type of resurrection. Heb 9:4 names the rod inside the ark alongside the manna jar and the stone tablets.
  • num11: the Spirit on the seventy elders is the chapter's seed for Joel 2:28-29 and Acts 2:17-18. Moses's "would that all the LORD's people were prophets" reads as proto-Pentecost.
  • num13 typological: the cluster of grapes carried on a pole between two men (vv 23-24) — read by Theodoret and Origen as foreshadowing Christ on the cross between two criminals. Patristic move; flagged for tier-2 audit.

Pipeline gate results

schema_validator.py 146758 passed, 0 failed, 19 warnings (pre-existing ESV downloadable warns)
lens_quality_scorer.py 33/33 entries at 100/100 (per-chapter run, floor=100)
build_sqlite.py scripture.db green, hermeneutic_lenses chapter rows = 528
(= 495 baseline from #1804 + 33 batch 5; matches expected)
validate_sqlite.py 101 passed, 0 failed, 2 warnings (pre-existing embeddings/prompts)

Per-chapter SQLite distribution post-build (chapter_lens_content):

num10: 4 num11: 5 num12: 4 num13: 4 num14: 5 num15: 2 num16: 4 num17: 3 num18: 2

Length discipline

All entries authored to a 250-char target with 30-char headroom against the 280 ceiling. Actual range: 217–249 chars. Median ~234. One entry (num13 literary) initially landed at 251; trimmed to 242 before commit.

Filler / token guards

  • All six banned filler patterns verified absent at authoring time.
  • Rubric-token trap: every entry uses a token from its own lens's rubric. Specifically verified: typological entries use type / pattern / prefigures / shadow / foreshadow; canonical entries use canon / canonical / thread / across Scripture; christocentric entries name Christ / Jesus / Son of God explicitly.

Plagiarism guards on iconic chapters

The brief flagged that themes panels for the major chapters might cover the iconic verses; in practice the themes panels are still structurally thin (label + score + one-line note). Spot guards applied anyway:

  • num11 (manna): anchored typological lens on Jn 6:48-51 (manna-specific) rather than the more generic Jn 6:35; this also distinguishes from lev24 typological (bread of the Presence → Jn 6:35) authored in batch 3.
  • num13-14 (spies + verdict): anchored on different verses across lenses — vv 23-24 (typological cluster), vv 26-33 (literary contrast), vv 17-29 (canonical mission), v 33 (devotional grasshoppers); for num14 the five lenses anchor on five different verse ranges.
  • num16 (Korah): typological lens deliberately anchored on vv 47-48 (Aaron's intercession) rather than the more famous earth-opens verses (vv 31-33), which carry the devotional lens.
  • num17 (budding rod): the resurrection-typology and Heb 9:4 thread are spread across separate lenses to avoid restating "Aaron's rod budded" three times.

Watch list for tier-2 audit

These are the entries most worth a human spot-check during accuracy auditing:

  1. num13 typological — the cluster-of-grapes-as-Christ-on-the-cross typology is a patristic move (Theodoret, Origen). Calvin and most modern Reformed commentators do not develop it. The entry names the patristic source explicitly to keep this transparent. Some readers will find it too speculative; defensible as ancient typology with explicit attribution.
  2. num16 typological — "Christ stands at the same threshold, the pattern fulfilled in his cross." The Aaron-between-the-living-and-the-dead → Christ-on-the-cross move is a classic Reformed typological reading (Owen, Edwards). Defensible synthesis but worth confirming the move feels measured rather than overreaching.
  3. num17 christocentric — "Aaron's almond-flowering anticipates" Christ's resurrection (Rom 1:4). Patristic and modern Reformed both develop this; Calvin notes it briefly. Solid but is interpretive synthesis rather than direct citation.
  4. num14 christocentric — Christ-as-greater-intercessor (Heb 7:25) is sound; the implicit "Moses's prayer fails to overturn judgment" framing is intentional contrast but could read as understated about Moses if a reviewer prefers warmer language.

Out of scope

  • No new content generation in content/numbers/{N}.json itself.
  • No app code changes.
  • No CI workflow changes.
  • app/assets/db-manifest.json and app/assets/explore-images.json drift was checked out before staging.

Rollback

git revert <merge-commit> is sufficient. No schema changes, no migration, no R2 mutation.

Refs

Numbers 19–27 likely up next as batch 6 (red heifer, Moses's rod-strike at Meribah, Edom refusal, bronze serpent, Balaam, Phinehas, second census, daughters of Zelophehad).

@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

StepStatusDetails
Schema Validation146758 passed, 0 failed
Build DB
DB Integrity101 passed, 0 failed

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 4001❌ 04001
Suites✅ 532❌ 0532

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 94.5s

Sign up for freeto 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

@CraigBuckmaster