Hand this page to your AI agent
Give your agent (Claude, ChatGPT or any assistant that can open web pages) this address and ask it to do the task on the page:
https://dbourdeau.github.io/cyphersolver/further/wardein1537.html
Or copy the block below into the chat. It is the whole task: the reading, every open gap, what has been tried, the steps, and how to report back.
TASK: take a partial decipherment further: A Bavarian at Wardein to Duke Ludwig of Bavaria, 14 March 1537
This page: https://dbourdeau.github.io/cyphersolver/further/wardein1537.html
You are helping a public research project finish reading historical cipher letters. This one is read in part:
the key works, but some pieces are still open. Your job is to close one or more of the open gaps below.
THE READING
Write-up: https://dbourdeau.github.io/cyphersolver/wardein1537.html (read it first: how the text was read, the key, the reading)
Date: 1537
Outcome: key from adjacent plaintext · partial
Read now: 64.8% of the deciphered cipher tokens give sense (pieces below may be untouched)
Files: https://github.com/dbourdeau/cyphersolver/tree/main/targets/wardein1537 (NOTES.md, key, transcription, reading, scripts)
OPEN GAPS (from NOTES.md, "## Remaining gaps")
1. [no-key-material: needs a new source] P1.12-32, P2.15-19, P3.01-09, P3.39-P4.01, P4.21-35, P5.05-07 decoded, not read (0.310 / 0.379 explicit holes, re-read 23 Oct 2026; 0.172 / 0.241 with conjectures as holes, v2_score.py) - blocker: no-key-material; they hold most of the unresolved words, code signs and blots listed below
2. [no-key-material: needs a new source] code signs without a key (about 10 words: Ψ at P2.02, 08, 09, 27; swash X at P2.15, P2.25, P4.02, P4.21; K at P4.33, probably "the king") - blocker: no-key-material; single name/word signs, no key in the volume or on DECODE
3. [illegible: needs a new source] blotted or struck signs (about 15 words) - blocker: illegible; ink blots and deletions on the DECODE images
4. [no-key-material: needs a new source] legible but unresolved words (about 55; candidates in gapfill.py output) - blocker: no-key-material; four full image passes, sibling keys and a one-edit lexicon search done, homophone ambiguity remains
ALREADY TRIED (from NOTES.md, "## Escalation")
[x] siblings: R9404-R9407 and R9418-R9422 viewed (other letters or other systems); R9423 key register checked in kaa4591
[x] clear-pages: the gloss over P1 l.6-8 seeded the key; the opening, date and P6 address are clear
[x] known-keys: System A′ (R9427 gloss key), R9369 (Augurelio's 1531 cipher), System B and system L tried; none matches G
[x] print: web search 22 Sept 2026 (Zápolya letters to the Bavarian dukes, Augurelio, Wardein 1537) found no edition
[x] key-rebuild: de-1500s annealing and beam search, gloss-seeded
[x] retry: three visual passes over R9414 and gapfill.py over every unread word (22 Sept 2026)
[x] retry: (2nd, 22 Sept 2026, from the ferdinand1619 session): a whole-word wildcard lexicon pass was written for the 56 single-gap marks (`r9414/wildfill.py`: treat the gap as any letter, match the 171,189-type de-1500s lexicon, score in context). It returns nothing, and for a structural reason worth recording: every `[..1]` in `reading_v3.txt` is a whole unread **word**, not an unread sign inside a read word, so there is no in-word pattern to constrain. The per-sign version of this search is what gapfill.py already does. Short of better images, the ~65 unresolved words are at the limit of these scans, not of the method.
[x] retry: (3rd, 5 Oct 2026, push to 95%): every unread word set beside its raw decrypt (`decrypt_v2.txt`, `cp12/dec_*_new.txt`). Taken only where the decrypt itself spells the word: P1.34 "kopei des anstand wider von **Lunden**" (the Archbishop of Lund, Charles V's negotiator with King John, 1536-38), P3.04 "im lant **feind**", P2.17 "**befelch**(e)", P4.34 "**handstain**" (mining term; fits the ore-specimen passage). Rejected as context guesses: P1.17 "wissen", P3.37 "drei jar", P4.24 "red", P4.28 "sehen". Reading `r9414/reading_v4.txt` (count_v2.py: 951/1037, 91.7%).
[x] retry: (4th, 5 Oct 2026): full-resolution image pass (3-4x crops of the DECODE images) over every non-code gap, sign by sign, logged per gap in `r9414/pass4.txt` (74 entries). Accepted only where the new signs spell the word under keyb + alternatives and the German makes sense: P1.21 "ist", P2.03 "auch er" (the gap was two words around them, now [..1] auch er [..1]), P3.09 "wut", P4.02 "sag, wan", P4.22 "seiner", P4.24 "red". "handstain" (P4.34) withdrawn: the signs give gh?an + tstain. Spelled but rejected for sense: P1.28 "ier flieget", P1.36 "ain", P2.34 "fur sich", P3.01 "haiter", P3.04 "amt", P3.33 "fur kindisch". Findings: P1.18/P1.25 hold the large Ψ code sign; a barred ∂ not in the key stands at P2.17, P2.19, P3.39, P4.21, P4.23 (a new code or letter, unresolved); scribal deletions at P1.20, P2.11, P2.17, P3.24, P4.15. Result `r9414/reading_v5.txt`: 958/1039, 92.2%. Still under the bar; the remaining ~55 words fail on the signs themselves.
[x] retry: (5th, 23 Oct 2026, b37): DECODE record and neighbours re-checked for a text of the letter (none); pass 4 re-checked for P1.12-16; bands scored 0.310 / 0.379 on explicit holes; no change.
[x] verification: (23 Oct 2026, r2c): read lines written out as r9414/R9414_reading.md + R9414_en.md and scored with conjectures as holes (0.71 explicit holes); kept read
[x] joint: solve of the two unkeyed signs (5 Oct 2026). Barred ∂ (∂ with a bar through the stem), five places: P2.17 line start before "befelche sich" (followed by a struck run), P2.19 after clear "otto" before "so wern eur F.G. sehen", P3.39 after clear "iij" before "n monat", P4.21 before "uon" + swash X + "kainen", P4.23 after clear "dann ich beger" before "urlaub". Scored with `de-1500s` over all 22 letters and 23 digraphs/short words (da, de, den, der, dem, das, ver, und, zu, an, ain, von, dar, des …) summed over the five places: every value scores below leaving the sign out (best t −41, s −45, z −48, er/ver −50, d −58 nats total); no value makes sense in all five (da gives "davon" at P4.21 but "beger da urlaub" at P4.23; den the reverse). Best fit is a null or abbreviation/ deletion mark, which adds no read words; not accepted. Large Ψ code (P1.18 "von Ψ in meinem namen geschriben", P1.25 "dieweil sein Ψ mit eur F.G.", also P2.02, 08, 09, 27): a word sign; "Mt." (the King's Majesty) fits P1.18, P1.25, P2.09, P2.27 but is strained at P2.02/P2.08, and a word sign can only be had from context, so not counted. Neither sign appears in R9403, in R9415's code list (`sperantio1534/r9415/transcription.txt` header: its crossed-stem # is f, a different shape), in the System B gloss key (`kaa4591b/sysB/key_from_glosses.tsv`) or in sperantio1534. Measure unchanged: 958/1039 (92.2%).
STEPS
0. Set up. If you can run a shell, fork and clone the repository and work inside it:
git clone https://github.com/dbourdeau/cyphersolver.git
Then read, in this order: CONTRIBUTING.md (how a contribution is sent and credited); README.md, sections
"Repository layout" and "Conventions" (how readings are measured and named); targets/wardein1537/NOTES.md in full, and the
key, transcription and reading files it names; lang/README.md (shared language models).
Work in targets/wardein1537/. Add your findings to NOTES.md under a dated heading without rewriting what is there, and
update the "## Remaining gaps" line of every gap you close. Keep WORKLOG.md there: one dated line per step
(hypothesis, value tried, solver run, crib, control), failures included. Do not edit docs/ (the site is generated).
If you cannot run a shell, fetch the files from the links above and keep your work in files you send with the issue.
1. Pick a gap. Start with the ones marked "doable now" (open-codes, not-attempted, left-open): the images and the key
are online, so they need only work. A gap marked "needs a new source" (no-key-material, too-short, illegible,
needs-physical-access) can be closed only by something new: a key
or a deciphered sibling found elsewhere, a better image, a printed edition or calendar, a photograph from the archive.
For those, search for that material first, and say where you looked even when you find nothing.
2. Start from the existing key and transcription in the folder. Do not rebuild the key from scratch, and do not
re-read parts that are already read unless you find an error in them.
3. For a code group or sign value: list every place the group occurs, show how each reads with the value you propose,
and say what still does not fit. For a passage: re-read it at the image and give the folio and line. For a missing
letter or leaf: say where it is held and how it can be reached.
4. Measure again. Apply the key to the whole text, write the reading file, and count the share of cipher tokens that
give sense (not an estimate). The reading is "complete" only when (1) at least 95% of its cipher tokens give sense;
(2) no gap is left untried; (3) every letter in it is covered; (4) what stays open is scattered code groups or names,
or pieces blocked from outside. Otherwise it stays "partial": say which gaps are still open and why.
5. Be honest. Mark every uncertain word with [?], leave unread groups as their numbers or signs, and never fill a gap
with a plausible guess. A gap retried and still open, with what was ruled out, is worth reporting.
REPORT BACK
With a clone: open a pull request with your changes to targets/wardein1537/. Say in the description which gaps you worked on,
the share read before and after, and how you want to be credited (name, initials or handle, and a link).
Without one: open an issue: https://github.com/dbourdeau/cyphersolver/issues/new?template=further-reading.yml&title=Further+reading%3A+wardein1537&page=wardein1537.html
Give the write-up, the gap you worked on (its line in Remaining gaps, or the code group, folio and line), what you
propose, the evidence (every occurrence, the images or sources), the share read before and after, your step log,
and the tools and AI model you used.
If you cannot open issues or pull requests, write this report for your human to send. Credit goes to the person who sends it.Open gaps
gold can be done now: the images and the key are online, it needs only work. grey needs a new source first: a key, a better scan, an edition or the archive.
- no key known P1.12-32, P2.15-19, P3.01-09, P3.39-P4.01, P4.21-35, P5.05-07 decoded, not read (0.310 / 0.379 explicit holes, re-read 23 Oct 2026; 0.172 / 0.241 with conjectures as holes, v2_score.py) - blocker: no-key-material; they hold most of the unresolved words, code signs and blots listed below
- no key known code signs without a key (about 10 words: Ψ at P2.02, 08, 09, 27; swash X at P2.15, P2.25, P4.02, P4.21; K at P4.33, probably "the king") - blocker: no-key-material; single name/word signs, no key in the volume or on DECODE
- hard to read on the scan blotted or struck signs (about 15 words) - blocker: illegible; ink blots and deletions on the DECODE images
- no key known legible but unresolved words (about 55; candidates in gapfill.py output) - blocker: no-key-material; four full image passes, sibling keys and a one-edit lexicon search done, homophone ambiguity remains
Already tried
- ☑ siblings R9404-R9407 and R9418-R9422 viewed (other letters or other systems); R9423 key register checked in kaa4591
- ☑ clear-pages the gloss over P1 l.6-8 seeded the key; the opening, date and P6 address are clear
- ☑ known-keys System A′ (R9427 gloss key), R9369 (Augurelio's 1531 cipher), System B and system L tried; none matches G
- ☑ print web search 22 Sept 2026 (Zápolya letters to the Bavarian dukes, Augurelio, Wardein 1537) found no edition
- ☑ key-rebuild de-1500s annealing and beam search, gloss-seeded
- ☑ retry three visual passes over R9414 and gapfill.py over every unread word (22 Sept 2026)
- ☑ retry (2nd, 22 Sept 2026, from the ferdinand1619 session): a whole-word wildcard lexicon pass was written for the 56 single-gap marks (`r9414/wildfill.py`: treat the gap as any letter, match the 171,189-type de-1500s lexicon, score in context). It returns nothing, and for a structural reason worth recording: every `[..1]` in `reading_v3.txt` is a whole unread **word**, not an unread sign inside a read word, so there is no in-word pattern to constrain. The per-sign version of this search is what gapfill.py already does. Short of better images, the ~65 unresolved words are at the limit of these scans, not of the method.
- ☑ retry (3rd, 5 Oct 2026, push to 95%): every unread word set beside its raw decrypt (`decrypt_v2.txt`, `cp12/dec_*_new.txt`). Taken only where the decrypt itself spells the word: P1.34 "kopei des anstand wider von **Lunden**" (the Archbishop of Lund, Charles V's negotiator with King John, 1536-38), P3.04 "im lant **feind**", P2.17 "**befelch**(e)", P4.34 "**handstain**" (mining term; fits the ore-specimen passage). Rejected as context guesses: P1.17 "wissen", P3.37 "drei jar", P4.24 "red", P4.28 "sehen". Reading `r9414/reading_v4.txt` (count_v2.py: 951/1037, 91.7%).
- ☑ retry (4th, 5 Oct 2026): full-resolution image pass (3-4x crops of the DECODE images) over every non-code gap, sign by sign, logged per gap in `r9414/pass4.txt` (74 entries). Accepted only where the new signs spell the word under keyb + alternatives and the German makes sense: P1.21 "ist", P2.03 "auch er" (the gap was two words around them, now [..1] auch er [..1]), P3.09 "wut", P4.02 "sag, wan", P4.22 "seiner", P4.24 "red". "handstain" (P4.34) withdrawn: the signs give gh?an + tstain. Spelled but rejected for sense: P1.28 "ier flieget", P1.36 "ain", P2.34 "fur sich", P3.01 "haiter", P3.04 "amt", P3.33 "fur kindisch". Findings: P1.18/P1.25 hold the large Ψ code sign; a barred ∂ not in the key stands at P2.17, P2.19, P3.39, P4.21, P4.23 (a new code or letter, unresolved); scribal deletions at P1.20, P2.11, P2.17, P3.24, P4.15. Result `r9414/reading_v5.txt`: 958/1039, 92.2%. Still under the bar; the remaining ~55 words fail on the signs themselves.
- ☑ retry (5th, 23 Oct 2026, b37): DECODE record and neighbours re-checked for a text of the letter (none); pass 4 re-checked for P1.12-16; bands scored 0.310 / 0.379 on explicit holes; no change.
- ☑ verification (23 Oct 2026, r2c): read lines written out as r9414/R9414_reading.md + R9414_en.md and scored with conjectures as holes (0.71 explicit holes); kept read
- ☑ joint solve of the two unkeyed signs (5 Oct 2026). Barred ∂ (∂ with a bar through the stem), five places: P2.17 line start before "befelche sich" (followed by a struck run), P2.19 after clear "otto" before "so wern eur F.G. sehen", P3.39 after clear "iij" before "n monat", P4.21 before "uon" + swash X + "kainen", P4.23 after clear "dann ich beger" before "urlaub". Scored with `de-1500s` over all 22 letters and 23 digraphs/short words (da, de, den, der, dem, das, ver, und, zu, an, ain, von, dar, des …) summed over the five places: every value scores below leaving the sign out (best t −41, s −45, z −48, er/ver −50, d −58 nats total); no value makes sense in all five (da gives "davon" at P4.21 but "beger da urlaub" at P4.23; den the reverse). Best fit is a null or abbreviation/ deletion mark, which adds no read words; not accepted. Large Ψ code (P1.18 "von Ψ in meinem namen geschriben", P1.25 "dieweil sein Ψ mit eur F.G.", also P2.02, 08, 09, 27): a word sign; "Mt." (the King's Majesty) fits P1.18, P1.25, P2.09, P2.27 but is strained at P2.02/P2.08, and a word sign can only be had from context, so not counted. Neither sign appears in R9403, in R9415's code list (`sperantio1534/r9415/transcription.txt` header: its crossed-stem # is f, a different shape), in the System B gloss key (`kaa4591b/sysB/key_from_glosses.tsv`) or in sperantio1534. Measure unchanged: 958/1039 (92.2%).
Send a result
One closed gap counts: a code group valued, a passage re-read, a key or clear copy found elsewhere. It is credited to you on the write-up.