Die Regeln der Plattform
Die Satzung erlaubt automatisierte Systeme nur unterstützend und verlangt: „Jede automatisierte Sortierung oder Auswahl erfolgt nach offengelegten, versionierten und nachrechenbaren Regeln. Modelle, Regelwerke und Änderungen daran sind mit Datum und Begründung öffentlich zu dokumentieren; der Integritätsrat prüft sie mindestens jährlich." Diese Seite ist diese Offenlegung.
24 Regeln, davon 9 bindend. 0 tragen eine offen benannte Lücke.
entscheidet — Das Ergebnis bindet — es bestimmt, was im Verfahren geschieht.
Abstimmungs-Chat: Reihung nach Engagement und Auswertung
plattform_core/vorschlagschat.py · Fassung 1
Reiht die Beiträge zum Vorschlag des Expertenrats nach Beteiligung — Zustimmungen plus Ablehnungen, die Richtung zählt nicht — und wertet nach Fristablauf aus: Der Systembeitrag „Passt alles“ muss an erster Stelle stehen und einen höheren Anteil Zustimmung tragen als die Schwelle, die mit der Ordnung des Antrags beim Einbringen festgeschrieben wurde (Voreinstellung die Hälfte), sonst geht der Vorschlag mit der Kritik zurück an den Expertenrat. Bleibt jede Reaktion aus, gilt er als angenommen — Stille hemmt das Verfahren nie.
- Gilt seit
- 2026-09-04
- Warum
- Änderung vom 29.9.2026 (0.51.0), an den Eingaben, nicht an der Rechnung: Gezählt wird der Stand zum Fristende (§ 5 Abs 13: „bis zum Fristende“). Eine Reaktion ab dem Fristende wird abgewiesen, auch wenn noch nicht ausgewertet ist; zurückgenommene oder gewechselte Reaktionen bleiben gespeichert, zählen aber nicht mehr. Die Schwelle kommt aus der eingefrorenen Ordnung des Antrags, nicht aus dem heutigen Parameterregister (§ 5 Abs 5); Chat, Entwurfsfenster und Archiv zeigen sie an. Eine abgeschlossene Runde zeigt das Archiv mit den Zahlen zu ihrem Fristende. Erste Fassung (4.9.2026): Bis dahin klickten die Unterstützer ein Formular „annehmen / mit Wunsch zurückgeben“ an. Seither wird diese Entscheidung offen als Gespräch geführt, und eine Kritik zählt nur als Änderungswunsch, wenn sie sich auf einen benannten Absatz des Vorschlags bezieht.
- Satzung
- § 5 Abs 13 · § 5 Abs 12 · § 2 Abs 6
- Nachrechnen
- Jeder Beitrag zeigt seine Zustimmungen und Ablehnungen. Beteiligung = beide Zahlen addiert; bei Gleichstand entscheidet der höhere Zustimmungsanteil, dann der ältere Beitrag. Gezählt wird der Stand zum Fristende; zurückgenommene und gewechselte Reaktionen bleiben gespeichert, zählen aber nicht. Die Auswertung gibt Zahlen, Anteil und Schwelle mit aus, nicht nur ihr Ergebnis — sie steht so im Archiv.
- Im Register
- vorschlag-chat-reihung
Auslosung des Expertenrats aus der Fachliste
plattform_core/losziehung.py · Fassung 1
Zieht für jeden Antrag die Fachleute aus der öffentlich geführten Liste: Jede Kandidatin bekommt einen Loswert aus dem Anker und ihrem Schlüssel, die kleinsten Werte kommen zuerst in Gruppe 1, dann in Gruppe 2. Beide Gruppen sind dadurch getrennt, ohne dass jemand es prüfen müsste. Kein Gewicht, keine Reihung nach Verdienst — die Satzung will das Los, nicht eine Auswahl.
- Gilt seit
- 2026-09-08
- Warum
- Erste Fassung. Der Zufall kommt aus dem Kopf der Audit-Kette im Augenblick der Ziehung: Er steht dann fest und ist vorher von niemandem auszurechnen. Der früheste Eintrag eines Antrags wäre der bequemere Anker gewesen und der falsche — er entsteht beim Einbringen, also zwei Monate vorher, und wäre die ganze Zeit bekannt.
- Satzung
- § 6 Abs 7 · § 6 Abs 8 · § 2 Abs 6
- Nachrechnen
- Anker und Lostopf stehen mit dem Ergebnis. Der Loswert einer Person ist die SHA-256-Prüfsumme über Anker, ein senkrechtes Strichzeichen und ihren Schlüssel; aufsteigend geordnet ergibt sich daraus die Besetzung. Mit jedem Prüfsummenwerkzeug in wenigen Minuten nachzurechnen.
Aussetzung: Sieben-Tage-Frist und Hemmung
plattform_core/aussetzung.py · Fassung 1
Rechnet, wie lange eine Aussetzung nach § 6 Abs 3 lit d wirkt und was sie mit den Fristen des Antrags macht. Sie endet von selbst, wenn binnen sieben Tagen kein Antrag an das Parteischiedsgericht gestellt wird; solange sie läuft, ruht das Verfahren, und die verlorene Zeit wird dem Antrag gutgeschrieben.
- Gilt seit
- 2026-09-08
- Warum
- Erste Fassung. Die sieben Tage stehen als Konstante im Code und nicht im Register: Wer sie dort verlängern könnte, könnte eine Abstimmung beliebig lange anhalten, ohne je ein Gericht anzurufen. Und die Hemmung wird gerechnet statt gespeichert — eine Summe am Antrag bekäme jede Folgephase erneut geschenkt, weil der Phasenbeginn bei jedem Wechsel neu geschrieben wird.
- Satzung
- § 6 Abs 3 lit d · § 2 Abs 6
- Nachrechnen
- Beginn der Aussetzung plus sieben Tage ergibt die Frist ans Schiedsgericht; beides steht am Beschluss. Die Hemmung ist die Summe der Zeiträume, die zwischen Phasenbeginn und jetzt liegen — überlappende zählen nur einmal, sonst hemmten zwei gleichzeitige Aussetzungen doppelt.
Auszählung der Zustimmungswahl bei Kandidaturen
plattform_core/tally.py · Fassung 1
Zählt eine Mandats-Kandidatur aus: Jedes Mitglied kann mehreren Bewerbungen zustimmen; die Bewerbung mit den meisten Zustimmungen gewinnt, und die Reihenfolge der Zustimmungszahlen ergibt die Reihung des Wahlvorschlags. Bei Stimmengleichheit steht die früher eingereichte Bewerbung vorn.
- Gilt seit
- 2026-09-01
- Warum
- Seit dem 1. September 2026 wählt das Parlament auch Personen: Mandats-Kandidaturen laufen als Anträge, an denen man sich beteiligt, statt als getrennte Wahl. Dafür brauchte es eine Auszählung, die Zustimmungen zählt statt Ja und Nein — und eine offene Regel für den Gleichstand, damit nicht der Zufall über die Listenreihung entscheidet.
- Satzung
- § 7 Abs 1 (Satzungsentwurf 2.5), mit § 5 Abs 4 für die Mindestbeteiligung
- Nachrechnen
- Der JSON-Export des Antrags enthält alle Bewerbungen und alle Zustimmungen. Von Hand: die Zustimmungen je Bewerbung zählen, absteigend ordnen, bei gleicher Zahl die früher eingereichte Bewerbung zuerst. Die Beteiligung ist die Zahl der Menschen, die mindestens einer Bewerbung zugestimmt haben; sie muss die Mindestbeteiligung der eingefrorenen Verfahrensordnung erreichen, sonst gilt niemand als gewählt.
Auszählung interner Beschlüsse der Räte
plattform_core/gremienbeschluss.py · Fassung 1
Zählt die internen Abstimmungen der Räte aus. Anwesend ist, wer abgestimmt hat; beschlussfähig ist ein Rat ab der aufgerundeten Hälfte seiner besetzten Rollen, entschieden wird mit einfacher Mehrheit der abgegebenen Stimmen. Ein Gleichstand ist kein Beschluss, und ein Gremium ohne besetzte Rollen beschließt nichts.
- Gilt seit
- 2026-09-05
- Warum
- Die Satzung sagt „bei Anwesenheit der Hälfte seiner Mitglieder'; für ein Gremium, das sich nicht in einem Raum trifft, musste jemand entscheiden, was Anwesenheit heißt. Bis dahin entschied bei der Prüfung durch die zweite Gruppe des Expertenrats, wer zuerst auf einen Knopf drückte — eine einzelne Person, sofort und ohne Frist. Gedacht war diese Gruppe als Redundanz und Korruptionsprüfung; eine Redundanz aus einer Person ist keine.
- Satzung
- § 6 Abs 2 lit e (über Verweise auch für Integritätsrat und Gliederungen), mit § 6 Abs 9
- Nachrechnen
- Jeder Beschluss steht öffentlich unter einer zitierfähigen Nummer (etwa „IR-2026-04') mit jeder einzelnen Stimme und jeder Begründung, ohne Anmeldung einsehbar. Nachzurechnen ist: die Zahl der abgegebenen Stimmen gegen die aufgerundete Hälfte der zum Zeitpunkt der Auszählung aktiven Rollen — bei fünf Rollen sind das drei —, dann die höchste Stimmenzahl unter den Optionen; steht sie zweimal, gibt es kein Ergebnis.
- Im Register
- gremien-beschluss-tage · gremien-pruefung-tage (Fristen der Beschlüsse; die Auszählung selbst liest kein Register)
Auszählung von Sachfragen
plattform_core/tally.py · Fassung 1
Zählt die Ja-, Nein- und Enthaltungsstimmen einer Sachabstimmung und stellt fest, ob der Antrag angenommen ist: Zuerst muss die Mindestbeteiligung erreicht sein, dann entscheidet die Mehrheit. Gerechnet wird ausschließlich mit ganzen Zahlen, damit kein Rundungsfehler über einen Beschluss entscheiden kann.
- Gilt seit
- 2026-08-19
- Warum
- Sie steht seit dem Fundament der Plattform so da: Das Ergebnis einer Abstimmung soll jede Person mit Papier und Bleistift nachrechnen können, und die Reihenfolge, in der die Stimmen eingehen, darf am Ergebnis nichts ändern.
- Satzung
- § 5 Abs 4 (mit § 3 Abs 1 lit b — eine Stimme je Mensch)
- Nachrechnen
- Nach Abstimmungsende gibt es zu jedem Antrag einen JSON-Export der Stimmliste. Von Hand: Ja + Nein + Enthaltung durch die Zahl der Stimmberechtigten teilen — das muss mindestens die Mindestbeteiligung ergeben; dann genügt Ja > Nein (bei der Basis „abgegeben': Ja > die Hälfte aller abgegebenen Stimmen). Wer rechnen lassen will: `python3 verify/nachrechnen.py export.json`, ein zweites, unabhängiges Programm aus reiner Standardbibliothek. Die Mindestbeteiligung stammt aus der am Antrag eingefrorenen Verfahrensordnung, nicht aus dem laufenden Parameterregister.
Eingefrorene Verfahrensordnung
plattform_core/policy.py · Fassung 5
Trägt die Verfahrensregeln eines Antrags: Unterstützungsschwelle, Fristen, Mindestbeteiligung und Mehrheitsbasis. Beim Einbringen wird die dann geltende Fassung als unveränderliche Kopie an den Antrag geheftet, damit eine spätere Änderung ein laufendes Verfahren nicht mehr erreicht. Jede Fassung, die die satzungsfesten Untergrenzen unterschreitet — Beratung mindestens 21 Tage, Abstimmung mindestens 7 Tage, Beteiligung mindestens 5 Prozent —, wird zurückgewiesen. Seit Fassung 2 gehören auch die Fristen, Runden und die Annahme-Schwelle der Entwurfsschleife (§ 5 Abs 12) zur Ordnung; die Fristen der Unterstützer und des Expertenrats dürfen 14 Tage nicht überschreiten. Seit Fassung 3 kann eine Ordnung ohne Beratungsphase auskommen und den frühesten und spätesten Abstimmungsbeginn tragen — die Vertrauensfrage nach § 7 Abs 10; nur dort darf die Unterstützungsschwelle 0 sein (Bestätigungsantrag). Seit Fassung 4 kann die Unterstützungsschwelle ein Anteil der am Einbringungstag Stimmberechtigten sein; die daraus gerechnete Zahl wird samt Grundgesamtheit und Mindestzahl am Antrag eingefroren. Seit Fassung 5 hält die Ordnung auch fest, ob die Übergangsregel des § 4 Abs 4 lit d für den Antrag gilt, und ob ein Sachantrag während der Abstimmung die Tendenz zeigt, sobald die Mindestbeteiligung erreicht ist (Voreinstellung: verdeckt bis Fristende).
- Gilt seit
- 2026-09-29
- Warum
- Fassung 5 (0.51.0) nimmt die Übergangsregel des § 4 Abs 4 lit d in die eingefrorene Ordnung: Ob die Anwartschaft entfällt, wird beim Einbringen aus der Einstellung der Instanz übernommen und gilt bis zum Ende des Verfahrens — für die Zahl der Stimmberechtigten, die Prüfung jeder Stimme, die Bewerbung und das Unterstützungsrecht bei der Vertrauensfrage. Bis dahin las die Plattform die Einstellung bei jedem Schritt neu; ein Umschalten während einer Abstimmung hätte Zählung und Einzelprüfung auseinanderlaufen lassen. Ältere Anträge ohne dieses Feld lesen den Wert „gilt“. Dazu kommt ein Schalter für die Tendenz während der Abstimmung: 0 hält Ja, Nein und Enthaltung bis zum Fristende verdeckt, 1 zeigt sie ab erreichter Mindestbeteiligung — für Sachanträge, nie für Mandatsfrage, Vertrauensfrage und Kandidatur. Er steht auf 0 und wird beim Einbringen eingefroren, damit eine Abstimmung vom ersten bis zum letzten Tag unter denselben Bedingungen läuft. Fassung 4 (29.9.2026, Anweisung des Gründers) erlaubt die Unterstützungsschwelle als Anteil der Stimmberechtigten: ein Prozentwert im Parameterregister, die bisherige Zahl bleibt als Mindestzahl. Gerechnet wird am Einbringungstag mit derselben Zählung wie der Nenner einer Abstimmung; die Zahl steht danach fest. Fassung 3 (15.9.2026) gibt der Ordnung drei Felder für die Vertrauensfrage: keine Beratungsphase, frühester Abstimmungsbeginn nach Einbringung, spätester nach Erreichen der Schwelle. Ihre Werte kommen aus der Satzung und werden beim Einbringen eingefroren; die Sammelfrist und die Abstimmungsdauer liest die Plattform dabei aus dem Register, nie über 30 und nie unter 7 Tagen (§ 7 Abs 10 lit k). Ältere Fassungen lesen die Vorgaben und verhalten sich unverändert. Fassung 2 (11.9.2026) nimmt Schwelle, Runden und Fristen der Entwurfsschleife in die eingefrorene Ordnung: Bis dahin las die Schleife sie live aus dem Register, und eine Registeränderung traf laufende Verfahren — gegen § 5 Abs 5. Zur ersten Fassung: Seit dem 5. September 2026 lassen sich Fristen und Schwellen im Parameterregister pflegen und daraus eine neue Fassung der Verfahrensordnung erzeugen. Erzeugen und In- Kraft-Setzen sind bewusst zwei Schritte, weil das eine eine Rechnung und das andere eine Entscheidung ist; und die Untergrenzen der Satzung bleiben im Programmtext statt im Register, damit die Verwaltung sie über eine Stellgröße nicht aushebeln kann.
- Satzung
- § 5 Abs 5 (Einfrieren), mit § 4 Abs 4 lit d, § 5 Abs 3 lit b bis d, § 5 Abs 4, § 5 Abs 7 und § 7 Abs 10 lit c, e, k
- Nachrechnen
- Jeder Antrag führt seine eingefrorene Kopie im Export mit — dort steht Zahl für Zahl, wonach er entschieden wurde. In der Verwaltung stellt ein Abgleich das Register und die geltende Ordnung Feld für Feld nebeneinander; fehlt im Register ein Wert, verweigert die Erzeugung die Arbeit, statt ihn stillschweigend zu ergänzen.
- Im Register
- verfahren-unterstuetzung-schwelle · verfahren-unterstuetzung-anteil-prozent · verfahren-unterstuetzung-tage · expertenrat-erstvorschlag-tage · verfahren-abstimmung-tage · verfahren-mindestbeteiligung-prozent · verfahren-wiedereinbringung-monate · vertrauensfrage-unterstuetzung-tage · vertrauensfrage-abstimmung-tage · verfahren-tendenz-ab-mindestbeteiligung
Phasenautomat des Antragsverfahrens
plattform_core/phases.py · Fassung 2
Bestimmt, wann ein Antrag von einer Phase in die nächste wechselt: Unterstützung, Beratung, Abstimmung, dann angenommen oder abgelehnt — und Verfall, wenn die Unterstützungsschwelle in der Frist nicht erreicht wird. Ein Übergang geschieht ausschließlich durch Zeitablauf oder eine erreichte Schwelle, nie weil jemand ihn auslöst; die einzige Ausnahme ist die förmliche Zurückweisung durch den Integritätsrat, die außerhalb dieses Automaten steht. Seit Fassung 2 kennt er den Weg ohne Beratungsphase der Vertrauensfrage: Aus der Unterstützung geht es unmittelbar in die Abstimmung, frühestens am siebten Tag nach Einbringung und spätestens am dritten Tag nach Erreichen der Schwelle; wann die Schwelle erreicht war, hält die Plattform beim Zählen fest und veröffentlicht es.
- Gilt seit
- 2026-09-15
- Warum
- Fassung 2 (15.9.2026) bringt den Weg ohne Beratungsphase für die Vertrauensfrage (§ 7 Abs 10): Der Satzungsabsatz ersetzt die Beratung durch die Darstellung der Anlässe und das Gehör des Mandatsträgers und legt den Abstimmungsbeginn fest — der Automat rechnet ihn aus dem Zeitpunkt, zu dem die Schwelle erreicht war, nicht aus dem Moment, in dem ein Programm zufällig lief. Für alle anderen Ordnungen bleibt Fassung 1 Wort für Wort erhalten. Zur ersten Fassung: Sie steht seit dem Fundament so da. Der Automat liest nie die Uhr des Servers, sondern bekommt den Zeitpunkt übergeben, und ein Übergang gilt zum Fristzeitpunkt — nicht zu dem Moment, in dem ein Hintergrundprogramm zufällig lief. Ein verspäteter Server verschiebt dadurch keine Frist eines Menschen, und jeder frühere Zustand lässt sich exakt wiederherstellen.
- Satzung
- § 5 Abs 3 (Ausnahme der Zurückweisung: § 5 Abs 2); § 7 Abs 10 lit c und e
- Nachrechnen
- Phasenbeginn plus die Frist aus der am Antrag eingefrorenen Verfahrensordnung ergibt das Fristende; in der Unterstützungsphase kommt der Vergleich der Unterstützungszahl mit der Schwelle dazu. Beide Zahlen stehen auf der Antragsseite, die geltenden Fristen im Eintrag „Eingefrorene Verfahrensordnung'. Bei einer Vertrauensfrage: Abstimmungsbeginn = der spätere von „Einbringung plus sieben Tage“ und „Schwelle erreicht“; die Antragsseite nennt beide Zeitpunkte.
Stimmberechtigung und Anwartschaft
plattform_core/eligibility.py · Fassung 1
Entscheidet, ob ein Mitglied bei einer bestimmten Abstimmung mitstimmen darf. Maßstab ist die ununterbrochene Mitgliedschaft am Tag des Abstimmungsbeginns: drei Monate bei Sachfragen, zwölf Monate bei Personenwahlen, Mandatsnominierungen, Satzungsänderungen und der Auflösung. Für die erste Organbestellung und die erste Verfahrensordnung entfällt die Anwartschaft.
- Gilt seit
- 2026-08-19
- Warum
- Sie steht seit dem Fundament so da. Die Monatsrechnung ist im Modul ausgeschrieben statt aus einer fremden Programmbibliothek geholt, damit die Frist eines Menschen nie davon abhängt, welche Bibliothek gerade installiert ist.
- Satzung
- § 4 Abs 4 (Übergangsregel: § 4 Abs 4 lit d)
- Nachrechnen
- Beitrittsdatum nehmen, drei beziehungsweise zwölf Kalendermonate dazuzählen und mit dem Tag des Abstimmungsbeginns vergleichen. Fällt der Zieltag auf einen Tag, den der Zielmonat nicht hat, gilt der letzte Tag dieses Monats — Beitritt am 30. November, Sachfrage, Erfüllungstag 28. (im Schaltjahr 29.) Februar.
reiht — Bestimmt die Reihenfolge, in der etwas erscheint.
Favoriten-Fächer: Anordnung der Lebensbereiche
plattform_core/faecher.py · Fassung 2
Berechnet, welche Knoten des Lebensbereiche-Baums im Favoriten-Feld erscheinen und wo sie stehen: fünf Ebenen um den angeklickten Anker, jede Ebene vollständig bis zwölf Knoten, darüber nur noch der entfaltete Ast mit höchstens drei Kindern und „+n“. Die Reihenfolge kommt aus dem Kategorienbaum selbst, nicht aus einer Bewertung von Anträgen oder Menschen.
- Gilt seit
- 2026-09-02
- Warum
- Beschriftungen überlappten und waren hart abgeschnitten („Bildungssy“, „Infrastruktu“). Die zweite Fassung zeigt immer fünf Ebenen, teilt jeder Pille eine Höchstbreite zu und kürzt Namen nie unter sechs Zeichen; der volle Name bleibt als Titel lesbar.
- Satzung
- § 5 Abs 10 lit a · § 2 Abs 6
- Nachrechnen
- Die Regel ist reine Geometrie und hängt an keiner Datenbank: Jede Ebene verteilt ihre Knoten gleichmäßig über 92 Prozent der Feldbreite, jede Pille erhält die Breite b = r·Spanne/(n−1+r). Die Rechenprobe über alle 312 Knoten und alle Äste zeigt, dass sich keine zwei sichtbaren Pillen überlappen.
- Im Register
- faecher-regel
WeicherFilter: die selbst eingestellte Reihung
plattform_core/weicherfilter.py · Fassung 2
Reiht die Einträge im Bereich für Anträge und Gesetzesvorschläge nach neun Reglern, die das Mitglied selbst stellt: Punkte = Summe aus Reglerstellung mal Merkmal, jedes Merkmal zwischen 0 und 1. Ist kein Regler gesetzt, bleibt die neutrale Grundordnung nach Phase und Frist erhalten; bei Punktgleichheit ebenso.
- Gilt seit
- 2026-09-02
- Warum
- Aus dem einen richtungslosen Regler „gestimmt“ wurden zwei — wofür und wogegen ich gestimmt habe —, „Nur noch kurz online“ misst seither die tatsächliche Phasendauer statt pauschal sechzig Tage, und jeder Antrag zeigt seinen Punktewert samt Aufschlüsselung. Weil jeden Regler das Mitglied für die eigene Ansicht selbst stellt und die Reihung ohne gesetzten Regler streng neutral bleibt, ist sie nach § 2 Abs 6 letzter Satz ausdrücklich keine Sortierung durch die Partei — offengelegt, versioniert und nachrechenbar ist sie trotzdem.
- Satzung
- § 2 Abs 6 letzter Satz · § 5 Abs 10 lit d
- Nachrechnen
- Jeder Antrag im Feed nennt seine Punkte und die Aufschlüsselung nach den gesetzten Reglern. Wer die neun Werte mit den Merkmalen multipliziert und addiert, erhält dieselbe Zahl; unter /parameter/#weicherfilter steht die Regel Regler für Regler.
- Im Register
- weicherfilter-regel
ordnet zu — Teilt ein oder erkennt Ähnlichkeit — schlägt vor, entscheidet nicht.
Beitragsabgleich: Zahlung zu Mitglied
plattform_core/beitraege.py · Fassung 1
Sucht in den Gutschriften des Vereinskontos die persönliche Beitragsreferenz (Form DDOE-0042-A1B2C3) und ordnet den Eingang dem Mitglied zu, dem diese Referenz gehört. Eingänge ohne bekannte Referenz fallen still heraus; vom Absender bleibt nur ein Ja/Nein, ob sein Name zum Mitglied passt — IBAN und Klarname verlassen den Abgleich nie.
- Gilt seit
- 2026-08-31
- Warum
- Damit ein Mitglied nach seiner Überweisung nicht darauf warten muss, dass jemand den Eingang von Hand nachträgt: Der Beitrag wird selbst erkannt, eine Beitragspause endet, und die Mitwirkung ist wieder frei.
- Satzung
- § 4 Abs 3; § 2 Abs 6; § 8
- Nachrechnen
- Die eigene Referenz steht auf der Beitragsseite /beitrag/, dort auch die private Liste der eigenen Eingänge mit Betrag und Buchungstag — zum Vergleich mit dem eigenen Kontoauszug. Gesucht wird nach einem offenen Muster: die Buchstaben DDOE, eine vierstellige Nummer, sechs Zeichen aus A–F und Ziffern; Trennstriche und Kleinschreibung sind dabei gleichgültig.
Zuordnung der Anträge zu Lebensbereichen
plattform_core/klassifikation.py · Fassung 1
Ordnet jeden neuen Antrag selbst in den Baum der Lebensbereiche ein, damit niemand Kategorien ankreuzen muss. Jeder Knoten bringt eine gepflegte Schlagwortliste mit; ein Schlagwort trifft, wenn ein Wort des Antragstexts damit beginnt. Punktestand je Knoten ist die Zahl der getroffenen Schlagworte, die tiefste passende Ebene gewinnt. Die Zuordnung ist ein Vorschlag ohne Sperrwirkung und durch Menschen korrigierbar.
- Gilt seit
- 2026-08-19
- Warum
- Erste Fassung: Mit dem Kategorienbaum fiel die Entscheidung, die Einordnung nicht dem Einbringenden aufzubürden und sie trotzdem ohne künstliche Intelligenz zu treffen — über gepflegte Schlagwortlisten, die jeder nachlesen kann.
- Satzung
- § 5 Abs 10 lit d · § 2 Abs 6
- Nachrechnen
- Die Schlagwortlisten stehen offen in der Datei policies/kategorien-v2.yaml. Wer zählt, wie viele davon im eigenen Antragstext vorkommen, erhält denselben Punktestand; jede Zuordnung steht zusätzlich mit dem Vermerk „schlagworte-v1“ im Prüfprotokoll.
- Im Register
- kategorien-regel
Ähnlichkeitshinweis beim Einbringen
plattform_core/similarity.py · Fassung 2
Vergleicht einen neuen Antrag mit den offenen Anträgen und zeigt ähnliche samt ihrer Beteiligung an, damit sichtbar wird, wo sich Unterstützung bereits sammelt. Der Wortvergleich rechnet ohne Modell auf Wort-Ebene: Funktionswörter und Antragsfloskeln fallen weg, Wörter werden auf ihre Stammform gekürzt, Titelwörter zählen doppelt; der Wert ist zu zwei Dritteln der gewichtete Jaccard der Wortmengen und zu einem Drittel der Jaccard der Wortpaare. Ab der Schwelle im Register (Zielwert 30 Prozent) erscheint der Hinweis. Ist ein Anbieter am Modell-Steckplatz angeschlossen, kommt als Zweitmeinung der Bedeutungsvergleich dazu (Kosinus zweier Textvektoren des Anbieters, Schwelle im Register, Zielwert 78 Prozent); beide Werte stehen nebeneinander. Ein Antrag erscheint, sobald einer der beiden Werte seine Schwelle erreicht. Erreichen mehr Anträge eine Schwelle, als die Höchstzahl im Register erlaubt (Zielwert drei), zeigt die Plattform die mit dem höheren der beiden Werte, bei Gleichstand den älteren Antrag. Der Hinweis schlägt vor und blockiert nie — „Trotzdem einbringen“ bleibt immer gleichwertig möglich.
- Gilt seit
- 2026-09-29
- Warum
- Zweite Fassung nach der Anweisung des Gründers vom 28.9.2026: Die erste Fassung verglich Dreizeichenfolgen und zählte damit die Floskeln mit, die fast jeder Antrag trägt — zwei Anträge ohne jede inhaltliche Nähe erreichten 29 Prozent. Der Wortvergleich streicht diese Floskeln und bleibt lexikalisch nachrechenbar; der Bedeutungsvergleich über den Steckplatz ist eine gekennzeichnete Zweitmeinung, kein Ersatz.
- Satzung
- § 5 Abs 10 lit d · § 2 Abs 6
- Nachrechnen
- Text kleinschreiben, Satzzeichen entfernen, Stoppwörter der Liste im Modul und Wörter unter drei Zeichen streichen, ab fünf Zeichen eine Endung -en/-er/-es/-e/-n/-s kappen, Titelwörter doppelt gewichten. Wortanteil: Summe der kleineren Gewichte je gemeinsamem Wort geteilt durch die Summe der größeren Gewichte über alle Wörter. Wortpaare sind benachbarte Wörter, gebildet getrennt in Titel und Wortlaut. Paaranteil: gemeinsame Wortpaare geteilt durch alle Wortpaare. Angezeigter Wert = ⅔ Wortanteil + ⅓ Paaranteil; hat keiner der beiden Texte ein Wortpaar, zählt der Wortanteil allein. Der Bedeutungswert stammt vom Anbieter und ist nur mit dessen Modell nachrechenbar — darum steht er getrennt und gekennzeichnet daneben.
- Im Register
- aehnlichkeit-schwelle-prozent · aehnlichkeit-bedeutung-schwelle-prozent · aehnlichkeit-treffer
rechnet — Rechnet, ohne zu entscheiden.
Audit-Kette des Protokolls
plattform_core/hashchain.py
Versiegelt das Protokoll: Jeder Eintrag im Audit-Log trägt eine Prüfsumme über seinen eigenen Inhalt und die Prüfsumme des Vorgängers. Wer nachträglich einen alten Eintrag ändert, verändert damit zwangsläufig alle folgenden Prüfsummen — die Änderung fällt auf. Über Menschen entscheidet dieses Modul nichts; es rechnet und meldet, wo eine Kette nicht mehr stimmt.
- Gilt seit
- 2026-08-19
- Warum
- Seit 0.52.0 (29.9.2026) rechnet die Plattform die Kette auch nach: täglich die neuen Einträge samt dem zuletzt geprüften, in einem Abstand aus dem Parameterregister die ganze Kette von vorn; Ergebnis und Hash des letzten geprüften Eintrags stehen öffentlich in den Kennzahlen . Bis dahin wurde die Kette geschrieben, aber nirgends geprüft. Sie steht seit dem Fundament so da und ist absichtlich in rund sechzig Zeilen erklärbar: „Jeder Eintrag versiegelt alle vorherigen' — statt eines Aufwands, den am Ende niemand nachprüfen würde (ADR-005).
- Satzung
- § 5 Abs 8 (mit § 3 Abs 1 lit c)
- Nachrechnen
- Die Prüfsumme ist SHA-256 über die Prüfsumme des Vorgängers und den Ereignisinhalt in kanonischer Form: sortierte Schlüssel, keine Leerzeichen, UTF-8. Die erste Kette beginnt bei vierundsechzig Nullen. Die Prüffunktion nennt nicht nur, dass etwas nicht stimmt, sondern den ersten Eintrag, dessen Prüfsumme nicht zu seinem Inhalt passt.
- Im Register
- audit-vollpruefung-tage
Beschlusslage und Ticker im Sitzungsmodus
plattform_core/sitzung.py · Fassung 1
Zeigt dem Mandatar im Sitzungssaal je Tagesordnungspunkt, was die Mitglieder beschlossen haben: angenommen, abgelehnt, in Abstimmung bis zum Fristende, noch nicht in Abstimmung, ohne Beschluss beendet oder kein Antrag verknüpft. Eine laufende Abstimmung zeigt keinen Zwischenstand und keine Tendenz. Aus den Meldungen des Tickers bestimmt sie je Punkt die Meldung, aus der die Rechenschaft vorbefüllt wird, und sie sagt, wann eine nicht beendete Sitzung als beendet gilt.
- Gilt seit
- 2026-09-30
- Warum
- Erste Fassung mit dem Sitzungsmodus (Entscheidung des Gründers vom 29.9.2026: Ticker und Live-Beschlusslage, der amtliche Stream nur als Link). Die Beschlusslage kennt keine Stimmenzahlen, damit die Frist einer laufenden Abstimmung ungekürzt bleibt. Meldungen werden nie geändert; eine Korrektur ist eine neue Meldung, die die alte als berichtigt kennzeichnet. Die Höchstdauer einer Sitzung ist eine Stellgröße.
- Satzung
- § 7 Abs 3 lit b · § 7 Abs 5 · § 7 Abs 9
- Nachrechnen
- Die Beschlusslage ist die Phase des verknüpften Antrags, auf der Antragsseite nachzulesen. Maßgeblich für die Rechenschaft ist je Punkt die jüngste nicht berichtigte Meldung mit Stimme, die als abgestimmt gekennzeichnet ist, sonst die jüngste nicht berichtigte mit Stimme. Eine Sitzung ohne gesetztes Ende endet mit Beginn plus Höchstdauer.
- Im Register
- live-hoechstdauer-stunden
Fristen der Rechenschaft und Berichte der Mandatare
plattform_core/rechenschaft.py · Fassung 1
Rechnet, bis wann ein Mandatar nach einem angekündigten Sitzungstag Rechenschaft ablegen und den Sammelbericht einstellen muss, für welche vollen Kalendermonate ein Monatsbericht geschuldet ist und ob ein Eintrag fristgerecht, verspätet, noch offen oder ausständig ist. Sie liefert Zahlen, kein Urteil: Ein Ausstand wird angezeigt, nicht sanktioniert — die Mandatsvereinbarung bindet, die Plattform macht sichtbar.
- Gilt seit
- 2026-09-12
- Warum
- Erste Fassung mit der Rolle des Mandatars. Die sieben Tage für Rechenschaft und Sammelbericht stehen wörtlich in der Satzung und deshalb als Konstante im Code — wer sie im Register verlängern könnte, könnte die Rechenschaftspflicht still aushöhlen. Wann im Folgemonat ein Monatsbericht noch als fristgerecht gilt, sagt die Satzung nicht; diese Karenz ist eine Stellgröße. Monatsberichte werden erst für Monate ab Oktober 2026 geschuldet — für die Zeit ohne Werkzeug schuldet niemand einen Bericht.
- Satzung
- § 7 Abs 3 lit b · § 7 Abs 5
- Nachrechnen
- Sitzungstag plus sieben Tage ergibt die Frist für Rechenschaft und Sammelbericht. Geschuldet ist ein Monatsbericht für jeden Kalendermonat, der vom ersten bis zum letzten Tag in die Mandatszeit fällt und heute vorbei ist; fällig ist er am Tag des Folgemonats, den die Stellgröße nennt.
- Im Register
- mandatar-monatsbericht-frist-tage
Gegenüberstellung bei Parametertests
plattform_core/parametertest.py · Fassung 1
Stellt die Messgröße eines befristeten Parametertests vorher und während des Tests gegenüber — Differenz und Anteil — und sagt, ab wann ein Test läuft und wann er um ist. Sie liefert Zahlen, kein Urteil: Ob ein Wert eingeführt wird, beschließt der Koordinationsrat mit Namen und Begründung.
- Gilt seit
- 2026-09-09
- Warum
- Erste Fassung mit dem Parameterverfahren. Die Messgrößen sind die Kennzahlen, die die Plattform ohnehin unter /kennzahlen.json veröffentlicht — eine zweite, unveröffentlichte Zählung nur für Tests wäre nicht nachrechenbar gewesen.
- Satzung
- § 6 Abs 11 lit c · § 6 Abs 11 lit d
- Nachrechnen
- Vorher- und Nachher-Schnappschuss stehen am Test; Differenz = nachher − vorher, Anteil = Differenz ÷ |vorher| × 100.
Kontoauszug-Leser (camt.053 und CSV)
plattform_core/bankauszug.py
Liest eine aus dem Online-Banking heruntergeladene Umsatzdatei — camt.053-XML oder CSV — und übergibt die Gutschriften in derselben schlanken Form an den Beitragsabgleich wie ein Bankdienst. Ausgaben des Vereinskontos werden übergangen, die Datei selbst nie gespeichert.
- Gilt seit
- 2026-08-31
- Warum
- Weil kein Kontoinformationsdienst verfügbar war, sollte der Beitragsabgleich trotzdem sofort funktionieren: Wer die Umsatzliste aus dem Online-Banking hochlädt, bekommt dieselbe Zuordnung, dieselbe Freischaltung und dieselben Prüfhinweise wie über die Bankschnittstelle.
- Satzung
- § 4 Abs 3; § 2 Abs 6
- Nachrechnen
- Dieselbe Datei zweimal eingelesen ergibt dieselben Umsätze. Wo die Bank keine Referenz liefert, bildet sich die Kennung als 'csv-' gefolgt von den ersten 32 Zeichen der SHA-256-Prüfsumme über Buchungstag, Betrag und Verwendungszweck, verbunden mit je einem senkrechten Strich — mit jedem Prüfsummenwerkzeug nachrechenbar.
stellt dar — Bereitet auf, ohne auszuwählen.
Leser der Partner-Kurzfassungen
plattform_core/kurztext.py · Fassung 1
Liest die fremdsprachigen Kurzfassungen der Einladung an Partnerparteien aus dem Repository und zerlegt sie in Überschrift, Absätze und den kursiven Schlusssatz. Das Arbeitsmaterial hinter dem waagrechten Strich — Glossar und offene Punkte für Muttersprachler — bleibt draußen.
- Gilt seit
- 2026-09-04
- Warum
- Damit die Einladung in Französisch, Spanisch, Italienisch und Japanisch als eigene Seite erscheinen kann, ohne dass die internen Notizen aus derselben Datei versehentlich mit auf die Seite geraten.
- Satzung
- § 12 Abs 1 · § 12 Abs 2
- Nachrechnen
- Die Quelldateien liegen offen unter docs/partner/kurz/; wer Seite und Datei nebeneinanderlegt, sieht denselben Text. Was der Leser nicht kennt — etwa Tabellen oder Listen —, erscheint unverändert als Absatz: Es verschwindet nichts unbemerkt.
Rollenmatrix „Wer darf was“
plattform_core/rollen.py · Fassung 7
Führt für jede der vierzehn Rollen der Partei auf, was die Satzung ihr aufträgt und was die Software heute davon kann — Fähigkeit für Fähigkeit mit ● verfügbar, ◐ teilweise oder ○ geplant, bei Geplantem mit dem Bauschritt. Die Matrix wählt nichts aus, reiht nichts und öffnet keine Zugänge; sie ist eine Auskunft über den Bauzustand.
- Gilt seit
- 2026-09-30
- Warum
- Fassung 7 mit dem Sitzungsmodus (0.53): Der Mandatar meldet am Sitzungstag live aus dem Vertretungskörper und markiert Fragen aus dem Chat der Sitzung als beantwortet; der Gast liest Ticker, Tagesordnung und Beschlusslage; das Mitglied stellt im Chat der Sitzung Fragen; die Verwaltung trägt nach dem Ende der Vertretung Abstimmungen nach öffentlichen Quellen nach. Fassung 6 nach der Bestandsaufnahme vom 28.9.2026 (0.50): Vier Zeilen des Expertenrats und des Integritätsrats — Fassungen vergleichen und Absätze kommentieren, Beschluss anlegen, Einschätzung der Zukunftswerkstatt im Fenster, jährlicher öffentlicher Bericht — waren seit 0.45 gebaut, standen aber noch als ○ „mit S9/S11“; sie sind jetzt ● mit Adresse. Keine offene Zeile nennt mehr einen Bauschritt, der schon abgeschlossen ist; wo Teil C keinen Schritt vorsieht, steht das so da. Fassung 5 mit dem Mitgliedsausweis (0.49): Das Mitglied erhält mit der Freischaltung einen Ausweis als PDF im Kartenformat — automatisch per Brief, jederzeit im Profil — und der QR-Code darauf führt zur Prüfseite, die nur „gültig“ oder „nicht gültig“ sagt. Fassung 4 mit der Vertrauensfrage (0.48, § 7 Abs 10): Das Mitglied stellt sie mit einem Anlass aus dem Rechenschaftsregister und unterstützt sie, wenn es am Tag der Einbringung für Personenwahlen stimmberechtigt ist; der Mandatar nimmt Stellung, gibt bei der Bewerbung die Rückgabezusage ab oder nicht und beantragt nach einer verlorenen Vertrauensfrage die Bestätigung; der Integritätsrat stellt eine Sperre durch Beschluss fest, statt dass die Software abweist; der Gast liest Vertrauensfragen, Stellungnahmen und Ergebnisse; die Verwaltung vermerkt Anfechtung und Entscheidung des Parteischiedsgerichts, das selbst weiter als Lücke ausgewiesen ist. Die Zeile „Mandatsträger bewerten und ein Abberufungsverfahren einleiten“ entfiel vorerst: Die Partei kann ein Mandat weder entziehen noch seine Rückgabe erzwingen (§ 7 Abs 2, Abs 10 lit i); das Recht nach § 4 Abs 2 auf Bewertung der Mandatsträger und auf ein Abberufungsverfahren nach Maßgabe der Verfahrensordnung bleibt unberührt und hat noch keinen Bauschritt — an die Stelle einer Abberufung des Mandats tritt die Vertrauensfrage nach § 7 Abs 10. Fassung 3 mit der Mandatar-Rolle und dem Profil (0.46): Der Mandatar ist eine Rolle im Code — sie hängt am offenen Mandat, nicht an einer Rollenliste —, mit eigenem Bereich, Instant-Report, Mandatsfrage, Rechenschaftsregister und Berichten; das Mitglied verwaltet Pseudonym, Wohnsitz, Nebenwohnsitz, Datenexport und Austritt selbst; Gast liest das Rechenschaftsregister; der Text zur Unvereinbarkeitsprüfung des Integritätsrats war seit 0.44 überholt. Fassung 2 mit dem Koordinationsrat-Bereich, dem Parameterverfahren und den Bereichen der weiteren Räte (0.45): Die Zeilen für Koordinationsrat, Expertenrat, Entwicklungsrat und Berichtswesenrat wurden auf den Bauzustand gebracht. Fassung 1 (5.9.2026) war die erste: Bis dahin ließ sich nirgends nachlesen, welche Rechte die Satzung einer Rolle gibt und welche davon schon gebaut sind. Die Zählung unter /rollen/ ist immer die aktuelle — sie steht bewusst nicht hier, damit dieser Text nicht veraltet.
- Satzung
- § 6 · § 3 Abs 1 lit c
- Nachrechnen
- Die Zahlen unter der Übersicht sind die ausgezählten Zeilen der Tabelle darüber; wer nachzählt, kommt auf dieselbe Summe. Die Tests in verfahren/test_rollen.py halten die Matrix gegen die Rollen, die es im Code wirklich gibt: kein ○ ohne Bauschritt, kein ◐ ohne Angabe, was fehlt, keine Adresse, die ins Leere führt.
Servergerenderte SVG-Diagramme
plattform_core/diagramme.py
Zeichnet die Bilder der öffentlichen Übersichtsseite — Verlaufslinie, Säulen je Zeitraum und den 100-Prozent-Balken einer Abstimmung — direkt auf dem Server, ohne JavaScript und ohne fremde Diagramm-Bibliothek. Es rechnet nur die Achsenwerte und die Länge der Balken aus den bereits veröffentlichten Zahlen.
- Gilt seit
- 2026-08-26
- Warum
- Seit es die dunkle Ansicht gibt, bringt jedes Diagramm seinen eigenen hellen Grund mit: Die auf Farbfehlsichtigkeit geprüfte Farbwahl gilt nur auf hellem Papier, und ein Bild, das man nicht lesen kann, ist keine Auskunft.
- Satzung
- § 5 Abs 3 lit e · § 2 Abs 6
- Nachrechnen
- Jede Zahl im Bild steht auf derselben Seite auch als Text (ADR-008), und die Tooltips nennen den Wert beim Überfahren. Farbe trägt nie allein die Information; wer die Zahlen addiert, kommt auf dieselben Anteile.
Sprachneutrales Parameter-Schema
plattform_core/schema.py
Übersetzt die deutschen Stellgrößen dieser Instanz in englische, überall gleich bedeutende Kennungen und baut daraus die offen abrufbaren Dateien /parameter.json und /kennzahlen.json. Umgekehrt prüft es den Export einer Partnerinstanz gegen dasselbe Schema und beanstandet jedes personenbezogene Feld.
- Gilt seit
- 2026-09-05
- Warum
- Fünfundzwanzig weitere Stellgrößen bekamen eine englische Kennung, damit Partnerparteien im Ausland ihre eigenen Werte mit unseren vergleichen können, ohne Deutsch zu lesen.
- Satzung
- § 12 Abs 5; § 2 Abs 6
- Nachrechnen
- Die Kennungen stehen offen in /parameter.json und /kennzahlen.json, dort jeweils neben dem deutschen Schlüssel. (docs/SCHEMA.md steht noch auf Fassung 1.0 und führt erst zwölf der Kennungen — die Datei ist die kürzere Quelle, die Schnittstelle die vollständige.)
Wortweiser Vergleich zweier Fassungen
plattform_core/wortdiff.py · Fassung 1
Vergleicht den ursprünglichen Antrag mit dem Vorschlag des Expertenrats und markiert Wort für Wort, was hinzugekommen und was weggefallen ist. Wer über den Vorschlag abstimmt, sieht damit, was daran geändert wurde.
- Gilt seit
- 2026-09-04
- Warum
- Der Vergleich arbeitet auf Wörtern statt auf Zeilen, damit ein umformulierter Satz die drei geänderten Wörter zeigt und nicht den ganzen Absatz als ausgetauscht — sonst wäre nicht erkennbar, wie viel wirklich anders ist.
- Satzung
- § 5 Abs 12 und Abs 13; § 2 Abs 6
- Nachrechnen
- Antrag und Vorschlag bleiben beide dauerhaft öffentlich einsehbar; wer die zwei Texte selbst nebeneinanderlegt, muss auf dieselben geänderten Wörter kommen. Das Modul färbt nur, es wählt nichts aus.
Dieses Verzeichnis ist von Hand geschrieben, nicht erzeugt: Ein Programm kann aufzählen, welche Regeln es gibt — eine Begründung kann es nicht schreiben, und genau die verlangt die Satzung. Ein Test hält die Liste gegen den Quellcode: Entsteht eine neue Regel, ohne dass sie hier steht oder ausdrücklich als Ausnahme begründet wird, schlägt er an.