From c86a73a6e1da7dd28076054936458b850eda2947 Mon Sep 17 00:00:00 2001
From: Matthias Andreas Benkard <code@mail.matthias.benkard.de>
Date: Sun, 26 Jul 2026 08:02:10 +0200
Subject: Berlin column spike: stream order already reads correctly
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The plan assumed the two-column Berlin gazette would need x-coordinate
column detection. It does not: the content stream already emits the left
column fully before the right one, so commands come out in reading order.
The test pins that finding.

What does go wrong there is different, and two parts of it are fixed:

  * The article's amendment formula carries its own target ("§ 2 Satz 1
    des Gesetzes zur Errichtung … wird wie folgt geändert"), but the
    following items never inherited it. The pattern's leading \b could
    never match before "§" — a non-word character needs a word character
    in front of it — so the paragraph branch was dead code and only the
    Bavarian "Art." branch ever fired.

  * The running page header is not a line of its own; it sits inside the
    body text of the following column, so it has to be cut out rather
    than dropped as a column title.

Two blockers remain and are recorded rather than papered over: Article 1
amends an *Anlage* with its own numbering, which the model does not carry
(the same gap that shelved Baden-Württemberg), and full-width frames
(title block, imprint) sit elsewhere in the stream than on the page,
which would need a real XY-cut. Stems are unobtainable either way —
gesetze.berlin.de is an authenticated juris app like the Schleswig-
Holstein portal.

229 tests green; all pinned figures unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I4619dbe96a023d61104d7107a9a34533123d1bc5
---
 .../sampledata/Landesrecht-Beispiele.adoc          | 23 ++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

(limited to 'src/main/resources/sampledata/Landesrecht-Beispiele.adoc')

diff --git a/src/main/resources/sampledata/Landesrecht-Beispiele.adoc b/src/main/resources/sampledata/Landesrecht-Beispiele.adoc
index 52ab028..482ceac 100644
--- a/src/main/resources/sampledata/Landesrecht-Beispiele.adoc
+++ b/src/main/resources/sampledata/Landesrecht-Beispiele.adoc
@@ -25,8 +25,12 @@ hessenrecht, gesetze-rechtsprechung.sh.juris.de; Eigensystem: Berlin) oder als h
 |Berlin
 |`Berlin/GVBl-2026-17_ASOG-LAF-AendG.pdf` — GVBl. für Berlin Nr. 17 vom 11.06.2026, S. 234
 (Gesetz zur Änderung des ASOG und des LAF-Errichtungsgesetzes vom 03.06.2026)
-|*Zweispaltiges Layout* (Herausgabe über Wolters Kluwer) — höchster Extraktionswert, analog
-zum zweispaltigen Alt-BGBl. Tiefe Verschachtelung a)/aa)/bb)/cc), Anlage-Ziele.
+|*Zweispaltiges Layout* (Herausgabe über Wolters Kluwer). Der Spaltenspike ist erledigt: Die
+Reihenfolge des Inhaltsstroms *ist* bereits die Lesereihenfolge, eine koordinatenbasierte
+Spaltenerkennung ist nicht nötig. Verbleibende Layout-Eigenheit sind ganzseitenbreite Rahmen
+(Titelblock, laufender Seitenkopf), die an falscher Stelle im Strom stehen — der Seitenkopf wird
+herausgeschnitten, der Titelblock landet weiterhin mitten im Text. Tiefe Verschachtelung
+a)/aa)/bb)/cc); Artikel 1 ändert eine *Anlage* mit eigener Nummern-Gliederung.
 
 |Schleswig-Holstein
 |`SchleswigHolstein/GVOBl-2026-27_Kommunalrecht-AendG.pdf` — GVOBl. Schl.-H. 2026/27 vom
@@ -100,6 +104,9 @@ folgt geändert").
   `EndToEndTest.tmzGesetzAcceptance` (Artikel 3 des 22. Rundfunkänderungsgesetzes; alle vier
   Befehle angewandt, kein Rest). Das Ergebnis ist gegen die amtliche Fassung vom 01.04.2026
   abgeglichen. Die übrigen Artikel (WDR-Gesetz, Landesmediengesetz, 17. RÄStV-AusfG) bleiben offen.
+* *Berlin* ist bis zur Befehlserkennung umgesetzt (`EndToEndTest.asogLafAendGBerlin`): Artikel 2
+  (LAF-Errichtungsgesetz) wird vollständig erkannt, beide Punkte erben ihr Ziel aus der
+  Änderungsformel. Artikel 1 bleibt offen — er ändert eine Anlage (siehe „Noch offen“).
 * Baden-Württemberg (GBl 2026 Nr. 26): großes Anlage-lastiges Änderungsgesetz (§§ 4–57a + Anlagen
   1/3b/4b); Stammfassung/Akzeptanztest noch offen.
 
@@ -114,6 +121,18 @@ folgt geändert").
   vom 05.02.2025 eingefügt). Auch die archivierten Einzelnorm-Seiten (113 Stück) sind bereits
   SPA-Hüllen ohne Inhalt. Ein voller Akzeptanztest bleibt daher offen, bis die konsolidierte
   Fassung aus einer anderen Quelle vorliegt.
+* *Anlagen als Änderungsziel*: Berlin Artikel 1 („Die Anlage zu § 2 Absatz 4 Satz 1 wird wie folgt
+  geändert“ mit Unterpunkten auf „Nummer 23 Absatz 4a“) und Baden-Württemberg (Anlagen 1/3b/4b)
+  scheitern an derselben Stelle: ÄndGgner modelliert Anlagen nicht als eigene Einheiten mit
+  interner Nummern-Gliederung. Das ist die größte verbleibende Modelllücke im Landesrecht.
+* *Unbalancierte Anführungszeichen innerhalb eines Artikels*: Die Strukturgrenze des
+  Zitatextraktors greift nur an Artikel-Überschriften. In Berlin Artikel 1 fehlt bei Nummer 2 b) bb)
+  das schließende Anführungszeichen; das Zitat verschlingt daher die folgenden Punkte cc) und c).
+  Eine Grenze an Aufzählungsmarkern ist nicht möglich — zitierter Gesetzestext enthält selbst
+  Aufzählungen (dafür gibt es die Fortführungszeichen-Erkennung).
+* *Berlin, ganzseitenbreite Rahmen*: Titelblock und Impressum stehen im Inhaltsstrom an anderer
+  Stelle als im Satzbild (der Titelblock mitten im Fließtext der ersten Seite). Das zu beheben
+  verlangt eine geometrische Lesereihenfolge (XY-Cut), nicht bloß eine Spaltenerkennung.
 * *Rheinland-Pfalz*: Die Verkündungsplattform `verkuendung.rlp.de` verkündet erst seit dem
   01.07.2026 elektronisch; ältere GVBl-Hefte liegen nicht als freie Direkt-PDF vor.
 * Bremen, Hamburg, Mecklenburg-Vorpommern, Saarland, Brandenburg, Sachsen-Anhalt: noch nicht
-- 
cgit v1.2.1

