United Kingdom pipeline — country #19, 6/6 extracted, 0 stubs - #23
Merged
Merged
Conversation
…k, corpus-walk widening - 02: `lien\b` carve-out in IGP_SECTION_HDR_RE's uppercase title guard — Côte Vermeille's "10- lien avec la zone géographique" was never sliced, so its lien (7,110 chars) and terroir facts were lost; verified byte-identical lien lengths corpus-wide on re-extraction. - 04: fall back to the SIQO `categories` list when the manifest `categorie` is empty — Côte roannaise + Muscat du Cap Corse were is_wine=0 (mirror/override-path records) and off the wine facet. - 02g + grape_corpus: walk mt/cy/nl/be/lu/ch/hu extracted dirs and the BG/GR/SK/RO national-spec sidecars (register-fiche dirs deliberately excluded — stage 04 reads only their terroir text). Surfaced 141 VIVC-invisible corpus slugs, since swept. - lexicon: `ryzlink-buketovy` own slug (blanc) — CZ legacy zemské-víno variety from the fiche §6 legacy block; identity contested (Goldriesling #4884 vs Bukettraube #1611), no fold. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… 2 FR SIQO ghosts - VIVC: 40 ambiguous slugs pinned (research-verified against live passports + NN 25/2020 / NN 81/2022 / NFJ 2024 / Genes 2020 DNA); korithi + schiava pinned vivc_id:false; cristina (RO) brand suspicion refuted — real SCDVV Murfatlar crossing #21045. Pins recorded in the CURATOR_TODO restore block (slug_overrides.json is gitignored). - SI: belokranjec + metliska-crnina promoted to full EU-OJ extractions (OJ C/2026/3572 + C/2026/3598, the due re-check found both). - FR: Cabernet de Saumur + Côtes de Blaye verified RETIRED (2016 arrêté / 2026 EU cancellation) — intentionally absent from SIQO, no pinning. - Reconciliation log: stale-audit pass + action pass + pin-pass entries. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The first post-Brexit register in the corpus, and the first where BOTH of the usual spines are unavailable: the UK is no longer in the EU GI scheme (Sussex, registered 2022, was never an EU registration), and Bétard 2022 is an EU PDO layer carrying no PDO-GB-* geometry. Both are replaced by UK-domestic sources. Corpus: 6 registered wine GIs — 4 PDO (English, Welsh, Sussex, Darnibole) + 2 PGI (English Regional, Welsh Regional). Every one ships a public product specification, so the UK is the only country with no stub tier, no national-spec fallback layer and no WAF bootstrap. Spine (gb/00): the GOV.UK "protected food and drink names" register, via the site's own search + content API. The register publishes no GI file number, so stage 00 bridges slug → PDO-GB-* against the EU register. A 7th name (The Crouch Valley) is still an application and is filtered out. Specs (gb/01 → gb/02): 5 PDF + Sussex's .docx, three unrelated layouts handled by _lib/gb/spec.py — defra-pfn-2011 (PART blocks + upper-case VINE VARIETIES), defra-pfn-application (Darnibole, no link section so terroir falls back to the demarcated-area definition) and uk-gi-single-document (Sussex). Roster parsing rejoins PDF line-wraps by run (so "Blau\nPortugueser" stays one variety) but splits bulleted one-per-line rosters, and classifies prose out by item shape. Two source typos are repaired structurally because they split a name before any alias could apply. Geometry: ONS Open Geography (OGL v3.0) — England/Wales country polygons and the East Sussex ∪ West Sussex ∪ Brighton and Hove union. Areas verified against published figures (England 130,522 vs 130,279 km²; Sussex 3,788 vs 3,782). Darnibole, a 5 ha single vineyard with no published polygon, is reconstructed from the OS/RPA parcel references on its own specification plan — 6.1 ha against a declared 5 ha, anchored three ways (internal consistency, an EU-DEM slope transect, the ONS postcode centroid) and disclosed in the panel as approximate. Terroir: 02d/02e ship 51 cahier-primary bullets across all 6 wines, translated to fr/es/nl. Unlike Malta (the other English-source corpus) the UK specs carry a real link narrative, so a missing Wikipedia article is not disqualifying. Also in this change: - grape lexicon: 7 UK varieties (Cascade, Madeleine Angevine/Sylvaner, Roter Veltliner — distinct from Frühroter — Frühgipfler via its synonym Senator, Triomphe d'Alsace, Gagarin Blue) + Blau Portugueser / Elbling White aliases. VIVC ids verified 2026-09. - fix(map): grape pills showed another country's spelling. emit_html dropped a record's own name whenever it matched its slug, and the client fell back to the most frequent spelling corpus-wide — so English "Optima" rendered as Germany's "Optima 113", German "Müller Thurgau" as Hungarian "Rizlingszilváni", Spanish "godello" as Portuguese "Gouveio". 1,047 substantive cases across 10 countries. - fix(it): tarantino and rotae were bound to the wrong appellation's Wikipedia article (Trentino and Roma), and rotae shipped a wiki-sourced terroir bullet about the Roma DOC in all four locales. Both pinned missing; 02d/02e re-run for the two slugs. - audit_terroir_facts: wire GB in, and make unsupported countries an explicit counted skip instead of a KeyError swallowed as a corrupt cache (it silently covered only FR/ES — 1,030 records across 18 countries). - geometry-outlier whitelist for the four national GB records (Isles of Scilly, Anglesey). - WineGB as the England/Wales trade body. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The first post-Brexit register in the corpus, and the first where both of the usual spines are unavailable: the UK is no longer in the EU GI scheme (Sussex, registered 2022, was never an EU registration), and Bétard 2022 is an EU PDO layer carrying no
PDO-GB-*geometry. Both are replaced by UK-domestic sources.Corpus
6 registered wine GIs — 4 PDO (English, Welsh, Sussex, Darnibole) + 2 PGI (English Regional, Welsh Regional). Every one ships a public product specification, so the UK is the only country with no stub tier, no national-spec fallback layer and no WAF bootstrap.
Sources
Spine (
gb/00): the GOV.UK protected food and drink names register, via the site's own search + content API. The register publishes no GI file number, so stage 00 bridges slug →PDO-GB-*against the EU register. A 7th name (The Crouch Valley) is still an application and is filtered out.Specs (
gb/01→gb/02): 5 PDF + Sussex's.docx, in three unrelated layouts handled by_lib/gb/spec.py—defra-pfn-2011(PART blocks + upper-case VINE VARIETIES),defra-pfn-application(Darnibole, no link section so terroir falls back to the demarcated-area definition) anduk-gi-single-document(Sussex). Roster parsing rejoins PDF line-wraps by run (soBlau\nPortugueserstays one variety) but splits bulleted one-per-line rosters, and classifies prose out by item shape. Two source typos are repaired structurally because they split a name before any alias could apply.Geometry: ONS Open Geography (OGL v3.0). Areas verified against published figures — England 130,522 vs 130,279 km²; Wales 20,790 vs 20,779; Sussex 3,788 vs 3,782. Brighton and Hove is unioned in deliberately: without it the Sussex coastline has a hole.
Darnibole
A 5 ha single vineyard with no published polygon anywhere. Its spec defines the area narratively but ships an OS/RPA parcel plan, and those 4-digit parcel numbers are National Grid references (easting/northing in 10 m units within the km square). The boundary is reconstructed from them — 6.1 ha against a declared 5 ha, no fudge factor — and anchored three ways: internal N/S+E/W consistency (including a km-line visible on the plan), an EU-DEM transect confirming a ~13 % south-facing slope above a valley floor at 11–14 m, and the ONS centroid of the vineyard's postcode 502 m away. The panel discloses it as approximate; see
_lib/gb/darnibole.py.Also in this PR
emit_htmldropped a record's own name whenever it matched its slug, and the client fell back to the most frequent spelling corpus-wide — so English "Optima" rendered as Germany's "Optima 113", German "Müller Thurgau" as Hungarian "Rizlingszilváni", Spanish "godello" as Portuguese "Gouveio". 1,047 substantive cases across 10 countries.tarantinoandrotaewere bound to the wrong appellation's Wikipedia article (Trentino, Roma) — androtaeshipped a wiki-sourced terroir bullet about the Roma DOC in all four locales. Both pinned missing; 02d/02e re-run.KeyErrorswallowed as a corrupt cache (it silently covered only FR/ES — 1,030 records across 18 countries).Verification
368 tests (16 new GB parser tests), ruff clean, eslint 0 errors, duplicate-key audit clean,
audit_gb_coverage --strictpasses. Rendered and visually checked in a browser at all four locales. Deployed and smoke-tested live.🤖 Generated with Claude Code