Read further · read 90.4% · external key matched · partial

Filippo Maria Visconti to Francesco Sforza: the cipher slips of November 1446 to March 1447

Twenty parchment slips from the last months of the Visconti duke to his son-in-law, in the Sforza archive taken to Paris in 1499. Their key is an anonymous eighteenth-century copy on DECODE (Carteggio Sforzesco cart. 1597 no. 23, R5323), identified here and checked against three translations of the time. Ten slips had clear copies filed with them; the others are deciphered here for the first time: Cremona, the Dauphin and Asti, Cosimo de’ Medici, the new pope.

Date
1446–1447
Read now
90.4% of the cipher tokens give sense
Write-up
visconti1446.html
Files
targets/visconti1446
Open gaps
code groups openhard to read on the scan ×3needs the archive

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/visconti1446.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: Filippo Maria Visconti to Francesco Sforza: the cipher slips of November 1446 to March 1447
This page: https://dbourdeau.github.io/cyphersolver/further/visconti1446.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/visconti1446.html (read it first: how the text was read, the key, the reading)
  Date:       1446–1447
  Outcome:    external key matched · partial
  Read now:   90.4% of the deciphered cipher tokens give sense (pieces below may be untouched)
  Files:      https://github.com/dbourdeau/cyphersolver/tree/main/targets/visconti1446 (NOTES.md, key, transcription, reading, scripts)

OPEN GAPS (from NOTES.md, "## Remaining gaps")
  1. [illegible: needs a new source] f. 110 (1 Nov 1446): 292 of 2,689 non-null signs unread, 231 of them on the cramped verso where signs run together - blocker: illegible; binarized DECODE image, ital. 1583 not digitised (microfilm MF 16151); the 1597 copy gives the sense of the gaps
  2. [illegible: needs a new source] f. 154 (12 Dec 1446): parts of 14 lines (19.6% of non-null signs) - blocker: illegible; same DECODE resolution, page bent; two baseline-tracked passes done
  3. [illegible: needs a new source] ff. 130, 158: scattered stretches that give values but no words (11.8%, 10.6%) - blocker: illegible; DECODE images, no copy in ital. 1597; f. 131 (translation of f. 130) not digitised
  4. [open-codes: doable now] f. 72: the name signs < and est - blocker: open-codes; the key copy leaves both labels blank and the later copy f. 73 leaves < blank too; the rest of the text is in f. 73
  5. [needs-physical-access: needs a new source] ital. 1583 f. 145 (1 Dec 1446) and the translation f. 131 - blocker: needs-physical-access; not on DECODE, ital. 1583 not digitised (BnF AeM record: microfilm MF 16151; btv1b10033686w is ital. 1587); a 19th-c. copy of f. 145 is ital. 1597 canvas 160

ALREADY TRIED (from NOTES.md, "## Escalation")
  [x] siblings: all 21 slips of the series mapped (ital. 1583, 1584); duplicates read side by side (ff. 23/24, 30/31, 36/37, 64/65)
  [x] clear-pages: decipherments ff. 6, 9, 25, 103 and copies ff. 29, 35, 63, 73, 82/85, 92 transcribed and compared; ff. 38, 84, 95 identified as decipherments; ital. 1597 canvases 116-182 and ital. 1598 checked for copies of the 1446 slips (ff. 110, 136, 145 found); f. 16 belongs to f. 15 (visconti1447)
  [x] known-keys: the 15th-c. keys of ASMi cart. 1597 (R5301-R5340) read by heading; R5323 fits, R5324 does not (it reads f. 15); R1857 image 17 is a second copy of R5323, images 11 and 19 do not fit
  [x] print: Mazzatinti 1883/1887; Osio, Documenti diplomatici III (1872); Tomokiyo's Cryptiana; web search: none prints the Duke's letters; Cerioni 1970 covers the later Sforza keys
  [x] key-rebuild: name signs (Cosimo, Marchese di Mantova, Dux Mediolani) and homophones added from use (texts/key_additions_A-H.md, peer/working_key.md); LM lattice decoder for the glyph classes the scans merge failed its control on f. 136 (peer/lattice.py)
  [x] retry: ff. 23, 24, 102 re-read (worker E, 84-92% -> 94-97%); f. 154 re-transcribed on traced baselines (72.8% -> 80.4%); f. 110 second recto pass and verso show-through removal (38.7% recto -> 39.2%; verso 0 -> 15.0%)

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/visconti1446/NOTES.md in full, and the
   key, transcription and reading files it names; lang/README.md (shared language models).
   Work in targets/visconti1446/. 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/visconti1446/. 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+visconti1446&page=visconti1446.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.

Already tried

Needs the archive

These gaps can only be closed from the original or a book out of reach. If you can visit or order, take one: all archive requests.

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.

Open a further-reading issueOther kinds of reportHow credit works← All partial readings