feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
{% extends "v2/base.html" %}
{% block title %}Methodik — GWÖ-Antragsprüfer{% endblock %}
{% set v2_active_nav = "" %}
{% block head_extra %}
< style >
.meth-layout {
display: grid;
grid-template-columns: 220px 1fr;
gap: 2rem;
align-items: start;
}
@media (max-width: 720px) {
.meth-layout { grid-template-columns: 1fr; }
.meth-toc { display: none; }
}
.meth-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.75;
}
.meth-toc a {
display: block;
color: inherit;
text-decoration: none;
opacity: 0.75;
transition: opacity 0.1s;
}
.meth-toc a:hover { opacity: 1; color: var(--ecg-green); }
.meth-toc .toc-section { font-weight: 700; margin-top: 8px; opacity: 1; }
.meth-body h2 {
font-family: var(--font-display);
font-size: 18px;
color: var(--ecg-teal);
margin: 2rem 0 0.75rem;
padding-bottom: 4px;
border-bottom: 2px solid var(--ecg-teal);
}
.meth-body h3 {
font-family: var(--font-display);
font-size: 14px;
color: var(--ecg-green);
margin: 1.25rem 0 0.4rem;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.meth-body p { margin-bottom: 0.6rem; }
.meth-body ul { margin: 0.4rem 0 0.8rem 1.4rem; }
.meth-body li { margin: 0.25rem 0; }
.meth-body a { color: var(--ecg-teal); }
.meth-body table {
border-collapse: collapse;
width: 100%;
font-size: 12px;
margin: 0.5rem 0 1rem;
}
.meth-body th, .meth-body td {
border: 1px solid var(--ecg-border);
padding: 6px 8px;
text-align: left;
}
.meth-body th { background: var(--ecg-bg-subtle); font-weight: 700; font-size: 11px; }
.meth-note {
background: rgba(136,158,51,0.1);
border-left: 3px solid var(--ecg-green);
padding: 10px 14px;
margin: 1rem 0;
font-size: 13px;
border-radius: 0 4px 4px 0;
}
/* Interactive matrix grid */
.gwoe-matrix-grid {
display: grid;
feat(#144): Matrix-Ueberschriften ausschreiben + Hover-Tooltips
Statt Abkuerzungen (Wuerde, Solid., Liefer., Verwalt., Gesell.) jetzt
voll ausgeschrieben: Menschenwuerde, Solidaritaet, Lieferant:innen,
Verwaltung, Gesellschaft & Natur, etc.
Hover-Tooltip pro Spalte/Zeile mit Erklaerung + Staatsprinzip
(Rechtsstaatsprinzip, Gemeinnutz, Umwelt-Verantwortung, ...).
Matrix-Felder bekommen Tooltip mit Feldname als Vorschau, der
volle Erklaerungstext bleibt im Click-Modal (showField).
Layout: rhdr-Spalte 130/150px, line-height 1.25, min-height 36px,
damit lange Begriffe sauber umbrechen koennen.
Closes #144
2026-04-28 01:53:38 +02:00
grid-template-columns: 150px repeat(5, 1fr);
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
gap: 2px;
font-size: 11px;
margin: 1rem 0;
}
feat(#144): Matrix-Ueberschriften ausschreiben + Hover-Tooltips
Statt Abkuerzungen (Wuerde, Solid., Liefer., Verwalt., Gesell.) jetzt
voll ausgeschrieben: Menschenwuerde, Solidaritaet, Lieferant:innen,
Verwaltung, Gesellschaft & Natur, etc.
Hover-Tooltip pro Spalte/Zeile mit Erklaerung + Staatsprinzip
(Rechtsstaatsprinzip, Gemeinnutz, Umwelt-Verantwortung, ...).
Matrix-Felder bekommen Tooltip mit Feldname als Vorschau, der
volle Erklaerungstext bleibt im Click-Modal (showField).
Layout: rhdr-Spalte 130/150px, line-height 1.25, min-height 36px,
damit lange Begriffe sauber umbrechen koennen.
Closes #144
2026-04-28 01:53:38 +02:00
.gwoe-matrix-grid .gc { padding: 5px 4px; text-align: center; background: var(--ecg-bg-subtle); border: 1px solid var(--ecg-border); display: flex; align-items: center; justify-content: center; line-height: 1.25; min-height: 36px; }
.gwoe-matrix-grid .gh { background: var(--ecg-teal); color: #fff; font-weight: 700; cursor: help; }
.gwoe-matrix-grid .gr { background: var(--ecg-green); color: #fff; font-weight: 700; justify-content: flex-start; padding-left: 6px; text-align: left; cursor: help; }
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
.gwoe-matrix-grid .gc.clickable { cursor: pointer; transition: background 0.1s; }
.gwoe-matrix-grid .gc.clickable:hover { background: rgba(0,157,165,0.12); }
#field-explain {
display: none;
background: var(--ecg-bg-subtle);
border-left: 3px solid var(--ecg-green);
padding: 12px 16px;
margin: 0.5rem 0 1rem;
border-radius: 0 4px 4px 0;
font-size: 13px;
}
#field-explain strong { font-family: var(--font-display); }
.pipeline-step {
display: flex;
gap: 12px;
align-items: flex-start;
margin: 10px 0;
padding: 10px 12px;
background: var(--ecg-bg-subtle);
border-radius: 4px;
border-left: 3px solid var(--ecg-teal);
}
.step-num {
background: var(--ecg-teal);
color: #fff;
width: 26px; height: 26px;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-weight: 700; font-size: 12px; flex-shrink: 0;
font-family: var(--font-mono);
}
< / style >
{% endblock %}
{% block main %}
< div style = "padding:0 0 2rem;" >
< h1 style = "font-family:var(--font-display);font-size:22px;color:var(--ecg-teal);margin:0 0 4px;" > Methodik< / h1 >
< p style = "font-size:12px;font-family:var(--font-mono);color:var(--ecg-dark);opacity:0.6;" >
GWÖ-Matrix 2.0 · Gemeinden · Transparenz-Dokumentation
< / p >
< / div >
< div class = "meth-layout" >
<!-- TOC -->
< nav class = "meth-toc" aria-label = "Inhaltsverzeichnis" >
< div class = "toc-section" > Inhalt< / div >
< a href = "#gwoe" > Was ist die GWÖ?< / a >
< a href = "#was-macht" > Was macht der Prüfer?< / a >
< a href = "#matrix" > Die Matrix 2.0< / a >
< a href = "#pipeline" > Analyse-Pipeline< / a >
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>
2026-05-07 12:08:17 +02:00
< a href = "#stimmverhalten" > Stimmverhalten & Marker< / a >
2026-04-28 01:50:25 +02:00
< a href = "#prompts" > LLM-Prompts< / a >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< a href = "#qualitaet" > Qualitätssicherung< / a >
< a href = "#einschraenkungen" > Einschränkungen< / a >
< a href = "#datenquellen" > Datenquellen< / a >
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>
2026-05-07 12:08:17 +02:00
< a href = "#versionsstand" > Versionsstand< / a >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< / nav >
<!-- Content -->
< div class = "meth-body" >
< section id = "gwoe" >
< h2 > Was ist die Gemeinwohl-Ökonomie?< / h2 >
< div class = "v2-kasten outline-blue" >
< p >
Die < strong > Gemeinwohl-Ökonomie (GWÖ)< / strong > ist ein Wirtschaftsmodell, das den
Erfolg wirtschaftlichen Handelns nicht am Gewinn, sondern am < strong > Beitrag zum
Gemeinwohl< / strong > misst. Entwickelt von Christian Felber (2010), trägt die GWÖ
eine internationale Bewegung mit über 11.000 Unterstützer:innen,
4.500 Mitgliedern und 1.000 bilanzierten Organisationen.
< / p >
< h3 > Das Bewertungsmodell: die Gemeinwohl-Bilanz< / h3 >
< p >
Das Kernstück ist die < strong > Gemeinwohl-Bilanz< / strong > : ein standardisiertes
Bewertungsverfahren nach einer Matrix aus fünf Werten
(Menschenwürde, Solidarität, ökologische Nachhaltigkeit, soziale Gerechtigkeit,
Transparenz & Demokratie) und fünf Berührungsgruppen.
Die aktuelle < strong > Unternehmens-Matrix (Version 5.1)< / strong > ist in über 35 Ländern erprobt.
< / p >
< p style = "font-size:11px;" >
→ < a href = "https://germany.econgood.org/wp-content/uploads/sites/8/2025/02/ECOnGOOD_Arbeitsbuch_5_1.pdf" target = "_blank" > Arbeitsbuch Unternehmen 5.1 (PDF)< / a > ·
< a href = "https://germany.econgood.org/tools/gemeinwohl-matrix/" target = "_blank" > Matrix-Übersicht< / a >
< / p >
< h3 > Adaption für die öffentliche Hand< / h3 >
< p >
Für < strong > Gemeinden< / strong > gibt es seit 2017 das < strong > Arbeitsbuch für Gemeinden Version 2.0< / strong > .
Es überträgt die Unternehmens-Matrix auf kommunale Handlungsfelder:
statt „Kund:innen" stehen < em > Bürger:innen< / em > im Fokus, statt „Lieferkette"
geht es um < em > öffentliche Beschaffung< / em > .
Eine aktualisierte Version 2.1.A läuft seit 2023 im Pilotbetrieb.
< / p >
< p style = "font-size:11px;" >
→ < a href = "https://germany.econgood.org/wp-content/uploads/sites/8/2022/05/Arbeitsbuch-Gemeinden_2.pdf" target = "_blank" > Arbeitsbuch Gemeinden 2.0 (PDF)< / a > ·
< a href = "https://germany.econgood.org/wp-content/uploads/sites/8/2024/04/20231103_Arbeitsbuch-2_1_A-final.pdf" target = "_blank" > Version 2.1.A Pilotfassung (PDF)< / a >
< / p >
< h3 > Anwendung auf Parlamentsanträge< / h3 >
< p >
< strong > Dieser Antragsprüfer< / strong > nutzt die Gemeinde-Matrix 2.0 als
Bewertungsrahmen und wendet sie systematisch auf Parlamentsanträge aller
deutschen Landtage und des Bundestags an. Parlamentsanträge gestalten die
Rahmenbedingungen, unter denen Gemeinden handeln — ihre Gemeinwohl-Wirkung
zu messen macht sie vergleichbar und transparent.
< / p >
< / div >
< / section >
< section id = "was-macht" >
< h2 > Was macht der GWÖ-Antragsprüfer?< / h2 >
< div class = "v2-kasten outline-green" >
< 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 >
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>
2026-05-07 12:08:17 +02:00
< 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 >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< li > < strong > 25-Felder-Matrix< / strong > — detaillierte Bewertung für jede Kombination aus Berührungsgruppe und Wert< / li >
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>
2026-05-07 12:08:17 +02:00
< 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 >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< 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 >
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>
2026-05-07 12:08:17 +02:00
< 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 >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< / ul >
< p style = "margin-top:0.5rem;" >
Ziel ist < strong > Transparenz< / strong > : Bürger:innen können nachvollziehen, welche
Anträge dem Gemeinwohl dienen — und welche dagegen arbeiten.
Die Bewertungen sind öffentlich, maschinenlesbar (JSON/CSV/Atom-Feed) und unter CC BY 4.0 lizenziert.
< / p >
< / div >
< / section >
< section id = "matrix" >
< h2 > Die GWÖ-Matrix 2.0 für Gemeinden< / h2 >
< div class = "v2-kasten outline-blue" >
< p > < strong > 5 Berührungsgruppen< / strong > (Zeilen) × < strong > 5 Werte< / strong > (Spalten) = 25 Bewertungsfelder.
Jedes Feld wird von < strong > − 5< / strong > (fundamental widersprechend) bis < strong > +5< / strong >
(stark fördernd) bewertet. Der GWÖ-Score (0– 10) ist ein gewichteter Durchschnitt.< / p >
< / div >
< h3 > Die fünf Werte (Spalten)< / h3 >
< table >
< tr > < th style = "width:30%;" > Wert< / th > < th > Leitfrage< / th > < / tr >
< tr > < td > < strong > 1. Menschenwürde< / strong > < / td > < td > Werden Grundrechte geschützt? Rechtliche Gleichstellung? Schutz vor Diskriminierung?< / td > < / tr >
< tr > < td > < strong > 2. Solidarität< / strong > < / td > < td > Wird das Gemeinwohl gefördert? Mehrwert für die Gemeinschaft? Kooperation statt Konkurrenz?< / td > < / tr >
< tr > < td > < strong > 3. Ökologische Nachhaltigkeit< / strong > < / td > < td > Klimaschutz? Ressourcenschonung? Biodiversität? Kreislaufwirtschaft?< / td > < / tr >
< tr > < td > < strong > 4. Soziale Gerechtigkeit< / strong > < / td > < td > Gerechte Verteilung? Daseinsvorsorge? Soziale Absicherung? Chancengleichheit?< / td > < / tr >
< tr > < td > < strong > 5. Transparenz & Demokratie< / strong > < / td > < td > Bürgerbeteiligung? Offenlegung? Demokratische Prozesse? Rechenschaftspflicht?< / td > < / tr >
< / table >
< h3 > Die fünf Berührungsgruppen (Zeilen)< / h3 >
< table >
< tr > < th style = "width:30%;" > Gruppe< / th > < th > Wer ist gemeint?< / th > < / tr >
< tr > < td > < strong > A · Lieferant:innen< / strong > < / td > < td > Externe Beschaffung, Lieferketten, Dienstleister:innen< / td > < / tr >
< tr > < td > < strong > B · Finanzen< / strong > < / td > < td > Umgang mit öffentlichen Mitteln, Haushalt, Steuerzahler:innen< / td > < / tr >
< tr > < td > < strong > C · Verwaltung< / strong > < / td > < td > Mandatsträger:innen, Mitarbeitende, Ehrenamtliche< / td > < / tr >
< tr > < td > < strong > D · Bürger:innen< / strong > < / td > < td > Wirkung innerhalb der Grenzen, Daseinsvorsorge< / td > < / tr >
< tr > < td > < strong > E · Gesellschaft & Natur< / strong > < / td > < td > Wirkung über die Grenzen hinaus, Zukunft< / td > < / tr >
< / table >
< h3 > Alle 25 Felder< / h3 >
< p style = "font-size:11px;opacity:0.7;margin-bottom:8px;" > Klick auf ein Feld für Details.< / p >
< div id = "field-explain" >
< div style = "display:flex;justify-content:space-between;align-items:center;" >
< strong id = "field-explain-title" > < / strong >
< button onclick = "document.getElementById('field-explain').style.display='none'"
style="background:none;border:none;cursor:pointer;color:var(--ecg-dark);opacity:0.5;font-size:14px;">✕< / button >
< / div >
< div id = "field-explain-text" style = "margin-top:8px;line-height:1.6;" > < / div >
< / div >
< div class = "gwoe-matrix-grid" >
< div class = "gc" > < / div >
feat(#144): Matrix-Ueberschriften ausschreiben + Hover-Tooltips
Statt Abkuerzungen (Wuerde, Solid., Liefer., Verwalt., Gesell.) jetzt
voll ausgeschrieben: Menschenwuerde, Solidaritaet, Lieferant:innen,
Verwaltung, Gesellschaft & Natur, etc.
Hover-Tooltip pro Spalte/Zeile mit Erklaerung + Staatsprinzip
(Rechtsstaatsprinzip, Gemeinnutz, Umwelt-Verantwortung, ...).
Matrix-Felder bekommen Tooltip mit Feldname als Vorschau, der
volle Erklaerungstext bleibt im Click-Modal (showField).
Layout: rhdr-Spalte 130/150px, line-height 1.25, min-height 36px,
damit lange Begriffe sauber umbrechen koennen.
Closes #144
2026-04-28 01:53:38 +02:00
< div class = "gc gh" title = "Wert 1 — Menschenwürde (Rechtsstaatsprinzip): Werden Grundrechte geschützt? Rechtliche Gleichstellung, Schutz vor Diskriminierung." > Menschenwürde< / div >
< div class = "gc gh" title = "Wert 2 — Solidarität (Gemeinnutz): Wird das Gemeinwohl gefördert? Mehrwert für die Gemeinschaft, Kooperation statt Konkurrenz." > Solidarität< / div >
< div class = "gc gh" title = "Wert 3 — Ökologische Nachhaltigkeit (Umwelt-Verantwortung): Klimaschutz, Ressourcenschonung, Biodiversität, Kreislaufwirtschaft." > Ökologische Nachhaltigkeit< / div >
< div class = "gc gh" title = "Wert 4 — Soziale Gerechtigkeit (Sozialstaatsprinzip): Gerechte Verteilung, Daseinsvorsorge, soziale Absicherung, Chancengleichheit." > Soziale Gerechtigkeit< / div >
< div class = "gc gh" title = "Wert 5 — Transparenz & Mitbestimmung (Demokratie): Bürgerbeteiligung, Offenlegung, demokratische Prozesse, Rechenschaftspflicht." > Transparenz & Mitbestimmung< / div >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
feat(#144): Matrix-Ueberschriften ausschreiben + Hover-Tooltips
Statt Abkuerzungen (Wuerde, Solid., Liefer., Verwalt., Gesell.) jetzt
voll ausgeschrieben: Menschenwuerde, Solidaritaet, Lieferant:innen,
Verwaltung, Gesellschaft & Natur, etc.
Hover-Tooltip pro Spalte/Zeile mit Erklaerung + Staatsprinzip
(Rechtsstaatsprinzip, Gemeinnutz, Umwelt-Verantwortung, ...).
Matrix-Felder bekommen Tooltip mit Feldname als Vorschau, der
volle Erklaerungstext bleibt im Click-Modal (showField).
Layout: rhdr-Spalte 130/150px, line-height 1.25, min-height 36px,
damit lange Begriffe sauber umbrechen koennen.
Closes #144
2026-04-28 01:53:38 +02:00
< div class = "gc gr" title = "Berührungsgruppe A — Lieferant:innen, ausgelagerte Betriebe, Dienstleister:innen. Externe Beschaffung und Lieferketten der Kommune." > A · Lieferant:innen< / div >
< div class = "gc clickable" onclick = "showField('A1')" title = "A1 — Grundrechtsschutz in der Lieferkette" > < strong > A1< / strong > < br > < small > Grundrechte Lieferkette< / small > < / div >
< div class = "gc clickable" onclick = "showField('A2')" title = "A2 — Nutzen für die Gemeinde" > < strong > A2< / strong > < br > < small > Nutzen Gemeinde< / small > < / div >
< div class = "gc clickable" onclick = "showField('A3')" title = "A3 — Ökologische Verantwortung in der Lieferkette" > < strong > A3< / strong > < br > < small > Ökol. Verantwortung< / small > < / div >
< div class = "gc clickable" onclick = "showField('A4')" title = "A4 — Soziale Verantwortung in der Lieferkette" > < strong > A4< / strong > < br > < small > Soziale Verantwortung< / small > < / div >
< div class = "gc clickable" onclick = "showField('A5')" title = "A5 — Rechenschaft und Mitsprache bei Beschaffung" > < strong > A5< / strong > < br > < small > Rechenschaft< / small > < / div >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
feat(#144): Matrix-Ueberschriften ausschreiben + Hover-Tooltips
Statt Abkuerzungen (Wuerde, Solid., Liefer., Verwalt., Gesell.) jetzt
voll ausgeschrieben: Menschenwuerde, Solidaritaet, Lieferant:innen,
Verwaltung, Gesellschaft & Natur, etc.
Hover-Tooltip pro Spalte/Zeile mit Erklaerung + Staatsprinzip
(Rechtsstaatsprinzip, Gemeinnutz, Umwelt-Verantwortung, ...).
Matrix-Felder bekommen Tooltip mit Feldname als Vorschau, der
volle Erklaerungstext bleibt im Click-Modal (showField).
Layout: rhdr-Spalte 130/150px, line-height 1.25, min-height 36px,
damit lange Begriffe sauber umbrechen koennen.
Closes #144
2026-04-28 01:53:38 +02:00
< div class = "gc gr" title = "Berührungsgruppe B — Finanzpartner:innen, Geldgeber:innen, Steuerzahler:innen. Umgang mit öffentlichen Mitteln und Haushalt." > B · Finanzen< / div >
< div class = "gc clickable" onclick = "showField('B1')" title = "B1 — Ethisches Finanzgebaren" > < strong > B1< / strong > < br > < small > Eth. Finanzgebaren< / small > < / div >
< div class = "gc clickable" onclick = "showField('B2')" title = "B2 — Gemeinnutz im Finanzgebaren" > < strong > B2< / strong > < br > < small > Gemeinnutz< / small > < / div >
< div class = "gc clickable" onclick = "showField('B3')" title = "B3 — Ökologische Verantwortung der Finanzpolitik" > < strong > B3< / strong > < br > < small > Ökol. Finanzpolitik< / small > < / div >
< div class = "gc clickable" onclick = "showField('B4')" title = "B4 — Soziale Verantwortung der Finanzpolitik" > < strong > B4< / strong > < br > < small > Soz. Finanzpolitik< / small > < / div >
< div class = "gc clickable" onclick = "showField('B5')" title = "B5 — Partizipation in der Finanzpolitik" > < strong > B5< / strong > < br > < small > Partizipation< / small > < / div >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
feat(#144): Matrix-Ueberschriften ausschreiben + Hover-Tooltips
Statt Abkuerzungen (Wuerde, Solid., Liefer., Verwalt., Gesell.) jetzt
voll ausgeschrieben: Menschenwuerde, Solidaritaet, Lieferant:innen,
Verwaltung, Gesellschaft & Natur, etc.
Hover-Tooltip pro Spalte/Zeile mit Erklaerung + Staatsprinzip
(Rechtsstaatsprinzip, Gemeinnutz, Umwelt-Verantwortung, ...).
Matrix-Felder bekommen Tooltip mit Feldname als Vorschau, der
volle Erklaerungstext bleibt im Click-Modal (showField).
Layout: rhdr-Spalte 130/150px, line-height 1.25, min-height 36px,
damit lange Begriffe sauber umbrechen koennen.
Closes #144
2026-04-28 01:53:38 +02:00
< div class = "gc gr" title = "Berührungsgruppe C — Politische Führung, Verwaltung, Ehrenamtliche. Mandatsträger:innen und Mitarbeitende der Kommune." > C · Verwaltung< / div >
< div class = "gc clickable" onclick = "showField('C1')" title = "C1 — Individuelle Rechts- und Gleichstellung" > < strong > C1< / strong > < br > < small > Gleichstellung< / small > < / div >
< div class = "gc clickable" onclick = "showField('C2')" title = "C2 — Gemeinsame Zielvereinbarung für das Gemeinwohl" > < strong > C2< / strong > < br > < small > Gemeinsame Ziele< / small > < / div >
< div class = "gc clickable" onclick = "showField('C3')" title = "C3 — Förderung ökologischen Verhaltens intern" > < strong > C3< / strong > < br > < small > Ökol. Verhalten< / small > < / div >
< div class = "gc clickable" onclick = "showField('C4')" title = "C4 — Gerechte Verteilung von Arbeit" > < strong > C4< / strong > < br > < small > Gerechte Arbeit< / small > < / div >
< div class = "gc clickable" onclick = "showField('C5')" title = "C5 — Transparente Kommunikation intern" > < strong > C5< / strong > < br > < small > Transparenz intern< / small > < / div >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
feat(#144): Matrix-Ueberschriften ausschreiben + Hover-Tooltips
Statt Abkuerzungen (Wuerde, Solid., Liefer., Verwalt., Gesell.) jetzt
voll ausgeschrieben: Menschenwuerde, Solidaritaet, Lieferant:innen,
Verwaltung, Gesellschaft & Natur, etc.
Hover-Tooltip pro Spalte/Zeile mit Erklaerung + Staatsprinzip
(Rechtsstaatsprinzip, Gemeinnutz, Umwelt-Verantwortung, ...).
Matrix-Felder bekommen Tooltip mit Feldname als Vorschau, der
volle Erklaerungstext bleibt im Click-Modal (showField).
Layout: rhdr-Spalte 130/150px, line-height 1.25, min-height 36px,
damit lange Begriffe sauber umbrechen koennen.
Closes #144
2026-04-28 01:53:38 +02:00
< div class = "gc gr" title = "Berührungsgruppe D — Bürger:innen und Wirtschaft. Wirkung innerhalb der Gemeindegrenzen, Daseinsvorsorge." > D · Bürger:innen< / div >
< div class = "gc clickable" onclick = "showField('D1')" title = "D1 — Schutz des Individuums, Rechtsgleichheit" > < strong > D1< / strong > < br > < small > Rechtsgleichheit< / small > < / div >
< div class = "gc clickable" onclick = "showField('D2')" title = "D2 — Gesamtwohl in der Gemeinde" > < strong > D2< / strong > < br > < small > Gesamtwohl< / small > < / div >
< div class = "gc clickable" onclick = "showField('D3')" title = "D3 — Ökologische Gestaltung der öffentlichen Leistung" > < strong > D3< / strong > < br > < small > Ökol. Leistung< / small > < / div >
< div class = "gc clickable" onclick = "showField('D4')" title = "D4 — Soziale Gestaltung der öffentlichen Leistung" > < strong > D4< / strong > < br > < small > Soz. Leistung< / small > < / div >
< div class = "gc clickable" onclick = "showField('D5')" title = "D5 — Transparente Kommunikation und demokratische Einbindung" > < strong > D5< / strong > < br > < small > Demokratie< / small > < / div >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
feat(#144): Matrix-Ueberschriften ausschreiben + Hover-Tooltips
Statt Abkuerzungen (Wuerde, Solid., Liefer., Verwalt., Gesell.) jetzt
voll ausgeschrieben: Menschenwuerde, Solidaritaet, Lieferant:innen,
Verwaltung, Gesellschaft & Natur, etc.
Hover-Tooltip pro Spalte/Zeile mit Erklaerung + Staatsprinzip
(Rechtsstaatsprinzip, Gemeinnutz, Umwelt-Verantwortung, ...).
Matrix-Felder bekommen Tooltip mit Feldname als Vorschau, der
volle Erklaerungstext bleibt im Click-Modal (showField).
Layout: rhdr-Spalte 130/150px, line-height 1.25, min-height 36px,
damit lange Begriffe sauber umbrechen koennen.
Closes #144
2026-04-28 01:53:38 +02:00
< div class = "gc gr" title = "Berührungsgruppe E — Staat, Gesellschaft und Natur. Wirkung über die Gemeindegrenzen hinaus, Zukunft." > E · Gesellschaft & Natur< / div >
< div class = "gc clickable" onclick = "showField('E1')" title = "E1 — Menschenwürdiges Leben für zukünftige Generationen" > < strong > E1< / strong > < br > < small > Zukunft< / small > < / div >
< div class = "gc clickable" onclick = "showField('E2')" title = "E2 — Beitrag zum Gesamtwohl über die Gemeindegrenzen hinaus" > < strong > E2< / strong > < br > < small > Beitrag Gesamtwohl< / small > < / div >
< div class = "gc clickable" onclick = "showField('E3')" title = "E3 — Verantwortung für ökologische Auswirkungen jenseits der Gemeinde" > < strong > E3< / strong > < br > < small > Ökol. Auswirkungen< / small > < / div >
< div class = "gc clickable" onclick = "showField('E4')" title = "E4 — Beitrag zum sozialen Ausgleich" > < strong > E4< / strong > < br > < small > Sozialer Ausgleich< / small > < / div >
< div class = "gc clickable" onclick = "showField('E5')" title = "E5 — Transparente und demokratische Mitbestimmung auf übergeordneter Ebene" > < strong > E5< / strong > < br > < small > Demokratie global< / small > < / div >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< / div >
< details style = "font-size:12px;margin-top:8px;" >
< summary style = "cursor:pointer;color:var(--ecg-teal);font-weight:600;padding:4px 0;" > Bewertungsskala< / summary >
< table style = "margin-top:6px;font-size:11px;" >
< tr > < th > Symbol< / th > < th > Rating< / th > < th > Bedeutung< / th > < / tr >
< tr > < td > ++< / td > < td > +4 bis +5< / td > < td > Stark fördernd, vorbildlich< / td > < / tr >
< tr > < td > +< / td > < td > +1 bis +3< / td > < td > Fördernd< / td > < / tr >
< tr > < td > ○< / td > < td > 0< / td > < td > Neutral / nicht berührt< / td > < / tr >
< tr > < td > − < / td > < td > − 1 bis − 3< / td > < td > Widersprechend< / td > < / tr >
< tr > < td > − − < / td > < td > − 4 bis − 5< / td > < td > Stark widersprechend< / td > < / tr >
< / table >
< / details >
< / section >
< section id = "pipeline" >
< h2 > Analyse-Pipeline< / h2 >
< div class = "v2-kasten outline-blue" >
< div class = "pipeline-step" >
< div class = "step-num" > 1< / div >
< div >
< strong > Antragstext laden< / strong > < br >
Der PDF-Volltext wird aus dem Landtags-Portal geholt
({{ adapter_count }} Parlamente angebunden). Nur echte Anträge und
Gesetzentwürfe werden analysiert — Kleine Anfragen werden übersprungen.
< / div >
< / div >
< div class = "pipeline-step" >
< div class = "step-num" > 2< / div >
< div >
< strong > Wahlprogramm-Passagen suchen< / strong > < br >
Per semantischer Suche ({{ embedding_model }}, 1024 Dimensionen) werden für
< strong > jede Fraktion< / strong > die thematisch relevantesten Passagen aus
Wahl- und Grundsatzprogrammen gefunden. Aktuell {{ programme_count }} Programme
mit {{ chunk_count }} Textabschnitten indexiert.
< / div >
< / div >
< div class = "pipeline-step" >
< div class = "step-num" > 3< / div >
< div >
< strong > KI-Bewertung< / strong > < br >
Ein Sprachmodell ({{ model_name }}) bewertet den Antrag anhand der
GWÖ-Matrix und vergleicht ihn mit den gefundenen Programmpassagen.
Der Prompt erzwingt die Verwendung wörtlicher Zitate.
< / div >
< / div >
< div class = "pipeline-step" >
< div class = "step-num" > 4< / div >
< div >
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>
2026-05-07 12:08:17 +02:00
< strong > Zitat-Verifikation (partei-skopiert)< / strong > < br >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
Jedes Zitat wird < strong > server-seitig verifiziert< / strong > : der Text muss
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>
2026-05-07 12:08:17 +02:00
als Substring (oder 5-Wort-Anker) in einem retrieten Chunk
< em > derselben Partei< / em > auffindbar sein. Quellenangabe und Seitenzahl
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
werden aus dem echten Treffer rekonstruiert — die Modell-Ausgabe wird für diese
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>
2026-05-07 12:08:17 +02:00
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 >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< / div >
< / div >
< details style = "font-size:12px;margin-top:8px;" >
< summary style = "cursor:pointer;color:var(--ecg-teal);font-weight:600;padding:4px 0;" > Technische Details< / summary >
< table style = "margin-top:6px;font-size:11px;" >
< tr > < th > Eigenschaft< / th > < th > Wert< / th > < / tr >
< tr > < td > Sprachmodell< / td > < td > {{ model_name }} (DashScope / Alibaba Cloud)< / td > < / tr >
< tr > < td > Embedding-Modell< / td > < td > {{ embedding_model }} (1024 Dimensionen)< / td > < / tr >
< tr > < td > Chunk-Größe< / td > < td > 400 Wörter, 50 Wörter Overlap< / td > < / tr >
< tr > < td > Retry bei Parse-Fehlern< / td > < td > 3 Versuche mit steigender Temperatur< / td > < / tr >
< tr > < td > Zitat-Verifikation< / td > < td > Substring- oder 5-Wort-Anker-Match gegen Original-PDF< / td > < / tr >
< / table >
< / details >
< / div >
< / section >
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>
2026-05-07 12:08:17 +02:00
< 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 >
2026-04-28 01:50:25 +02:00
< section id = "prompts" >
< h2 > LLM-Prompts< / h2 >
< div class = "v2-kasten outline-blue" >
< p >
Volle Transparenz: hier liegen die exakten Anweisungen, mit denen das
2026-04-28 09:14:22 +02:00
Sprachmodell ({{ model_name }}) jeden Antrag bewertet.
2026-04-28 01:50:25 +02:00
< / p >
2026-04-28 09:14:22 +02:00
< h3 style = "margin-top:0.75rem;" > Wie System- und User-Prompt zusammenwirken< / h3 >
< p >
Beide Prompts werden in < strong > einem einzigen API-Call< / strong >
gesendet — nicht getrennt ausgeführt. Sie fließen gemeinsam ins
Modell-Kontextfenster und werden zusammen bewertet.
< / p >
< table style = "margin-top:0.5rem;" >
< tr >
< th style = "width:30%;" > System-Prompt (statisch, ~5 KB)< / th >
< th > User-Prompt (dynamisch, pro Antrag)< / th >
< / tr >
< tr >
< td > < strong > Wer und wie< / strong > bewertet wird: GWÖ-Matrix-Definition, 25 Felder, Bewertungs-Skala, Empfehlungs-Kategorien, Ausgabe-JSON-Schema, strenge Regeln (max. 3 Verbesserungs vorschläge, wörtliche Zitate, …).< / td >
< td > < strong > Was< / strong > bewertet wird: BL-Spezifika, semantisch gefundene Wahlprogramm-Chunks, der Antragstext selbst, Pflicht-Fraktionen-Liste.< / td >
< / tr >
< / table >
< p >
Das Modell wendet die Matrix-Definition aus dem System-Prompt auf
den Antragstext aus dem User-Prompt an. Ohne System-Prompt wüsste
es nicht < em > wonach< / em > es bewerten soll; ohne User-Prompt
hätte es nichts zu bewerten.
< / p >
< p style = "font-size:12px;opacity:0.85;" >
< strong > Warum die Trennung?< / strong >
< / p >
< ul style = "font-size:12px;opacity:0.85;" >
< li > < strong > Caching:< / strong > Der API-Anbieter cached den System-Prompt — pro neuem Antrag werden nur die User-Tokens verrechnet.< / li >
< li > < strong > Modell-Compliance:< / strong > Sprachmodelle behandeln System-Anweisungen mit höherem Vertrauen, was robuster gegen Prompt-Injection aus dem Antragstext ist.< / li >
< li > < strong > Wartbarkeit:< / strong > statische Bewertungs-Regeln getrennt vom dynamischen Inhalt — leichter zu pflegen, leichter zu auditieren.< / li >
< / ul >
2026-04-28 01:50:25 +02:00
< p style = "font-size:11px;opacity:0.7;" >
Quelle: < a href = "https://repo.toppyr.de/tobias/gwoe-antragspruefer/src/branch/main/app/analyzer.py" target = "_blank" > < code > app/analyzer.py< / code > < / a >
2026-04-28 09:14:22 +02:00
(< code > get_system_prompt()< / code > und < code > get_user_prompt_template()< / code > );
API-Aufruf in < a href = "https://repo.toppyr.de/tobias/gwoe-antragspruefer/src/branch/main/app/adapters/qwen_bewerter.py" target = "_blank" > < code > app/adapters/qwen_bewerter.py< / code > < / a >
(Zeilen 83– 85, < code > messages=[{"role":"system",…}, {"role":"user",…}]< / code > ).
< / p >
< h3 style = "margin-top:1rem;" > Die Prompts im Wortlaut< / h3 >
< p style = "font-size:12px;" >
Der User-Prompt unten ist als < em > Template< / em > abgebildet — die
Platzhalter < code > {kontext}< / code > , < code > {wahlprogramm_zitate}< / code > ,
< code > {antrag}< / code > und < code > {pflicht_fraktionen}< / code > werden
pro Antrag mit den konkreten Inhalten gefüllt.
2026-04-28 01:50:25 +02:00
< / p >
< details style = "margin-top:1rem;" >
< summary style = "cursor:pointer;color:var(--ecg-teal);font-weight:700;padding:6px 0;font-family:var(--font-display);" >
System-Prompt anzeigen
< span style = "font-family:var(--font-mono);font-size:11px;opacity:0.6;font-weight:400;" > ({{ system_prompt|length }} Zeichen)< / span >
< / summary >
< pre style = "background:var(--ecg-bg-subtle);border:1px solid var(--ecg-border);border-radius:4px;padding:14px 16px;margin-top:8px;font-family:var(--font-mono);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--ecg-dark);overflow-x:auto;" > {{ system_prompt }}< / pre >
< / details >
< details style = "margin-top:0.75rem;" >
< summary style = "cursor:pointer;color:var(--ecg-teal);font-weight:700;padding:6px 0;font-family:var(--font-display);" >
User-Prompt-Template anzeigen
< span style = "font-family:var(--font-mono);font-size:11px;opacity:0.6;font-weight:400;" > ({{ user_prompt_template|length }} Zeichen)< / span >
< / summary >
< pre style = "background:var(--ecg-bg-subtle);border:1px solid var(--ecg-border);border-radius:4px;padding:14px 16px;margin-top:8px;font-family:var(--font-mono);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--ecg-dark);overflow-x:auto;" > {{ user_prompt_template }}< / pre >
< / details >
< / div >
< / section >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< section id = "qualitaet" >
< h2 > Qualitätssicherung< / h2 >
< div class = "v2-kasten outline-green" >
< ul >
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>
2026-05-07 12:08:17 +02:00
< 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 >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< / ul >
< / div >
< / section >
< section id = "einschraenkungen" >
< h2 > Einschränkungen< / h2 >
< div class = "v2-kasten outline-blue" >
< 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 >
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>
2026-05-07 12:08:17 +02:00
< 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 >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< li > < strong > Antragstext, nicht Umsetzung< / strong > — bewertet wird was im Antrag steht, nicht ob es umgesetzt wird.< / li >
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>
2026-05-07 12:08:17 +02:00
< 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 >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< / ul >
< / div >
< / section >
< section id = "datenquellen" >
< h2 > Datenquellen< / h2 >
< div class = "v2-kasten outline-green" >
< p > < strong > {{ adapter_count }} Parlamente< / strong > angebunden:< / p >
< table >
2026-04-28 23:12:58 +02:00
< tr >
< th > Parlament< / th >
< th > Doku-System< / th >
< th title = "Antraegeund Drucksachen werden ueber den Adapter gesucht und gelistet" > Drucksachen< / th >
< th title = "Plenarprotokoll-Parser fuer fraktions-aggregierte Abstimmungsergebnisse" > Plenum-Votes< / th >
< / tr >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
{% for bl in bundeslaender %}
2026-04-28 23:12:58 +02:00
< tr >
< td > {{ bl.name }} ({{ bl.code }})< / td >
< td > {{ bl.doku_system }}< / td >
< td style = "color:var(--ecg-teal);" > ✓ aktiv< / td >
< td >
{% if bl.code in plenum_vote_parsers %}
< span style = "color:var(--ecg-teal);" > ✓ aktiv< / span >
{% else %}
< span style = "opacity:0.55;" title = "Stub-Modul vorhanden, Parser noch nicht implementiert" > ○ Stub< / span >
{% endif %}
< / td >
< / tr >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
{% endfor %}
< / table >
2026-04-28 23:12:58 +02:00
< p style = "margin-top:0.5rem;font-size:11px;opacity:0.7;" >
< strong > Plenum-Votes< / strong > = fraktions-aggregierte
Abstimmungs ergebnisse aus den Plenarprotokollen
(#106). Dort wo der Parser
aktiv ist, zeigt die Antrag-Detail-Seite einen Block
„Abstimmungs ergebnis" mit Ja/Nein/Enthaltung pro Fraktion.
Stubs sind Tracking-Stellen fuer kuenftige Implementierungen
(Issues < a href = "https://repo.toppyr.de/tobias/gwoe-antragspruefer/issues?q=protokoll-parser" target = "_blank" > #148– #163< / a > ).
< / p >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< p style = "margin-top:0.75rem;font-size:11px;" >
< a href = "/quellen" > Programme & Quellen< / a > ·
< a href = "/api/auswertungen/export.json" download > Open Data (JSON)< / a > ·
< a href = "/api/feed.xml" > Atom-Feed< / a > ·
< a href = "https://repo.toppyr.de/tobias/gwoe-antragspruefer" target = "_blank" > Quellcode< / a >
< / p >
< / div >
< / section >
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>
2026-05-07 12:08:17 +02:00
< 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 >
feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards
v2-Frontend (#139, ECOnGOOD CD Manual Juni 2024):
- app/static/v2/: tokens.css, fonts.css, v2.css, Nunito-Sans woff2, Phosphor-Icons (21 SVGs)
- app/templates/v2/: base.html + 11 Screens + 8 Component-Macros
- AppShell mit Sidebar (Lesen/Pruefen/Daten/Admin), v2-Detail mit allen Features
(ScoreHero, MatrixMini, QuoteCard, Redline, Fraktions-Scores)
- v2 ist jetzt Default unter / — classic unter /classic
- Login-Modal in v2-Topbar mit Tabs Anmelden/Registrieren (#129)
- Phosphor-Icons in Sidebar + Topbar mit dynamischem Theme-Toggle
- Keyboard-Shortcuts (j/k/Enter/Esc/?/path), Landtag-Suche, Antrag-Historie,
Sort-Dropdown, Matrix-Feld-Info-Modal, Bookmarks/Comments/Voting/Share/Re-Analyze
Backend-Erweiterungen:
- main.py: ~30 neue Routes (/v2/*, /antrag/{ds}, /api/auth/{login,refresh,logout},
/api/me/merkliste/*, /api/admin/*, /v2/admin/*, OG-Cards, etc.)
- og_card.py + og_template: Open-Graph-Bilder via Playwright (#141)
- wahlprogramm_fetch.py + wahlprogramm-links.yaml: SHA-Gate Auto-DL (#138)
- auswertungen.py: BL-Filter + get_wahlperioden Helper (#137)
- auth.py: Direct-Access-Grant + Refresh-Token-Cookie
Classic-Updates:
- Header-DRY via _header.html, Auswertungen redirected, Batch-Inline raus
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:55:57 +02:00
< / div > {# .meth-body #}
< / div > {# .meth-layout #}
{% endblock %}
{% block body_scripts %}
< script >
const fieldInfo = {
"A1": { label: "Grundrechtsschutz in der Lieferkette", text: "< p > < strong > Praxis:< / strong > Wenn die öffentliche Hand Büromöbel, IT-Geräte oder Dienstkleidung beschafft: Unter welchen Bedingungen wurden diese hergestellt? Werden Lieferant:innen verpflichtet, Arbeitsschutzstandards und Menschenrechte einzuhalten?< / p > < p > < strong > Theorie:< / strong > Die GWÖ versteht Menschenwürde als unteilbar und kettenübergreifend. Das Feld A1 operationalisiert den Zusammenhang zwischen kommunaler Beschaffung und globalem Menschenrechtsschutz.< / p > " },
"A2": { label: "Nutzen für die Gemeinde", text: "< p > < strong > Praxis:< / strong > Beauftragt die Kommune den Betrieb aus dem Ort — oder den billigsten Konzern aus dem Ausland? Bleiben Steuergelder in der Region?< / p > < p > < strong > Theorie:< / strong > Solidarität beginnt in der Nachbarschaft. Die GWÖ misst, ob die Beschaffungspolitik aktiv zur regionalen Wertschöpfung beiträgt.< / p > " },
"A3": { label: "Ökologische Verantwortung in der Lieferkette", text: "< p > < strong > Praxis:< / strong > Werden bei öffentlichen Aufträgen Klimastandards verlangt? Kommt das Schulessen von regionalen Bauernhöfen?< / p > < p > < strong > Theorie:< / strong > Die ökologische Säule der GWÖ fordert, dass Umweltkosten nicht externalisiert werden.< / p > " },
"A4": { label: "Soziale Verantwortung in der Lieferkette", text: "< p > < strong > Praxis:< / strong > Verdienen die Reinigungskräfte im Rathaus einen fairen Lohn? Werden Mindestlöhne kontrolliert?< / p > < p > < strong > Theorie:< / strong > Soziale Gerechtigkeit endet nicht am Werkstor.< / p > " },
"A5": { label: "Rechenschaft und Mitsprache bei Beschaffung", text: "< p > < strong > Praxis:< / strong > Können Bürger:innen nachschauen, welche Firma den Auftrag bekommen hat — und warum? Gibt es ein öffentliches Vergaberegister?< / p > < p > < strong > Theorie:< / strong > Transparenz ist das Immunsystem der Demokratie. A5 misst, ob Beschaffungsprozesse nachvollziehbar sind.< / p > " },
"B1": { label: "Ethisches Finanzgebaren", text: "< p > < strong > Praxis:< / strong > Liegt das Geld bei einer ethischen Bank — oder bei einer, die Waffengeschäfte finanziert? Gibt es ethische Anlagerichtlinien?< / p > < p > < strong > Theorie:< / strong > Die GWÖ betrachtet Geld als Mittel zum Zweck, nicht als Selbstzweck.< / p > " },
"B2": { label: "Gemeinnutz im Finanzgebaren", text: "< p > < strong > Praxis:< / strong > Fließen Steuergelder in einen Radweg für alle — oder in eine Umgehungsstraße nur fürs Gewerbegebiet?< / p > < p > < strong > Theorie:< / strong > Solidarität in der Finanzpolitik heißt: öffentliches Geld dient öffentlichen Zwecken.< / p > " },
"B3": { label: "Ökologische Verantwortung der Finanzpolitik", text: "< p > < strong > Praxis:< / strong > Investiert die Kommune in Solaranlagen? Werden Folgekosten des Klimawandels berücksichtigt?< / p > < p > < strong > Theorie:< / strong > Ökologische Nachhaltigkeit muss sich im Haushalt widerspiegeln.< / p > " },
"B4": { label: "Soziale Verantwortung der Finanzpolitik", text: "< p > < strong > Praxis:< / strong > Bekommen ärmere Stadtteile genauso viel für Spielplätze wie reiche?< / p > < p > < strong > Theorie:< / strong > Soziale Gerechtigkeit erfordert bewusste Verteilungsentscheidungen.< / p > " },
"B5": { label: "Partizipation in der Finanzpolitik", text: "< p > < strong > Praxis:< / strong > Gibt es einen Bürgerhaushalt? Werden Haushaltsentwürfe verständlich aufbereitet?< / p > < p > < strong > Theorie:< / strong > Demokratie braucht finanzielle Transparenz.< / p > " },
"C1": { label: "Individuelle Rechts- und Gleichstellung", text: "< p > < strong > Praxis:< / strong > Werden Frauen gleich bezahlt? Gibt es Schutz vor Mobbing? Anonymisierte Bewerbungsverfahren?< / p > < p > < strong > Theorie:< / strong > Die Menschenwürde der Mitarbeitenden ist die Grundlage jeder guten Verwaltung.< / p > " },
"C2": { label: "Gemeinsame Zielvereinbarung für das Gemeinwohl", text: "< p > < strong > Praxis:< / strong > Hat die Stadt ein Klimaschutzkonzept, das alle Ämter gemeinsam umsetzen?< / p > < p > < strong > Theorie:< / strong > Solidarität innerhalb der Verwaltung bedeutet: alle ziehen am selben Strang.< / p > " },
"C3": { label: "Förderung ökologischen Verhaltens intern", text: "< p > < strong > Praxis:< / strong > Fahren Mitarbeitende mit dem Dienstrad oder dem SUV? Gibt es vegetarisches Essen in der Kantine?< / p > < p > < strong > Theorie:< / strong > Die Kommune hat eine Vorbildfunktion.< / p > " },
"C4": { label: "Gerechte Verteilung von Arbeit", text: "< p > < strong > Praxis:< / strong > Können Eltern in der Verwaltung Teilzeit arbeiten ohne Karrierenachteile?< / p > < p > < strong > Theorie:< / strong > Soziale Gerechtigkeit beginnt beim eigenen Personal.< / p > " },
"C5": { label: "Transparente Kommunikation intern", text: "< p > < strong > Praxis:< / strong > Können Bürger:innen die Sitzungsprotokolle online lesen?< / p > < p > < strong > Theorie:< / strong > Transparenz nach innen und außen ist die Voraussetzung für Vertrauen.< / p > " },
"D1": { label: "Schutz des Individuums, Rechtsgleichheit", text: "< p > < strong > Praxis:< / strong > Werden Bürger:innen auf dem Amt fair behandelt — egal welchen Namen sie tragen?< / p > < p > < strong > Theorie:< / strong > Menschenwürde bedeutet: jeder Mensch hat den gleichen Wert.< / p > " },
"D2": { label: "Gesamtwohl in der Gemeinde", text: "< p > < strong > Praxis:< / strong > Profitiert die ganze Stadt — oder nur ein Stadtteil, eine Altersgruppe?< / p > < p > < strong > Theorie:< / strong > Solidarität auf kommunaler Ebene heißt: das Gesamtwohl geht vor Partikularinteressen.< / p > " },
"D3": { label: "Ökologische Gestaltung der öffentlichen Leistung", text: "< p > < strong > Praxis:< / strong > Kommt der Strom für die Straßenbeleuchtung aus Erneuerbaren?< / p > < p > < strong > Theorie:< / strong > Jede kommunale Dienstleistung hat einen ökologischen Fußabdruck.< / p > " },
"D4": { label: "Soziale Gestaltung der öffentlichen Leistung", text: "< p > < strong > Praxis:< / strong > Kann sich die alleinerziehende Mutter den Kitaplatz leisten?< / p > < p > < strong > Theorie:< / strong > Soziale Gerechtigkeit in der Daseinsvorsorge ist der Kern kommunaler Politik.< / p > " },
"D5": { label: "Transparente Kommunikation und demokratische Einbindung", text: "< p > < strong > Praxis:< / strong > Werden Bürger:innen gefragt, bevor die Straße vor ihrem Haus umgebaut wird?< / p > < p > < strong > Theorie:< / strong > Demokratie ist mehr als Wahlen alle vier Jahre.< / p > " },
"E1": { label: "Menschenwürdiges Leben für zukünftige Generationen", text: "< p > < strong > Praxis:< / strong > Hinterlassen wir unseren Enkeln einen Schuldenberg — oder investieren wir heute so, dass auch 2050 gute Lebensbedingungen herrschen?< / p > < p > < strong > Theorie:< / strong > Die Menschenwürde hat eine zeitliche Dimension.< / p > " },
"E2": { label: "Beitrag zum Gesamtwohl über die Gemeindegrenzen hinaus", text: "< p > < strong > Praxis:< / strong > Hilft der Antrag nur der eigenen Stadt — oder auch den Nachbargemeinden?< / p > < p > < strong > Theorie:< / strong > Solidarität endet nicht an der Gemeindegrenze.< / p > " },
"E3": { label: "Verantwortung für ökologische Auswirkungen jenseits der Gemeinde", text: "< p > < strong > Praxis:< / strong > Denkt die Kommune beim Einkauf an den CO₂-Fußabdruck jenseits der eigenen Grenzen?< / p > < p > < strong > Theorie:< / strong > Die ökologische Krise ist global, aber die Verursachung ist lokal.< / p > " },
"E4": { label: "Beitrag zum sozialen Ausgleich", text: "< p > < strong > Praxis:< / strong > Unterstützt die Stadt strukturschwache Regionen? Gibt es Fairtrade-Beschaffung?< / p > < p > < strong > Theorie:< / strong > Soziale Gerechtigkeit im globalen Maßstab ist die anspruchsvollste Dimension der GWÖ.< / p > " },
"E5": { label: "Transparente und demokratische Mitbestimmung auf übergeordneter Ebene", text: "< p > < strong > Praxis:< / strong > Setzt sich die Kommune für mehr Demokratie ein — auch auf Landes- und Bundesebene?< / p > < p > < strong > Theorie:< / strong > Demokratie braucht Fürsprecher auf allen Ebenen.< / p > " },
};
function showField(code) {
const info = fieldInfo[code];
if (!info) return;
const el = document.getElementById('field-explain');
document.getElementById('field-explain-title').textContent = code + ': ' + info.label;
document.getElementById('field-explain-text').innerHTML = info.text;
el.style.display = 'block';
el.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}
< / script >
{% endblock %}