status.txt nennt den Grund, nicht nur das Etikett

In der Statusdatei des Gegenbuchs stand fuer JEDEN Exit-2 derselbe Satz:
"BEFUND - Widerspruch zwischen CRM und Gegenbuch". Ein echter
Widerspruch sah damit genauso aus wie eine quittierpflichtige
Erstsiegelung.

Aufgefallen im Betrieb: Der Betreiber las "BEFUND" auf Staging und
konnte nicht entscheiden, ob er handeln muss - obwohl die Kette dort
valid:true meldet und der Alarm nur den erwarteten Siegelwechsel betraf.
Wer ausschliesslich die Statusdatei liest, und genau dafuer ist sie da
("damit eine Ueberwachung sie abgreifen kann, ohne Logs zu
durchsuchen"), bekam ein Etikett ohne Inhalt.

Der Lauf wird jetzt mitgeschnitten; die erste ALARM-Zeile landet als
"Grund:" in status.txt, ohne Alarm die erste Ausgabezeile.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-26 17:23:24 +02:00
co-authored by Claude Opus 5
parent fc6f39eba0
commit 31c4c209e4
2 changed files with 32 additions and 2 deletions
+13
View File
@@ -97,6 +97,19 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
## ✅ Erledigt
- [x] **📄 `status.txt` nennt jetzt den Grund, nicht nur das Etikett** (2026-08-26)
- In der Statusdatei des Gegenbuchs stand für **jeden** Exit-2 derselbe Satz:
„BEFUND Widerspruch zwischen CRM und Gegenbuch". Ein echter Widerspruch
sah damit genauso aus wie eine quittierpflichtige Erstsiegelung.
- Aufgefallen im Betrieb: Der Betreiber las „BEFUND" auf Staging und konnte
nicht entscheiden, ob er handeln muss obwohl die Kette dort `valid:true`
meldet und der Alarm nur den erwarteten Siegelwechsel betraf. Wer nur die
Statusdatei liest (und dafür ist sie da „damit eine Überwachung sie
abgreifen kann, ohne Logs zu durchsuchen"), bekam ein Etikett ohne Inhalt.
- Der Lauf wird jetzt mitgeschnitten; die erste `ALARM:`-Zeile landet als
`Grund:` in `status.txt`. Ohne Alarm die erste Ausgabezeile.
- Datei: `tools/audit-notary/entrypoint.sh`
- [x] **⚖️ Aufsicht und Eingriff getrennt: neuer Haken „Audit-Betrieb"** (2026-08-26)
- Die DSGVO-Rolle trug `audit:*` **komplett**, also auch `audit:admin`. Ein
DSGVO-Beauftragter konnte damit `seal-backlog`, `rehash` und `cleanup`