| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Das Impressum sprach von der „Version 3“ ohne Nachfolgeklausel, der
Fußzeilenverweis der Startseite von „AGPLv3“, die „pom.xml“ von gar nichts. Drei
Stellen, drei Genauigkeitsgrade — und in der Auszeichnung, die soeben entstanden
ist, steht „AGPL-3.0-or-later“. Eine Lizenz, die je nach Fundstelle anders
lautet, ist keine gewählte, sondern eine offengelassene.
Sie lautet fortan überall auf die Version 3 oder, nach Wahl des Empfängers, eine
spätere Fassung: im Impressum ausgeschrieben, im Fußzeilenverweis kurz, in der
„pom.xml“ als „licenses“-Block mit Verweis auf den Wortlaut im Quelltext. Das
Handbuch erhält einen Abschnitt „Lizenz“, der die drei vorkommenden Lizenzen
nennt, die Sonderstellung des Prüfbestandes erklärt und den Prüfbefehl angibt.
Geprüft wird zweifach. Der Lauf von „spotless:check“ ist an die Phase „verify“
gebunden und hält den Bau an, sobald eine Quelldatei ohne Kopfzeile oder ohne die
vereinbarte Formatierung hinzukommt — die Kopfzeilen sind damit nicht bloß
gesetzt, sondern gehalten. Für alles Übrige gilt „uvx reuse lint“; ein
Fortlaufwerk gibt es in diesem Repositorium nicht, weshalb der Befehl im Handbuch
steht und nicht in einer Baueinstellung.
Die Prüfung meldet Konformität mit der Fassung 3.3 der Spezifikation:
einhundertvierundfünfzig von einhundertvierundfünfzig Dateien tragen Urheber- und
Lizenzangabe, keine Lizenz bleibt ungenutzt, keine fehlt. Der Bau läuft samt der
nunmehr scharfen Formatprüfung durch, dreihundertfünfundzwanzig Testfälle
bestehen. Das ausgelieferte Quelltextarchiv ist von sich aus konform, denn
„.gitattributes“ nimmt den Prüfbestand von ihm aus.
„FASSUNGEN.txt“ führt die Fassung vom 23. August 2026.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Ief8a247b359ed34d8598fbc76f6d86a84575b094
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Achtundfünfzig Java-Dateien brauchen dieselben zwei Zeilen, und jede künftige
braucht sie ebenfalls. Von Hand gesetzt, hielte das keinen Monat: Die eine Datei,
die man vergisst, ist genau die, an der es später auffällt.
Spotless führt daher fortan einen „licenseHeader“ mit dem Wortlaut, den die
übrigen Dateien schon tragen. Der voreingestellte Trenner für Java ist das
Schlüsselwort „package“; die Kopfzeilen treten also über die Paketangabe, und
Spotless prüft und ergänzt sie bei jedem Lauf.
Dabei hat sich ergeben, dass „src/wasm/java“ der Formatprüfung bislang verborgen
war. Das Verzeichnis tritt dem Quellbaum erst im Profil „wasm“ bei, und zwar
durch das Build-Helper-Plugin; im gewöhnlichen Bau sah Spotless es nie. Die
Quellverzeichnisse sind deshalb ausdrücklich benannt („src/*/java/**/*.java“),
was zugleich die doppelte Erfassung unter dem Profil vermeidet.
Als Folge sind „BrowserMain“ und „InflaterErsatz“ erstmals umformatiert worden.
Es geht dabei allein um das Satzbild — ein umbrochener Kommentarsatz und vier
Annotationen, die nunmehr je auf eigener Zeile stehen; am Sinn ändert sich
nichts. Sie stehen hier bewusst neben den Kopfzeilen und nicht in einem eigenen
Commit, denn beides folgt aus derselben Einstellung und wäre getrennt nicht
nachvollziehbar.
Der Lauf von „spotless:apply“ hält achtundfünfzig Dateien sauber.
Dreihundertfünfundzwanzig Testfälle bestehen unverändert.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I3a41b93108ad13ed16f78385d6272e5c10a255a1
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Das Erzeugnis steht seit seinem ersten Tage unter der GNU Affero General Public
License. Ausgesprochen war das indes nur an drei verstreuten Stellen: im
Lizenzvolltext „COPYING“, in einem Satz des Impressums und in einer Bemerkung der
Datei „.gitattributes“. Keine einzige Quelldatei nannte ihren Urheber oder ihre
Lizenz. Wer eine Datei für sich betrachtet — und so betrachtet sie jeder, der sie
übernimmt —, fand daran nichts.
Maßstab ist die REUSE-Spezifikation in der Fassung 3.3. Das Verzeichnis
„LICENSES“ nimmt die Wortlaute auf: die AGPL in der Fassung 3 oder später, die
Apache-Lizenz für den unverändert mitgelieferten Maven-Wrapper und
„LicenseRef-AmtlichesWerk.txt“. „COPYING“ bleibt an seiner Stelle, tritt aber als
symbolische Verknüpfung auf; der gewohnte Pfad trägt damit fort, ohne dass zwei
Wortlaute nebeneinander zu pflegen wären, und die Prüfung übergeht Verknüpfungen,
sodass für den Lizenztext selbst keine sachfremde Lizenzangabe zu erfinden war.
Die dritte Datei bezeichnet keine erteilte Lizenz, sondern hält die gesetzliche
Rechtslage des Prüfbestandes fest. Fünfundvierzig PDF-Dateien, fünf EPUB-Dateien
und die XML-Fassungen sind fremde Werke: Verkündungsblätter, Drucksachen,
Plenarprotokolle und Entwürfe des Bundes und der Länder. Sie sind nach § 5 Abs. 1
UrhG gemeinfrei, die ministeriellen Entwürfe und Synopsen nach § 5 Abs. 2, und
gleichwohl gebunden an Änderungsverbot und Quellenangabe nach §§ 62 und 63.
Ausdrücklich festgehalten ist, dass die technische Aufbereitung durch die
Rechtsportale kein eigenes Recht am Text begründet und dass der Bestand kein
„Corresponding Source“ im Sinne der AGPL ist — gebaut wird ohne ihn.
„REUSE.toml“ ordnet zu, was keinen Kommentar verträgt, und scheidet den
Prüfbestand nach Herkunft: Bund in Verkündung und Parlament, Bund in den
ministeriellen Entwürfen, gesetze-im-internet.de nebst der Aufbereitung durch die
juris GmbH, sodann neun Länder je einzeln. Die selbst abgeleiteten Textfassungen
tragen „AGPL-3.0-or-later AND LicenseRef-AmtlichesWerk“, denn der Wortlaut ist
amtlich, die Aufbereitung — Einrückung, Superskript-Satznummern,
Gliederungsüberschriften — eigene Arbeit. Maßgeblich für die Fundstelle der
einzelnen Datei bleibt die Datei „SOURCES“ des jeweiligen Verzeichnisses; die
Lizenzdatei nimmt sie in Bezug, wie es § 63 UrhG verlangt.
Die übrigen Dateien tragen ihre Angabe in sich, im jeweils üblichen
Kommentarstil, vor dem vorhandenen erläuternden Text und ohne diesen anzutasten.
„mini-gii.xml“ und „.mvn/maven.config“ bleiben bewusst unberührt und erhalten
stattdessen einen Eintrag: Ersteres liest der GiiXmlLoader, Letzteres Maven vor
jedem Bau. Ein Ausrollwerkzeug hinterließ mit „.wrangler“ ein Zwischenverzeichnis
im Arbeitsbaum; es ist fortan übergangen.
Die Java-Dateien und die Angleichung der Lizenzaussage folgen gesondert. An
diesem Stand bestehen dreihundertfünfundzwanzig Testfälle unverändert; am
Verhalten des Erzeugnisses ändert sich nichts.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Id08e26d8e15545b2d00dd3d4fa7ffca86cf14944
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die Browserfassung geht seit der Umstellung des Webpakets über Cloudflare
Workers; die Datenschutzerklärung beschrieb aber weiterhin den Zustand davor.
Sie sprach von Zugriffsprotokollen, die „nach 14 Tagen“ gelöscht würden, und von
einem Dienstleister „innerhalb der Europäischen Union“. Beides traf nicht mehr
zu: Die Verbindungsdaten fallen beim Auftragsverarbeiter an, nicht beim
Verantwortlichen, die Löschfrist bestimmt jener und nicht dieser, und
übermittelt wird in die Vereinigten Staaten. Eine Erklärung, die den Betrieb
nicht trifft, verfehlt Art. 13 DSGVO gerade dort, wo sie gebraucht wird.
Der Abschnitt über die Zugriffsprotokolle sagt nunmehr, was anfällt, weshalb es
anfällt — Art. 6 Abs. 1 lit. f DSGVO, sicherer Betrieb und Abwehr von
Angriffen — und wo es liegt: bei Cloudflare, gelöscht nach dessen Fristen, ohne
dass der Verantwortliche Protokolle oder Auswertungen abriefe. Eine eigene
Tagesfrist steht dort nicht mehr, denn sie könnte nur wieder veralten. Sie
bleibt allein für die eigene Auslieferung mit nginx genannt, die als Nebenweg
offen ist.
Ein neuer Abschnitt benennt die Auslieferung selbst: Cloudflare Germany GmbH und
Cloudflare, Inc. als Auftragsverarbeiter nach Art. 28 DSGVO,
Standardvertragsklauseln nach Art. 46 Abs. 2 lit. c für die Übermittlung und die
Zertifizierung unter dem EU-US Data Privacy Framework, letztere ausdrücklich als
Angabe des Anbieters gekennzeichnet. Offen ausgesprochen ist auch, was das
technisch bedeutet: Der Mittler beendet die Transportverschlüsselung und sieht
die Abrufe. Er sieht nicht die ausgewerteten Dokumente, denn diese werden
überhaupt nicht übertragen — die tragende Aussage der Erklärung bleibt
ungeschmälert, und sie bleibt es gerade deshalb, weil im Browser gerechnet wird.
Zu den Cookies tritt hinzu, dass auch Cloudflare für die bloße Auslieferung
keine setzt und im Angriffsfall allenfalls ein kurzlebiges, technisch
notwendiges hinzukommt (§ 25 Abs. 2 Nr. 2 TDDDG). Web Analytics, Logpush, Bot
Management und Turnstile sind nicht eingeschaltet; darauf ist die Erklärung
zugeschnitten, und § 15 des README sagt fortan, dass ihr Einschalten sie zu
ergänzen zwingt. Eine Standangabe schließt die Seite, damit ein späterer Wechsel
der Betriebsart als Wechsel erkennbar bleibt.
Berührt sind allein statische Ressourcen; dreihundertfünfundzwanzig Testfälle
bestehen unverändert.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I0dca91a42702e5cf8b5e400a351f980ca0f08d42
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die Browserfassung soll künftig über Cloudflare Workers gehen, und dort gilt
eine Grenze von 25 MiB je Datei, unkomprimiert gemessen. Zwei der
ausgelieferten Dateien standen dem entgegen: Das Quelltextarchiv maß 29,7 MB
und war damit schon nicht mehr hochzuladen, das Wasm-Modul mit 24,5 MB zu
achtundneunzig Hundertsteln der Grenze und ohne jeden Spielraum.
Das Archiv war ein ungefiltertes „git archive“ des Repositoriums, und über
fünfundneunzig Hundertstel davon waren die Beispiel-PDFs. Der Quelltext selbst
misst keine dreihunderttausend Zeichen. Die Gesetzes- und Drucksachentexte sind
fremde Werke, an denen allein die Tests messen; sie sind nicht der Quelltext,
aus dem sich das Ausgelieferte herstellen ließe, und die Auflage des AGPLv3 § 13
verlangt sie deshalb nicht. Sie sind aus dem Archiv genommen, und
„quelltext-fassung.txt“ sagt fortan, dass sie fehlen, warum sie fehlen und wo
sie vollständig liegen. Damit dies nicht stillschweigend zurückfällt, bricht
„webpaket.sh“ ab, sobald das Archiv acht Mebibyte überschreitet, und ebenso,
wenn irgendeine ausgelieferte Datei die Grenze der Zielplattform reißt: Lieber
hier auffallen als beim Hochladen.
Der Korpus lag überdies unter „src/main/resources“ und wanderte deshalb in
jedes Erzeugnis: in das Klassenverzeichnis, in die ausführbare Archivdatei —
achtundzwanzig Megabyte für ein Werk von sechshundert Kilobyte Java — und auf
den Klassenpfad des Übersetzers, dessen Ressourcentabelle die Verzeichnisnamen
bis ins Wasm trug. Er liegt nunmehr unter „src/test/resources“, wo er hingehört,
und ist von der Kopie nach „target/test-classes“ ausgenommen: Die Tests lesen
ihn über Dateisystempfade, eine Kopie wäre bei jedem Bau fünfunddreißig
Megabyte umsonst.
Das Modul wiegt statt 24,5 nunmehr 17,2 Megabyte; komprimiert geht es mit 5,5
statt 7,1 Megabyte über die Leitung. Vier Ursachen liegen dem zugrunde. Der
Picocli-Annotationsprozessor meldete die Befehlszeilenklasse mit sämtlichen
Methoden zur Reflexion an, worauf die Erreichbarkeitsanalyse die ganze
Befehlszeilenfassung samt Dateizugriffen in ein Bild zog, in dem es keine
Befehlszeile gibt; im Profil „wasm“ läuft er nicht mehr, und eine von einem
früheren Lauf liegengebliebene Konfiguration wird vor dem Übersetzen entfernt,
damit die Größe nicht davon abhängt, was vorher lief. Der Ressourcen-Glob
„org/apache/fontbox/**“ bettete 3,3 Megabyte ostasiatischer CMaps, die
Schrifttabelle „Scripts.txt“ und — weil zwei Sterne auch Klassendateien treffen
— 0,7 Megabyte „.class“-Dateien ein, von denen ein deutsches Gesetzes-PDF nichts
braucht; geblieben sind die beiden Identity-CMaps. Die Metriken unter
„org/apache/pdfbox/resources“ bleiben vollständig, denn an ihnen hängt die
Breitenberechnung bei nicht eingebetteten Schriften. Übersetzt wird mit „-Os“,
und den Rest holt „wasm-opt -Oz“ im Webpaket.
Dessen Merkmale sind einzeln aufgezählt und nicht als „--all-features“ erteilt.
Der bequeme Weg war gangbar und führte doch ins Leere: Binaryen nutzte
daraufhin Vorschläge, die noch kein Browser annimmt, und das Modul scheiterte
erst beim Instanziieren — erst an einem exakten Heap-Typ aus den „custom
descriptors“, nach dessen Abschaltung an der kompakten Importsektion. Zugelassen
ist nunmehr, was ausgeliefert in den Browsern steht und was Web Image braucht.
Die Vorkompression nach „.gz“ und „.br“ entfällt als Regelfall, denn Cloudflare
komprimiert selbst und jede Beilage wäre dort eine weitere Datei; wer mit nginx
selbst ausliefert, fordert sie mit VORKOMPRIMIEREN=1 an. Das
Auslieferungsverzeichnis fällt damit von achtundsechzig auf siebzehn Megabyte,
und ein liegengebliebenes „.DS_Store“ geht nicht mehr mit hoch.
Dreihundertfünfundzwanzig Testfälle bestehen. Das Modul ist im Browser
gelaufen: Vier Dokumentenpaare — IfSG, UWG, AGG und das Bayerische Jagdgesetz,
also gii-XML wie PDF als Stammfassung, Bundesgesetzblatt, Drucksache und
Gesetz- und Verordnungsblatt als Änderungsdokument — ergeben Synopsen, deren
SHA-256-Summen denen der Befehlszeilenfassung gleichen. Der Ressourcenbeschnitt
kostet also keine Zeichen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I31a47d1dcf3b27ffa4ae891947b1c4e083107a71
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Von den im Juli beschafften Gesetzblättern der Länder war eines nie angefasst
worden: das Gesetz- und Verordnungsblatt für den Freistaat Thüringen. Es hat
sich als lohnend erwiesen, denn seine Eigenheiten sind keine thüringischen.
Das Blatt führt kein einziges öffnendes Anführungszeichen, sondern setzt das
gerade beidseitig. Bislang galt ein gerades Zeichen ausnahmslos als
schließendes — für das Bundesgesetzblatt und die Drucksachen trifft das zu,
dort öffnet stets das deutsche Zeichen, und ein gerades ist ein Satz- oder
Extraktionsfehler. In einem so gesetzten Blatt aber fand der Zitatextraktor
kein einziges Zitat, und sämtliche Befehle des Heftes gingen verloren. Fortan
entscheidet der Text als ganzer: Führt er kein deutsches öffnendes Zeichen, so
werden die geraden paarweise gelesen, das erste öffnend, das zweite schließend.
Bei ungerader Anzahl ist er nachweislich unbalanciert; dann bleibt es bei der
schließenden Lesart, und es ergeht eine Warnung. Eine Regel nach der Stellung
des Zeichens wäre untauglich gewesen: Das Blatt führt Zitate, die mit einem
Leerzeichen beginnen, und schließende Zeichen, die am Folgewort kleben.
Der Befehl „Die bisherigen §§ 9 bis 12 werden die §§ 8 bis 10“ nennt vier
Ausgangs- und drei Zielbezeichnungen. Das ist kein Widerspruch: Der Bereich
nennt Bezeichnungen, gezählt werden aber Einheiten, und der aufgehobene
Platzhalter § 10 ist keine Einheit, denn er trägt keinen Inhalt. Welche
Einheiten ein Bereich trägt, weiß erst das Gesetz. Ein solcher Befehl bleibt
deshalb bis zur Anwendung ungeteilt und wird dort entfaltet; geht die Zählung
auch dann nicht auf, bleibt er manuell zu prüfen, und der Grund wird genannt.
Die Neufassung eines Paragraphenbereichs wurde bisher an jedem
Paragraphenzeichen des Zitats geteilt. Der neue Wortlaut zitiert jedoch
reihenweise andere Vorschriften; an diesen zu schneiden erfand Normen, die es
nicht gibt — aus drei neu gefassten Paragraphen wurden zehn. Geteilt wird
nunmehr allein an den Bezeichnungen des angekündigten Bereichs. Hinzu treten
die Verweisung als Gegenstand einer Wortoperation, der Rahmen, der sich auf
eine Untereinheit der umnummerierten Einheit verengt, die mehrzeilige
Überschrift einer zitierten Neufassung und die Erkenntnis, dass über einen
Trennstrich vor einem Großbuchstaben der Wortbestand des Dokuments entscheidet:
Trägt es das Wort auch ohne Strich, so war es eine Trennung.
Die Stammfassung ist aus vier Gesetzblättern zusammengesetzt. Thüringens
Landesrechtportal ist dieselbe anmeldepflichtige Anwendung wie die Portale
Schleswig-Holsteins, Berlins, Baden-Württembergs und Hessens, und das Archiv
der Staatskanzlei antwortet Skripten mit einer Fehlerseite. Frei zugänglich ist
dagegen die Parlamentsdatenbank des Landtags, der das Blatt herausgibt; über
sie liegen Stammheft und Änderungshefte vor. Jeder Änderungsbefehl ist als eine
geprüfte Ersetzung angewandt worden — dass keine fehlschlug, ist der Beleg der
Rekonstruktion. Eine amtliche konsolidierte Nachfassung gibt es nicht; ein
zeichengenauer Abgleich mit ihr steht deshalb aus, was in den Herkunftsangaben
vermerkt ist.
Alle zehn Befehle der Vierten Verordnung zur Änderung der Thüringer
Kindergartenfinanzierungsverordnung werden angewandt, keiner bleibt manuell.
Dreihundertfünfundzwanzig Testfälle bestehen, und keine der gepinnten Zahlen
der übrigen Belegfälle hat sich geändert. Die Browserfassung ist übersetzt
worden und liefert dieselben Zahlen wie die Befehlszeile.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Ifca501ed6ffb42165ee4ab4ca036d7db186bbec0
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die vorangegangene Fassung hatte zwei Mängel festgehalten, aber nicht behoben:
Der Block aus „Nach Nr. 4 werden die folgenden Nrn. 5 bis 7 eingefügt“ trat ans
Ende des Absatzes statt hinter die Nr. 4, und die Heilung des Weißraums nach
einer Streichung verkürzte die Einrückung der Aufzählungszeilen. Beide wiegen
schwerer als alles sonst Offene, denn sie führen zu einem falschen Ergebnis,
ohne es anzuzeigen: Der Befehl gilt als angewandt, der Abschnitt „Manuell
prüfen“ schweigt, und allein der Wortlaut weicht ab. Damit war das Leitprinzip
des Erzeugnisses an dieser Stelle verfehlt.
Bei der Behebung hat sich ergeben, dass die beiden nicht nebeneinanderstanden,
sondern eine Ursache teilten. Die Neufassung einer Nummer oder eines Buchstabens
setzte ihren Wortlaut ohne Einrückung, also in die erste Spalte. Der Zeilenblock
einer Aufzählungsmarke reicht aber so weit, wie tiefer eingerückt wird; eine in
der ersten Spalte stehende Zeile nimmt daher den gesamten Rest des Absatzes als
ihre Kindzeilen an. Der nachfolgende Einfügebefehl fand seinen Anker mithin am
Ende des Absatzes und stand richtig, wo er falsch stand. Die Einrückung ist im
kanonischen Klartext kein Satzbild, sondern die Zugehörigkeit einer Zeile zu
ihrer Einheit; die Neufassung setzt sie nunmehr wie die Ersetzung, und die
Heilung nach einer Streichung glättet allein die Naht, an der Text
herausgenommen wurde.
Die zeilenweise Gegenprobe an der amtlichen Nachfassung hat darüber hinaus zwei
Abweichungen gezeigt, die keine Mängel der Reihenfolge waren. Zum einen hielt
der leere Platzhalter „7. (aufgehoben)“ eine Bezeichnung, die der eingefügte
Block neu vergibt; er weicht fortan, wie er es bei der Umnummerierung auf eine
weggefallene Bezeichnung längst tut. Verdrängt wird dabei nur ein Platzhalter,
niemals ein Wortlaut — der Platzhalter des Absatzes 2, den kein Befehl anrührt,
bleibt stehen. Zum anderen führt der Satz des Gesetzblatts zwischen der Marke
einer Aufzählungszeile und ihrem Text die Tabulatorspalte des Setzers, der
kanonische Klartext dagegen ein Leerzeichen; ohne dessen Rückführung trügen
gerade die neu gesetzten Zeilen ein anderes Satzbild als die unberührten.
Artikel 56 Absatz 1 des Bayerischen Jagdgesetzes gleicht damit in Aufbau und
Wortlaut der amtlichen Nachfassung. Die beiden Zusicherungen des
Akzeptanztests, die den Mangel festhielten, sind umgekehrt; drei Prüfungen der
zugrunde liegenden Regeln treten hinzu. Dreihundertfünfzehn Testfälle bestehen,
und keine der gepinnten Zahlen der übrigen Belegfälle hat sich geändert. Die
Browserfassung ist übersetzt worden und bleibt auslieferbar; ihr Lauf im Browser
ist mangels verbundener Erweiterung nicht in Augenschein genommen worden.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I89b2fafa3e2185dbd6abfe0aa6b7bbbd04f6828f
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Die schwarzweiße Fassung nahm der Synopse mehr, als sie ihr gab: Rot und Grün
sind am Bildschirm die schnellste Scheidung von Streichung und Einfügung, und die
Balken der Hinweiskästen finden das Auge, bevor es liest. Beides kehrt zurück.
Schwarzweiß bleibt das Grundgerüst — Schrift, Rahmen, Knopf, Verweise —, sodass
Farbe nurmehr dort auftritt, wo sie etwas bedeutet, und überall dasselbe meint:
Rot warnt, Grün bestätigt.
Was bleibt, ist die Erkenntnis aus der farblosen Fassung. Sie hat gezeigt, dass
die Farbe im Diff nicht bloß schmückte, sondern allein trug: Die Einfügung hob
die ihr vom Browser zugedachte Unterstreichung ausdrücklich auf, sodass der grüne
Grund ihr einziges Merkmal war. Die Unterstreichung bleibt daher wiederher-
gestellt und tritt nun neben das Grün, wie die Durchstreichung neben dem Rot
steht. Wer schwarzweiß ausdruckt oder Farben anders wahrnimmt, sieht die Änderung
seither auch dann.
Die Hinweiskästen der Startseite erhalten Balken nach derselben Regel: rot für
den noscript-Hinweis und die Fehlermeldung, grün für die Fertigmeldung, grau
während der Arbeit, weil noch nichts feststeht. Die Abzeichen behalten ihre
Farben, bleiben aber in Versalien gesetzt. Für den Druck werden die farbigen
Flächen von der Sparschaltung der Browser ausgenommen.
Dreihundertzwölf Testfälle bestehen unverändert; die Synopse des Gebäude-
energiegesetzes ergibt weiterhin achtundsechzig angewandte Befehle, einund-
fünfzig zur manuellen Prüfung und siebenundvierzig geänderte Normen. Seiten und
Synopse sind in Hell- und Dunkelfassung in Augenschein genommen worden.
Artikel 7 des Verzeichnisses der Fassungen wird auf den nunmehr geltenden Stand
gebracht; er beschrieb die farblose Zwischenfassung.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Ie61c3f4d885547e16572655cb554695d72a14b17
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Das Werkzeug stellt amtliche Rechtstexte dar, trat dabei aber in einem warmen
Braun auf, mit abgerundeten Kästen und einer rot-grünen Synopse. Fortan tritt es
in reinen Graustufen auf, hell wie dunkel. Die Schmuckfarbe entfällt ersatzlos;
weil sie es war, die die Verweise kenntlich machte, sind diese nunmehr
unterstrichen, und die drei Zustände der Meldung scheiden sich durch matten Text,
kräftigen Rahmen und doppelt starken Rahmen nebst Fettung statt durch Rot.
Die Umstellung der Synopse hat einen Mangel offengelegt, der schon vorher
bestand: Die Einfügung hob die ihr vom Browser zugedachte Unterstreichung
ausdrücklich auf (text-decoration: none). Damit war der grüne Grund das einzige
Merkmal, an dem eine Einfügung überhaupt zu erkennen war — wer Farben nicht oder
anders wahrnimmt oder die Synopse schwarzweiß ausdruckte, sah sie nicht. Solange
Grün danebenlag, fiel das nicht auf; ohne Grün wäre die Einfügung unsichtbar
geworden. Die Unterstreichung ist wiederhergestellt und tritt nun gegen die
Durchstreichung der Löschung, beide auf gemeinsamer Hinterlegung und in ihrer
je eigenen Spalte. Die Abzeichen scheiden sich ebenso durch die Form: gefüllt,
durchgestrichen, schlicht gerahmt.
Beiläufig erhält der Körper der Synopse ausdrückliche Schrift- und Grundfarbe.
Der klebende Spaltenkopf bezog seinen Grund bisher durch Vererbung und hatte
mithin keinen verlässlichen; für den Druck wird die Hinterlegung festgelegt,
damit sie nicht fortfällt.
Sämtliche dreihundertzwölf Testfälle bestehen unverändert; die Auszeichnung ist
dieselbe geblieben, geändert sind allein die Stilblätter. Die Synopse des
Gebäudeenergiegesetzes ergibt weiterhin achtundsechzig angewandte Befehle,
einundfünfzig zur manuellen Prüfung und siebenundvierzig geänderte Normen. Seiten
und Synopse sind in Hell- und Dunkelfassung in Augenschein genommen worden.
Das eingebettete Stilblatt steckt im Wasm-Erzeugnis; die öffentliche Fassung
zeigt die neue Synopse daher erst nach einem Lauf des Profils -Pwasm nebst
deploy/webpaket.sh.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Ib34164c7cbb77b71baba133c5244a1f52326ae87
|