Was es ist und warum es zählt
Du bittest um eine Änderung. Nach einer Weile schreibt Claude „fertig“. Du öffnest die App, und es funktioniert nicht, oder nur halb. Am Anfang passiert das oft, und die erste Reaktion ist der Gedanke, dass es dich angelogen hat.
So ist es nicht. Claude hört auf, wenn die Arbeit fertig aussieht, und für Claude endet die Arbeit oft, wenn der Code geschrieben ist. Wenn niemand verlangt hat, es zu testen, ist „sieht fertig aus“ das einzige Signal, das es hat. Also bleibt die Kontrolle an dir hängen, später, wenn du vielleicht schon an etwas anderes denkst.
Die Lösung ist eine einzige Zeile, in der Datei, die Claude Code zu Beginn jeder Sitzung liest: der CLAUDE.md. Die Zeile ändert, was „fertig“ bedeutet. Es heißt nicht mehr „ich habe den Code geschrieben“, sondern „ich habe es funktionieren sehen und zeige dir den Beweis“. Ich nenne das den Beleg.
Das zählt, weil du einen Beleg schnell prüfen kannst. Jedes Mal alle Tests selbst zu wiederholen kostet viel mehr, und irgendwann hörst du damit auf.
1. Die Zeile in der CLAUDE.md
Die CLAUDE.md ist eine Textdatei mit den Regeln, die Claude in jeder Sitzung beachten soll. Die des Projekts liegt im Hauptordner des Projekts: CLAUDE.md oder .claude/CLAUDE.md. Wenn es sie nicht gibt, leg sie an.
Am einfachsten geht es direkt in Claude Code: Tipp /memory. Du siehst die Memory-Dateien, auch die, die es noch nicht gibt. Wähl die des Projekts: Wenn sie nicht existiert, wird sie angelegt und in deinem Editor geöffnet. Hat das Projekt noch keine CLAUDE.md, kannst du auch /init ausführen: Claude schaut sich den Code an und bereitet dir eine erste Version vor. Dann fügst du die Zeile hinzu.
Sag nie "fertig" ohne Beweis: die Tests, die du ausgeführt hast, mit ihrem Ergebnis, ein Screenshot, wenn es eine Oberfläche gibt, der Befehl, mit dem du es geprüft hast. Wenn du es nicht prüfen konntest, schreib mir "nicht verifiziert" und warum.
Jeder Teil hat einen Grund:
- Die Tests mit Ergebnis: Claude sagt dir, was es geprüft hat und wie es ausgegangen ist, nicht nur, dass es sie ausgeführt hat.
- Der Screenshot, wenn es eine Oberfläche gibt: Ein Test kann auch bestehen, wenn ein Button außerhalb des Bildschirms gelandet ist.
- Der Befehl, den es benutzt hat: So kannst du genau dieselbe Prüfung selbst wiederholen.
- „Nicht verifiziert“ und warum: Das ist der Ausweg. Ohne ihn drängst du Claude, trotzdem „fertig“ zu sagen. Mit ihm weißt du sofort, wo du selbst hinschauen musst.
Zum Screenshot: Claude Code kann Bilder ansehen, aber um selbst einen zu machen, braucht es einen Weg, die App zu sehen, zum Beispiel einen mit Claude Code verbundenen Browser oder einen Simulator. Wenn es keinen hat, schreibt es für diesen Teil „nicht verifiziert“. Das ist in Ordnung: Dann weißt du es wenigstens.
2. Wie ich sie prüfe
Eine neue Sitzung und eine Frage
Ich speichere die Datei und öffne eine neue Sitzung, weil die CLAUDE.md zu Beginn der Sitzung gelesen wird. Dann frage ich:
Wann ist etwas für dich fertig? Antworte mit den Regeln, die in deiner CLAUDE.md stehen.
Wenn es die Regel nicht wiederholt, ist es nicht die richtige Datei, oder sie liegt nicht im Projektordner. Zur Kontrolle tippst du /context: Unter Memory files siehst du, welche Memory-Dateien geladen wurden. Steht deine CLAUDE.md dort nicht, sieht Claude sie nicht.
Eine kleine Aufgabe
Ich gebe Claude etwas Kleines, das sich leicht prüfen lässt, zum Beispiel:
Korrigiere die Fehlermeldung beim Login, wenn die E-Mail leer ist.
Wenn es „fertig“ sagt, prüfe ich, ob alle drei Dinge da sind: Tests und Ergebnis, Screenshot, Befehl. Fehlt eines und steht kein „nicht verifiziert“ mit Begründung da, ist der Beleg unvollständig.
Ich führe seinen Befehl noch einmal aus
Ich kopiere den Befehl, den es geschrieben hat, und führe ihn selbst im Terminal aus. Wenn bei mir ein anderes Ergebnis herauskommt, zählt der Beleg nicht. Das musst du nicht jedes Mal machen, aber die ersten Male schon: So findest du heraus, ob du seinen Belegen trauen kannst.
Ich schaue mir den Screenshot an
Er muss den richtigen Bildschirm zeigen, nicht irgendeine Seite. Beim Login-Beispiel: das leere E-Mail-Feld und darunter die Fehlermeldung. Zeigt er die Startseite, beweist er nichts.
3. Wenn das Projekt keine Tests hat
Ohne Tests gibt es den ersten Teil des Belegs nicht. Bitte Claude als Erstes darum:
Schreib einen Test für das, was du gerade gemacht hast, führ ihn aus und zeig mir, dass er besteht. Dann mach den Code absichtlich kaputt und zeig mir, dass der Test fehlschlägt.
Der zweite Teil ist der entscheidende. Ein Test, der nie fehlschlägt, beweist nichts: Er besteht, egal ob der Code funktioniert oder nicht. Wird der Test rot, wenn der Code kaputt ist, prüft er wirklich etwas.
Dann lass Claude den Code wiederherstellen:
Stell den Code jetzt wieder her, führ den Test erneut aus und zeig mir, dass er wieder besteht.
Und damit Claude beim nächsten Mal nicht raten muss, wie man die Tests startet, lass es in die CLAUDE.md schreiben:
Füg der CLAUDE.md den genauen Befehl hinzu, mit dem man die Tests dieses Projekts startet.
4. Wenn es „fertig“ ohne Beweis sagt
Das passiert auch mit der Regel. Antworte einfach:
Beweis?
Meistens reicht das. Wenn es wieder passiert:
Lies die Regeln in der CLAUDE.md noch einmal und gib mir das "fertig" noch einmal, mit Beleg.
Wenn Claude sie weiter überspringt, schau, wie lang deine CLAUDE.md ist. In einer Datei voller Regeln gehen die wichtigen unter: Halt sie kurz und streich, was Claude selbst aus dem Code herauslesen kann. Wenn ihm eine einzelne Zeile immer wieder entgeht, kannst du sie hervorheben, zum Beispiel mit WICHTIG davor. Nur diese eine: Wenn du alles hervorhebst, sticht nichts heraus.
Häufige Fehler
- Die Regel in eine Datei schreiben, die Claude nicht liest, etwa die README oder eine separate Notiz. Sie gehört in die CLAUDE.md des Projekts, und mit /context prüfst du, ob sie geladen ist.
- „Nicht verifiziert“ streichen, um immer ein „fertig“ zu bekommen. Lass es drin: Das ist der Teil, der Claude ehrlich bleiben lässt, wenn es nicht prüfen kann.
- Den Beleg lesen, ohne ihn zu prüfen. Die ersten Male führst du den Befehl selbst aus und schaust dir den Screenshot genau an.
- Tests akzeptieren, die immer bestehen. Lass Claude den Code absichtlich kaputt machen und schau, dass der Test fehlschlägt.
- Erwarten, dass die Regel sofort in der schon offenen Sitzung gilt. Öffne eine neue Sitzung und stell die Kontrollfrage.
- Die CLAUDE.md mit Regeln vollstopfen, bis die Beweis-Regel untergeht. Halt sie kurz und konkret.
Checkliste
- Die Zeile steht in der CLAUDE.md des Projekts
- In einer neuen Sitzung wiederholt Claude die Regel
- Jedes „fertig“ kommt mit Tests und Ergebnis, Screenshot und Befehl
- Ich habe seinen Befehl mindestens einmal selbst ausgeführt
- Der Test schlägt fehl, wenn der Code kaputt ist
- Wenn es nicht prüfen kann, schreibt es „nicht verifiziert“ und warum
Häufige Fragen
Wenn es „fertig“ ohne Beweis sagt, lügt es mich dann an?
Nein. Ein „fertig“ ohne Beweis ist keine Lüge: Für Claude endet die Arbeit, wenn der Code geschrieben ist. Die Regel verschiebt die Ziellinie auf den Moment, in dem es ihn funktionieren gesehen hat.
Kann ich mit der Regel in der CLAUDE.md sicher sein, dass es das immer macht?
Nein. Claude liest die CLAUDE.md und versucht, sie zu befolgen, aber sie ist eine Anleitung, keine Sperre. Wenn du eine Kontrolle willst, die nicht von Claude abhängt, gibt es Hooks: Befehle, die Claude Code zu festen Zeitpunkten ausführt, egal was Claude entscheidet. Zum Beispiel einer, der die Tests ausführt und Claude nicht abschließen lässt, bis sie bestehen. Für den Anfang reicht die Zeile.
Und wenn meine App keine Oberfläche hat?
Dann brauchst du keinen Screenshot: Die Regel verlangt ihn nur, wenn es eine Oberfläche gibt. Es bleiben die Tests mit Ergebnis und der Befehl. Bei einem Skript ist auch die Ausgabe des ausgeführten Befehls ein guter Beweis.
Muss ich sie in jedes Projekt einfügen?
Wenn du sie überall willst, schreib sie in ~/.claude/CLAUDE.md: Das ist deine persönliche Datei, und Claude Code liest sie in allen Projekten auf deinem Computer. Die in der CLAUDE.md des Projekts gilt nur dort.