7b0580dcbe
The gate is new. There was no committed instrument for "does any of the author's own proper nouns survive the rename" -- the Brontë number was produced by hand -- so leak_gate.py is now that instrument, and it runs both directions every time: the same scan over the unrenamed source as a positive control, and a nonce string as a negative one. A detector that only ever sees renamed text cannot distinguish absent from blind. Run against BabyYarros as built it reported 212 surviving entities, not the 86 recorded earlier, because it scans the whole corpus rather than each work separately and it counts the sub-threshold entities rename never looked at. Three findings came out of closing that. The corpus had a typography defect of its own. The D1 notes correctly say no unwrap was needed; a different defect was there instead. The Empyrean books set their chapter epigraphs in small caps and the extractor rendered the run as uppercase while leaving the large initial as a separate token, so the corpus carried "M AJOR A FENDRA'S G UIDE TO THE R IDERS Q UADRANT" -- 106 lines, ~700 splits -- plus 52 drop caps like "T he flight field". That is where the entities called IDERS, UADRANT, NAUTHORIZED and seventeen bare single letters came from. A split initial next to an uppercased run is enough to recover the original mixed case, so the restore is exact rather than approximate: a word with a split initial was capitalised, an all-caps word without one was lowercase. Back matter was inside the prose. The builder splits on chapter headings and nothing follows the last one, so every work carried its acknowledgments, newsletter pitches and cover-artist credits -- 4,555 words naming the author's agent, editors and children, in a corpus whose entire purpose is that no identifiable name survives. And the gate passed at 0 of 314 while Afendra was still in every copy. The name never appears unpossessed, so it keyed as an apostrophe form, and rename and the gate both skip those as contractions -- unrenamed and unreported at once, which is the worst failure shape available. Baxter escaped a different way: wilder renders an in-book news article entirely in lowercase, putting the cap/lowercase ratio at 0.13 against a 0.05 bar. Then a second class the unigram scan structurally cannot see. Riders Quadrant, Flame Section, War Games and Fourth Wing -- the book's own title -- are built from ordinary words the detector correctly refuses to call names. The gate now audits recurring capitalised 2-3grams against an explicit allow list, and rename applies a phrase map after the entity pass. Every new detector flag is opt-in and off by default, and the Brontë entity map was re-derived after each change and confirmed identical in keys, surfaces and every field. The stoplist was built by reading each surface in context, which is why it is short: Violence is Xaden's nickname for Violet, and Continent, Presentation, Barrens, Originals, Montserrat, Athena, Aura, Curator and Sage are all in-world. A plausible-looking guess would have excluded most of them. Final: 0 of 325 entities and 0 of 91 audited phrases survive in any of 30 copy files, both controls passing. The sensitivity floor is stated in the gate's own output -- 3 occurrences for a name, 5 for a phrase -- because a negative without one is unfalsifiable.
90 lines
2.6 KiB
JSON
90 lines
2.6 KiB
JSON
{
|
|
"corpus": "BabyYarros",
|
|
"why": "The rename exists to keep the author's INVENTIONS out of the adapter. A real-world referent any novelist could use is not hers, and renaming it damages prose for no leak benefit. This is the same call Brontë's STOP_COMMON made for London/Paris/Brussels/Yorkshire, written per corpus because the register is per corpus.",
|
|
"how_derived": "Every capitalised surface the detector returned was read IN CONTEXT before landing here. That pass is why the list is short: `Violence` is Xaden's nickname for Violet, `Continent` and `Presentation` and `Battle Brief` and `Curator` and `Sage` and `Barrens` and `Originals` and `Montserrat` and `Athena` and `Aura` are all in-world, and every one of them would have been excluded by a plausible-looking guess. Ambiguous cases are deliberately NOT here: renaming is the safe direction, leaving is the leaking one.",
|
|
"real_world_geography": [
|
|
"Nepal",
|
|
"Vegas",
|
|
"Las",
|
|
"Cuba",
|
|
"Miami",
|
|
"Dubai",
|
|
"Barcelona",
|
|
"Istanbul",
|
|
"Pacific",
|
|
"Everest",
|
|
"Korea",
|
|
"Angeles",
|
|
"Los",
|
|
"Fiji",
|
|
"Havana",
|
|
"Madagascar",
|
|
"Machu",
|
|
"Picchu",
|
|
"Venezuela",
|
|
"Himalayas",
|
|
"Taj",
|
|
"Mahal",
|
|
"Jakarta",
|
|
"Seoul",
|
|
"Chile",
|
|
"California",
|
|
"Peru",
|
|
"Morocco",
|
|
"America",
|
|
"Sri",
|
|
"Lanka",
|
|
"Abu",
|
|
"Dhabi",
|
|
"Buenos",
|
|
"Aires",
|
|
"Mykonos",
|
|
"Dartmouth",
|
|
"Colorado",
|
|
"India",
|
|
"Kathmandu",
|
|
"Hong",
|
|
"Kong",
|
|
"Lukla",
|
|
"Tahoe",
|
|
"Lima",
|
|
"Trenton"
|
|
],
|
|
"real_world_institutions_and_brands": [
|
|
"Harvard",
|
|
"UCLA",
|
|
"Google",
|
|
"Jeep",
|
|
"Marines",
|
|
"YouTube",
|
|
"GoPro",
|
|
"Bellagio",
|
|
"Fox"
|
|
],
|
|
"real_world_nationalities": [
|
|
"American",
|
|
"Cuban",
|
|
"Korean",
|
|
"Indian"
|
|
],
|
|
"real_world_culture": [
|
|
"Thanksgiving",
|
|
"Sherpas",
|
|
"Casanova"
|
|
],
|
|
"generic_words_capitalised_only_in_in-world_titles": [
|
|
"Guide",
|
|
"Edition",
|
|
"Unauthorized",
|
|
"Religion",
|
|
"Saturdays",
|
|
"Majesty",
|
|
"Property",
|
|
"Unedited",
|
|
"Secondhand",
|
|
"Excelling",
|
|
"T-shirt"
|
|
],
|
|
"min_count_note": "Detection runs at --min-count 3 for this corpus, not the default 5. Measured: dropping to 3 recovers Lilith, Nyra, Naolin, Tirvainne, Dajalair, Kiralair, Morraine, Beinhaven, Codagh and Tairneanach -- all author inventions that the 5 floor left in the text verbatim. The cost is more real-world nouns reaching the pool, which is what this file absorbs. ⚠ The gate's SENSITIVITY FLOOR is this number: a name appearing fewer than 3 times is never detected, so it is neither renamed nor reported."
|
|
}
|