From c64f4df4da3891f35d284c1c9f9926b6b68fccd4 Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Thu, 7 May 2026 12:08:17 +0200 Subject: [PATCH] =?UTF-8?q?feat(methodik):=20Aktualisiert=20auf=20Stand=20?= =?UTF-8?q?Mai=202026=20=E2=80=94=20neue=20Sektion=20Stimmverhalten,=20Ver?= =?UTF-8?q?sionsstand,=20partei-skopierte=20Verifikation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Methodik-Seite jetzt synchron zu Codebase + Features: Was-macht-der-Pruefer-Liste: - Empfehlung + Bewertungs-Sicherheit (Konfidenz im Tooltip) ergaenzt - Schwerpunkt-Felder, Themen-Tags, Kernforderungen aufgenommen - Abstimmungsergebnis + Wahlprogramm-Konflikt-Marker erwaehnt - Aehnliche Antraege + News-Match aufgenommen Pipeline-Step 4: ehrlicher dokumentiert — Verifikation ist partei-skopiert (heutiger Bugfix), wortgleiche Treffer in fremdem Programm fuehren zur Verwerfung statt zur Misattribution. Neue Sektion "Stimmverhalten & Marker" mit - Tabelle Heuchelei (⚠) / Opportunismus (!) inkl. Schwellen - Hinweis auf v3-Sprache "Wahlprogramm-Konflikt" - Konsistenz-Hinweis (Mehrheit deckt sich / gegen GWOE-Empfehlung) - Code-Pointer zu app/marker.py Einschraenkungen erweitert: - Aktuelles vs. historisches Programm (Issue #186) - Drucksachen-Eindeutigkeit-Limit Qualitaetssicherung: - Score-Cap-Invariante dokumentiert - Neu-Analyse korrekt als manuell beschrieben (vorher "automatisch" - nicht ganz richtig) - Property-/Fixture-Tests-Abschnitt referenziert ADR 0003 + 0008 Neue Sektion "Versionsstand": Live-Tabelle mit Sprachmodell, Embedding- Modell, Programm-/Chunk-Counts, Adapter-Count, Matrix-Version, Skala. Werte werden via Template-Context aus dem laufenden System gefuellt. Co-Authored-By: Claude Opus 4.7 (1M context) --- app/templates/v2/screens/methodik.html | 110 ++++++++++++++++++++++--- 1 file changed, 98 insertions(+), 12 deletions(-) diff --git a/app/templates/v2/screens/methodik.html b/app/templates/v2/screens/methodik.html index b808a74..2691d70 100644 --- a/app/templates/v2/screens/methodik.html +++ b/app/templates/v2/screens/methodik.html @@ -138,10 +138,12 @@ Was macht der Prüfer? Die Matrix 2.0 Analyse-Pipeline + Stimmverhalten & Marker LLM-Prompts Qualitätssicherung Einschränkungen Datenquellen + Versionsstand @@ -201,9 +203,14 @@

Jeder Antrag wird automatisch analysiert und erhält:

Ziel ist Transparenz: Bürger:innen können nachvollziehen, welche @@ -344,11 +351,16 @@

4
- Zitat-Verifikation
+ Zitat-Verifikation (partei-skopiert)
Jedes Zitat wird server-seitig verifiziert: der Text muss - als Substring im Original-PDF auffindbar sein. Quellenangabe und Seitenzahl + als Substring (oder 5-Wort-Anker) in einem retrieten Chunk + derselben Partei auffindbar sein. Quellenangabe und Seitenzahl werden aus dem echten Treffer rekonstruiert — die Modell-Ausgabe wird für diese - Felder verworfen. + Felder verworfen.
+ Wenn der Text wortgleich auch in einem fremden Programm vorkommt + (z. B. „Eine Schulden- und Haftungsunion lehnen wir ab" steht in mehreren Programmen), wird das Zitat + nicht mit fremder Quelle markiert — sondern verworfen. Lieber 0 Zitate als ein + Misattributions-Zitat.
@@ -366,6 +378,59 @@ + +
+

Stimmverhalten & Marker

+
+

+ Wenn fraktions-aggregierte Plenum-Abstimmungen vorliegen, vergleicht der + Prüfer das Stimmverhalten jeder Fraktion mit ihrem eigenen Wahlprogramm-Score + für genau diesen Antrag und setzt — falls auffällig — kleine Hinweis-Symbole + neben den Fraktions-Pill: +

+ + + + + + + + + + + + + + + + + + + +
SymbolKonstellationSchwelleWissenschaftlicher Begriff
Fraktion stimmt mit Nein, obwohl der Antrag inhaltlich gut zu ihrem Wahlprogramm passtWahlprogramm-Score ≥ 7 / 10Heuchelei-Indikator
!Fraktion stimmt mit Ja, obwohl der Antrag schlecht zum eigenen Wahlprogramm passtWahlprogramm-Score < 3 / 10Opportunismus-Indikator
+

+ In der Bürger:innen-Ansicht (v3) werden beide Symbole unter dem neutraleren + Sammelbegriff „Wahlprogramm-Konflikt" geführt; + die wissenschaftliche Klassifikation erscheint im Tooltip beim + Hovern. +

+

Konsistenz-Hinweis (Empfehlung vs. Beschluss)

+

+ Über jedem Abstimmungsergebnis steht ein Hinweis, ob die parlamentarische + Mehrheit der GWÖ-Empfehlung folgt. Beispiele: +

+
    +
  • Mehrheit deckt sich mit GWÖ-Empfehlung — der Antrag wurde angenommen, und der Prüfer empfahl Zustimmung; oder umgekehrt.
  • +
  • Mehrheit gegen GWÖ-Empfehlung — der Beschluss läuft inhaltlich der Gemeinwohl-Empfehlung entgegen.
  • +
+

+ Die Logik ist deterministisch (kein LLM beteiligt) und in + app/marker.py + dokumentiert + getestet. +

+
+
+

LLM-Prompts

@@ -441,14 +506,12 @@

Qualitätssicherung

    -
  • Automatische Zitat-Verifikation — jedes Zitat wird gegen das - Original-PDF geprüft. Nicht-verifizierbare Zitate werden verworfen.
  • -
  • Typ-Filterung — nur abstimmbare Drucksachen (Anträge, - Gesetzentwürfe) werden bewertet.
  • -
  • Automatische Neu-Analyse — wenn ein Zitat nicht auffindbar ist, - wird der Antrag mit der aktuellen Pipeline neu analysiert.
  • -
  • Open Data — alle Bewertungen sind als JSON und CSV exportierbar - (CC BY 4.0).
  • +
  • Partei-skopierte Zitat-Verifikation — jedes Zitat wird gegen die Chunks derselben Partei geprüft (Substring oder 5-Wort-Anker). Wortgleiche Treffer in einem fremden Programm zählen nicht; das Zitat wird in dem Fall verworfen statt mit fremder Quelle markiert.
  • +
  • Score-Cap-Invariante — ein einziges Matrix-Feld mit Rating ≤ −4 deckelt den Gesamt-Score auf maximal 3 / 10. Verstöße werden im Server-Log als Warning protokolliert.
  • +
  • Typ-Filterung — nur abstimmbare Drucksachen (Anträge, Gesetzentwürfe) werden bewertet. Kleine Anfragen, Antworten und Bundesrats-Drucksachen werden übersprungen.
  • +
  • Manuelle Neu-Analyse — auf jeder Detail-Seite gibt es einen „Neu analysieren"-Button, der den Antrag mit der aktuellen Pipeline frisch bewertet.
  • +
  • Property-Tests & Fixture-Tests — Zitat-Binding, Marker-Logik und Score-Cap sind in tests/ mit deterministischen Fixtures abgesichert (siehe ADR 0003 + 0008).
  • +
  • Open Data — alle Bewertungen sind als JSON und CSV exportierbar (CC BY 4.0).
@@ -459,8 +522,11 @@ @@ -509,6 +575,26 @@ +
+

Versionsstand

+
+ + + + + + + + + +
KomponenteStand
Sprachmodell{{ model_name }}
Embedding-Modell (READ){{ embedding_model }} (1024 Dimensionen)
Indexierte Programme{{ programme_count }} mit {{ chunk_count }} Textabschnitten
Angebundene Parlamente{{ adapter_count }} (16 Bundesländer + Bundestag)
GWÖ-Matrix2.0 Gemeinden (Arbeitsbuch 2017, Pilot 2.1.A 2023)
Bewertungs-Skala−5 … +5 pro Matrix-Feld; 0 … 10 als Gesamt-Score
Citation-Verificationpartei-skopiert seit Mai 2026 (Issue #175-bug fix)
+

+ Diese Tabelle wird live aus dem System gerendert — die Werte sind genau die Konfiguration, + mit der Bewertungen jetzt erstellt werden. +

+
+
+ {# .meth-body #} {# .meth-layout #}