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
Schritt 6 der Administrator-Anleitung, "Sicherung nach D: einspielen": derselbe Tag wie
/var/lib/trading-sicherung/erster-tag auf dem Docker-Host. Ab heute holt die Windows-Aufgabe
die Sicherung beider Instanzen nach D:\Trading-Sicherung. Quorum 5 (Trading Plattform,
docs/quorum/2026-10-13-einspielen.md) frei.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0126RDfXiECscXipzf67uypJ
abendkontrolle.py: Die Unterzeile zu einer nicht geschriebenen Ergebnisdatei sagt nur
noch, wann ein spaeterer Lauf ohne --tag den Tag erneut prueft (Werktag ab dem ersten
Prueftag des Teils, hoechstens NACHHOLEN_TAGE zurueck, unter dem Namen der Datei nichts);
der Docstring nennt den Fall ohne lauf.log. Treiber zieht den Wortlaut nach (46 Faelle,
70 Mutanten, keiner ueberlebt; Windows-Teil ohne Abweichung). LIESMICH: Abschnitt
Paket NR, Grenze im Abschnitt NT ersetzt. Vault-Teil von 746 aus der Plankopie
uebernommen, byte-gleich (Beginn 23:44:58, die Windows-Aufgabe war deaktiviert).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0126RDfXiECscXipzf67uypJ
abendkontrolle.py: logge wirft nicht mehr; scheiterte lauf.log in einem Lauf, steht
am Ende eine Zeile in der Notiz von heute und der Lauf endet mit Exit 1. Laesst sich
die Ergebnisdatei eines Tages nicht schreiben, bekommt seine Notizzeile eine
Unterzeile mit dem Typ, die folgenden Tage laufen weiter, Exit 1. Treiber
abendkontrolle_dockerhost_angriffe.py: sieben neue Faelle (46), Mutanten E743-01
bis E743-13 (70, keiner ueberlebt). Kritische Pruefung NT, Befund 3, und Plankritik NR.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0126RDfXiECscXipzf67uypJ
- abendkontrolle_dockerhost_angriffe.py: Fall eine_bestaetigung_ohne_host_bricht_die_sicherung_ab
und Mutant E739-01 (39 Faelle, 57 Mutanten, keiner ueberlebt).
- abendkontrolle.py: Docstring von ssh_lauf nennt den Vorbehalt zu Win32-OpenSSH.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0126RDfXiECscXipzf67uypJ
- abendkontrolle.py: Exit 255 oder Zeitlimit bei Summe oder Bestaetigung beendet die Sicherung mit
genau einer Zeile in der Notiz von heute und Exit 1; ein Abbruch im Archiv laesst nur die Instanz
scheitern. --tag ausser der Form endet gleich mit Exit 2, ohne Notiz und ssh.
- abendkontrolle_dockerhost_angriffe.py: sieben neue Faelle, zwei angepasste, Mutanten E729-01 bis
E729-15 und E729-25 (38 Faelle, 56 Mutanten, keiner ueberlebt).
- abendkontrolle_wsl.py: Kopf nennt die neuen fehler-Gruende.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0126RDfXiECscXipzf67uypJ
abendkontrolle_wsl.py nimmt --sicherung (Stand der Ablage vom Host) und meldet per ntfy, wenn die
Sicherung des vorigen Handelstags fehlt, kein Archiv hat, nicht bestaetigt ist oder die Bestaetigung
nicht passt; vor erster-tag still, ohne erster-tag ein Befund. abendkontrolle_angriffe.py mit
--nur-sicherung (60 Faelle), abendkontrolle_mutanten.py mit --nur und 30 Sicherungs-Mutanten.
Gegengeprueft: byte-gleich mit der Plankopie, Lauf gegen echte Archive ohne Abweichung.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0126RDfXiECscXipzf67uypJ
abendkontrolle.py holt je Teil mit Quelle dockerhost die Sicherungen der letzten zehn Kalendertage,
prueft die Summe gegen die des Hosts, legt unter D:\Trading-Sicherung ab, bestaetigt beim Host und
schreibt zuletzt die Summendatei. Zeitbudget 1500 s ab dem Start des Laufs. abendkontrolle_einrichten.ps1
setzt den Abend-Ausloeser in Ortszeit ohne UTC-Versatz (S10). Treiber: 32 Faelle, 42 Mutanten.
Gegengeprueft: byte-gleich mit der Plankopie, Kette mit echten Archiven ueber das echte
abendkontrolle-lesen.sh gruen. SICHERUNG_ERSTER_TAG bleibt None bis zum Einspielen.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0126RDfXiECscXipzf67uypJ
Ein absoluter Pfad in einer Ueberschrift schlug unter Windows die Kopie (kopie / "D:/..."),
und das Skript ersetzte die echte Datei mit Exit 0. Gemessen an einer Probe-Datei im Scratchpad,
entdeckt beim Planen von Paket E9 der Trading Plattform (Tasks 725 und 726 aendern Vault-Werkzeuge).
Neu: in_kopie() an allen drei Schreibstellen. Regressionsnachweis: drei Ausbruchsfaelle je Befund
und Exit 2, Dateien draussen unveraendert; Gegenprobe mit E9 723 und 724 byte-gleich.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0126RDfXiECscXipzf67uypJ
- .vault-tools/trading-plattform-pruefung/LIESMICH.md
- .vault-tools/trading-plattform-pruefung/abendkontrolle.py
Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.
Co-Authored-By: Claude Opus 5 <[email protected]>
mutanten_lauf_kopie.sh faehrt lo im eigenen Netz-Namensraum hoch (unshare --keep-caps, ip, setpriv,
exec in python3) und prueft das vorher fail-closed (ip, setpriv, python3, lo-Probe mit
Faehigkeitspruefung). Anlass: Im Paket RB3 der Trading Plattform scheiterten Tests mit Server auf
127.0.0.1 im Namensraum an Errno 101 (lo aus).
Neuer Treiber mutanten_lauf_kopie_treiber.py mit W1 bis W13; Regressionsnachweis gegen HEAD (W1, W2,
W4, W5, W9 rot) und neun kaputte Varianten v1 bis v9, je an ihren Faellen rot. Lauf mit echten Daten:
alle 73 RB3-Mutanten durch das neue Skript 73/73 OK, T1 und T12 jetzt im Namensraum. Ein pruefer
las Skript und Treiber (kein blockierender Befund; der wichtige zu fehlenden Faellen fuer die
Fehlerzweige ist mit Nachbesserung 1 behoben, W10 bis W13).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JU1LsUp4FdmPq8mvC368G3
- .vault-tools/trading-plattform-pruefung/LIESMICH.md
- .vault-tools/trading-plattform-pruefung/ntfy_lesen.py
Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.
Co-Authored-By: Claude Opus 5 <[email protected]>
Anlass: Plankritik 2 von C1 (After Install), fremde pyproject.toml im Windows-Temp.
Gegenprobe an sechs mutanten.toml im Vault: gleiche Ergebnisse, C1 unter Windows-Temp jetzt 69 OK statt 101 FEHLT.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
quorum.js: klartext() schreibt Wikilinks, Einbettungen und Tags aus Freitext als Klartext
(Fund aus dem ersten echten Lauf); der Grund eines freien Urteils nennt blockierende Befunde
ohne Beleg. faelle_workflows.mjs 248 Faelle gruen, mutanten_workflows.py 145 Mutanten,
0 ueberlebt. codeworkflow.md: Regel zum Befund ohne Beleg und Ablageort beim Kundendokument
praezisiert, Vermerk 'noch nicht abgenommen' entfernt. LIESMICH.md fuer .vault-tools/quorum/.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
waisen-ausnahmen.txt: Skills, Plugins, Testfixtures, Programmausgaben und Vorlagen
zaehlen nicht als Waisen. Waisen-Uebersicht: Abschluss mit Belegen je Fertig-heisst-Punkt.
Quorum: Task 06 entschaerft Freitext im Bericht (Fund aus dem ersten echten Lauf).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- .vault-tools/frontmatter-migration/migriere.py
- AI/Regelwerk/frontmatter.md
Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.
Co-Authored-By: Claude Opus 5 <[email protected]>
Jedes Zeichen der Kategorie Cc ausser LF und jedes der Kategorie Cf in
.claude/workflows/**/*.js, gelesen als Bytes. Anlass: plankritik.js mit
CRLF scheiterte am Workflow-Werkzeug. Der Hook nach dem Bearbeiten loest
auch bei Workflows aus. Regressionslauf 28/28 angeschlagen, 6/6 stumm;
Hook-Treiber 58/58; Vorfall in exakter Form gemeldet (U+000D).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Punkte 1 und 2 aus dem Paket Arbeitsweise (Pascals Freigabe 2026-09-26)
in codeworkflow.md; Plan fuer Punkt 4 unter .vault-tools/regelwerk-check.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- abendkontrolle.py: --quelle und --quelle-ibkr (Vorgabe wsl wie bisher, dockerhost liest das Ergebnis des Hosts ueber SSH), fahre_dockerhost
- abendkontrolle_wsl.py: --ibkr-python fuer ibkr_pruefen.py im Container
- abendkontrolle_einrichten.ps1: -Quelle und -QuelleIbkr, 23:15 sobald ein Teil vom Host kommt
- neue Angriffstreiber abendkontrolle_dockerhost_angriffe.py und abendkontrolle_ibkr_python_angriffe.py
- Abdichtung gegen echte WSL- und SSH-Wege in den Treibern, auch in abendkontrolle_angriffe.py und rueckweg_aapl_angriffe.py (nach dem ntfy-Vorfall eines Mutanten am 2026-09-26)
- LIESMICH: Abschnitt Paket DH
- .claude/workflows/plankritik.js: LF statt CRLF (das CR war die Ursache von "script contains control characters"), meta gekuerzt, Einzelheiten im Kommentar
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- .vault-tools/auto-push/taeglich_push.py
Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.
Co-Authored-By: Claude Opus 5 <[email protected]>
- .vault-tools/plan-kopie/LIESMICH.md
- AI/Regelwerk/veroeffentlichung.md
Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.
Co-Authored-By: Claude Opus 5 <[email protected]>
- .vault-tools/plan-kopie/LIESMICH.md
- AI/Regelwerk/veroeffentlichung.md
Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.
Co-Authored-By: Claude Opus 5 <[email protected]>
- .vault-tools/plan-kopie/LIESMICH.md
Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.
Co-Authored-By: Claude Opus 5 <[email protected]>
Der Vault-Root pusht ab jetzt nach jeder Änderung an CLAUDE.md,
AI/Regelwerk/, .claude/agents/, .claude/skills/, .claude/settings.json
oder .vault-tools/ selbsttätig nach Gitea.
- .vault-tools/auto-push/auto_push.py: PostToolUse-Hook, committet und
pusht. Fehlendes Token, fehlendes Remote und gescheiterter Push sind
Befunde und gehen in den Kontext, nicht ins Schweigen.
- .vault-tools/auto-push/askpass.py: reicht GITEA_TOKEN an git weiter,
damit es weder in .git/config noch in einer Kommandozeile steht.
- .vault-tools/auto-push/faelle_auto_push.py: 28 Fälle gegen ein echtes
Wegwerf-Repo mit echtem Remote, alle bestanden. Der Lauf hat zwei
Fehler gefunden, die jetzt behoben sind: die Pfadauflösung scheiterte
an Windows-Kurznamen, und die Laufzeitsperre landete im Repo.
- AI/Regelwerk/veroeffentlichung.md und ein Abschnitt im Stamm halten
die Regel fest.
Co-Authored-By: Claude Opus 5 <[email protected]>
Erster Stand des öffentlichen Ausschnitts aus dem Vault. Die .gitignore
arbeitet als Positivliste: ausgeschlossen ist alles, eingeschlossen nur,
was ausdrücklich wieder aufgenommen wird. Notizen, Projekte, Finanzen,
das Sitzungsgedächtnis und settings.local.json bleiben damit außen vor.
Der Kundenname in AI/Regelwerk/seo.md ist durch eine neutrale
Bezeichnung ersetzt; die Regeln selbst sind unverändert.
Co-Authored-By: Claude Opus 5 <[email protected]>