Skip to content

feat(lenses): Genesis 1 proof-of-concept (#820, #1781) - #1791

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept
Apr 28, 2026
Merged

feat(lenses): Genesis 1 proof-of-concept (#820, #1781)#1791
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Genesis 1 — proof-of-concept for Epic #820 / #1781

Single-chapter slice of the Genesis pilot. Ships 6 lens entries for Genesis 1 to validate the entire Phase 0 + Phase 1 + quality-gate pipeline against real content before scaling.

The remaining 49 Genesis chapters stay under #1781 — this PR is the smoke test that proves the pipeline works end-to-end. The regex bug it caught (see below) is exactly the kind of thing a single-chapter PoC is supposed to surface.

Coverage decisions

Curated sparse: 6 of 8 lenses applied. Skipped:

  • devotional — Genesis 1 is theological foundation; devotional response is more naturally drawn from later texts. Forcing it here would invite filler.
  • mission — the missional thread of Scripture is rooted in Genesis 12 (Abrahamic call), not Genesis 1. The accuracy auditor would flag a missional Genesis-1 entry as fabrication.

The 6 included:

LensWhat it surfaces
grammaticalSevenfold formula, opening/closing markers, bara bookending vv 1 and 27
literaryForming/filling structure across days 1-3 paired with 4-6
typologicalSpirit hovering, seventh-day rest, light/dark separation
redemptiveImage-of-God commission grounds the whole arc to Christ
christocentricJohn 1:1-3, Col 1:16, divine speech as the same Word
canonicalCreation-by-speech echoes; Rev 21-22 recapitulation

Each entry has a panel_filter and panel_order selected to surface the existing chapter panels that that lens most illuminates, in the order that best supports the reading.

Quality gate results (local)

$ python3 _tools/schema_validator.py
RESULTS: 138138 passed, 0 failed, 19 warnings
$ python3 _tools/build_sqlite.py
[OK] hermeneutic_lenses: 8 lenses, 6 contents
$ python3 _tools/validate_sqlite.py
RESULTS: 101 passed, 0 failed, 2 warnings
$ python3 _tools/lens_quality_scorer.py --chapter gen1
LENS QUALITY REPORT — 6 entries
Passing (>= 90): 6
Failing (< 90): 0
Average: 100.0/100

All entries 257–274 chars (within the 80–280 schema range). All score 25/25 on every DVCR dimension.

Tier-2 accuracy audit

accuracy_meta_extractors.extract_hermeneutic_lenses() produces 6 claims from this content (one per lens entry), ready for accuracy_auditor.py --tier 2 to verify in CI. I can't run the tier-2 audit locally (no API key in the dev container — that's CI's job).

If any claim fails the tier-2 verifier, the auditor will flag it as a position the named hermeneutical school doesn't actually advocate, and the entry needs revision before merge.

The exegesis I think is most likely to draw an audit flag (transparency note): the typological claim that light/dark separation foreshadows Revelation 21 is defensible (Beale, The Temple and the Church's Mission; many patristic readings) but it's the closest to a stretch in this batch. The other two anchors in that entry — Spirit hovering → new creation, seventh-day rest → Hebrews 4 — are rock-solid. If the audit pushes back on the Rev 21 anchor, I'll trim it.

Scorer fix included

lens_quality_scorer.py had a regex bug that this content surfaced: VERSE_REF_RE was matching numbers after a colon, so Psalm 33:6 got parsed as a verse reference and flagged 33-6 as out-of-range for Genesis 1 (which has 31 verses).

Fixed by tightening VERSE_REF_RE to require an explicit v / vv prefix for in-chapter validation, and adding a separate looser ANY_VERSE_PATTERN for the Density "has any verse anchor?" check. Verified across 10 representative cases:

InputShould match?Did match?
v 5yes
vv 5-7yes
v. 31yes
(vv 26-28)yes
Psalm 33:6no
Heb 4:9-11no
Genesis 1:3no
Col 1:15no
verses 26 and 27no✓ (no v/vv prefix)
vv. 5, 8, 13yes (first match)

This regex fix is part of the same PR because the lens content immediately depends on it — no point shipping content that would fail the scorer for the wrong reason.

What this PR does NOT do

Rollback plan

Pure additive content + one-line scorer regex tightening. git revert is clean — nothing references the new content row except the app's lens-toggle UI, which currently shows a guidance string and (per #1790) optionally filters/reorders panels. Reverting just makes Genesis 1's lens toggle show no guidance, same as the rest of the corpus.

Refs #820, #1781.

First chapter of the Genesis pilot. Curated-sparse coverage: 6 of 8
lenses applied (skipped devotional + missional — Gen 1 is theological
foundation, not the natural anchor for those frameworks).
Content (content/hermeneutic_lenses/chapters/gen1.json):
- grammatical — sevenfold formula, opening/closing markers, bara bookending
- literary — forming/filling structure across days 1-3 / 4-6
- typological — Spirit hovering, seventh-day rest, light/dark separation
- redemptive — image of God commission grounds the whole arc to Christ
- christocentric — John 1:1-3, Col 1:16, divine speech as the same Word
- canonical — creation-by-speech echoes; Rev 21-22 recapitulation
All entries:
- 257-274 chars (within the 80-280 schema range)
- score 100/100 on lens_quality_scorer (Density, Verse Coverage,
Completeness, Relevance — 25 each)
- panel_filter / panel_order set to surface the panels each lens most
illuminates, in the order that best supports that reading
Scorer fix (caught by this content):
- VERSE_REF_RE was matching numbers after a colon ('Psalm 33:6' →
flagged 33-6 as out-of-range for Gen 1). Tightened to require an
explicit v/vv prefix for in-chapter validation. A new looser
ANY_VERSE_PATTERN handles the Density 'has any verse anchor?'
check. Verified across 10 representative cases including
'Psalm 33:6', 'Heb 4:9-11', 'Col 1:15', 'v 5', 'vv 26-28'.
End-to-end pipeline verified locally:
- schema_validator: 138138 passed, 0 failed
- build_sqlite: hermeneutic_lenses: 8 lenses, 6 contents
- validate_sqlite: 101 passed, 0 failed
- lens_quality_scorer --chapter gen1: 6/6 passing, avg 100.0/100
- accuracy auditor extractor: 6 claims produced, ready for tier-2
in CI (no API key locally; CI gate runs on PR)
Pilot purpose:
This single chapter exists to validate the full Phase 0 + Phase 1 +
quality-gate pipeline against real content before scaling to the
remaining 49 Genesis chapters (still tracked under #1781) and the
8 genre batches that follow (#1782-1789). Any pipeline issues should
surface here; the regex bug is the first one this caught.
Out of scope:
- Genesis 2-50 (rest of #1781)
- Tier-2 accuracy audit results (runs in CI)
- The typological 'light/dark → Rev 21' reading is defensible (e.g.
Beale's NT use of OT) but the closest to a stretch in this batch.
Letting the tier-2 audit have the last word.
Refs #820, #1781.
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

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

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3973❌ 03973
Suites✅ 531❌ 0531

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 95.8s

@CraigBuckmaster
CraigBuckmaster merged commit 75f78d1 into masterApr 28, 2026
7 checks passed
@CraigBuckmaster
CraigBuckmaster deleted the feat/820-2-genesis-1-proof-of-concept branch April 28, 2026 18:48
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)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
feat(lenses): Genesis 1 proof-of-concept (#820, #1781) by CraigBuckmaster · Pull Request #1791 · CraigBuckmaster/ScriptureDeepDive · GitHub
Skip to content

feat(lenses): Genesis 1 proof-of-concept (#820, #1781) - #1791

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept
Apr 28, 2026
Merged

feat(lenses): Genesis 1 proof-of-concept (#820, #1781)#1791
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Genesis 1 — proof-of-concept for Epic #820 / #1781

Single-chapter slice of the Genesis pilot. Ships 6 lens entries for Genesis 1 to validate the entire Phase 0 + Phase 1 + quality-gate pipeline against real content before scaling.

The remaining 49 Genesis chapters stay under #1781 — this PR is the smoke test that proves the pipeline works end-to-end. The regex bug it caught (see below) is exactly the kind of thing a single-chapter PoC is supposed to surface.

Coverage decisions

Curated sparse: 6 of 8 lenses applied. Skipped:

  • devotional — Genesis 1 is theological foundation; devotional response is more naturally drawn from later texts. Forcing it here would invite filler.
  • mission — the missional thread of Scripture is rooted in Genesis 12 (Abrahamic call), not Genesis 1. The accuracy auditor would flag a missional Genesis-1 entry as fabrication.

The 6 included:

LensWhat it surfaces
grammaticalSevenfold formula, opening/closing markers, bara bookending vv 1 and 27
literaryForming/filling structure across days 1-3 paired with 4-6
typologicalSpirit hovering, seventh-day rest, light/dark separation
redemptiveImage-of-God commission grounds the whole arc to Christ
christocentricJohn 1:1-3, Col 1:16, divine speech as the same Word
canonicalCreation-by-speech echoes; Rev 21-22 recapitulation

Each entry has a panel_filter and panel_order selected to surface the existing chapter panels that that lens most illuminates, in the order that best supports the reading.

Quality gate results (local)

$ python3 _tools/schema_validator.py
RESULTS: 138138 passed, 0 failed, 19 warnings
$ python3 _tools/build_sqlite.py
[OK] hermeneutic_lenses: 8 lenses, 6 contents
$ python3 _tools/validate_sqlite.py
RESULTS: 101 passed, 0 failed, 2 warnings
$ python3 _tools/lens_quality_scorer.py --chapter gen1
LENS QUALITY REPORT — 6 entries
Passing (>= 90): 6
Failing (< 90): 0
Average: 100.0/100

All entries 257–274 chars (within the 80–280 schema range). All score 25/25 on every DVCR dimension.

Tier-2 accuracy audit

accuracy_meta_extractors.extract_hermeneutic_lenses() produces 6 claims from this content (one per lens entry), ready for accuracy_auditor.py --tier 2 to verify in CI. I can't run the tier-2 audit locally (no API key in the dev container — that's CI's job).

If any claim fails the tier-2 verifier, the auditor will flag it as a position the named hermeneutical school doesn't actually advocate, and the entry needs revision before merge.

The exegesis I think is most likely to draw an audit flag (transparency note): the typological claim that light/dark separation foreshadows Revelation 21 is defensible (Beale, The Temple and the Church's Mission; many patristic readings) but it's the closest to a stretch in this batch. The other two anchors in that entry — Spirit hovering → new creation, seventh-day rest → Hebrews 4 — are rock-solid. If the audit pushes back on the Rev 21 anchor, I'll trim it.

Scorer fix included

lens_quality_scorer.py had a regex bug that this content surfaced: VERSE_REF_RE was matching numbers after a colon, so Psalm 33:6 got parsed as a verse reference and flagged 33-6 as out-of-range for Genesis 1 (which has 31 verses).

Fixed by tightening VERSE_REF_RE to require an explicit v / vv prefix for in-chapter validation, and adding a separate looser ANY_VERSE_PATTERN for the Density "has any verse anchor?" check. Verified across 10 representative cases:

InputShould match?Did match?
v 5yes
vv 5-7yes
v. 31yes
(vv 26-28)yes
Psalm 33:6no
Heb 4:9-11no
Genesis 1:3no
Col 1:15no
verses 26 and 27no✓ (no v/vv prefix)
vv. 5, 8, 13yes (first match)

This regex fix is part of the same PR because the lens content immediately depends on it — no point shipping content that would fail the scorer for the wrong reason.

What this PR does NOT do

Rollback plan

Pure additive content + one-line scorer regex tightening. git revert is clean — nothing references the new content row except the app's lens-toggle UI, which currently shows a guidance string and (per #1790) optionally filters/reorders panels. Reverting just makes Genesis 1's lens toggle show no guidance, same as the rest of the corpus.

Refs #820, #1781.

First chapter of the Genesis pilot. Curated-sparse coverage: 6 of 8
lenses applied (skipped devotional + missional — Gen 1 is theological
foundation, not the natural anchor for those frameworks).
Content (content/hermeneutic_lenses/chapters/gen1.json):
- grammatical — sevenfold formula, opening/closing markers, bara bookending
- literary — forming/filling structure across days 1-3 / 4-6
- typological — Spirit hovering, seventh-day rest, light/dark separation
- redemptive — image of God commission grounds the whole arc to Christ
- christocentric — John 1:1-3, Col 1:16, divine speech as the same Word
- canonical — creation-by-speech echoes; Rev 21-22 recapitulation
All entries:
- 257-274 chars (within the 80-280 schema range)
- score 100/100 on lens_quality_scorer (Density, Verse Coverage,
Completeness, Relevance — 25 each)
- panel_filter / panel_order set to surface the panels each lens most
illuminates, in the order that best supports that reading
Scorer fix (caught by this content):
- VERSE_REF_RE was matching numbers after a colon ('Psalm 33:6' →
flagged 33-6 as out-of-range for Gen 1). Tightened to require an
explicit v/vv prefix for in-chapter validation. A new looser
ANY_VERSE_PATTERN handles the Density 'has any verse anchor?'
check. Verified across 10 representative cases including
'Psalm 33:6', 'Heb 4:9-11', 'Col 1:15', 'v 5', 'vv 26-28'.
End-to-end pipeline verified locally:
- schema_validator: 138138 passed, 0 failed
- build_sqlite: hermeneutic_lenses: 8 lenses, 6 contents
- validate_sqlite: 101 passed, 0 failed
- lens_quality_scorer --chapter gen1: 6/6 passing, avg 100.0/100
- accuracy auditor extractor: 6 claims produced, ready for tier-2
in CI (no API key locally; CI gate runs on PR)
Pilot purpose:
This single chapter exists to validate the full Phase 0 + Phase 1 +
quality-gate pipeline against real content before scaling to the
remaining 49 Genesis chapters (still tracked under #1781) and the
8 genre batches that follow (#1782-1789). Any pipeline issues should
surface here; the regex bug is the first one this caught.
Out of scope:
- Genesis 2-50 (rest of #1781)
- Tier-2 accuracy audit results (runs in CI)
- The typological 'light/dark → Rev 21' reading is defensible (e.g.
Beale's NT use of OT) but the closest to a stretch in this batch.
Letting the tier-2 audit have the last word.
Refs #820, #1781.
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

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

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3973❌ 03973
Suites✅ 531❌ 0531

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 95.8s

@CraigBuckmaster
CraigBuckmaster merged commit 75f78d1 into masterApr 28, 2026
7 checks passed
@CraigBuckmaster
CraigBuckmaster deleted the feat/820-2-genesis-1-proof-of-concept branch April 28, 2026 18:48
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)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(lenses): Genesis 1 proof-of-concept (#820, #1781) by CraigBuckmaster · Pull Request #1791 · CraigBuckmaster/ScriptureDeepDive · GitHub
Skip to content

feat(lenses): Genesis 1 proof-of-concept (#820, #1781) - #1791

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept
Apr 28, 2026
Merged

feat(lenses): Genesis 1 proof-of-concept (#820, #1781)#1791
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Genesis 1 — proof-of-concept for Epic #820 / #1781

Single-chapter slice of the Genesis pilot. Ships 6 lens entries for Genesis 1 to validate the entire Phase 0 + Phase 1 + quality-gate pipeline against real content before scaling.

The remaining 49 Genesis chapters stay under #1781 — this PR is the smoke test that proves the pipeline works end-to-end. The regex bug it caught (see below) is exactly the kind of thing a single-chapter PoC is supposed to surface.

Coverage decisions

Curated sparse: 6 of 8 lenses applied. Skipped:

  • devotional — Genesis 1 is theological foundation; devotional response is more naturally drawn from later texts. Forcing it here would invite filler.
  • mission — the missional thread of Scripture is rooted in Genesis 12 (Abrahamic call), not Genesis 1. The accuracy auditor would flag a missional Genesis-1 entry as fabrication.

The 6 included:

LensWhat it surfaces
grammaticalSevenfold formula, opening/closing markers, bara bookending vv 1 and 27
literaryForming/filling structure across days 1-3 paired with 4-6
typologicalSpirit hovering, seventh-day rest, light/dark separation
redemptiveImage-of-God commission grounds the whole arc to Christ
christocentricJohn 1:1-3, Col 1:16, divine speech as the same Word
canonicalCreation-by-speech echoes; Rev 21-22 recapitulation

Each entry has a panel_filter and panel_order selected to surface the existing chapter panels that that lens most illuminates, in the order that best supports the reading.

Quality gate results (local)

$ python3 _tools/schema_validator.py
RESULTS: 138138 passed, 0 failed, 19 warnings
$ python3 _tools/build_sqlite.py
[OK] hermeneutic_lenses: 8 lenses, 6 contents
$ python3 _tools/validate_sqlite.py
RESULTS: 101 passed, 0 failed, 2 warnings
$ python3 _tools/lens_quality_scorer.py --chapter gen1
LENS QUALITY REPORT — 6 entries
Passing (>= 90): 6
Failing (< 90): 0
Average: 100.0/100

All entries 257–274 chars (within the 80–280 schema range). All score 25/25 on every DVCR dimension.

Tier-2 accuracy audit

accuracy_meta_extractors.extract_hermeneutic_lenses() produces 6 claims from this content (one per lens entry), ready for accuracy_auditor.py --tier 2 to verify in CI. I can't run the tier-2 audit locally (no API key in the dev container — that's CI's job).

If any claim fails the tier-2 verifier, the auditor will flag it as a position the named hermeneutical school doesn't actually advocate, and the entry needs revision before merge.

The exegesis I think is most likely to draw an audit flag (transparency note): the typological claim that light/dark separation foreshadows Revelation 21 is defensible (Beale, The Temple and the Church's Mission; many patristic readings) but it's the closest to a stretch in this batch. The other two anchors in that entry — Spirit hovering → new creation, seventh-day rest → Hebrews 4 — are rock-solid. If the audit pushes back on the Rev 21 anchor, I'll trim it.

Scorer fix included

lens_quality_scorer.py had a regex bug that this content surfaced: VERSE_REF_RE was matching numbers after a colon, so Psalm 33:6 got parsed as a verse reference and flagged 33-6 as out-of-range for Genesis 1 (which has 31 verses).

Fixed by tightening VERSE_REF_RE to require an explicit v / vv prefix for in-chapter validation, and adding a separate looser ANY_VERSE_PATTERN for the Density "has any verse anchor?" check. Verified across 10 representative cases:

InputShould match?Did match?
v 5yes
vv 5-7yes
v. 31yes
(vv 26-28)yes
Psalm 33:6no
Heb 4:9-11no
Genesis 1:3no
Col 1:15no
verses 26 and 27no✓ (no v/vv prefix)
vv. 5, 8, 13yes (first match)

This regex fix is part of the same PR because the lens content immediately depends on it — no point shipping content that would fail the scorer for the wrong reason.

What this PR does NOT do

Rollback plan

Pure additive content + one-line scorer regex tightening. git revert is clean — nothing references the new content row except the app's lens-toggle UI, which currently shows a guidance string and (per #1790) optionally filters/reorders panels. Reverting just makes Genesis 1's lens toggle show no guidance, same as the rest of the corpus.

Refs #820, #1781.

First chapter of the Genesis pilot. Curated-sparse coverage: 6 of 8
lenses applied (skipped devotional + missional — Gen 1 is theological
foundation, not the natural anchor for those frameworks).
Content (content/hermeneutic_lenses/chapters/gen1.json):
- grammatical — sevenfold formula, opening/closing markers, bara bookending
- literary — forming/filling structure across days 1-3 / 4-6
- typological — Spirit hovering, seventh-day rest, light/dark separation
- redemptive — image of God commission grounds the whole arc to Christ
- christocentric — John 1:1-3, Col 1:16, divine speech as the same Word
- canonical — creation-by-speech echoes; Rev 21-22 recapitulation
All entries:
- 257-274 chars (within the 80-280 schema range)
- score 100/100 on lens_quality_scorer (Density, Verse Coverage,
Completeness, Relevance — 25 each)
- panel_filter / panel_order set to surface the panels each lens most
illuminates, in the order that best supports that reading
Scorer fix (caught by this content):
- VERSE_REF_RE was matching numbers after a colon ('Psalm 33:6' →
flagged 33-6 as out-of-range for Gen 1). Tightened to require an
explicit v/vv prefix for in-chapter validation. A new looser
ANY_VERSE_PATTERN handles the Density 'has any verse anchor?'
check. Verified across 10 representative cases including
'Psalm 33:6', 'Heb 4:9-11', 'Col 1:15', 'v 5', 'vv 26-28'.
End-to-end pipeline verified locally:
- schema_validator: 138138 passed, 0 failed
- build_sqlite: hermeneutic_lenses: 8 lenses, 6 contents
- validate_sqlite: 101 passed, 0 failed
- lens_quality_scorer --chapter gen1: 6/6 passing, avg 100.0/100
- accuracy auditor extractor: 6 claims produced, ready for tier-2
in CI (no API key locally; CI gate runs on PR)
Pilot purpose:
This single chapter exists to validate the full Phase 0 + Phase 1 +
quality-gate pipeline against real content before scaling to the
remaining 49 Genesis chapters (still tracked under #1781) and the
8 genre batches that follow (#1782-1789). Any pipeline issues should
surface here; the regex bug is the first one this caught.
Out of scope:
- Genesis 2-50 (rest of #1781)
- Tier-2 accuracy audit results (runs in CI)
- The typological 'light/dark → Rev 21' reading is defensible (e.g.
Beale's NT use of OT) but the closest to a stretch in this batch.
Letting the tier-2 audit have the last word.
Refs #820, #1781.
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

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

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3973❌ 03973
Suites✅ 531❌ 0531

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 95.8s

@CraigBuckmaster
CraigBuckmaster merged commit 75f78d1 into masterApr 28, 2026
7 checks passed
@CraigBuckmaster
CraigBuckmaster deleted the feat/820-2-genesis-1-proof-of-concept branch April 28, 2026 18:48
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)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(lenses): Genesis 1 proof-of-concept (#820, #1781) by CraigBuckmaster · Pull Request #1791 · CraigBuckmaster/ScriptureDeepDive · GitHub
Skip to content

feat(lenses): Genesis 1 proof-of-concept (#820, #1781) - #1791

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept
Apr 28, 2026
Merged

feat(lenses): Genesis 1 proof-of-concept (#820, #1781)#1791
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Genesis 1 — proof-of-concept for Epic #820 / #1781

Single-chapter slice of the Genesis pilot. Ships 6 lens entries for Genesis 1 to validate the entire Phase 0 + Phase 1 + quality-gate pipeline against real content before scaling.

The remaining 49 Genesis chapters stay under #1781 — this PR is the smoke test that proves the pipeline works end-to-end. The regex bug it caught (see below) is exactly the kind of thing a single-chapter PoC is supposed to surface.

Coverage decisions

Curated sparse: 6 of 8 lenses applied. Skipped:

  • devotional — Genesis 1 is theological foundation; devotional response is more naturally drawn from later texts. Forcing it here would invite filler.
  • mission — the missional thread of Scripture is rooted in Genesis 12 (Abrahamic call), not Genesis 1. The accuracy auditor would flag a missional Genesis-1 entry as fabrication.

The 6 included:

LensWhat it surfaces
grammaticalSevenfold formula, opening/closing markers, bara bookending vv 1 and 27
literaryForming/filling structure across days 1-3 paired with 4-6
typologicalSpirit hovering, seventh-day rest, light/dark separation
redemptiveImage-of-God commission grounds the whole arc to Christ
christocentricJohn 1:1-3, Col 1:16, divine speech as the same Word
canonicalCreation-by-speech echoes; Rev 21-22 recapitulation

Each entry has a panel_filter and panel_order selected to surface the existing chapter panels that that lens most illuminates, in the order that best supports the reading.

Quality gate results (local)

$ python3 _tools/schema_validator.py
RESULTS: 138138 passed, 0 failed, 19 warnings
$ python3 _tools/build_sqlite.py
[OK] hermeneutic_lenses: 8 lenses, 6 contents
$ python3 _tools/validate_sqlite.py
RESULTS: 101 passed, 0 failed, 2 warnings
$ python3 _tools/lens_quality_scorer.py --chapter gen1
LENS QUALITY REPORT — 6 entries
Passing (>= 90): 6
Failing (< 90): 0
Average: 100.0/100

All entries 257–274 chars (within the 80–280 schema range). All score 25/25 on every DVCR dimension.

Tier-2 accuracy audit

accuracy_meta_extractors.extract_hermeneutic_lenses() produces 6 claims from this content (one per lens entry), ready for accuracy_auditor.py --tier 2 to verify in CI. I can't run the tier-2 audit locally (no API key in the dev container — that's CI's job).

If any claim fails the tier-2 verifier, the auditor will flag it as a position the named hermeneutical school doesn't actually advocate, and the entry needs revision before merge.

The exegesis I think is most likely to draw an audit flag (transparency note): the typological claim that light/dark separation foreshadows Revelation 21 is defensible (Beale, The Temple and the Church's Mission; many patristic readings) but it's the closest to a stretch in this batch. The other two anchors in that entry — Spirit hovering → new creation, seventh-day rest → Hebrews 4 — are rock-solid. If the audit pushes back on the Rev 21 anchor, I'll trim it.

Scorer fix included

lens_quality_scorer.py had a regex bug that this content surfaced: VERSE_REF_RE was matching numbers after a colon, so Psalm 33:6 got parsed as a verse reference and flagged 33-6 as out-of-range for Genesis 1 (which has 31 verses).

Fixed by tightening VERSE_REF_RE to require an explicit v / vv prefix for in-chapter validation, and adding a separate looser ANY_VERSE_PATTERN for the Density "has any verse anchor?" check. Verified across 10 representative cases:

InputShould match?Did match?
v 5yes
vv 5-7yes
v. 31yes
(vv 26-28)yes
Psalm 33:6no
Heb 4:9-11no
Genesis 1:3no
Col 1:15no
verses 26 and 27no✓ (no v/vv prefix)
vv. 5, 8, 13yes (first match)

This regex fix is part of the same PR because the lens content immediately depends on it — no point shipping content that would fail the scorer for the wrong reason.

What this PR does NOT do

Rollback plan

Pure additive content + one-line scorer regex tightening. git revert is clean — nothing references the new content row except the app's lens-toggle UI, which currently shows a guidance string and (per #1790) optionally filters/reorders panels. Reverting just makes Genesis 1's lens toggle show no guidance, same as the rest of the corpus.

Refs #820, #1781.

First chapter of the Genesis pilot. Curated-sparse coverage: 6 of 8
lenses applied (skipped devotional + missional — Gen 1 is theological
foundation, not the natural anchor for those frameworks).
Content (content/hermeneutic_lenses/chapters/gen1.json):
- grammatical — sevenfold formula, opening/closing markers, bara bookending
- literary — forming/filling structure across days 1-3 / 4-6
- typological — Spirit hovering, seventh-day rest, light/dark separation
- redemptive — image of God commission grounds the whole arc to Christ
- christocentric — John 1:1-3, Col 1:16, divine speech as the same Word
- canonical — creation-by-speech echoes; Rev 21-22 recapitulation
All entries:
- 257-274 chars (within the 80-280 schema range)
- score 100/100 on lens_quality_scorer (Density, Verse Coverage,
Completeness, Relevance — 25 each)
- panel_filter / panel_order set to surface the panels each lens most
illuminates, in the order that best supports that reading
Scorer fix (caught by this content):
- VERSE_REF_RE was matching numbers after a colon ('Psalm 33:6' →
flagged 33-6 as out-of-range for Gen 1). Tightened to require an
explicit v/vv prefix for in-chapter validation. A new looser
ANY_VERSE_PATTERN handles the Density 'has any verse anchor?'
check. Verified across 10 representative cases including
'Psalm 33:6', 'Heb 4:9-11', 'Col 1:15', 'v 5', 'vv 26-28'.
End-to-end pipeline verified locally:
- schema_validator: 138138 passed, 0 failed
- build_sqlite: hermeneutic_lenses: 8 lenses, 6 contents
- validate_sqlite: 101 passed, 0 failed
- lens_quality_scorer --chapter gen1: 6/6 passing, avg 100.0/100
- accuracy auditor extractor: 6 claims produced, ready for tier-2
in CI (no API key locally; CI gate runs on PR)
Pilot purpose:
This single chapter exists to validate the full Phase 0 + Phase 1 +
quality-gate pipeline against real content before scaling to the
remaining 49 Genesis chapters (still tracked under #1781) and the
8 genre batches that follow (#1782-1789). Any pipeline issues should
surface here; the regex bug is the first one this caught.
Out of scope:
- Genesis 2-50 (rest of #1781)
- Tier-2 accuracy audit results (runs in CI)
- The typological 'light/dark → Rev 21' reading is defensible (e.g.
Beale's NT use of OT) but the closest to a stretch in this batch.
Letting the tier-2 audit have the last word.
Refs #820, #1781.
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

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

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3973❌ 03973
Suites✅ 531❌ 0531

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 95.8s

@CraigBuckmaster
CraigBuckmaster merged commit 75f78d1 into masterApr 28, 2026
7 checks passed
@CraigBuckmaster
CraigBuckmaster deleted the feat/820-2-genesis-1-proof-of-concept branch April 28, 2026 18:48
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)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' feat(lenses): Genesis 1 proof-of-concept (#820, #1781) by CraigBuckmaster · Pull Request #1791 · CraigBuckmaster/ScriptureDeepDive · GitHub
Skip to content

feat(lenses): Genesis 1 proof-of-concept (#820, #1781) - #1791

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept
Apr 28, 2026
Merged

feat(lenses): Genesis 1 proof-of-concept (#820, #1781)#1791
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Genesis 1 — proof-of-concept for Epic #820 / #1781

Single-chapter slice of the Genesis pilot. Ships 6 lens entries for Genesis 1 to validate the entire Phase 0 + Phase 1 + quality-gate pipeline against real content before scaling.

The remaining 49 Genesis chapters stay under #1781 — this PR is the smoke test that proves the pipeline works end-to-end. The regex bug it caught (see below) is exactly the kind of thing a single-chapter PoC is supposed to surface.

Coverage decisions

Curated sparse: 6 of 8 lenses applied. Skipped:

  • devotional — Genesis 1 is theological foundation; devotional response is more naturally drawn from later texts. Forcing it here would invite filler.
  • mission — the missional thread of Scripture is rooted in Genesis 12 (Abrahamic call), not Genesis 1. The accuracy auditor would flag a missional Genesis-1 entry as fabrication.

The 6 included:

LensWhat it surfaces
grammaticalSevenfold formula, opening/closing markers, bara bookending vv 1 and 27
literaryForming/filling structure across days 1-3 paired with 4-6
typologicalSpirit hovering, seventh-day rest, light/dark separation
redemptiveImage-of-God commission grounds the whole arc to Christ
christocentricJohn 1:1-3, Col 1:16, divine speech as the same Word
canonicalCreation-by-speech echoes; Rev 21-22 recapitulation

Each entry has a panel_filter and panel_order selected to surface the existing chapter panels that that lens most illuminates, in the order that best supports the reading.

Quality gate results (local)

$ python3 _tools/schema_validator.py
RESULTS: 138138 passed, 0 failed, 19 warnings
$ python3 _tools/build_sqlite.py
[OK] hermeneutic_lenses: 8 lenses, 6 contents
$ python3 _tools/validate_sqlite.py
RESULTS: 101 passed, 0 failed, 2 warnings
$ python3 _tools/lens_quality_scorer.py --chapter gen1
LENS QUALITY REPORT — 6 entries
Passing (>= 90): 6
Failing (< 90): 0
Average: 100.0/100

All entries 257–274 chars (within the 80–280 schema range). All score 25/25 on every DVCR dimension.

Tier-2 accuracy audit

accuracy_meta_extractors.extract_hermeneutic_lenses() produces 6 claims from this content (one per lens entry), ready for accuracy_auditor.py --tier 2 to verify in CI. I can't run the tier-2 audit locally (no API key in the dev container — that's CI's job).

If any claim fails the tier-2 verifier, the auditor will flag it as a position the named hermeneutical school doesn't actually advocate, and the entry needs revision before merge.

The exegesis I think is most likely to draw an audit flag (transparency note): the typological claim that light/dark separation foreshadows Revelation 21 is defensible (Beale, The Temple and the Church's Mission; many patristic readings) but it's the closest to a stretch in this batch. The other two anchors in that entry — Spirit hovering → new creation, seventh-day rest → Hebrews 4 — are rock-solid. If the audit pushes back on the Rev 21 anchor, I'll trim it.

Scorer fix included

lens_quality_scorer.py had a regex bug that this content surfaced: VERSE_REF_RE was matching numbers after a colon, so Psalm 33:6 got parsed as a verse reference and flagged 33-6 as out-of-range for Genesis 1 (which has 31 verses).

Fixed by tightening VERSE_REF_RE to require an explicit v / vv prefix for in-chapter validation, and adding a separate looser ANY_VERSE_PATTERN for the Density "has any verse anchor?" check. Verified across 10 representative cases:

InputShould match?Did match?
v 5yes
vv 5-7yes
v. 31yes
(vv 26-28)yes
Psalm 33:6no
Heb 4:9-11no
Genesis 1:3no
Col 1:15no
verses 26 and 27no✓ (no v/vv prefix)
vv. 5, 8, 13yes (first match)

This regex fix is part of the same PR because the lens content immediately depends on it — no point shipping content that would fail the scorer for the wrong reason.

What this PR does NOT do

Rollback plan

Pure additive content + one-line scorer regex tightening. git revert is clean — nothing references the new content row except the app's lens-toggle UI, which currently shows a guidance string and (per #1790) optionally filters/reorders panels. Reverting just makes Genesis 1's lens toggle show no guidance, same as the rest of the corpus.

Refs #820, #1781.

First chapter of the Genesis pilot. Curated-sparse coverage: 6 of 8
lenses applied (skipped devotional + missional — Gen 1 is theological
foundation, not the natural anchor for those frameworks).
Content (content/hermeneutic_lenses/chapters/gen1.json):
- grammatical — sevenfold formula, opening/closing markers, bara bookending
- literary — forming/filling structure across days 1-3 / 4-6
- typological — Spirit hovering, seventh-day rest, light/dark separation
- redemptive — image of God commission grounds the whole arc to Christ
- christocentric — John 1:1-3, Col 1:16, divine speech as the same Word
- canonical — creation-by-speech echoes; Rev 21-22 recapitulation
All entries:
- 257-274 chars (within the 80-280 schema range)
- score 100/100 on lens_quality_scorer (Density, Verse Coverage,
Completeness, Relevance — 25 each)
- panel_filter / panel_order set to surface the panels each lens most
illuminates, in the order that best supports that reading
Scorer fix (caught by this content):
- VERSE_REF_RE was matching numbers after a colon ('Psalm 33:6' →
flagged 33-6 as out-of-range for Gen 1). Tightened to require an
explicit v/vv prefix for in-chapter validation. A new looser
ANY_VERSE_PATTERN handles the Density 'has any verse anchor?'
check. Verified across 10 representative cases including
'Psalm 33:6', 'Heb 4:9-11', 'Col 1:15', 'v 5', 'vv 26-28'.
End-to-end pipeline verified locally:
- schema_validator: 138138 passed, 0 failed
- build_sqlite: hermeneutic_lenses: 8 lenses, 6 contents
- validate_sqlite: 101 passed, 0 failed
- lens_quality_scorer --chapter gen1: 6/6 passing, avg 100.0/100
- accuracy auditor extractor: 6 claims produced, ready for tier-2
in CI (no API key locally; CI gate runs on PR)
Pilot purpose:
This single chapter exists to validate the full Phase 0 + Phase 1 +
quality-gate pipeline against real content before scaling to the
remaining 49 Genesis chapters (still tracked under #1781) and the
8 genre batches that follow (#1782-1789). Any pipeline issues should
surface here; the regex bug is the first one this caught.
Out of scope:
- Genesis 2-50 (rest of #1781)
- Tier-2 accuracy audit results (runs in CI)
- The typological 'light/dark → Rev 21' reading is defensible (e.g.
Beale's NT use of OT) but the closest to a stretch in this batch.
Letting the tier-2 audit have the last word.
Refs #820, #1781.
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

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

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3973❌ 03973
Suites✅ 531❌ 0531

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 95.8s

@CraigBuckmaster
CraigBuckmaster merged commit 75f78d1 into masterApr 28, 2026
7 checks passed
@CraigBuckmaster
CraigBuckmaster deleted the feat/820-2-genesis-1-proof-of-concept branch April 28, 2026 18:48
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)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(lenses): Genesis 1 proof-of-concept (#820, #1781) by CraigBuckmaster · Pull Request #1791 · CraigBuckmaster/ScriptureDeepDive · GitHub
Skip to content

feat(lenses): Genesis 1 proof-of-concept (#820, #1781) - #1791

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept
Apr 28, 2026
Merged

feat(lenses): Genesis 1 proof-of-concept (#820, #1781)#1791
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Genesis 1 — proof-of-concept for Epic #820 / #1781

Single-chapter slice of the Genesis pilot. Ships 6 lens entries for Genesis 1 to validate the entire Phase 0 + Phase 1 + quality-gate pipeline against real content before scaling.

The remaining 49 Genesis chapters stay under #1781 — this PR is the smoke test that proves the pipeline works end-to-end. The regex bug it caught (see below) is exactly the kind of thing a single-chapter PoC is supposed to surface.

Coverage decisions

Curated sparse: 6 of 8 lenses applied. Skipped:

  • devotional — Genesis 1 is theological foundation; devotional response is more naturally drawn from later texts. Forcing it here would invite filler.
  • mission — the missional thread of Scripture is rooted in Genesis 12 (Abrahamic call), not Genesis 1. The accuracy auditor would flag a missional Genesis-1 entry as fabrication.

The 6 included:

LensWhat it surfaces
grammaticalSevenfold formula, opening/closing markers, bara bookending vv 1 and 27
literaryForming/filling structure across days 1-3 paired with 4-6
typologicalSpirit hovering, seventh-day rest, light/dark separation
redemptiveImage-of-God commission grounds the whole arc to Christ
christocentricJohn 1:1-3, Col 1:16, divine speech as the same Word
canonicalCreation-by-speech echoes; Rev 21-22 recapitulation

Each entry has a panel_filter and panel_order selected to surface the existing chapter panels that that lens most illuminates, in the order that best supports the reading.

Quality gate results (local)

$ python3 _tools/schema_validator.py
RESULTS: 138138 passed, 0 failed, 19 warnings
$ python3 _tools/build_sqlite.py
[OK] hermeneutic_lenses: 8 lenses, 6 contents
$ python3 _tools/validate_sqlite.py
RESULTS: 101 passed, 0 failed, 2 warnings
$ python3 _tools/lens_quality_scorer.py --chapter gen1
LENS QUALITY REPORT — 6 entries
Passing (>= 90): 6
Failing (< 90): 0
Average: 100.0/100

All entries 257–274 chars (within the 80–280 schema range). All score 25/25 on every DVCR dimension.

Tier-2 accuracy audit

accuracy_meta_extractors.extract_hermeneutic_lenses() produces 6 claims from this content (one per lens entry), ready for accuracy_auditor.py --tier 2 to verify in CI. I can't run the tier-2 audit locally (no API key in the dev container — that's CI's job).

If any claim fails the tier-2 verifier, the auditor will flag it as a position the named hermeneutical school doesn't actually advocate, and the entry needs revision before merge.

The exegesis I think is most likely to draw an audit flag (transparency note): the typological claim that light/dark separation foreshadows Revelation 21 is defensible (Beale, The Temple and the Church's Mission; many patristic readings) but it's the closest to a stretch in this batch. The other two anchors in that entry — Spirit hovering → new creation, seventh-day rest → Hebrews 4 — are rock-solid. If the audit pushes back on the Rev 21 anchor, I'll trim it.

Scorer fix included

lens_quality_scorer.py had a regex bug that this content surfaced: VERSE_REF_RE was matching numbers after a colon, so Psalm 33:6 got parsed as a verse reference and flagged 33-6 as out-of-range for Genesis 1 (which has 31 verses).

Fixed by tightening VERSE_REF_RE to require an explicit v / vv prefix for in-chapter validation, and adding a separate looser ANY_VERSE_PATTERN for the Density "has any verse anchor?" check. Verified across 10 representative cases:

InputShould match?Did match?
v 5yes
vv 5-7yes
v. 31yes
(vv 26-28)yes
Psalm 33:6no
Heb 4:9-11no
Genesis 1:3no
Col 1:15no
verses 26 and 27no✓ (no v/vv prefix)
vv. 5, 8, 13yes (first match)

This regex fix is part of the same PR because the lens content immediately depends on it — no point shipping content that would fail the scorer for the wrong reason.

What this PR does NOT do

Rollback plan

Pure additive content + one-line scorer regex tightening. git revert is clean — nothing references the new content row except the app's lens-toggle UI, which currently shows a guidance string and (per #1790) optionally filters/reorders panels. Reverting just makes Genesis 1's lens toggle show no guidance, same as the rest of the corpus.

Refs #820, #1781.

First chapter of the Genesis pilot. Curated-sparse coverage: 6 of 8
lenses applied (skipped devotional + missional — Gen 1 is theological
foundation, not the natural anchor for those frameworks).
Content (content/hermeneutic_lenses/chapters/gen1.json):
- grammatical — sevenfold formula, opening/closing markers, bara bookending
- literary — forming/filling structure across days 1-3 / 4-6
- typological — Spirit hovering, seventh-day rest, light/dark separation
- redemptive — image of God commission grounds the whole arc to Christ
- christocentric — John 1:1-3, Col 1:16, divine speech as the same Word
- canonical — creation-by-speech echoes; Rev 21-22 recapitulation
All entries:
- 257-274 chars (within the 80-280 schema range)
- score 100/100 on lens_quality_scorer (Density, Verse Coverage,
Completeness, Relevance — 25 each)
- panel_filter / panel_order set to surface the panels each lens most
illuminates, in the order that best supports that reading
Scorer fix (caught by this content):
- VERSE_REF_RE was matching numbers after a colon ('Psalm 33:6' →
flagged 33-6 as out-of-range for Gen 1). Tightened to require an
explicit v/vv prefix for in-chapter validation. A new looser
ANY_VERSE_PATTERN handles the Density 'has any verse anchor?'
check. Verified across 10 representative cases including
'Psalm 33:6', 'Heb 4:9-11', 'Col 1:15', 'v 5', 'vv 26-28'.
End-to-end pipeline verified locally:
- schema_validator: 138138 passed, 0 failed
- build_sqlite: hermeneutic_lenses: 8 lenses, 6 contents
- validate_sqlite: 101 passed, 0 failed
- lens_quality_scorer --chapter gen1: 6/6 passing, avg 100.0/100
- accuracy auditor extractor: 6 claims produced, ready for tier-2
in CI (no API key locally; CI gate runs on PR)
Pilot purpose:
This single chapter exists to validate the full Phase 0 + Phase 1 +
quality-gate pipeline against real content before scaling to the
remaining 49 Genesis chapters (still tracked under #1781) and the
8 genre batches that follow (#1782-1789). Any pipeline issues should
surface here; the regex bug is the first one this caught.
Out of scope:
- Genesis 2-50 (rest of #1781)
- Tier-2 accuracy audit results (runs in CI)
- The typological 'light/dark → Rev 21' reading is defensible (e.g.
Beale's NT use of OT) but the closest to a stretch in this batch.
Letting the tier-2 audit have the last word.
Refs #820, #1781.
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

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

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3973❌ 03973
Suites✅ 531❌ 0531

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 95.8s

@CraigBuckmaster
CraigBuckmaster merged commit 75f78d1 into masterApr 28, 2026
7 checks passed
@CraigBuckmaster
CraigBuckmaster deleted the feat/820-2-genesis-1-proof-of-concept branch April 28, 2026 18:48
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)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(lenses): Genesis 1 proof-of-concept (#820, #1781) by CraigBuckmaster · Pull Request #1791 · CraigBuckmaster/ScriptureDeepDive · GitHub
Skip to content

feat(lenses): Genesis 1 proof-of-concept (#820, #1781) - #1791

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept
Apr 28, 2026
Merged

feat(lenses): Genesis 1 proof-of-concept (#820, #1781)#1791
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Genesis 1 — proof-of-concept for Epic #820 / #1781

Single-chapter slice of the Genesis pilot. Ships 6 lens entries for Genesis 1 to validate the entire Phase 0 + Phase 1 + quality-gate pipeline against real content before scaling.

The remaining 49 Genesis chapters stay under #1781 — this PR is the smoke test that proves the pipeline works end-to-end. The regex bug it caught (see below) is exactly the kind of thing a single-chapter PoC is supposed to surface.

Coverage decisions

Curated sparse: 6 of 8 lenses applied. Skipped:

  • devotional — Genesis 1 is theological foundation; devotional response is more naturally drawn from later texts. Forcing it here would invite filler.
  • mission — the missional thread of Scripture is rooted in Genesis 12 (Abrahamic call), not Genesis 1. The accuracy auditor would flag a missional Genesis-1 entry as fabrication.

The 6 included:

LensWhat it surfaces
grammaticalSevenfold formula, opening/closing markers, bara bookending vv 1 and 27
literaryForming/filling structure across days 1-3 paired with 4-6
typologicalSpirit hovering, seventh-day rest, light/dark separation
redemptiveImage-of-God commission grounds the whole arc to Christ
christocentricJohn 1:1-3, Col 1:16, divine speech as the same Word
canonicalCreation-by-speech echoes; Rev 21-22 recapitulation

Each entry has a panel_filter and panel_order selected to surface the existing chapter panels that that lens most illuminates, in the order that best supports the reading.

Quality gate results (local)

$ python3 _tools/schema_validator.py
RESULTS: 138138 passed, 0 failed, 19 warnings
$ python3 _tools/build_sqlite.py
[OK] hermeneutic_lenses: 8 lenses, 6 contents
$ python3 _tools/validate_sqlite.py
RESULTS: 101 passed, 0 failed, 2 warnings
$ python3 _tools/lens_quality_scorer.py --chapter gen1
LENS QUALITY REPORT — 6 entries
Passing (>= 90): 6
Failing (< 90): 0
Average: 100.0/100

All entries 257–274 chars (within the 80–280 schema range). All score 25/25 on every DVCR dimension.

Tier-2 accuracy audit

accuracy_meta_extractors.extract_hermeneutic_lenses() produces 6 claims from this content (one per lens entry), ready for accuracy_auditor.py --tier 2 to verify in CI. I can't run the tier-2 audit locally (no API key in the dev container — that's CI's job).

If any claim fails the tier-2 verifier, the auditor will flag it as a position the named hermeneutical school doesn't actually advocate, and the entry needs revision before merge.

The exegesis I think is most likely to draw an audit flag (transparency note): the typological claim that light/dark separation foreshadows Revelation 21 is defensible (Beale, The Temple and the Church's Mission; many patristic readings) but it's the closest to a stretch in this batch. The other two anchors in that entry — Spirit hovering → new creation, seventh-day rest → Hebrews 4 — are rock-solid. If the audit pushes back on the Rev 21 anchor, I'll trim it.

Scorer fix included

lens_quality_scorer.py had a regex bug that this content surfaced: VERSE_REF_RE was matching numbers after a colon, so Psalm 33:6 got parsed as a verse reference and flagged 33-6 as out-of-range for Genesis 1 (which has 31 verses).

Fixed by tightening VERSE_REF_RE to require an explicit v / vv prefix for in-chapter validation, and adding a separate looser ANY_VERSE_PATTERN for the Density "has any verse anchor?" check. Verified across 10 representative cases:

InputShould match?Did match?
v 5yes
vv 5-7yes
v. 31yes
(vv 26-28)yes
Psalm 33:6no
Heb 4:9-11no
Genesis 1:3no
Col 1:15no
verses 26 and 27no✓ (no v/vv prefix)
vv. 5, 8, 13yes (first match)

This regex fix is part of the same PR because the lens content immediately depends on it — no point shipping content that would fail the scorer for the wrong reason.

What this PR does NOT do

Rollback plan

Pure additive content + one-line scorer regex tightening. git revert is clean — nothing references the new content row except the app's lens-toggle UI, which currently shows a guidance string and (per #1790) optionally filters/reorders panels. Reverting just makes Genesis 1's lens toggle show no guidance, same as the rest of the corpus.

Refs #820, #1781.

First chapter of the Genesis pilot. Curated-sparse coverage: 6 of 8
lenses applied (skipped devotional + missional — Gen 1 is theological
foundation, not the natural anchor for those frameworks).
Content (content/hermeneutic_lenses/chapters/gen1.json):
- grammatical — sevenfold formula, opening/closing markers, bara bookending
- literary — forming/filling structure across days 1-3 / 4-6
- typological — Spirit hovering, seventh-day rest, light/dark separation
- redemptive — image of God commission grounds the whole arc to Christ
- christocentric — John 1:1-3, Col 1:16, divine speech as the same Word
- canonical — creation-by-speech echoes; Rev 21-22 recapitulation
All entries:
- 257-274 chars (within the 80-280 schema range)
- score 100/100 on lens_quality_scorer (Density, Verse Coverage,
Completeness, Relevance — 25 each)
- panel_filter / panel_order set to surface the panels each lens most
illuminates, in the order that best supports that reading
Scorer fix (caught by this content):
- VERSE_REF_RE was matching numbers after a colon ('Psalm 33:6' →
flagged 33-6 as out-of-range for Gen 1). Tightened to require an
explicit v/vv prefix for in-chapter validation. A new looser
ANY_VERSE_PATTERN handles the Density 'has any verse anchor?'
check. Verified across 10 representative cases including
'Psalm 33:6', 'Heb 4:9-11', 'Col 1:15', 'v 5', 'vv 26-28'.
End-to-end pipeline verified locally:
- schema_validator: 138138 passed, 0 failed
- build_sqlite: hermeneutic_lenses: 8 lenses, 6 contents
- validate_sqlite: 101 passed, 0 failed
- lens_quality_scorer --chapter gen1: 6/6 passing, avg 100.0/100
- accuracy auditor extractor: 6 claims produced, ready for tier-2
in CI (no API key locally; CI gate runs on PR)
Pilot purpose:
This single chapter exists to validate the full Phase 0 + Phase 1 +
quality-gate pipeline against real content before scaling to the
remaining 49 Genesis chapters (still tracked under #1781) and the
8 genre batches that follow (#1782-1789). Any pipeline issues should
surface here; the regex bug is the first one this caught.
Out of scope:
- Genesis 2-50 (rest of #1781)
- Tier-2 accuracy audit results (runs in CI)
- The typological 'light/dark → Rev 21' reading is defensible (e.g.
Beale's NT use of OT) but the closest to a stretch in this batch.
Letting the tier-2 audit have the last word.
Refs #820, #1781.
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

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

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3973❌ 03973
Suites✅ 531❌ 0531

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 95.8s

@CraigBuckmaster
CraigBuckmaster merged commit 75f78d1 into masterApr 28, 2026
7 checks passed
@CraigBuckmaster
CraigBuckmaster deleted the feat/820-2-genesis-1-proof-of-concept branch April 28, 2026 18:48
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)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); feat(lenses): Genesis 1 proof-of-concept (#820, #1781) by CraigBuckmaster · Pull Request #1791 · CraigBuckmaster/ScriptureDeepDive · GitHub
Skip to content

feat(lenses): Genesis 1 proof-of-concept (#820, #1781) - #1791

Merged
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept
Apr 28, 2026
Merged

feat(lenses): Genesis 1 proof-of-concept (#820, #1781)#1791
CraigBuckmaster merged 1 commit into
masterfrom
feat/820-2-genesis-1-proof-of-concept

Conversation

@CraigBuckmaster

Copy link
Copy Markdown
Owner

Genesis 1 — proof-of-concept for Epic #820 / #1781

Single-chapter slice of the Genesis pilot. Ships 6 lens entries for Genesis 1 to validate the entire Phase 0 + Phase 1 + quality-gate pipeline against real content before scaling.

The remaining 49 Genesis chapters stay under #1781 — this PR is the smoke test that proves the pipeline works end-to-end. The regex bug it caught (see below) is exactly the kind of thing a single-chapter PoC is supposed to surface.

Coverage decisions

Curated sparse: 6 of 8 lenses applied. Skipped:

  • devotional — Genesis 1 is theological foundation; devotional response is more naturally drawn from later texts. Forcing it here would invite filler.
  • mission — the missional thread of Scripture is rooted in Genesis 12 (Abrahamic call), not Genesis 1. The accuracy auditor would flag a missional Genesis-1 entry as fabrication.

The 6 included:

LensWhat it surfaces
grammaticalSevenfold formula, opening/closing markers, bara bookending vv 1 and 27
literaryForming/filling structure across days 1-3 paired with 4-6
typologicalSpirit hovering, seventh-day rest, light/dark separation
redemptiveImage-of-God commission grounds the whole arc to Christ
christocentricJohn 1:1-3, Col 1:16, divine speech as the same Word
canonicalCreation-by-speech echoes; Rev 21-22 recapitulation

Each entry has a panel_filter and panel_order selected to surface the existing chapter panels that that lens most illuminates, in the order that best supports the reading.

Quality gate results (local)

$ python3 _tools/schema_validator.py
RESULTS: 138138 passed, 0 failed, 19 warnings
$ python3 _tools/build_sqlite.py
[OK] hermeneutic_lenses: 8 lenses, 6 contents
$ python3 _tools/validate_sqlite.py
RESULTS: 101 passed, 0 failed, 2 warnings
$ python3 _tools/lens_quality_scorer.py --chapter gen1
LENS QUALITY REPORT — 6 entries
Passing (>= 90): 6
Failing (< 90): 0
Average: 100.0/100

All entries 257–274 chars (within the 80–280 schema range). All score 25/25 on every DVCR dimension.

Tier-2 accuracy audit

accuracy_meta_extractors.extract_hermeneutic_lenses() produces 6 claims from this content (one per lens entry), ready for accuracy_auditor.py --tier 2 to verify in CI. I can't run the tier-2 audit locally (no API key in the dev container — that's CI's job).

If any claim fails the tier-2 verifier, the auditor will flag it as a position the named hermeneutical school doesn't actually advocate, and the entry needs revision before merge.

The exegesis I think is most likely to draw an audit flag (transparency note): the typological claim that light/dark separation foreshadows Revelation 21 is defensible (Beale, The Temple and the Church's Mission; many patristic readings) but it's the closest to a stretch in this batch. The other two anchors in that entry — Spirit hovering → new creation, seventh-day rest → Hebrews 4 — are rock-solid. If the audit pushes back on the Rev 21 anchor, I'll trim it.

Scorer fix included

lens_quality_scorer.py had a regex bug that this content surfaced: VERSE_REF_RE was matching numbers after a colon, so Psalm 33:6 got parsed as a verse reference and flagged 33-6 as out-of-range for Genesis 1 (which has 31 verses).

Fixed by tightening VERSE_REF_RE to require an explicit v / vv prefix for in-chapter validation, and adding a separate looser ANY_VERSE_PATTERN for the Density "has any verse anchor?" check. Verified across 10 representative cases:

InputShould match?Did match?
v 5yes
vv 5-7yes
v. 31yes
(vv 26-28)yes
Psalm 33:6no
Heb 4:9-11no
Genesis 1:3no
Col 1:15no
verses 26 and 27no✓ (no v/vv prefix)
vv. 5, 8, 13yes (first match)

This regex fix is part of the same PR because the lens content immediately depends on it — no point shipping content that would fail the scorer for the wrong reason.

What this PR does NOT do

Rollback plan

Pure additive content + one-line scorer regex tightening. git revert is clean — nothing references the new content row except the app's lens-toggle UI, which currently shows a guidance string and (per #1790) optionally filters/reorders panels. Reverting just makes Genesis 1's lens toggle show no guidance, same as the rest of the corpus.

Refs #820, #1781.

First chapter of the Genesis pilot. Curated-sparse coverage: 6 of 8
lenses applied (skipped devotional + missional — Gen 1 is theological
foundation, not the natural anchor for those frameworks).
Content (content/hermeneutic_lenses/chapters/gen1.json):
- grammatical — sevenfold formula, opening/closing markers, bara bookending
- literary — forming/filling structure across days 1-3 / 4-6
- typological — Spirit hovering, seventh-day rest, light/dark separation
- redemptive — image of God commission grounds the whole arc to Christ
- christocentric — John 1:1-3, Col 1:16, divine speech as the same Word
- canonical — creation-by-speech echoes; Rev 21-22 recapitulation
All entries:
- 257-274 chars (within the 80-280 schema range)
- score 100/100 on lens_quality_scorer (Density, Verse Coverage,
Completeness, Relevance — 25 each)
- panel_filter / panel_order set to surface the panels each lens most
illuminates, in the order that best supports that reading
Scorer fix (caught by this content):
- VERSE_REF_RE was matching numbers after a colon ('Psalm 33:6' →
flagged 33-6 as out-of-range for Gen 1). Tightened to require an
explicit v/vv prefix for in-chapter validation. A new looser
ANY_VERSE_PATTERN handles the Density 'has any verse anchor?'
check. Verified across 10 representative cases including
'Psalm 33:6', 'Heb 4:9-11', 'Col 1:15', 'v 5', 'vv 26-28'.
End-to-end pipeline verified locally:
- schema_validator: 138138 passed, 0 failed
- build_sqlite: hermeneutic_lenses: 8 lenses, 6 contents
- validate_sqlite: 101 passed, 0 failed
- lens_quality_scorer --chapter gen1: 6/6 passing, avg 100.0/100
- accuracy auditor extractor: 6 claims produced, ready for tier-2
in CI (no API key locally; CI gate runs on PR)
Pilot purpose:
This single chapter exists to validate the full Phase 0 + Phase 1 +
quality-gate pipeline against real content before scaling to the
remaining 49 Genesis chapters (still tracked under #1781) and the
8 genre batches that follow (#1782-1789). Any pipeline issues should
surface here; the regex bug is the first one this caught.
Out of scope:
- Genesis 2-50 (rest of #1781)
- Tier-2 accuracy audit results (runs in CI)
- The typological 'light/dark → Rev 21' reading is defensible (e.g.
Beale's NT use of OT) but the closest to a stretch in this batch.
Letting the tier-2 audit have the last word.
Refs #820, #1781.
@github-actions

Copy link
Copy Markdown

Content Pipeline Results

✅ All pipeline checks passed

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

@github-actions

Copy link
Copy Markdown

Test Results

✅ All tests passed

PassedFailedTotal
Tests✅ 3973❌ 03973
Suites✅ 531❌ 0531

Coverage

StatementsBranchesFunctionsLines

⏱️ Duration: 95.8s

@CraigBuckmaster
CraigBuckmaster merged commit 75f78d1 into masterApr 28, 2026
7 checks passed
@CraigBuckmaster
CraigBuckmaster deleted the feat/820-2-genesis-1-proof-of-concept branch April 28, 2026 18:48
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