Wahlprogramm Auto-Download: halbautomatische Beschaffung mit SHA-Gate #138

Closed
opened 2026-04-20 01:47:37 +02:00 by tobias · 0 comments
Owner

Kontext

Folge-Issue zu #128 (Erkennung). Erkennung ist live, Auto-Download war bewusst ausgeklammert wegen früherer PDF-Tausch-Erfahrungen (CDU BE 2023 → 2026-Entwurf, stiller Ersatz unter altem Slug).

Ziel

Halbautomatisches Beschaffungs-Tool: erkannte fehlende Wahlprogramme (#128) + kuratierte Kandidaten-URL + manuelle Freigabe + SHA-Fingerprint-Check. Keine Vollautomatik.

Workflow

  1. check_missing_programmes() listet Lücken
  2. Pro Lücke: Kandidaten-URL aus wahlprogramm-links.yaml (manuell gepflegt) oder heuristische Suche (abgeordnetenwatch-Pattern {partei}-{bl}-{jahr}.pdf)
  3. Admin-UI oder CLI zeigt Kandidaten mit Metadaten (Dateigröße, erste Seite Preview)
  4. Maintainer bestätigt
  5. Download, SHA-256 gegen erwarteten Fingerprint (falls gepflegt) oder gegen den Fingerprint beim ersten Indexing
  6. Ablage in app/static/referenzen/, Eintrag in WAHLPROGRAMME, automatisches Re-Indexing des Embeddings

Arbeitsschritte

  • wahlprogramm-links.yaml Schema definieren (BL, Partei, Jahr, URL, erwarteter SHA, Anmerkungen)
  • CLI python -m app.wahlprogramm_fetch --check listet Lücken + Kandidaten
  • CLI python -m app.wahlprogramm_fetch --fetch BL PARTEI lädt einen Eintrag (mit interaktiver Freigabe)
  • SHA-256-Lock-File pro bestehendem PDF, prüft bei jedem --fetch gegen Pferdetausch
  • Re-Indexing nur nach erfolgreicher SHA-Prüfung
  • Optional: Admin-UI-Seite als Alternative zur CLI

Nicht-Ziele

  • Kein Cron-Trigger
  • Keine automatische Indexing-Kette ohne manuelle Freigabe
  • Kein Massen-Download

Bezug

  • #128 (closed) Erkennung
  • MEMORY project_sn_xml_export als Beispiel für ähnliche manuelle Re-Upload-Flows
## Kontext Folge-Issue zu #128 (Erkennung). Erkennung ist live, Auto-Download war bewusst ausgeklammert wegen früherer PDF-Tausch-Erfahrungen (CDU BE 2023 → 2026-Entwurf, stiller Ersatz unter altem Slug). ## Ziel Halbautomatisches Beschaffungs-Tool: erkannte fehlende Wahlprogramme (#128) + kuratierte Kandidaten-URL + manuelle Freigabe + SHA-Fingerprint-Check. Keine Vollautomatik. ## Workflow 1. `check_missing_programmes()` listet Lücken 2. Pro Lücke: Kandidaten-URL aus `wahlprogramm-links.yaml` (manuell gepflegt) oder heuristische Suche (abgeordnetenwatch-Pattern `{partei}-{bl}-{jahr}.pdf`) 3. Admin-UI oder CLI zeigt Kandidaten mit Metadaten (Dateigröße, erste Seite Preview) 4. Maintainer bestätigt 5. Download, SHA-256 gegen erwarteten Fingerprint (falls gepflegt) oder gegen den Fingerprint beim ersten Indexing 6. Ablage in `app/static/referenzen/`, Eintrag in `WAHLPROGRAMME`, automatisches Re-Indexing des Embeddings ## Arbeitsschritte - [ ] `wahlprogramm-links.yaml` Schema definieren (BL, Partei, Jahr, URL, erwarteter SHA, Anmerkungen) - [ ] CLI `python -m app.wahlprogramm_fetch --check` listet Lücken + Kandidaten - [ ] CLI `python -m app.wahlprogramm_fetch --fetch BL PARTEI` lädt einen Eintrag (mit interaktiver Freigabe) - [ ] SHA-256-Lock-File pro bestehendem PDF, prüft bei jedem `--fetch` gegen Pferdetausch - [ ] Re-Indexing nur nach erfolgreicher SHA-Prüfung - [ ] Optional: Admin-UI-Seite als Alternative zur CLI ## Nicht-Ziele - Kein Cron-Trigger - Keine automatische Indexing-Kette ohne manuelle Freigabe - Kein Massen-Download ## Bezug - #128 (closed) Erkennung - MEMORY `project_sn_xml_export` als Beispiel für ähnliche manuelle Re-Upload-Flows
tobias added this to the post-1.0 milestone 2026-04-25 20:59:57 +02:00
Sign in to join this conversation.
No description provided.