You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Jedes delete im CRM wird sichtbar: der Gate-Batch (#10) bekommt eine Zeile aus Espos Audit-Spur, sobald ein Datensatz verschwindet.
Money-Link
Nach buzz#29, #52 und #53 kann kein API-User mehr fremde CRM-Datensätze löschen — aber „kann nicht" ist eine Annahme, solange niemand hinsieht. Espo löscht soft: ein gelöschter Lead ist für jeden normalen Lesepfad 404, der Grabstein bleibt mit deleted: true liegen. Genau deshalb kann eine stille Löschwelle heute unbemerkt laufen: KPI-Zahlen sinken, Brief-Vorrat sinkt, niemand sieht die Ursache. Eine Zeile pro Tag schließt die Lücke zwischen „gehärtet" und „bewiesen sauber".
Espo-Rechtestand: buzz-agent löscht nichts, claude-mcp-admin löscht nichts (buzz#52), n8n-agent löscht nur ihm zugewiesene Lead/CTouchpoint (buzz#53). Ein Löschvorgang außerhalb des Funnel-Probes ist damit erklärungsbedürftig.
Quellen für die Messung (nicht geraten, in buzz#52 gefunden): ActionHistoryRecord (Espo, aber read: own für Nicht-Admins), der Grabstein deleted: true in der Datenbank, und das Access-Log des Containers (docker logs agency-crm-espocrm) mit Methode + User-Agent — dort steht jedes DELETE /api/v1/<Entity>/<id> mit Zeitstempel.
Der ACL-Wächter ([BUZZ-28] espo-acl-drift, n8n) ist das Muster: n8n misst, der Report geht in einen Kanal, Alarm nur bei Abweichung. Doktrin 3 — wiederkehrende Mechanik gehört nach n8n, nicht in den Fork.
Entscheiden und begründen, welche Quelle die Wahrheit ist: Access-Log (vollständig, aber ohne Record-Identität) vs. deleted: true (identitätsgenau, aber ohne Urheber-Zeitstempel) vs. ActionHistoryRecord (beides, aber Admin-Rechte nötig — und Admin-Rechte sind genau das, was diese Ticket-Reihe abgebaut hat).
Auftrag
Eine Messung bauen, die pro Tag beantwortet: wie viele Datensätze wurden gelöscht, von wem, welche Entity — ohne dafür einen neuen Admin-Key zu schaffen.
Ergebnis in den Gate-Batch einhängen: eine Zeile bei 0 Löschungen, eine benannte Liste sonst.
Schwelle definieren: der Funnel-Probe löscht täglich genau ein Lead + dessen Touchpoints. Alles darüber ist erklärungsbedürftig und gehört hervorgehoben, nicht nur gezählt.
Mission
Jedes
deleteim CRM wird sichtbar: der Gate-Batch (#10) bekommt eine Zeile aus Espos Audit-Spur, sobald ein Datensatz verschwindet.Money-Link
Nach buzz#29, #52 und #53 kann kein API-User mehr fremde CRM-Datensätze löschen — aber „kann nicht" ist eine Annahme, solange niemand hinsieht. Espo löscht soft: ein gelöschter Lead ist für jeden normalen Lesepfad 404, der Grabstein bleibt mit
deleted: trueliegen. Genau deshalb kann eine stille Löschwelle heute unbemerkt laufen: KPI-Zahlen sinken, Brief-Vorrat sinkt, niemand sieht die Ursache. Eine Zeile pro Tag schließt die Lücke zwischen „gehärtet" und „bewiesen sauber".Kontext
.empire/tools/ritual.sh, buzz#10) und liefert Munir eine vorgekaute Lage — der natürliche Ort für eine Löschzeile. P2: Führungsrituale auf echte Daten — Morgenbrief 08:45 + Gate-Batch 20:45 #10 gehört einem anderen Agenten; erst prüfen, ob es geschlossen ist.buzz-agentlöscht nichts,claude-mcp-adminlöscht nichts (buzz#52),n8n-agentlöscht nur ihm zugewiesene Lead/CTouchpoint (buzz#53). Ein Löschvorgang außerhalb des Funnel-Probes ist damit erklärungsbedürftig.ActionHistoryRecord(Espo, aberread: ownfür Nicht-Admins), der Grabsteindeleted: truein der Datenbank, und das Access-Log des Containers (docker logs agency-crm-espocrm) mit Methode + User-Agent — dort steht jedesDELETE /api/v1/<Entity>/<id>mit Zeitstempel.[BUZZ-28] espo-acl-drift, n8n) ist das Muster: n8n misst, der Report geht in einen Kanal, Alarm nur bei Abweichung. Doktrin 3 — wiederkehrende Mechanik gehört nach n8n, nicht in den Fork.Vorflug-Check (nach Claim, vor Arbeit)
readyund später wiederkommen — der Gate-Batch wird sonst zeitgleich von zwei Seiten editiert.deleted: true(identitätsgenau, aber ohne Urheber-Zeitstempel) vs.ActionHistoryRecord(beides, aber Admin-Rechte nötig — und Admin-Rechte sind genau das, was diese Ticket-Reihe abgebaut hat).Auftrag
Nicht-Ziele / Guardrails
Verifikation (Befehle + erwartete Ausgabe)
Definition of Done
.empire/AGENTS.mdergänzt (via PR), Issue geschlossenRechte
Chrome-MCP, Windows-MCP, Playwright, n8n-MCP,
~/.secrets/**— ohne Rückfrage. Blocker →blocker-mail.sh+ Labelblocked-munir+ weiter.Format v2 · buzz_empire 2026-08-01 (Gardener aus buzz#53)