)]}'
{
  "log": [
    {
      "commit": "65eff08b32a0f00ff0f5e4bda3fe5793f631ed64",
      "tree": "1d101859b51c80bc117ec72a871933575ed8b2f3",
      "parents": [
        "f20828ffd8ea9d554566636a9c53a3abd57507c5"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jul 18 12:24:32 2026 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Jul 19 09:00:01 2026 +0200"
      },
      "message": "Support Bavarian state law (BayJG) with Art./§ inversion and superscripts\n\nExtend ÄndGgner from federal-only to Bavarian state law. Bavarian base\nlaws are structured in Artikel while their amending acts are structured\nin Paragraphen (inverted from the Bund); official sentence numbers and\nfootnote markers are carried as Unicode superscripts (¹²³, ⁶)).\n\n- Generalise Stelle.Paragraph to carry a sigil (\"§\" or \"Art.\") and route\n  it through recogniser, applier and resolver (bit-identical Bund output).\n- Superscript pipeline: geometric detection in FontgroessenFilter\n  (SuperskriptModus BEHALTEN), Superskript util, exact sentence splitting\n  in SatzTeiler, label-based sentence resolution.\n- BayRechtLoader/BayRechtTextParser for gesetze-bayern.de PDF/plaintext.\n- §-structured amending acts, GVBl/Landtag column titles, non-breaking\n  spaces, the GVBl continuation quote; Bavarian command forms (footnote\n  aufhebung, Satznummerierung streichung, Wortlaut forms, Halbsatz,\n  gapping chains).\n\nAcceptance (EndToEndTest.bayJgGvblAcceptance): the pre-2026 BayJG\nfassung (BayJG-alt.txt, reconstructed from Wayback single-article\nsnapshots) with GVBl 6/2026 §§ 1-2 applied — 154 commands, 0 unknown,\n149 applied automatically, 5 pinned residuals (follow-up edits inside\ntwo multi-step renumbering sequences in Art. 29a and Art. 56).\n\nApplication-side fixes surfaced by the acceptance run (all Bund-safe):\nsentence-start superscript before §; sentence boundaries \u003d {0} ∪ {each\nnumber ≥ 2}; gapping scope inheritance for bare word operations;\nfootnote definition lines hidden from word operations; absatz aufhebung\nmarks \"(weggefallen)\" keeping its number, and absatz renumbering\noverwrites an empty placeholder (weggefallen/gegenstandslos) target.\n\n211 tests green (mvnw verify); federal reference numbers unchanged.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nChange-Id: Iebae4c17ca90755c5fd36251362042f3d5796fd0\n"
    },
    {
      "commit": "91a57498aa4acf266d0ab255aa06c18527846eec",
      "tree": "5c53b08a64f87f924f9d59c6feafde500fbb9427",
      "parents": [
        "8ae49729ee18a102d503324f2be49c35694b244a"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jul 13 21:33:09 2026 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jul 13 21:33:09 2026 +0200"
      },
      "message": "Add AGG, BayJG, GEG, ProdHaftG, and UWG sample data.\n\nFive new datasets with provenance in SOURCES files:\n\n* UWG: 3. UWGAendG (BGBl. 2026 I Nr. 43) in the new digital BGBl\n  format, plus drafts.\n* GEG: the 2023 \"Heizungsgesetz\" (BGBl. 2023 I Nr. 280, new format)\n  and the pending GModG 2026 drafts.\n* AGG: 2. AGGAendG drafts (RefE/RegE/BT-Drs 21/6178) -- the base XML\n  predates the bill, so this dataset produces real diffs -- and the\n  official BMJV synopsis as ground truth.\n* ProdHaftG: product-liability modernization drafts (Artikel 1 is a\n  replacement act, Artikel 2 amends the old law), with official\n  synopsis.\n* BayJG: Bavarian hunting-law amendment (GVBl. 2026 S. 113) -- state\n  law is not yet supported by the tool; kept for future work.\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I8c33b6a19178f73cece9c9da99c713009016e578\n"
    },
    {
      "commit": "99962fb4aff2a11074b7179b71ed5a5f0cdbc8e4",
      "tree": "58caa90e2a27e50e9e6b6ce13488278860903b03",
      "parents": [
        "58e19982f25ae6433d7837454bb54b8edc37589c"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jul 13 21:32:24 2026 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jul 13 21:32:24 2026 +0200"
      },
      "message": "Add IfSG sample data.\n\nThe Infektionsschutzgesetz as gii-norm XML, EPUB, and PDF (consolidated\nas of 2020-11-20, i.e. already including the Art. 1 changes below), the\nDrittes Bevoelkerungsschutzgesetz (BGBl. I 2020 S. 2397) as published,\nand the Bundestag/Bundesrat drafting documents, with provenance URLs in\nSOURCES.  Used by the end-to-end smoke test.\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I1221734ea3e3dab705151421774151438be1b337\n"
    }
  ]
}
