| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Der Nachoptimierer wasm-opt bekommt aus „deploy/webpaket.sh“ eine einzeln
aufgezählte Liste zugelassener Wasm-Merkmale. Die selbsttätige Prüfung brach
daran ab: „Unknown option '--enable-bulk-memory-opt'“. Das Merkmal führen erst
jüngere Binaryen-Fassungen; die Paketfassung von Ubuntu 26.04 kennt es nicht,
und ein unbekannter Schalter beendet wasm-opt, statt übergangen zu werden.
Die Liste wird deshalb vor dem Aufruf an der Hilfeausgabe des vorgefundenen
wasm-opt gemessen und um das gekürzt, was diese nicht aufführt; die
ausgesonderten Merkmale werden benannt. Die Messung achtet auf Wortgrenzen,
damit „--enable-bulk-memory“ nicht schon durch „--enable-bulk-memory-opt“ als
vorhanden gilt. Unschädlich ist die Kürzung, weil eine Fassung nicht ausgibt,
was sie nicht kennt: Das Modul bleibt gültig und wird allenfalls um einige
Bytes größer. Beim Grundsatz, die Merkmale einzeln statt als „--all-features“
zu erteilen, bleibt es.
Geprüft: „sh -n“ geht auf; auf dem hiesigen Binaryen 132 sondert die Messung
keines der dreizehn Merkmale aus, und gegen eine verkürzte Hilfeausgabe
gehalten sondert sie genau die fehlenden Schalter aus.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GuVaax1nzPPH9Xk73JugUw
Change-Id: Ie7363affeaebe862aace0e1e19e0802c388b513d
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Der Wasm-Lauf scheiterte, ehe er begonnen hatte: native-image
--tool:svm-wasm übersetzt zu Beginn eine Probe im Textformat, und das
Binaryen aus dem apt-Bestand von ubuntu-latest (24.04) liest sie nicht
mehr — „unknown heaptype kind“. Der Läufer 26.04 führt eine neuere
Fassung; von Hand gebaut wird ohnehin mit 132.
Geprüft: der Auftrag „browserfassung“ läuft beim nächsten Push von
selbst; die beiden anderen Aufträge sind unberührt.
Change-Id: I6e6262a931b67b5dba05efe1ffd888e73f43b0a9
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die selbsttätige Prüfung baut seit ihrer Einführung auf einem JDK 25, der
Quellstand blieb mit „release 21“ jedoch hinter dieser Grundlage zurück. Beides
fällt nunmehr zusammen: Die Eigenschaft „maven.compiler.release“ lautet „25“,
und im Profil „wasm“ folgen ihr „source“ und „target“ samt dem erläuternden
Vermerk. Die dortige Abkehr von „release“ bleibt bestehen, denn die
Web-Image-API des GraalVM liegt außerhalb der dokumentierten JDK-API.
Damit ein zu alter Bausatz nicht erst den Übersetzer zu einer schwer deutbaren
Meldung nötigt, tritt der Regel „requireMavenVersion“ die Regel
„requireJavaVersion“ zur Seite, gespeist aus der neuen Eigenschaft
„enforced.java-version“. Das Handbuch setzt in § 5 Absatz 3 fortan die Fassung
25 voraus; § 14 Absatz 3 bleibt unberührt, denn der Wasm-Bau verlangt weiterhin
Oracle GraalVM 25.1 oder neuer.
Geprüft auf einem Oracle GraalVM 25.0.4: „./mvnw verify“ meldet BUILD SUCCESS
mit 456 von 456 Tests, Spotless beanstandet nichts, der Enforcer lässt die neue
Regel durchgehen, und auch das Profil „wasm“ übersetzt („target 25“).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GuVaax1nzPPH9Xk73JugUw
Change-Id: Ib4b4015e3b4d6660f41231bd965c617078de8838
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Gebaut und geprüft wurde bislang von Hand: „./mvnw verify“ und, seltener,
„./mvnw -Pwasm package“ nebst „reuse lint“. Ein Bruch fiel damit erst dem auf,
der zufällig baute — und gerade der Wasm-Bau, der eine andere Java-Fassung
voraussetzt als der gewöhnliche, wird am seltensten angefaßt.
Der neue Arbeitsablauf .github/workflows/ci.yml fährt bei jedem Push nach master
und bei jedem Pull Request drei Läufe nebeneinander: Bau und sämtliche Tests auf
einem Temurin-JDK 25 (Spotless und Enforcer laufen mit, weil sie an die Phase
„verify“ hängen), die Herstellung der Browserfassung auf Oracle GraalVM — die
Community Edition trägt Web Image nicht — samt deploy/webpaket.sh, und die
Lizenzauszeichnung nach REUSE. Binaryen wird dem Wasm-Lauf vorab eingerichtet,
damit wasm-opt tatsächlich läuft und die 25-MiB-Grenze an dem gemessen wird, was
ausgeliefert würde. Das Webpaket und die ausführbare Archivdatei bleiben als
Artefakte abrufbar, die Testberichte nur im Fehlerfall. Nachzuladen ist nichts:
Der Beispielkorpus liegt im Repository und ist allein von „git archive“
ausgenommen.
§ 17 des Handbuchs erhält hierzu die Absätze 4 und 5; das Fassungsverzeichnis
führt den Tag fort.
Geprüft: „./mvnw --batch-mode verify“ geht auf (58 s); der Wasm-Befehl des
Laufes ergibt örtlich „target/web ist auslieferbar“ (wasm-opt: 19 845 039 ->
17 392 218 Bytes); „reuse lint“ weist 224 von 224 Dateien als vollständig
ausgezeichnet aus.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019asn2GWjyjGotivHpYchfi
Change-Id: Ib9a7f676859529cc7c1253234ce7cc0175267b51
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Zwei Verbesserungen an der Browserfassung:
Erstens wird die Browserfassung künftig unter https://aendggner.kellertomaten.de/
betrieben. Der kanonische Verweis in index.html, die Erwähnungen im Handbuch
(README.md) und der Kommentar der Nginx-Konfigurationsvorlage sind entsprechend
angepasst.
Zweitens öffnet das Formularskript (app.js) nach abgeschlossener Auswertung die
Synopse (bzw. bei Nur-Text-Ausgabe den gelesenen Text) unmittelbar per
window.open in einem neuen Reiter. Der Verweis unter „Verfügung der Zentralstelle“
bleibt als Hilfsmittel und für die fortgeschriebene Fassung erhalten.
Change-Id: I961773b9bb1035613b4adf7b5f7101671cd44bc8
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sechzehn Länder hat die Bundesrepublik, vierzehn waren erfaßt. Die beiden
letzten fehlten aus demselben Grund: Ihre Landesrechtsportale führen keine
Fassungsliste, und ohne Vorfassung gibt es keinen Belegfall.
Für das Saarland hilft die Änderungshistorie aus. Weist sie für das fragliche
Jahr genau eine Änderung aus, so ist die Vorfassung die Gesamtausgabe ohne diese
eine. Für das Gesetz über den Saarlandpakt und die Verordnung zu seiner
Ausführung — beide geändert durch das Gesetz Nr. 2211 vom 24. Juni 2026 — ist
das so hergeleitet und aus den Gesetzblättern von 2019, 2020 und 2024 Norm für
Norm gegengeprüft worden: Die Ursprungsfassung nebst den beiden
zwischenzeitlichen Änderungen ergibt genau die heutige Gesamtausgabe. Ein Heft,
zwei Stammwerke, zwei Aufträge; zehn von zehn Normen der Verordnung und
neunzehn von zwanzig des Gesetzes stimmen zeichengenau.
Sachsen-Anhalt bleibt beim rheinland-pfälzischen Weg, und zwar doppelt
begründet: Das Portal führt keine Vorfassung, und das Gesetz- und
Verordnungsblatt des Landes ist überhaupt nicht frei. Frei ist die
Parlamentsdokumentation, weshalb hier die Drucksache 8/6357 des Landtags das
Änderungsdokument ist; aussagekräftig ist allein die Zahl der erschlossenen
Befehle, vierzehn an der Zahl.
Fünf Funde sind allgemein und stehen im Produktivcode: der Kolumnentitel des
saarländischen Amtsblattes; die Aufzählungsmarke, die Kennzeichnung ist und
nicht Wortlaut, sodaß „in Nummer 8 den Punkt ersetzen“ nicht mehr am eigenen
Markenpunkt scheitert; die Artikelwahl bei Ausführungsverordnungen, die ihren
eigenen Namen nicht mehr wegstreicht; die Wortfuge am markerlosen Umbruch, die
der Wortbestand ohne die zeilenletzten Wörter beweist; und die
Buchstabengliederung mit Punkt nebst den kleinen römischen Zahlen, bei denen
„i.“ aus dem Stand der Gliederung entschieden wird.
Nicht selbsttätig verarbeitbar bleiben die auslassende Anfügung, die Anfügung
an die Überschrift des Werkes selbst, der Verbund aus Bereichsumnummerierung
und Wortstreichung sowie die kurze Wortfuge; sie sind im Handbuch und in den
Herkunftsnachweisen als Grenzen benannt.
Die Prüfung geht auf: 456 Testfälle, „mvnw verify“ grün, „reuse lint“ 223 von
223, und der Korpuslauf hält seine Grundlinie bei vierunddreißig Aufträgen,
1429 Befehlen, 1295 angewandt, 661 von 671 gleichen Normen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014dzFZB6rfFjpVMxhF5mQWN
Change-Id: I046353512a672afda7b908f6aee425e4daba507c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die Fußzeile der Startseite und der Hinweis im Impressum verwiesen allein auf die
eigene Git-Stelle; neben sie tritt nun das Spiegelbild auf GitHub. Unter dem Titel
des Vordrucks steht fortan „in der Fassung vom …“ nebst einem <time>-Element, dazu
im Stilblatt die Regel „.fassung“ nach dem Vorbild von „.stelle“.
Das Datum setzt das Paketierskript beim Bau ein, damit die Angabe nicht
stillschweigend veraltet: aus „git log -1 --format=%cs“, ohne date(1) in die
deutsche Langform gebracht (Parameterexpansion und Fallunterscheidung, weil BSD und
GNU sich über die Schalter nicht einig sind), geschrieben in eine Nebendatei und
umbenannt statt „sed -i“. Fehlt die Marke, bricht der Bau ab; eine falsch datierte
Fassung wäre schlimmer als ein fehlgeschlagener Bau. Der Fassungsnachweis im Paket
führt das Datum künftig neben dem Commit. Das im Quelltext stehende Datum bleibt
der Rückfall für den Blick auf die Seiten ohne Paketierlauf.
Die Prüfung geht auf: „sh -n“ beanstandet nichts; ein Trockenlauf auf einer Kopie
der Seiten setzt „28. August 2026“ ein, was dem Stand von HEAD entspricht; wird die
Marke entfernt, bricht das Skript mit der vorgesehenen Meldung ab; „reuse lint“
weist 214 von 214 Dateien als vollständig ausgezeichnet aus.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I3e7a303cba8f9a213dcd19e809a542b7fe8c1426
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Der Korpuslauf sollte klären, woran die Anlagen-Reste liegen, und hat die Frage
anders beantwortet als erwartet: Unter den 116 liegengebliebenen Befehlen des
Korpus ist kein einziger ein Tabellenproblem. Die Annahme, die vier
mecklenburgischen Reste scheiterten an fehlender Tabellenunterstützung, war
unrichtig. Beschafft man das Ursprungsheft (GVOBl. M-V 2016 Nr. 12, über das
Internet-Archiv, weil der Wirt einer Skriptabfrage nicht antwortet), so zeigt
sich: Der Ausbildungsrahmenplan ist keine Tabelle, sondern gegliederter
Fließtext — je Abschnitt eine Kopfzeile, die Ausbildungsstelle, die Dauer und
eine Spiegelstrichliste. Er fehlte in der Stammfassung, das war alles.
Eine Anlage gliedert sich nach eigener Wahl. Neben den Nummern eines
Zuständigkeitskatalogs kennt das Erzeugnis deshalb fortan die benannte Einheit
und führt sie wie jene als eigene Norm, deren Bezeichnung die Anlage voranstellt:
„Anlage 1 Ausbildungsabschnitt 1“. Erkannt wird sie an ihrem Bau und nicht an
einer Wortliste — verlangt sind Buchstaben vor dem Wortstamm —, denn jede Anlage
darf ihre Einheiten nennen, wie sie will, und eine Liste wäre am nächsten Land
wieder unvollständig. Leser und Ausgeber tragen sie (der Rundlauf geht auf), der
Stellenparser nimmt sie als Stellenangabe, der Auflöser setzt sie mit der Anlage
zur Normbezeichnung zusammen, und der Anwender benennt sie um.
Dabei ist ein stiller Fehler zutage getreten: Die Umnummerierung lief für alles,
was weder Paragraph noch Absatz noch Aufzählungsmarke noch Satz war, in den
Auffangzweig „keine Textänderung nötig“ und meldete Erfolg, ohne etwas zu tun.
Erst der Belegfall hat das gezeigt.
Von den vier mecklenburgischen Resten sind zwei erledigt (22 statt 20 von 24
Befehlen). Die beiden übrigen haben benannte Gründe: Der eine fügt einen ganzen
Ausbildungsabschnitt ein — eine neue Norm innerhalb einer Anlage setzt das
Erzeugnis nicht —, der andere verweist auf einen Anhang des ändernden Gesetzes,
der nicht vorliegt. Die Anlage 2 (Vordruck des Befähigungsberichts) bleibt aus
demselben Grund fort; sie ist der einzige echte Tabellensatz des ganzen Korpus.
Die Grundlinie hat sich sogleich bewährt: Die Erweiterung kostete einen Befehl,
der zuvor angewandt wurde — „Die Überschrift zu Unterabschnitt 4 wird
gestrichen“ des GEG-Entwurfs fiel aus dem Gliederungszweig, weil auch
„Unterabschnitt“ auf den Wortstamm endet. Der Korpuslauf rügte das im selben
Durchgang („angewandte Befehle 86 statt 87“), und zwar in einem anderen Land und
einem anderen Dokument, wo keine Einzelprüfung es bemerkt hätte. Die Grenze ist
gezogen und durch zwei Prüffälle gepinnt.
Geprüft: mvnw verify (445 Testfälle) und reuse lint (214/214) gehen durch. Der
Akzeptanzfall pinnt 35 statt 29 Normen und 22 statt 20 angewandte Befehle; die
Grundlinie des Korpuslaufs ist auf 1289 statt 1287 angewandter Befehle
fortgeschrieben.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I3e6046c3a91ecc45406058b367ec5a9a19c84967
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Der Befund über das Erzeugnis ruhte auf handverlesenen Fällen. Rund drei Dutzend
Akzeptanzprüfungen sagen, dass diese Hefte aufgehen; sie sagen nicht, woran die
Reste im Ganzen liegen — ob an der Befehlssprache eines Landes, an der
Aufbereitung des Druckwerks oder am Alter der eingesetzten Stammfassung. Die
Auszählung der Gründe beantwortet das für ein Heft; über einen Korpus geführt
beantwortet sie es für das Erzeugnis.
Der Schalter --korpus arbeitet eine Auftragsliste ab und gibt je Auftrag eine
Zeile Kennzahlen aus: erschlossene, angewandte, liegengebliebene und am Stichtag
zurückgestellte Befehle, sodann die gleichen, geprüften, fehlenden, überzähligen
und abweichenden Normen des Abgleichs, zuletzt die Gründe nach Häufigkeit. Die
Liste nennt dieselben Angaben, die auch die Befehlszeile entgegennimmt — ein
Auftrag ist nichts anderes als ein Lauf. Mit --synopsen bleiben die
Einzelsynopsen samt einer Übersichtsseite stehen; ohne sie wäre der Bericht eine
Zahlenreihe, aus der niemand den Grund eines Restes erführe.
Eingecheckt ist der Bericht die Grundlinie. --grundlinie hält den Lauf dagegen
und rügt allein, was fällt: weniger erschlossene oder angewandte Befehle, weniger
gleiche Normen, mehr liegengebliebene, fehlende, überzählige oder abweichende.
Ein Fortschritt ist kein Fehler, sondern der Zweck der Arbeit; er verlangt
allein, die Grundlinie fortzuschreiben. Der Rückschritt endet mit 3 wie ein nicht
aufgehender Abgleich. Ein gescheiterter Auftrag hält den Lauf nicht an, sondern
trägt seinen Fehlertext in seiner Zeile — der Grundsatz der Nichtverwerfung gilt
auch hier.
Der mitgelieferte Korpus umfasst einunddreißig Aufträge und gibt 1413 Befehle
her, von denen 1287 angewandt werden; 632 von 641 verglichenen Normen gehen auf.
Er reproduziert die Zahlen der bestehenden Akzeptanzfälle (UWG 19/0, GEG 119/119,
BayJG 154/154, Berlin 171/171, WDR 101, Bremen 41/37, Hamburg 21/17). Drei
Aufträge tragen mit Absicht hohe Reste: Bei den beiden Beschlussempfehlungen und
bei Rheinland-Pfalz schreibt die Vorlage eine ältere Fassung fort als die
eingesetzte Stammfassung. Sie sind gleichwohl Wächter — steigen ihre Reste, so
hat sich etwas verschlechtert.
Nebenbei: Die Auszählung der Gründe stand doppelt (Befehlszeile und Synopse) und
liegt nun in Pipeline.zaehleGruende; das Ergebnis der Pipeline führt sie mit.
Geprüft: mvnw verify (443 Testfälle) und reuse lint (214/214) gehen durch; der
Korpuslauf ist Teil der Prüfung. Die Rügeregel ist am ganzen Korpus erprobt: Eine
um eins verschärfte Grundlinie führt zur Rüge „UWG-BGBl: angewandte Befehle 19
statt 20“ und zum Rückgabewert 3.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I4e10b041b78d95772da1c3ff18ab92b0b45dacaa
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die Synopse wies bislang Artikel und Gliederungspunkt aus. Wer einem
liegengebliebenen Befehl nachgehen wollte, musste ihn in einem Heft von achtzig
Seiten selbst suchen; die eigentliche Arbeit lag damit beim Leser. Fortan trägt
jeder Befehl seine Fundstelle: „Artikel 1 23. b) (S. 8)“.
Gezählt wird die Seite nicht, sondern am Wortlaut wiedergefunden. Eine Marke, die
im Textstrom mitreiste, kam dafür nicht in Betracht: Der Bereiniger zieht weiche
Umbrüche zusammen, entfernt Kolumnentitel und schneidet Seitenfüße heraus; die
Marke geriete entweder vor einen Zeilenanfangs-Anker und nähme jedem
Normkopf-Muster seine Grundlage, oder sie verschwände mit der Zeile, die sie
trug. Stattdessen hält der Auszug seinen Wortbestand seitenweise fest
(Seitenkonkordanz) — nur Buchstaben und Ziffern, kleingeschrieben — und der
Befehlstext wird darin gesucht, ebenso heruntergebrochen. Silbentrennung,
Anführungszeichen, Leerraum und Satzzeichen, also gerade das, woran die
Aufbereitung arbeitet, stören den Vergleich dann nicht. Der Fontgrößenfilter
erhebt die Konkordanz aus denselben Zeilen, aus denen er den Text fügt; ein
zweiter Lauf über das Druckwerk unterbleibt.
Gesucht wird von einem fortschreitenden Leser aus, der sich merkt, wie weit die
Erschließung gediehen ist. Ohne ihn träfe ein mehrfach vorkommender Wortlaut
(„Absatz 3 wird aufgehoben“ steht in einem Heft dutzendfach) stets dessen erstes
Vorkommen. Was kürzer ist als acht Zeichen, ist keine Wortfolge, sondern eine
Marke; was sich nicht wiederfinden lässt, bleibt ohne Seitenangabe. Eine falsche
Seite wäre schlimmer als keine. Ohne Angabe bleiben aus demselben Grund die
Klartexteingabe, die kein Satzbild hat, und die beschlossene Fassung einer
Beschlussempfehlung, die aus zwei Spalten zusammengesetzt ist und so auf keiner
Seite des Heftes steht.
Die Anzeige der Herkunft (Provenienz) hängt die Seite an; Synopse, Abschnitt
„Manuell prüfen“ und „--dump-befehle“ tragen sie damit, ohne dass an ihnen etwas
zu ändern gewesen wäre.
Geprüft: mvnw verify (438 Testfälle) und reuse lint (209/209) gehen durch. Sechs
Fälle prüfen die Konkordanz für sich, zwei am Druckwerk — dass jeder der
neunzehn Befehle des Heftes BGBl. 2026 I Nr. 43 eine Seite zwischen eins und
fünf trägt, dass die Seiten in der Reihenfolge der Erschließung steigen und dass
eine Klartexteingabe keine trägt. Die Fundstelle „Artikel 1 23. b) (S. 8)“ des
Gesetzes vom 16. Oktober 2023 ist am Druckbild nachgeschlagen und für richtig
befunden.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: If9a9008311aaabf49b007d82f9c1aaaca495878a
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mecklenburg-Vorpommern tritt als sechzehntes Land hinzu. Sein Gesetzblatt liegt
vollständig offen (Jahrgänge ab 2014, rund 440 Hefte); das Portal dagegen ist
eine juris-Einseitenanwendung ohne Fassungsliste. Die Vorfassung kommt deshalb
aus dem Gesetzblatt selbst: Nennt der Einleitungssatz die Stammvorschrift ohne
jede frühere Änderung, so ist die Ursprungsfassung beweisbar die Vorfassung.
Der Fall — Artikel 44 des Besoldungsanpassungsgesetzes vom 8. Juli 2026, der die
Ausbildungs- und Prüfungsordnung amtstierärztlicher Dienst ändert — prüft die
Artikelwahl schärfer als jeder bisherige: Das Heft trägt ein Mantelgesetz mit
rund sechzig Artikeln, von denen jeder ein anderes Werk ändert. Er prüft ferner
die Inhaltsübersicht als eigene Norm, deren Angabe zu § 10 der erste und deren
Überschrift der siebte Befehl ändert.
Zwei Ergänzungen waren nötig: die Muster für Kolumnentitel und Seitenfuß des
Blattes (beide stehen im Inhaltsstrom, mitten im Befehlstext) und die Nebenform
„die Angabe zu § 10 wird durch die folgende Angabe ersetzt“. Die vier liegen
gebliebenen Befehle betreffen sämtlich die Anlagen, die die Stammfassung als
Tabellen und Vordrucke nicht mitführt.
Eine Nachfassung gibt es nicht: Der Artikel tritt erst am 1. September 2026 in
Kraft, weshalb die Gesamtausgabe des Portals noch die Vorfassung ist — sie hat
dieser als Gegenprobe gedient.
Geprüft: mvnw verify (430 Testfälle) und reuse lint (207/207) gehen durch; der
neue Akzeptanzfall pinnt die Wahl des Artikels 44, 24 gelesene und 20 angewandte
Befehle.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Ic7f04bbd6326f2e34e50fab5b67eb8b2db346410
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bremen tritt als fünfzehntes Land hinzu. Sein Transparenzportal ist nach BRAVORS
und recht.nrw.de das dritte, das einer Skriptabfrage gewöhnliches HTML liefert,
und das erste außerhalb Brandenburgs, das jede frühere Gesamtausgabe einzeln
adressierbar führt; Vor- und Nachfassung stammen daher aus derselben Quelle.
Das Heft (Brem.GBl. 2026 Nr. 87) versäumt es zweimal, ein Zitat zu schließen.
Daran zeigte sich, dass die Grenze am Aufzählungspunkt zu eng gefasst war: Sie
verlangte, dass der Rest des Abschnitts ausbalanciert zurückbleibe, und konnte
deshalb nur den letzten Mangel heilen. Nunmehr prüft sie, dass kein schließendes
Anführungszeichen ohne öffnendes zurückbleibt — ein Abschnitt darf mehrere
offene Zitate tragen, und jedes wird an seiner eigenen Grenze geschlossen. Das
Heft gab vorher 22 Befehle her, nun 41.
Die bremische Befehlssprache brachte sechs Nebenformen (Name der Verordnung,
bloße Aufzählungsmarke als Stelle, Marke mit Schlusspunkt, „geändert“ statt
„ersetzt“, „um Satz 2 ergänzt“, benanntes Satzzeichen) und fünf Anwendungsfunde:
Eine unvollendet endende Neufassung lässt die Untergliederung stehen; das Zitat
des ersten Satzes trägt die Absatzbezeichnung mit; ein Umbruch mitten im Satz
ist Satzspiegel; ein Platzhalter hält nur im eigenen Block Platz; und eine
angefügte Einheit, die ihre Nummer nennt, tritt an den genannten Platz. Dabei
kam ein stiller Mangel ans Licht: „hinter dem Wort“ war in den Mustern
zugelassen, wurde aber nirgends geprüft — die Wörter traten vor den Anker.
Geprüft: mvnw verify (428 Testfälle) und reuse lint (204/204) gehen durch; der
neue Akzeptanzfall pinnt 41 gelesene, 37 angewandte Befehle und den Gleichlauf
von 26 der 29 Normen mit der amtlichen Nachfassung.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: If83a1f3204cd4599168888f2701db71d560b7bc7
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Was ein Land kostet, entscheidet sein Portal. Für die vier noch nicht erfassten
Länder ist das nun geprüft und festgehalten, damit die nächste Welle nicht wieder
bei der Frage anfängt.
Mecklenburg-Vorpommern gibt sein Gesetzblatt frei und skriptlesbar heraus; das
Portal dagegen ist eine juris-Einseitenanwendung und führt — wie Hamburg — keine
Fassungsliste. Ein voller Belegfall verlangt dort deshalb eine Vorschrift, die
genau einmal geändert worden ist: Dann ist die Vorfassung die Ursprungsfassung aus
dem Gesetzblatt. Der zuerst betrachtete Fall taugt dafür nicht, denn beide
Stammgesetze sind vielfach geändert.
Bremen antwortet einer Skriptabfrage mit gewöhnlichem HTML — das zweite offene
Portal nach BRAVORS. Der Weg ist frei; er ist nur noch zu gehen.
Geprüft: Die Angaben beruhen auf Abrufen vom 26. August 2026; am Quelltext ändert
sich nichts.
Change-Id: Ief07f5110a615fa8140b79557e2b88d6034c0235
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Das hamburgische Gesetzblatt bringt zwei Gliederungen, die im übrigen Landesrecht
nicht vorkommen. Die erste: Ein Sammelheft trägt Verkündungen beider Art
nebeneinander — die eine teilt sich in Artikel, die nächste in Paragraphen. Die
§-Teilung erst dann zu versuchen, wenn ein Heft überhaupt keinen Artikel führt, war
darum zu grob; sie ist auch dann zu versuchen, wenn kein Artikel das Stammgesetz
betrifft. Die zweite: Die Befehle sind dezimal gegliedert (6.1, 7.1.1, 7.2.3), wo
die übrigen Blätter a)/aa) setzen. Die Ebene steht dabei in der Zahl selbst, und
weil das Label seine Herkunft schon trägt, wiederholt der Gliederungspfad sie
nicht.
Dazu drei Funde am Satz des Blattes: Es setzt zwischen Paragraphenzeichen und
Nummer ein schmales Leerzeichen, das Javas \s nicht kennt — ohne dessen
Normalisierung ist „§ 1“ dort kein Normkopf, und das ganze Heft bliebe ungelesen.
Es führt seinen Kolumnentitel im Inhaltsstrom, wo er hinter das Zitat eines
Befehls fällt. Und es lässt das Schlusswort der Eingangsformel in die rechte
Spalte fallen, mitten in einen Absatz; die Spalte folgt deshalb fortan ihrer
Grundlinie statt dem Strom — stabil sortiert, im Regelfall folgenlos.
Drei Funde an der Anwendung: Ein Satzzeichen, das an die Stelle eines Wortes
tritt, nimmt dessen Zwischenraum mit (die Umkehrung der schon geregelten Fuge).
Ein Satz, der an eine Aufzählung angefügt wird, gehört dem Absatz und nicht dem
letzten Glied — er tritt auf eine eigene Zeile, und zwar in der Einrückung des
Blockes, denn bündig gesetzt beendete er ihn. Und eine Neufassung, deren
Bezeichnung eine aufsteigende Umnummerierung räumt, tritt hinter diese zurück:
Sonst verlöre die bisherige Nummer 3 ihren Wortlaut und die Umnummerierung
benennte alsdann die neue — ein stiller Verlust.
Zwei Befehle des Heftes bleiben unerkannt, und das ist richtig so: Sie schreiben
„wir die Textstelle … ersetzt“ statt „wird“. Ein Werkzeug, das das errät, läse
morgen auch anderes, was dort nicht steht.
Geprüft: mvnw verify, 425 Tests (zuvor 415), reuse lint 200/200. Hamburg: 21
Befehle gelesen, 17 angewandt, 10 von 14 Normen gleich der amtlichen Nachfassung;
drei der vier Abweichungen liegen an der Vorlage.
Change-Id: Ibc61b4a38d5df5604b8c8efe2d69b7b6d27512d6
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Das Handbuch verlangte, jede Eingabe als Datei bereitzuhalten. Für das Bundesrecht
war das eine Zumutung: Die Anschrift des Norm-XML folgt aus der Abkürzung des
Gesetzes, und wer sie von Hand herunterlädt, verrichtet eine Arbeit, die das
Erzeugnis selbst verrichten kann.
Der neue Bezug nimmt einen Dateipfad, eine Anschrift oder die Kurzform
„gii:<Kennung>“ und gibt eine Quelle zurück. Die Kennung ist die klein geschriebene
Abkürzung, in der jedes andere Zeichen als Buchstabe, Ziffer und Bindestrich zum
Unterstrich wird; führt sie ins Leere, so wird im Verzeichnis des Portals
nachgeschlagen, denn dass das UWG dort „uwg_2004“ heißt, kann niemand wissen. Bleibt
es mehrdeutig, so wird nicht geraten, sondern aufgezählt. Die vorhandene Datei behält
den Vorrang: Wer eine Datei „gii:etwas“ nennt, meint sie.
Zwei Kleinigkeiten, die das Werkzeug erst brauchbar machen: Der Zwischenspeicher ist
eine Bequemlichkeit und keine Bedingung — ist das Heimatverzeichnis schreibgeschützt,
so wird eben jedes Mal geladen. Und ein Vermittler wird aus HTTPS_PROXY samt Kennung
übernommen; die Laufzeit liest das nicht von sich aus, obgleich es auf der
Kommandozeile die gewohnte Angabe ist und in einer Behörde jeder Weg darüber führt.
Der Bezug gehört allein der Befehlszeile. Die Pipeline kennt weiterhin nur Name und
Bytes, und die Browserfassung rührt ihn nicht an.
Geprüft: mvnw verify, 415 Tests (zuvor 406), reuse lint 196/196. Von Hand belegt ist
der Lauf ganz ohne Datei — „gii:UWG 2004“ nebst der Drucksache 21/1855 von
dserver.bundestag.de, zwanzig Befehle angewandt; die Synopse aus „gii:UWG 2004“
gleicht bis auf den Quellennamen zeichengenau der aus der örtlichen XML-Datei.
Change-Id: I935efb19a5777fc8dd08c96ff44376b65fb7211b
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Der verweisende Befehl galt als Grenze: „Die Inhaltsübersicht wird entsprechend der
vorstehenden Nummer 8 Buchst. a geändert“ wurde gelesen und liegengelassen. Die
Grenze bestand nicht in der Sache. Zu übertragen ist nicht der Wortlaut jenes
Punktes, sondern sein Ergebnis — er ändert die Überschrift eines Paragraphen, und
die Angabe wird auf den Titel gesetzt, den der Paragraph danach trägt. Das trifft,
was „entsprechend“ meint, und erspart es, jede Befehlsform ein zweites Mal auf dem
Zeilenmodell der Übersicht nachzubilden. Ausgeführt wird der Befehl dort, wo die
Befehlsliste vorliegt: in der Schleife des Anwenders, nicht in der Weiche.
Hinzu tritt eine Prüfung, die es bisher nicht gab. Wer Paragraphen einfügt oder
ihre Überschriften neu fasst, muss die Angaben eigens mitändern; unterbleibt das,
so bleibt die Übersicht hinter dem Text zurück, ohne dass ein einziger Befehl
liegenbliebe. Geprüft wird allein der Unterschied, den der Lauf bewirkt hat — was
die Quelle von sich aus ungenau führt, ist ein Befund über die Quelle. Geheilt wird
nichts; die Übersicht ist eine Norm wie jede andere.
Die Probe hat sich sogleich bewährt und drei Mängel aufgedeckt, die keine Zahl des
Protokolls angezeigt hatte: Ein Zitat, das mit einer Gliederungsmarke beginnt, wurde
nicht in Zeilen zerlegt, sondern blieb eine einzige; ein Querverweis mitten im Satz
(„… nach § 71a Projektunterlagen … vorzulegen“) erzeugte einen Paragraphen mit einem
halben Satz als Überschrift, weil ein Normkopf nicht an seine Stellung gebunden war;
und ein am Spaltenrand umbrochener Titel verlor seinen zweiten Teil, weil eine Zeile,
die auf „und“ endet, als vollendet galt.
Geprüft: mvnw verify, 406 Tests (zuvor 397), reuse lint 194/194. Das GEG-Heft bleibt
bei 119 von 119 angewandten Befehlen; die Probe rügt dort nur noch, was die amtliche
Fassung selbst verschieden führt.
Change-Id: I24aabefc33406beaf7b1f1fca80d3212a7620f71
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die Kette führte kein Gedächtnis, und der Grund lag tiefer als die Warnung des
Handbuchs besagte. Der Textausgeber schrieb die Standzeile sehr wohl aus; der
Textparser aber verwarf alles, was vor dem ersten Normkopf steht. Was das
Erzeugnis errechnet hatte, kam mithin standlos zurück, und die Altersrüge konnte
auf der eigenen Ausgabe niemals anschlagen — ein stiller Verlust, den erst der
Blick auf die Kette sichtbar machte.
Das Gesetz führt nunmehr seine Fortschreibungen mit: jedes Heft, das auf seinen
Wortlaut angewandt worden ist, mit Bezeichnung und Ausfertigungsdatum. Der
Ausgeber schreibt sie als „Fortgeschrieben durch: …“ hinter die Standzeile, der
Parser liest beides zurück, und der Rundlauf prüft, dass nichts dabei verloren
geht. Trifft ein Heft ein zweites Mal auf dieselbe Fassung, so wird das gerügt;
abgebrochen wird nicht, denn ein Befehl bleibt anwendbar, auch wo er sinnlos ist,
und verworfen wird hier nichts.
Damit ein Heft wiedererkennbar ist, muss es sich nennen können. Der Erkenner
erhebt dafür das Ausfertigungsdatum aus der Zeile „Vom …“ — aber nur, wenn das
ganze Dokument genau eine solche führt. Ein Sammelheft stellt mehrere
Verkündungen nebeneinander, und welche von ihnen es ausmacht, sagt es nicht; ein
falsch bezeichnetes Heft wäre schlimmer als ein unbezeichnetes. Aus demselben
Datum ergibt sich nebenher die Reihenfolge, in der mehrere Hefte eines Laufes
anzuwenden sind, und die Fortwirkung der Altersrüge über die Kette hinweg.
Geprüft: mvnw verify, 397 Tests (zuvor 388), reuse lint 191/191.
Change-Id: Ice3af51eaec777961dafc997e34391d2fa6d6031
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Beim Durchspielen der Kette von Hand hat sich eine Falle gezeigt, die zu benennen
ist: Dasselbe Heft ein zweites Mal auf seine eigene Ausgabe anzuwenden ist keine
Wiederholung ohne Folgen. Sämtliche neunzehn Befehle des UWG-Heftes greifen auch
auf der Zwischenfassung — das ist gerade der Beleg, dass die Kette trägt —, aber
der Absatz, den einer von ihnen anfügt, steht danach zweimal da. Ein Befehl ist
keine Zustandsbeschreibung, sondern eine Anordnung, und wer zweimal anfügt, fügt
zweimal an.
Das Erzeugnis führt kein Gedächtnis darüber, was es bereits getan hat; der
Wortlaut allein sagt es ihm, und der sagt es nur dort, wo die Anordnung einen
Zieltext voraussetzt, den es nicht mehr gibt. § 6a Absatz 3 sagt dies und
verweist auf den Abgleich als das Mittel, mit dem sich prüfen lässt, ob eine
Fassung ein Heft schon trägt.
Geprüft: mvnw verify, 388 Tests.
Change-Id: I07f284600767ada9ea52bd8c5fcc9fc18b0265dc
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Der Abgleich mit der amtlichen Nachfassung verwendete für seine abweichenden
Normen dieselbe Auszeichnung wie die Gegenüberstellung und erbte damit deren
fortlaufende Randziffer. Sie behauptete dort eine Ordnung, die es nicht gibt:
Jede abweichende Norm steht für sich. Die Auszeichnung wird geschieden.
Ferner werden das Verzeichnis der Fassungen und das Verzeichnis der
Landesrecht-Beispiele fortgeschrieben. In letzterem entfällt der Punkt „Noch
offen“ zu den Anlagen-Nummern im gii-XML — die Frage war falsch gestellt.
Geprüft: 388 Tests, reuse lint 190/190. Die Browserfassung ist gebaut und
örtlich durchgespielt: Berlin gibt „171 von 171 Normen gleich“ nebst beiden
Verweisen aus, Baden-Württemberg „91 von 93“ mit den zwei benannten
Abweichungen, deren Wortunterschied die Synopse zeigt.
Change-Id: I9e6af0b398ffedc7c0691c7947960a78bf99f137
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
„Die Inhaltsübersicht wird entsprechend der vorstehenden Nummer 8 Buchst. a
geändert.“ Ein Befehl, der seinen Inhalt nicht nennt, sondern auf einen anderen
Punkt desselben Artikels verweist. Er galt bislang als nicht erkannt.
Zwei Prüfungen haben ergeben, dass die naheliegende Abhilfe nicht trägt. Die
Inhaltsübersicht wird nicht selbsttätig mitgeführt — der Anwender rührt sie bei
einer Umnummerierung oder Neufassung nicht an —, und das rheinland-pfälzische
Stammgesetz führt überhaupt keine Inhaltsübersicht. Den Befehl als „bereits
bewirkt“ zu quittieren wäre also aktenwidrig; ihn auszuführen verlangte, dass der
Anwender die Befehlsliste zurückliest und das Ziel umdeutet („Überschrift des
§ 13“ wird zur Titelspalte einer Übersichtszeile). Das ist ein eigenes Vorhaben.
Er wird deshalb gelesen und ausdrücklich als Grenze gerügt. Der Unterschied ist
kein kosmetischer: Der Rest wandert von „Befehl nicht erkannt“ zu „Nicht
unterstützt“ und damit in die Gruppe, die das Handbuch für die bewusst gezogenen
Grenzen führt. Die Synopse sagt fortan, dass hier das Erzeugnis die Grenze zieht,
und nennt dabei den Verweis; sie sagt nicht mehr, die Vorlage sei
unverständlich. Das Muster ist auf den ganzen Satz verankert, damit ein bloß
adverbiales „entsprechend“ nicht mitgerissen wird.
Damit sind sämtliche 23 Befehle des rheinland-pfälzischen Heftes erschlossen.
Geprüft: 388 Tests (zuvor 386).
Change-Id: I70d5ac52676310bf9bc2c95ab921bd74155a16b7
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Von den drei benannten Idiom-Grenzen des rheinland-pfälzischen Falles fallen zwei.
Die erste: „In Satz 2 wird der Punkt durch einen Strichpunkt ersetzt und
folgender Halbsatz angefügt: „…““. Zwei Neuerungen in einem Satz. „Strichpunkt“
ist die deutsche Nebenform des Semikolons und tritt zu den Satzzeichen-Mustern
hinzu — als Subjekt wie als Ziel, ohne eine einzige neue Gruppe, damit die
hartkodierten Gruppennummern des Erkenners unberührt bleiben. Der Halbsatz wird
eine eigene Ebene der Anfügung. Er beginnt keinen neuen Satz, sondern setzt den
bestehenden hinter dem Strichpunkt fort; angefügt wird er deshalb nur, wenn der
Zieltext tatsächlich auf einen Strichpunkt endet. Sonst stünde er hinter einem
Punkt und wäre gerade kein Halbsatz. Als Ziel einer Struktur-Einfügung oder
-Ersetzung bleibt er ausgeschlossen: Welche Hälfte eines Satzes gemeint wäre,
sagt keine Bezeichnung. Die Verbundmechanik selbst brauchte keinen Eingriff.
Die zweite: „In der Einleitung werden die Worte „…“ durch die Angabe „…“
ersetzt.“ Das ist ein Chapeau-Lokator wie „im Satzteil vor Nummer 1“, nur ohne
Bezugspunkt; er tritt als zweite Alternative zum vorhandenen Muster. Eine echte
Verengung auf den Satzteil vor der ersten Marke wäre eine eigene
Stellenkomponente und ist es nicht: Kommt der Zieltext außer im Chapeau auch in
einer Nummer vor, so meldet die Auflösung Mehrdeutigkeit — der richtige Ausgang.
Dass beide Befehle am rheinland-pfälzischen Stamm gleichwohl nicht greifen, liegt
an der Quelle und nicht am Werkzeug: Das Portal führt keine früheren
Gesamtausgaben, der Stamm ist hier die Nachfassung, und ihr Wortlaut trägt die
Änderung bereits.
Offen bleibt die dritte Grenze, die Verweisung auf einen anderen Punkt desselben
Artikels.
Geprüft: 386 Tests (zuvor 381).
Change-Id: I993d8645fba1c933ad8497ca175cef265df2c0b0
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
„Die bisherige Nummer 18 wird Nummer 29 und nach der Angabe „Absatz 1“ werden die
Wörter „oder Absatz 4“ eingefügt.“ Der Bußgeldkatalog des § 108 führt
zweiunddreißig Nummern, und beinahe jede nennt einen „Absatz 1“; norm-weit
aufgelöst trifft der Anker einundzwanzig Vorkommen. Der Befehl blieb deshalb
liegen — zu Recht, aber unnötig: Gemeint war ersichtlich die soeben umnummerierte
Einheit.
Für eine Satzzeichen-Operation galt diese Auslegung schon, für eine Wortoperation
ausdrücklich nicht. Das war keine Nachlässigkeit, sondern eine bewusste
Entscheidung: Nicht jede Begleitklausel meint die umnummerierte Einheit, und wer
sie stets dorthin zwänge, verlöre die Fälle, in denen sie anderswo greift. Die
Regel ist deshalb nicht umzukehren, sondern zu verfeinern. Die weite Suche behält
den Vorrang; erst wenn sie mehrere Fundstellen findet, entscheidet der engere
Skopus. Findet sie gar keine, so meint der Befehl etwas anderes und bleibt
liegen — der Rückfall greift allein bei Mehrdeutigkeit. Bleibt der Anker auch in
der umnummerierten Einheit mehrdeutig, so steht die Mehrdeutigkeit im Protokoll
und nicht die Begründung des zweiten Versuchs.
Die Regel gehört zur Anwendung und nicht zur Erkennung. Ob ein Anker mehrdeutig
ist, steht erst nach den neununddreißig vorangegangenen Punkten fest; der
Erkenner sieht nur das Ausgangsgesetz, in dem es die Nummer 29 noch gar nicht
gibt. Der Schritt trägt darum eine Rückfallstelle, die das Auffalten des
Verbunds mitgibt — vorwärts und nur innerhalb desselben Verbunds. Nennt die
Klausel eine Einheit derselben Art, wie die Umnummerierung sie vergibt, so wird
nicht geraten.
Damit ist der ganze Artikel 1 der GEG-Novelle selbsttätig angewandt: 119 von 119
Befehlen, kein Rest. Der Wortlaut der Nummer 29 gleicht der amtlichen Fassung
(BJNR172810020.xml).
Geprüft: 381 Tests (zuvor 378), darunter die drei Grenzen der Regel — Rückfall
bei Mehrdeutigkeit, kein Rückfall bei fehlendem Zieltext, und Mehrdeutigkeit
bleibt Mehrdeutigkeit.
Change-Id: Id0d7080ba93ebad73fbcad42fe41c434b9a67e05
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Für die Anlagen-Nummern des Bundesrechts war eine offene Modellfrage vermerkt: Ob
die Nummern einer Anlage im gii-XML ebenso zu eigenen Normen zu zerlegen seien wie
im Landesrecht. Sie war falsch gestellt. Der Stellenaufloeser probiert längst
beide Wege — die Nummer als eigene Norm und, wenn es die nicht gibt, als Marke im
Wortlaut —, und beide tragen.
Der Fehler saß anderswo, und er war schlimmer als eine Lücke. Der
Überschrift-Zweig verzweigte bei jeder Stelle, die eine Überschrift nennt,
unbedingt auf den Titel der Norm und verwarf dabei jede feinere Komponente
schweigend. „In der Überschrift der Nummer 1 der Anlage 8 werden die Wörter …
gestrichen“ arbeitete deshalb am Titel der Anlage 8. Dass es hier beim Rest blieb,
lag allein daran, dass der Zieltext dort zufällig nicht stand; stünde er dort, so
hätte das Werkzeug die falsche Einheit geändert, ohne dass es jemand erfahren
hätte.
Welche Überschrift gemeint ist, entscheidet fortan nicht der Wortlaut des
Befehls, sondern die Auflösung der Stelle ohne die Überschrift-Komponente. Löst
sie auf eine ganze Norm auf, so ist deren Titel gemeint — der Regelfall, und
ebenso dort, wo die Nummer einer Anlage eine eigene Norm ist. Löst sie auf einen
Textbereich auf, so ist dessen Kopfzeile gemeint: Sie trägt Marke und
Überschrift, die Kindzeilen sind ihr Inhalt. Ein Block aus einer einzigen Zeile
hat keine Überschrift, sondern nur Text; dort wird gerügt statt angewandt.
Die Neufassung einer solchen Kopfzeile bleibt eine bewusst gezogene Grenze und
wird nunmehr als solche gerügt: Die Kopfzeile trägt zugleich die
Aufzählungsmarke, die eine Neufassung nicht mitliefert. Bisher bog dieser Zweig
still auf den Normtitel um.
Geprüft: 378 Tests (zuvor 375). GEG 118 von 119 Befehlen (zuvor 117); die
Überschrift der Nummer 1 der Anlage 8 ist gestutzt, der Titel der Anlage und der
gleichlautende Buchstabe a) darunter sind es nicht.
Change-Id: I2b8a714b1e721d01053e314f52700ca95966fc4e
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Zwei Leistungen fehlten, die das Werkzeug längst erbringen konnte, aber nicht
herausgab.
Die erste ist die fortgeschriebene Fassung. Der Schalter --neufassung schreibt
sie als kanonischen Klartext; damit steht die Kette: Die Ausgabe des ersten
Laufes ist das Stammgesetz des zweiten, und eine konsolidierte Fassung lässt sich
aus dem Stammheft und den Änderungsheften zusammensetzen, wo kein Portal sie
fertig liefert. Für Thüringen ist das von Hand geschehen.
Die zweite ist der Abgleich. Ob ein Lauf gelungen ist, entscheidet nicht die Zahl
der angewandten Befehle, sondern der Wortlaut hinterher — und dieser Maßstab
stand bislang allein im Testcode. Wer ein Land erschloss, musste die Prüfung ein
zweites Mal schreiben. Der Schalter --nachfassung nimmt die amtliche Fassung
entgegen, weist fehlende, überzählige und abweichende Normen aus, zeigt die
Abweichung in der Synopse wortweise und endet bei einem Fehlschlag mit dem
Rückgabewert 3. Denselben Abgleich fahren fortan die Akzeptanzprüfungen; vier
handgeschriebene Vergleichsschleifen weichen ihm. Die Überschrift zählt dabei zum
Wortlaut, denn auf sie zielen eigene Befehle — der Korpus trägt diese Verschärfung
ohne einen einzigen Rückfall.
Statt einer sechsten und siebten Fassung der Signatur tritt ein Auftrags-Record
an die Stelle der Überladungsleiter der Pipeline. Die Browserfassung bekommt
beides: ein Dateifeld für die Nachfassung und ein Ankreuzfeld für die
Textausgabe, beide hinter der Klappe „Weitere Angaben“.
Der Rundlauf hat dabei einen zweiten Mangel des Lesers zutage gefördert. Das
Bundesrecht führt aufgehobene Paragraphen unter einer Sammelbezeichnung („§§ 17
u. 18“, Titel „(weggefallen)“, im gii-XML mit der Platzhalterkennung „(XXXX)“).
Der kanonische Klartext kannte diese Kopfzeile nicht; sie wäre in den Wortlaut
der Vornorm gefallen und hätte ihn verfälscht. Ohne sie könnte der Klartext kein
Bundesgesetz tragen, und die Kette endete beim Bund.
Geprüft: 375 Tests (zuvor 373); Berlin gibt 171 von 171 Normen gleich aus, und
die für das UWG ausgegebene Fassung ergibt wieder eingelesen dieselbe.
Change-Id: Ie3c45e18b561175fe6dd0033c46d3bed69e415bc
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Der Klartext des Landesrechts war Eingabeformat und kein Ausgabeformat. Das
Erzeugnis kannte die fortgeschriebene Fassung — sie steht als vollständiges
Gesetz in der Anwendung —, gab sie aber nur als halbe Spalte einer Synopse
heraus. Damit fehlte dreierlei: die Kette (Heft auf Heft), die Prüfbarkeit von
außen (wer gegen die amtliche Nachfassung hält, braucht Text, nicht Auszeichnung)
und der Rückfluss.
Der LandesRechtTextAusgeber kehrt den LandesRechtTextParser um. Er erfindet
nichts: Die Abkürzungszeile tritt nur auf, wenn die Quelle eine geführt hat; das
doppelte Leerzeichen zwischen Bezeichnung und Überschrift ist kanonisch, weil an
ihm der Lader den Normkopf vom angeklebten Querverweis scheidet; die Nummer einer
Anlage erscheint als „Nummer 6“, weil die vorangehende Anlagen-Norm den Bezug
schon herstellt. Zwei Grenzen des Formats sind im Quelltext benannt: Der Normkopf
einer Anlage nimmt keinen Titel auf, und eine Gliederungseinheit hinter der
letzten Norm des Textteils hat keinen anderen Ort als eben diesen.
Der Beleg ist nicht der Augenschein, sondern der Rundlauf: Was der Ausgeber
schreibt, muss der Lader wieder zu demselben Gesetz lesen. Geprüft wird das an
sämtlichen dreiundzwanzig Klartext-Stammfassungen des Beispielkorpus.
Der Rundlauf hat sogleich einen Mangel des Lesers aufgedeckt. Eine nummerierte
Zeile gilt als Unter-Überschrift, wenn ihr eine weitere Überschrift folgt — als
solche zählten aber nur drei der fünf Formen. Der sächsischen Katalogzeile
„1. Januar 2023 …“ folgt „Unterabschnitt 12 …“, und das ist ebenso eine
Überschrift wie ein Normkopf. Die arabische und die ordinalwörtliche Form treten
hinzu.
Geprüft: 373 Tests (zuvor 350), darunter dreiundzwanzig Rundläufe; kein
Akzeptanzfall ist zurückgefallen.
Change-Id: I6bdacae8638a894ca9ba0a01f1865e0c93e9718c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Der Vordruck der Browserfassung führte fünf Eintragungen untereinander auf,
von denen drei im Regelfall leer bleiben: der anzuwendende Artikel, der
Stichtag und die reine Textausgabe. Sie stehen nun hinter der zugeklappten
Aufschrift „Weitere Angaben“, die an die Stelle der Leitspalte tritt und über
die volle Breite läuft — dieselbe Form, die die Leitspalte auf schmalem Schirm
ohnehin annimmt. Weil ein geschlossenes „details“ seinen Inhalt nicht druckt,
ein Vordruck aber vollständig aufs Papier gehört, klappt der Abschnitt vor dem
Druck selbsttätig auf und nimmt danach seinen vorherigen Zustand wieder ein.
Das Ankreuzfeld für die unveränderten Vorschriften ist vorangekreuzt: Wer eine
Synopse ansieht, will in aller Regel das ganze Gesetz vor sich haben. Damit
wurde die Verfügung der Zentralstelle unrichtig, die die Zahl der Einträge als
„geänderte Normen“ auswies; sind die unveränderten mit aufgenommen, so heißen
sie fortan „Normen in der Synopse“. Die Befehlszeile bleibt unberührt.
Die Prüfung geht auf: Am UWG mit dem Dritten Gesetz zu seiner Änderung ergeben
sich vorangekreuzt 19 Befehle, nichts manuell zu prüfen und 31 Normen in der
Synopse, ohne Ankreuzung dieselben 19 Befehle und 6 geänderte Normen; der
Abschnitt klappt auf Druckanforderung auf und danach wieder zu.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I68897f8ab0b51eb4e475982d38b914dac93748d7
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die Browserfassung ging bisher über ein eigenes Skript nach Cloudflare:
deploy/cloudflare.sh rief erst „mvnw -Pwasm package“ und dann „wrangler
deploy“. Maven selbst wußte davon nichts. Seine gleichnamige Phase stand
leer und hätte, gerufen, den Bau angehalten, denn das Erzeugnis benennt
kein Empfangsverzeichnis.
Also wird das Ziel deploy:deploy stillgelegt — das Erzeugnis ist eine
Anwendung, keine Bibliothek, und seine Fassungsbezeichnung ergäbe in
einem Maven-Verzeichnis ohnehin kein brauchbares Modell —, und die
freigewordene Phase nimmt im Profil „wasm“ den Aufruf von wrangler auf.
Ein einziger Lauf baut und liefert nun aus. Die Prüfungen aus
webpaket.sh, sauberer Arbeitsbaum und 25-MiB-Grenze, liegen dabei vor dem
Hochladen und halten den Lauf an, ehe etwas hinausgeht. Das Skript
entfällt; es wäre nur noch die Doppelung dreier Aufrufe.
Geprüft: „mvnw deploy“ ohne Profil vermerkt „Skipping artifact
deployment“ und läuft durch; mit „-Pwasm“ erscheint die Ausführung
„cloudflare“ an der Phase „deploy“; „wrangler deploy --dry-run“ liest die
dreizehn Dateien von target/web, ohne auszuliefern; „mvnw verify“ besteht
mit dreihundertfünfzig Prüfungen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Ic0ff3b4aa6dc399e253421183e60871efd65e5ed
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Jede eigene Datei trug bislang den Vermerk "2020" — das Jahr, in dem das
Verzeichnis angelegt wurde. Von den neunundachtzig eigenen Dateien sind aber
vierundachtzig erst 2026 entstanden. Der Vermerk sagte damit nicht, wann das
Werk geschaffen wurde, sondern wann jemand zum ersten Mal etwas eincheckte; das
ist nicht dasselbe, und für die Schutzfristberechnung ist es die falsche Angabe.
Erhoben wird das Jahr nunmehr je Datei aus der Entstehungs- und der letzten
Änderungsbuchung. Neunundsiebzig Dateien tragen "2026". Fünf reichen wirklich bis
2020 zurück und werden bis heute fortgeschrieben (.gitignore, README.md, pom.xml,
AendGgner.java, logging.properties); sie tragen "2020-2026". Eine einzige Datei
ist seit 2020 unberührt geblieben, .mvn/maven.config, und behält ihren Vermerk
unverändert — sie war die einzige, bei der er von Anfang an stimmte.
Die Zuordnungsdatei wird entsprechend geschieden. Der Block, der maven.config mit
den drei übrigen kommentarlosen eigenen Dateien zusammenfasste, wird geteilt,
weil deren Jahre auseinanderfallen; die abgeleiteten Textfassungen und die
Herkunftsnachweise tragen 2026.
Damit der Bau die Berichtigung nicht sogleich wieder zunichte macht, tritt im
Kopfzeilenvordruck des Formatierers der Platzhalter "$YEAR" an die Stelle des
festen Jahres. Er nimmt hin, was in der Datei steht, statt allen Java-Dateien
dasselbe Jahr aufzunötigen.
Geprüft: 350 Tests, REUSE 188/188, spotless:check ohne Beanstandung und
spotless:apply ohne Änderung.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I876adf0a4ce63c198e0e549d7c976310e2a3a3ee
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die Erste Landesverordnung zur Änderung der Ausbildungs- und Prüfungsordnung der
Unfallkasse (GVBl. 2026 Nr. 21) kommt als Erkennungsfall in den Bestand — nicht
als Akzeptanzfall, und der Grund liegt in der Quelle: Das rheinland-pfälzische
Landesrechtsportal führt keine früheren Gesamtausgaben, ebensowenig das
saarländische und das sachsen-anhaltische. Die Fassungsliste, über die Hessen,
Schleswig-Holstein, Berlin und Baden-Württemberg jede Fassung datierbar ausgeben,
gibt es dort nicht. Ohne Vorfassung kein Vergleich; der Stamm ist hier die
Nachfassung, und die neun „Zieltext nicht vorhanden“ sind gerade der Beleg dafür,
dass die Befehle dort bereits vollzogen sind.
Zwei allgemeine Funde hat der Fall trotzdem gebracht. Das Land schreibt „die
Worte“, wo das Handbuch der Rechtsförmlichkeit „die Wörter“ setzt — der Erkenner
nimmt die Nebenform jetzt überall an, ohne sie blieben sieben der 23 Befehle
unerkannt. Und der Seitenfuß des dortigen Gesetzblattes steht im Inhaltsstrom und
zerschneidet das Zitat einer Neufassung („§ 18 erhält folgende Fassung:“ /
Fußzeile / „„§ 18 …““); er wird nun herausgeschnitten wie die Füße der
Gesetzblätter Berlins, Thüringens und Baden-Württembergs.
Drei Idiome bleiben benannt offen: die Satzzeichen-Ersetzung im Verbund mit einer
Halbsatz-Anfügung („durch einen Strichpunkt ersetzt und folgender Halbsatz
angefügt“), „In der Einleitung“ als Ziel, und die Verweisung auf einen anderen
Punkt („entsprechend der vorstehenden Nummer 8 Buchst. a“).
Nebenbei ein besserer Beschaffungsweg, in RheinlandPfalz/SOURCES festgehalten:
Der Portaltext wird im Browser als Blob zum Herunterladen angeboten und landet
unmittelbar als Datei im Dateisystem, statt stückweise durch die Textausgabe der
Browsersteuerung zu gehen. Der PDF-Verweis der Dokumentansicht taugt dafür nicht
— er ist an die Sitzung gebunden.
Geprüft: 350 Tests, REUSE 188/188.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I317f2d368b734c1152cd47cc09356de60f5dfb35
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Brandenburg ist das erste Land, dessen Portal keine juris-Einseitenanwendung ist:
BRAVORS gibt seine Vorschriften als gewöhnliches HTML aus und führt unter
„Änderungshistorie“ jede Fassung einzeln. Vor- und Nachfassung entstammen damit
derselben Quelle — kein Wayback, keine Browsersteuerung, nur zwei Adressen. Die
Hefte lassen sich am Dokumententitel des PDF einordnen; „FraktG-1AendG“ verrät
mehr als jede Volltextsuche.
Der Belegfall ist das Erste Gesetz zur Änderung des Fraktionsgesetzes (GVBl. I
2026 Nr. 12): vier Befehle, vier angewandt, alle 24 Normen gleich der amtlichen
Nachfassung — auf Anhieb, ohne einen einzigen Eingriff am Parser. Zugleich ist er
die Gegenprobe zum Inkrafttreten: Artikel 2 ordnet es schlicht an („am Tag nach
der Verkündung“), also darf keine Staffelung gerügt und kein Datum erfunden
werden.
Drei Eigenheiten fürs Aufbereiten stehen in Brandenburg/SOURCES: Die
Abschnittsbezeichnung steht im Kopfelement vor der Überschrift; die Aufzählungen
sind echte Listen, deren Marken erst das Stilblatt erzeugt; und an ehemaligen
Trennstellen führt das Portal vereinzelt Steuerzeichen mit (U+0002 in
„Mitglie<STX>der“), die kein Textbestand sind.
Ein allgemeiner Fund kam doch dazu: Die Überschrift des Schlussartikels geriet in
den Wortlaut der Inkrafttretens-Anordnung, weil ein Artikel ohne Absatz-
bezeichnungen im ganzen ein Absatz ist. Auf das bloße Vorkommen von „tritt“ ist
dabei kein Verlass — das Wort „Inkrafttreten“ trägt es selbst.
Geprüft: 349 Tests, REUSE 185/185.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I17660864fdf589d280024c9ba310e23902781515
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sie standen als begründete Kommentare in den Prüfungen, jeder mit seinem
Belegfall — und jeder war allgemein, nicht die Eigenheit seines Falls.
Erstens räumt auch eine Aufhebung eine Bezeichnung. Die Schritt-Ordnung kannte
bisher nur Umnummerierungen als Räumende. Im GEG macht ein Punkt der Kaskade des
§ 108 Absatz 1 aus den bisherigen Nummern 4 bis 6 die Nummern 8 bis 10, während
ein anderer die bisherige Nummer 9 aufhebt; die Aufhebung suchte danach eine
Nummer 9, die inzwischen eine andere Einheit war. Dass eine Aufhebung mitunter
einen Platzhalter hinterlässt und dann nichts freigibt, steht erst am Bestand
fest und schadet nicht: Vorrang erhält sie nur gegenüber Schritten, die dieselbe
Bezeichnung neu vergeben, und eine zugleich weggefallene und neu vergebene
Bezeichnung gibt es nicht.
Zweitens ist ein Zwischentitel kein Teil des vorangehenden Absatzes. „Aus dem
Bereich Verkehr:“ trägt keine Absatzbezeichnung und wurde deshalb angehängt —
der Absatz endete dann nicht auf den Punkt, den „In Absatz 4a wird der Punkt am
Ende durch ein Semikolon ersetzt“ meint. Er ist jetzt ein eigener,
bezeichnungsloser Absatz, wie ihn der Vorspann einer Norm ohnehin bildet.
Drittens erbt neu eingesetzter Wortlaut die amtliche Satzzählung. Führt das
Stammgesetz sie, so trägt der aus dem Gesetzblatt zitierte Text sie gleichwohl
nicht: Sie gehört zur Fassung, nicht zum Verkündungstext. Angefasst wird nur ein
geänderter, einzeiliger, mehrsätziger Absatz ohne Zählung — die Mehrzeiligkeit
hält Aufzählungen heraus.
Geprüft: 348 Tests, REUSE 180/180. GEG 117/2 (war 116/3), dessen
Beschlussempfehlung 70 (war 69), § 108 Absatz 1 mit lückenloser Nummernfolge 1
bis 32. Berlin ASOG 6/6 und alle 171 Normen gleich der amtlichen Nachfassung —
die beiden benannten Abweichungen sind fort. Bayern, Niedersachsen und die
übrigen Belegfälle unverändert.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I47d3f9f150cb628ba5a298e95f2c647dac6ffa45
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Das Dritte UWG-Änderungsgesetz lässt seinen Artikel 1 Nummer 2 Buchstabe c
am 19. Juni 2026 wirksam werden und alles Übrige erst am 27. September; das
Infektionsschutz-Änderungsgesetz von 2020 ändert dasselbe Stammgesetz in zwei
Artikeln zu zwei Zeitpunkten. Wer alle Befehle zugleich anwendet, erhält dort
eine Fassung, die an keinem einzigen Tag gegolten hat. Genau das tat ÄndGgner
bisher, und zwar schweigend — die auffälligste Stelle, an der ein Werkzeug, das
nie stillschweigend verwerfen will, doch etwas verschwieg.
Der Schlussartikel wird jetzt gelesen. Die Artikelwahl erfasst ihn nicht, denn er
trägt weder Änderungsformel noch Stammgesetz; maßgeblich ist der erste Artikel
hinter dem letzten ändernden, damit in einem Gesetzblatt mit mehreren Gesetzen
jedes seine eigene Schlussvorschrift bekommt. Erkannt werden die Grundregel, der
Vorbehalt zugunsten späterer Absätze, die abweichende Anordnung für Artikel,
Nummern, Buchstaben und Doppelbuchstaben sowie die Rückwirkung („mit Wirkung
vom“). Nennt der Wortlaut kein Datum, sondern die Verkündung, so wird keines
erfunden: Der Verkündungstag steht nicht im Gesetzestext.
Zugeordnet wird über die Herkunft des Befehls — Artikel und Gliederungspfad —,
und es gewinnt die besonderste Anordnung. Mit --stichtag (im Vordruck: „Stichtag“)
ergibt sich die an jenem Tag geltende Fassung; was noch nicht galt, bleibt
unangewandt und steht für sich, nicht unter den Gründen des Scheiterns. Ohne
Stichtag bleibt es beim vollen Bestand, aber die Staffelung wird gerügt.
Geprüft: 348 Tests (339 + 6 Einheitstests des Lesers + 3 Belegfälle), REUSE
180/180. UWG 1/19 Befehle am 19. Juni gegen 19/19 am 27. September, GEG 115 gegen
116, IfSG 65 gegen 75 — jeweils ohne Zuwachs an manuellen Resten.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I887f233c72a4e49b69f9ede3154dcadd704fb0c3
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Das Berliner Gesetz- und Verordnungsblatt zeichnet den ganzseitenbreiten
Titelblock des Gesetzes zuletzt — nach beiden Spalten, obgleich er über ihnen
steht. Im Inhaltsstrom stand er damit mitten in einem Zitat, das über den
Seitenwechsel läuft: „… zur Sicherung des Be-“, Titelblock, „triebs von
Unterkünften …“. Der Wortlaut der Anlage Nummer 31 trug den Titel des
Änderungsgesetzes in sich, und die Nummer wich als einzige aus einem Grunde von
der amtlichen Nachfassung ab, der weder in der Erkennung noch in der Anwendung lag.
Maßgeblich ist fortan das Satzbild in der einfachen Gestalt, die die
Gesetzblätter durchweg haben: zwei Spalten, dazwischen eine Rinne, und darüber
oder dazwischen einzelne ganzseitenbreite Zeilen. Gesucht wird die Rinne — die
senkrechte Linie, die möglichst wenige Zeilen überschreiten, die nahe der Mitte
des Satzspiegels liegt und zu deren beiden Seiten je eine Spalte von
nennenswerter Breite steht. Die wenigen Zeilen, die sie gleichwohl
überschreiten, sind die breiten; sie zerlegen die Seite in Bänder. Gelesen wird
Band für Band von oben nach unten, in jedem Band erst die linke, dann die rechte
Spalte.
Der übliche XY-Schnitt der Literatur leistet das nicht, und der erste Versuch
danach hat es bewiesen: Teilt man erst waagerecht am weitesten Weißraumband,
so zerfällt eine zweispaltige Seite mit Kolumnentitel in oben und unten, ehe sie
in links und rechts zerfällt; gelesen wird links oben, rechts oben, links unten,
rechts unten. Im Infektionsschutzgesetz zerriss das eine Aufzählung mitten
entzwei und ließ von fünfundsiebzig Befehlen einundvierzig übrig. Die Spalte hat
deshalb den Vorrang vor dem Band.
Zwei Vorsichtsmaßregeln begrenzen den Eingriff, der sonst jeden Extraktionslauf
berührte: Innerhalb einer Spalte bleibt es bei der Reihenfolge des
Inhaltsstroms, und findet sich keine Rinne, so bleibt die Seite unangetastet.
Der Eingriff kann Spalten und breite Zeilen gegeneinander versetzen, niemals
aber den Satz einer Spalte durcheinanderbringen, deren Strom schon stimmte.
Ausgezählt über den ganzen Beispielbestand ändern fünfzehn der fünfundvierzig
PDF-Dateien ihren Auszug; nachgesehen sind sie sämtlich, und wo sie den
Fließtext betreffen, rücken sie einen Vorspann an die Stelle, an der er im Satz
steht (Berlin, Thüringen, die Beispielsynopse zum Produkthaftungsrecht). Die
Anlage Nummer 31 gleicht nunmehr der amtlichen Nachfassung; es verbleiben zwei
benannte Abweichungen, keine davon in der Anwendung begründet. Alle
dreihundertneununddreißig Prüfungen laufen durch, darunter jede gepinnte Zahl
des Bestandes; REUSE meldet 176/176.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I80f100bba2b8e48d0d292fb310f4a9c98fc519ec
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die Browserfassung galt als die vollwertige zweite Fassung des Erzeugnisses. Zwei
Angaben der Befehlszeile fehlten ihr aber: die Beschränkung auf einen einzelnen
Artikel und die Ausgabe des maschinell gelesenen Textes. Die erste war im Vordruck
nicht vorgesehen, obwohl Arbeiter und Rechenwerk den Wert längst durchreichten —
das Formular sandte an ihrer Stelle hart einen leeren Wert. Die zweite war
überhaupt nicht erreichbar.
Das Fehlende wiegt ungleich. Die Artikelangabe erspart Mühe; die Textausgabe
dagegen ist der einzige Weg, einem unerklärlich unangewandten Befehl auf den Grund
zu gehen. Wer im Browser arbeitete, stand vor einem Ergebnis, das er nicht
nachprüfen konnte, und war auf die Befehlszeile verwiesen — also gerade auf das,
was die Browserfassung entbehrlich machen sollte.
Die Textgewinnung wandert deshalb aus der Befehlszeilenklasse in den gemeinsamen
Kern (Pipeline.extrahiereText); beide Fassungen nehmen fortan denselben Weg. Der
Vordruck erhält das Feld „Anzuwendender Artikel“ und das Ankreuzfeld „Statt der
Synopse nur den maschinell gelesenen Text der Änderungsdokumente ausgeben“; das
Ergebnis kommt wie die Synopse als Verweis zum Öffnen und Sichern. Nebenbei
verträgt die Umsetzung nach Wahrheitswerten nun ein nicht gesetztes Feld, das als
„undefined“ herüberkommt. Das Handbuch zählt die Absätze des § 14 wieder
fortlaufend — es führte (6) und (7) zweimal — und stellt die Angaben des Vordrucks
den Schaltern des § 6 Absatz 2 gegenüber.
Eine neue Prüfung hält die Ausgabe des Notausgangs gegen den Text, den der Parser
bekommt: Führte sie einen anderen vor, so wiese sie in die Irre. Der Prüfbestand
umfasst hiernach 335 Prüfungen, sämtlich grün; REUSE meldet 174/174.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I2a9aee042b6454f8d591bc415a5c6f1c1e7b40b6
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Baden-Württemberg war das letzte Land mit einem Änderungsdokument, aber ohne
Belegfall. Es hat vier Funde des Satzbildes und einen der Anwendung gebracht.
Der Seitenfuß des Gesetzblatts steht im Inhaltsstrom mitten im Befehlstext und
trennt dort den Zieltext eines Befehls von seinem Verb — „… die Wörter
‚Telegramm, Fernschreiben,‘“, Fußzeile, „gestrichen.“; die Blattzählung steht
mitunter für sich allein zwischen zwei Gliederungspunkten. Beides wird nun
herausgeschnitten. Dazu zwei Idiome: Der Dativ einer Anfügung darf seinen
Artikel verlieren („Absatz 2 wird folgender Satz angefügt“), und hinter einer
Anlagenbezeichnung darf ein beschreibender Klammerzusatz stehen.
Der Anwendungsfund betrifft den Halbsatz: Wird der zweite gestrichen, so nimmt
er sein Semikolon mit, und der Satz behält seinen Schlusspunkt. „A; B.“ ohne B
ist „A.“ und nicht „A;“.
Bei der Gelegenheit fiel eine Ordnungsfrage auf, die allgemein ist: Die Glieder
einer Fundstelle werden jetzt in der Reihenfolge aufgelöst, in der die Stelle
sie nennt, und jedes verengt den Suchbereich des nächsten. „Absatz 2 Nummer 1
Satz 2“ meint den zweiten Satz der Nummer 1, „Satz 1 Nummer 3“ dagegen die
dritte Nummer des ersten Satzes; wer stets zuerst den Satz oder stets zuerst die
Nummer suchte, träfe in einem der beiden Fälle die falsche Einheit.
Einunddreißig der siebenunddreißig Befehle werden angewandt, und einundneunzig
der dreiundneunzig Normen gleichen danach der amtlichen Fassung. Die sechs
liegengebliebenen ändern sämtlich die Muster der Anlagen — den Wahlschein, die
Merkblätter, deren Fußnoten und Spiegelstriche. Sie sind nicht anwendbar, weil
das Landesrechtsportal die Muster nicht als Text ausliefert: Die Anlagen 2 bis 14
bestehen dort nur aus Kopf und Fundstelle. Das ist eine Grenze der Quelle, nicht
des Werkzeugs, und sie ist als solche benannt.
Damit trägt jedes Land, von dem ein Änderungsdokument vorliegt, einen Belegfall
bis zur Anwendung.
Geprüft mit „mvnw verify“: 334 Prüfungen, kein Fehlschlag; keine gepinnte Zahl
eines anderen Belegfalls hat sich geändert. REUSE 174/174.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: If1709f0c037195a510febb7f8a21396ed0133d45
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Der Zuständigkeitskatalog des Berliner Sicherheits- und Ordnungsgesetzes zählt
seine Einheiten nicht als Aufzählungsglieder, sondern führt sie als „Nummer 6“,
„Nummer 23“, „Nummer 31“ — jede mit eigener Absatzzählung, jede im Portal eine
eigene Einzelnorm. Der Stellenauflöser suchte dagegen eine Marke „6.“ im
Wortlaut der Anlage und fand dort vielerlei; von sechs Befehlen des Artikels 1
wurden zwei angewandt.
Sie werden nunmehr geführt, wie sie sind: als eigene Normen, deren Bezeichnung
die Anlage voranstellt. Damit trägt die vorhandene Absatz-Maschinerie ihre
Befehle unverändert, und es braucht keinen neuen Rang im Modell. Wo ein Gesetz
solche Normen nicht führt — im gii-XML des Bundes stehen die Nummern einer
Anlage als Marken im Wortlaut —, bleibt es beim bisherigen Weg.
Dabei kamen drei Mängel ans Licht. Ob die feinste Komponente einer Fundstelle
ein Absatz ist, entschied das bloße Vorkommen einer feineren Komponente; die
Nummer einer Anlage steht aber vor der Absatzangabe und gehört zur Bezeichnung
der Norm. Die Umnummerierung eines solchen Absatzes galt deshalb als die einer
Aufzählungseinheit, tauschte eine Marke, die es nicht gab, hieß angewandt und
bewirkte nichts. Ein Absatz, der „vor den Wörtern …“ eingefügt wird, wurde eine
Zeile im Nachbarabsatz statt eines Absatzes. Und die Bezeichnung eines so
eingefügten Absatzes verlor die Nummer der Anlage, weshalb die Schritt-Ordnung
nicht sah, dass eine Umnummerierung ihm den Platz erst räumt.
Beigelegt sind die beiden Fassungen des ASOG, über die Browsersteuerung
beschafft. Der Auszug ist dort bei fünfzigtausend Zeichen gekappt und verschluckt
einzelne Leerzeichen; base64-kodierte Stücke kamen zeichengenau herüber.
Fünf der sechs Befehle werden angewandt, und 168 der 171 Normen gleichen danach
der amtlichen Nachfassung. Die drei Abweichungen sind benannt und liegen nicht
in der Anwendung — eine von ihnen belegt erstmals, was die geometrische
Lesereihenfolge kosten würde: Der Titelblock des Änderungsgesetzes steht im
Inhaltsstrom mitten in einem Zitat.
Geprüft mit „mvnw verify“: 333 Prüfungen, kein Fehlschlag; keine gepinnte Zahl
eines anderen Belegfalls hat sich geändert. REUSE 171/171.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I24b94cb96e6728b1ff1b1fcb5bb4b8433594e240
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Eine Synopse mit fünfzig liegengebliebenen Befehlen war bisher eine unsortierte
Liste von achtundsechzig verschiedenen Sätzen. Wer sie las, erfuhr über jeden
einzelnen Befehl das Genaue und über das Ganze nichts — namentlich nicht, ob
eine Vorlage am Werkzeug scheitert, am Wortlaut des Änderungsgesetzes oder am
falschen Stand des Stammgesetzes.
Neben den ausformulierten Grund tritt deshalb seine Art. Vergeben wird sie
dort, wo der Grund entsteht: Die Stellenauflösung, die Textoperation und die
Zeilensuche in der Inhaltsübersicht führen sie mit ihrem Wortlaut, weil allein
die erzeugende Stelle sie kennt. Der Wortlaut bleibt unberührt und maßgeblich —
der Grundsatz der Nichtverwerfung verlangt die genaue Auskunft im Einzelfall;
gebündelt wird nur, was ohne Ordnung eine bloße Liste wäre.
Den größten Ertrag trägt die Auszählung sofort: Von den fünfzig Resten des
Gebäudeenergiegesetzes gegen den heutigen Stamm sind einundvierzig von einer
einzigen Art, nämlich „Zieltext nicht vorhanden“ — die Handschrift eines
Stammgesetzes, das jünger ist als das Änderungsgesetz.
Diese Lage rügt das Werkzeug nunmehr eigens. Dazu liest es die Standangabe der
Quelle, und zwar nicht die Standzeile allein: Das gii-XML führt daneben
Hinweise der Form „Änderung durch Art. 1 G v. 18.11.2020 … textlich
nachgewiesen“, die bezeugen, dass der Wortlaut die Änderung längst trägt,
während die Standzeile noch die vorige nennt. Genau daran scheiterten im
Infektionsschutzgesetz siebenundzwanzig Befehle, ohne dass jemand den Grund
benennen konnte. Verglichen wird das späteste genannte Datum mit der Fassung,
die der Einleitungssatz fortschreibt; ist der Stamm der jüngere, ergeht die
Rüge einmal je Dokument. Fehlt eine Angabe, schweigt die Prüfung.
Zwei Anwendungslücken sind daneben geschlossen: Das ankerlose Anfügen ganzer
Paragraphen wird angewandt statt gemeldet, und die Zurückweisung des
Einfügeankers „am Ende“ ist als bewusst gezogene Grenze kenntlich gemacht — die
Verbindung kommt im gesamten Prüfbestand kein einziges Mal vor, und Vorschriften
auf Verdacht werden nicht geschrieben.
Geprüft mit „mvnw verify“: 332 Prüfungen, kein Fehlschlag; keine gepinnte Zahl
hat sich geändert. REUSE 168/168.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I042c4389034f728c4b66f8161dc15e05938185ba
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die beiden größten Restzahlen des Prüfbestands — GEG einundfünfzig, IfSG
siebenundzwanzig manuell zu prüfende Befehle — waren nie gepinnt, und niemand
hatte sie je gegen ein Sollergebnis gehalten. Der Verdacht stand im Raum, sie
seien kein Mangel des Werkzeugs, sondern ein Altersunterschied: Das gii-XML ist
die heutige konsolidierte Fassung, während das Änderungsgesetz von 2023 bzw.
2020 auf die damalige zielt. Der Verdacht trifft zu, aber nicht ganz.
Beschafft sind die zeitrichtigen Fassungen aus dem Wayback-Schnappschuss des
amtlichen Archivs „xml.zip“ — dasselbe Format, das der Loader ohnehin liest.
Maßgeblich für die Wahl ist der Einleitungssatz des Änderungsgesetzes; beide
Schnappschüsse tragen genau den dort genannten Stand.
Gegen sie gerechnet, blieben zunächst fünf und sieben Reste. Diese zwölf sind
erstmals echte Befunde gewesen, und neun von ihnen benannten vier allgemeine
Mängel, die alle behoben sind: Eine Wortersetzung griff in längere Wörter
hinein und verbrauchte mit „schwerwiegende“ auch „schwerwiegender“; eine
eingerückte Aufzählungsmarke galt als Satzende, weshalb ein Absatz mit
Aufzählung mehr Sätze zählte als das Gesetzblatt; eine Ordnungszahl vor einem
Gliederungswort ebenso; eine Nummer wurde im ganzen Absatz gesucht statt im
benannten Satz; und eine Gliederungseinheit, die Rahmen und Befehl beide
nennen, suchte sich innerhalb ihrer selbst.
Übrig bleiben drei Reste im GEG, jeder im Test einzeln begründet: zweimal
dieselbe Kaskade des § 108 — die Aufhebung einer „bisherigen“ Nummer, deren
Bezeichnung ein anderer Punkt gerade neu vergibt, und eine Begleitklausel ohne
eigene Ortsangabe — und einmal die Überschrift einer Nummer der Anlage 8. Das
letzte ist dieselbe offene Modellfrage wie bei Berlins Anlage.
Vier gepinnte Zahlen sind dadurch gestiegen; der Grund steht jeweils im Test.
Das WDR-Gesetz trägt seither keinen Rest mehr.
Geprüft mit „mvnw verify“: 330 Prüfungen, kein Fehlschlag; REUSE 167/167.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I338e78ec3d46e0d0d8e57e77831ebae34497ae7b
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Der Klartext-Parser trägt fortan Anlagen: „Anlage“, „Anlage 2“ und „Anhang“
eröffnen eine eigene Norm, deren Bezeichnung genau so lautet wie im gii-XML, und
vom ersten Anlagenkopf an gehört alles Folgende zu ihr — ihre inneren
Überschriften gliedern nicht mehr das Gesetz, und ein Paragraph, den sie
zitieren, eröffnet keine Norm.
Berlin ist damit zur Hälfte belegt. Artikel 2 des Änderungsgesetzes schreibt das
LAF-Errichtungsgesetz vollständig fort; alle fünf Normen gleichen danach der
amtlichen Fassung vom 12. Juni 2026. Artikel 1 bleibt bei der Erkennung, und der
Grund ist benannt statt umgangen: Fünf seiner sechs Befehle zielen auf Einheiten
der Anlage, die dort als Überschriften stehen — „Nummer 6“, „Nummer 23“,
„Nummer 31“ —, während der Stellenauflöser eine Aufzählungsmarke „6.“ sucht, die
im Text der Anlage vielfach vorkommt. Die Gegenprobe belegt es: Werden die
Überschriften versuchsweise in Marken umgeschrieben, steigt die Zahl der
angewandten Befehle von zwei auf drei, mehrdeutig bleibt der Rest. Die Nummern
einer Anlage brauchen einen eigenen Rang zwischen Norm und Absatz.
Solange er fehlt, bringt die Beilage von zweimal 380 kB Stammfassung keinen
Prüfgewinn; ihr Bezugsweg steht in „Berlin/SOURCES“ und führt in zwei Abrufen
wieder dorthin. Dort ist auch der zweite Berliner Befund festgehalten: Das Portal
setzt die amtlichen Satznummern als angeklebte Ziffern statt als Superskripte.
Geprüft durch „mvnw verify“: 328 Tests, keine bestehende gepinnte Zahl bewegt,
REUSE-Konformität 165 von 165.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Ifdda599a8c641ce66d0370b2a027f556adb4d86d
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Schleswig-Holstein ändert mit einem Gesetz die Gemeindeordnung und die
Kreisordnung zugleich, jede in ihrem eigenen Artikel. Beide Stammfassungen sind
nun über die Browsersteuerung beschafft — Vor- wie Nachfassung —, und beide
werden vollständig fortgeschrieben: je ein Neufassungsbefehl, kein Rest, und
danach gleicht die Gemeindeordnung in allen 167, die Kreisordnung in allen 86
Normen der amtlichen Fassung vom 31. März 2026. Der dritte Artikel ändert ein
anderes Änderungsgesetz und bleibt zu Recht unbeachtet.
Der Portalsatz hat zwei Eigenheiten. Er trennt die Sachnummer ab („§ 57 c“
statt „§ 57c“); zusammengezogen gehört das zur Aufbereitung, ohne den Handgriff
wären zehn Paragraphen der Gemeindeordnung dem Gesetz entgangen. Und er setzt im
Klammerzusatz „(Gemeindeordnung - GO -)“ einen Bindestrich, wo das Gesetzblatt
einen Gedankenstrich führt. Daran scheiterte die Trennung von Kurztitel und
Abkürzung, der Einleitungssatz fand sein Ziel nicht, und es wurde kein Artikel
gewählt. Der Parser nimmt den Strich fortan in beiden Gestalten an, sofern
Leerraum ihn umgibt — innerhalb eines Namens steht ein Bindestrich stets ohne.
Geprüft durch „mvnw verify“: 327 Tests, keine bestehende gepinnte Zahl bewegt,
REUSE-Konformität 162 von 162.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I11e8e84436c9b4b0e1729f5e4be012cc35335a0c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die Landesrechtsportale, die auf der juris-Anwendung beruhen, galten als
Sackgasse: Jede Skriptabfrage erhält nur ihre leere Anwendungshülle, gleich
unter welcher Adresse. Sie geben ihren Wortlaut aber jedem Browser, und über
eine Browsersteuerung ist er Werk für Werk auszulesen. Damit ist die hessische
Verkehrsrechts-Zuständigkeitsverordnung in beiden maßgeblichen Fassungen
beschafft — der vom 1. Januar 2026 und der vom 4. Februar 2026 — und Hessen ist
kein bloßer Erkennungsfall mehr, sondern ein voller Belegfall: einundzwanzig
Befehle, kein Rest, und alle zweiundfünfzig Normen gleichen zeichengenau der
amtlichen Nachfassung.
Der Weg dorthin hat fünf allgemeine Lücken aufgedeckt. Der Klartext-Parser
verlangte für jeden Normkopf eine Überschrift, die eine Verordnung nicht führt,
und kannte die ausgeschriebene Gliederung nicht („Erster Teil“); ein
Aufzählungsglied, das auf „und“ endet, galt ihm als Unter-Überschrift. Der
Anwender behandelte die Streichung einer Absatzbezeichnung wie die Aufhebung des
Absatzes, setzte Platzhalter auch dort, wo kein Platz zu halten war, und ließ
ein Wort, das an die Stelle eines Satzzeichens tritt, am Vorwort kleben.
Zwei stille Mängel kamen unverhofft mit: „List.remove“ war zweimal ein geboxter
Index übergeben, sodass der Aufruf an die suchende Überladung band, nichts fand
und nichts meldete. Betroffen war neben der Aufhebung eines Absatzes auch dessen
Neufassung durch mehrere — der alte Absatz blieb neben den neuen stehen.
Geprüft durch „mvnw verify“: 327 Tests, keine bestehende gepinnte Zahl bewegt,
REUSE-Konformität 157 von 157.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I20ac8a7bc66357cd66daa167184b06b8c419f843
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Gerrit (gerrit.benkard.de/plugins/gitiles/aendggner) weicht
https://git.benkard.de/mulk/aendggner.
Nachgezogen ist die Anschrift an allen fünf Stellen: im Handbuch (§ 3 Abs. 2),
im Feld SPDX-PackageDownloadLocation der REUSE.toml, in der Zeile „Fortlaufend“
des beigelegten quelltext-fassung.txt (deploy/webpaket.sh) sowie in den
Fußzeilen der Startseite und des Impressums. Dort trug der Verweis die
Beschriftung „Gerrit“; sie lautet fortan „Git“, denn sie benennt keine bestimmte
Oberfläche mehr.
Damit bleibt die Nennung nach AGPLv3 § 13 erreichbar. Die REUSE-Prüfung meldet
unverändert Konformität mit der Spezifikation 3.3 (154/154).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I52f5fadfece4b0fb7e8c09c097835b90a701a449
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Zwei Wortlaute desselben Handbuchs nebeneinander zu pflegen wäre eine
Fehlerquelle; seit der Übersetzung trägt README.md den vollständigen Text.
Die beiden Verweise des Bauwerks sind nachgezogen: die Bauanleitung im
beigelegten Quelltextarchiv (deploy/webpaket.sh) und der Hinweis auf den
Abschnitt „Ausrollen“ (deploy/nginx-aendggner.conf). Die Fundstellen im
Verzeichnis der Fassungen bleiben als geschichtliche Angabe stehen.
Die REUSE-Prüfung meldet unverändert Konformität mit der Spezifikation 3.3;
einhundertvierundfünfzig von einhundertvierundfünfzig Dateien tragen Urheber-
und Lizenzangabe.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I6198be600b9d8df38a791163708a2c17ba4328a6
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Das Handbuch stand allein als AsciiDoc; wer den Quelltext über ein Verzeichnis
betrachtet, das nur Markdown darstellt, sah es als Rohtext.
Die Übersetzung gibt den Wortlaut unverändert wieder. Übersetzt sind allein die
Auszeichnungen: Überschriften, Quelltextblöcke, Verweise, Aufzählungen und die
Begriffsverzeichnisse. Der Attributkopf des AsciiDoc entfällt; an seine Stelle
tritt ein Inhaltsverzeichnis über die siebzehn Paragraphen und den
Lizenzabschnitt. Die REUSE-Angaben stehen als HTML-Kommentar im Kopf.
Die Folge der Absatzziffern ist gegen die AsciiDoc-Fassung abgeglichen und
stimmt überein, einschließlich der dort vorgefundenen doppelten Zählung der
Absätze 6 und 7 des § 14, die unangetastet bleibt. Die Prüfung meldet
unverändert Konformität mit der REUSE-Spezifikation 3.3 (155/155).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Ie930a0f5d847a66522a5f2193ef8524c0cd24487
|
| |
|
|
| |
Change-Id: Ie5a1dfb641d40b88669dd4a44ec336aaaaea1fa1
|
| |
|
|
| |
Change-Id: I11dcd6e8b1ae2f5410dc780e56a819d5c5199205
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die Unterstreichung der Einfügungen zerschnitt die Unterlängen der Antiqua und
ließ eingefügte Wortstücke wie Verweise aussehen. Sie entfällt.
Damit fällt aber die Stütze weg, auf der das Farbgerüst bei Farbfehlsichtigkeit
ruhte, und diese Stütze war nicht entbehrlich: Rot gegen Grün ist gerade das
Paar, das bei Protanopie und Deuteranopie zusammenfällt. Die Messung bestätigt
es — der Farbabstand der beiden bisherigen Hinterlegungen betrug bei
Deuteranopie ΔE = 4,8 im hellen und ΔE = 4,4 im dunklen Gerüst; sie waren dort
ununterscheidbar. An die Stelle des Grüns tritt deshalb ein Blau: Blau bleibt
Blau, wo Rot zu Beige wird, und ist zugleich merklich dunkler. Das neue Paar
hält in allen drei Formen der Dichromasie ΔE zwischen 24 und 58 und dazu ein
Helligkeitsverhältnis von 1,10 bis 1,44; der Text steht überall über 4,5 zu 1.
Die Unterstreichung ausdrücklich abzustellen ist geboten: Sie steht im Stilblatt
des Browsers und bliebe sonst stehen — ein Mangel, der erst der Ansicht des
Erzeugnisses anzusehen war, nicht dem Quelltext. Die Durchstreichung der
Streichungen bleibt; sie trägt allein den Schwarzweiß-Ausdruck.
Alte und neue Fassung stehen ferner auf demselben weißen Feld. Der
Durchschlag-Raster unter der alten Spalte wiederholte nur, was der Spaltenkopf
ohnehin sagt, und mindert den Abstand der Hinterlegungen zum Grund.
Geprüft an der erzeugten Datei und nicht am Quelltext: Für die Synopse des
Bayerischen Jagdgesetzes ist im hellen, im dunklen und im Druckgerüst erhoben,
dass keine der achthundertachtzig Einfügungen unterstrichen ist und beide
Spalten denselben Grund tragen; dreihundertsiebenundzwanzig Testfälle bestehen,
mvnw verify läuft durch.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Iee91db7eb8ec13b5b51d8ad140691bba084971cc
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die bisherige Gestaltung hatte sich am Begriff des amtlichen Formulars
orientiert, nicht an einem solchen. Der Abgleich mit einem wirklichen
Bundesvordruck — dem Antrag auf Erteilung einer Bescheinigung für den
Lohnsteuerabzug bei erweiterter unbeschränkter Einkommensteuerpflicht — hat
ergeben, dass sie in fast jedem Merkmal danebenlag.
Maßgeblich ist eine einzige Regel, und sie steht im Muster ausgeschrieben:
„Weiße Felder bitte ausfüllen“. Grau ist, was die Stelle gedruckt hat —
Beschriftungen, Leitspalten, Abschnittsköpfe, die Verfügung am Ende; weiß ist,
was der Antragsteller beiträgt. Bisher war es umgekehrt. Diese Regel trägt nun
die gesamte Gestaltung und ist im Vordruck selbst benannt.
Alles Übrige folgt daraus. Die Zellen stoßen aneinander, ohne Abstand und ohne
Rundung, verbunden durch schwarze Haarlinien; die Rahmen sind halbiert, damit
zwischen zwei Zellen eine einzige Linie steht. Die Beschriftung sitzt klein im
Feld oben links, die Erläuterung in Klammern dahinter. Links läuft die
Leitspalte mit den Abschnittsbezeichnungen. Das Ankreuzfeld wird angekreuzt,
nicht angehakt. Der Abschnitt „Zur Beachtung:“ nimmt auf, was bisher über
Tagline, Haftungsabsatz und noscript-Kasten verstreut war. Und die Meldung wird
zur „Verfügung der Zentralstelle“, die auch dann schon dasteht, wenn sie noch
leer ist — ein Vordruck zeigt seine Abschnitte, bevor sie ausgefüllt sind.
Die Schmuckfarbe entfällt ersatzlos: Das Amtsrot war erfunden, wirkliche
Bundesvordrucke führen keine. Rot und Grün bleiben allein dort, wo sie etwas
bedeuten. Die Kennung wandert aus dem gerahmten Verzeichnis oben rechts in die
Fußecken, links die Vordrucknummer, rechts der Ausgabestand. Die Synopse folgt
demselben Gerüst.
Ein weiterer Mangel ist dabei zutage getreten: Der Grund der Leitspalte hing am
Block statt an der Zelle. Im Druck fällt die Fläche des Blocks weg, sodass die
Leitspalte weiß herausgekommen wäre — und das Grau ist keine Zier, es sagt,
welche Felder auszufüllen sind.
Geprüft an allen drei Seiten und an zwei wirklichen Synopsen (UWG 19/0/6, AGG
23/1/14 als Entwurfsfassung), hell und dunkel, breit und schmal, dazu die
Druckvorschau; reuse lint meldet 154/154, mvnw test dreihundertsiebenundzwanzig
Testfälle ohne Fehler.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Ie0303f71baf5905fc8255f15ff375015a1de483e
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Seit die Aufgabeseite das Gewand eines amtlichen Formblatts trägt, sah man
beim Öffnen der Synopse zwei Dokumente zweier Häuser: dort Groteske, Briefkopf
und Amtsrot, hier Antiqua auf Weiß ohne Kopf und ohne Fuß. Sie treten nunmehr
als Vorgang und Erzeugnis desselben Hauses auf — der Antrag als ÄG-1, die
darauf ergehende Synopse als ÄG-2.
Der Kopf trägt denselben Aufbau: links die ausstellende Stelle, rechts die
Kennung mit Formblatt, Stammgesetz, Erstellungstag und Geltung, bei Entwürfen
zusätzlich der Stand. Die Felder des Spaltenkopfes und die Überschriften der
beiden Sonderabschnitte treten als schwarze Balken auf wie die Legende des
Feldblocks. Jede Norm trägt im Steg links eine Randziffer, wie der Vordruck die
Feldziffer; sie macht die Abschnitte zugleich zitierbar. Die alte Fassung liegt
auf dem Kastenton wie ein Durchschlag, die neue auf Bogenweiß.
Die Schrift bleibt geteilt: Der Vordruck steht in der Groteske, der Wortlaut
der Normen in der Antiqua. Amtskopf und Vorschrift sind zweierlei, im
Gesetzblatt wie hier. Dass das Farbgerüst zweimal geführt wird, ist
unvermeidlich und nun an beiden Stellen vermerkt — die Synopse wird aus einem
blob:-Verweis geöffnet und kann kein fremdes Stilblatt einbinden.
Drei Mängel traten dabei zutage. Der Spaltenkopf klebte innerhalb des
Kopfblocks und verschwand deshalb beim Blättern alsbald; er steht jetzt mit der
Gegenüberstellung in einem eigenen Block. Auf schmalen Geräten standen zwei
Spalten Gesetzestext nebeneinander; unterhalb von sechzig Halbgevierten wird
gestapelt, und jede Spalte beschriftet sich dort selbst. Und die Druckblöcke
beider Stilblätter setzten nur einen Teil des Farbgerüstes zurück — aus einem
dunkel eingestellten Browser heraus wäre die alte Spalte als schwarzer Block
aus dem Drucker gekommen.
Geprüft an zwei wirklichen Läufen der Befehlszeilenfassung: UWG mit dem
Dritten Änderungsgesetz (19 Befehle, 0 manuell, 6 Normen) und AGG mit dem
Regierungsentwurf (23 Befehle, 1 manuell, 14 Normen, Entwurfsfassung), beide
hell und dunkel, breit und schmal, dazu die Druckvorschau; reuse lint meldet
154/154, mvnw test dreihundertsiebenundzwanzig Testfälle ohne Fehler.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I76d1f5f14638700d695a7ffe7a6a5933bee10611
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die Browserfassung trug ein schmuckloses Kleid: Antiqua auf Weiß, eine Spalte,
drei dünn gerahmte Kästen. Sauber, aber austauschbar — es sah aus wie ein
Aufsatz und nicht wie das, was das Erzeugnis ist: eine Stelle, die
Änderungsbefehle abarbeitet und darüber Rechenschaft ablegt.
Der Satzspiegel liegt nunmehr als umrandeter Bogen auf einer Unterlage. Oben
steht ein Briefkopf: links die ausstellende Stelle, rechts die Kennung des
Vordrucks als Verzeichnis — Formblatt ÄG-1, Vorgang oder Anlage, Geltung
nichtamtlich. Die Kennung steht im Text und nicht im Stilblatt, damit sie sich
auswählen und vorlesen lässt; der Zusatz „nichtamtlich“ hält fest, dass die
amtliche Anmutung keine amtliche Herkunft behauptet. Darunter die Doppellinie,
kräftig in Amtsrot über dünn in Rasterfarbe.
Das Formular ist ein Feldblock mit der Legende „Antrag auf Erstellung einer
Synopse“ als schwarzem Balken im Rahmen. Die Feldziffern entstehen aus einem
Zähler des Stilblattes und stehen im Steg links, sodass die Auszeichnung der
Felder unangetastet bleibt. Die Meldung führt ihr Zeichen mit — ✓ und ! —,
damit der Zustand auch ohne Farbe erkennbar ist; es setzt das Stilblatt, weil
die Textverarbeitung den Text ersetzt. Zwei Dinge treten hinzu, die gänzlich
fehlten: eine sichtbare Fokusanzeige und ein Druckbild.
Sämtliche Angriffspunkte der Textverarbeitung bleiben wörtlich erhalten;
app.js, worker.js und der Java-Teil sind nicht angetastet. Aufgenommen sind
ferner aria-describedby für die Erläuterungssätze der Felder und aria-live für
die Meldung, die ihren Text bislang stumm wechselte.
Geprüft an allen drei Seiten in hellem und dunklem Gewand, in schmaler Breite
und in der Druckvorschau, ferner mit den drei Zuständen der Meldung; reuse lint
meldet 154/154, mvnw test dreihundertfünfundzwanzig Testfälle ohne Fehler.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Icc469062e28966384f25598750e198df2fbb29f7
|