)]}'
{
  "commit": "7235b34eeb6ff331c152116cbe4df846d7476110",
  "tree": "febb373089f624511a484316642bad31519ed5ca",
  "parents": [
    "7b455cd43149834ccd2163b4e5d197809bd34a37"
  ],
  "author": {
    "name": "Matthias Andreas Benkard",
    "email": "code@mail.matthias.benkard.de",
    "time": "Fri Aug 14 18:58:25 2026 +0200"
  },
  "committer": {
    "name": "Matthias Andreas Benkard",
    "email": "code@mail.matthias.benkard.de",
    "time": "Fri Aug 14 18:58:25 2026 +0200"
  },
  "message": "Quellformate jenseits des verkündeten Gesetzes\n\nBisher nahm ÄndGgner nur verkündete Artikelgesetze und Gesetzentwürfe an, ohne\nden Unterschied zu kennen. Dokumente, die einen Entwurf ändern statt ein\nGesetz, lieferten still null Befehle.\n\nNeu:\n\n* Dokumentart-Erkennung aus dem Rohtext (DokumentErkenner, DokumentArt,\n  DokumentKopf) — vor der Bereinigung, weil gerade die Drucksachenköpfe als\n  Kolumnentitel wegfallen. Erkannt wird nie am Dateinamen: Die Beispieldaten\n  enthalten eine Datei namens Beschlussempfehlung, die in Wahrheit ein\n  Entschließungsantrag ist. Dokumente ohne Befehle erzeugen jetzt eine\n  benannte Warnung statt stiller Leere.\n\n* Änderungsanträge (AenderungsantragParser, EntwurfsPatcher): Der Antrag wird\n  auf den Entwurfstext angewandt, der geänderte Entwurf danach wie gewohnt auf\n  das Stammgesetz — eine komponierte Synopse. Drucksachen- und Gesetzesstellen\n  bleiben getrennte Typen; die Zuordnung Antrag→Entwurf läuft über die\n  Drucksachennummer, nicht über die Argumentreihenfolge. Der 1910 Zeilen große\n  BefehlAnwender bleibt unberührt.\n\n* Beschlussempfehlungen werden erkannt und mit Begründung übergangen, die den\n  brauchbaren Entwurf beim Namen nennt. Die Spaltentrennung der\n  Zusammenstellung ist gebaut (FontgroessenFilter.Spalte, koordinatenbasiert\n  am Steg) und belegt: Die linke Spalte ergibt Befehl für Befehl den\n  Regierungsentwurf. Die rechte Spalte bleibt bewusst offen — sie vermerkt\n  „unverändert“ auch zeilenweise innerhalb zitierter Blöcke, ihre\n  Anführungszeichen gehen daher nicht auf; nötig ist die zeilenweise Zuordnung\n  beider Spalten über die gemeinsame Grundlinie.\n\nDie Synopse kennzeichnet eine Entwurfsfassung als solche.\n\n296 Tests grün (vorher 269); alle gepinnten Akzeptanzzahlen unverändert.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I0001d25fcbd9969fc06eea675edc4326ce2e02f9\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a9fa599bf290552e353dc0a88c2bd5a90f2ac9d2",
      "old_mode": 33188,
      "old_path": "FASSUNGEN.txt",
      "new_id": "5b1a08fd01e67ddc4fadf7dfb9c568358195a91e",
      "new_mode": 33188,
      "new_path": "FASSUNGEN.txt"
    },
    {
      "type": "modify",
      "old_id": "b092904368f5cf3a70997ec0970247dae64a8591",
      "old_mode": 33188,
      "old_path": "README.adoc",
      "new_id": "a29b7ac0ff13c30ace7f73d06d4b827801155c75",
      "new_mode": 33188,
      "new_path": "README.adoc"
    },
    {
      "type": "modify",
      "old_id": "5f71e37809067c27904df691f2ee55a4155a03d8",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/AendGgner.java",
      "new_id": "e866a60948e14c996aa10f19f0837ddc40811bc0",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/AendGgner.java"
    },
    {
      "type": "modify",
      "old_id": "eb8d232f9d7fe3111a958cec0376e4b25778535e",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/Pipeline.java",
      "new_id": "c92ca8cd552611f5e617f6d7ab8dcafcf59cd426",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/Pipeline.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eb542655f94dd2dcca22ce6f565096cf287a1e90",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/DokumentArt.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3cbbfe960624680388e3b50b7fec95293766d25a",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/DokumentKopf.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "71347b73bf42f291527e46d1a3d123eedc90db4c",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/AenderungsantragParser.java"
    },
    {
      "type": "modify",
      "old_id": "9066b9a276bd41a58e10965861c947e748f6f022",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/AenderungsgesetzParser.java",
      "new_id": "a4070791cde5a8605e9ac7b485a38cc7a6819ae1",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/AenderungsgesetzParser.java"
    },
    {
      "type": "modify",
      "old_id": "966ab5de9884158df6802266c60c8718b1aa9a35",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java",
      "new_id": "bda8e94d66820dfeefc7e5db0d53dc66a1fc8c89",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4675c04c79b213c312d0d9b8a976af31af064bd9",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/DokumentErkenner.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "51fd84a1630e0d78bbe2cdddd4ab2934a32806c8",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/EntwurfsPatcher.java"
    },
    {
      "type": "modify",
      "old_id": "26589b3141c52fdc962cb0766505c3d5dfe7923c",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/FontgroessenFilter.java",
      "new_id": "3ad0b8495370221e67f2b536cbee97d1d3ddfbbf",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/FontgroessenFilter.java"
    },
    {
      "type": "modify",
      "old_id": "c9fde3666af45c5a4bf9ebf46fd41e783b9a0543",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/PatchTextExtraktor.java",
      "new_id": "e519e2e035639b8d48ecedc90a758d40b376b216",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/PatchTextExtraktor.java"
    },
    {
      "type": "modify",
      "old_id": "a4d27f4e45fb5e6cd3f6624881387503b154717d",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/StellenParser.java",
      "new_id": "5dd6283c2098aee820da0a61e89c8e8c90060e03",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/StellenParser.java"
    },
    {
      "type": "modify",
      "old_id": "483debc82d66637037b53244fb4c4ecf5648209b",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java",
      "new_id": "1e6c39a70f736d301ad93339464a9948a8e1c7b6",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java"
    },
    {
      "type": "modify",
      "old_id": "c9636a22e9c110ed1e3a8ce2c6b5b8f1f2fae29b",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/synopse/HtmlRenderer.java",
      "new_id": "834423ae70b657e592b1eeecf4899d2d594ee53b",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/synopse/HtmlRenderer.java"
    },
    {
      "type": "modify",
      "old_id": "ec2511a6ac854be019367a9290345ef71ddd4649",
      "old_mode": 33188,
      "old_path": "src/main/resources/eu/mulk/aendggner/web/index.html",
      "new_id": "02f8f75b4ad51b4fd4834526e262dcb4f8f93632",
      "new_mode": 33188,
      "new_path": "src/main/resources/eu/mulk/aendggner/web/index.html"
    },
    {
      "type": "modify",
      "old_id": "4e4d5471926d0af7c567d41c9da7d6e2b436214e",
      "old_mode": 33188,
      "old_path": "src/test/java/eu/mulk/aendggner/EndToEndTest.java",
      "new_id": "212e0707478088c2db914e5fd12202313d43e0dd",
      "new_mode": 33188,
      "new_path": "src/test/java/eu/mulk/aendggner/EndToEndTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fcb1c806c6a50dc9f02251c29a4298b4893261bb",
      "new_mode": 33188,
      "new_path": "src/test/java/eu/mulk/aendggner/aenderung/parse/AenderungsantragParserTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7271efb51effda2f5b0f965a0b0386ea445a28cd",
      "new_mode": 33188,
      "new_path": "src/test/java/eu/mulk/aendggner/aenderung/parse/DokumentErkennerTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5d7610685811cdcb8c0658b604c69133d820f350",
      "new_mode": 33188,
      "new_path": "src/test/java/eu/mulk/aendggner/aenderung/parse/EntwurfsPatcherTest.java"
    }
  ]
}
