Beleg: Trading Plattform, Quorum 6 am 2026-10-13. Die Zusammenfassung stand oben, die letzten 80 Zeilen zeigten nur Vault-Treiber und Registry-Gegenprobe; alle drei Stimmen meldeten die pytest-Summe als nicht pruefbar. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_0126RDfXiECscXipzf67uypJ
61 lines
4.1 KiB
Markdown
61 lines
4.1 KiB
Markdown
---
|
||
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: "<Repo-Wurzel>", basis: "<commit>", suite_datei: "<datei mit Suite-Ausgabe>" })
|
||
|
||
# Kundendokument: Ordner im Vault, Dateien relativ dazu, Übersicht des Projekts
|
||
workflow({ scriptPath: "D:/Claude/.claude/workflows/quorum.js" }, { anlass: "kundendokument", ordner: "D:/Claude/<ordner>", dateien: ["<datei>", "..."], 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.
|
||
- Aus `suite_datei` sehen die Stimmen nur die letzten 80 Zeilen (`SUITE_ZEILEN`) und die letzte Zeile `EXIT suite: N`. Die Zusammenfassung aller Messungen steht deshalb am Ende, direkt vor der `EXIT`-Zeile. Stand sie oben, meldeten alle drei Stimmen die Summe der Suite als nicht prüfbar (Trading Plattform, Quorum 6 am 2026-10-13).
|
||
- `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 <paket> --bericht <paket>/bericht.md --ziel <bericht_pfad> --summe <hex>
|
||
```
|
||
|
||
- 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 `%%…%%`, `<!--` und Code-Zäune in mehrzeiligen Belegen stehen.
|
||
- **Nicht gemessen:** die Laufzeit der Claude-Stimmen, weil das Laufzeitsystem keine Uhr hat. Ob Obsidian `\[\[x]]` und `\#tag` in jeder Ansicht als Text zeigt, ist nicht in der App geprüft.
|