Historie 1949–2022 bleibt in lawgit, bis der GPU-Lauf endet; Schnitt ohne Lücke. Co-authored-by: Cursor <cursoragent@cursor.com>
3.2 KiB
gesetzblatt
Parser und Spiegel des Bundesgesetzblatts.
- 1949–2022: OffeneGesetze.de (Historie, Bestand liegt in lawgit)
- ab 2023: recht.bund.de (einzige lebende amtliche Quelle)
Kein Nachbau der lawgit-UI und kein RunPod-Orchestrator. Ziel ist ein schmaler, idempotenter Zweig: Download → Text → Event-JSON, an den Git-Spiegel und eine spätere Oberfläche andocken können.
Schnitt, keine Lücke
2022 ist das letzte OffeneGesetze-Jahr. 2023 I Nr. 1 ist die erste amtliche elektronische Nummer. Die Jahre werden nicht doppelt geladen. Details: docs/QUELLEN.md.
lawgit bleibt der alte Arbeitsstand plus laufender GPU-Parse 1949–2022.
Archivieren erst nach --holen — siehe ARCHIVE.md.
Schnellstart
cd /Users/michaelhermann/Source/law/coded/gesetzblatt
python3 -m pip install -r requirements.txt
# Live-Test: drei echte Ausgaben (2024/1, 2025/1, 2026/1)
python3 sync.py --live-test
# Heuristik-Test ohne Netz
python3 -m unittest tests.test_parse_heuristik
Nachziehen ab 2023
python3 sync.py --from-year 2023
Das ist der Befehl für den laufenden Betrieb: fehlende Nummern von recht.bund.de holen, Text extrahieren, Event-JSON schreiben. Schon vorhandene Ausgaben werden übersprungen.
Einzelne Schritte:
python3 download_rechtbund.py --from-year 2023
python3 extract_bgbl.py --year 2023 --year 2024 --year 2025 --year 2026
python3 parse_bgbl.py --von 2023
--llm (RunPod/vLLM über LLM_BASE_URL) ist eingebaut, aber nicht der
Standard. Nicht setzen, solange lawgit auf der GPU parst. Ohne Flag bleibt
es bei der Heuristik.
Historie OffeneGesetze
python3 download_offenegesetze.py --hinweis
Schreibt nur ein Quellen-Manifest. Die ~5500 PDFs in lawgit werden nicht kopiert. Nach Archivierung von lawgit den Bestand hierher ziehen (siehe ARCHIVE.md), nicht erneut von OffeneGesetze laden.
Event-JSON
Gleicher Schnitt wie bisher in lawgit (timeline/parsed/{id}.json):
| Feld | Bedeutung |
|---|---|
id |
z. B. bgbl1-2025-1-1 |
fundstelle |
BGBl. 2025 I Nr. 1 |
verkundung |
ISO-Datum |
titel |
amtlicher Titel |
typ |
Erlass / Änderung / Verordnung / … |
inkrafttreten |
Liste {datum, geltung, hinweis?} |
betroffene_normen |
Stammgesetze mit kurz, operation |
quelle |
recht.bund.de oder offenegesetze |
parser |
heuristik oder llm |
sha256 |
Prüfsumme der PDF (ab 2023) |
Struktur
gesetzblatt/
├── download_rechtbund.py # ab 2023, recht.bund.de
├── download_offenegesetze.py # 1949–2022, Hinweis + optionaler Nachzug
├── extract_bgbl.py
├── parse_bgbl.py
├── llm_client.py
├── sync.py
├── bgbl/ # PDFs, gitignoriert
├── timeline/meta/ # Manifeste (klein, im Git)
├── timeline/text/ # Extrakte, gitignoriert
└── timeline/parsed/ # Event-JSON, gitignoriert
Remote
https://git.coded.law/michaelkole/gesetzblatt.git
Falls das Remote noch fehlt:
git remote add origin https://git.coded.law/michaelkole/gesetzblatt.git
git push -u origin main