--- type: guide title: "Quorum am Meilenstein – Werkzeug und Ablauf" status: active summary: "Wie das Quorum gestartet, der Bericht abgelegt und das Werkzeug geprüft wird, dazu was der erste echte Lauf belegt hat." tags: [vault-tools, codeworkflow] created: 2026-10-05 updated: 2026-10-05 --- # Quorum am Meilenstein Prüft vor dem Einspielen, vor einer neuen Minor- oder Major-Version auf master und vor der Abgabe eines Kundendokuments denselben Unterschied mit drei Stimmen: Opus, Sonnet und Codex, als Ersatz Haiku. Die Regel steht in `AI/Regelwerk/codeworkflow.md`, Abschnitt „Quorum am Meilenstein“. Hier steht nur die Bedienung. ## Starten ```text # Code-Projekt, erstes Quorum dort: basis ist der Commit der letzten abgenommenen Version workflow({ scriptPath: "D:/Claude/.claude/workflows/quorum.js" }, { anlass: "einspielen", projekt: "", basis: "", suite_datei: "" }) # Kundendokument: Ordner im Vault, Dateien relativ dazu, Übersicht des Projekts workflow({ scriptPath: "D:/Claude/.claude/workflows/quorum.js" }, { anlass: "kundendokument", ordner: "D:/Claude/", dateien: ["", "..."], uebersicht: "<_MOC-datei>.md" }) ``` - Der Arbeitsbaum muss außerhalb von `docs/quorum/` sauber sein. - `suite` nur für eine Suite, die in neun Minuten durchläuft und nichts Unversioniertes schreibt; sonst die Suite selbst fahren und `suite_datei` nennen. - `codex: false` setzt sofort Haiku ein, etwa wenn das Codex-Kontingent bekannt aufgebraucht ist. ## Bericht ablegen ```bash # bericht_md aus dem Ergebnis als bericht.md in den Ordner paket schreiben, dann: PYTHONIOENCODING=utf-8 python -X utf8 .vault-tools/quorum/quorum_werkzeug.py ablegen --paket --bericht /bericht.md --ziel --summe ``` - Den fertigen Befehl liefert das Ergebnis als `ablegen_befehl`. Er setzt `stand` aus `paket.json` ein, damit kein Modell die Liste der Prüfsummen abschreibt. - Danach den Bericht im Projekt committen. ## Prüfen ```bash # Werkzeug: Fälle und Mutanten python .vault-tools/quorum/faelle_quorum_werkzeug.py python .vault-tools/quorum/mutanten_quorum_werkzeug.py # Workflow: Fälle und Mutanten über die Attrappe (Mutantenlauf über 30 Minuten, im Hintergrund mit ausreichendem Zeitlimit starten) node .vault-tools/workflow-pruefung/faelle_workflows.mjs python .vault-tools/workflow-pruefung/mutanten_workflows.py ``` ## Was belegt ist - **Erster echter Lauf am 2026-09-30, Anlass einspielen, in einem Code-Projekt des Vaults:** - Alle drei Stimmen haben gültig abgegeben, Codex nach 1 min 52 s, mit Lesebeleg. - Urteil frei. Bestätigte Befunde je Stimme: Opus 3, Sonnet 2, Codex 3. Alleinfunde: Opus 2, Sonnet 1, Codex 3 (Tabelle „Stimmen“ im Bericht). - `ablegen` hat den Stand als Commit eingesetzt, der Bericht verlinkt sein README. - Der Verbrauch blieb im Rahmen der Ablesung (5 Stunden 6 %, Woche 77 % vorher und nachher). - **Fund aus diesem Lauf:** Freitext der Stimmen hat im Bericht lebendige Wikilinks erzeugt. Seit Task 06 schreibt `quorum.js` Wikilinks, Einbettungen und Tags aus Freitext als Klartext mit Backslash. - **Bekannte Grenzen (Prüfung vom 2026-10-05, klein):** `zeilen()` liest bei Aufzählungen nur die erste Zahl („Zeilen 72 und 134“ wird 72) und kennt Formen wie „Zeile 10 bis Zeile 14“ oder einen Geviertstrich nicht; eine zu breite Gruppe des Zusammenführ-Agenten kann so eine Mehrheit kosten. `pfadnorm()` entfernt keinen führenden Schrägstrich. `klartext()` setzt den Backslash auch vor `#` in HTML-Entitäten und URL-Fragmenten und lässt `%%…%%`, `