GWÖ-Antragsprüfer — Dokumentation¶
Stand: 24. März 2026, 22:15
0. Datenbank¶
Alle Bewertungen werden in einer SQLite-Datenbank gespeichert: gwoe-antraege.db
# DB initialisieren (einmalig)
sqlite3 gwoe-antraege.db < scripts/init-db.sql
# Übersicht aller Anträge
sqlite3 -header -column gwoe-antraege.db "SELECT * FROM v_antraege_uebersicht;"
# Statistik nach Fraktion
sqlite3 -header -column gwoe-antraege.db "SELECT * FROM v_statistik_fraktionen;"
# Themen-Ranking
sqlite3 -header -column gwoe-antraege.db "SELECT * FROM v_themen_ranking;"
Schema: siehe scripts/init-db.sql und prompt-gwoe-antragspruefer-v4.md
1. Batch-Workflow¶
Vollautomatisiert¶
# Einzelner Antrag
./scripts/process_single.sh 18-18102
# Batch aus Datei
./scripts/gwoe-batch.sh --batch neue-antraege.txt
# Alle neu rendern
./scripts/gwoe-batch.sh --render-all
Manuell (Schritt für Schritt)¶
# 1. PDF herunterladen
curl -sL "https://www.landtag.nrw.de/portal/WWW/dokumentenarchiv/Dokument/MMD18-18102.pdf" \
-o antraege/18-18102.pdf
# 2. Text extrahieren
pdftotext -layout antraege/18-18102.pdf antraege/18-18102.txt
# 3. LLM analysieren (manuell oder via API)
# → JSON in assessments.json einfügen
# 4. data.ts aktualisieren
cat assessments.json > quarto-report/src/data.ts # vereinfacht
# 5. Quarto rendern
cd quarto-report && npm run generate
cd reports && quarto render gwoe-18-18102.qmd --to pdf
# 6. Mit Original mergen
pdftk quarto-report/reports/gwoe-18-18102.pdf antraege/18-18102.pdf \
cat output output/gwoe-bericht-18-18102.pdf
API-Aufruf (Claude)¶
curl -sS https://api.anthropic.com/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-20250514",
"max_tokens": 4096,
"system": "<SYSTEM_PROMPT>",
"messages": [{"role": "user", "content": "<USER_PROMPT>"}]
}'
1. Überblick¶
Der GWÖ-Antragsprüfer bewertet parlamentarische Anträge (aktuell: NRW Landtag) systematisch nach drei Dimensionen:
- GWÖ-Treue (0-10): Übereinstimmung mit der Gemeinwohl-Ökonomie Matrix 2.0
- Wahlprogrammtreue (0-10): Konsistenz mit dem NRW-Wahlprogramm 2022 der einreichenden Fraktion(en) und der Fraktionen in Regierungsverantwortung
- Parteiprogrammtreue (0-10): Konsistenz mit dem Grundsatzprogramm der einreichenden Fraktion(en) und der Fraktionen in Regierungsverantwortung
Das Tool generiert professionelle PDF-Berichte mit dem offiziellen ECOnGOOD-Branding.
2. Gewählte Matrix: V2.0 für Gemeinden¶
Warum nicht Matrix 5.1?¶
Die GWÖ-Matrix 5.1 ist für Unternehmen konzipiert mit Berührungsgruppen wie "Kund:innen", "Eigentümer:innen", "Mitarbeitende". Diese passen nicht zu parlamentarischen Anträgen.
Warum nicht Matrix 2.1.A?¶
Die Matrix 2.1.A ist für die "öffentliche Hand" allgemein. Die Matrix 2.0 für Gemeinden bietet einen etwas weiteren Blick und ist kompakter formuliert — ideal für parlamentarische Analyse.
Die Matrix 2.0 für Gemeinden¶
| Aspekt | Beschreibung |
|---|---|
| Struktur | 5×5 (25 Felder) |
| Fokus | Kommunale Gebietskörperschaften |
| Zielgruppe | Kommunalpolitik, Landesanträge |
| Staatsprinzipien | ja (verfassungsrechtlich verankert) |
Die 5×5-Struktur¶
Spalten (Werte des Gemeinwohls + Staatsprinzipien):
| Nr | Wert | Staatsprinzip |
|---|---|---|
| 1 | Menschenwürde | Rechtsstaatsprinzip |
| 2 | Solidarität | Gemeinnutz |
| 3 | Ökologische Nachhaltigkeit | Umwelt-Verantwortung |
| 4 | Soziale Gerechtigkeit | Sozialstaatsprinzip |
| 5 | Transparenz & Mitbestimmung | Demokratie |
Zeilen (Berührungsgruppen):
| Code | Gruppe | Beschreibung |
|---|---|---|
| A | Ausgelagerte Betriebe, Lieferant:innen, Dienstleister:innen | Externe Beschaffung, Lieferketten |
| B | Finanzpartner:innen, Geldgeber:innen, Steuerzahler:innen | Haushalt, Finanzpolitik |
| C | Politische Führung, Verwaltung, Ehrenamtliche | Mandatsträger:innen, Mitarbeitende |
| D | Bürger:innen und Wirtschaft | Interne Wirkung, Daseinsvorsorge |
| E | Staat, Gesellschaft und Natur | Überregionale/langfristige Wirkung |
Relevanz für Landesanträge¶
Die meisten Parlamentsanträge betreffen: - D-Zeile: Wirkung auf Bürger:innen und Wirtschaft im Land - E-Zeile: Überregionale oder langfristige Auswirkungen
Prinzip: D (intern) hat Vorrang vor E (extern).
3. Programmtreue-Bewertung¶
Zwei Dimensionen¶
Anträge werden sowohl gegen das Wahlprogramm als auch gegen das Grundsatzprogramm der Fraktionen geprüft:
| Partei | Wahlprogramm | Grundsatzprogramm |
|---|---|---|
| CDU | NRW 2022 | "In Freiheit leben" (2024) |
| SPD | NRW 2022 | Hamburger Programm (2007) |
| GRÜNE | NRW 2022 | "...zu achten und zu schützen..." (2020) |
| FDP | NRW 2022 | "Verantwortung für die Freiheit" (2012) |
| AfD | NRW 2022 | "Programm für Deutschland" (2016) |
Bewertungsskala¶
| Score | Bedeutung |
|---|---|
| 9-10 | Vollständige Übereinstimmung |
| 7-8 | Hohe Übereinstimmung |
| 5-6 | Partielle Übereinstimmung |
| 3-4 | Geringe Übereinstimmung |
| 1-2 | Widerspricht Teilaspekten |
| 0 | Vollständiger Widerspruch |
4. Bewertungsskala GWÖ¶
| Punkte | Stufe | Beschreibung |
|---|---|---|
| 7-10 | Vorbildlich | Innovative Maßnahmen, weitreichende Verbesserungen |
| 4-6 | Erfahren | Erkennbare Verbesserungen, gute Ergebnisse |
| 2-3 | Fortgeschritten | Erste Maßnahmen, erste Erfolge |
| 1 | Erste Schritte | Erstes Engagement |
| 0 | Basislinie | Nur gesetzliche Anforderungen |
| negativ | Widerspruch | Aktiver Widerspruch zu GWÖ-Werten |
Matrix-Feldwertung¶
Für jedes berührte Feld im Antrag:
- ++ (+2/+3): Stark fördernd
- + (+1): Fördernd
- ○ (0): Neutral
- − (-1): Widersprechend
- −− (-2/-3): Stark widersprechend
5. ECOnGOOD Corporate Design¶
Branding (aus CD Manual 2024)¶
Das Layout folgt strikt dem offiziellen ECOnGOOD Corporate Design Manual (Juni 2024).
Farbpalette (Primärfarben aus Logo):
| Farbe | Hex | CMYK | Pantone | Verwendung |
|---|---|---|---|---|
| Dunkelgrau | #5a5a5a |
0-0-0-80 | 425 U | Fließtext, H1-Überschriften |
| Grün | #889e33 |
40-10-90-20 | 583 U | Positive Werte, H3, Akzente |
| Blau | #009da5 |
100-10-40-00 | 320 U | Hauptfarbe, H2, Links, Linien |
| Hellgrau | #bfbfbf |
0-0-0-30 | 421 U | Hintergründe, Fußzeilen |
Typografie: - Primär: Avenir (light, roman, black) - Fallback: Arial - Web: Avenir - Überschriften: - H1: Avenir black, 22pt, Dunkelgrau - H2: Avenir black, 16pt, Blau oder Grün - H3: Avenir black, 12pt, Blau oder Grün - Fließtext: Avenir roman, 10pt, Dunkelgrau - Hervorhebungen: Avenir black
Logo: ECOnGOOD-Logo (econgood-logo.png) — zwei stilisierte Pusteblumen (Blau + Grün)
Boxen (CD-konform): - Flächig farbig (Grün oder Blau) mit weißem Text - Oder mit farbiger Outline und farbigem Text - Keine abgerundeten Ecken (arc=0pt)
Tabellen: - Titelleiste in Markenfarbe (Blau) - Weißer Text in Titelleiste, fett, Großbuchstaben - Innere horizontale Linien max. 1pt - 3mm Abstand zwischen Text und Linie
Layout: - Offenes, leichtes Design - Reinweißer Hintergrund - Kräftige Farben (aktiv) - Genug Weißraum zwischen Elementen
Empfehlungs-Symbole¶
| Empfehlung | Symbol | Farbe | Hex |
|---|---|---|---|
| Uneingeschränkt unterstützen | [++] |
Grün | #889e33 |
| Unterstützen mit Änderungen | [+] |
Blau | #009da5 |
| Überarbeiten | [!] |
Orange | #F7941D |
| Ablehnen | [X] |
Rot | #d00000 |
6. Technische Umsetzung¶
Stack¶
- TypeScript — Datentypen, Generator
- Quarto — Markdown → PDF (via LuaLaTeX)
- TikZ — Grafische Elemente (Score-Balken)
- pdftk — PDF-Merge (Bewertung + Original-Antrag)
Projektstruktur¶
quarto-report/
├── src/
│ ├── types.ts # Datentypen, Matrix-Labels
│ ├── data.ts # Testbewertungen
│ └── generate-qmd.ts # Quarto-Generator
├── reports/ # Generierte .qmd + .pdf
├── econgood-logo.png # Logo (aus CD Manual)
└── package.json
Workflow¶
- LLM analysiert Antrag → JSON-Ausgabe
- JSON → TypeScript Assessment-Objekt
- Generator erzeugt
.qmd(Quarto Markdown) - Quarto rendert → PDF
- pdftk merged Bewertung + Original-Antrag
7. Kontext-Dateien¶
Im Ordner kontext/:
| Datei | Beschreibung |
|---|---|
gwoe-matrix-2.0.md |
Matrix 2.0 für Gemeinden — vollständige Dokumentation |
gwoe-matrix-2.0-gemeinden.pdf |
Offizielles Matrix-PDF |
gwoe-arbeitsbuch-gemeinden-2.0.pdf |
Arbeitsbuch zur Matrix |
parteiprogramme.md |
Kurzreferenz Wahlprogramme + Grundsatzprogramme |
cdu-grundsatzprogramm-2024.pdf |
CDU "In Freiheit leben" |
spd-hamburger-programm-2007.pdf |
SPD Hamburger Programm |
gruene-grundsatzprogramm-2020.pdf |
Grüne Grundsatzprogramm |
fdp-grundsatzprogramm-2012.pdf |
FDP "Verantwortung für die Freiheit" |
afd-grundsatzprogramm-2016.pdf |
AfD "Programm für Deutschland" |
wahlprogramme-nrw-2022.md |
NRW Wahlprogramme 2022 |
8. Getestete Anträge¶
| Drucksache | Titel | GWÖ | Empfehlung |
|---|---|---|---|
| 18/18081 | Schlechte-Kita-Gesetz stoppen (SPD) | 8/10 | Uneingeschränkt unterstützen |
| 18/18088 | Iran-Solidarität (alle) | 9/10 | Uneingeschränkt unterstützen |
| 18/18094 | Versorgungssicherheit/Fracking (AfD) | 1/10 | Ablehnen |
| 18/18099 | Kultur-Schecks (CDU/Grüne) | 6/10 | Unterstützen mit Änderungen |
| 18/18104 | KI-Korrektur (FDP) | 6/10 | Unterstützen mit Änderungen |
9. Gendering¶
Standard: : (Doppelpunkt) statt * (Sternchen)
Beispiele: - Bürger:innen - Lieferant:innen - Mitarbeiter:innen
10. Quellen¶
- GWÖ-Matrix 2.0: https://germany.econgood.org/wp-content/uploads/sites/8/2024/04/Matrix-Gemeinwohl-Bilanzierung-Gemeinden-V2.0.pdf
- Arbeitsbuch 2.0: https://austria.econgood.org/wp-content/uploads/sites/7/2022/01/Arbeitsbuch-Gemeinden_2.pdf
- ECOnGOOD CD Manual: Corporate Design/2024_ECOnGOOD_Manual_DE_Juni_02.pdf
- GWÖ Deutschland: https://germany.econgood.org
- Kontakt: Gemeinde@ecogood.org
11. Changelog¶
| Datum | Version | Änderung |
|---|---|---|
| 24.03.2026 | v4 | Matrix 2.0 statt 2.1.A, Parteiprogrammtreue ergänzt, : beim Gendern, ECOnGOOD-Logo |
| 23.03.2026 | v3 | Umstellung auf Matrix 2.1.A (5×5), GWÖ-Branding |
| 23.03.2026 | v2 | Vollständiger Kontext (Matrix + Wahlprogramme) |
| 23.03.2026 | v1 | Initiale Version mit Matrix 5.1 |
Projektordner: ~/Nextcloud/dotty/projekte/2026-03-23 GWÖ-Antragsprüfer _WIP_/
Telegram: https://t.me/c/3823618505/4247
Session 28.03.2026 (Nachmittag/Abend)¶
Security¶
- CSP, X-Frame-Options, X-XSS-Protection etc. als Middleware
- /docs deaktiviert
v5-Prompt mit Verbesserungsvorschlägen¶
Neues Format:
{
"original": "Zitat aus Antrag",
"vorschlag": "Verbesserter Text mit **Markierungen**",
"begruendung": "GWÖ-Begründung"
}
UI-Erweiterungen¶
- Partei-Filter (Dropdown)
- Tag-Wolke mit Multi-Select
- Partei-Durchschnitte in Stats-Bar
- Kombinierte Filter (Score + Partei)
Infrastruktur-Fixes¶
- DB-Persistenz: Dockerfile kopiert data/ nicht mehr
- JSON-Import deaktiviert
- Retry-Logik für LLM (3 Versuche)
Repository¶
- https://repo.toppyr.de/tobias/gwoe-antragspruefer
- MIT License
- Vollständige Dokumentation