Claude Code nutzen: Trennung von Planung und Ausführung
(boristane.com)- Der Einsatz von AI-Coding-Tools wird grundlegend neu strukturiert: Vorgestellt wird ein Workflow, der vor dem Schreiben von Code zwingend eine explizite Phase zur Überprüfung des Plans vorsieht
- Das Kernprinzip lautet: „Claude darf keinen Code schreiben, bevor der Plan freigegeben ist“. Dadurch werden strukturelle Kontrolle und ein effizienter Token-Einsatz erreicht
- Der gesamte Prozess verläuft als Kreislauf aus Research → Plan → Annotation → Todo List → Implementation → Feedback
- In jeder Phase wird rund um Markdown-Dokumente (
research.md,plan.md) zusammengearbeitet; durch Kommentare und wiederholte Überarbeitungen steigt die Qualität - Dieser Ansatz fokussiert sich darauf, die Ausführungskraft der AI und das Urteilsvermögen des Menschen zu trennen und zugleich zu verbinden, um auch in komplexen Systemen stabile und konsistente Ergebnisse zu erzielen
Überblick über den gesamten Workflow
- Über rund 9 Monate hinweg wurde Claude Code als primäres Entwicklungstool genutzt; statt des üblichen Musters „Prompt eingeben → Code generieren → wiederholt nachbessern“ wurde ein systematisches Verfahren mit getrennter Planung und Ausführung aufgebaut
- Bevor Claude Code schreibt, darf es nur auf Basis eines vom Autor geprüften und freigegebenen Plan-Dokuments (
plan.md) arbeiten - Dieser Ansatz reduziert unnötige Trial-and-Error-Schleifen, bewahrt die Entscheidungshoheit über die Architektur und maximiert die Qualität im Verhältnis zum Token-Verbrauch
Phase 1: Research
- Jede Aufgabe beginnt mit einer tiefgehenden Analyse der Codebasis
- Claude wird angewiesen, bestimmte Ordner oder Funktionen „gründlich zu lesen“ und detailliert zu analysieren
- Die Ergebnisse müssen stets in einer Datei
research.mdfestgehalten werden
- Dieses Dokument dient als Review-Oberfläche, um Claudes Verständnis zu überprüfen; Missverständnisse werden in dieser Phase korrigiert
- Da fehlerhafte Recherche zu fehlerhafter Planung und Implementierung führt, wird hier der teuerste Fehlerfaktor frühzeitig abgefangen
- So lassen sich zum Beispiel Probleme vermeiden wie das Ignorieren einer Caching-Schicht, das Nichtbeachten von ORM-Regeln oder die Erzeugung doppelter Logik
Phase 2: Planning
- Nach der Prüfung der Recherche lässt man Claude einen detaillierten Implementierungsplan (
plan.md) erstellen- Einschließlich konkreter Code-Snippets, zu ändernder Dateipfade und Trade-offs
- Statt des eingebauten Plan-Modus wird eine selbst verwaltbare Markdown-Datei verwendet
- Wenn zusätzlich eine Open-Source-Referenzimplementierung bereitgestellt wird, verbessert sich die Qualität von Claudes Plan deutlich
- Noch wichtiger als das Plan-Dokument selbst ist der anschließende Annotation-Zyklus
Annotation-Zyklus
- Der Autor öffnet
plan.mdund fügt direkt Inline-Kommentare hinzu- Korrektur falscher Annahmen, Ablehnung von Ansätzen, Ergänzung von Domain-Wissen usw.
- Zum Beispiel: „Das muss PATCH sein“, „Caching ist unnötig“, „Das Feld
visibilitysollte auf Listenebene verschoben werden“
- Anschließend wird Claude angewiesen, „das Dokument anhand der Kommentare zu aktualisieren, aber noch nicht zu implementieren“
- Dieser Kommentar-Aktualisierungs-Zyklus wird 1 bis 6 Mal wiederholt, wobei der Befehl „don’t implement yet“ eine vorzeitige Ausführung verhindert
- Das Markdown-Dokument fungiert als teilbarer Zustand, der klarer und strukturierter ist als rein dialogbasierte Anweisungen
- Durch die Iteration entwickelt sich ein allgemeiner Plan zu einer Spezifikation, die perfekt auf das reale System passt
Erstellen der Todo List
- Vor der Implementierung lässt man Claude eine detaillierte Aufgabenliste (Todo List) ergänzen
- Mit konkreten Teilaufgaben pro Schritt, um den Fortschritt nachzuverfolgen
- Da Claude erledigte Punkte markiert, bleibt der Status auch in langen Sessions leicht nachvollziehbar
Phase 3: Implementation
- Sobald alle Entscheidungen feststehen, erfolgt die Ausführung per standardisiertem Prompt
- Etwa: „Nicht anhalten, bis alle Aufgaben abgeschlossen sind“, „keine unnötigen Kommentare“, „keine Typen
any/unknown“, „fortlaufende Typechecks durchführen“ usw.
- Etwa: „Nicht anhalten, bis alle Aufgaben abgeschlossen sind“, „keine unnötigen Kommentare“, „keine Typen
- Dieser Schritt ist eine mechanische Phase, die den Plan unverändert ausführt; kreative Entscheidungen sind dann bereits gefallen
- Wer ohne Plan direkt implementiert, baut Code auf falschen Annahmen auf; deshalb ist die Regel „don’t implement yet“ ein zentraler Sicherheitsmechanismus
Feedback während der Implementierung
- Während der Ausführung wechselt der Autor in die Rolle eines Supervisors
- Feedback wird kurz und klar gegeben: „Diese Funktion fehlt“, „in die Admin-App verschieben“ usw.
- Bei Frontend-Änderungen genügen kurze Anweisungen wie „breiter“, „2px Abstand“ oder Screenshots
- Häufige Bezugnahme auf bestehenden Code hilft dabei, eine konsistente UI/UX zu erhalten
- Läuft die Arbeit in die falsche Richtung, ist
git revertund ein neuer Versuch mit kleinerem Scope oft wirksamer als schrittweises Nachbessern
Am Steuer bleiben
- Claude erhält keine vollständige Autonomie; die endgültigen Entscheidungen trifft immer der Mensch
- Aus Claudes Vorschlägen werden nur Teile ausgewählt oder diese werden geändert, gelöscht oder technisch neu definiert
- Zum Beispiel: „Beim ersten
Promise.allverwenden“, „den vierten und fünften Punkt ignorieren“ - „Download-Funktion entfernen“, „Funktionssignatur nicht ändern“, „Methode aus einer bestimmten Library verwenden“ usw.
- Zum Beispiel: „Beim ersten
- Claude übernimmt die mechanische Ausführung, der Mensch Beurteilung und Priorisierung
Eine einzige lange Session
- Von Research bis Implementierung wird alles in einer einzigen langen Session durchgehend erledigt
- Während der Session sammelt Claude fortlaufend Kontext; dank Auto-Compaction bleibt genügend Zusammenhang erhalten
plan.mdbleibt über die gesamte Session hinweg vollständig erhalten und kann jederzeit referenziert werden
Kernaussagen
- „Lies gründlich, schreibe einen Plan, verfeinere ihn mit Kommentaren und führe dann alles in einem Zug aus.“
- Auch ohne komplexe Prompts oder Systemanweisungen lässt sich durch eine disziplinierte Pipeline, die Thinking und Typing trennt, hohe Qualität sichern
- Research verhindert uninformierte Änderungen, Plan verhindert falsche Änderungen, und Annotation bringt menschliches Urteilsvermögen ein
- Die finale Ausführung erfolgt erst, nachdem alle Entscheidungen feststehen, als automatisierter Prozess, wodurch eine effiziente Kollaborationsstruktur entsteht
4 Kommentare
Ich habe mit ähnlichen Problemen ebenfalls ständig zu tun. Wenn man mit der KI nur auf Chat-Basis zusammenarbeitet, werden die Zerlegung in Arbeitseinheiten (WBS), der Fortschritt und die Dokumentation von Entscheidungen schnell unklar.
Wenn man die Planungsdatei einfach ins Repository legt und die durch die Ausführung dieses Plans entstandenen Änderungen speichern lässt, bleibt der Kontext ziemlich gut erhalten.
Das gilt nicht nur für Claude; es scheint sich allgemein auch auf andere CLI-basierte KI-Dienste anwenden zu lassen.
Hacker-News-Kommentare
Der eigentliche Kern ist nicht „plant man oder nicht“, sondern Annahmen sichtbar zu machen, bevor das Modell sie in Code gießt
LLMs scheitern weniger an Syntax als an unsichtbaren Prämissen wie Architektur oder Randbedingungen. Ein dokumentierter Plan schafft daher eine Oberfläche, auf der sich diese Prämissen debuggen lassen
printf()einen Heisenbug verschwinden lassen kannEs heißt, Claude lese nur dann nicht oberflächlich, wenn man Wörter wie „tiefgehend“ oder „detailliert“ benutzt, aber ehrlich gesagt ist intuitiv nicht nachvollziehbar, warum das so sein sollte
Ich nutze eine Struktur mit drei Dokumenttypen und zwei Skills
Specs sind die statischen Designdokumente des Projekts, Plans sind die vom LLM erzeugten Ausführungspläne, und eine Working-memory-Datei verfolgt den Fortschritt.
Mit dem Planner Skill von Gemini Pro erstelle ich neue Pläne, mit dem Implementer Skill von Codex führe ich sie aus.
So bleibt der Kontext leichtgewichtig und fokussiert, was die Effizienz erhöht. Mit den 20-Dollar-Plänen von Codex/Gemini kommt man schon schnell genug voran
Die Idee, direkt im Planungsdokument Kommentare zu hinterlassen, wirkt frisch. Mich würde interessieren, ob es eine Methode gibt, diese Kommentare separat zu speichern oder später für Reviews zu verwalten
An diesem Ansatz gefallen mir einige Dinge nicht
Erstens erzeugt der Big-Bang-Ansatz, bei dem aller Code auf einmal generiert wird, riesige Codeblöcke, die schwer zu verstehen sind. Ich halte es für besser, schrittweise zu planen und auszuführen.
Zweitens finde ich es schade, dass man zwar Feedback gibt, aber die Wissensbasis nicht aktualisiert. Man sollte Fehlerursachen festhalten, damit sie sich beim nächsten Mal nicht wiederholen.
Und schließlich fehlt jeder Hinweis auf Tests. Zumindest ein Teil von Test-driven Development (TDD) sollte enthalten sein. Es ist spannend, wie sich AI-unterstützte Entwicklung mit solchen Methoden verbinden wird
Dieser Workflow ist eigentlich die Standardmethode für Claude Code, die Anthropic empfiehlt. Der Nachteil ist allerdings, dass man von vorn anfangen muss, wenn der Plan nicht perfekt ist.
Deshalb teile ich Design → Planung → Ausführung auf mehrere Batches auf. Wenn ein Planblock unter 1.500 Zeilen bleibt, lässt sich die Komplexität leichter beherrschen.
Meine App mit 30.000 LOC hat 100.000 Zeilen Plan. Das kann man unmöglich auf einmal erzeugen
Ich arbeite nicht mit plan.md, sondern mit ausführbaren Scaffolds und Validierungsschleifen im Zentrum des Prozesses
Ich habe zusammen mit AI ein echtes Zahlungssystem namens Kolibri Tickets gebaut. Der Kern ist nicht, dass das Modell schnell Code tippt, sondern dass man Validierungsschleifen entwirft
So kommt man nicht nur zu einer „Geschwindigkeitsillusion“, sondern tatsächlich schneller zum Deployment. Ein Plan-Dokument ist eine Möglichkeit, einen gemeinsamen Zustand aufrechtzuerhalten, ein verifizierbarer Harness eine andere
Ich nutze Claude Code zur Vorbereitung von Vorlesungen
Ich schreibe Vorlesungsnotizen in Quarto und lasse Claude sie in Slidev-Folien umwandeln. Danach gebe ich Feedback, indem ich in den Folien Kommentare wie „das in zwei Folien aufteilen“ oder „hier ein Bild hinzufügen“ hinterlasse.
Solches kommentarbasiertes Feedback ist sehr mächtig. Es hilft stark bei Token-Distanz und beim Erhalt des Kontexts
# Diesen Teil in X ändern?Es gibt bereits Tools wie Amazons Kiro, Googles Antigravity, GitHubs Spec Kit und OpenSpec, die solche Funktionen bereitstellen
Der teuerste Fehlschlag beim AI-unterstützten Programmieren ist nicht ein Syntaxfehler, sondern eine Implementierung, die teilweise funktioniert, aber das Gesamtsystem zerstört
Deshalb füge ich früh eine brief.md hinzu, in der Problemdefinition, Zielmetriken und Abbruchkriterien für Features festgehalten werden. So lassen sich die Kosten verringern, die entstehen, wenn Business-Ziele und technische Umsetzung auseinanderlaufen