Unsolved Catalogue · no. 2350 · class A · priority 8.4 · open

Bernardo Rucellai, Florentine orator in Milan, July-September 1482: four bare letters in his sign cipher, with three glossed siblings in the same filza

A run of cipher despatches from Milan in the War of Ferrara (1482), with three glossed letters of the same system beside them: a key can be rebuilt and the four bare letters (and lead 2323) read.

Date
3 Jul - 4 Sep 1482
Correspondents
Bernardo Rucellai, Florentine orator in Milan -> Lionardo Spina in Pisa (Lorenzo de' Medici's cover address)
Place
Milan
Language
Italian (sign cipher with clear words)
Held at
Archivio di Stato di Firenze, Mediceo avanti il Principato, filza LXXII, docs. 196, 200, 202, 206 · Each a single leaf, recto, opening in clear and running into sign-cipher passages between clear words, verso addressed 'D(omi)no Lionardo Spina in Pisa' and endorsed: 196 (old c. 238; about 18 lines; '1482 / Da Milano / a di iij di luglio / R(isposto) a di vij detto'), 200 (c. 243; about 15 lines; '1482 / da Bernardo Rucellai / a di 19 di luglio'), 202 (c. 245; about 16 lines; '1482 / da Bernardo Rucellai / ... luglio'), 206 (c. 249; about 7 lines with dotted gaps; '1482 / da Bernardo Rucellai / a di 4 di sett.'). MAP inventory vol. 3, filza LXXII: '(Bernardo Rucellai). (Milano, 1482 lug. 3), n. 196; ... lug. 19, n. 200; (lug. 11), n. 202; ... (set. 4), n. 206'.
Images
MAP filza 72, doc. 196 · image id 79582 · image id 79583 · MAP filza 72, doc. 200 · image id 79594 · image id 79595 · MAP filza 72, doc. 202 · image id 79598 · image id 79599 · MAP filza 72, doc. 206 · image id 79606 · image id 79607 · MAP filza 72, doc. 201 · image id 79596 · image id 79597 · MAP filza 72, doc. 204 · image id 79602 · image id 79603 · image id 79604 · image id 79605 · MAP filza 72, doc. 207 · image id 79608 · image id 79609 · image id 79610 · image id 79611

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://cyphersolver.com/solve/2350.html

Or copy the block below into the chat. It is the whole task: what the cipher is, where the images are, what has been tried, the steps, and how to report back.

TASK: help read Unsolved Catalogue no. 2350 of the cyphersolver project
This page: https://cyphersolver.com/solve/2350.html

You are helping a public research project read historical cipher letters that nobody has read yet.

THE CIPHER
  Title:          Bernardo Rucellai, Florentine orator in Milan, July-September 1482: four bare letters in his sign cipher, with three glossed siblings in the same filza
  Date:           3 Jul - 4 Sep 1482
  Correspondents: Bernardo Rucellai, Florentine orator in Milan -> Lionardo Spina in Pisa (Lorenzo de' Medici's cover address)
  Place:          Milan
  Language:       Italian (sign cipher with clear words) (expected)
  Held at:        Archivio di Stato di Firenze, Mediceo avanti il Principato, filza LXXII, docs. 196, 200, 202, 206; Each a single leaf, recto, opening in clear and running into sign-cipher passages between clear words, verso addressed 'D(omi)no Lionardo Spina in Pisa' and endorsed: 196 (old c. 238; about 18 lines; '1482 / Da Milano / a di iij di luglio / R(isposto) a di vij detto'), 200 (c. 243; about 15 lines; '1482 / da Bernardo Rucellai / a di 19 di luglio'), 202 (c. 245; about 16 lines; '1482 / da Bernardo Rucellai / ... luglio'), 206 (c. 249; about 7 lines with dotted gaps; '1482 / da Bernardo Rucellai / a di 4 di sett.'). MAP inventory vol. 3, filza LXXII: '(Bernardo Rucellai). (Milano, 1482 lug. 3), n. 196; ... lug. 19, n. 200; (lug. 11), n. 202; ... (set. 4), n. 206'.
  Images/records:
    - MAP filza 72, doc. 196: https://archiviodistatofirenze.cultura.gov.it/map/ricerca/ricerca-su-filza/?f=72&d=196&c=
    - image id 79582: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79582
    - image id 79583: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79583
    - MAP filza 72, doc. 200: https://archiviodistatofirenze.cultura.gov.it/map/ricerca/ricerca-su-filza/?f=72&d=200&c=
    - image id 79594: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79594
    - image id 79595: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79595
    - MAP filza 72, doc. 202: https://archiviodistatofirenze.cultura.gov.it/map/ricerca/ricerca-su-filza/?f=72&d=202&c=
    - image id 79598: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79598
    - image id 79599: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79599
    - MAP filza 72, doc. 206: https://archiviodistatofirenze.cultura.gov.it/map/ricerca/ricerca-su-filza/?f=72&d=206&c=
    - image id 79606: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79606
    - image id 79607: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79607
    - MAP filza 72, doc. 201: https://archiviodistatofirenze.cultura.gov.it/map/ricerca/ricerca-su-filza/?f=72&d=201&c=
    - image id 79596: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79596
    - image id 79597: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79597
    - MAP filza 72, doc. 204: https://archiviodistatofirenze.cultura.gov.it/map/ricerca/ricerca-su-filza/?f=72&d=204&c=
    - image id 79602: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79602
    - image id 79603: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79603
    - image id 79604: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79604
    - image id 79605: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79605
    - MAP filza 72, doc. 207: https://archiviodistatofirenze.cultura.gov.it/map/ricerca/ricerca-su-filza/?f=72&d=207&c=
    - image id 79608: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79608
    - image id 79609: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79609
    - image id 79610: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79610
    - image id 79611: https://archiviodistatofirenze.cultura.gov.it/map/riproduzione/?id=79611

WHAT IS KNOWN
  Status: Bare: no interlinear or marginal decipherment on 196, 200, 202 or 206 (900 px, crops). Key material in the same run: 201 (15 Jul) carries interlinear glosses over many cipher groups; 205 is the clear text of 204 (30 Aug; it opens with the same words, "Noi diremo che noi contraffacciamo ..."); 208 is the decipherment of 207 (inventory "Decifrato della n. 207"). Lead 2323 (LXXII 211) is the 3 June 1482 letter of this series (inventory attribution to Rucellai).
  Outcome so far: not yet attempted by the project
  Prior-art check: open as far as checked (6 Nov 2026): known.py finds nothing on the filza or document; not flagged as cipher in the MAP inventory; DECODE dumps in the repo have no ASF MAP ciphertext record; Tomokiyo and Lasry not searched in this run. Marco Vito (Vienna) works on encrypted MAP letters of 1486-1491 (research/medici_bia/README.md): check overlap.
  Check first: Rebuild the sign table from 204/205, 207/208 and the glosses on 201; apply to 196, 200, 202, 206 and lead 2323 (211); compare with the 1483 Rucellai cipher of XLVIII 214 (catalogue), said to use a different sign set.
  Class A: a sibling letter with a decipherment is in the same volume or series, so matching it is the first move.
  Project notes (read these before anything else; they record what was tried and ruled out): https://github.com/dbourdeau/cyphersolver/blob/main/targets/gramont1529/NOTES.md

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/gramont1529/NOTES.md (everything
   already tried on this cipher, with the files it used); and lang/README.md (shared language models).
   Put all your work in targets/gramont1529/: transcription, key, decipherment, scripts. Add your findings to its NOTES.md
   under a dated heading, without rewriting what is there. Keep WORKLOG.md there too:
   one dated line per step (transcription, hypothesis, solver run, crib, key found, control), failures included.
   Do not edit docs/ (the site is generated and rebuilt on merge) and do not commit large images: link them.
   If you cannot run a shell, do the same work in files you keep and send them with the issue below.
1. Make sure it is still unread. Search the web and the literature for the shelfmark, the correspondents and the date:
   printed editions and calendars of the correspondence, Satoshi Tomokiyo's cryptiana pages
   (https://cryptiana.web.fc2.com/), the DECODE record and the files attached to it, and the project notes above.
   If a decipherment already exists, stop and report where it is. That is a useful result.
2. Get the images. For Gallica items, a page image is
   https://gallica.bnf.fr/iiif/ark:/12148/<ark>/f<page>/full/full/0/native.jpg (page numbers from the manifest).
   DECODE records (de-crypt.org) need a free account: if you cannot log in, ask your human to download the images for you.
3. Look for key material before attacking the ciphertext, in this order: a decipherment written between the lines or
   in the margin; a clear copy or a deciphered sibling letter in the same volume or DECODE series; a key sheet from the
   same office and years (DECODE key records, Tomokiyo's articles, printed editions); clear passages in the letter
   itself that can serve as a crib.
4. Transcribe exactly what is on the page: one token per sign or number group, line by line, with folio and line
   numbers, unclear signs marked with ?. Keep the transcription as a file. It is worth sending even if nothing else works.
5. If no key exists, identify the system (count the distinct symbols, tokens and repeats: simple or homophonic
   substitution, nomenclator with code words, syllabary, two-digit figures) and recover the key from the ciphertext
   with a solver scored on a language model of the period (Italian (sign cipher with clear words)). In the clone, use the shared models in lang/
   (from lang import lm; lm.load('<model>'), lm.best_language(text)) rather than building your own; add a corpus there
   if none fits. Before trusting a result, run the same solver on a control text you encipher yourself in the same
   system and at the same length. If it cannot solve the control, its output on the real letter means nothing.
6. Measure the result against the project's bar (README.md, Conventions). A text is "complete" only when (1) at least
   95% of its cipher tokens give sense, counted from a reading file, not estimated; (2) no gap is left untried;
   (3) every letter in the item is covered; (4) what stays open is scattered code groups or names, or pieces blocked
   from outside (no key material, too short, illegible, needs the archive). Otherwise it is "partial": say which
   pieces are open and why. Mark every uncertain word with [?] and leave unread groups as their numbers or signs.
   Never fill gaps with plausible guesses. A failed attempt that records what was ruled out is still a contribution.
7. Name how the text was obtained with one of the project's methods (do not write just "solved" or "read"):
     - ciphertext-only break: The key was rebuilt from the ciphertext alone: frequencies, solvers, pattern words, the order of the key. No plaintext and no existing key was used. If someone had solved the same text earlier and it was found only afterwards, the write-up says so: an independent re-solution.
     - key from external plaintext: The key was rebuilt by matching the ciphertext against a plaintext found elsewhere: a printed edition, a calendar of state papers, a copy of the same letter in another archive.
     - key from adjacent plaintext: The key was rebuilt from plaintext next to the ciphertext: a partial decipherment written between the lines or in the margin, clear passages in the same letter, a deciphered copy in the same file.
     - external key matched: An existing key that had not been connected with this document (a key for another correspondent or series, a key sheet filed elsewhere) was found to fit, and applied.
     - known key applied: The key was already identified for this document or its correspondence (on its archive or DECODE record, published for it, filed with it) and was applied. The work is transcription and decipherment, which is not mechanical when the key is polyphonic or variable-length.
     - existing decipherment: A complete decipherment already existed (between the lines, on a separate copy, or in print). The work was transcribing the cipher and checking the decipherment against it.
     - not solved: Attempted; neither the key nor the text was obtained. What was learned is recorded. A target whose key was obtained but whose text does not read keeps the method that obtained the key, with extent "none (text not read)".
     - not applicable: Not a cipher (clear text, shorthand, a key sheet, instructions), or the item could not be reached.

REPORT BACK
With a clone: open a pull request with your targets/gramont1529/ folder. Say in the description how you want to be
  credited (name, initials or handle, and a link) and include the same points as the issue below.
Without one: open an issue: https://github.com/dbourdeau/cyphersolver/issues/new?template=solution.yml&title=Solution%3A+catalogue+2350&target=catalogue+2350
(other kinds of contribution: https://github.com/dbourdeau/cyphersolver/issues/new/choose). Include:
  - Target: catalogue 2350
  - the documents and the images you worked from;
  - the key: sign-to-value table, code groups with values, nulls;
  - the decipherment line by line against the ciphertext, with uncertain passages marked;
  - the method (step 7), the share of tokens that give sense, complete or partial (step 6), and whether the
    reading was already published anywhere;
  - your step log (WORKLOG.md), and the tools and the 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.

Where the cipher is

Cipher located and confirmed. Letter-like sign cipher (q, b, x, pi, =, z, g, ll, 7, o with crosses and superscripts) between clear words (196: 'fatto', 'seguitono', 'credeano', 'comprendiamo', 'quando', 'abbiamo', 'luomo'; 200: 'Noi dubitiamo che questo', 'non sia'; 202: 'persone', 'la parentela'; 206: 'noi', 'dallui ogni'). No interlinear, marginal or foot decipherment on any of the four. Neighbours checked at full size: 197 a clear letter on Camerino and the Duke of Calabria in another hand, 198 a clear deposition to a duke, 199 a formal clear letter, 203 Rucellai's clear letter of 27 Aug signed 'Bern.o Rucellai or.'; 205 is the clear text of 204 (both open 'Noi diremo che noi contraffacciamo'), 208 ('Il S. Lodovico da principio si mostro molto allegro della tornata di Aschanio ...') the decipherment of 207. None of these deciphers 196, 200, 202 or 206. (ASF MAP filza LXXII at the server maximum (1220-1272 px wide), 6 Nov 2026: 196 r/v https://archiviodistatofirenze.cultura.gov.it/iipsrv/iipsrv.fcgi?IIIF=/data/iip-data/asfi/mediceo_avanti_principato/00100072/A0000473.ptif, A0000474; 200 r/v A0000485-486; 202 r/v A0000489-490; 206 r/v A0000497-498; neighbours 197 (A0000475), 198 (A0000477, 479), 199 (A0000481, 483), 203 (A0000491), 204 (A0000493), 205 (A0000495), 207 (A0000499), 208 (A0000501); checked 2026-11-06 by claude leads review batch n14) open that page

What is known

Status and prior art. Bare: no interlinear or marginal decipherment on 196, 200, 202 or 206 (900 px, crops). Key material in the same run: 201 (15 Jul) carries interlinear glosses over many cipher groups; 205 is the clear text of 204 (30 Aug; it opens with the same words, "Noi diremo che noi contraffacciamo ..."); 208 is the decipherment of 207 (inventory "Decifrato della n. 207"). Lead 2323 (LXXII 211) is the 3 June 1482 letter of this series (inventory attribution to Rucellai).

Outcome so far. Not yet attempted by the project. Prior-art check: open as far as checked (6 Nov 2026): known.py finds nothing on the filza or document; not flagged as cipher in the MAP inventory; DECODE dumps in the repo have no ASF MAP ciphertext record; Tomokiyo and Lasry not searched in this run. Marco Vito (Vienna) works on encrypted MAP letters of 1486-1491 (research/medici_bia/README.md): check overlap..

Check first. Rebuild the sign table from 204/205, 207/208 and the glosses on 201; apply to 196, 200, 202, 206 and lead 2323 (211); compare with the 1483 Rucellai cipher of XLVIII 214 (catalogue), said to use a different sign set.

Scores

Importance
4 of 5
Solvability
5 of 5
Difficulty
2 of 5
Class A
a sibling letter with a decipherment is in the same volume or series, so matching it is the first move
Note
Scored from the images viewed during the second ASF Florence pass, 6 Nov 2026 (research/sweep_2026-11_asf_florence_2/)

Send a result

A reading, a partial reading, a transcription, or a source that shows it was read long ago: all of it counts and is credited to you on the site.

Open a solution issueOther kinds of reportHow credit works← All unsolved ciphers