ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Welche Parteien sagen im Wahlprogramm Ja? Rate allein oder mit bis zu acht Personen – Bundestagswahl 2025 und Landtagswahlen, ohne Anmeldung.
Translation pending
EducationTypeScript · CSSGitHub @ma3uOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Wer sagt Ja? – Mehrspieler-Quiz zu den Wahlprogrammen von Bund und Ländern
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Spielen: wersagtja.de
Ein Quiz zu Wahlprogrammen für bis zu acht Personen – zur Bundestagswahl 2025 und zu Landtagswahlen, je Wahl ein eigener Katalog. Eine Frage, alle Parteien: Wer sagt im Programm Ja? Wer richtig liegt, bekommt Punkte – wer schneller ist, mehr. Nach jeder Frage zeigt das Spiel für alle Parteien die Stelle im Programm mit Wortlaut, Seite und Link.
Punkte gibt es fürs Wissen über Programme, nie für eine eigene Meinung. Keine Konten, keine Datenbank, keine KI im Spiel: Das Spiel läuft zwischen den Browsern der Mitspielenden.
Alle Fragen stehen in public/fragen.json und werden hier gepflegt. Die Datei hat zwei Listen: wahlen und
fragen. Je Wahl:
| Feld | Inhalt |
|---|---|
id | Stabile Kennung aus Kleinbuchstaben und Ziffern, etwa btw25 oder be26 – steht in Adressen (#/be26/fragen) |
name, kurz, datum | Voller Name („Bundestagswahl 2025“), Kurzform für Knöpfe („Bund 2025“), Wahltag als ISO-Datum |
bisher | Nur für kommende Wahlen, freiwillig: die bei der letzten Wahl ins Parlament gewählten Parteien mit Quelle (wahl, parteien, quelle) – für die Ankündigungsseite |
parteien | Die Parteien dieser Wahl mit id, name, kurzname, farbe und programm_url – jede Wahl hat ihre eigene Liste. Leer für einen Platzhalter (vergangene Wahl ohne erfasste Programme oder kommende Wahl): steht in der Auswahl, ist aber nicht spielbar |
Die erste Wahl der Datei ist die Standardwahl: Sie gilt für Adressen ohne Wahl (#/fragen), alte Links bleiben so
gültig. Mit mehr als einer Wahl zeigt die Startseite eine Auswahl; ein Raum spielt immer die Wahl der Spielleitung,
Gäste folgen automatisch. Je Frage:
| Feld | Inhalt |
|---|---|
id | Stabile Kennung, über alle Wahlen eindeutig, nie ändern – die Aufnahmen heißen danach (frage-<id>.mp3, loesung-<id>.mp3); neue Wahlen bekommen ein Präfix (be-1) |
wahl | Kennung der Wahl, zu der die Frage gehört |
frage, beschreibung | Klare Ja/Nein-Frage mit Fragezeichen – zuspitzen ist erwünscht (siehe „Ausgewogenheit“) – und eine Erläuterung, die den heutigen Stand nennt |
positionen | Genau eine je Partei der Wahl: ja, nein, teils oder keine_aussage. Ja, Nein und teils immer mit wörtlichem zitat und beleg_url (Seite im Programm), keine Aussage mit begruendung, was durchsucht wurde |
zielkonflikte | Argumente beider Seiten mit Quelle (optional, leere Liste) |
ki_entwurf | true, solange die Positionen nicht von Menschen geprüft sind – das Spiel sagt das dann an |
geprueft | Je Position optional: { "von": "Volt Deutschland", "issue_url": "https://github.com/…/issues/12" }, wenn jemand die Position bestätigt hat – das Issue ist der Nachweis |
Was richtig ist, leitet das Spiel ab (src/katalog.ts): Gefragt wird immer, wer Ja sagt. Richtig sind nur
Parteien mit ja; „keine Aussage“ wird nie als Ja oder Nein gewertet und so angezeigt – ein Kreuz dort ist kein
Treffer, weil die Partei nicht Ja sagt. Eine Frage, zu der keine Partei Ja sagt, ist nicht spielbar – ebenso eine, bei der keine Partei Nein sagt oder
nichts dazu sagt, denn „teils“ zählt weder als richtig noch als falsch. npm run fragen zeigt je Wahl und Frage, wer Ja sagt, und meldet
Fehler; npm test prüft die Datei ebenso. Neue oder geänderte Fragen brauchen danach neue Aufnahmen
(npm run stimmen, kostet ElevenLabs-Credits) – ebenso jede neue Wahl die Ansage ihrer Antwortmöglichkeiten.
Zurzeit sind alle Fragen KI-Entwürfe, noch nicht von Menschen geprüft – das Spiel sagt das auf der Startseite und in jeder Auflösung.
Neue Fragen mit Belegen ergänzen: Die Programme liegen als PDF und Textauszug unter .cache/landtagswahlen/<wahl>/
(nicht eingecheckt, pdftotext -layout und pdftotext; bei Spaltensatz zusätzlich _sp.txt oder pdftotext -raw
als _raw.txt). Dort stehen die neuen Fragen in neue-fragen.json, je Partei die Recherche in neu-<kurz>.json nach
scripts/recherche/anleitung.md. npm run ergaenzen -- <wahl> prüft jedes Zitat wörtlich gegen den Programmtext und
zeigt, welche Fragen spielbar wären; mit --schreiben (und optional --nur id1,id2) kommen sie in public/fragen.json,
bestehende Fragen bleiben unverändert.
Zum Prüfen zeigt #/fragen alle Fragen mit Position, Wortlaut und Beleg jeder Partei, nach Partei filterbar
(#/fragen/volt); andere Wahlen stehen davor (#/be26/fragen/volt). Je Position öffnen „Position bestätigen“ und „Fehler melden“ ein vorausgefülltes GitHub-Issue mit
Frage, Partei, eingetragener Position, Zitat und Beleg (src/uebersicht.ts). Bestätigt jemand eine Position, kommt
das Issue als geprueft an die Position; Übersicht und Auflösung zeigen sie dann als geprüft.
Das Spielprinzip bleibt: Gefragt wird immer, wer Ja sagt, nie nach Nein. Die Fragen dürfen und sollen zuspitzen – gerade Themen, die in der Bevölkerung heiß diskutiert werden. Weicher formuliert wären sie kaum greifbar.
Ausgewogen sein muss die Auswahl der Fragen, nicht ihr Ton. Jede Partei soll ihre zentralen Forderungen als Ja-Frage wiederfinden, egal wo sie steht. Diskussion und erste Analyse: Issue #1.
Leitlinie für neue Fragen:
begruendung genau angeben.npm run fragen zeigt je Frage die Richtung und je Wahl die Verteilung, die Profilfragen je Partei und Warnungen (⚠)
zu diesen Punkten; die Warnungen sind ein Arbeitsauftrag und lassen die Prüfung nicht scheitern. Die Übersicht
(#/fragen) zeigt dieselben Zahlen unter „Ausgewogenheit dieses Katalogs“. Berechnet werden sie in
src/ausgewogenheit.ts:
econ_pos_norm und soci_pos_norm (PWIB).
Der Auszug für unsere zehn Wahlen liegt unverändert mit Dokumentation in daten/pwib/;
ein Test prüft die Werte in src/ausgewogenheit.ts gegen die CSV. Die Skala ist nicht 0 bis 10 und kann negativ
werden, es zählt nur die Rangfolge je Wahl. „Union“ im Bund ist das gemeinsame Programm (de2025cdu), nicht die
CSU-Bayern-Agenda. Volt fehlt im Datensatz, die Freien Wähler in Sachsen-Anhalt und Mecklenburg-Vorpommern auch;
sie zählen dort nicht mit, ergänzt wird nichts. Quelle: Bräuninger, Thomas; Debus, Marc; Müller, Jochen; Stecker,
Christian (2020): Parteienwettbewerb in den deutschen Bundesländern. 2., vollständig überarbeitete Auflage.
Wiesbaden: Springer VS, doi:10.1007/978-3-658-29222-5. Fortgeschriebene
PWIB-Wordscores-Daten, Schätzstand 20.10.2026; Auszug für Wer sagt Ja? vom 28.10.2026. Das Buch beschreibt die
Methode; die jüngeren Wahlen stammen aus der Fortschreibung. Die Autoren haben die Ablage im Repository mit
vollständiger Quellenangabe für diese Prüfung erlaubt; eine allgemeine Lizenz für den PWIB-Datensatz ist damit
nicht verbunden.CHES): Chapel Hill Expert Survey 2024, Einordnung der Bundesparteien durch Fachleute, LRECON und
GALTAN (0 bis 10). „Union“ ist das nach Zweitstimmen 2021 gewichtete Mittel von CDU und CSU. Volt Deutschland fehlt
in CHES 2024; wir nehmen das Mittel aus dem CHES-Wert für Volt Nederland (4,70 / 1,09) und einer Schätzung aus den
Antworten von Volt in unseren Katalogen (3,4 / 2,75, dort, wo die Antworten am besten zur Antwortstruktur der
übrigen Parteien passen) – also 4,05 / 1,92 (). Wo die Richtung einer Frage in der Gegenprobe anders
ausfällt, steht es in und in der Übersicht; eine Schlagseite nur nach CHES erscheint als Warnung
„Gegenprobe mit CHES“. Wahlen ohne PWIB-Werte werden an CHES gemessen. Quelle: Rovny, Polk, Bakker, Hooghe, Jolly,
Marks, Steenbergen & Vachudova (2025), „The 2024 Chapel Hill Expert Survey on political party positioning in
Europe“, 97, 102981, ;
Daten von .Methode, Begründung und geprüfte Alternativen: Issue #1, „Methode der Überarbeitung“. Die Schwellen sind Konventionen und werden mit Fachleuten abgestimmt.
VITE_FIREBASE_DATABASE_URL funktionieren Räume nur zwischen
Tabs desselben Browsers.VITE_STUN_URLS für Direktverbindungen übers Internet; die Datenschutzerklärung nennt den Server dann.sitemap.xml,
llms.txt für KI-Agenten (Vorlage src/llms.txt, beim Build um die Wahlen ergänzt), je Wahl eine Markdown-Fassung
(<wahl>/index.md), public/robots.txt (lässt Suchmaschinen und KI-Agenten ausdrücklich zu) und ein Textblock in
index.html für Crawler ohne JavaScript. Die Bilder (public/vorschau.*, public/icon-*.png) erzeugt
npm run vorschau mit Chrome und ffmpeg. Die öffentliche Adresse steht fest in index.html, src/seiten.ts,
public/robots.txt und src/llms.txt – bei einer eigenen Domain dort ändern.#/ Start, #/<raumname> Einladung, #/fragen alle Fragen mit Belegen (#/fragen/<partei> nur eine
Partei, #/fragen/<partei>/<frage-id> springt zur Frage, #/<wahl>/fragen/… für andere Wahlen als die
Standardwahl), #/impressum, #/datenschutz.w in die Realtime Database ein; erlauben die veröffentlichten
Regeln das Feld noch nicht, schreibt die App den Eintrag ohne (firebase/database.rules.json neu veröffentlichen).cp .env.example .env
npm install
npm run dev # Entwicklung
npm run build # dist/
npm run lint && npm run typen && npm test
npm run stimmen -- --nur-zeigen # zählt fehlende Aufnahmen (ElevenLabs, Schlüssel in .env.local)
Veröffentlichung: Der Workflow pages.yml baut bei jedem Push auf main und
veröffentlicht auf GitHub Pages unter https://wersagtja.de/ (eigene Domain in den Pages-Einstellungen; die alte
Adresse ma3u.github.io/wer-sagt-ja/ leitet dorthin weiter). Vor dem öffentlichen Start die Angaben in
src/betreiber.ts ausfüllen.
Suchmaschinen: Die App liegt unter einer Adresse, ihre Unterseiten hinter #/… – die nimmt keine Suchmaschine einzeln
auf. Darum erzeugt der Build (src/seiten.ts, eingebunden in vite.config.ts) je spielbarer Wahl eine
statische Seite mit allen Fragen, Positionen und Belegen (etwa /landtagswahl-sachsen-2024/, für KI-Agenten auch als
index.md), die Methodenseite als /methode/ und die Seite zum Mitmachen als /mitmachen/
(src/methodeSeite.tsx, mit dem Stil der App gerendert), sitemap.xml und llms.txt; public/robots.txt verweist darauf. Neue Wahlen kommen damit von selbst dazu.
Kommende Wahlen ohne Programme bekommen schon vorher eine Ankündigung unter derselben Adresse (Wahltag, bisher), damit
sie im Wahlkampf bereits im Index steht.
Nach jedem Deploy meldet pages.yml alle Adressen der Sitemap über IndexNow an Bing, Yandex und andere; der
öffentliche Schlüssel liegt als public/<schlüssel>.txt auf der Seite.
src/ App: Quiz.tsx (Start, Räume), Ansicht.tsx (Frage, Auflösung, Ergebnis), spielleitung.ts (Regeln),
verbindung.ts (WebRTC + Firebase), show/ (Moderation, Ton), Uebersicht.tsx (alle Fragen), Rechtliches.tsx,
ausgewogenheit.ts (Richtung und Profilfragen je Katalog)
public/ fragen.json (Fragen und Positionen), audio/ (Stimmen und Geräusche), Vorschaubilder, robots.txt
scripts/ fragen.ts (Übersicht, Prüfung und Ausgewogenheit), stimmen.ts (ElevenLabs), vorschau.ts, aufraeumen.ts (Firebase)
firebase/ Regeln der Realtime Database
AGPL-3.0-or-later. Der ursprüngliche Code entstand als Quiz-Modus eines anderen AGPL-Projekts; die Urheberrechte der damaligen Mitwirkenden bleiben bestehen.
VOLT_QUELLENnpm run fragennpm run fragen nennt je Frage die Zahl der einbezogenen Parteien (n). Antworten alle gleich, ist ρ nicht definiert
(nicht bestimmbar). Ab |ρ| ≥ 0,5 ist die Frage auf der Dimension gerichtet; das Vorzeichen sagt, von welchem Pol das
Ja kommt, bei wenigen Parteien nur unsicher. Je Dimension steht auch das mittlere ρ da – nahe 0 heißt ausgeglichen.
Gleich viele Fragen von beiden Polen belegen für sich noch keine ausgewogene Themenauswahl.