The Defranceschi Archive
What these sources actually do, as opposed to what they appear to do

Method

Everything this archive learned the hard way about reading Istrian registers online — written down so the next person does not have to learn it the same way.

The five words

All seven of these family archives grade a claim with the same five words, so a level means the same thing wherever you meet it. The word is always printed next to the colour, because a reader should never have to know the palette to know the confidence.

Documented
A record was read, and it says this. The source is named.
Probable
The evidence points one way and nothing found so far points the other. Not proven.
Inferred
Reasoned from what is known — a gap of the right size, a name in the right place — rather than witnessed in a record.
Family
Told, remembered, or written on a family chart. Kept, because discarding it would lose the lead; labelled, because it is not evidence.
Disputed
Two sources disagree and neither has been ruled out. Both are shown.
Not claimed

Some pages carry this instead. It states the thing a reader is likely to assume — the connection that would be tidy, the identification that almost works — and says plainly that this archive does not assert it. An archive is judged as much by what it refuses to say as by what it says.

This page exists because most of what went wrong here went wrong in the same way: a tool answered a question that was not the one being asked, and answered it confidently. None of what follows is theory. Every item was found by getting something wrong and then finding out.

  1. 01

    An Istrian surname of the 1920s may have been changed BY DECREE, and the register sometimes says so

    At Cerovlje this archive found Slavic surnames annotated in faint pencil with Italian forms, and the annotator wrote the equation out himself — «Gracco ver. Grah». What that did not say was by what authority. > Gologorica status animarum of 1921, house 7, above the household heading: «corretta in «Petessini», con decreto del prefetto di Pola» (DAPA ZM34K-214, M01069835) Corrected to «Petessini» by decree of the Prefect of Pola. The Italianisation of Slavic surnames under the Italian administration is not a scribe's whim in these books — it is an administrative act, and the parish register records it as one. > A surname search of an Istrian parish register for the 1920s and 1930s is a search of a book whose names were changed by order. The rule: for this period, search the Slavic form, any byname compound, AND the Italian form — and read the space above the household heading, where the later hand put the new name. A pencil form is invisible to anyone reading the ink. --- ⭐⭐⭐ 11 October 2026 — the 1921 Gologorica census cites the decrees themselves, and the rule above was too narrow. > Piljani, house 27 (M01069855): «= Opassi (D. Pref. 2/5-29 N° 0-76)» over «Opašić Franciscus» > and on the next line, his wife: «Aemilia ux. n. Čeh = Ceceo (D.Pr. 3/5-29 N° 0-53)» > house 28 (M01069856): «= Opassi (D. Pref. 4/5-29 N° 0-80)» over «Opašić Antonius» Each household by its own decree, on its own day, under its own protocol number — three of them across three consecutive days of May 1929, and the annotations in this book run on to 1935. ⚠ Two things follow that change how the name is searched. 1 · A married woman's MAIDEN name was decreed separately. «Čeh = Ceceo» carries its own date and number, one day after her husband's. A woman's birth surname was not carried along with the house she married into — it was changed in its own right, so the Slavic maiden name may be absent from a record where the husband's Slavic name survives, and the reverse. 2 · The decreed form need not SOUND like the name at all. Across the book the forms fall into three kinds:

    Slavicdecreed Italian
    respelt by soundOpašić · Čeh · Bratičić · Androšić · Šilić · ŠirolOpassi · Ceceo · Bratti · Androssi · Silli · Sirolli
    clipped to an Italian shapeAnčić · Gržanić · Udovičić · RabarAnci · Ghersani · Udovici · Rabario
    translated outrightUdovičićDelle Vedove
    «Delle Vedove» is written over «Udovičić Antonius» at Kamenik house 70 (M01069898) under its own P.P. decree. Croatian udovica is a widow. A phonetic search would never have found it, and the same surname went both ways in the same parish — clipped at Gospodi, translated at Kamenik. > So: search the Slavic form, the compound, the phonetic Italian form, the clipped Italian form — and the Italian TRANSLATION of what the name means. For Grah, that last is «Fagioli»/«Fagiolo» (grah = bean). ⚠ A search term derived from the pattern, not a reading: no such form has been seen in any Gologorica book. ⚠ And a hyphen now means one of two things. «Rabar-Šantelić», «Zec-Kočebar», «Zec-Jurandić» are genuine two-family compounds; but «Rosa Opassi-Opačić», «Regina Rabario-Rabar», «Androssi-Androšić» and «Udovici-Udovičić» are one name written in both languages, Italian first. Before reading a compound as two families, check whether the second element is the first one in Slavic. The full sweep is here.

  2. 02

    If the baptisms are split by sex, the deaths are too — look before you count

    This archive read eight deaths for the year 1773, found no Defranceschi among them, published the nil, and reversed a descent on the strength of it. The eight were eight women. The volume is split by sex throughout — and this archive had already written down that its baptisms are headed «Masculorum» and «Fœminarum», one day earlier, on this very page. It saw the split and did not carry it across. > A nil taken from half a register is not a nil. It is a count of the half you read. The rule: before counting anything in an eighteenth-century parish book, establish how many sequences it has. Masculorum/Fœminarum is the common one; others split by status, by legitimacy, or by village. The cost of checking is one frame; the cost of not checking is a published reversal. And the tell was available: the count was absurdly low — eight deaths in a year for a hundred and thirty houses — which this archive noticed, wrote down as a reason to distrust the book, and did not follow. An implausible total is not evidence that the register is poor. It is evidence that you are reading part of it.

  3. 03

    A household built from three sources can be arithmetically impossible

    This archive has a župan of Gologorica attested at two fonts, a wife named in both, and a son named by a published account of the family archive. Three independent sources, interlocking. A fourth gave the wife an age — «nonaginta circiter» — and she turns out to be eleven years old when the son was born. ⚠ Nothing was read wrongly. Each source says what it says. The error was in the joining, and it was invisible because none of the three carried a number. The rule: when a household is assembled from sources that name people without dating them, the reconstruction is untested, not confirmed, however many sources agree. Agreement on names is not agreement on a generation. Write down what the join would require — a birth year, an age at marriage, a span between siblings — and mark the household inf until one source supplies it.* And when the number finally arrives, it will usually arrive from a book nobody opened for that question.

  4. 04

    «Every frame examined» is not «every entry read»

    A sweep of a twenty-opening book for one surname ended with every frame of the item accounted for — title card, test target, cover, calendar, endpapers, KRAJ — and the row was marked walked: true. It was wrong inside a minute. Two different claims hide behind the same satisfied feeling:

    inventoriedevery frame has been looked at and identified
    walkedevery entry has been read
    The first is about the film; the second is about the people on it. A surname scan completes the first and barely touches the second — it finds what it was looking for and leaves every other family on the page unread. Why the flag matters more than it looks: walked: true tells the next reader, and the [Record Atlas](../Record Atlas), that a book is done. Overstating it is the one error that makes other people's work disappear, because they will believe the book has been covered and never open it. The test before setting it: can you say what the entry two lines above your hit was about? If not, you scanned.

  5. 05

    The letter you cannot read is often settled by a word you can

    A surname's initial was contested between two registers — «Sablich» at Bakar, «Jablich» at Gologorica — and a long ſ and a J are one of the classic confusions in this hand. The standing rule sent the reader to find the same scribe writing an unambiguous S and an unambiguous J elsewhere on the leaf, and he obliged — «Jacobus» and «Josepho» three lines below, both with the long descender the contested letter lacks. ✔ But the quicker answer was in the name itself. The bride's father is «Sabastiani Sablich», and the two words open with the identical letterform. Sebastian begins with an S in every language this scribe wrote. > A doubtful letter sitting next to a word whose spelling is not in doubt has already been read for you. Look first for the contested letterform inside a forename, a month, a place or a formula — the parts of an entry whose spelling the reader already knows — before going hunting across the page for a comparison.

  6. 06

    `q.filmNumber` turns a FamilySearch surname sweep into a nil you can publish

    The search parameter that works, when the place and collection ones silently return zero for records that exist, is the film number. > /search/record/results?count=100&q.filmNumber=005497822&q.surname=Gra* It scopes the whole index to one physical volume, which is what makes a surname nil mean something: a nil over «Croatia» is noise, a nil over one register, controlled is a finding. Three things make it usable, and all three were learned the hard way today: - Run a known-positive control through the same query first. Read a surname off one image of the volume and search for it. [457 Valcovich, all Krbune] proves the index reaches the book; without that number the Grah nil is worth nothing. - Use the wildcard. Gra* returns every surname beginning those letters — so a transcription that spelled the name differently still surfaces, and the nil survives the obvious objection. - Check whether the volume is indexed at all, and do not take the header card's word for it. The film's own first image says «no indexes are available for this image». It is right about that image and wrong about the register: the Image Index panel on an interior page is full. And the payoff is the point: it replaced a 124-image walk that had stood on the work list for eight days with four queries — and the walk would have found nothing.

  7. 07

    A tree year has a resolution, and the resolution has to travel with it

    This archive wrote that a woman last seen in November 1782 was «dead within fourteen months». It was five. The fourteen was the distance from November 1782 to the end of 1783, because the only death figure on her row was a bare 1783 off a family tree. ⚠ A bare year is an interval, not a point — and the moment it is subtracted from a real date it silently becomes one, at whichever end of itself the arithmetic happens to need. The rule: when a tree year meets a documented date, say «between five and seventeen months», or say nothing about the interval at all. Never a single figure, because a single figure reads as something that was measured.

  8. 08

    An index strips the field that would have told you the record is not yours

    A marriage of a Defranceschi to a Catharina, at Bakar, sitting in a set of Bakar Defranceschi records, was read as a Bakar Defranceschi's second marriage. It is a Gologorica man's first one, and the register says so in the entry: «ex Gollogorizza». ⚠ The index does not carry that phrase. It gives two names and a date. The one field that would have stopped the misreading is the one indexing drops — because an index records the people, and what made this record foreign to Bakar was not a person but a place written into the sentence about them. The rule: an index entry is a pointer, not a reading. Before an indexed record is used to build or dismiss a household, open the image. Especially when the record sits in a place-based result set: the surrounding records supply a context the record itself may contradict, and nothing in the index will tell you it does. The cost here was nine days and a published sentence. The gain is that the entry, read, answered three questions at once — the date, the groom's patronymic and the bride's father — none of which the index held.

  9. 09

    Read the officiant column for everybody, not for your own surname

    A sweep that looks for one name in a column answers a question about that name and no other — and if the column is who held an office, that is not enough to say who held it. Three entries in which a Defranceschi signs «per me Parochum» produced a published sentence saying he held the cure continuously across the span they bracket. The entries between them had not been read, because they did not carry the surname. One of them has a DEPRATO signing as «Parochum» three weeks later. ⚠ The reading was not the problem. Every Franceschi was magnified and checked against the scribe's own hand. The error was in the white space between the hits, which is where a one-name sweep does all its damage: it produces a row of true sightings and an invitation to join them with a line.* The rule: when a column is being used to establish who held an office, or lived in a house, or kept a book, read every row of it in the span, not the rows that match. A list of sightings supports «he was there on these dates» and nothing wider — and a gap in a one-name sweep is not evidence of continuity, it is evidence of nothing.

  10. 10

    Before drafting a letter, check the shelf you already own

    The archive wanted an archpriest's forename. It had him by office and surname from a 1785 baptism, wrote on the Grach page that «he is named by office and surname only; no forename is given», reasoned correctly that Krbune's surviving film starts eighteen years too late to hold him, and concluded that the route was a diocesan clergy list at Poreč-Pula — a letter, to an archive, under a standing hold. He was marrying people four kilometres away, and that parish's register is on this family's hard drive. The Gologorica marriage book of 1770–1789 names him in full in 1774, eleven years before the only sighting the archive had. ⚠ The reasoning that produced the letter was not sloppy — that is what makes it worth a row. Every step was right about the book it was looking at. The step nobody took was asking whether some other book, already held, touched the same person. A question about a priest is not a question about his parish's registers; it is a question about everywhere he worked. And the same day, worklist 216 set this very volume aside as «on the reel the family holds but stop too early» — true of the question being asked of it, and the reason nobody opened it. A book dismissed for one question is not dismissed. The rule: before an errand is drafted, run the name and the question against searched.json, sources.json and the frame map — and specifically against every volume already in the house that the person could have written in, not only the one that bears their place-name.

  11. 11

    check-story cannot see work you never logged

    Fifty-one frames of a register were read across a day, and the only record was a progress line in a work-list row. No searched.json row existed for it at all. And check-story.py reported «every hit points at a page a reader reads» the whole time — because it counts logged searches with hits, and an unlogged sweep is invisible to it. The green light meant «nothing is logged wrong», not «everything is told». A gate can only check what exists. Log the search when it starts, not when it finishes, with outcome: pending and the frames read so far — then the counter has something to hold the work against, and a sweep abandoned halfway leaves a record instead of a silence.

  12. 12

    Piping whose.sh into tail throws away the answer

    This archive's rule for the gate is «capture ITS exit status — never grep for ‘FAIL’», because grep exits 0 on finding the word. The same trap swallowed whose.sh. The command was ./scripts/whose.sh | tail -13 && git commit, and the exit status of a pipeline is the last command's — tail, which always succeeds. «whose: shared ground is staged and --allow-shared was not given» printed on screen, the chain continued, and the commit went out unflagged. Run it bare and let it fail: ./scripts/whose.sh on its own line. Any check worth running is worth not piping, and that goes for every script in scripts/ whose verdict is its exit code rather than its text.

  13. 13

    A sweep that steps by two is not a sweep

    Opening the 1667–1745 Gračišće book, this archive read frames 944, 946, 948, 950 … and the pages looked continuous — 1667, 1668, 1669, 1670, each opening following the last. They were not continuous. Every frame is its own opening, and half the book was being skipped. It was caught by stopping to ask why the page numbers rose by two per frame-step-of-two, and then reading one of the skipped frames: M01069955 is pages 14–15, sitting between M01069954 and M01069956 and belonging to neither. A sweep done this way reads plausibly and produces a NIL that is half a nil. Nothing looks wrong — the years run in order, the hands match, the entries flow. That is what makes it dangerous. Before any sweep is trusted, read two adjacent frames and confirm they are adjacent — that the second begins where the first ends. One check at the start costs a minute; skipped without it, every absence the sweep reports is worthless.*

  14. 14

    Verify the edit landed before publishing the correction that describes it

    A correction was written saying «the page now says so» — and the page did not. The script that was to amend it matched on "THIS ARCHIVE HAS TREATED GRA" against text that reads "This archive has treated Gračišće". Case. The loop ran, matched nothing, changed nothing, and exited 0. The commit went out claiming a fix that was not in the file, and only a git show --stat showing one file where two were staged caught it. Two rules, both cheap. (1) Assert after writing, not before: assert NEW_TEXT in open(path).read(). (2) A silent no-op is the dangerous kind of bug in a text archive, because the gate cannot see it — nothing is broken, the claim is simply false. Any script that edits prose must fail loudly when its anchor does not match.

  15. 15

    Grep the FRAME NUMBER, not just the name

    After four corrections for republishing work already done, this archive adopted a habit: grep the person's name before writing a finding. It then published a fifth — «NASTAVLJA SE», the card that ends the Gračišće baptism film — which errand 35 had already recorded in those words, with the continuation reel, its frame range and a drafted letter. The habit did not fire because the finding had no person in it. A frame is an identifier too. One grep for M01070226 would have returned the errand in a second. Before publishing anything read off a film, search the archive for the frame number, the reel number and the register's signature — the same way a name is searched. A check that only covers one kind of identifier will keep missing the other kind.

  16. 16

    Do not publish a running total as if it were an answer

    One column of one census changed its leading parish three times in a day. Krbune on six names from a list that measured something else; Paz at thirty openings; Gračišće at seventy-eight; Gračišće again, decisively, at a hundred and nineteen. Only the last was a finding. The other three were published mid-count, and two of them had to be withdrawn. When a count is still running, say so in the sentence — «at seventy-eight of a hundred and nineteen openings» — or do not write the sentence yet. A ranking from a partial sweep is worth having on the work list and is not worth putting on a page a reader will quote back.

  17. 17

    A superlative needs a denominator

    This archive read a six-name list of people who died at Gologorica as strangers, found two of them from Krbune, and published that Krbune was «the place Gologorica's incomers came from — more often than anywhere else». A work-list row was redirected on it. The set being counted was six, and it was not a sample of migration at all — it was a sample of who happened to die here while a stranger. The census's own traffic column, thirty openings of it, names Paz five times and Krbune not once legibly. Before writing «more often than anywhere else», name the set you counted and say how big it is — and ask whether that set measures the thing in the sentence.

  18. 18

    A column you logged as unread is a blank in the reading, not in the record

    This walk read the left half of eight census openings, wrote in its own search log that the right half was «not read», and then built four findings and three work-list rows on the gap it had just declared — including «there was a Defranceschi family within marrying distance that this archive cannot yet name». The right half carried the printed column «Locus ex quo vel ad quem» and it named the parish and the house number outright. Silence you created by not looking is not evidence of anything. Before a conclusion rests on something a source does not say, check that the source was read — all of it, to the edge of the opening — and if the log says otherwise, go back first.

  19. 19

    Ask whether it is already here — and this is the second time

    On 21 September this archive wrote a note saying that with thirteen hundred people on the books, the first question about a find is whether it is already here. On 6 October it announced a marriage inside the surname at Gologorica as new, and raised two work-list rows to find a woman's origin — when her origin, her house number and her marriage date had been written into this archive on 30 September, sourced to the very frame the walk had open. A method note that is not run as a check is decoration. The check is three greps and it takes a minute: the person's name, the place name, and the source, in roster.json, searched.json and the line data — before the row is raised, not after it is published.

  20. 20

    A married woman is in the Status Animarum twice

    Maria, daughter of Joannes Gasparich, born 14 August 1827 and confirmed 9 July 1834, is in the 1826 census in her father's household — and again, twenty-two pages later and under a different house number, as «Maria uxor n. Gasparich» in the Petrus Rabar household, with the same birth date and the same confirmation date. One woman, entered twice. So a Status Animarum joins two households without needing a marriage register at all: find the wife's dates in her husband's entry, then find the same dates on a daughter elsewhere in the book. Birth date alone is a candidate; birth and confirmation is an identification. This is how a «uxor nata X» stops being a surname and becomes a parent.

  21. 21

    A book is ordered by the number that was live when it was bound

    The 1826 census gives many households two house numbers in one cell and labels neither. No amount of staring at the two hands settles which is current — but the order of the pages does. Taken down the book the upper figures climb (28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40 …) while the lower ones are scattered (64, 73, 74, 79, 58, 68). A register is bound in the sequence of its own numbering, so the figure it is sorted by is the figure that was live. The test costs one pass of the column and needs no palaeography at all. It also says where the sort starts — here about page 20, because the front of the book is ordered by rank instead.

  22. 22

    Ask a kinship question of the book that records kinship

    One question — why a Defranceschi died in the «Deprato» house — was answered wrongly twice in two days, both times from the death register's index. First: she was born a Defranceschi and married a Deprato (withdrawn — the register names a married woman by her husband's surname). Then: there was «no family connection at all» (withdrawn — there are two). Neither answer was a misreading of the page. Both were deductions about families from a book that records households and addresses. The Status Animarum writes the relationship into the name — «uxor nata Deprato», «mater nata Bembo», «Mariana ex fratre nepos» — and settled it in two lines. The archive had walked that book six days earlier and asked the other one twice. Before reasoning about who was related to whom, name the book in the holdings that states relationships, and go there first.

  23. 23

    A one-year gap against the tree is a date against an arithmetic

    This archive held Jacobus de Franceschi born 21 July 1761 and recorded that the tree said 1762, keeping its own because it «came off the register». The row's own reasoning was right — «one year of arithmetic apart, not one of evidence» — because a record giving «aged N» yields a birth year that depends on whether the birthday had passed. It simply did not notice that the arithmetic was its own. The 1826 census gives «21 | Julii | 1762» — a date. When this archive and a tree differ by exactly one year on something derived from an age, the tree is as likely to be holding the original date as to be wrong. Do not resolve it by preferring the register; resolve it by finding a record that states a date.

  24. 24

    Name a diocese with its year, the way you name a house with its numbering

    Gologorica has been in four dioceses in two hundred years — Pićan to 1788, Gradisca 1788–91, Trieste–Capodistria 1791–1977, Poreč–Pula since 17 October 1977. This archive wrote «Pićan … diocese of Poreč-Pula» on an errand asking about the 1880s — the present written over the past. A request for anything held at the diocesan level — dispensations, visitation protocols, ordination files — would have gone to the wrong archive for records that are at Trieste. A see is not a fixed attribute of a village. It is dated, exactly like a house number, and it is cited with its year or it is not cited.

  25. 25

    An index is a second witness, not a pointer

    Gologorica deaths p. 48: «Petrus Chiuch ex Castro ⟨—⟩otti fossor». The same man in the book's own index: «Chiuch Petrus furlanus ex Castro ⟨—⟩otti fossor». The word «furlanus» is in the index and nowhere in the entry. Whoever compiled it was adding what they knew, not copying what they read. So an index in these books can carry facts the page omits — which means a page read without its index may be read short, and an index entry that disagrees with its page is evidence of two informants, not of one mistake.

  26. 26

    House numbers were assigned by walking the village

    Twelve Udovicich households at Gologorica sit at houses 64, 65, 66, 67, 69, 74, 75, 77 and 79 — and the Zabran at 46–52 and 59, and the Zajz at 111–115. That is not the alphabet; the index is sorted by name, not by number. A surname holding an unbroken run of house numbers is holding a quarter of the village, because the numbers were given out by walking it. So a sorted list of house numbers is a map, and two families whose numbers interleave were neighbours — a cheap, checkable fact that costs nothing but a sort.

  27. 27

    Died in the famine is not died of the famine

    Petrus Chiuch is on a page where the entries above and below him read «Fames», «Fames et debilitas», «Debilitas». His own cause is «Volvolus» — a twisted gut, at about 75. A count of hunger deaths that swept him in because of where he sat would be wrong by one. The register declines to blur the two and so must any tally taken from it: the cause column is read for every entry, or the number is an estimate and must say so.

  28. 28

    A geocoder that succeeds is more dangerous than one that fails

    Three Defranceschi were recorded at «Broken Hill, New South Wales, Australia» and sat on this archive's map in Zambia. The lookup had not failed. Kabwe was called Broken Hill until 1966, so the geocoder found a real town with exactly the right name, returned it with confidence, and the map looked entirely reasonable to anyone who did not already know where those men had gone. The cause is one line. The Atlas builder keys every place on head(name) — the part of the string before the first comma. So «Broken Hill, New South Wales, Australia» is looked up as «broken hill», «Pag, Zara, Dalmatien, Österreich» as «pag», and «San Lorenzo, Santa Fe» as «san lorenzo». Against a world gazetteer a bare settlement name matches the largest homonym on earth. In every case the qualifier that would have placed it correctly was already in the record, unread. Eight places were wrong, and the worst by 18,306 km. Pag — whose own text says Dalmatien — was pinned in the Philippines. Mitchell, Canberra was in South Dakota. Athens, Clarke County, Georgia was in Greece. Three lessons, in order of how much they cost. A gazetteer lookup on a bare name is unsafe whenever the source string carries a qualifier. The fix is to try the full string before falling back to the head. That is still not done here, because head() is load-bearing for how people attach to places across four builders, and it will be changed deliberately rather than at the end of a long day. Until then, a gate under it. check:places refuses any pin more than 300 km from a country named in its own text, and it now runs on every build. It was written in another archive of this estate because of the first three, and it immediately found five more nobody had suspected — which is the argument for gates over care. And a trap inside the fix. Pinning a place by hand only keeps its people if the pinned name has the same head() as the string the roster uses: «Dolo, Venezia» works, «Dolo Veneto» would not. Get that wrong and you get a correctly-placed pin with nobody on it — which is worse than the error being fixed, because a wrong pin looks wrong to anyone who knows the geography and an empty right pin looks perfect. The counts were checked after every rebuild for exactly that reason. That is a discipline, not a gate, and it is the next gate worth having.

  29. 29

    A record-level roster cannot be checked at person level, and that is the design working

    Three archives in this estate spent an evening trying to design one gate: refuse when a rebuild drops a place's attached people, so that a hand-pinned place cannot end up correctly placed with nobody on it. It failed three times, and each failure was a different archive's data model rather than a flaw in the rule. Per-place failed on legitimate drops — merging a duplicate, correcting a roster row, resolving a household all move people about without anything being wrong. Per-person failed here, and the numbers say why:

    roster rows1,225
    rows with a place1,057 (86%)
    names shared by more than one row103 names, covering 378 rows (31%)
    placed rows whose name is unique706
    Maria Defranceschi is 24 rows. Pietro De Franceschi is 16. Antonius is 13 and Antonio another 13 beside it — the same name in two latinisations, deliberately kept apart, because this roster's own note says identity here is by record, not by resolved individual. So «unambiguous person» is not a property this archive's data has. It is a property of a resolution step that has deliberately not been taken. A gate restricted to unambiguous names would have watched 706 rows and reported green while blind to the 378 — which is exactly the third of the roster where the archive is doing its hardest thinking. Twenty-four rows called Maria Defranceschi are not a data quality problem. They are twenty-four undecided questions, and a check that skipped them would be skipping the work. Per-record failed in a third archive, whose registers carry no place field at all — only place names occurring in prose, matched by substring, which is the technique that put Pag in Mindanao. The conclusion is about gates in general and is worth more than the gate would have been. A gate is written in whichever archive writes it, and looks correct there. Each of these three would have passed its own author's tests. There is no shared unit of attachment across these archives — one attaches places to people, one to records, one to nothing — so there was never a gate to write, only three local ones wearing a general name.

  30. 30

    A number that is typed goes stale the day after

    The working notes carried a backlog line: «161 people with no place · 56 unplaced households · 55 suppressed charts to review by hand». All three were typed once and never recomputed. Checked on 13 September 2026: one household has no place, not 56. And 763 of 1,056 dossiers have no pedigree chart, not 55 — the note was wrong by a factor of fourteen, in the direction that makes the job look done. This archive has already recorded the same failure on a public page — «nine parishes» hand-typed beside a computed 1,151, when the real figure was fourteen — and the lesson written then was «any figure a page states should be derived, not typed». The notes were never held to it. There is now scripts/audit.py, and publish.sh runs it on every publish: roster and household counts, register rows by status, dossiers without a chart, places holding accepted records that appear on no lane, and towns written in the register under more than one name. That last check is the one that would have caught Vitipolis — it prints «rijeka: Fiume · Rijeka · Vitipolis» in three words. A build that cannot fail its own audit is not a check. If the audit script errors, the publish stops.

  31. 31

    Three easy wins, and why none was taken

    162 people in this archive have no place. Broken down, that is 104 from the family tree — which records no place for them, and which is David's worklist, not a machine's — and 55 from the record index, plus three strays. The 55 looked mechanical: match the name to a register row and take its place. Run against the whole register, exactly three of the fifty-five match a single place: Josephus Jelčić and Josephus Ruman to Ližnjan, Antonio Franceschi to Almissa. None of the three has been applied. All three are joins on a name and nothing else — the precise move this archive has a whole page of corrections about, including a portrait hung on the wrong man and a pedigree spliced at the wrong join. A 2% yield is not worth re-opening that door, and the third is a Franceschi, not a Defranceschi, which is a different question again. The useful output was not a fix but a decomposition: «162 unplaced» is one number hiding two different problems, of which 104 cannot be solved here at all. The audit now prints the breakdown, so nobody mistakes it for one backlog.

  32. 32

    The correction I nearly published

    Re-reading image 561, this archive's published transcription — «Andrea Palin q.m Pio» — looked wrong. At the zoom where a page can be scanned in one pass it plainly read «q.m Gio.», Giovanni, which is one of the commonest patronymics in the book, where Pio is rare. A correction was drafted. It was checked first, and it was the correction that was wrong. At full magnification the letter has a straight stem and a closed bowl at the top — the same P as in Pasqua and Pinzan four rows away — and nothing like the looped G of Giovanni, Giacomo and Giovanna on the same page. The published reading is right. The lesson is the mirror of one already on this page. «Every candidate has to be re-read at full magnification before it is written down» was recorded here about finding a name. It applies exactly as hard to unfinding one. A correction is a claim, and it needs the same evidence as the claim it corrects — and the tell was there to be noticed: the reading that felt wrong was the more common name, which is what a tired eye supplies.

  33. 33

    A frame is two pages, and the left one is off-screen

    A day's reading of the Vodnjan death register nearly went into the archive with a hole in it. Each frame of DGS 005497894 photographs a two-page opening, and the viewer opens showing the right-hand page. The left page is off-screen, and zooming out does not reveal it — the zoom steps stop before the frame is fully fitted, so what looks like the whole image is not. It was caught by arithmetic, not by looking. Image 564 ended at entry 135 and image 565 appeared to begin at entry 153. Seventeen entries had no frame to live on, which is impossible — so something was being missed. Panning hard left on 565 found book page 162, entries 136–152, sitting there unread. The correction is a habit, not a fix: on every frame, pan fully left before reading, and check that the first entry number continues the last one. The entry numbers are a running checksum the register keeps for you, and they are the cheapest verification in this whole project. It also means images 562 and 563 are only partly read — their left-hand pages were never opened, and entries 96–119, June to August 1831, are still unread. That is written into the queue rather than quietly left for the next person to trip over.

  34. 34

    Search the place, not the name

    FamilySearch's full-text search was tested on 13 September 2026, after standing at the head of this archive's queue for days as the one question that could make weeks of work unnecessary. The answer is no, and then yes to something else. No: the Croatian parish registers are not in it. Searching Gologorica returns nothing from Istria. The plan to read the Vodnjan books opening by opening stands exactly as it was. Yes: what is in it, at full text, is the American paper — naturalisation petitions, declarations of intention, passenger and crew manifests. And that changes the question you can ask. Until now this archive searched for a surname. Full text lets you search for the village, and get back everyone who was born there whatever they were called. «I was born in Gologorica Austria ... on February 21 1886. My race is So. Italian» — Giovanni Udovicich, petition for citizenship, Brooklyn, 1929. «visible distinctive marks Slavonian race ... I was born in Italian Gologorica Estra, Austria» — a woman's declaration of intention at Tacoma, Washington, who had married a Joseph on 12 November 1893. Neither is a De Franceschi. Both are from a village of a few hundred people that this family also came out of, and that is the point: the emigration was a village, not a surname, and this is the first tool that can see it. Note what the clerks wrote in the race box — «So. Italian» for one, «Slavonian» for the other, for two people out of the same village. The counts, corrected. An earlier version of this page reported 1,952 results for Gologorica. That figure was a year scraped out of a collection title by a careless pattern, and it was published under a sentence admitting it looked wrong. The real numbers, counted off the result pages: Gologorica 19 · Ližnjan 2 · Gračišće three pages · Crikvenica fifteen · Defranceschi about 9,900. And Vodnjan returns nothing, because the Croatian name is younger than every record in the corpus. The town is Dignano there — about 12,200 hits, most of them the other Dignano, in Friuli. Search the name the clerk would have written, not the name on today's map. Nineteen is the important number. It is small enough to read end to end, which is what makes a village sweep a piece of work rather than a wish.

  35. 35

    Find the index the clerks already made

    The Corsican archive has no search box — every module wants a commune, a date and a record type, and says so. That looks like the same wall as Vodnjan: images, read by eye, thousands of them. It is not, because of one line in a dropdown. Among the record types sits TABLE DÉCENNALE — the alphabetical ten-yearly index French civil registration compiled for every commune between 1793 and 1902. Eleven index pages per commune, read down one letter, against ten years of acts read line by line. The general rule: before reading a series, ask whether its own clerks indexed it. French tables décennales, Italian indici decennali, English parish transcripts, Habsburg Namensverzeichnisse — where a bureaucracy had to find its own records again, it built a finding aid, and that finding aid is usually filmed alongside the register and ignored. And the corollary, which is the unhappy half: Vodnjan has no such thing. An Austrian Liber Defunctorum was never indexed, which is exactly why that death register has to be read image by image and Corsica does not.

  36. 36

    Test the cheap lever before starting the expensive campaign

    The way to match a project that has read a whole town is to read a whole town — for this family that means Vodnjan, and the death register alone is roughly 105 images and 4,600 entries, at something like fourteen tool operations per image. Before any of that, one question is worth a single request: is the text inside these images already machine-readable? FamilySearch has been extending handwriting recognition across its collections. If the Croatian church books are included, the campaign becomes a query. It is untested, and it is recorded as a maybe rather than a plan. The general rule is worth keeping past this instance. A route that would take weeks deserves an hour spent looking for a route that takes minutes — and the looking should happen before the first week is spent, not after the third.

  37. 37

    Show the record, not a family reconstructed from it

    759 person pages said only «no family is drawn for this name». True, and useless. 153 of them turned out to have an indexed entry, and 289 records across the site name other people on the same page — a parent, a spouse, a godparent, a witness. That is worth showing, and it is emphatically not worth drawing as a family. So those pages now carry the record itself: the person, what the index says happened, where, and everyone else named on the same entry, each linked if this archive knows them. Under it, in the archive's own words: this is a record, not a family — the index names these people on one page and does not say how they are related; a parent, a spouse and a godparent look identical here. The distinction is the whole point. The temptation on a thin page is to promote a co-occurrence into a relationship, and it is how most bad genealogy is made. Showing the raw entry satisfies the reader's question — what do you actually have on this person? — without answering a question the record never answered.

  38. 38

    Look in your own files before you look anywhere else

    Of the 302 people carrying no year at all, the largest single recovery came from nowhere new. 25 of them already had a dated entry somewhere in this project's own data — eighteen in burials.json, three in graves.json, three in the Gologorica file, one in a household — and it had simply never been copied onto the roster row. That is the second time in two days. Twelve more had the year sitting in their own indexed record, whose id was already on their row; nobody had followed it. The general shape of the error: this archive grew page by page, each page loading its own data file, and a fact entered for one page does not travel to another. Before opening an archive, a film or a login, the cheapest possible search is a sweep of every JSON file in the project for a name and a year. It took one script and it beat every external source tried today.

  39. 39

    Never mine your own prose for dates

    302 people in this archive carried no year at all. Three routes were tried to give them one. Two worked and are safe: the person's own indexed record (12 people) and a dated entry in a household (29). Both are a record about that person. The third was reading the years out of the archive's own note fields, and it had to be abandoned. Seventy-four notes contain a year; only five yielded an explicit born or died, and one of those five was wrong — a note reading «Giuseppe De Franceschi q.m Pietro and Lucia De Franceschi q.m Pietro, both dead in 1830» was parsed as Pietro died in 1830. It was his children who died in 1830. He was born around 1730. The reason is structural and worth stating: a note in this archive is about relationships, and relationships are described using other people's dates. «Dead by 1823, when his daughter married» is a sentence about a daughter. One in five wrong is a catastrophic rate for something applied to hundreds of rows, and no amount of pattern-tightening fixes a source that is talking about somebody else.

  40. 40

    An estimate may reject; it may never confirm

    Where a person is a parent in a dated household, a birth year can be estimated — twenty-seven years before the first child, in a window from thirty-eight to eighteen years before. 64 people now carry such an estimate. It is stored in its own field and never written into the date columns, so nothing downstream can mistake it for a record. On a person page it says estimated, not recorded, in the same breath as the number. And it is used one way only. It can throw out an absurdity — a household beginning three centuries adrift. It cannot confirm a link, and the page says so. In this pass it rejected nothing, which is the honest outcome to report: the estimates agreed with every household they were tested against, and agreement of that kind is worth very little.

  41. 41

    The index writes Latin in the genitive, and it doubles your families

    Baptism entries name the parents in the genitive — filius Josephi Defranceschi et Mariæ, son of Joseph and of Maria. The indexer transcribes what is written, so the same couple appears as Josephi × Mariæ on one child and Giuseppe × Maria on the next, and any matching done on the raw strings counts them twice. Mining the catch for households produced 100 parent-pairs before this was handled and 48 after. The fix has three parts: map the genitive forms to one canonical given name (Valentini → Valentino, Ursulæ → Orsola, Joannis → Giovanni), collapse doubled letters and the -ich / -ć endings so Miccoli and Micoli, Nascovich and Nasković land together, and match on first given name plus surname only, discarding middle names — otherwise Lucia and Lucia Michiela are two women. What survives the cleaning still is not proof. Three pairs remain that might be one household each and are deliberately left as two.

  42. 42

    Before you accept a refusal, check your own URL

    A 403 stopped this archive for most of a day, and it was self-inflicted. FamilySearch's Deep Zoom tiles are at …/dgs:FILM_IMAGE/**image_files**/{level}/{col}_{row}.jpg; the reader had dropped image_files and was requesting a path that does not exist. The security service answered the unknown path with 403 and an Incapsula page, which reads exactly like a ban. The correct response to any refusal is still to stop — and that was done. But the first diagnostic should have been: does image.xml still work, and is the tile URL the one the service documents? image.xml was returning 200 the whole time, which was the clue and was not followed. One well-formed request would have settled it. A block and a bug produce the same status code. Tell them apart before you write either one down.

  43. 43

    Screenshots are downscaled — do the arithmetic

    The reading canvas is drawn at CSS pixels in a 1194 × 1054 viewport, and the screenshot comes back at 800 × 706 — a 0.67 reduction. Twice today a crop was computed by measuring a feature on the screenshot and multiplying straight into image coordinates, and twice it landed on blank paper. The chain is: screenshot px ÷ 0.67 → canvas px ÷ scale → image px. Miss the first step and every crop is a third too far up and to the left. The corollary is worth having too: because the whole viewport is squeezed into 800 px, a bigger canvas yields a sharper screenshot. Drawing at 1190 wide instead of 1020 is free legibility.

  44. 44

    Read the catch before you read the film

    On 10 September the plan was to read a hundred images of the Vodnjan death register by eye. The tile server blocked, so the 1,508-row harvest sitting in the project from the day before was read for parent-pairs instead — and it gave four households the archive did not have, plus two children for households that were already standing. The lesson is not that the index beats the film; it does not, and the deaths this reading was after are not in the index at all. The lesson is about order. Reading a register by eye is the most expensive thing this archive does, at roughly one page per minute of attention, and it was about to be spent looking for facts already in hand. Mine what you have harvested before you open the film, and go to the film for what the mining could not answer.

  45. 45

    When the service says stop, stop — again

    FamilySearch's tile endpoint returned 403 from Incapsula on the first request of the session: no CAPTCHA, no retry-after, no negotiation offered. The reading stopped. No user-agent was changed, no pacing was tried, no second route was looked for. This is the second time it has happened and the second time nothing was attempted. It is worth writing down twice, because the temptation is strongest exactly when the block lands mid-sentence — the register was open at image 560 and the next fourteen frames were the ones that mattered. The correct move is still to record where you stopped and why, and wait. It is on the Search Register as blocked, with the three deaths it was going to answer named.

  46. 46

    The place parameter does not filter

    On FamilySearch's persona search, q.anyPlace is a relevance boost, not a filter. Tested with ten values — Vižinada, Draguč, Dubrovnik, Vodnjan, Rovinj, Gračišće, Kaštelir, Ližnjan, and the controls «Zzzznowhere» and «Atlantis». Every single one returned the same total: 3,652. An unrecognised place is silently ignored and you get the whole set back, with no error. Vižinada and Draguč return identical result sets. f.recordPlace is a real filter but rejects plain town names. Never count records by place with these parameters. Any number so derived is a count of however many rows you took off the top of a re-ranked list.

  47. 47

    A results count is not a promise

    FamilySearch's persona search reports 3,652 results and will hand over roughly 1,800. Past that offset it does not error, does not warn, and does not stop — it silently wraps back to page one and serves the same records again, HTTP 200. Offsets 1,800, 2,600 and 3,600 all returned the identical first page, beginning with the same man, XQMM-LVSJ. The practical rule: page until the first record repeats, then stop and say so. The catch on The Register is 1,800 raw, 1,508 after de-duplication. It is not 3,652, and the 3,652 must never be quoted as a count of anything retrievable.

  48. 48

    Harvest with the record id in hand

    Every one of the 1,508 rows on The Register carries a live link, because the persona id was written down at the moment the row was taken, not looked up afterwards. Going back for the ids later is the expensive version of the same work, and usually it never happens — which is how a register ends up with a source column full of blanks. Record the id as you go, or the reach cannot be audited.

  49. 49

    A film can carry more than one parish

    The catalogue answers a film-number query with the first creator on the reel, and says nothing about the rest. DGS 005497893 returns «Rimokatolička crkva. Župa Vižinada» — and carries Vižinada's deaths 1754–1831 and Vodnjan's baptisms 1815–1866. This archive published a confident correction on the strength of that heading, moving seventy-eight records to the wrong parish, and had to retract it within the hour. Resolve to the film, then open the catalogue item list. Never stop at the film heading.

  50. 50

    An index blank is not an absence

    Thirty-nine Istrian places returned nothing in the eighteen-town sweep — including Gračišće, Gologorica and Crikvenica, where this archive holds register entries in its own files. Those registers are on FamilySearch as browse-only images that no volunteer has indexed. The two most important pages this project holds were obtained by writing to an archive, not by searching. There is a second reason, discovered later: since the place parameter does not filter, a search can only ever see what ranks into the top hundred of a re-ranked list. A blank is a statement about ranking and indexing, not about a province.

  51. 51

    The best records are in the books nobody has indexed

    The Vodnjan marriage register, 1815–1884, is indexed nowhere on earth — 286 marriage-query arks were resolved against its film and not one is on it. Read by eye, opening by opening, it produced in two days: five generations, three separate households, five women who had married out of the name, a priest, a ploughman, a weaver and a shoemaker — and the parents, grandparents and death-brackets of people the indexed baptism register could only name. The unindexed book was worth more than every indexed search this project has run. That is the single most useful thing on this page.

  52. 52

    Read the widows' entries first

    A first marriage names the couple. A widow's remarriage names her parents, because the clerk has to establish she is free to marry. The deepest generation this archive reached at Vodnjan — Gio. Maria De Franceschi fu Pietro and Michiela Zambaletta fu Cristoforo, a couple who appear in no baptism register on any film — came out of their daughter remarrying at forty-nine. If you are scanning a marriage register for depth, the widows are where it is.

  53. 53

    The patronymic is the only thing worth trusting

    Vodnjan produced four men called Pietro De Franceschi and two called Cristoforo, alive in one small town at the same time. They are told apart by «di Giuseppe» against «q.m Gio: Maria» — the father's name — and by nothing else. And the difference between di (father living) and q.m / fu (father dead) is itself evidence: it brackets Giuseppe De Franceschi's death to between November 1828 and February 1833, purely from how his sons are written. --- ⚠ 11 October 2026 — and the limit of that rule, found at Gologorica. The patronymic separates men of one surname. It does not separate men of two. Gologorica held a «Joannes Baptista DEFRANCESCHI q.ᵐ Leonardi» and a «Joannes Baptista DEPRATO, Leonardi filius» at the same time, both godparents in one book. Where the surname is lost, the patronymic names both and distinguishes neither — and it feels as though it has done the work, which is what makes it dangerous.

  54. 54

    A formula is not a fact about a person

    «De Parochi licentia» — by the parish priest's licence — appears against Don Stefano De Franceschi at a baptism in 1816 and at a marriage in 1833. This archive read that as his particular standing and published it. The very next entry uses the identical formula of Don Pietro Bradamante. It is the register's standard wording for any deputising priest. Before making something of a phrase, look for it against somebody else.

  55. 55

    A claim about an unfinished register is a claim about the part you have read

    This archive said, repeatedly, that Don Stefano appeared nineteen times as a witness and never once as the officiant — while sixty openings of that book were still shut. On image 213 he marries a couple himself. The honest form of that sentence was always «in the entries read so far». It costs four words.

  56. 56

    Names that will trap you

    In this parish, ruled out by eye rather than by string-matching: · Franceschich — a Slavic patronymic out of Buzet. Not this name. · Francin — its own Vodnjan family. Not this name — but Pietro De Franceschi's first wife was a Francin, so the two are a household deep in each other and a loose search produces nonsense in both directions. · De Marchi, De Maria, De Rocchi, Del Carro — the register is full of De surnames in the same hand.

  57. 57

    Check the photograph against something

    A hand-tinted portrait was published here for months as Josip Defranceschi of Crikvenica, the direct line's only likeness. It is from the Imotski branch. Every register plate on that same page had been checked against Pazin and Ledenice. The portrait was never checked against anything at all — it carried a name on a card, and the line had a man of that name. Two branches' photographs sit in one family collection. So do two branches' pedigrees: the retired 2018 GEDCOM spliced Imotski onto this line too.

  58. 58

    Do not let a pipe hide a failure

    npm run build | tail -2 reports the exit status of tail, not of the build. A broken page went live twice before this was taken seriously. There is now a publish script that builds without a pipe, checks that every source page produced an output file, and refuses to commit or push if either fails.

  59. 59

    Check that your own crop is not being cut off

    The tile reader used to read these registers draws a canvas and the browser clips it to the viewport rather than scaling it down. A crop 906 pixels tall in a pane 728 pixels tall silently loses the bottom fifth of every page — with no error and no visible edge. This was running for several openings of the Vodnjan death register before it was noticed, and the fix is arithmetic: crop height × scale must be smaller than the pane. Any page scanned before the fix has to be scanned again. The general form: when a tool renders rather than reports, measure what it actually gave you against what you asked for.

  60. 60

    When the service says stop, stop

    On 10 September 2026, after two days of reading register images tile by tile, FamilySearch returned 403 — «This request was blocked by our security service» on both the search API and the image service. That is a legitimate answer and it was accepted. No proxy, no delay-and-retry, no attempt to look like a different client. This archive does not bypass bot protection, and the reason is not only that it would be wrong: a family archive's only real asset is that its claims can be trusted, and an archive that cheats a source to get them has nothing. The practical lesson for anyone reading registers this way: the tile reader is doing hundreds of requests per opening. Read in short sessions, cache what you pull, and expect that a service which has given you five generations in two days may reasonably decide that is enough for now.

  61. 61

    Croatia has no civil registration before 1946, and that is why

    Two collection walks on 15 September 2026 produced the same structural fact from opposite ends, and it should have been written down long ago. Hungary introduced civil registration in 1895. Croatia-Slavonia did not. Under the Nagodba of 1868 it ran its own administration, and it kept the parish registers as the legal civil record until 1946. That single fact explains a great deal that had been treated as separate puzzles: Why FamilySearch's Croatian collection is «Church Books» and not civil registration. Why Pazin's own catalogue is parish registers. The state archive holds what the state had, and before 1946 the state had the church's books. Why searching for Croatian civil registration finds nothing — it was never created, so no amount of looking will turn it up. And why Međimurje is the exception. Its civil registers run from 1895 because Međimurje was administered as part of Zala county — as Hungary proper, not as Croatia. The anomaly was never archival. It was a border. The general rule behind it: what survives is decided by which state was keeping records, not by which country the place is in now. An archive that files by modern country will lose whatever the previous state filed elsewhere — which is exactly what this map was doing.

  62. 62

    A rule kept by hand is a rule nobody has checked

    The rule for living people is name and town, never a date, and every builder applies it itself rather than trusting the page: the reconciliation writes an empty year for a living person, the Findmypast sweep drops the electoral registers, the Social Security index and the obituary notices before it counts anything. That is the right place for it — a rule enforced where the data is made cannot be forgotten by a page written later. But nobody had read the result. In one day this archive grew a GEDCOM reconciliation, a DNA page, a record sweep and a fourth map layer, and the only thing a reader ever sees is the built HTML. So scripts/living-audit.py reads the built site, not the sources: 37 people the archive holds as living, every one of their names, against 1,280 pages, looking for a four-digit year standing in the same run of text. It found none. Getting to none took three narrowings, and each one is a lesson about auditing prose. The menu lists every page title on every page and one of the titles is a person's name, so the audit read only what follows the first heading. No tag may stand between the name and the year — without that it flagged a households row where the year belonged to the next person in the next span. And no sentence may end between them, because «David Defranceski. The 1584 plaque…» is prose about a plaque. The one hit left is the search index, where the page title «1948» sits beside a name in a lowercased string. A rule that is only ever enforced at the door should be checked at the window once a week.

  63. 63

    Find out what the index actually carries before planning around it

    A work-list row written on 16 September promised «thirteen birthplaces» from the thirteen American naturalisation petitions — because a naturalisation petition names the town, which is true of the document. Four transcripts later: every one says «Birth place: Italy». The index carries the country. The town is on the image. The plan was wrong by a whole job — eighteen images to read by eye rather than eighteen rows to harvest — and it was wrong in the direction that makes the work look cheap. Read one record of a set before writing a row about all of them. The same day's sweep did this right elsewhere: the three Italian parish sets were opened, ten transcripts read, and closed as Neapolitan before anybody planned a campaign on them.

  64. 64

    A gate that reads from the evidence back to the person, not from the page outwards

    Five gates ran on every build here — links, anchors, living people, the work list, the errand ledger — and on 17 September all five were green while ninety-two people were being told nothing had been read about them. Nine because a file of fourteen baptisms read off the Fiume register was consumed by no script at all; eighty-three because a banner tested for a household and an index entry and never looked at the person's own records. Every one of those gates asks the same question: is what is on the page well-formed? A build can answer yes to that and still be dropping, in silence, everything it was handed. The class of fault is invisible from that direction by construction. So check:evidence runs the other way. It starts at each person-keyed evidence file, takes every person named in it, opens the rendered page in dist — not the data that was supposed to produce it — and refuses the build unless that page carries a record or a correction. Where the evidence file carries a date it also refuses a page that claims there is no recorded year. It does not touch the charts. A household chart draws households.json as it stands and a pedigree draws the export as given; a date recovered from a register does not silently redraw either, and the page now says so in as many words. The gate's only business is to stop a page claiming nothing has been read when something has. It was verified by putting both bugs back. Removing the loader fails nine and exits 1; restoring the old banner fails eighty-eight and exits 1.

  65. 65

    A table can be right about every entry and still be lying about what kind of thing it is

    «Say Your Name» carried 415 forms of 60 given names and a sentence about itself: «reconciled by hand from the forms that actually appear in these registers — not from a dictionary». Checked against the records on 17 September 2026: 130 of the 415 were not in them. Nothing on the page was wrong — Grgur really is the Croatian for Gregorio — but the page was claiming the wrong kind of authority for a third of itself, and the Croatian column, 31 of 48 unattested, was almost entirely a dictionary. The instinct to delete them was wrong. A form this archive has never met is exactly what you need in order to go and meet it: Gergely is what to type into a Hungarian index, and the fact that no record here uses it is a statement about this archive, not about Hungary. So the table keeps both and marks them apart — evidence in plain type, lookup aids in italic with a ° — and scripts/name-forms-audit.py decides which is which by looking every form up in the roster, the register, the households, the burials, the headstones and the four FamilySearch harvests. The build refuses if the marking drifts from the records. The audit also found the column that was missing. There was no Hungarian one, in an archive whose own place-strings say Magyarország — and sixteen Hungarian forms were already in the records, unrecognised, some of them filed as Italian.

  66. 66

    A surname with two spellings is two archives, and a nil in one of them is not a nil

    Arolsen was searched on 17 September under DEFRANCESKI and gave 79 records. It was searched on 21 September under DEFRANCESCHI and gave 38 people and 9 archival units — and the second set is not a subset of the first. Anton Rudolf, born 20 January 1890, stands in both, in different units: under -ski where this archive found him, and under -schi in the War Time Card File and in 2.3.3.1. The engine is matching strings, not people. Whoever wrote the card wrote what they heard, and the index preserves the clerk's ear, not the family's spelling. A search that returns nothing under one spelling has established nothing about the other. The rule: on any full-text index, spend the extra query. Run every spelling the name actually takes, and treat the union as the result. And check the opposite failure too — the spaced form «De Franceschi» at Arolsen returns 960 people, because the engine splits the token and matches either half. One query was too narrow and the other was too wide, and neither of them announced it.

  67. 67

    A finding aid's page number is a reading too, and it can be wrong by a digit

    The Svetvinčenat index says «Marina di Piero Defranceschi, 21 Febraro 1710 — c. 6». Carta 6 of that volume is in 1706. The entry is on carta 16, where the leaf runs 5, 6, 10, 21 February 1710 in order and Marina sits under «21 detto». The tell was chronological, not palaeographic. The same index put an August 1709 entry at carta 13 verso and a February 1710 entry at carta 6 — a later date on an earlier leaf. In a register kept in order that cannot happen, and it is the cheapest check there is: sort your citations by date and see whether the page numbers rise with them. This is the same lesson the Pazin misread taught in a different costume — «the cheapest check is whether the sequence you have written down is possible» — and it is worth stating twice because the two failures look nothing alike. There the ambiguous character was in the record; here it is in the finding aid. A citation is a claim, and it is the kind of claim that can be tested before it is followed.

  68. 68

    With thirteen hundred people on the books, the first question about a find is whether it is already here

    On 21 September a naturalisation petition came up naming a man born at «Gallignana, Austria» — Gračišće, this archive's own origin parish — who sailed from Trieste on the Martha Washington in 1910 and settled in Brooklyn. It was about to be written up as the find of the day. It had been published here for weeks. He is Giuseppe Defranceschi, born 1892, the first of the Eleven to go, and his page already carried the petition, the certificate number, the ship, the date of arrival and his address at 148 Sackett Street. The only reason it was caught is that the roster was searched before the note was written. This is a structural hazard of a one-name study and it gets worse, not better. The roster passed 1,350 rows today. Any archive large enough to be useful is large enough that a genuine document can be genuinely new to the reader and old to the archive — and the feeling of discovery is identical either way. The rule: grep before you publish. Not the person's name, which is shared by dozens here — a hard string from the document: a certificate number, a ship, a street. On the same afternoon that test cleared the Chicago card («2336 W. Superior», «151190» — nothing) and caught Joseph («Martha Washington» — five files).

  69. 69

    A pattern that matches a command matches it in every archive on the machine

    For weeks this session ran pkill -f "astro build" before every publish, to clear a stuck build of its own. pkill -f matches the full command line of every process on the machine — and every archive on this Mac builds with astro build. It was reaping all of them. The Lerena session worked it out and said so, having lost three verify.sh runs to it. Checked at that moment, pgrep -fl "astro build" showed live builds under Blazevic and D'arcy as well. And one of this archive's own publishes had died the same way — exit 144, mid-render — and was written off as an unreproducible fault. The second-order damage is the expensive part. A SIGTERM'd build inside a gate chain exits non-zero after several gates have already printed ok, so the failure surfaces as a clean-looking log with an unexplained EXIT=1. It looks exactly like bad data. That is two sessions hunting a fault in their own work that was never there. The fix is scripts/stop-my-build.sh: resolve the repo root and match pgrep -f "$ROOT/site/node_modules/.bin/astro" — the absolute project path, which every node build carries in its command line — and kill only those. The rule behind it: a process pattern is a global selector. Scope it to a path, not to a command.

  70. 70

    A scan that is fast enough to be worth doing is never good enough to be believed

    Reading a parish register page by page costs four calls a frame — render each page, screenshot each page. Cropping both pages into one canvas halves it. At 880 pixels across an entire opening the hand is still legible enough to spot a nine-letter surname, and that is what a sweep needs. On the first spread it was used in anger it produced a false positive. «Maria Catarina filia legitima Dominici Dassanich q. Laurentij et Joanne ejus uxoris», carta 82, 16 October 1780 — at spread scale indistinguishable from Dominici Defranceschi: the same length, the same ascenders, the same slot in a formula that always runs filia legitima [father] et [mother] ejus uxoris. It was a new child of the name for about a minute. The formula is what makes it dangerous. Every entry on the page has a long surname in exactly that position, so the eye is not matching a word, it is matching a shape in a slot — and half the parish fits. The rule: scan wide, confirm narrow, and never let a candidate cross into a note without a magnified crop of its own. At Svetvinčenat this surname has at least three near-twins — Defranzieri on the index page, Nadal Venir four entries below D. Nadal Defraneschi, and now Dassanich — all three met in a single day. --- Amended, after the D'Arcy session found the asymmetry this note had missed. This was filed alongside their wildcard as the same fault — an instrument that buys reach by giving up discrimination. It is not the same, and the difference decides how each may be used. Their dilution is printed in the result set. This one is not. A wildcard hands back 608 rows with de France and de Franca legible in them, and the wrong ones are discarded by reading the output. This crop hands back Dassanich already converted into Defranceschi. The surname is not in the output to be judged — only the reading of it is. So the discarding can only happen against the original image at full resolution, which is the step the crop existed to skip. So the saving is smaller than this note first claimed, and it was wrong to call it a halving. Two calls a frame buys a shortlist, not a reading. Every candidate still costs the full-resolution look; the only frames it truly saves are the ones with no candidate at all — which, at four false positives across seven spreads, is most of them but not nearly all. The corrected rule: use it to rank which spreads to open, never to confirm what is on one. And the general form, which is theirs: both instruments trade discrimination for reach, and neither reports which of the two it is doing. A safe instrument would state its own selectivity. This one cannot even in principle, because its output has already collapsed the evidence into a judgement. And the variable that governs both instruments is not in either of them. The frames this crop genuinely saves are the ones with no candidate on them. So the saving is a function of how rare the surname's silhouette is in that parish, not of the crop. Where the shape is common the crop saves nothing and costs a false positive a frame; where it is rare it saves almost everything. That is the same number as the wildcard's dilution — defranceschi returns 5 in England and defranc* returns 608, because Defranc- is a native English surname stem; in a corpus where it is foreign the same query is clean. Both instruments are only as good as the rarity of the thing being sought in the corpus they are pointed at, and neither of them knows that number. Which gives the only honest way to use either: measure the rarity first. One exact-spelling query before the wildcard; one full-resolution spread before the sweep. The cost of that measurement is one call, and without it neither instrument can tell you whether it is about to save you a day or invent a family.

  71. 71

    A silent narrowing is worse than a silent zero, because it answers

    Findmypast's year filter takes yearofbirth and yearofbirth_offset, and the offset misbehaves in the one way that cannot be spotted from the result. Measured on 21 September against a single fixed query — defrance\*, census and land, Great Britain, born 1855 — varying nothing but the offset:

    offsetresults
    017
    324
    745
    40205
    4517
    Arbitrary integers are honoured — the dropdown's 0/1/2/5/10/20/40 are presets, not a whitelist, and 3 and 7 give genuine windows. But anything above 40 collapses to an exact-year match. Offset 45 returns precisely the offset-0 count: the narrowest search there is, wearing the clothes of the widest. This archive was caught by it. A Cosulich query at offset 45 returned a clean zero and was read as «nobody of that name in that window». It had quietly become «born in exactly 1855», and nobody was. The zero was true and meaningless. The general form is the point. A parameter that fails by erroring costs a retry. A parameter that fails by returning nothing at least looks suspicious. A parameter that fails by returning a real, small, plausible answer costs a false finding, because there is nothing in the result to distrust. Before believing any filtered nil, vary the filter and watch the count move. If it does not move, the filter was never applied; if it moves the wrong way, it was applied as something else.

  72. 72

    Ask of every data file: does anything on earth read it?

    The D'Arcy session found a file in its own archive that nothing read — a register of spelling folds it had examined and refused, with reasons beside each. Its own opening note said refusals get overturned by whoever next runs the tool, and since nothing consulted it, that is exactly what would have happened. Their line for it is the right one: a refusal nobody consults is not a decision, it is a diary entry. Run here, the audit is one line — for each src/data/*.json, grep the pages, components and scripts for its filename — and it found one orphan out of sixty-odd files: namefold-extra.json, 578 given-name folds. And then the second half of the check mattered more than the first. The alarming reading was «five hundred folds built to widen the search box, wired to nothing». It is a strict subset: all 578 are inside namefold.json, which carries 594 and is wired into the register. Nothing is missing from the site and no search is narrower than it should be. It is kept rather than deleted, for one sentence it contains: «JAN is the trap — it is a real given name and it is also how a date writes January, and in the Booyzen archive folding it made 338 of 346 people match a search for JOHN», with Zan, Gio, Nane, Ive and Ana beside it. That is the refusal. The 578 folds are duplicated elsewhere; the reason six of them were left out is recorded nowhere else. An orphan file is worth auditing for what it decided, not only for what it holds.

  73. 73

    Ask what the finding aid has already ruled out before reading past it

    A page-by-page read was about to begin over forty-seven frames of Svetvinčenat, 1750 to 1763. Before it started, one question: what does the volume's own index already say about those years? It says there is not one child of the name in any of them. The index holds seven Defranceschi entries and every one is 1734 or earlier, in a volume that runs to 1763. That is not a reason to skip the read — it is the thing that tells you what the read is for. The index runs B to P, so it is blind to A and R–Z. If children of the name exist in those twenty-nine years, their forenames are Antonio, Andrea, Anzolo, Rocco, Simon, Tomaso, Vito, Zuanne — and the man this archive is hunting, the Antonio of the 1780 exemption, is the first of those. The general rule: a finding aid's silence is evidence, but only once you know its extent. This archive learned that the hard way last night, when it was about to trust the same index for the same Antonio. Turned round, the same fact becomes a prediction: the read is no longer looking for a surname, it is looking for eight forenames, which is a different and far cheaper thing to look for.

  74. 74

    A twentieth-century commune has a typed index, and it is not where the handwriting is

    Thiébauménil's tables décennales for 1873–1932 are catalogued as seventy-three images of a register, which reads like seventy-three pages to squint at. They are nothing of the sort: they were typed and printed on 27 November 1995 from the commune's own database, alphabetical by surname, one line per act, with the act number and the exact date. Two screenshots replaced a 312-image sweep of the birth registers. The rule that came out of it: before opening any French commune's acts, open its TD and look at what century the TD is from. A table made in the 1990s is machine-legible where the acts are not, and it indexes the acts either side of the decade boundaries the catalogue advertises. The same volume also answers a negative cleanly — the marriage table for 1903–1912 runs Humbert → Leybach with nothing between, which is a much firmer nil than failing to spot a name in a year of handwriting.

  75. 75

    The register changed language, and the search term had to change with it

    Svetvinčenat's marriage register is Italian from 1762 and Latin from 1770, in the middle of the same bound volume and with no announcement. Up to image 21 the entries read «Adì … contrasse il matrimonio per verba de presenti con …»; from image 22 they read «Tribus premissis denunciationibus … matrimonio juncti sunt». The family name goes with it: de Franceschi in the Italian stretch, Franceschi after the Latin nominative takes over, and the forename is Giacobus, not Giacomo. A page-by-page eye trained on one of those shapes slides straight past the other. Fix the language at every frame you open, not at the start of the volume — the tell is the first word of the entry, not the heading, and a volume that was catalogued as one thing is routinely two.

  76. 76

    A name that keeps recurring is a job before it is an honour

    Antonio de Franceschi witnesses six weddings at Svetvinčenat in ten months of 1773. Written up the same afternoon, that read as standing: the parish keeps asking for him. Sixteen frames later the register calls him «Campanaro» — the bell-ringer — and the pattern collapses into something much more ordinary: he is in the church because that is where he works. Before treating a recurrence as significant, look for the office that would produce it anyway — sexton, bell-ringer, schoolmaster, clerk, innkeeper next door. The tell is usually written down somewhere later in the same volume, in a formula the eye skips because it sits after the name rather than before it. And when the office turns up, check whether anyone else holds it too: here Joannes Sain is styled campanaro four months after Antonio last is, which killed the tidier sentence — «the bell-ringer of Svetvinčenat» — before it could be published.

  77. 77

    Run the neighbouring archive's test before deciding it does not apply to you

    The D'Arcy study found thirty-six of its map pins sitting on a containing place's coordinate and stamped exact — its own subject town shown on the centre of England. It sent the detector over. The cheap response would have been to reason that this archive's map is built differently and move on. Porting the test cost twenty lines and found four, and — this is the part worth keeping — found them for a completely different reason than the one that produced the D'Arcy thirty-six. There the gazetteer had not heard of the place and answered with something larger. Here FamilySearch's own collection file clusters a daughter village's dot beside its district town's. Same symptom, unrelated cause, and a test written against the symptom caught both. A detector that only knows what a fault looks like travels between archives; one that knows why the fault happened does not. The corollary is the reason to accept a neighbour's check even when confident: it is confidence that stops you running it, and the four pins had been published for weeks.

  78. 78

    A field name that has to be checked against the code is a claim nobody can read

    The research map stamped 1,065 of its 1,286 places geo: "geonames-region". It reads as «pinned on the region's centroid» and means the exact opposite: the place's own GeoNames coordinate, chosen from several same-named candidates by which one falls inside the expected bounding box. The region does the choosing, never the placing — it is the thing that stopped Prato Carnico sitting on Prato in Tuscany. The session that wrote the label believed the label, three weeks later, for about a minute, while auditing its own map for exactly that fault — and only stopped because it read the code. A neighbouring archive, told the story, said the obvious thing back: rename it, because a name that has to be verified against the source is not readable, and this archive's whole method is that a claim should be checkable by reading it. It is now geonames-disambiguated, with the full table of provenance stamps and this reason written beside it in the generator, and the old value migrated on read so nothing carried forward out of the shipped file quietly keeps the old name. The data never changed. Only the sentence it was telling did.

  79. 79

    Search your own archive before you search the film

    An afternoon went on reading nineteen frames of a baptism register to find out who Vittorio Defranceschi's father was. The answer was in burials.json, in this repository, published on this site: Vitorio Defranceschi … aged 54 … kin: Antonio. One grep would have had it. The failure has a shape worth naming. The archive had ingested the burial index as dates and places — it drew them on a map and counted them — and never read the kin column as relationships. A field that is carried but not interpreted is invisible in exactly the way a missing field is, and it is worse, because its presence in the file makes the archive feel complete. So: before opening a register to answer a question about a person, grep every data file in the project for that person's name and read every column of every row that comes back — not the columns the page happens to render. The same sweep that found the father also found his four children, which nobody had drawn either, and turned two loose witness lines into three generations.

  80. 80

    A sweep that fails its target can still finish a family

    Sixteen frames were read to find one baptism — Vittorio, son of Antonio — and it is not there. The whole of 1750 to 1760 now stands searched with no Defranceschi child of any Antonio in it, which is a real result and a wide one: it moves the question from where in this volume to was he baptised in this parish at all. The same frames handed over a different household almost complete. Giacomo de Franceschi and Pascasia turn up as parents in 1750, 1753, 1756 and 1759 — four children, three forenames, one of them lost to smeared ink. None of that was being looked for. A page-by-page read collects everything on the page, and the entries you were not hunting are worth logging as carefully as the one you were, because the alternative is reading the same sixteen frames again in a month for the next question. The discipline that makes the by-catch usable is recording what you did not resolve. Three godmother lines here style a wife of Jacobus as Veneranda where four baptisms say Pascasia; a godfather of 1754 is «Jacobus filius Jacobi» and cannot be the baby of 1753. Both are written down as open, not smoothed into the tidy version — because the tidy version would have merged two generations of one forename, which is the commonest way a parish reconstruction goes wrong.

  81. 81

    «Figlio di» is worth more than a hundred appearances of the same two names

    For two days this archive read Gasparo and Giacomo de Franceschi as two households at Svetvinčenat, because both stand godparent through the 1750s and both have a wife named in the entries. Then one line of 1762 — «Gasparo figlio di M.o Giacomo de Franceschi» — collapsed them into a father and his grown son, and a second instance four months later confirmed it. The lesson is about what godparent entries can and cannot carry. Dozens of them establish that two forenames are active in a parish at once. Not one of them establishes a relationship, and the natural reading of two names appearing in parallel — two households — is the wrong one about as often as it is right. A single «figlio di», «q.» or «uxor» outweighs the whole pile. So: when a sweep is producing the same two or three forenames over and over, stop counting appearances and start hunting for the one entry that says how they are related. It will be rarer than the appearances and it will be worth more than all of them — here it also dated the son, because the volume's own index had his baptism twenty-five years earlier and the ages agreed.

  82. 82

    An ingested index has columns nobody read

    fsrecords.json has been in this repository for weeks. It was ingested for names, dates and places, which is what the pages built from it show. It also has a parents column, and until today nobody had looked at it. In that column: Franca De Franceschi, 8 Dec 1769, parents Ano De Franceschi & Mattia; Pasqua Vitoria, 16 Dec 1773, parents Giacomo De Franceschi & Nicoletta; Maria Matthia, 3 Sep 1784, parents Victorii De Franceschi & Euphemię. Three generations, two of the archive's open questions answered, and a bridge from the marriage register to the baptism index — all of it sitting in a file the site already reads from. This is the second time in one day. The morning's version was burials.json, ingested for dates and places, carrying a kin column that named Vittorio's father. The pattern is not «we missed a file». It is «we ingested a source for the fields we wanted and never audited the fields we got». The remedy is cheap and should be routine: for every ingested dataset, print the full key set and the distinct values of every column before deciding what the file is for.

  83. 83

    Reading

    A hyphenated surname at a line break is the most dangerous place on the page. Of five false readings killed by magnification in one sweep of the Svetvinčenat baptisms, four sat in the godparent or parent slot and three broke the surname across a line — «An-/tonij Bergamo» read as Defranczo, «Domi-/nici» read hopefully. The eye finishes the word from expectation, and the expectation is the surname you are hunting. The rule: never write down a name that begins on one line and ends on the next until you have magnified it. And the trap is not always the surname. One of the five was «Joanna filia q.m Francisci Zabrza» — a forename that looks like the beginning of Franceschi.

  84. 84

    Reading

    A common forename identifies nobody. «Fosca uxor Dominici Defranceschi» appears seven times in the Svetvinčenat baptisms and is a real, single woman. But the same volume also carries «Fosca uxor Martini Merklem» — a different Fosca, four entries away on the same leaf. Before treating a forename as a person, check whether the parish used it once or used it constantly. The full form is the evidence; the forename alone is a coincidence waiting to be published.

  85. 85

    Reading

    A reading that would overturn an established fact is a warning, not a discovery. Twice in one sweep of the Svetvinčenat baptisms a spread-scale glance produced something startling — a second wife for a man whose wife was already documented, and a baptism of the surname where none should be. Both were false, and both died at magnification. The ordinary readings held; the exciting ones did not. Excitement is a signal to slow down. A finding that would rewrite the tree deserves more scrutiny than one that merely adds to it, not less — and the temptation runs precisely the other way.

  86. 86

    Coverage

    A negative from a volume read frame by frame is evidence. A negative from a volume searched by index is nothing. The Svetvinčenat baptism register 1764–1791 has now been read at every one of its 127 openings. That is what lets this archive say, and mean, that no child of Vittorio and Euphemia was baptised in it — even though an index entry names one in 1784. The index and the volume disagree, and only a complete read makes that disagreement visible rather than invisible.

  87. 87

    Coverage

    An index and a complete read are not rivals; each catches what the other drops. This archive read all 127 openings of the Svetvinčenat baptism register 1764–1791 and missed the 1784 baptism of Vittorio's daughter — which the FamilySearch index had, and whose image ark pointed straight back at a frame already read and passed over. The reverse is equally true: the index gives no godparents, no honorifics, no «ex hac Parochia», and none of the sixty-odd godparent appearances that show where this family actually stood. Run both, and check each against the other. An index entry with an image ark is a free audit of your own reading — resolve it and go back to the frame.

  88. 88

    Sources

    An ingested index's «birth» column may hold ages worked backwards from a burial, not baptisms. fsrecords.json lists «Vitorio Defranceschi, 1758, parent Antonio», which reads exactly like a baptism record and was very nearly chased as one. The underlying entry is his burial — 8 November 1812, aged 54 — and 1758 is FamilySearch's arithmetic, flagged on their own page as «Birth Year (Estimated)» and flattened to a bare number on ingest. A second one checked the same day behaves identically: «Mathęius De Franceschi, 1750, parent Anton» is a burial of 7 August 1819, aged 69. Both sit in the 6B47- id range, and on this evidence that range is burials. (Two records verified, not the whole range — stated as what was checked.) An estimate that loses its label becomes a fact. Check the event type on the record page before treating any ingested year as an act.

  89. 89

    Sources

    Full-text search reads Italian civil registration, not the Croatia Church Books — so it reaches this family only during the Italian period. Measured on 21 September 2026 by sampling the collection line of 97 of the 3,967 documents it returns for Defranceschi: Emilia-Romagna 70, Friuli and Lombardy 12, Sardinia, Veneto and Marche 11, the rest scattered, and zero from Croatia, Istria or Rijeka. That is why Rotilio's marriage was findable and Fiume's 1740s households are not. His banns were posted at Trieste in 1928, in an Italian civil register. The Fiume baptisms of the 1740s are a Croatian church book. Before querying, ask which archive the record would physically sit in — the service's reach is geographic and administrative, not linguistic.

  90. 90

    Reading

    Quote the phrase, or full-text ORs your words and buries you. Defranceschi Valentino Fiume returns 1,079,220 documents and the top hits are Fiume Veneto, in Friuli — a different town in a different country, matched on one word. The same query as "Valentino Defranceschi" returns 4. A result count in the millions is not a rich seam; it is a broken query.

  91. 91

    Coverage

    Renaming a person leaves their old page standing, because the dossier builder only ever adds. Maria Trompich (Cincopan) was renamed to Maria Trompich or Fumpich (Cincopan) when the two copies of her daughter's marriage act turned out to disagree. The new page appeared; the old one kept answering 200 on the live site, with the superseded single spelling on it. build-dossiers.py writes a dossier for every current person and prunes nothing, so the stale entry survived every rebuild until it was deleted by hand. After renaming or removing anyone, check that their old slug stopped resolving. A page nobody links to is still a page a search engine can hand someone, and this one contradicted its replacement.

  92. 92

    Reading

    Two goes at counting the orphans, two confident wrong answers — and the second was wronger than it looked. Hunting for other stale pages, a first pass compared dossier slugs against roster names with a hand-written slugger and reported 229 orphans. The slugger disagreed with the project's own on accented names — it turned Mathæus into math-us-defranceschi — so most of the 229 were real people the test simply could not match. Rerunning with build-dossiers.py's own slugify gave 206, and that was still wrong, because dossiers are not built from the roster alone. The list included in-laws drawn from other files — Maria Valhart, Ruža Hreljac, Ana Kalanj — and entries that are not people at all: what-it-is, why-this-is-published, a-hundred-thousand-ducats. The true count was one, and it was the one already known about. Borrowing the project's own function fixed the spelling of the question and not its logic — and a number that survives one correction feels far more trustworthy than a number that has never been corrected at all. Never mass-delete on a figure your own tooling produced without checking what the outliers actually are.

  93. 93

    Sources

    Every image in the Croatia collection carries a household index, and nobody here had opened one. /ark:/61903/3:1:?view=fullText returns a transcript panel listing every household on that plate with its date and both parents — nineteen on one Fiume leaf. That is an index at image level, and it turns «which of these 200 frames is worth magnifying?» from a day of cropping into a page of reading. It does not replace the plate. The first thing it produced was a surname this archive disputes — it reads a 1748 Fiume household as Mancoschi where this archive has Defranceschi. Use it to choose frames, not to settle names.

  94. 94

    Reading

    Stop guessing crops as fractions; measure the plate. Four attempts to isolate one Fiume entry failed because the crop window was being estimated by eye from a shrunken screenshot — and the estimate was badly wrong, putting the book in the plate's top-left quadrant when it actually fills x 0.034–0.964, y 0.044–0.951. The reliable method is local. Fetch the plate once (sg30p0 refuses a bare request, but the browser's redirect yields a signed S3 URL that serves it without a session), then find the page edges from column and row means, the gutter from the darkest interior column, and the text lines from row STANDARD DEVIATION at full resolution. Brightness thresholding finds nothing on these films — the ink is too fine, and any downscale averages it into the paper; a 1/4-scale pass returned zero text lines on a page carrying dozens. Variance found 35 lines on one page and 38 on the other. That converts «somewhere on this plate» into «the fourth entry, lines 10 to 12».

  95. 95

    Sources

    In the Croatia collection, a bare year in an ingested «birth» column is usually a burial's arithmetic. Four records were caught this way in one day — Vitorio 1758, Mathęius 1750, Mattio 1742, Antonio 1753 — and every one is a burial, whose record page says Birth Year (Estimated) and whose year is the clerk's stated age subtracted from the date of death. Ingest flattens that label away and leaves a number that reads exactly like a baptism. Treat any bare year in this collection as an estimate until the record page has been opened. Reading them as births does not merely misdate people — it invents them, because the same person then appears once as a birth and once as a death.

  96. 96

    Reading

    A surname search will hand you families whose only connection to the name is a mother. Hunting Fiume marriages, two results read «Maddalena Franceschi, spouse Gio Batta Franceschi» — apparently the very couple being looked for. They are the marriages of Giovanni Masatto in 1846 and Pietro Masatto in 1852, a century later and a different family: Franceschi is the mother's maiden name, which the index has attached to the household as though it were the family's own surname. The tell was the date, and it was visible in the result list. Check the century before the name — a surname index does not distinguish the family that bears a name from the family that married one.

  97. 97

    A three-month hole in a marriage register is usually Lent

    Marriage registers go quiet every spring, and it is not damage. Canon law closed the tempus clausum from Ash Wednesday to Low Sunday, so a Catholic parish records no weddings for six or seven weeks each year — and with the weeks either side thin, the silence can run to three months. This matters at a join. Frames 191 and 192 of the Fiume film hand over from one sweep to another, and the dates jump from 25 February 1748 to 2 June 1748. A missing leaf at exactly that point would be invisible and would quietly falsify a nil. Two checks settle it in a minute. Read the pencil foliation on the outer corner of the right-hand page — at Fiume it runs one number per frame, and 181 → 182 across the gap says no leaf is missing. Then compute Easter: Ash Wednesday 1748 was 28 February, three days after the last wedding. Do both wherever one session's reading meets another's. A gap you did not explain is a gap you cannot count as read.

  98. 98

    Check the comparison operator before you trust a catalogue's nil

    The Austrian State Archives' field search defaults to «starts with». Type Franceschi, press Search, and you get 43 records with no Defranceschi in them — a clean-looking, complete-looking, wrong answer. Change the operator to «contains» and the same term returns 99. Every archive search box has a default, and almost none of them announces it. Before recording a nil, run the query twice: once as given, once with the broadest operator the form offers. If the counts differ, the default was doing the searching. The general rule for this surname is to search the stem — Franceschi — with contains. One pass then catches De Franceschi, Defranceschi, de' Franceschi and the adjacent diminutives together, and the diminutives can be discarded afterwards by eye. Separate queries per spelling cost round-trips and still miss the one you did not think of.

  99. 99

    An index can name the right country and the wrong province

    The dangerous geocoding error is not the one that lands in another country. That one is obvious and a country test catches it. The dangerous one keeps the country and moves the province: «Fasana» resolved to Pont Canavese, Torino, Piemonte instead of Fažana in Istria — five hundred kilometres, and «Italia» is true of both, because Fažana was Italian from 1918 to 1947. It survived because every check was pointed at the country. The atlas had the dot right; the printed pages had it wrong; eight people were shown as born in the Alps. The test that finds it is a list of the provinces on the wrong side of the peninsula — Piemonte, Lombardia, Toscana, Lazio, Campania, Sicilia and the rest — applied to any record whose parish this archive has already placed on the eastern Adriatic. It is in place-audit.py. And the fix keeps both strings. The index's words stay on the record as provenance; the resolution is what prints. Overwriting the source would hide the very error that had to be found.

  100. 100

    A godparent's husband is not evidence of which household she belongs to

    A baptism entry names its parents carefully and its godparents casually, and the difference matters when a surname is common in one village. At Svetvinčenat in ten months of 1737–1739 the register gives «uxor Jacobi de Franceschi» three different wives — Anzola in December 1737, Agata in August 1738, Jacoba in September 1738 — and then Angela, who is Anzola, in March 1739. Angela is alive on both sides of the other two, so one man cannot have had all three. And one of the three belongs to somebody else. Jacoba is named six weeks earlier as the lawful wife of Pietro de Franceschi, in an entry where she is a parent and the clerk had every reason to be exact. When the same woman turns up as a godmother he writes «Jacoba uxor Jacobi» — a forename pulled, most likely, by her own. The working rule. Parents in a baptism are evidence; «wife of X» in a godparent line is a label, and a weak one. Use it to show that a household existed, never to decide which household a person was in — and where a village has two men of one forename and surname, expect the register itself not to be able to tell them apart. Neither reading is preferred here. Both are recorded, because the alternative — picking one — would put a person in the wrong family and leave no trace of the choice.

  101. 101

    Read both exposures — a duplicate frame is not a redundant one

    Films repeat an opening more often than a reader expects, and the repeat is usually treated as waste. At Svetvinčenat images 120 and 121 are the same book page, and they are not interchangeable: loose slips are lying on the leaf, and they have shifted between the two shots. What one frame hides the other shows. The slips themselves are records. At this parish they are the priest's own memoranda — baptisms written out in Italian on scraps and kept inside the Latin register, photographed where they lay. A sweep that skips them loses entries that are in no index and on no page. So: before writing down that an opening does not contain something, check whether the film shot it twice — the page numbers in the outer corner settle it in seconds — and read the slips as well as the leaf.

  102. 102

    Never date a frame from its year heading alone

    A page headed 1759 whose entries are all dated 1739 is not a contradiction; it is one clerk's 3. On images 123 and 126 of the Svetvinčenat births the heading reads five and the entries beneath it read three, and the page numbers run straight on from the frame before. Three cheap cross-checks, in order of reliability. The page number in the outer corner, which cannot lie about sequence; the entry dates inside the page, which the clerk wrote more carefully than the heading; and only then the heading. This nearly put a household twenty years out of place. A baptism read as 1759 and published as such would have been attached to the wrong generation, and nothing downstream would ever have questioned it.

  103. 103

    Point a check at the build you just made, by name

    A gate that reads dist in a shared working tree is not reading your work. Several sessions build out of one checkout here, so dist routinely holds a half-written build or another session's data — and a check pointed at it passes or fails on somebody else's page. This archive's gate builds into dist-gate-$$ and passes --dist to every check explicitly, which is why a kit bug reported on 22 September — four tools ignoring the ARCHIVE_OUT variable because a command-line flag overrode it — could not reach it. The flag was already pointing at the right place. Verified rather than assumed, the same day. A fresh 1,475-page build was made by hand and the living check run against it by name: «no living person reaches the build — 52 living, 0 dates guarded». That is the sentence the living rule needs, and it is worth nothing unless the directory in it is the one you just built.

  104. 104

    Test a correction against the page it names, not against the site

    A self-correcting archive quotes the wording it is retiring, so searching the whole site for a corrected phrase returns mostly the corrections themselves. Run that way on 22 September it flagged 41 claims; every one sampled was the old wording being quoted properly. Narrowing it to the data files that build the page each correction names cuts it to 21, and excluding any occurrence sitting within five hundred characters of corrected, withdrawn, retired, no longer, used to cuts it to 12. Ten of the twelve are transcriptions — a register's own words, which are supposed to survive. The two that were real were both about pointing rather than asserting: a search-register row that still gave a superseded count with no link to the correction, and an entry of 1728 that nobody had connected to a question raised four days later. The value of the check was not in what it found wrong; it was in what it made somebody read again.

  105. 105

    Never stage a directory in a tree other sessions build in

    git add publishes whatever is sitting in that directory, including work you have never seen. In this checkout several Claude sessions build at once, and on 22 September 2026 two commits made here carried other sessions' unstaged files — a kit pin bump, and 51 lines of the estate stylesheet. Both were correct changes. Neither was a choice. Stage files by name, and check before committing. scripts/whose.sh prints the staged set in two halves — this archive's (site/src/data, site/src/pages, scripts, data) and shared ground (site/public, layouts, components, the kit pin, the repository root) — and fails if shared ground is staged without --allow-shared. The general form is worth more than the rule. A guard that only warns is a guard you learn to scroll past; the one that stops you is the one that works. This archive had already written the lesson as prose four commits before it repeated the mistake.

  106. 106

    When an origin keeps turning up, stop reading it as one man's biography

    «ex Cargn.» / «ex Cargnia» / «ex Cargno» — Carnia, the mountain corner of Friuli — is the only origin the Svetvinčenat register ever gives anyone of this surname. For a day this archive read that as a fact about one man: Joannes Baptista de Franceschi, an incomer. Reading forward four more frames turned it into a fact about the parish. Between 1742 and 1745 the same clerk writes «ex Cargno» against seventeen different people: Joannes Baptista Defranceschi (1742, 1743, 1744), Antonij Fiorca ex Cargno standing godfather to a foundling on 9 April 1744, Antonius Valentinus Colovri ex Cargno standing godfather to Pietro Defranceschi's son on 14 February 1745 — and the child is named Valentinus after him — Antonio Fabris ex Cargno on 7 April 1746, Jacobus Calavaris ex Cargna on 22 January 1744, and Antonius Fiasolo ex Cargno in February 1744. A surname plus an origin is a biography. An origin that recurs across unrelated surnames is a migration. Carnic men were at the castle in numbers in the 1740s, they stood at each other's fonts, and the Defranceschi were among them rather than exceptional to them. What it changes for the search. The question stops being «which Carnic parish did this man come from» and becomes «which Carnic parishes fed Svetvinčenat in the 1730s and 1740s» — a question the Antenati registers for the Carnia comuni can be asked directly, and one where the other surnames (Fiorca, Colovri) are as good a handle as the name this archive is named for. Recorded 23 September 2026. 27 September 2026 — reading to the end of the stretch takes it to roughly seventeen people across eleven surnames, 1742 to 1753. Beside the Defranceschi: Fiorasso (Benedictus, Antonius, Joannes), Merlin (Mathias, Nicolaus), Micaij (Joannes Baptista, Nicolai), Serban, Kiacovis, Cavang, Fiorid, Calavaris, Fiorca/Fiasolo, Colovri, Fabris, Bicicardi. They stand at each other's fonts and at the Defranceschi fonts. A colony, and the research question is now which Carnic parishes fed this castle rather than which one a single man came from.

  107. 107

    A directory can be silent and still be somebody's desk

    On 27 September this archive moved the whole estate out of iCloud Drive, and waited for the machine to go quiet before doing it. The wait was for astro, node and npm to fall silent across all fifteen directories, for forty-five continuous seconds. It looked careful. It was not enough, twice over. It never watched git. Repacks fire from gc.auto on git's own schedule, triggered by ordinary commits rather than by anything a session is visibly doing — so there is no process to wait for. Three archives were left holding interrupted tmp_pack files, and one lost 95 objects, all of them binaries: scans and document images. They were recoverable only because they were pushed. And a poll cannot see an editor. The Falco session, about to swap in a verified fresh clone, found that archive's package.json and package-lock.json had been written forty-five seconds earlier — a kit repin and a whole new gate, uncommitted, existing nowhere else. A swap would have destroyed it silently. Nothing was running; somebody was simply typing. The signal is not quiet. It is git status --porcelain plus the mtimes on the manifest, taken twice a minute apart. A directory with no processes in it can still be someone's desk. Two more things learned by doing this one badly. git gc does not clear those stale tmp_pack files — git only prunes temporaries older than a day, so an archive that runs housekeeping still carries them and must remove them by name. And a fresh clone cannot be verified inside the estate: checkpages counts every directory as an archive, and because its rule is «a page in three or more archives is shared», one phantom duplicate can reclassify pages as shared for every archive at once, not merely for the one that made it. The move itself was right — an iCloud-synced git directory had already reverted refs, emptied five object stores, removed 96 tracked files and rolled 35 more back to older, smaller, still-valid versions. The damage was done before anything was moved. But a careful-looking wait that watches the loud processes and not the one holding the lock is the same fault as every other one found this week: the check that was easy to write rather than the one that would have failed.

  108. 108

    A formula that lies can be convicted, but only where the truth is known another way

    This archive has said since September that the Svetvinčenat godparent formula is unreliable about husbands' forenames. It was inferred in 1738 from «Agata uxor Jacobi» and «Jacoba uxor Jacobi» appearing inside the years Anzola was alive — three wives in ten months, at least one of them wrong. But which one was wrong could not be said, because there was nothing independent to check any of them against. The doubt was the whole finding. On 27 September the same register convicted itself. «Pascasia uxor Caspari Defranceschi» stands on 16 December 1751 and again on 3 February 1752. And on 29 April 1753 the register writes «patrini fuerunt, Jacobus Defranceschi, et Pascasia ejus uxor» — husband and wife in one phrase, in one hand. Pascasia also bears Jacobo three children in full parental entries, 1746, 1747 and 1750. Caspar's wife, six times over between 1744 and 1749, is Maria. So the two entries are not doubtful. They are wrong, and they are demonstrably wrong, and the same clerk made the same mistake about the same woman fourteen months apart. The method point is the shape, not the instance. A source that errs can only be shown to err where the truth is recoverable from somewhere else — a parental entry, a joint line, a second series. Where it is not, the honest output is a doubt and not a ruling, which is what 1738 got and should keep. An archive that convicts a source on internal inconsistency alone is guessing which half to believe.

  109. 109

    To ask whether a nil is real, ask the index about the place and not about a name

    A search that returns nothing has two meanings and they are not close together: nobody of that name lived there, or the index does not cover the place. Publishing the first when the truth is the second puts a negative in the archive that is about the catalogue and reads as though it were about the family. The instinct is to test with a common surname, and it is a bad instinct. On 27 September this archive tested eleven Carnia comuni with «Rossi» — which returns nothing anywhere in Carnia, because Rossi is a name of the plains. A control that is absent for real reasons cannot distinguish absence from silence. Carnic surnames — Della Pietra, Puntel, Craighero — did better and still left eleven comuni unanswered, because no three surnames cover a valley. The answer is to stop asking about names. Query the index for the PLACE alone — ?localita=X with no surname — and it answers the only question that matters: does this catalogue hold this comune? Eighteen comuni, one pass, no guessing: fifteen indexed, three absent. Thirteen nils became real negatives and three stayed honestly unknown. The general form: when a nil result is the finding, test the instrument and not the subject.

  110. 110

    Two rows with the same ark are not similar people, they are one record entered twice

    Duplicate detection in a one-name study is usually a matter of judgement: the same name, the same year, the same parish — and no way to tell a repeated entry from a cousin named after the same grandfather. This archive spent weeks treating it that way, and folded names four different ways looking for a better guess. It was the wrong question. A row that came from a FamilySearch index carries the ark of the record it came from. Two rows carrying the SAME ark did not come from two records about two people — they came from ONE record, read twice, by two different passes that spelled the name differently. That is documentary proof of a duplicate and it needs no judgement at all. Of thirty-six suspicious groups, eighteen pairs were settled this way in a single comparison. And the same field settles the opposite case: seven pairs carry two DIFFERENT arks, which proves they rest on two records and must not be merged on a resemblance. The trap that nearly cost three men their pages: grouping by name alone swept «Giovanni De Franceschi 1829» into a single verdict, when the group held a proven ark-duplicate AND a separate Fiume shoemaker. Adjudicate PAIRS, not groups — a group of three can be one duplicate and one distinct person at the same time, and a verdict on the group is wrong for half of it. The general form: before judging whether two records describe one person, check whether they are the same record.

  111. 111

    A check that counts can be satisfied without being answered

    check:sources counts hosts this archive links to and never describes. It cannot tell a description from a sentence of the right shape. Seventy-three hosts stood undescribed, and forty-six of them already had full entries on the research register — so the fastest honest-looking fix was a generator: «this archive has gone to it N times; what it gave is on the register». That passes. It also produces precisely the thing the check exists to prevent — a citation with no account of itself, now with a paragraph attached. The second temptation was worse, because it was accurate. Five of the seventy-three are not sources at all: an image-delivery host, a permalink host, and three URLs that appear only inside the credit field of a Wikimedia Commons record — the attribution chain a public-domain licence carries with it. Writing «Yale University Art Gallery» its own bibliography line would have cleared the count and told the reader something false about where this archive has been. They belong on the entry of the source that carries them, and that is where they went. The general form: when a check counts, ask what it would count as success, and then ask whether that is the thing you wanted. A gate is a floor and never a specification.

  112. 112

    A shared component answers its own question, not necessarily yours

    The notables table asked «is this person linked to this family?» and rendered the answer through a component that grades «how well is this claim evidenced?». Those are different questions and the mismatch was invisible, because the component has a default. Its five levels are documented, probable, inferred, family and disputed, and its alias table folds anything it does not recognise — no and open included — down to «family». So conn: "no" came out as a badge reading «Family», in a column headed «Link to this family», against six people this archive states are not related — Piero della Francesca among them. Two lines above, the page's own dek says a shared patronymic is not a shared ancestor and that saying otherwise is how family myths start. The table had been saying otherwise, in one word, ever since the component was adopted. Nothing was broken and nothing failed. The component is correct for its own question; the gate has no way to know that a five-level grade was being asked a yes-or-no one; and a fallback that always returns a valid-looking answer cannot report that it was never given a valid input. The general form: when you pass your data to something shared, check what it does with the values it does not recognise. A default is the place where a category error goes quiet.

  113. 113

    One field name, three meanings — which is why no total function could be written

    The landing-site session's answer to the «Family» badge was to make an unknown level render «Ungraded»; D'Arcy's was better — they made their grading function TOTAL, so no unknown exists to render. A total function does beat a loud default where the set is closed. Here it is not, and the reason is the finding. This archive uses conf in four data files and it means three different things. In families.json and explorer.json it grades a claim — doc, inf, lore, probable, strong. In gists.json it also takes neg, which is not a grade at all but the archive stating a thing is NOT so: «Carlo's own published history never makes the Carnia claim». In ancestors.json it also takes living, which is a person's status. A grade, a negation and a person marker, under one key. No honest total function can be written over that domain, because the domain is not one domain. Until the field is split, a loud default is the correct answer and «Ungraded» is the right thing for it to say. Three fallbacks of this archive's own were pointing the wrong way. The notables column resolved unknown to «Family» and was publishing it — six unrelated people, Piero della Francesca among them. The destinations ternary resolved anything-not-doc-or-inf to «lore», so a neg would have been badged «Family»: not a mis-grade but the opposite of the finding. The Giornaletto map knew only doc and inf and fell back to «Inferred». And the tree's fallback — unreachable, because its three values are all covered — pointed at «Documented», the strongest grade in the set. The rule, which the kit had already written in one file and broken in another: AncChart resolves an unknown confidence to neutral grey; Evidence resolved one to «Family». Grey asserts nothing. «Family» asserts kinship. Where a fallback cannot be avoided it must land on something that makes no claim — and the direction of a default matters more than its existence, because a default is never exercised by the cases anyone thought about.

  114. 114

    A line beginning «ok» does not get read

    The landing-site session found D'Arcy running on a kit pin nobody had noticed had changed — and the build had printed the correct pin three times that day. The instrument was not silent. It was unread. This gate prints thirteen «ok» lines and, under them, nine steady numbers: 55 living, 595 people across the evidence files, 425 attested name cells, 136 of 155 sources reachable. Every one is restated identically each build, so every one is invisible. If a living person's flag were dropped the count would fall from 55 to 54 and the gate would still say «ok» — a silent regression in the one number in this archive that must never be wrong. So the numbers are written to data/gate-witness.json and COMMITTED, and the check speaks only when one MOVES. Committing does two things printing cannot: a number that shifts inside an unrelated commit shows up as a diff in a file whose only subject is these numbers, and the file's history becomes the history of the archive's shape. It does not fail on movement — nearly every number moves for good reasons, and a gate that cried at every change would be switched off within a day. It fails only when it cannot read the archive, because a witness reporting «no change» after failing to look is the fault it exists to catch. And wiring it in reproduced that fault one level up. The gate's run() helper prints a check's output only when the check FAILS. Passed through it, the witness was silent in precisely the case it was written for: a test movement of 99 → 59 printed «ok witness» and not one word more. The harness was hiding the only line meant to be read. The witness is now run outside the wrapper. Two independent counts agreeing is worth the duplication: this file measures 59 living rows under 55 names, reading the data itself, and the kit's own harvest — different code, different author — reports 55. A number is only confirmed when something that did not compute it agrees.

  115. 115

    A count cannot see a substitution

    Between a pin and a witness there is a third kind of value, and the D'Arcy session found it: a DECISION. A pin has one correct value, so speaking on any move is right. A count has no correct value, only a history, so failing on movement would be a gate switched off inside a day. A decision is neither — it is a judgement made once, and changing it should require a deliberate act. The one this archive needed is the one no number could have given. Person ids are minted once and never derived, because a derived id moves when a birth year is corrected and a moved id is a dead URL. check-witness.py counts them — 1,446 — and that count is exactly the same whether or not one of them now points at a different human being. Delete a person, mint a new one, and the number does not flinch. A count cannot see a substitution, and no other figure in this archive can either. So the pid mapping is declared rather than counted: 1,446 ids against the person each one addresses. Adding is free. Changing or removing refuses, and the diff names the person whose address moved. Two scalars are declared beside it — the kit pin, because D'Arcy ran a day on a pin carried by a commit about something else; and the living policy named-bare, because every other check reads that flag rather than deciding it, so weakening it would quietly widen what may publish while all thirteen gates still said «ok». All five refusals were provoked on purpose before the thing was wired in — pin moved, policy weakened, a pid reused for another person, a published pid vanished, a new pid added. The fifth must pass, and did. Watching a check refuse is the only evidence it can: a gate that has never been shown a bad input is a gate with no demonstrated behaviour, which is how «0 living» and «357 of 357» were both believed.

  116. 116

    A year copied because two rows share a name is not evidence

    Twenty-five rows in this archive were given their dates by name-matching against other rows in the same archive, recorded honestly as yfrom: «a dated entry already in this project's own burials data» — and then printed on person pages as though they were read off a register. Five women called Maria Defranceschi all carried «1757–1757». Browachio, Buman, Contossich, Covaz, Dobrez — five different married surnames, one pair of dates, taken from a single Rijeka burial. That is impossible on its face and nobody looked, because each row on its own page looked like an ordinary dated person. Browachio's own record is her daughter's birth at Termeno, Bolzano, in 1907. Contossich's is her marriage in 1788. Julius, published as born in 1833, appears in 1829 as the father at his daughter's baptism. The tell was visible without opening a single record: identical dates across rows distinguished only by a married surname. A married surname is proof the woman lived to marry, and every one of those five was published as having died in infancy. Two further things this cost. A row may not belong to the family at all — «Maria Defranceschi (Covaz)» rests on the baptism of Mariam Covaz, both parents Covaz, with the name Defranceschi nowhere in it. And a row may sit on a record for a different person in a different country — «Giacomo Defranceschi, d. 2012, Broken Hill» rests on the 1909 baptism of Germano Defranceschi at Cloz, Trento. The general form: a field recording where a value came from is not the same as a field recording that the value is true. yfrom was honest about the borrowing and the page was not, and an archive that prints a provenance note beside a fabricated year has documented its own error without noticing it.

  117. 117

    Thirty-five of a hundred and seventy hits were one dead painter's name in a sale list

    Trove's pre-1940 results for this name are dominated by one heading — «Advertising» — thirty-five times, in the Argus, the Age, the Sydney Morning Herald and the Mercury, from 1879 to 1921. A count alone would read as a family trading in Melbourne for forty years. They are auction catalogues. Every one lists «M. DE FRANCESCHI» among a column of painters — Cattermole, Kilburne, Ten Kate, Streeton, Chevalier — because a Roman painter's canvases were being sold at Gemmell, Tuckett & Co. Mariano de Franceschi, born 1849, is already on this archive's own notables page, and thirty-five of its Australian «hits» are his signature in a sale list. This is the ANNO street-name lesson again and it did not announce itself: there the name was a Pola street and the hits were classified ads; here it is a painter and the hits are auction columns. In both, the name is in the paper and the person is not in the country. What the remaining pre-1940 articles actually hold, once the painter is subtracted: a Franceski household at Lismore — a doctor, a Miss Franceski, Amelia the music teacher who became Mrs Sullivan, and Caesar of North Lismore showing persimmons and olives at the Sydney Royal Show; a G. Franceski racing bicycles at Beverley, Western Australia; Annie Amanda Franceski Kean, divorced at Maryborough in 1901 and carrying the name in the position a maiden surname survives in; and Rev. Joseph de Franceschi, C.M., a Vincentian in Rio de Janeiro in 1912 and Regional Director for Brazil in 1930. Ten real people, under thirty-five advertisements for a dead man's paintings. The general form: a heading that repeats is a finding about the newspaper, not about the family, and the only way to tell which is to read one.

  118. 118

    The terms a source was granted on may live in another archive entirely

    A Trove API key arrived on 27 September and this archive used it hard and well within the hour — 170 articles harvested, a spelling trap found, a family put on a pin. It also broke the written promise the key had been issued on, because that promise was in a different repository and nobody here had read it. David answered four questions from the National Library on 20 September to get the key. One answer says: «No full text of any article would be retrieved. The request is metadata only — newspaper and gazette titles, their place coverage and their date ranges.» This archive searched article records, published 53 article snippets to a public remote, and fetched the text of about seventy articles from the Library's own website. The D'Arcy session found it, said so to this archive and to David in the same breath, touched nothing, and was right on every point — including the distinction that saves the work: a heading, a date, a page and a URL are a citation; a snippet is content. The first is defensible and is the more useful half. The general form, and it is not about Trove. A credential carries terms, and the terms are not always where the credential is. A key handed over in a chat window arrives with no conditions attached to it; the conditions were agreed somewhere else, by someone else, possibly for a different archive in the same estate. Before using a granted credential, find what was promised to get it — and if it cannot be found, ask, because «I was given a key» is not the same as «I was given permission». The second lesson is smaller and sharper: a repository is a publication. The snippets were not shown on any page; they sat in a data file. They were public the moment they were pushed.

  119. 119

    A hundred of a hundred and twenty-eight, quoted as all of them

    The best instrument finding of the day nearly went into a letter to a national library on a measurement that did not support it. Trove returns 13 newspaper articles for «Defranceschi» and 128 for «De Franceschi», and the striking part was that they overlap by three — the two spellings are nearly disjoint corpora, not one corpus the index folds together. The overlap was measured by pulling the 13 fused ids and the first 100 spaced ids and intersecting them. One hundred of one hundred and twenty-eight. The other twenty-eight were never compared, so the true overlap could have been anything from 3 to 13, and «they overlap by three» was a statement about the page size. It survived: the complete harvest shows «De Franceschi» contributed 125 records not already held, so exactly three were, and the id-level test places all three in the fused set. Two derivations, one answer — which is the only reason it is now safe to state. The tell was available without any recheck: a default page of 100 against a total of 128. Whenever a comparison is made against «the results», ask how many results were actually in hand — a paged API hands you a page and lets you call it the set. And the reason it got caught is worth more than the number: it was going into a document with someone else's name on it, sent to an institution that could withdraw a credential from seven archives. A figure bound for somewhere consequential gets a second derivation; the same figure bound for a page here had already had one and passed. The standard should not depend on the destination, and today it did.

  120. 120

    We do not test tools, we test tools while the last failure is still stinging

    The tool-you-do-not-run line is too comfortable, and the D'Arcy session found the sharper version of it. Today this archive built a witness that speaks only when a number moves, wired it through a wrapper that swallows output on success, and it went silent in exactly the case it was written for — four minutes after the docstring explaining why unread output is the problem. Four hours later it built check-decisions.py and provoked all five of its refusals on purpose before wiring it in: pin moved, policy weakened, a pid reused, a published pid vanished, a new pid added. It caught two real faults inside the hour. Same session, same day, same hands. The difference was not skill and it was not a rule. It was having been burned recently enough to bother. D'Arcy then applied that to their own work and found the shape exactly: their decisions check had four states tested and two untested, and the two untested were the two written last. They stopped testing at the point they stopped feeling burned, and the boundary fell in the middle of one file. So the honest statement is not «run your tools». It is that testing is powered by a recent failure, the charge runs down, and the interval is short — measured here in hours, and visible as a boundary inside a single file. Provoking every refusal before wiring a check in is the nearest thing to a fix, and it only works while somebody still remembers why it is the rule. Which is the argument for the method page existing at all: a lesson written down outlasts the sting that produced it, and is the only part of it that does.

  121. 121

    grep matched the failure and && carried on

    A red gate was committed and pushed today, and the reason is four characters long. The habit all day has been ./scripts/gate-isolated.sh | grep -E "ALL GREEN|FAIL|witness" && git commit. grep exits 0 when it finds a match, and it found FAIL. So the failure printed on screen, grep reported success, && did what it was told, and the commit went out on a gate that had just refused the change. The gate was right and the finding was real: a man born in 1932 had been given a printed birth year; he would be 94, no death is recorded, and this archive gives a person who may be living a name and a town and nothing else. Fixed, and the date now sits in his note as what the document says rather than as what this archive asserts about him. What makes this worth writing down is the shape, not the typo. The whole day's lesson has been that a check which cannot speak is no check — and here the check spoke, clearly, in the terminal, and the pipeline read its own output as approval. An instrument that reports and a gate that gates are different things, and piping one into a boolean turns the second into the first. The fix is to test the SCRIPT's exit status and never a filter's: run the gate, capture $?, and let the filter only decide what gets printed. A command that decides whether to proceed must be the command that did the work.

  122. 122

    The same ark proves one record; two arks do not prove two

    This morning's rule closed eighteen duplicate questions in a single comparison: two rows carrying the SAME FamilySearch ark came from one record read twice. It was stated as working in both directions — same ark, one record; different arks, two records — and the second half is false. Mariam de Franceschi has two arks and one baptism. 1:1:QLYD-H7YJ sits in «Croatia, Delnice Deanery Catholic Church Books, 1571–1926» and 1:1:QKMD-LKFC in «Croatia, Church Books, 1516–1994», and both are the baptism of 9 September 1632 at Rijeka. Two collections overlap on one parish, so one event carries two identifiers. The corrected rule: an identifier proves identity, never difference. A shared ark is proof of one record; separate arks are the absence of that proof and nothing more — which is why the seven «different arks» pairs had to be opened one at a time, and why doing so split them four to three rather than seven to nothing. What settled all seven was not the ark at all. It was the parents. Two Elisabettas at Fiume in 1810 look identical until one has a father called Franco and the other parents called Anna and Andrea. Bortolo's burial and Bortolo's marriage look like two men until both name Gio Batta. In a parish where a dozen households share a surname, the discriminating field is the generation above, and an index row that omits it cannot settle anything on its own.*

  123. 123

    Having a name for a mistake is not protection against it

    On 27 September this archive closed an item whose subject was dates copied onto the wrong person, and catalogued the shapes the error takes. One of them was named «the right person at the wrong century» — Anna Maria really is a Defranceschi baptised at Fiume, in 1801 and not 1844; Pietro in 1803 and not 1884. The closing paragraph of that same item then attached both of them to Valentino × Helena, whose children stop in 1757. Right family, right port, wrong generation by two — written inside a commit describing that exact error in other people's work. What caught it was not vigilance but arithmetic done later: Helena's children run 1737–1757 and a woman does not bear a child in 1801, and Pietro's act names his mother as Ursula. The real household is Valentinus, born 1775/76, who married Ursula de Berzoni at Fiume on 6 October 1793. The general form: a taxonomy of errors reads like a defence and is not one. Naming a failure mode makes it easier to describe afterwards, not harder to commit — the recognition happens in the write-up and the mistake happens in the reasoning, and they are different passes. The only thing that actually caught it was checking a date against a lifespan, which is the cheapest test in genealogy and is not performed by knowing that it exists.

  124. 124

    Record the film and the frame, never only the ark

    A long register sweep pinned its working state in four scratchpad files — hundreds of pre-resolved image arks for Svetvinčenat's baptism, index and marriage volumes. The scratchpad is session-local. It was cleared between sessions and every one of them is gone. What survived is what had been written into the archive itself: the film number, the frame numbers, the date anchors, and which frames had already been read. From those the arks can be rebuilt in three calls; from the arks alone, nothing could have been rebuilt at all — an ark is an opaque token that says neither which film it belongs to nor which frame. The rebuild also documented a route that is three hops and guessable at none of them: dgs%3A_ → apid, then navigate (never fetch — cross-origin returns 401) to sg30p0…//dist.jpg, which redirects to a signed S3 URL valid one hour that curl will serve at full resolution, where curl against FamilySearch itself is refused outright. The general form: cache the derived, record the derivable. A note that says «arks are in the scratchpad» is a note that expires silently; a note that says «film 005497885, frames 115–162, read 115–123 and 125–127» is one that can be resumed from in any session, by anyone, after any cache is lost.

  125. 125

    A hand is only legible against itself

    This archive read one word wrong for five days, published a conclusion on it, and could not see the error by looking harder at the word. The mother of a child baptised in 1743 was read as «Francisca». She is «Pascasia». Magnifying the word from 2.4× to 8× did not settle it — at every scale it was a plausible squiggle, and the reader kept supplying the name already in mind, because a Francisca was in that parish and Pascasia was not yet known to be. What settled it was refusing to read the word alone. The same clerk had written both candidate names elsewhere in the same volume: his «Franciscus» on the facing leaf, eight weeks later, and his «Pascasia» nine images on, in a baptism this archive had already transcribed correctly. Set at one magnification side by side, the disputed word is the second stroke for stroke and shares two letters with the first. The rule that follows. Before a doubtful name is written down, find the same scribe writing both the name you think it is and the name you fear it is, elsewhere in the same book, and put all three at one magnification. A letterform has no meaning in isolation; it only means something against the same pen's other attempts at the same letter. The same session made the inverse error and caught it the same way: two faint godmother lines were read as a repeat of the word freshly in mind, and at 7× with contrast they were the two different names already published. Three false readings in one day, all from a pattern being carried from the frame before, all killed by a control.

  126. 126

    The archive was keeping its own triage list, in its prose

    Twenty-one published readings rested on one film. Re-reading them all at magnification is days of work, so which first? The answer was already written down. Seventeen of the notes say «magnified» or «read letter by letter». Four do not. Those four were re-read first. The one that had never claimed magnification carried two errors. The three that claimed it were checked as controls and all three held. A small sample and not a guarantee — but a defensible order to work in, and far cheaper than twenty-one blind re-reads. An archive that records how carefully each claim was made can later sort its own claims by how much they deserve to be doubted. That is only true if the note is honest when the reading was quick, which is the harder half of the habit.

  127. 127

    Do not read social rank off an abbreviation

    A Gasparo de Franceschi is «M.ro» — Maestro, a master craftsman — in 1762, and «D.no» — Domino — twice in 1766. It is tempting to read a rise in the world. The scribe changed in between. Arciprete Simon Zadro's loose Italian gives way to D. Mattio Adamich, who styles very nearly everyone «D.no». The abbreviation is a habit of the pen, not a promotion. What actually identified the man was not a style of address but a patronymic: «Gaspare de Franceschi q.m Ant.o ex hoc Castro», which excluded two of three candidates outright because both were sons of a Jacobo, named as such in their own baptisms. One word of kinship outranks any amount of inference from titles.

  128. 128

    A spelling list is an instrument, and it belongs in the log with its counts

    This archive searched a newspaper portal, wrote «zero in every spelling», and was wrong twice over. «Every spelling» meant two. The two not tried were the two that mattered: De Franceschi spaced, which reaches a whole journal the unspaced form does not, and Defrančeski in Croatian orthography, which is how a Croatian paper actually prints the name. One of them found the moment Carlo de Franceschi was told to become a historian. The other found a man at Ližnjan nobody knew existed. And one spelling had to be thrown away. Franceski returns 1332 results because Croatian OCR renders «francuski» — «French» close enough to match. A count that large is a language, not a family, and a sweep that banked it would have drowned in adjectives. The rule: record the terms and their counts, every time, in the search log — never in prose as «every spelling». A nil you cannot audit is not a finding, it is a stopping place, and it tells the next reader to stop too.

  129. 129

    When the priest changes, the surname changes — and the index loses you

    On 29 April 1782 this family stops being «Defranceschi» and starts being «Franceschi», and nothing happened to the family. The parish of Svetvinčenat changed archpriest. D. Antonio Massalini had written the name as one word for twenty years; D. Paolo Cossaich writes it as two, without the «De». Six weeks later he writes «Capo Antonio de Franceschi» — «de» restored, spaced. Three spellings of one household inside three months, and the household did not move, marry out or change anything about itself. ⚠ This is where a name-indexed search silently fails. A reader searching an index for «Defranceschi» in the Svetvinčenat marriages finds the family up to 1782 and then loses it — not because the entries stop but because the clerk's hand changed. The gap would look exactly like a family leaving the parish. So: a surname is a property of the scribe, not only of the person. Before concluding a family left a place, establish who was writing the book on the date the trail stops — and read forward past it in the images rather than the index. This archive found it only because it was reading the film frame by frame. (The same lesson from the other end: a spelling list is an instrument, and the two spellings not tried are always the two that matter.)

  130. 130

    A parish register records where the couple were, not where the parish is

    On 13 March 1783 a Svetvinčenat couple were married at Parenzo, and the act is in the Svetvinčenat book. «…furono interrogati da me sottoscritto nella Chiesa della B.V. degli Angioli di Parenzo» — Vittorio de Franceschi and Eufemia Bergamo, dispensed from the three banns and from the closed season of Lent, with witnesses from Parenzo and Ližnjan and none from the castle. (doc.) Two things follow, and both are easy to get wrong. · A register of parish A can be the only record of an event in parish B. Searching Poreč's own books for this marriage would find nothing; it is filed at Svetvinčenat because that is where the couple belonged, not where they stood. · The converse trap is worse: do not read the parish as the place. An archive that maps every act to its register's parish will put this couple at Svetvinčenat on a day they were thirty kilometres away. The register usually says so plainly, in the clause nobody reads — the one between the dispensation and the witnesses, naming the church. It is worth reading every time, and this archive now does.

  131. 131

    A name, a year and a camp are not an identification

    On 29 September this archive went looking for a man who died at Dachau, and Arolsen offered one who matched on everything it had asked about. «DEFRANCESCHI, ANTONIO — 31 January 1909 — prisoner 8165.» The surname, the birth year, the camp system. Three fields, all agreeing, and all of them fields this archive had chosen to search on. He was a different man. The record was an ITS cross-reference card, pointing to a file under DEFRANCESCO — born at Moncalvo in Piedmont, died at Dachau on 7 February 1945. The man being looked for was born at Gologorica in Istria and died on 15 July 1944. Two rules come out of it. · Test on a field you did not search on. Surname, birth year and camp were the query; birthplace and date of death were not, and they are what settled it. A match that agrees only on what you asked is not evidence — it is your own question handed back to you. · An index entry is not a document. The thing that matched was an archive's name-authority card, created to link two spellings. Following it to the file it pointed at took one click and reversed the answer. Read the document the index stands for before believing the index. ⚠ And the near-miss had a hook in it. The Arolsen man was committed by Sipo Trieste and recorded as «Italian, Yugoslavian» — Adriatic markers that made him feel right. A detail that fits the story is the most expensive kind of coincidence, because it buys the rest of the match. The birthplace was written four times; it governed.

  132. 132

    Grep the archive BEFORE the source, not after

    6 October 2026. Asked whether Gračišće could be reached on FamilySearch, this session went and checked — and the archive had answered it on 15 September, in a row that walked all 3,488 collections, opened 44, and tested «Austria, Catholic Church Records» and «Hungary, Civil Registration» by name against a control. Stronger work than the re-run, three weeks old, sitting in the same file the re-run was about to be written into. And the second row written that morning was worse: it announced a FamilySearch waypoint for Krbune as a find. The waypoint was already in six files — the worklist had carried it since 1 October. The cost is not the wasted hour. It is that a re-run written up as a discovery makes the archive look like it is finding things it already knew, and the next person cannot tell which rows are new ground. So: grep searched.json, sources.json and worklist.json for the source AND the place BEFORE opening anything — not before publishing, which is too late to save the work. A re-run is still worth writing down — this one confirmed the September negative from a second dataset and added two parishes to the absent list — but it must be labelled a verification in its first sentence. Verification is worth publishing; it is not discovery.

  133. 133

    The roster is where findings go to be forgotten

    6 October 2026. Walking the death register turned up two Defranceschi the archive had already documented — and in both cases the roster row had not been told. · Maximilianus, dead at four in 1817: gologorica.json carried the death that morning; the roster row still read «no register has been read for this person here» with d: null. · Josephus, dead 1838: the line data carried «born 4 March 1765», documented, and explicitly noted it as a correction of «about 1763» — and the roster row still said 1763, with an empty note. Neither was caught by a check. check-propagation greps for retired wording; these were not wrong sentences but missing ones, and a missing sentence matches no pattern. Both surfaced only because the walk re-opened the page and the roster was then read back against it. So: when a finding is written into a topic file, open the person's roster row in the same breath and look at it. A person page is the address a reader is sent to. If the finding is on the line page and not on the row, every link into that person still shows the old state — and the archive looks, from the one angle a reader actually uses, as though the work was never done. Both rows needed re-declaration in data/decisions.json, and the gate refused the first commit until it got one, which is the system working.

  134. 134

    Look at the frame either side before calling a page read

    This reel shoots some openings twice, and both pairs found so far had a DEFECTIVE first exposure. · Pages 27–28 (1805): M01069241 has a loose slip of paper lying across the page, hiding seven entries; M01069242 has it lifted away. · Pages 81–82 (1845–46): M01069269 is cropped at the left edge and the month column is gone — seven deaths dated «22, 4, 26, 8, 28, 12, 26» with no month; M01069270 is framed wider and gives Martii, Augusti, 8bris, 9bris, Decembris. Neither was detectable from the frame itself. The slip looks like part of the page; the crop looks like the page simply starting there. Two automated attempts to find duplicates had already failed — ink coverage and pixel difference both scored a known duplicate inside the range of ordinary consecutive pages. So the rule is manual and cheap: before accepting a page as read, open the frame on either side of it. Twice now that has been the difference between a page recorded as read and a page actually read. ⚠ It also means the coverage figure overstates: it counts frames cited, and a duplicate pair is one opening counted twice.

  135. 135

    A section key is an id too — check before you mint it

    6 October 2026. A new finding was written into gologorica.json under the key duplicates. The key was already taken, by the 1836 collation certificate — and json.dump silently replaced it. Six paragraphs and a plate, gone, on a finding that had itself only been recovered after the crop-truncation error. Nothing in the gate could see it. The JSON stayed valid, the site built, the links resolved, and check-story counted the same number of findings — it does not know which. It surfaced only because the next insert asserted its anchor occurred exactly once and that assertion failed. This archive's rule that person ids are minted once and frozen applies to section keys as well. They are published addresses: a reader scrolling the line page meets them in order, and a clobbered one is a deleted page with no 404 to show for it. So: assert key not in data before writing a new block, and when a key must be reused, diff the old value first.

  136. 136

    A sentence about how a register NAMES people is a claim about every page of it

    6 October 2026. This archive published that a Defranceschi had married a Deprato — joining the two families it had spent weeks separating — on the premise that «these registers enter a married woman under her birth surname». The premise was backwards. They use the husband's. The claim stood two hours. What killed it was eight pages further on in the same book: «Lambertina Defranceschi, civis», who was born Peschle. And the premise's own star witness said so all along — «Catharina DEPRATO nata Rovisi … uxor Joh: Baptista» — Deprato is the husband's family, Rovisi is hers. That entry had been cited as evidence for the opposite, because it was read for its surnames and not for its grammar.* This archive has now made this mistake twice in one week. The first was a sentence about when the register stops writing Latin — true of two folios, false by folio 98. Both are the same shape: a generalisation about a book's HABITS, drawn from a handful of pages, and published as if it had been tested across the volume. So the rule. Before a claim of the form «this register always does X», find three instances where the answer is known from outside the register, and say which they are. Here the test was cheap and would have worked: two women in this very book have maiden names recorded elsewhere, and both are entered under their husbands'. ⚠ Note what did not catch it: nothing in the gate can test a premise about a register's habits. It was caught by continuing to walk.

  137. 137

    A wrong decade with the right day is a typo, not a namesake

    6 October 2026. Two rows in this archive carried a death year decades out, and both had been diagnosed the same way: «a gap this wide means one side is describing a different person's death — most often a namesake in the same parish». Neither was a namesake. Both were transcription slips, and the tell was sitting in the data all along.

    this archive hadthe register gives
    Clementina10 March 184010 March 1870
    Josephus22 December 185722 December 1878
    The day and the month were right in both. A confusion of two people scatters all three fields; a slip that preserves «10 March» and «22 December» and moves only the decade is a keying error. And in both the register's age closed on the declared birth to the month, which a different person's death would not do. So, before reaching for «two people of the same name»: check whether the day and month agree. If they do, the cheap explanation is a mis-keyed year, and the age at death will usually settle it against the known birth — no second person required. ⚠ Both rows had also written down the right remedy — «this needs the burial register, not a judgement» — and it worked exactly as written, three weeks and two weeks later respectively. The lesson there is to work the worklist down: the wrong years were live on the site the whole time.

  138. 138

    A house number is an address, not a household

    6 October 2026. The Gologorica death book's index gives at least six house numbers TWO households each — house 6 is both «Deprato Leonardus» and «Sestan Vincent»; house 9 is «Berdar» and «Peer»; and the same at 48, 55, 84 and 98. This archive had been using house numbers as if they identified families — «casa 31», «casa 36», «house 7» — and had raised a worklist item and published a claim it then withdrew over a Defranceschi dying in what it called «the Deprato house». The house was also a Sestan house. Three families at one address across seventy years, and house 28 held Palmano, Peer and Flegar across eighty. So: a house number locates a BUILDING at a MOMENT. To use one as evidence about a family it needs a date and, because the village was renumbered about 1806, a statement of which numbering it is in. Without both it is not a fact about anybody. ⚠ The sharpest case: the archive's «casa 31», from the 1780s baptisms, is old numbering — and the index's «Rabar alias Tomelincich N. 31» is new. Same number, different buildings, and nothing may be carried between them.

  139. 139

    Ask whether the register says anything about itself before reporting a nil from it

    9 October 2026. The Gračišće baptism book of 1667–1745 tells the reader, on folio 134, that it is incomplete. At the visitation of 18 July 1732 the Vicar General wrote into the register that baptisms had been «omissa per negligentiam» — omitted through negligence — and ordered the ministers to recover them and write them in «nulla interposita mora». The decree is transcribed and plated in full. This archive had read sixty leaves of that book toward a nil without ever asking whether the book had an opinion about its own completeness. So, before a nil is reported from any volume: read the front matter, the flyleaves, the blank-looking leaves and anything in a hand that is not the usual one. Visitation decrees, a new priest's note on taking over, a later hand's «nastavlja se», an index that does not match the entries — these are the register testifying about itself, and they are doc* of the strongest kind, because they come from the authority that could see the original. A nil from a book certified incomplete is still worth publishing. It is just a different sentence: not «no Defranceschi was baptised here», but «no Defranceschi baptism was written into this book» — and the second is the only one the evidence will carry. ⚠ It also qualifies the inference built on top of the nil. The direct-line page reasons from the absence of the surname as a parent to the family not having lived at Gračišće. That reasoning survives — five occurrences and no residence across seventy-eight years is a real pattern, and the 1826 census says the same thing from the other side — but it now has to be stated as a pattern in the record rather than a fact about the town.

  140. 140

    A thing catalogued is not a thing examined — grep the source's own title card, not only the surname

    9 October 2026. This archive announced the discovery of two confirmation rolls it had catalogued nine days earlier — the film's title card says «MATIČNA KNJIGA KRIZMANIH 1690-1694», and the frame map had carried it since 30 September. The existing rule is to grep before claiming a discovery: grep sources, searched and the roster for the source and the name. That rule would not have caught this, because the thing being claimed was not a person and not a document — it was a part of a volume, and the volume was already listed under its own shelfmark. So the rule gains a clause. Before writing that any part of a source is unread, unexamined, unlisted or newly found, grep for: 1. the frame or page range, which this archive records in frame maps and reel tables; 2. the source's own title card or shelfmark — «SIGNATURA 3.1», «ZM34K-215», «MKR», «MKK», «KRIZMANIH»; 3. the native-language name of the record type, because a catalogue written in Croatian will not match an English word: «krizmani» does not look like «confirmations», and that is exactly how nine days passed. The distinction that makes this worth its own rule: the archive's six earlier self-duplications were things it had found and forgotten. This was a thing it had catalogued and never opened. A catalogue entry is the easiest place in the world not to look, because reading it feels like knowing it — and an archive that files well will make this mistake more often than one that files badly, not less. The finding itself survived intact: the rolls had genuinely never been read, and reading them produced a real nil. What was false was the novelty, not the evidence — which is the usual shape of this error and the reason it is worth publishing rather than quietly rewording.

  141. 141

    Read every column of a ruled register, not the one your question names

    9 October 2026. This archive read the Pater column of thirty-six frames of the Gračišće baptism register, found no Defranceschi, and published that the family was «not established at Gračišće in the eighteenth century». The Patrini column of the same frames holds about twenty of them. Correction published. ⚠ The worst part is that the archive had already written the warning down. Its own search record says: «the father column was read … a Defranceschi could stand as a mother's maiden name or a godparent … «None seen in twelve frames» is the claim; «none exists» is not». A correctly stated limit is not a closed gap. It sat for two days while the conclusion built on it spread into four files and an errand. So two rules, and the second is the one that was missing. 1. A ruled register is a set of columns, and a question phrased «was he living here?» names only one of them. The surname can be in Pater, Mater (as olim/nata), Patrini, Conditio — and in this book it was in the one nobody asked about. Sweep the whole row. 2. ⭐ When a limit is written into the log, raise it as a row in the same breath. A «⚠ Limits:» paragraph is a note to a reader who may never come; a worklist row is a note to somebody who will. This archive's log is full of honestly stated limits, and that honesty is worth nothing until each one becomes a task. ⭐ And the payoff for closing it was not a tidier nil — it was a better fact. The father-column nil still stands. Set beside the godparent column it now says something far stranger: the Defranceschi were at Gračišće as cives from 1791 to 1808 and had not one child baptised there in eighteen years. Present, wanted at the font, not breeding in the parish. An absence became a household.

  142. 142

    Never write a /who/ slug from a name — link /person/<pid>/, which always exists

    9 October 2026. The gate failed with «no such page» for /who/anna-de-franceschi-nobilis-pisinensis/ and /who/vincenca-defranceschi/ — two slugs composed out of the people's names while writing the prose around them. This is now the fifth slug invented and caught by the gate in one session; the others were /library/, /registers/, /sovereignty/ and /gazetteer/, whose real names are /the-library/, /parish-books/, /timeline/ and /places/. The rule, because the failure is always the same shape: a URL is a fact about the site, not a guess from a name. For a person, there is one form that cannot be wrong: /person//. It is generated for every row in the roster, by pid, so the moment a person exists the page exists. /who// is a different thing — a name index that gathers everyone sharing a name, built from each row's own who field, which a new row does not have unless it is given one. Writing a /who/ slug for a brand-new person asks for a page nothing has built. So: link /person// for an individual; link /who// only by copying a who value that is already in the roster; and for any other page, check the file list rather than reasoning from the page's title. ⚠ The same failure also tripped the kit check in the same run, which validates links too — so one invented slug reports as two red lines and looks like two problems.

  143. 143

    A correction is a claim. Verify it as hard as the thing it corrects — harder, because it feels careful

    9 October 2026. This archive published a correction today, and the correction was wrong. A fast pass re-read a godmother as «Catharina Defranceschi» where the first pass had «Theresia», announced the fix, and built a finding on top of it — a second woman of the name crossing between two parishes. Re-cropped at twenty times with the mother's cell alongside for alignment, the word is «Theresia». The original reading was right all along. In the same pass four entries were re-dated to the wrong year, and an apparent «disorder» in the register was announced that turned out to be a misread page header. ⚠ EVERY EVIDENCE RULE IN THIS ARCHIVE WAS WRITTEN FOR FIRST READINGS. A hand is only legible against itself. Never read rank off an abbreviation without a second construction. Crop past the cell, not to it. Assert the new text is present after writing. None of them says anything about the second reading, and the second reading is where this archive has now been wrong twice in one day. The rule, and the reason it is not obvious: > A correction is a claim like any other. It needs the same crop, the same magnification, the same second construction, the same doc. It needs them more, because a correction arrives already wearing the clothes of care — it is the act of a session that is paying attention, and that feeling substitutes for the work. In practice, before publishing any correction of a reading: 1. Crop the disputed word again, at the magnification the original reading did not have, with an adjacent cell in frame for alignment. 2. Say which reading the evidence supports and what would change your mind. «The word is X» is weaker than «the word is X, because the ascender at position 4 is crossed, and Y has no letter there». 3. If the correction creates a new person, a new place or a new link — stop and verify once more. A correction that generates a finding is the most dangerous kind, because the finding makes it attractive. 4. Prefer «this reading is not settled» to a confident swap. A negative or an open question costs the archive nothing; a confident wrong correction costs it a published claim, the claim built on it, and the correction of the correction.

  144. 144

    Check the closing sentence against the search log — it is the least careful line and the most quotable

    9 October 2026. Three published errors in one day, and all three were the same shape. 1. A correction that was itself a misreading — «Catharina» for «Theresia», made at speed because correcting feels like the careful act. 2. Confirmation rolls announced as something «nobody had counted» that this archive had catalogued from the film's own title card nine days earlier. 3. «Baptising their children somewhere else, and the somewhere else is Gologorica» — asserted about a book whose search row, four files away, says «No Defranceschi baptism between 1799 and 1806». ⚠ None of them was in the evidence. Every one was in the sentence that ties the finding off. The body of a finding gets the crops, the magnification, the second construction, the doc tag. Then comes the closing line — the one that says what it all means, the one a reader will quote — and it is written from momentum, out of what the archive «obviously» holds, at the end of an hour's work when the hard part feels done. > It is also the only line most readers will carry away. So, before publishing any finding, take its last sentence on its own and ask of it the three questions the body already answered: 1. Which file and row says this? Not «the archive holds» — which search key, which frame? 2. Is it doc, inf or memory? If it names another source as agreeing, open that source. 3. Would it survive if the reader checked only this sentence? A finding is told when a reader reads it — and the closing line is what they read. ⚠ The pattern is not carelessness about evidence. It is carefulness that stops one sentence early, and it will recur unless the last line is treated as a claim rather than a summary.

  145. 145

    A told finding is not a drawn conclusion — re-read your own pages when a new question arrives

    9 October 2026. This archive spent a day establishing that the Defranceschi baptised no children anywhere for twelve years, listed three possible reasons, and then found the answer sitting on its own page, published five days earlier. «House 36, in eighteen months» was written on 6 October. It has the baby dead at six months in July 1791, the unmarried aunt dead of «febris putrida» in April 1792, the twenty-six-year-old wife dead of apoplexy four weeks after her — and the sentence «He did not remarry. He died a widower twenty-one years later.» Everything needed to answer a question nobody had yet asked. ⚠ This is not the archive's usual failure and it should not be filed as one. The standing rule is that a finding is done when it is TOLD, not when it is logged — and this finding was told, in full, on the right page, with its plate and its sources. What was not done was to draw its consequence when a new question made one available. > A told finding is inert until somebody asks it a question it can answer. So the rule has a second half: 1. When a new question is framed — «where were the children?», «when did they arrive?» — grep the archive's own STORY pages for the years involved, not only its search log and its roster. The search log records what was looked for; the story pages record what was found, and a thing found for one reason answers another. 2. ⭐ Search by DATE RANGE, not by subject. The house-36 block never mentions childbearing, fertility or a gap. It would not have matched any search for the question it answers. It matches 1791–1792, and the question was about 1791–1803. 3. When the answer does turn up this way, say that it was already there. The temptation is to present a connection as a discovery, and the difference is the whole of this archive's credibility.

None of this is a complaint about the sources. FamilySearch's films are the reason any of this was possible at all, and the volunteers who indexed the baptisms saved months. The point is narrower: these tools answer the question you actually asked, which is often not the question you meant — and the only defence is to open the image.

Compiled 10 September 2026 from this archive's own mistakes. Each item is documented at length on Corrections, and every search behind them is logged in the Search Register.

Corrections → · The Search Register → · The sweep, and the test of it → · What the unindexed book gave →