Part of Epic #820 Hermeneutic Lenses. PILOT GATE — must ship clean before any other batch (#820/3 onward) opens.
Goal
Generate the first wave of curated-sparse lens content for all 50 Genesis chapters. Validates the entire pipeline end-to-end: AI generation, lens quality scorer, accuracy auditor (tier-2 strictest gate per Craig's setting), schema validator, DB build, R2 upload.
Workflow per chapter
In ephemeral /tmp/gen_genesis_lenses.py:
- Load chapter content from
content/genesis/{N}.json
- For each lens, decide if it genuinely fits this chapter (typically 3–5 of 8)
- Generate
guidance + optional panel_filter + panel_order
- Run
python3 _tools/lens_quality_scorer.py --chapter gen{N} — reject + regenerate if any entry < 90
- Run
python3 _tools/accuracy_auditor.py --chapter meta_lens_gen{N} --tier 2 — reject + regenerate on tier-2 fail
- Write
content/hermeneutic_lenses/chapters/gen{N}.json
Output shape (per file)
{
"lenses": [
{
"lens_id": "grammatical",
"guidance": "80-280 chars, anchored to a real verse number or proper noun",
"panel_filter": ["heb", "hist", "ctx", "lit"],
"panel_order": ["heb", "lit", "hist", "ctx"]
}
]
}
Acceptance criteria
Pilot gate
If this batch ships clean, sub-issues #820/3 through #820/10 unblock and can run in parallel. If the pilot doesn't ship clean, no batches open until tooling/prompt issues are resolved.
Out of scope
- Any non-Genesis content
- Premium-tier gating changes (already wired)
Part of Epic #820 Hermeneutic Lenses. PILOT GATE — must ship clean before any other batch (#820/3 onward) opens.
Goal
Generate the first wave of curated-sparse lens content for all 50 Genesis chapters. Validates the entire pipeline end-to-end: AI generation, lens quality scorer, accuracy auditor (tier-2 strictest gate per Craig's setting), schema validator, DB build, R2 upload.
Workflow per chapter
In ephemeral
/tmp/gen_genesis_lenses.py:content/genesis/{N}.jsonguidance+ optionalpanel_filter+panel_orderpython3 _tools/lens_quality_scorer.py --chapter gen{N}— reject + regenerate if any entry < 90python3 _tools/accuracy_auditor.py --chapter meta_lens_gen{N} --tier 2— reject + regenerate on tier-2 failcontent/hermeneutic_lenses/chapters/gen{N}.jsonOutput shape (per file)
{ "lenses": [ { "lens_id": "grammatical", "guidance": "80-280 chars, anchored to a real verse number or proper noun", "panel_filter": ["heb", "hist", "ctx", "lit"], "panel_order": ["heb", "lit", "hist", "ctx"] } ] }Acceptance criteria
lens_quality_scorer.pyaccuracy_auditor.py --tier 2schema_validator.pySection 21 passeschapter_lens_contentrow count between 150 and 250 (sanity bound for sparse coverage on 50 chapters)Pilot gate
If this batch ships clean, sub-issues #820/3 through #820/10 unblock and can run in parallel. If the pilot doesn't ship clean, no batches open until tooling/prompt issues are resolved.
Out of scope