gwoe-antragspruefer/app/templates/v2/screens/was-ist-neu.html
Dotty Dotter f9a9c21fbd fix(was-ist-neu): keine Werte-Bars mehr, kein Buerger:innen-Modus-Etikett
- Werte-Bars sind aus dem UI raus, raus aus dem Text
- 'Buerger:innen-Modus' war nur intern als v3-Label gedacht; aussen heisst
  es einfach 'neu gestaltetes Antrag-Detail' mit dem Anspruch, sich Schritt
  fuer Schritt selbst zu erklaeren
- Programm-Treue-Grid + Glossar + klickbare Matrix-Zellen als Umsetzung
2026-05-10 13:10:38 +02:00

324 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends "v2/base.html" %}
{% block title %}Was ist neu — GWÖ-Antragsprüfer{% endblock %}
{% set v2_active_nav = "" %}
{% block head_extra %}
<style>
.neu-layout {
display: grid;
grid-template-columns: 220px 1fr;
gap: 2rem;
align-items: start;
}
@media (max-width: 720px) {
.neu-layout { grid-template-columns: 1fr; }
.neu-toc { display: none; }
}
.neu-toc {
position: sticky;
top: 72px;
font-size: 12px;
font-family: var(--font-mono);
line-height: 1.8;
border-left: 2px solid var(--ecg-green);
padding-left: 12px;
color: var(--ecg-dark);
opacity: 0.85;
}
.neu-toc a {
display: block;
color: inherit;
text-decoration: none;
opacity: 0.75;
transition: opacity 0.1s;
}
.neu-toc a:hover { opacity: 1; color: var(--ecg-green); }
.neu-body {
max-width: 720px;
font-family: var(--font-text);
line-height: 1.65;
color: var(--ecg-dark);
}
.neu-body h2 {
font-family: var(--font-display);
font-size: 20px;
color: var(--ecg-teal);
margin: 2.5rem 0 0.75rem;
padding-bottom: 4px;
border-bottom: 2px solid var(--ecg-teal);
}
.neu-body h2:first-child { margin-top: 0; }
.neu-body h3 {
font-family: var(--font-display);
font-size: 14px;
color: var(--ecg-green);
margin: 1.25rem 0 0.5rem;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.neu-body p { margin: 0.75rem 0; }
.neu-body ul { margin: 0.5rem 0 0.75rem; padding-left: 1.25rem; }
.neu-body li { margin: 0.25rem 0; }
.neu-body code {
font-family: var(--font-mono);
font-size: 0.9em;
background: var(--ecg-card-bg);
padding: 1px 4px;
border-radius: 2px;
}
.neu-body a { color: var(--ecg-blue); }
.neu-hero {
background: var(--ecg-card-bg);
border-left: 4px solid var(--ecg-teal);
padding: 1rem 1.25rem;
margin: 0 0 2rem;
font-family: var(--font-text);
line-height: 1.55;
}
.neu-hero strong { color: var(--ecg-teal); }
.neu-hero .neu-hero-meta {
font-family: var(--font-mono);
font-size: 11px;
color: var(--ecg-dark);
opacity: 0.7;
margin-top: 0.4rem;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.neu-intent-grid {
display: grid;
grid-template-columns: 1fr;
gap: 0.75rem;
margin: 0.75rem 0 1.25rem;
}
.neu-intent {
border: 1px solid var(--ecg-border, #e0d8c8);
border-radius: 4px;
padding: 0.75rem 1rem;
background: var(--ecg-card-bg);
}
.neu-intent .neu-intent-label {
font-family: var(--font-mono);
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--ecg-green);
margin-bottom: 0.25rem;
}
.neu-intent p { margin: 0.25rem 0 0; font-size: 14px; }
</style>
{% endblock %}
{% block main %}
<div class="neu-layout">
<aside class="neu-toc">
<a href="#einstieg">Worum geht es</a>
<a href="#buerger-modus">Antrag-Detail neu</a>
<a href="#tour">Tour mit Sprachausgabe</a>
<a href="#stimmverhalten">Stimmverhalten</a>
<a href="#aktuelle-themen">Aktuelle Themen</a>
<a href="#programme">Wahlprogramme</a>
<a href="#scorecards">Scorecards</a>
<a href="#auswertungen">Auswertungen</a>
<a href="#quellen">Quellen-Suche</a>
<a href="#sicherheit">Anmeldung</a>
</aside>
<article class="neu-body">
<h2 id="einstieg">Was ist neu in 2.0</h2>
<div class="neu-hero">
Version 2.0 verschiebt den Fokus: weg vom Antragstext-Werkzeug, hin zur
politischen Konsequenzanalyse. Die zentrale Frage lautet jetzt nicht
mehr <em>„Wie gemeinwohlorientiert ist der Antrag?"</em>, sondern
<em>„Stimmen Programmtreue und Abstimmungsverhalten zusammen?"</em>.
Dazu kommen Quellen aus 16 Bundesländern, eine neu gestaltete
Antrag-Ansicht und eine geführte Einführung mit Sprachausgabe.
<div class="neu-hero-meta">Version 2.0 · 2026-05-10 · 230 Commits seit 1.0</div>
</div>
<h2 id="buerger-modus">Neu gestaltetes Antrag-Detail</h2>
<div class="neu-intent-grid">
<div class="neu-intent">
<div class="neu-intent-label">Intention</div>
<p>Ein Antrag soll auch ohne politisches Vorwissen lesbar sein. In 1.0 traf
die Detailseite gleich mit Profi-Vokabular auf — jetzt erklärt sich die Seite
Schritt für Schritt selbst, von der Kernbotschaft oben bis zur GWÖ-Matrix darunter.</p>
</div>
</div>
<h3>Umsetzung</h3>
<ul>
<li>Einspaltiges Layout, Score und Kernbotschaft stehen oben.</li>
<li>Programm-Treue als zwei-spaltiges Grid mit Begründungen pro Fraktion,
statt verschachtelter Listen.</li>
<li>Glossar und Tooltips für Fachbegriffe direkt im Text.</li>
<li>Klickbare Matrix-Zellen mit Begründung pro Feld, statt nur Symbole.</li>
</ul>
<h2 id="tour">Geführte Tour mit Sprachausgabe</h2>
<div class="neu-intent-grid">
<div class="neu-intent">
<div class="neu-intent-label">Intention</div>
<p>Wer das System neu sieht, soll sich nicht durch Doku quälen müssen.
Lesen ist außerdem mühsam — Vorlesen mit echter Stimme nimmt die Hürde,
nebenbei zu erklären, was passiert.</p>
</div>
</div>
<h3>Umsetzung</h3>
<ul>
<li>Pro Seite eigene Stationen, je rund fünf Schritte.</li>
<li>Spotlight-Effekt auf das gerade beschriebene Element.</li>
<li>Sprache: ElevenLabs-Stimme „Domi", deutsch. Web-Speech-Stimme als Fallback,
wenn die Sprachausgabe nicht verfügbar ist.</li>
<li>Aufruf über das Tour-Symbol oben rechts in der Topbar.</li>
</ul>
<h2 id="stimmverhalten">Stimmverhalten und Konsistenz-Marker</h2>
<div class="neu-intent-grid">
<div class="neu-intent">
<div class="neu-intent-label">Intention</div>
<p>Eine GWÖ-Bewertung allein bleibt abstrakt. Erst der Vergleich zwischen
programmatischer Empfehlung und realem Vote zeigt, ob Fraktionen ihrer
eigenen Programmatik treu bleiben oder sich opportunistisch verhalten.</p>
</div>
</div>
<h3>Umsetzung</h3>
<ul>
<li>Plenarprotokolle aus neun Bundesländern und dem Bund automatisch eingelesen
(Brandenburg, Berlin, Bremen, Hamburg, Hessen, NRW, Saarland, Schleswig-Holstein,
Thüringen sowie Bundestag).</li>
<li>Pro Antrag wird sichtbar, welche Fraktion Ja, Nein oder Enthaltung gestimmt hat,
inklusive Mehrheits-Bar.</li>
<li>Heuchelei-Marker (⚠) bei Nein-Stimmen trotz hoher Programmtreue.</li>
<li>Opportunismus-Marker (!) bei Ja-Stimmen trotz niedriger Programmtreue.</li>
<li>Eigener <a href="/stimmverhalten">Stimmverhalten-Tab</a> mit Aufschlüsselung pro Berührungsgruppe (Lieferant*innen, Mitarbeiter*innen, Kund*innen, Gesellschaft, Mitwelt).</li>
</ul>
<h2 id="aktuelle-themen">Aktuelle-Themen-Dashboard mit Pressemitteilungs-Generator</h2>
<div class="neu-intent-grid">
<div class="neu-intent">
<div class="neu-intent-label">Intention</div>
<p>Politische Anträge stehen nie isoliert. Wo welche aktuelle Nachricht zu
welchem Antrag gehört, soll auf einen Blick sichtbar sein — und sich daraus
sofort ein Pressemitteilungs- oder Mastodon-Thread-Entwurf ziehen lassen,
der Kontext mitnimmt.</p>
</div>
</div>
<h3>Umsetzung</h3>
<ul>
<li>News-Aggregator zieht aus Tagesschau-API und Bundestag-RSS.</li>
<li>Automatischer Match News × Antrag über semantische Ähnlichkeit.</li>
<li>PM-Generator mit zwei Stilen: klassische Pressemitteilung
oder Mastodon-/Twitter-Thread (drei bis fünf Posts, jeweils unter 280 Zeichen).</li>
<li>Versionierung pro DrucksacheNews-Paar, damit Iterationen sichtbar bleiben.</li>
</ul>
<h2 id="programme">Programme aus 15 Jahren — zeitpunkt-genaue Bewertung</h2>
<div class="neu-intent-grid">
<div class="neu-intent">
<div class="neu-intent-label">Intention</div>
<p>Ein Antrag aus 2018 muss gegen das Wahlprogramm 2017 bewertet werden, nicht
gegen 2022. Anachronismen verzerren die Aussage zur Programmtreue.</p>
</div>
</div>
<h3>Umsetzung</h3>
<ul>
<li>287 Wahl- und Grundsatzprogramme zurück bis 2011 indexiert
(alle 16 Bundesländer plus Bund).</li>
<li>Die Bewertung filtert Embeddings nach dem Antragsdatum und zieht
nur Programme heran, die zum damaligen Zeitpunkt galten.</li>
<li>Im Antrag-Detail steht der Bewertungs-Kontext mit Direktlinks zu den
herangezogenen Programmen.</li>
</ul>
<h2 id="scorecards">Scorecards für Social-Sharing</h2>
<div class="neu-intent-grid">
<div class="neu-intent">
<div class="neu-intent-label">Intention</div>
<p>Eine Bewertung soll teilbar sein — auf Mastodon, Threads, Instagram.
Jede Plattform hat ihre eigenen Bildformat-Vorlieben.</p>
</div>
</div>
<h3>Umsetzung</h3>
<ul>
<li>Vier Layouts: Portrait (Instagram-/Threads-1080×1350), Landscape, klassisch und kompakt.</li>
<li>PNG-Export direkt aus der Antragsseite.</li>
<li>Werkstatt unter <code>/v2/scorecard-werkstatt</code> für Live-Vorschau und Format-Wechsel.</li>
</ul>
<h2 id="auswertungen">Auswertungen über Heuchelei und Konsistenz</h2>
<div class="neu-intent-grid">
<div class="neu-intent">
<div class="neu-intent-label">Intention</div>
<p>Stark gemittelte Statistiken („SPD-Schnitt 6,4") sind selten aussagekräftig.
Die Frage ist, wo sich Fraktionen widersprechen und wo sie konsistent handeln.</p>
</div>
</div>
<h3>Umsetzung</h3>
<ul>
<li>Heuchelei-Quote pro Fraktion, mit Drilldown auf die einzelnen Anträge.</li>
<li>Empfehlungs-Konsistenz-Tab: Wie oft folgt eine Fraktion der GWÖ-Empfehlung?</li>
<li>Score-Histogram statt nur Mittelwert.</li>
<li>Cross-Bundesland-Vergleich: gleiche Fraktion, verschiedene Länder.</li>
<li>CSV-Export der Long-Format-Daten für eigene Analysen.</li>
</ul>
<h2 id="quellen">Quellen-Volltextsuche</h2>
<div class="neu-intent-grid">
<div class="neu-intent">
<div class="neu-intent-label">Intention</div>
<p>Wer nachschauen will, was eine Partei zu einem bestimmten Thema im
Wahlprogramm geschrieben hat, soll das ohne PDF-Download tun können.</p>
</div>
</div>
<h3>Umsetzung</h3>
<ul>
<li>Semantische Suche über alle 287 Programme — nicht nur Stichwort, sondern Bedeutung.</li>
<li>Filter zwischen aktuellen Programmen und „inkl. historisch".</li>
<li>Direkter Link auf die Original-PDF-Seite mit visuell hervorgehobenem Zitat.</li>
</ul>
<h2 id="sicherheit">Anmeldung über Single Sign-On</h2>
<div class="neu-intent-grid">
<div class="neu-intent">
<div class="neu-intent-label">Intention</div>
<p>Lese-Endpoints bleiben offen. Schreib-Endpoints (Bewertung anlegen,
PM generieren, Bookmarks setzen) brauchen eine Anmeldung — ohne zusätzliche
Passwortverwaltung im System selbst.</p>
</div>
</div>
<h3>Umsetzung</h3>
<ul>
<li>Single Sign-On über Keycloak (sso.toppyr.de).</li>
<li>Rollen-Trennung: Standard-User für Bewertung, Admin-Rolle für Batch-Läufe und Auto-Bewertung.</li>
<li>Approve-Flow für neue Konten mit Mail-Benachrichtigung.</li>
</ul>
</article>
</div>
{% endblock %}