feat(methodik): Aktualisiert auf Stand Mai 2026 — neue Sektion Stimmverhalten, Versionsstand, partei-skopierte Verifikation
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) <noreply@anthropic.com>
This commit is contained in:
parent
f0588714bf
commit
c64f4df4da
@ -138,10 +138,12 @@
|
||||
<a href="#was-macht">Was macht der Prüfer?</a>
|
||||
<a href="#matrix">Die Matrix 2.0</a>
|
||||
<a href="#pipeline">Analyse-Pipeline</a>
|
||||
<a href="#stimmverhalten">Stimmverhalten & Marker</a>
|
||||
<a href="#prompts">LLM-Prompts</a>
|
||||
<a href="#qualitaet">Qualitätssicherung</a>
|
||||
<a href="#einschraenkungen">Einschränkungen</a>
|
||||
<a href="#datenquellen">Datenquellen</a>
|
||||
<a href="#versionsstand">Versionsstand</a>
|
||||
</nav>
|
||||
|
||||
<!-- Content -->
|
||||
@ -201,9 +203,14 @@
|
||||
<p>Jeder Antrag wird automatisch analysiert und erhält:</p>
|
||||
<ul>
|
||||
<li><strong>GWÖ-Score (0–10)</strong> — wie stark fördert oder widerspricht der Antrag den fünf Gemeinwohl-Werten?</li>
|
||||
<li><strong>Empfehlung & Bewertungs-Sicherheit</strong> — qualitative Einordnung („Uneingeschränkt unterstützen" … „Ablehnen") plus eine Sicherheits-Angabe (hoch/mittel/niedrig), wie selbstsicher das Sprachmodell in dieser Einordnung ist (wissenschaftlich: <em>Konfidenz</em>).</li>
|
||||
<li><strong>25-Felder-Matrix</strong> — detaillierte Bewertung für jede Kombination aus Berührungsgruppe und Wert</li>
|
||||
<li><strong>Schwerpunkt-Felder</strong> — die Top-Felder der Matrix, die den Score am stärksten treiben</li>
|
||||
<li><strong>Themen-Tags</strong> & <strong>Kernforderungen</strong> — automatische Themen-Klassifikation und Bullet-Liste der zentralen Forderungen des Antrags</li>
|
||||
<li><strong>Wahlprogramm-Treue</strong> — wie gut passt der Antrag zu den Wahl- und Grundsatzprogrammen der Fraktionen, belegt mit verifizierten Zitaten?</li>
|
||||
<li><strong>Verbesserungsvorschläge</strong> — konkrete Textänderungen im Redline-Format</li>
|
||||
<li><strong>Abstimmungsergebnis & Wahlprogramm-Konflikt-Marker</strong> — fraktions-aggregierte Abstimmung aus dem Plenarprotokoll, plus Hinweis-Symbole, wenn eine Fraktion gegen das eigene Wahlprogramm stimmt (siehe Abschnitt <a href="#stimmverhalten">Stimmverhalten</a>).</li>
|
||||
<li><strong>Ähnliche Anträge & News-Match</strong> — verwandte Drucksachen aus anderen Bundesländern (per Embedding-Ähnlichkeit) und aktuelle Pressemeldungen, die thematisch zu diesem Antrag passen.</li>
|
||||
</ul>
|
||||
<p style="margin-top:0.5rem;">
|
||||
Ziel ist <strong>Transparenz</strong>: Bürger:innen können nachvollziehen, welche
|
||||
@ -344,11 +351,16 @@
|
||||
<div class="pipeline-step">
|
||||
<div class="step-num">4</div>
|
||||
<div>
|
||||
<strong>Zitat-Verifikation</strong><br>
|
||||
<strong>Zitat-Verifikation (partei-skopiert)</strong><br>
|
||||
Jedes Zitat wird <strong>server-seitig verifiziert</strong>: der Text muss
|
||||
als Substring im Original-PDF auffindbar sein. Quellenangabe und Seitenzahl
|
||||
als Substring (oder 5-Wort-Anker) in einem retrieten Chunk
|
||||
<em>derselben Partei</em> auffindbar sein. Quellenangabe und Seitenzahl
|
||||
werden aus dem echten Treffer rekonstruiert — die Modell-Ausgabe wird für diese
|
||||
Felder verworfen.
|
||||
Felder verworfen.<br>
|
||||
<span style="font-size:11px;opacity:0.85;">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
|
||||
<strong>nicht</strong> mit fremder Quelle markiert — sondern verworfen. Lieber 0 Zitate als ein
|
||||
Misattributions-Zitat.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -366,6 +378,59 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="stimmverhalten">
|
||||
<h2>Stimmverhalten & Marker</h2>
|
||||
<div class="v2-kasten outline-blue">
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Symbol</th>
|
||||
<th>Konstellation</th>
|
||||
<th>Schwelle</th>
|
||||
<th>Wissenschaftlicher Begriff</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>⚠</strong></td>
|
||||
<td>Fraktion stimmt mit <strong>Nein</strong>, obwohl der Antrag inhaltlich gut zu ihrem Wahlprogramm passt</td>
|
||||
<td>Wahlprogramm-Score ≥ 7 / 10</td>
|
||||
<td><em>Heuchelei-Indikator</em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>!</strong></td>
|
||||
<td>Fraktion stimmt mit <strong>Ja</strong>, obwohl der Antrag schlecht zum eigenen Wahlprogramm passt</td>
|
||||
<td>Wahlprogramm-Score < 3 / 10</td>
|
||||
<td><em>Opportunismus-Indikator</em></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p style="margin-top:0.5rem;">
|
||||
In der Bürger:innen-Ansicht (v3) werden beide Symbole unter dem neutraleren
|
||||
Sammelbegriff „<strong>Wahlprogramm-Konflikt</strong>" geführt;
|
||||
die wissenschaftliche Klassifikation erscheint im Tooltip beim
|
||||
Hovern.
|
||||
</p>
|
||||
<h3>Konsistenz-Hinweis (Empfehlung vs. Beschluss)</h3>
|
||||
<p>
|
||||
Über jedem Abstimmungsergebnis steht ein Hinweis, ob die parlamentarische
|
||||
Mehrheit der GWÖ-Empfehlung folgt. Beispiele:
|
||||
</p>
|
||||
<ul style="font-size:12px;">
|
||||
<li><strong>Mehrheit deckt sich mit GWÖ-Empfehlung</strong> — der Antrag wurde angenommen, und der Prüfer empfahl Zustimmung; oder umgekehrt.</li>
|
||||
<li><strong>Mehrheit gegen GWÖ-Empfehlung</strong> — der Beschluss läuft inhaltlich der Gemeinwohl-Empfehlung entgegen.</li>
|
||||
</ul>
|
||||
<p style="font-size:11px;opacity:0.7;">
|
||||
Die Logik ist deterministisch (kein LLM beteiligt) und in
|
||||
<a href="https://repo.toppyr.de/tobias/gwoe-antragspruefer/src/branch/main/app/marker.py" target="_blank"><code>app/marker.py</code></a>
|
||||
dokumentiert + getestet.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="prompts">
|
||||
<h2>LLM-Prompts</h2>
|
||||
<div class="v2-kasten outline-blue">
|
||||
@ -441,14 +506,12 @@
|
||||
<h2>Qualitätssicherung</h2>
|
||||
<div class="v2-kasten outline-green">
|
||||
<ul>
|
||||
<li><strong>Automatische Zitat-Verifikation</strong> — jedes Zitat wird gegen das
|
||||
Original-PDF geprüft. Nicht-verifizierbare Zitate werden verworfen.</li>
|
||||
<li><strong>Typ-Filterung</strong> — nur abstimmbare Drucksachen (Anträge,
|
||||
Gesetzentwürfe) werden bewertet.</li>
|
||||
<li><strong>Automatische Neu-Analyse</strong> — wenn ein Zitat nicht auffindbar ist,
|
||||
wird der Antrag mit der aktuellen Pipeline neu analysiert.</li>
|
||||
<li><strong>Open Data</strong> — alle Bewertungen sind als JSON und CSV exportierbar
|
||||
(CC BY 4.0).</li>
|
||||
<li><strong>Partei-skopierte Zitat-Verifikation</strong> — jedes Zitat wird gegen die Chunks <em>derselben</em> Partei geprüft (Substring oder 5-Wort-Anker). Wortgleiche Treffer in einem fremden Programm zählen <em>nicht</em>; das Zitat wird in dem Fall verworfen statt mit fremder Quelle markiert.</li>
|
||||
<li><strong>Score-Cap-Invariante</strong> — ein einziges Matrix-Feld mit Rating ≤ −4 deckelt den Gesamt-Score auf maximal 3 / 10. Verstöße werden im Server-Log als Warning protokolliert.</li>
|
||||
<li><strong>Typ-Filterung</strong> — nur abstimmbare Drucksachen (Anträge, Gesetzentwürfe) werden bewertet. Kleine Anfragen, Antworten und Bundesrats-Drucksachen werden übersprungen.</li>
|
||||
<li><strong>Manuelle Neu-Analyse</strong> — auf jeder Detail-Seite gibt es einen „Neu analysieren"-Button, der den Antrag mit der aktuellen Pipeline frisch bewertet.</li>
|
||||
<li><strong>Property-Tests & Fixture-Tests</strong> — Zitat-Binding, Marker-Logik und Score-Cap sind in <code>tests/</code> mit deterministischen Fixtures abgesichert (siehe ADR 0003 + 0008).</li>
|
||||
<li><strong>Open Data</strong> — alle Bewertungen sind als JSON und CSV exportierbar (CC BY 4.0).</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
@ -459,8 +522,11 @@
|
||||
<ul>
|
||||
<li><strong>Wertebasierte Einordnung, keine Rechtsprüfung</strong></li>
|
||||
<li><strong>KI-Bias</strong> — Sprachmodelle können systematische Verzerrungen aufweisen. Bewertungen sind Orientierung, nicht objektive Wahrheit.</li>
|
||||
<li><strong>Programmabhängig</strong> — Fraktionen ohne hinterlegtes Wahlprogramm erhalten keinen Programm-Vergleich.</li>
|
||||
<li><strong>Programmabhängig</strong> — Fraktionen ohne hinterlegtes Wahlprogramm erhalten keinen Programm-Vergleich. Der Antrag-Detailseite zeigt diese Lücke explizit als Hinweis am Programm-Treue-Block.</li>
|
||||
<li><strong>Aktuelles Programm, nicht historisch</strong> — derzeit wird jede Fraktion gegen das jeweils <em>aktuell</em> hinterlegte Wahl-/Grundsatzprogramm bewertet. Bei älteren Anträgen aus früheren Wahlperioden ist das u.U. nicht das Programm, das zum Zeitpunkt der Antragstellung galt
|
||||
(<a href="https://repo.toppyr.de/tobias/gwoe-antragspruefer/issues/186" target="_blank">Issue #186</a> — Behebung in Arbeit).</li>
|
||||
<li><strong>Antragstext, nicht Umsetzung</strong> — bewertet wird was im Antrag steht, nicht ob es umgesetzt wird.</li>
|
||||
<li><strong>Drucksachen-Eindeutigkeit</strong> — der Prüfer löst Drucksachen aktuell nur über die Nummer auf. In seltenen Fällen gleicher Nummern in verschiedenen Bundesländern wählt der Detail-Permalink den ersten DB-Match.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
@ -509,6 +575,26 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="versionsstand">
|
||||
<h2>Versionsstand</h2>
|
||||
<div class="v2-kasten outline-blue">
|
||||
<table>
|
||||
<tr><th>Komponente</th><th>Stand</th></tr>
|
||||
<tr><td>Sprachmodell</td><td>{{ model_name }}</td></tr>
|
||||
<tr><td>Embedding-Modell (READ)</td><td>{{ embedding_model }} (1024 Dimensionen)</td></tr>
|
||||
<tr><td>Indexierte Programme</td><td>{{ programme_count }} mit {{ chunk_count }} Textabschnitten</td></tr>
|
||||
<tr><td>Angebundene Parlamente</td><td>{{ adapter_count }} (16 Bundesländer + Bundestag)</td></tr>
|
||||
<tr><td>GWÖ-Matrix</td><td>2.0 Gemeinden (Arbeitsbuch 2017, Pilot 2.1.A 2023)</td></tr>
|
||||
<tr><td>Bewertungs-Skala</td><td>−5 … +5 pro Matrix-Feld; 0 … 10 als Gesamt-Score</td></tr>
|
||||
<tr><td>Citation-Verification</td><td>partei-skopiert seit Mai 2026 (Issue #175-bug fix)</td></tr>
|
||||
</table>
|
||||
<p style="margin-top:0.5rem;font-size:11px;opacity:0.7;">
|
||||
Diese Tabelle wird live aus dem System gerendert — die Werte sind genau die Konfiguration,
|
||||
mit der Bewertungen <em>jetzt</em> erstellt werden.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>{# .meth-body #}
|
||||
</div>{# .meth-layout #}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user