PDF/UA Slice H: Parzellengeometrie-Nachweis
Stand: 4. September 2026. Issue #550; Parent #333 bleibt offen.
Implementiert
ADR-0066 wurde vor der Implementierung geschrieben. Ein typisierter interner Geometrieeingang verwendet denselben Reportkontext, Consumer und atomaren BEV-Export wie der bestehende PDF-Pfad. Ein prozesslokales, nicht serialisierbares Token bindet Geometrie und Herkunft an den SHA-256 des vollständigen Reportstands. BEV-Tokens gelten höchstens 60 Sekunden und müssen unmittelbar vor dem Rendern aufgelöst werden. Reportänderungen während des Auflösens werden abgelehnt.
Polygon und MultiPolygon werden proportional mit metrischer Näherung und Norden oben projiziert. Der Treffer ist grün, Nachbarn sind hell. Innenringe, Selbstüberschneidungen, leere/degenerierte Ringe, ungültige Koordinaten, Coverage-Überschreitungen und übergroße Eingaben sind fail-closed. Fehlende Geometrie ergibt zwei statt drei Figures. BEV-Attribution, Änderungs-/Vermessungshinweise und Non-Endorsement stehen auf Seite 6, Quellen-/Lizenzlinks auf Seite 8; Alt-Text und Figure bleiben auf Seite 1.
Herkunft der positiven Referenz
SYNTHETIC_PARCEL_COLLECTION in lib/report/pdf-ua/parcel-input.mjs ist
eine repository-eigene synthetische Testgeometrie: eine unregelmäßige
Trefferparzelle und ein dreieckiger Nachbar. Sie ist ausdrücklich kein
BEV-Ausschnitt und keine reale Lagekarte. Ihre Koordinaten liegen zum Test
der bestehenden Coverage innerhalb der Pilot-BBox. Die kanonische Serialisierung (JSON.stringify(collection, null, 2) plus
Zeilenumbruch) hat SHA-256
0c71d3c3374263d0b561d53bd79585a548e483d89d610890e62f526e4833ee79.
Die Zahlen sind keine
Vermessung und die 1800 Quadratmeter der älteren Report-Fixture sind keine
aus dieser Testgeometrie abgeleitete Fläche.
Der reale BEV-Rechtebeleg und der aktivierte Exportkanal werden wiederverwendet. Ein konkreter freigegebener echter Geometrieausschnitt mit Hash fehlt als positiver Produktbeleg weiterhin. Der PM bestätigte, die Implementierung mit synthetischen Positivfällen fortzuführen und dieses Gate ausdrücklich offen zu lassen. Es gab keine neuen Importe oder Nutzerreports.
Lokal geprüft
Der inhaltliche Rotlauf meldete zwei fehlgeschlagene Positivtests und zwölf bestandene Negativtests: Der noch fehlende Projektionspfad konnte weder Polygonvarianten noch MultiPolygon als verfügbar ausgeben. Nach der Implementierung bestanden dieselben 14 Fälle. Ein zweiter inhaltlicher Rotlauf identifizierte fünf widersprüchliche Lookup-/Degraded-/Quellen-/ Identitäts-/Punktfälle (5 rot, 20 grün); nach Härtung bestanden alle 25 Adapterfälle. Der PM fand zusätzlich den veralteten Chrome-Sollwert 19 statt 20 Überschriften. Positives H-Profil und negative Fehlrollenfälle scheiterten zunächst in zwei Fällen und bestehen nach der Korrektur. Der echte Standardviewer bleibt weiterhin semantisch unvollständig.
Die weitere Suite prüft gefälschte/serialisierte Tokens, Reportänderung, Tokenablauf, Quellen-/Release-Mismatch, Consumer-Sperre, alle negativen Exportzustände, Providerfehler und mutationsfreie Übergabe. Ein gemockter, explizit synthetischer BEV-Eingang durchläuft den echten serverseitigen Adapter und Stored-Report-Renderer bis zur finalisierten Figure mit vier semantischen Links. Dies ist kein produktiver BEV-Datenabruf.
Der Vier-Tier-Lauf bestand veraPDF 1.30.2 mit je 106 Regeln, beide Poppler- Renderer und Apple PDFKit/Quartz sowie Chrome/PDFium 148.0.7778.96 mit je 32/32 Seiten. Chrome exponiert weiterhin keine Tabellen-/Listen-/Bildrollen; sein Semantikgate bleibt offen. Der gesamte lokale Testlauf bestand mit 3.563 Tests (43 umgebungsgebundene Tests übersprungen), dazu vier PostgreSQL-Roundtrip-Tests in einem isolierten lokalen Schema. Vollständiger Typecheck, ESLint und Next-Produktionsbuild bestanden mit Node 24.19.0; der Build nutzte ausschließlich eine lokale unerreichbare Dummy-DB-URL. Auch der Abwesenheitsfall bestand veraPDF mit 106 Regeln und 25.159 Checks bei zwei Figures.
Apple Vorschau zeigt die unregelmäßige Trefferform und den dreieckigen Nachbarn, die Figure mit ihrem Alt-Text vor Caption und Steckbrief sowie die Attribution auf Seite 6. Layout und Lesereihenfolge wurden im echten Viewer geprüft; das ist keine neue umfassende VoiceOver-Produktabnahme.
| Tier | Lokaler PDF-SHA-256 | veraPDF-Checks |
|---|---|---|
| free | 838a9b6bfddf68ac256476fe9330c5e698c95aceb02ee10731e1cf5b8db0b39d | 24572 |
| standard | 068064e611a1309ff2e8866f3b1858735e1ca55dfa6acbd03fe81dc8d9473250 | 25432 |
| premium | 1d71cbe9db308ba567ed0cf91f73639e3500dc7d778239d623dbb95006f8119f | 25352 |
| planer | 0e3647939d97f549f62bb3e4f01311901ba50f983a976147052c2a58c6058b0c | 24697 |
CI und gebauter Preview
Implementierung: PR #551,
Commit 4d5336a63687b0e9078912bacfc1bb9128e9a42e.
Der vollständige PR-CI-Lauf 33920628625
bestand mit verify, PDF-UA-Feasibility und PDF-Poppler-Regression.
Das Chrome-Artefakt 9954928847
ist an den geprüften PR-Mergeref 9af740d2ca06e95b9c4596234c9334df280dcbb7
gebunden und enthält 32 Seitenbilder, vier Accessibility-Bäume und die
Messzusammenfassung. Linux bestätigt denselben offenen Semantikbefund.
Der geschützte Preview dpl_Amx6HnyhwvwLCXgwyTGBdRGkZdUL war READY
und lieferte exakt diesen Implementierungscommit. Der anfangs durch den
Ignore Build Step abgebrochene ältere Build zählte nicht als Abnahme.
Die vier tatsächlich ausgelieferten PDFs bestanden veraPDF 1.30.2 mit je 106 Regeln, beide Poppler-Renderer sowie Apple PDFKit/Quartz und Chrome/PDFium 148.0.7778.96 mit je 32/32 Seiten. Alle 32 Chrome-Raster stimmen bytegenau mit dem lokalen Nachweis überein. Der native Viewer bestätigte die unregelmäßige Trefferform, den dreieckigen Nachbarn und Figure/Alt-Text; der Quellenblock auf Seite 6 wurde zusätzlich am vollständig gerenderten Previewblatt überprüft.
| Tier | Bytes | Preview-PDF-SHA-256 | veraPDF-Checks |
|---|---|---|---|
| free | 130771 | 475a43747c7734f4eed24b3a9ab6fe0b6e8fef776093ff077cc805d7eb7e424f | 24572 |
| standard | 132291 | 7ed5e2cd600eb1696eb8505ae738c50e22096f408511c9a44f45e244d46eaaf7 | 25432 |
| premium | 132305 | 624c31999c47b93c8d9ddbe574d0ae4112d36331206a9a92a21111b2c876e43a | 25352 |
| planer | 130770 | 997e24afda38ad8d7acbec5803d907b0b87cef84e1008dd3676e504eee07f08a | 24697 |
Zwölf HTTP-Vertragschecks bestanden: sechs Dokuportalseiten mit HTTP 200,
privaten No-Store-/Noindex-Headern und Slice-H-Markern; vier private,
cookie-freie PDF-Antworten; leeres privates GET 404; adressloser öffentlicher
Report-Guard mit 400 address_missing und exaktem X-Deploy-Commit.
Die bestehenden Auth.js-CSRF-/Callback-Cookies auf Dokuportal und
öffentlichem Guard sind vom Cookie-Verbot der Shadow-Routen getrennt.
Chrome exponiert weiterhin nur 18 heuristische Überschriften und zwei Links, keine Tabellen-, Listen- oder Bildrollen. Das strikte Semantikgate bleibt entsprechend rot; sein korrektes positives Slice-H-Sollprofil verlangt 20 Überschriften, sieben Tabellen, sechs Listen, drei Bilder und zwei Links.
Produktion und schreibfreier Live-Readback
PR #551 wurde als c0918058a44328e7473e8b06d949bea47d9e456f gemergt.
Main-CI 33922229456
bestand vollständig auf diesem Merge-Commit.
Der frühere Lauf 33921764592 wurde durch den erneuten Push-Lauf auf
demselben Commit abgebrochen; er ist kein grüner Abnahmebeleg.
Produktionsdeployment dpl_B2k1nMBLePHjfkDZ8KyEwWrXA4pL war READY,
trug exakt denselben Commit und belieferte www.landnutzen.at.
Der schreibfreie Produktionsreadback bestand zwölf Checks: sechs
Dokuportalseiten mit HTTP 200, privaten No-Store-/Noindex-Headern und den
Slice-H-Markern; alle vier Tier-POSTs und ein GET auf die interne
Shadow-Route mit leeren privaten 404-Antworten ohne Cookies; der öffentliche
Guard mit 400 address_missing und exaktem X-Deploy-Commit. Die
Vertragsseite wurde zusätzlich im produktiven Browser gelesen.
Damit sind Implementierung und Dokumentation ausgeliefert und die
Produktionstrennung belegt. Das ist kein Rollout des PDF/UA-Renderers,
keine reale BEV-Geometrieabnahme und kein Live-Readback eines echten
Nutzerreports.
Offene Produktgates
Echter autorisierter Geometriebeleg; Chrome-Tag-Semantik; weitere echte Karteninhalte; kontrollierter Produktrollout; PDF/UA-Live-Readback eines echten Nutzerreports. Der öffentliche Renderer bleibt React-PDF. #333 bleibt offen.