Ich habe meinem KI-Assistenten mit Nachdruck eine Regel gegeben; elf Tage später wurde sie wieder gebrochen. Eine Prüfung aller zehn harten Regeln zeigte den Grund: Gehalten haben die im Code erzwungenen, und die zwei, die immer wieder brachen, waren nur Text.
Am 3. September habe ich Claude gebeten, mir jedes Dokument, das Claude für mich schreibt, als anklickbare Karte im Chat zu übergeben: „now and always“, so steht es bis heute in Claudes Gedächtnis über mich. Claude trug die Regel in mein Regelwerk ein, die Markdown-Datei, die zu Beginn jeder Sitzung gelesen wird.
Am 14. September stellte Claude ein 14-seitiges Review-Paket fertig und nannte mir einen Ordnerpfad. Meine Notizen halten meine Worte fest: „Why do you not present it as a card where I can click?“ Die Reaktion war, die Regel zu den harten Regeln hinaufzuschieben und ein ALWAYS davorzusetzen: sie lauter zu sagen.
Zehn Regeln, eine Frage
Am nächsten Tag prüfte Claude alle zehn harten Regeln mit einer Frage: Was außer der Aufmerksamkeit des Assistenten verhindert einen Verstoß? Erzwungen hieß: Code verweigert die falsche Aktion, durch einen Hook (ein Skript, das Claude Code vor jedem Werkzeugaufruf ausführt), einen Befehl, der sich weigert, einen Datenbank-Trigger. Entdeckt hieß: Eine geplante Prüfung findet den Verstoß hinterher.
Vier Regeln waren erzwungen (eine davon durch ein Auffangnetz, das einen Fehler repariert), vier wurden entdeckt, zwei hatten nichts. Beide waren mehrfach gebrochen worden: die Karten-Regel und eine Datenschutzregel, die ich hier abstrakt lasse. Die Prüfnotiz benennt den Mechanismus: „A rule with no enforcement gets broken, gets restated more forcefully, and gets broken again.“
Null in 635 Sitzungen
Am anderen Ende stand die Analyse vom 2. September: In 635 archivierten Sitzungen aus neunzig Tagen hatte kein Werkzeugaufruf die drei wichtigsten Regeln gebrochen, darunter: nie in meinem Namen eine Mail senden. Nicht weil Claude sorgfältig war, sondern weil mein Mail-Werkzeug nur einen vorhandenen Entwurf sendet, und nur mit ausdrücklichem Flag auf einem Rechner mit einer Einstellung, die kein Rechner hat. Ein Code-Kommentar erklärt, warum: Ein Modell „cannot talk its way past it, because the switch is not in the conversation.“
Regeln steigen auf
Also kamen die Korrekturen in den Code, und das Regelwerk bekam eine Regel über Regeln: Jede harte Regel nennt ihren Durchsetzungspunkt. Die Datenschutzregel bekam einen Guard im Code gegen den Verstoß, den es schon gegeben hatte. Die Karten-Regel bekam eine Warnung, keine Sperre, wenn Claude eine Antwort beendet und ein geschriebenes Dokument nicht übergeben hat: Nicht jede Datei ist ein Ergebnis. Auch eine entdeckte Regel stieg auf: Seit dem 18. September verweigert der Guard von Hand geschriebenen Code auf meinen Servern, nachdem der Abgleich jedes Servers mit seinem Repository aus diesem Grund zum fünften Mal in jenem Quartal rot geworden war.
Wo Anweisungen wohnen
Ebenfalls am 15. September las Claude das Account-Gedächtnis (was Claude in jedem Chat über mich weiß, auch auf dem Handy) neben dem Regelwerk. Sie widersprachen sich an sechs Stellen. Drei Regeln, darunter „nie Mail senden“, standen nur im Regelwerk; im Handy-Chat gab es sie also nicht.
Die Lösung ordnet jede Anweisung nach Reichweite, unter einer Regel: ein Fakt, ein Zuhause; muss ein Fakt an zwei Stellen stehen, verweist die zweite nur, statt ihn zu wiederholen. Eine neue Datei in git, die ein Hook in jede Sitzung einspielt, ging am selben Tag live.
Das Muster
Wenn eine Regel zweimal gebrochen wird, mach den falschen Weg unerreichbar – und gib jedem Fakt ein Zuhause. Claude hat beide Text-Regeln gebrochen, aber auch die Prüfung gemacht und die Guards samt Tests geschrieben. Eine Regel lauter zu sagen hat nichts geändert, eine Verweigerung im Code schon. Eine reine Text-Regel ist in den Worten der Prüfung „a preference stated emphatically“, und so nenne ich sie jetzt.
Manches davon ist noch ein Wunsch. Die Hooks laufen nur in Claude Code auf Laptop und Heimserver; am 23. September zeigte ein Test, dass Sitzungen in der Desktop-App an ihnen vorbeilaufen. Nichts Maschinelles vergleicht das Account-Gedächtnis mit dem Regelwerk, und jede Korrektur im Gedächtnis mache ich von Hand. Und das Regelwerk wächst nach: Am 26. Juli habe ich es von 392 auf 242 Zeilen gekürzt, inzwischen hat es wieder 379 Zeilen (398 vor dem Aufräumen am 12. Oktober).
Teil 7 von zwölf in der Serie darüber, wie ich mein AI OS gebaut habe. Der Anfang: das Vorwort.
Als Nächstes: Die Secrets sind nicht durch etwas durchgesickert, das ich getippt habe, sondern durch Antworten.
Anhang – für alle, die selbst bauen
- Stell jede Regel auf eine von drei Sprossen: erzwungen (etwas verweigert), entdeckt (eine geplante Prüfung findet den Verstoß hinterher), nur Aufmerksamkeit. Schreib die Antwort neben die Regel.
- Wenn eine Regel zweimal bricht, heb sie eine Sprosse höher, statt sie neu zu formulieren.
- Leg die Verweigerung ins Werkzeug, wo du kannst. Ein Schalter, den das Modell nicht setzen kann, hält in jedem Client; ein Hook nur dort, wo der Client Hooks ausführt.
- Prüf, ob der Durchsetzungspunkt die Regel umsetzt. Eine meiner Regeln verlangte ein Feld in jeder Task-Notiz; der einzige Skill, der sie anlegen durfte, kannte es nicht.
- Warne, wo die Regel Urteilsvermögen braucht, und blockiere, wo sie keines braucht.
- Ordne Anweisungen nach Reichweite: das Account-Gedächtnis für alles, was überall gelten muss, eine beim Sitzungsstart eingespielte Datei für Sitzungen mit Shell, das Regelwerk für Sitzungen, die es lesen können, Skills für Abläufe.
- Schau dir an, was das Modell tatsächlich lädt, nicht, was du installiert zu haben glaubst. Am 10. September zeigte mir die Kontextansicht von Claude Code jeden Skill doppelt, über 32 alte Links in meine Arbeitskopie.
- Was ich stattdessen erwogen habe: nachdrücklichere Formulierungen (versucht; die Karten-Regel brach wieder), jede Regel in jeden Speicher (Widersprüche statt Lücken) und alles in Hooks blockieren (bei Urteilsfragen oft falsch und in der Desktop-App blind). Gewählt habe ich Code für jede zweimal gebrochene Regel, einen Besitzer pro Fakt und ein ehrliches „nur Aufmerksamkeit“ für den Rest; so landet die Mühe dort, wo es schon Verstöße gab.