Claude CodeKapitel 24 von 31

Test und Spe­zi­fi­ka­tion zuerst

Gleiches Kapitel, drei Tiefen. Die Wahl gilt überall und bleibt gespeichert.

Tiefe 1: Überblick · Lesezeit 6 Min. · Stand

Ob eine Aufgabe erledigt ist, entscheidet ein Maßstab. Steht er vor der Arbeit fest, misst Claude sich während der ganzen Arbeit daran. Dieses Kapitel zeigt, wie ein Test oder eine Spezifikation zu diesem Maßstab wird, mit welchen Bausteinen Claude Code ihn prüft und wann sich der Aufwand lohnt.

Warum ein Agent ohne Prüfung beim Anschein stehen bleibt, erklärt Vibe-Coding / Agentic Engineering, Kapitel 07. Die Methode selbst, mit Messungen und den Fallen beim Einrichten, beschreibt der Beitrag Erst der rote Test.

Woran Claude merkt, dass es fertig ist

Die Empfehlungen von Anthropic (externe Seite, code.claude.com) halten in einem Satz fest, wann Claude aufhört: wenn die Arbeit fertig aussieht. Bekommt Claude etwas, das mit Bestanden oder Durchgefallen antwortet, schließt sich die Schleife von selbst. Claude arbeitet, fährt die Prüfung, liest das Ergebnis und bessert nach, bis sie durchgeht.

Den Wert einer solchen Prüfung bestimmt ihr Zeitpunkt. Ein Test, den Claude nach dem Code schreibt, hält fest, was der Code schon tut. Ein Test, der vorher dasteht, beschreibt die Aufgabe. Das ist der Kern der testgetriebenen Entwicklung, und er gilt genauso für eine Spezifikation. Beide sind Formen desselben Maßstabs:

  • Ein Test ist ausführbar. Er sagt für einen Fall, was herauskommen muss, und meldet das Ergebnis über seinen Rückgabewert.
  • Eine Spezifikation beschreibt ein Vorhaben im Ganzen: welche Dateien und Schnittstellen es berührt, was dazugehört und was ausdrücklich draußen bleibt. Maschinell prüfbar wird sie dort, wo sie in einen Test mündet.

Einen eigenen Befehl für dieses Vorgehen führt die Befehlsübersicht (externe Seite, code.claude.com) nicht. Geprüft wird an drei Stellen: während der Arbeit, nach jeder Antwort und am Ende. Während der Arbeit fährt Claude die Testfälle, die im Auftrag stehen.

Testfälle gehören in den Auftrag

Die kleinste Spezifikation ist eine Handvoll Beispiele im Prompt. Die Empfehlungen (externe Seite, code.claude.com) stellen dafür zwei Aufträge nebeneinander. Der erste bestellt eine Funktion, die E-Mail-Adressen prüft. Der zweite nennt dazu drei Adressen mit dem erwarteten Ergebnis und bittet darum, die Tests nach dem Bauen auszuführen. Mit dem zweiten Auftrag weiß Claude, wann es fertig ist, und kann es selbst nachweisen.

Bei einem Fehler steht die Nachstellung am Anfang. Im Beispiel der Empfehlungen für einen Fehlerbericht verlangt der Auftrag zuerst einen Test, der am gemeldeten Fehler scheitert, und erst danach die Behebung. Geht es um Tempo oder Abdeckung, gehört eine Zahl in den Auftrag. Die Prompt-Sammlung der Doku (externe Seite, code.claude.com) rät, Kennzahl und Schwelle zu nennen, damit eindeutig ist, wann die Arbeit abgeschlossen ist.

Ein Satz im Auftrag wirkt für diese eine Antwort. Wie man ihn formuliert, damit der erste Test aus dem richtigen Grund rot ist, steht im Beitrag Erst der rote Test. Dort steht auch, warum eine Regel in der CLAUDE.md allein wenig ausrichtet.

Die Spezifikation vor der Arbeit

Für größere Vorhaben empfiehlt Anthropic, sich zuerst von Claude befragen zu lassen, das Ergebnis als SPEC.md festzuhalten und es in einer frischen Sitzung umzusetzen (Empfehlungen (externe Seite, code.claude.com)). Wie diese Befragung vor dem Plan steht, zeigt Kapitel 23, den Prompt dafür die zweite Ebene.

Zum Maßstab wird eine Spezifikation durch ihren Schluss. Die brauchbarsten stehen für sich: Sie nennen die beteiligten Dateien und Schnittstellen und sagen, was nicht zur Aufgabe gehört. Am Ende steht ein Prüfschritt, der das Feature von vorn bis hinten als funktionierend belegt. Eine gute Spezifikation endet also mit einer Prüfung von vorn bis hinten, etwa einem End-to-End-Test. Für den Test zuerst gehören außerdem Akzep­tanz­kri­te­rien hinein, also Sätze, die festhalten, wann ein Teil der Aufgabe erfüllt ist. Aus jedem lässt sich ein Test schreiben.

Ein Plan beschreibt den Weg zum Ergebnis, eine Spezifikation das Ergebnis selbst. Wie viel Papier ein Vorhaben überhaupt braucht und ab wann eine Spezifikation zu viel wird, wägt der Beitrag ADR und Spezifikation ab.

Was aus einer Spezifikation in die Prüfungen von Claude Code eingeht und was jede Prüfung ansieht. Links eine Spezifikation in der Datei SPEC.md mit vier Teilen: Dateien und Schnittstellen, was nicht dazugehört, ein Prüfschritt von vorn bis hinten und die Akzeptanzkriterien. In der Mitte drei Prüfungen. Aus dem Prüfschritt und den Akzeptanzkriterien werden Tests, die Claude während der Arbeit selbst fährt. Sie melden ihr Ergebnis über den Rückgabewert des Testlaufs. Die Akzeptanzkriterien werden außerdem zur Bedingung für /goal, und neben /goal kann ein Stop-Hook am Ende jeder Antwort entscheiden, ob Schluss ist. /goal liest dabei, was im Gespräch steht, ein Stop-Hook fährt ein eigenes Skript. Am Ende ruft man /verify von Hand auf. Es baut und startet die Anwendung und prüft die Änderung dort, ohne auf Tests auszuweichen. SPEC.MD PRÜFUNG WAS SIE ANSIEHT Dateien und Schnittstellen was nicht dazugehört Prüfschritt von vorn bis hinten Akzeptanzkriterien WÄHREND DER ARBEIT Tests Claude fährt sie selbst Rückgabewert des Testlaufs NACH JEDER ANTWORT /goal oder Stop-Hook entscheiden, ob Schluss ist /goal: was im Gespräch steht Stop-Hook: eigenes Skript AM ENDE /verify von Hand aufgerufen die laufende Anwendung, ohne auf Tests auszuweichen
Claude Code prüft an drei Stellen. Die Testfälle aus dem Auftrag fährt Claude während der Arbeit selbst, eine Zielbedingung oder ein Stop-Hook urteilt nach jeder Antwort, und /verify ruft man am Ende selbst auf, um die Änderung an der laufenden Anwendung zu prüfen.

eigene Darstellung nach den Empfehlungen von Anthropic und der Doku zu /goal, Hooks und Skills, Stand 12.10.2026

Der Test als Abschlussbedingung

Für Arbeit über viele Antworten hinweg gibt es seit Version 2.1.139 vom 11.05.2026 den Befehl /goal (Versionsliste (externe Seite, code.claude.com)). Am Ende jeder Antwort prüft ein zweites Modell eine Bedingung, und Claude arbeitet weiter, bis sie erfüllt ist. Die Doku zu /goal (externe Seite, code.claude.com) nennt als Einsatz ausdrücklich die Umsetzung eines Entwurfsdokuments, bis alle Akzep­tanz­kri­te­rien gelten. Eine Spezifikation mit Akzep­tanz­kri­te­rien lässt sich damit direkt als Ziel setzen.

Eine Bedingung, die über viele Antworten hinweg hält, hat laut Doku meist drei Teile:

  • einen messbaren Endzustand, etwa ein Testergebnis oder den Rückgabewert eines Baus,
  • die Angabe, wie Claude ihn belegt, etwa dass npm test mit 0 endet,
  • die Auflagen für den Weg dorthin, etwa dass keine andere Testdatei geändert wird.

Der Bewerter liest dabei nur, was im Gespräch steht. Die Bedingung verlangt deshalb etwas, das Claudes eigene Ausgabe zeigen kann. Wie /goal im Einzelnen arbeitet, steht in Kapitel 28.

Fester bindet ein Stop-Hook. Er läuft am Ende jeder Antwort, fährt ein eigenes Skript und lässt Claude weiterarbeiten, bis das Skript zufrieden ist. Die Anleitung zu Hooks (externe Seite, code.claude.com) zeigt dazu eine Form, bei der ein Subagent die Tests selbst ausführt, bevor Claude aufhören darf. Diese Agent-Hooks sind als experimentell gekennzeichnet. Die Formen vergleicht die zweite Ebene, die Mechanik der Hooks erklärt Kapitel 18.

Am Ende die laufende Anwendung

Ein grüner Testlauf belegt, was die Tests prüfen. Ob die Anwendung als Ganzes tut, was sie soll, ist eine weitere Frage. Der Beitrag Erst der rote Test beschreibt eine Untersuchung, in der Agenten fast die volle Punktzahl erreichten, sobald die Prüfung im Arbeitsablauf lag. Die geforderte Bibliothek war dabei tot oder fehlte ganz.

Für diesen letzten Blick dienen zwei mitgelieferte Skills. /run startet die Anwendung und bedient sie, damit man eine Änderung arbeiten sieht. /verify baut und startet sie und beobachtet das Ergebnis, ohne auf Tests oder Typprüfungen auszuweichen (Doku zu Skills (externe Seite, code.claude.com)). Die Empfehlungen (externe Seite, code.claude.com) setzen /verify an den Schluss: Man ruft es selbst auf, nachdem Claudes eigene Prüfung bestanden ist. Seit Version 2.1.215 vom 19.07.2026 startet Claude /verify nur noch auf Aufruf. Wie man den beiden Skills den Start eines Projekts beibringt und wie daraus eine Prüfung vor jedem Commit wird, zeigt die zweite Ebene.

Wann sich das lohnt

Test und Spezifikation zuerst lohnen sich, wo eine Maschine entscheiden kann, ob die Aufgabe erledigt ist:

  • Fehlerbehebung: Der Test, der den Fehler nachstellt, belegt danach die Behebung.
  • Neue Funktion mit klaren Fällen: Drei Beispiele im Auftrag kosten einen Satz.
  • Vorhaben über mehrere Dateien: Befragung, Spezifikation, frische Sitzung, und die Akzep­tanz­kri­te­rien als Bedingung für /goal.
  • Lauf ohne Zuschauer: Zielbedingung oder Stop-Hook, damit der Lauf an der Prüfung endet.

Weniger bringt das Vorgehen in drei Fällen:

  • Beim Erkunden. Wer erst herausfinden will, wie sich eine Schnittstelle verhält, kennt das erwartete Ergebnis noch gar nicht. Dort ist ein Wegwerfversuch mit anschließendem Test billiger.
  • Bei Gestaltung. Für eine Oberfläche ist ein Bildschirmfoto der bessere Maßstab. Die Empfehlungen lassen Claude das Ergebnis aufnehmen und mit dem Entwurf vergleichen.
  • Bei Tests, die Claude nebenbei anlegt. Eine Untersuchung fand, dass ihre Menge das Ergebnis kaum verändert, gemessen an sechs Modellen (Erst der rote Test). Den Unterschied macht ein Test, der vor der Arbeit feststeht.

Wie ein Prüfer mit frischem Kontext die fertige Arbeit nachsieht, zeigt Kapitel 25.

Quellen

12 Einträgealle erreichbar

Erreichbarkeit automatisch geprüft

  • Dokumentationerreichbar

    Anthropic, Best practices for Claude Code (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Sammlung der Muster, die sich bei Anthropic intern und bei Anwendern bewährt haben. Der erste Abschnitt der Seite ist zugleich ihre stärkste Aussage: Ein Agent braucht eine Prüfung, die er selbst fahren kann, sonst ist der Mensch die Prüfschleife und jeder Fehler wartet darauf, bemerkt zu werden. Die Seite nennt vier Stufen, wie hart die Prüfung das Ende einer Antwort blockiert, vom Satz im Auftrag über eine Zielbedingung und einen Stop-Hook bis zum zweiten Modell, das den eigenen Befund zu widerlegen versucht. Sie ist außerdem die Quelle für den Unterschied zwischen einer Projektanweisung und einem Hook: Die eine ist beratend, der andere läuft.

  • Dokumentationerreichbar

    Anthropic, Commands (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Herstellerreferenz aller Befehle in Claude Code, eingebaute Befehle wie mitgelieferte Skills. Sie erklärt, dass ein Befehl nur am Anfang einer Nachricht erkannt wird, der Rest als Argument gilt, und dass Befehle während einer laufenden Antwort in die Warteschlange kommen.

  • Dokumentationerreichbar

    Anthropic, Prompt library (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Sammlung von Prompts zum Kopieren in der Doku von Claude Code, sortiert nach Aufgabe und Rolle. Der Abschnitt über die Muster dahinter rät unter anderem, im selben Prompt eine Prüfung mitzubestellen, die fertige Änderung mit /verify an der laufenden Anwendung zu prüfen und bei Tempo oder Abdeckung Kennzahl und Schwelle zu nennen, damit eindeutig ist, wann die Arbeit fertig ist.

  • Dokumentationerreichbar

    Anthropic, Keep Claude working toward a goal (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Dokumentation zur Zielbedingung, der zweiten der vier Härtestufen. Daran hängt ein Ratschlag zur Formulierung: Der Bewerter urteilt allein über das, was in der Unterhaltung steht, ohne selbst Befehle auszuführen oder Dateien zu lesen. Als Beispiel für eine Nebenbedingung nennt die Seite ausgerechnet den Fall, um den es beim testgetriebenen Arbeiten geht, nämlich dass keine weitere Testdatei angefasst wird.

  • Dokumentationerreichbar

    Anthropic, Claude Code changelog (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Versionsliste von Claude Code mit Neuerungen, Verbesserungen und Fehlerbehebungen je Fassung, erzeugt aus der Datei CHANGELOG.md im GitHub-Repository. Jede Fassung steht mit ihrem Erscheinungsdatum da, am 09.10.2026 zuoberst 2.1.296 vom selben Tag.

  • Dokumentationerreichbar

    Automate actions with hooks (Claude Code Docs, Anthropic) (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Anleitung zu Hooks: Shell-Befehle, die Claude Code an festen Stellen der Sitzung selbst ausführt, etwa nach einer Dateiänderung, am Ende einer Antwort oder vor einer Rückfrage, mit Beispielen zum Formatieren, Benachrichtigen und Sperren.

  • Dokumentationerreichbar

    Anthropic, Extend Claude with skills (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Herstellerdokumentation zu Skills, den abrufbaren Arbeitsanweisungen neben dem Modell. Sie liefert das Kostenargument dieses Kapitels: Der Rumpf eines Skills lädt erst beim Gebrauch, umfangreiches Nachschlagematerial kostet also bis dahin fast nichts, und sobald er geladen ist, bleibt er über die folgenden Runden stehen. Dazu die Steuerung darüber, wer ihn aufrufen darf, und der Maßstab für die Wirkung: Dass ein Skill anspringt, heißt nur, dass er gefunden wurde.

  • Dokumentationerreichbar

    Anthropic, Tools reference (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Herstellerdokumentation zu den eingebauten Werkzeugen von Claude Code: eine Tabelle aller Werkzeuge mit der Angabe, ob sie vor dem Einsatz fragen, das Regelformat für Berechtigungen und Hooks und je Werkzeug sein Verhalten, darunter Zeit- und Ausgabegrenzen der Shell, die Prüfungen vor einer Änderung, die Grenzen beim Lesen und die Arbeitsweise von Websuche und Webabruf.

  • Dokumentationerreichbar

    Anthropic, Hooks reference (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Herstellerdokumentation zu den Ereignissen, an denen sich eigene Programme einhängen lassen. Für das Gedächtnis sind zwei Stellen entscheidend, und sie sagen das Gegenteil dessen, was man erwartet. PreCompact kann das Verdichten anhalten, mit Exit-Code 2 oder "decision": "block", aber nichts beisteuern: Seine Ausgabe geht ins Debug-Protokoll. PostCompact hat laut Tabelle keine Entscheidungsgewalt und dient nur Nebenwirkungen wie Protokoll oder Aufräumen; es bekommt die fertige Zusammenfassung als compact_summary. Einspeisen kann SessionStart, dort fügt das Feld hookSpecificOutput.additionalContext dem Kontext etwas hinzu, und dieses Ereignis kennt fünf Auslöser, darunter ausdrücklich "compact". Der Rückweg nach dem Verdichten führt damit über den Sitzungsstart statt über das Verdichten selbst. Für den Auto-Modus kann ein PostToolUse-Hook dem Ergebnis eines Aufrufs im Feld classifierContext eine Notiz für den Klassifikator anhängen. Kommt der Hook aus den Einstellungen, gilt sie als ungeprüfter Hinweis der Anwendung und nie als Wille des Menschen. Seit Version 2.1.295 kann ein Befehls- oder HTTP-Hook mit onFailure: "block" festlegen, dass sein Scheitern die Handlung abweist: ein Rückgabewert außer 0 und 2, ein Skript, das nicht startet, eine Zeitüberschreitung. Am Ende einer Antwort und bei Hooks im Hintergrund wirkt die Einstellung nicht. Abgerufen am 09.10.2026.

  • Dokumentationerreichbar

    Anthropic, Common workflows (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Herstellerdokumentation mit Rezepten für den Alltag mit Claude Code: Prompts zum Erkunden von Code, Beheben von Fehlern, Umbauen, Testen und Erstellen von Pull Requests, dazu das Fortsetzen früherer Sitzungen, parallele Sitzungen in Worktrees, Planen vor dem Bearbeiten, Recherche über Subagenten und Claude in Skripten.

  • Artikelerreichbar

    Anthropic, Claude Code: Best practices for agentic coding (Archivfassung) (externe Seite, web.archive.org)

    web.archive.orggeprüft 25.10.2026

    Anthropics erster Beitrag mit Empfehlungen für Claude Code, erschienen am 18.04.2025 im Blog Engineering at Anthropic, hier in der Archivfassung vom 20.04.2025. Er nennt testgetriebene Entwicklung einen bevorzugten Ablauf für Änderungen, die sich mit Tests leicht prüfen lassen: Tests aus Paaren von Eingabe und Ausgabe schreiben, rot laufen lassen und committen, danach Code schreiben, bis alle Tests bestehen, ohne die Tests zu ändern. Unabhängige Subagents sollen dabei prüfen, ob sich die Umsetzung an die Tests überanpasst. Die alte Adresse leitet heute auf die Seite mit den Empfehlungen in der Doku um, die den Namen testgetriebene Entwicklung nicht mehr verwendet.

  • Dokumentationerreichbar

    Kiro, Correctness with Property-based tests (externe Seite, kiro.dev)

    kiro.devgeprüft 25.10.2026

    Die Doku zu Kiros Prüfung, ob eine Umsetzung tut, was die Spezifikation verlangt, Stand Oktober 2026. Kiro leitet aus Anforderungen in der Satzform EARS Eigenschaften ab, prüft sie mit Hunderten oder Tausenden zufälliger Eingaben und verkleinert einen gefundenen Verstoß auf die kleinste auslösende Eingabe. Laut der Tabelle der Seite gibt es das allein in Kiros IDE, und die Tests sind in der Voreinstellung freiwillig. Die Seite nennt ihre Grenzen selbst: Bestandene Tests erhöhen das Vertrauen, garantieren aber keine Fehlerfreiheit, und eine zu schwache Eigenschaft besteht trotz falschen Verhaltens.

↑↓ auswählenEnter öffnenDie Suche läuft im Browser. Nichts wird übertragen.