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/juel1647.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: Peder Juel’s register of outgoing letters, Stockholm, November 1647: the entry to the chancellor
This page: https://dbourdeau.github.io/cyphersolver/further/juel1647.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/juel1647.html (read it first: how the text was read, the key, the reading)
Date: 1647
Outcome: key from adjacent plaintext · partial
Read now: 45.9% of the deciphered cipher tokens give sense (pieces below may be untouched)
Files: https://github.com/dbourdeau/cyphersolver/tree/main/targets/juel1647 (NOTES.md, key, transcription, reading, scripts)
OPEN GAPS (from NOTES.md, "## Remaining gaps")
1. [no-key-material: needs a new source] 11, 12, 13 in the 8-64 table - blocker: no-key-material; no gloss in images 117-121; they stand in "12 19 37 27" and "13 19 37 27 20 29 44 61" (p. 5), which do not read, and in the chancellor repair `giern{[11]c/e}`, where two signs (11 unglossed, 35 = c) are replaced by one letter; the word is certain from context, the signs are not explained.
2. [illegible: needs a new source] 50 in "sterk" (p. 5, line 2, `50|56`) - blocker: illegible; a flourish from the line above crosses the digit where a 6's ascender would be. Read as 56 the word is verbatim; read as 50 it decodes z by the run. With "holsten" now read as 56, any claim that 50 = s rests on this one doubtful place.
3. [illegible: needs a new source] the chancellor entry's last two sentences - blocker: illegible; "trgese" (with `33|53`), "quartg[11]bb", "fyle" and "forlagrdit aggrop" do not read; copyist errors or unclear figures in the register; the original letter of 20 Nov 1647 is not among images 115-135 of unit 261575.
4. [open-codes: doable now] the nomenclator - blocker: open-codes; 83, 84, 123, 124, 129, 158 on p. 5 (the p. 115 codes moved to vibejuel1649); no code list found. 124 (the man they would have as general) and 158 (where) are not identified; the context (winter 1647-48, Sweden seeking a generalissimo for the army in Germany) suggests candidates, but none is claimed.
5. [open-codes: doable now] the signs TT, Θ, ∞, Ψ, Δ, Ш on p. 5 - blocker: open-codes; no list of these signs found.
6. [too-short: needs a new source] p. 6 (3-32 set, to Hannibal Sehested) - blocker: too-short; 30 numbers, no glossed sibling; the original letter to Hannibal Sehested would be needed.
7. [too-short: needs a new source] the held-out test is not strictly blind - blocker: too-short; image 118 was seen while the run pattern was worked out, and no other glossed letter of the 8-64 table was found among images 115-135.
8. [needs-physical-access: needs a new source] one blind AI review only; no human has checked the signs or the readings - blocker: needs-physical-access; a reader of Danish secretary hands with the originals or better images.
ALREADY TRIED (from NOTES.md, "## Escalation")
[x] siblings: Juel's original letters to the chancellor in unit 261575, images 115-135, opened; images 117 and 121 (glossed) gave the key, image 118 (glossed) the held-out test; the register pages next to the runs (pp. 4, 6, 8-9) checked for more runs
[x] clear-pages: the register has no decipherment; the interlinear glosses of the time on the originals are the clear text used
[x] known-keys: Peder Vibe's old and new ciphers (Dudout, PR #410) tried on p. 6 (the old cipher also reads p. 115, moved to vibejuel1649); the 8-64 table and its shifts (-40..+40) and plain rank ciphers tried on p. 6 (`scripts/test_332.py`)
[x] print: Fryxell, Handlingar rörande Sverges historia 1 (1836) prints an abstract without the cipher passages; DECODE, Tomokiyo and Lasry have nothing (catalogue vetting 11 Nov 2026); one web search on 12 Nov 2026 found nothing
[x] key-rebuild: the four runs of the table rebuilt from the glosses and the unglossed values filled from the run pattern (marked `s`); 11, 12, 13 could not be rebuilt from what reads
[x] retry: the doubtful groups were re-read on the image in the blind review (three corrected, two marked doubtful) and the readings regraded; the remaining holes are listed under Remaining gaps
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/juel1647/NOTES.md in full, and the
key, transcription and reading files it names; lang/README.md (shared language models).
Work in targets/juel1647/. 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/juel1647/. 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+juel1647&page=juel1647.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 11, 12, 13 in the 8-64 table - blocker: no-key-material; no gloss in images 117-121; they stand in "12 19 37 27" and "13 19 37 27 20 29 44 61" (p. 5), which do not read, and in the chancellor repair `giern{[11]c/e}`, where two signs (11 unglossed, 35 = c) are replaced by one letter; the word is certain from context, the signs are not explained.
- hard to read on the scan 50 in "sterk" (p. 5, line 2, `50|56`) - blocker: illegible; a flourish from the line above crosses the digit where a 6's ascender would be. Read as 56 the word is verbatim; read as 50 it decodes z by the run. With "holsten" now read as 56, any claim that 50 = s rests on this one doubtful place.
- hard to read on the scan the chancellor entry's last two sentences - blocker: illegible; "trgese" (with `33|53`), "quartg[11]bb", "fyle" and "forlagrdit aggrop" do not read; copyist errors or unclear figures in the register; the original letter of 20 Nov 1647 is not among images 115-135 of unit 261575.
- code groups open the nomenclator - blocker: open-codes; 83, 84, 123, 124, 129, 158 on p. 5 (the p. 115 codes moved to vibejuel1649); no code list found. 124 (the man they would have as general) and 158 (where) are not identified; the context (winter 1647-48, Sweden seeking a generalissimo for the army in Germany) suggests candidates, but none is claimed.
- code groups open the signs TT, Θ, ∞, Ψ, Δ, Ш on p. 5 - blocker: open-codes; no list of these signs found.
- too short to break p. 6 (3-32 set, to Hannibal Sehested) - blocker: too-short; 30 numbers, no glossed sibling; the original letter to Hannibal Sehested would be needed.
- too short to break the held-out test is not strictly blind - blocker: too-short; image 118 was seen while the run pattern was worked out, and no other glossed letter of the 8-64 table was found among images 115-135.
- needs the archive one blind AI review only; no human has checked the signs or the readings - blocker: needs-physical-access; a reader of Danish secretary hands with the originals or better images.
Already tried
- ☑ siblings Juel's original letters to the chancellor in unit 261575, images 115-135, opened; images 117 and 121 (glossed) gave the key, image 118 (glossed) the held-out test; the register pages next to the runs (pp. 4, 6, 8-9) checked for more runs
- ☑ clear-pages the register has no decipherment; the interlinear glosses of the time on the originals are the clear text used
- ☑ known-keys Peder Vibe's old and new ciphers (Dudout, PR #410) tried on p. 6 (the old cipher also reads p. 115, moved to vibejuel1649); the 8-64 table and its shifts (-40..+40) and plain rank ciphers tried on p. 6 (`scripts/test_332.py`)
- ☑ print Fryxell, Handlingar rörande Sverges historia 1 (1836) prints an abstract without the cipher passages; DECODE, Tomokiyo and Lasry have nothing (catalogue vetting 11 Nov 2026); one web search on 12 Nov 2026 found nothing
- ☑ key-rebuild the four runs of the table rebuilt from the glosses and the unglossed values filled from the run pattern (marked `s`); 11, 12, 13 could not be rebuilt from what reads
- ☑ retry the doubtful groups were re-read on the image in the blind review (three corrected, two marked doubtful) and the readings regraded; the remaining holes are listed under Remaining gaps
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.