KI-gestützter Workflow zum Erstellen eines Pfändungs- und Überweisungsbeschlusses (PfÜB) für eine Kontopfändung. Aus den Falldaten wird das amtliche Zwangsvollstreckungsformular des BMJ (13 Seiten, ausfüllbares PDF) befüllt.
Der Kern ist eine kleine Python-Pipeline: Falldaten werden in einer XML-Datei erfasst, daraus wird ein Fallskript generiert, das das amtliche PDF mit einer wiederverwendbaren Engine positionsgenau ausfüllt.
Arbeitssprache Deutsch. Beträge deutsch formatiert (
1.234,56 €). Bei Unklarheit nicht raten, sondern nachfragen.
.
├── template/ Vorlagen (im Repo, nicht fallspezifisch)
│ ├── PfÜB.pdf amtliches Formular (ausfüllbares AcroForm)
│ └── falldaten.xml XML-Vorlage zum Erfassen eines Falls
├── script/ Programmcode (im Repo)
│ ├── pfueb_fill.py Engine: füllt das PDF über Feldpositionen
│ └── xml_zu_fall.py Generator: XML → Fallskript
├── data/ Mandantendaten – per .gitignore geschützt *
│ ├── Inbox/ Eingang: Titel & Vollstreckungsunterlagen
│ │ ├── Titel/
│ │ └── Vollstreckungsunterlagen/
│ └── Outbox/ fertige PfÜB-PDFs
├── docs/
│ ├── PROMPT.md Erhebungsauftrag (Datensammlung)
│ └── ENTWICKLUNG.md Entwicklerdokumentation
├── CLAUDE.md Hinweise für die Arbeit mit Claude Code
└── README.md
* Der Inhalt von data/ wird nicht veröffentlicht (siehe
Datenschutz). Nur die leere Ordnerstruktur ist im Repo.
pip install pypdf reportlabpypdf ist Pflicht, reportlab wird nur für die gestempelte Dokumenttyp-Auswahl
auf Seite 5 benötigt.
# 1) Falldaten-Vorlage kopieren und - ggf. mit KI die falldaten.xml z.B. aus Vollstreckungsbescheid - befüllen. Drittschuldner nicht vergessen!)
cp template/falldaten.xml data/fall_<AZ>_<Kurzname>.xml
# z. B. data/fall_06629_R-R-Immobilien.xml – Platzhalter [ ... ] ersetzen
# 2) Fallskript aus der XML generieren
python3 script/xml_zu_fall.py data/fall_<AZ>_<Kurzname>.xml
# -> data/fall_<AZ>_<Kurzname>.py
# 3) Fallskript ausführen -> fertiges PDF
python3 data/fall_<AZ>_<Kurzname>.py
# -> data/Outbox/PfÜB_<Kurzname>.pdfDas generierte Fallskript nicht von Hand bearbeiten – stattdessen die XML anpassen und neu generieren. Das Mapping „semantisches XML-Element → Formularposition“ liegt fest im Generator.
Die Formularfelder samt Positionen lassen sich auflisten mit:
python3 script/pfueb_fill.py --felder template/PfÜB.pdf- Die Feldnamen des Formulars sind generisch und teils mehrfach vergeben; Felder
werden deshalb über ihre Position
(Seite, y, x)adressiert. - Die Forderungsaufstellung (S. 12/13) teilt sich im Original Feldobjekte mit dem Hauptformular; die Engine spaltet diese Kollisionsfelder automatisch auf.
- Für Textfelder werden eigene Appearance-Streams erzeugt, damit der Inhalt in allen Viewern (Acrobat, beA, Poppler, Chrome) erscheint.
- Die Dokumenttyp-Auswahl auf S. 5 ist kein Formularfeld und wird als Overlay
gestempelt (
reportlab).
Details, Datenmodell und Erweiterung siehe docs/ENTWICKLUNG.md.
- Abgedeckt ist der Standardfall: 1 Gläubiger, 1 Schuldner, 1 Drittschuldner- Bank, 1 Hauptforderung. Mehrere Beteiligte, weitere Titel oder zusätzliche Zinsstaffeln sind im Generator noch nicht abgebildet (siehe docs/ENTWICKLUNG.md).
- Einreichungsabhängige Angaben (Zahlungsweise, Vollmacht/Versicherung § 753a bzw. § 829a ZPO, beA-Versandart) und HRB-Registerdaten sind im Formular bewusst offen gelassen.
- Die ZV-Kosten (§ 788 ZPO) werden nicht automatisch berechnet, sondern aus
der XML übernommen; die Rechenregeln stehen als Kommentar in
template/falldaten.xml.
Dieser Workflow verarbeitet personenbezogene Mandantendaten. Damit beim Veröffentlichen nichts durchsickert:
- Alles unter
data/ist per.gitignorevom Repo ausgenommen – Titel, Falldaten-XML, generierte Fallskripte und fertige PfÜB-PDFs. - Im Repo verbleibt nur die leere Ordnerstruktur (über
.gitkeep-Dateien), damit der Workflow nach dem Klonen sofort die erwarteten Pfade vorfindet.
Vor dem ersten Push prüfen, dass keine Falldaten getrackt werden:
git statusdarf unterdata/nur.gitkeep-Dateien zeigen.
Kein Rechtsrat. Die Vollstreckbarkeit (z. B. bei eingelegtem Einspruch gegen den
Vollstreckungsbescheid) und die Vollständigkeit der Angaben sind im Einzelfall
juristisch zu prüfen. Das amtliche Formular (template/PfÜB.pdf) ist eine
Veröffentlichung des Bundesministeriums der Justiz.