)]}'
{
  "commit": "51712fc87ec0487bd471f24b2986a367847d24e9",
  "tree": "131061eaf3664bfbb2a49abf9a43628e31a33867",
  "parents": [
    "b05e44a627b3bbdf6f8b2e920b963709fd348f5a"
  ],
  "author": {
    "name": "Matthias Andreas Benkard",
    "email": "code@mail.matthias.benkard.de",
    "time": "Mon Jul 13 21:33:25 2026 +0200"
  },
  "committer": {
    "name": "Matthias Andreas Benkard",
    "email": "code@mail.matthias.benkard.de",
    "time": "Mon Jul 13 21:33:25 2026 +0200"
  },
  "message": "Recognize compound and multi-pair amendment commands\n\nSplit BefehlErkenner into a single-command pass and a fallback that\ncomposes Sammelbefehle from commands chained with \"und\"/\", wird\":\n\n- Multi-pair replacement (\"… A durch B und C durch D ersetzt\") emits one\n  Ersetzung per pair, crossed with the (possibly coordinated) Stelle.\n- Verbund splitter probes each \"und\"/\", wird\" boundary; when both halves\n  parse — trying the right clause as-is, capitalized, or with the left\n  clause\u0027s locative prefix — it folds them into one Sammelbefehl.\n\nThe single pass no longer short-circuits when a pattern matches but its\nStelle is unparseable, so the fallback still gets a chance. Add\n\"ein Komma eingefügt\" and anchor-first insertion patterns the splitter\nneeds, and let StellenParser.parseMehrfach inherit the component type for\nbare-number continuations (\"Absatz 1 und 5\").\n\nCuts UnbekannterBefehl counts: GEG 50-\u003e36, IfSG 11-\u003e7, AGG/UWG 2-\u003e1.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nChange-Id: I8f76edd0c9ed6cf68c10c50f535a8182e13e378e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ca59b124a7143a68f95ab8889d3399cbc585773c",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java",
      "new_id": "0ef0973053a87a9eb90da2f260ab8d2fee633c0d",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/BefehlErkenner.java"
    },
    {
      "type": "modify",
      "old_id": "07702b2281523f7a59c9c7b4f61a80a2aa86c24c",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/StellenParser.java",
      "new_id": "db7633ef8bd44ef799c8fa2616a3cf933beec10c",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/StellenParser.java"
    },
    {
      "type": "modify",
      "old_id": "05055e0014c1b4b32d76ed821027f7f4928c76af",
      "old_mode": 33188,
      "old_path": "src/test/java/eu/mulk/aendggner/aenderung/parse/BefehlErkennerTest.java",
      "new_id": "ba0dd05abc3274034c408d0f14e74c0f4d1f0a50",
      "new_mode": 33188,
      "new_path": "src/test/java/eu/mulk/aendggner/aenderung/parse/BefehlErkennerTest.java"
    },
    {
      "type": "modify",
      "old_id": "4c2c7ef6eb47e29913fc82310e61eca140052118",
      "old_mode": 33188,
      "old_path": "src/test/java/eu/mulk/aendggner/aenderung/parse/StellenParserTest.java",
      "new_id": "c0ea159b1f0bbca4e2d8483320f947ece2fe15e7",
      "new_mode": 33188,
      "new_path": "src/test/java/eu/mulk/aendggner/aenderung/parse/StellenParserTest.java"
    }
  ]
}
