Skip to content

Commit 806f06b

Browse files
13 widely-accepted weave suggestions + a coverage TODO
Fills the zero-coverage books found in the library scan: Revelation's OT spine (throne vision, beast from the sea, all things new, pierced-and- coming), Daniel/2Thess (man of sin), the resurrection chain (death swallowed in victory), Cain/Jude/1John, Haman↔Agag for Esther, Lamentations' cheek-to-the-smiter, Ecclesiastes' vanity in Romans 8, the great day of the LORD (Zeph/Joel/Acts/Rev), Nahum↔Isaiah↔Romans good tidings, and Psalm 110:1 (reaching Colossians). All notesSource=generated, unapproved — they land in the Suggested review queue. TODO.md records the why (harvest tracks verbatim quotation, so allusive books fell through) and the plan (allusion- sensitive detection tier); Song + Philemon left empty deliberately. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent d9c598b commit 806f06b

14 files changed

Lines changed: 481 additions & 0 deletions

TODO.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ tagging for a German Bible by LLM alignment — license-clean, quality-measured,
77
shippable in the data pack — instead of adopting the encumbered community
88
modules.*
99

10+
> **Reminder — first moves, before any bulk spend:**
11+
> 1. *Afternoon spike:* hand-build a ~10-verse Luther jsonl (same header
12+
> schema, stamp `lut1912-tok1`) and load it through
13+
> `pure_engine_open_from_bytes` — the loader ignores `format` and accepts
14+
> any tokenization stamp, so German text renders in the reader today. This
15+
> proves the display path end to end.
16+
> 2. *Pilot before corpus:* run Ruth + 1 John (~190 verses) through the full
17+
> prompt → verify → adjudicate loop and **measure the error rate** (see
18+
> QA protocol below) before submitting the 31k-verse batch.
19+
1020
### Background (why build our own)
1121

1222
- The existing Strong's-tagged Luther 1912 modules are of unknown provenance;
@@ -76,6 +86,55 @@ makes it both tractable and mechanically verifiable.
7686
de-hardcoding work from the German-support assessment (corpus filename,
7787
`TOKENIZATION_VERSION`, book-name aliases, "Johannes 3,16" ref parsing).
7888

89+
### Methodology recommendations
90+
91+
**Prompt design (phase 2)**
92+
- Per-verse context: indexed German tokens; source tokens each with Strong's
93+
code, lemma, transliteration, short gloss, and morph code; plus the tagged
94+
KJV rendering of the same verse as a bridge hint (we already ship it — a
95+
cheap, strong disambiguation signal).
96+
- Keep the instruction block stable and modest (~1k tokens) so it prompt-caches;
97+
all per-verse content goes after it.
98+
- Include 3–5 hand-aligned few-shot examples in the instructions, chosen to
99+
cover the hard shapes: a separable verb, a compound, an untranslated
100+
particle, a one-to-many rendering.
101+
- Output: for each German token, an array of codes + a confidence (0–1) + a
102+
note only when uncertain. Enforce with a strict structured-output schema
103+
whose code values are enumerated per request from the verse's inventory —
104+
invention impossible by construction.
105+
106+
**Decision policy (phases 3–5)**
107+
- Auto-accept where the LLM and the statistical aligner agree and
108+
confidence ≥ 0.8.
109+
- Queue for Opus adjudication: LLM/aligner disagreements, confidence < 0.8,
110+
coverage violations, consistency-matrix outliers.
111+
- The adjudicator sees both proposals plus the verifier evidence. If it still
112+
hesitates, the token keeps an `uncertain` flag and renders as unverified in
113+
the app until a human approves it (via `patches/`).
114+
115+
**Statistical verifier (phase 4)**
116+
- eflomal in both directions (de→source, source→de), symmetrized
117+
(grow-diag-final-and); count only content-word links as votes.
118+
- Consistency matrix: P(code | German lemma) over the whole corpus; flag any
119+
assignment below ~1% probability for lemmas with ≥5 occurrences.
120+
121+
**QA protocol (phase 6)**
122+
- Stratified random sample of ~400 token alignments (OT/NT × prose/poetry ×
123+
short/long verses), graded blind against the sources — don't look at the
124+
model's confidence while grading.
125+
- Ship bar: <2% error on content words in the auto-accepted set. The
126+
adjudicated set may be looser but must stay visibly flagged in-app.
127+
- The community-tagged module may serve as a disagreement detector during
128+
eval only — never copy an alignment from it.
129+
130+
**Runbook mechanics (phase 3)**
131+
- Message Batches API with `custom_id` = the verse ref key (`"Gen 1:1"`);
132+
results arrive in any order — key by `custom_id`, never by position.
133+
- One batch covers the corpus (31k ≪ 100k cap). Keep the raw batch results on
134+
disk; the pipeline must be resumable from them without re-spending.
135+
- Log every errored/refused/non-conforming response and re-queue those verses
136+
individually.
137+
79138
### Cost estimate (Batches API, prices as of 2026-06)
80139

81140
Assumptions: ~1.0–1.5k input tokens/verse (shared instructions + German verse
@@ -115,3 +174,19 @@ to "any public-domain MT/TR translation exists" — which is nearly always true.
115174

116175
- The `../overlay` checkout (SWORD → jsonl importer) for phase 1.
117176
- An Anthropic API key for phases 2–5; eflomal or fast_align (CPU) for phase 4.
177+
178+
## Weave coverage for allusive books
179+
180+
*Observed 2026-07-15: 17 books had zero weave endpoints (Esth, Eccl, Song,
181+
Lam, Jonah, Nah, Zeph, Col, 1-2Thess, Titus, Phlm, 1-3John, Jude, Rev; Josh/
182+
Job/Ezek/Dan near-zero). Cause: the harvested weaves track verbatim-quotation
183+
density, so books that allude without quoting (Revelation <-> Daniel/Ezekiel/
184+
Zechariah above all) fall through.*
185+
186+
- [ ] Revive the deferred **cross-testament quotation/allusion detection**
187+
R&D tier with an allusion-sensitive method (n-gram + embedding hybrid),
188+
aimed specifically at Revelation's OT spine.
189+
- [ ] A first hand batch of widely-accepted suggestions landed in
190+
`weaves/suggested/` (2026-07-15); Song of Solomon and Philemon left
191+
empty deliberately -- Song's typological readings are tradition-specific
192+
rather than verse-level consensus, and Philemon has no OT parallels.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"format": "overlay-weave-v2",
3+
"name": "All things new",
4+
"kind": "prophecy",
5+
"tokenization": "kjv1769-tok2",
6+
"notes": "The new creation of Revelation 21-22 gathers Isaiah's new heavens, Ezekiel's river and dwelling, and Eden's tree of life.",
7+
"notesSource": "generated",
8+
"created": "2026-07-15T07:10:00Z",
9+
"approved": false,
10+
"links": [
11+
{
12+
"a": "Isa 65:17",
13+
"b": "Rev 21:1",
14+
"label": "new heavens and a new earth"
15+
},
16+
{
17+
"a": "Isa 25:8",
18+
"b": "Rev 21:4",
19+
"label": "wipe away tears"
20+
},
21+
{
22+
"a": "Ezek 37:27",
23+
"b": "Rev 21:3",
24+
"label": "my tabernacle with them"
25+
},
26+
{
27+
"a": "Ezek 47:1",
28+
"b": "Rev 22:1",
29+
"label": "the river from the throne"
30+
},
31+
{
32+
"a": "Ezek 47:12",
33+
"b": "Rev 22:2",
34+
"label": "leaves for healing"
35+
},
36+
{
37+
"a": "Gen 2:9",
38+
"b": "Rev 22:2",
39+
"label": "the tree of life"
40+
}
41+
]
42+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"format": "overlay-weave-v2",
3+
"name": "Death swallowed in victory",
4+
"kind": "quotation",
5+
"tokenization": "kjv1769-tok2",
6+
"notes": "Paul's resurrection chapter quotes Isaiah and Hosea; Daniel and Isaiah carry the awakening of the dead; the trumpet joins Corinthians and Thessalonians.",
7+
"notesSource": "generated",
8+
"created": "2026-07-15T07:10:00Z",
9+
"approved": false,
10+
"links": [
11+
{
12+
"a": "Isa 25:8",
13+
"b": "1Cor 15:54",
14+
"label": "death is swallowed up in victory"
15+
},
16+
{
17+
"a": "Hos 13:14",
18+
"b": "1Cor 15:55",
19+
"label": "O death, where is thy sting"
20+
},
21+
{
22+
"a": "Isa 26:19",
23+
"b": "Dan 12:2",
24+
"label": "thy dead men shall live"
25+
},
26+
{
27+
"a": "Dan 12:2",
28+
"b": "John 5:29",
29+
"label": "some to life, some to shame"
30+
},
31+
{
32+
"a": "1Cor 15:52",
33+
"b": "1Thess 4:16",
34+
"label": "the trump of God"
35+
}
36+
]
37+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"format": "overlay-weave-v2",
3+
"name": "Good tidings upon the mountains",
4+
"kind": "quotation",
5+
"tokenization": "kjv1769-tok2",
6+
"notes": "Isaiah's herald, echoed by Nahum and quoted by Paul.",
7+
"notesSource": "generated",
8+
"created": "2026-07-15T07:10:00Z",
9+
"approved": false,
10+
"links": [
11+
{
12+
"a": "Isa 52:7",
13+
"b": "Rom 10:15",
14+
"label": "the feet of him that bringeth good tidings"
15+
},
16+
{
17+
"a": "Nah 1:15",
18+
"b": "Isa 52:7",
19+
"label": "upon the mountains the feet"
20+
}
21+
]
22+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"format": "overlay-weave-v2",
3+
"name": "Haman the Agagite",
4+
"kind": "retelling",
5+
"tokenization": "kjv1769-tok2",
6+
"notes": "Esther replays Saul and Agag: Haman the Agagite against Mordecai the Benjamite of the house of Kish, under the standing war with Amalek.",
7+
"notesSource": "generated",
8+
"created": "2026-07-15T07:10:00Z",
9+
"approved": false,
10+
"links": [
11+
{
12+
"a": "Esth 3:1",
13+
"b": "1Sam 15:8",
14+
"label": "Agag"
15+
},
16+
{
17+
"a": "Esth 3:1",
18+
"b": "Exod 17:16",
19+
"label": "war with Amalek"
20+
},
21+
{
22+
"a": "Esth 2:5",
23+
"b": "1Sam 9:1",
24+
"label": "Kish, a Benjamite"
25+
}
26+
]
27+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"format": "overlay-weave-v2",
3+
"name": "He giveth his cheek",
4+
"kind": "type",
5+
"tokenization": "kjv1769-tok2",
6+
"notes": "Lamentations' sufferer and Isaiah's servant give the cheek to the smiter -- taught by Jesus and fulfilled at his trial.",
7+
"notesSource": "generated",
8+
"created": "2026-07-15T07:10:00Z",
9+
"approved": false,
10+
"links": [
11+
{
12+
"a": "Lam 3:30",
13+
"b": "Isa 50:6",
14+
"label": "the cheek to him that smiteth"
15+
},
16+
{
17+
"a": "Isa 50:6",
18+
"b": "Matt 26:67",
19+
"label": "they smote him"
20+
},
21+
{
22+
"a": "Lam 3:30",
23+
"b": "Matt 5:39",
24+
"label": "turn the other cheek"
25+
}
26+
]
27+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"format": "overlay-weave-v2",
3+
"name": "Pierced, and coming with clouds",
4+
"kind": "prophecy",
5+
"tokenization": "kjv1769-tok2",
6+
"notes": "Daniel's Son of man and Zechariah's pierced one, joined by the NT itself (Rev 1:7 fuses both).",
7+
"notesSource": "generated",
8+
"created": "2026-07-15T07:10:00Z",
9+
"approved": false,
10+
"links": [
11+
{
12+
"a": "Dan 7:13",
13+
"b": "Matt 24:30",
14+
"label": "coming in the clouds"
15+
},
16+
{
17+
"a": "Dan 7:13",
18+
"b": "Matt 26:64",
19+
"label": "coming in the clouds of heaven"
20+
},
21+
{
22+
"a": "Dan 7:13",
23+
"b": "Rev 1:7",
24+
"label": "he cometh with clouds"
25+
},
26+
{
27+
"a": "Zech 12:10",
28+
"b": "Rev 1:7",
29+
"label": "they which pierced him"
30+
},
31+
{
32+
"a": "Zech 12:10",
33+
"b": "John 19:37",
34+
"label": "they shall look on him whom they pierced"
35+
}
36+
]
37+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"format": "overlay-weave-v2",
3+
"name": "Sit thou at my right hand",
4+
"kind": "quotation",
5+
"tokenization": "kjv1769-tok2",
6+
"notes": "Psalm 110:1 -- the most-quoted verse in the New Testament -- from the riddle to the Pharisees to Pentecost, Hebrews, and Colossians.",
7+
"notesSource": "generated",
8+
"created": "2026-07-15T07:10:00Z",
9+
"approved": false,
10+
"links": [
11+
{
12+
"a": "Ps 110:1",
13+
"b": "Matt 22:44",
14+
"label": "The LORD said unto my Lord"
15+
},
16+
{
17+
"a": "Ps 110:1",
18+
"b": "Acts 2:34",
19+
"label": "Sit thou on my right hand"
20+
},
21+
{
22+
"a": "Ps 110:1",
23+
"b": "Heb 1:13",
24+
"label": "until I make thine enemies thy footstool"
25+
},
26+
{
27+
"a": "Ps 110:1",
28+
"b": "Col 3:1",
29+
"label": "where Christ sitteth on the right hand of God"
30+
}
31+
]
32+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"format": "overlay-weave-v2",
3+
"name": "Subject to vanity",
4+
"kind": "type",
5+
"tokenization": "kjv1769-tok2",
6+
"notes": "Paul's creature made subject to vanity takes up the Preacher's refrain; the judgment of every work answers Ecclesiastes' last word.",
7+
"notesSource": "generated",
8+
"created": "2026-07-15T07:10:00Z",
9+
"approved": false,
10+
"links": [
11+
{
12+
"a": "Eccl 1:2",
13+
"b": "Rom 8:20",
14+
"label": "vanity"
15+
},
16+
{
17+
"a": "Eccl 12:14",
18+
"b": "2Cor 5:10",
19+
"label": "every work into judgment"
20+
}
21+
]
22+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"format": "overlay-weave-v2",
3+
"name": "The beast from the sea",
4+
"kind": "retelling",
5+
"tokenization": "kjv1769-tok2",
6+
"notes": "Revelation 13 composites Daniel 7's four beasts into one.",
7+
"notesSource": "generated",
8+
"created": "2026-07-15T07:10:00Z",
9+
"approved": false,
10+
"links": [
11+
{
12+
"a": "Dan 7:3",
13+
"b": "Rev 13:1",
14+
"label": "beasts out of the sea"
15+
},
16+
{
17+
"a": "Dan 7:4",
18+
"b": "Rev 13:2",
19+
"label": "the lion"
20+
},
21+
{
22+
"a": "Dan 7:5",
23+
"b": "Rev 13:2",
24+
"label": "the bear"
25+
},
26+
{
27+
"a": "Dan 7:6",
28+
"b": "Rev 13:2",
29+
"label": "the leopard"
30+
},
31+
{
32+
"a": "Dan 7:8",
33+
"b": "Rev 13:5",
34+
"label": "a mouth speaking great things"
35+
},
36+
{
37+
"a": "Dan 7:21",
38+
"b": "Rev 13:7",
39+
"label": "war with the saints"
40+
}
41+
]
42+
}

0 commit comments

Comments
 (0)