KI-News · Werkzeuge

Ponytail oder /simplify:
Vorbeugen oder Aufräumen.

13. September 2026 · Lesezeit ca. 11 Minuten

Beide Werkzeuge werben mit schlankerem Code. Nur greifen sie an verschiedenen Stellen im Arbeitsablauf ein. Ponytail ist ein Skill, der schon beim Schreiben fragt, ob der Code überhaupt nötig ist. /simplify ist ein Claude-Code-Befehl, der erst danach kommt und den fertigen Diff aufräumt. Ich habe dieselbe Aufgabe dreimal an PlantWiz gebaut, um zu sehen, was das in der Praxis unterscheidet.

Wenige ausgewählte Holzbausteine stehen einer großen Konstruktion gegenüber, die nachträglich bearbeitet wird.

Die Verwechslung liegt nahe, weil beide Werkzeuge dasselbe Wort im Mund führen: „vereinfachen“. Ponytail ist eine kurze Prüfleiter, die ein Agent vor dem Schreiben durchläuft: Gibt es das schon? Reicht eine Standardfunktion? Braucht es das überhaupt? /simplify dagegen ist ein Review-Befehl, der nach dem Schreiben auf den entstandenen Diff schaut und nach Wiederverwendung, Redundanz und unnötiger Komplexität sucht. Eine Frage steht vor dem Bauen, eine danach, und beide führen trotz desselben Ziels zu sehr unterschiedlichen Ergebnissen.

Transparenzhinweis: Alle Messungen stammen aus einem Projekt: PlantWiz, einer produktiven Vue-3-Anwendung mit Node-Backend. Ich habe drei isolierte Git-Worktrees vom selben Commit angelegt und dieselbe Aufgabe darin unabhängig voneinander umsetzen lassen: einmal ohne Zusatzwerkzeug, einmal mit installiertem Ponytail-Skill, einmal ohne Werkzeug und anschließend mit /simplify nachbearbeitet. Die Werte sind ein Fallbeispiel, keine allgemeingültige Benchmark.

Diese Zahl allein ist irreführend. /simplify hat in meiner Messung ordentlich gearbeitet, nur an einer anderen Stelle als Ponytail, wie sich weiter unten zeigt.

Die Testaufgabe

Ticket, so knapp wie im Alltag üblich: „Sortierfunktion für die Pflanzenliste: Nutzer sollen die Pflanzen in ihrem Garten nach Name, Pflanzdatum oder Standort sortieren können.“ Bewusst eine offene Aufgabe ohne technische Vorgabe, damit beide Werkzeuge etwas zu tun haben. In PlantWiz gab es dafür noch keinen Code, aber ein bereits bestehendes Sortiermuster in derselben Datei (Sidebar.vue, die die Pflanzen eines Gartens nach Beet gruppiert auflistet) und einen bestehenden Test dafür.

VarianteDateienZeilenZeichen (neuer Code)
Ohne Werkzeug (Basis)41736.072
Mit Ponytail3421.501
Basis, danach /simplify41705.980

Ponytail: die Frage kommt vor dem Code

Empfehlung

Der „faule Senior-Entwickler“ als Skill

Ponytail auf GitHub · Skill für Claude Code, Codex, Cursor, Gemini CLI u. a.

Ponytail ist ausführlich im letzten Beitrag getestet. Kurz zusammengefasst: eine Skill-Datei mit einer Prüfreihenfolge, die ein Agent vor dem Schreiben durchläuft: existiert die Funktion schon, reicht eine Standardfunktion, wird sie überhaupt gebraucht. Die Leiter greift in den Entwurf ein, bevor eine einzige Zeile Code entsteht.

An der Sortieraufgabe landete Ponytail auf Sprosse 4 („native Plattformfunktion reicht“) kombiniert mit Sprosse 2 („existiert das schon im Repository“): Ein natives <select> statt einer Dropdown-Bibliothek, und die Vergleichsfunktion des Sortierens wurde am bestehenden Array.sort-Muster der Datei ausgerichtet, statt neu zu erfinden. Ergebnis: 42 statt 173 Zeilen, kein neuer Store, keine neue Komponente, keine neue Abhängigkeit.

Die Basisvariante ohne Leiter hatte dagegen zusätzlich eine komplette zweite, parallele Darstellung gebaut: eine flache Liste über alle Pflanzen des Gartens für die neuen Sortiermodi, mit eigenem Markup, eigenen CSS-Klassen und einem eigenen Test. Fachlich richtig, nur eben mehr, als das Ticket verlangt hätte, und genau diesen Bau hat die Ponytail-Leiter verhindert, indem sie das bestehende Gruppierungs-Layout beibehielt und nur die Sortierreihenfolge innerhalb der Gruppen änderte.

Der entfallene Test für die parallele Darstellung ist dabei kein Vorteil an sich. Die Sortierfunktion hat drei neue, von außen sichtbare Fälle; sie brauchen weiterhin Tests. In diesem Fall würde ich den bestehenden Test um Name, Pflanzdatum und Standort erweitern, statt den Testaufwand pauschal zu reduzieren.

Aber hier zeigt sich auch die Kehrseite: Der Ponytail-Skill selbst wiegt rund 6.760 Zeichen, umgerechnet knapp 1.700 Tokens, die bei jedem Aufruf mitgeladen werden. Die Bruttoersparnis dieser Aufgabe liegt bei rund 1.140 Tokens (6.072 → 1.501 Zeichen, grob durch vier geteilt). Netto ist das ein Verlust: Die Leiter hat mehr gekostet, als sie eingespart hat. Anders als beim CSV-Export im letzten Beitrag, wo die Basisvariante mit 18.000 Zeichen sehr viel mehr Luft zum Kürzen bot, war die Basisvariante hier schon vergleichsweise diszipliniert. Ein weiterer Beleg für den Befund von letztem Mal: Je näher die naive Lösung ohnehin am Nötigsten liegt, desto eher wird die Leiter zum reinen Aufschlag.

/simplify: die Frage kommt nach dem Code

Nützlich, aber kein Ersatz

Review-Befehl für den bestehenden Diff

Eingebauter Claude-Code-Skill · /simplify

/simplify nimmt den geänderten Code, so wie er im Arbeitsverzeichnis liegt, und prüft ihn entlang vier Achsen: Wiederverwendung, Vereinfachung, Effizienz und „Flughöhe“ (ob die gewählte Struktur zur Aufgabe passt). Anders als Ponytail wird /simplify nicht bei jeder Codeaufgabe automatisch mitgeladen, sondern gezielt aufgerufen, meist auf einen fertigen Diff oder eine Pull-Request.

Wichtig für das Verständnis: /simplify sucht nach Bugs nicht, dafür gibt es /code-review. Es geht ausschließlich um Qualität innerhalb dessen, was bereits gebaut wurde.

Nachgemessen: derselbe Diff, ein Durchlauf danach

Um die beiden Werkzeuge fair zu vergleichen, habe ich nicht zwei unabhängige Implementierungen genommen, sondern denselben Ausgangsdiff: die 173-Zeilen-Basisvariante ohne Ponytail, in einem zweiten Worktree angewendet und dort mit /simplify bearbeitet.

/simplify fand vier reale Punkte:

ErgebnisVor /simplifyNach /simplifyDifferenz
Codezeilen173170−1,7 %
Zeichen (neuer Code)6.0725.980−1,5 %
Betroffene Dateien41 (nur Sidebar.vue)

Drei Fixes wurden angewendet, die Zeilenzahl sank kaum. Das liegt an der Funktionsweise von /simplify: Es macht bestehenden Code besser gelöst, ohne zu fragen, ob dieser Code überhaupt hätte gebaut werden müssen. Genau diese Frage stellt es beim übersprungenen Altitude-Befund erkennbar nicht. Ein Review-Befehl, der eigenmächtig Funktionsumfang strich, wäre bei einem echten Pull Request das größere Risiko, deshalb ist die Zurückhaltung dort sinnvoll.

Ein Fehltreffer zur Vorsicht: Einer der vier parallel arbeitenden Prüf-Durchläufe behauptete zunächst, eine Funktion dupliziere Code aus einer bestehenden Composable. Beim Nachprüfen per Grep existierte diese Funktion dort gar nicht. Der Fehltreffer wurde verworfen, bevor ein Fix angewendet wurde, aber er zeigt: Auch ein Review-Agent behauptet gelegentlich Dinge, die ein kurzer Blick ins Repository widerlegt. Ergebnisse vor dem Übernehmen prüfen, nicht blind anwenden.

Der Preis: eine echte Review-Runde statt eines Textbausteins

Ponytails Kosten sind vorhersehbar: eine feste Zahl an Tokens, die bei jedem Aufruf anfällt. /simplify kostet anders: Es stößt eine vollständige, mehrteilige Prüfung des Diffs an, in meinem Lauf entlang vier getrennter Kategorien. Das ist kein fixer Textbaustein im Kontext, sondern ein eigener Arbeitsschritt mit eigenem Tokenverbrauch, ungefähr in der Größenordnung einer kompletten weiteren Bearbeitung derselben Aufgabe. Dafür fällt dieser Aufwand nur an, wenn er bewusst ausgelöst wird, nicht bei jeder Codeaufgabe automatisch.

Direkter Vergleich

Ponytail/simplify
Greift wannVor dem SchreibenNach dem Schreiben, auf den Diff
Stellt die FrageBrauche ich das überhaupt?Ist das, was ich gebaut habe, sauber?
Ändert FunktionsumfangJa, aktivNein, absichtlich nicht
KostenmodellFester Aufschlag pro AufrufVollständiger Review-Durchlauf
AusgelöstAutomatisch bei CodeaufgabenGezielt per Befehl
RisikoAufschlag ohne Nutzen bei präzisen TicketsFindet Struktur-Probleme, löst sie aber nicht
In dieser Messung−75,7 % Zeilen, netto negativ−1,7 % Zeilen, drei reale Fixes

Wann welches Werkzeug

1

Neues Feature, offen formuliertes Ticket

Ponytail zuerst testen. Der Effekt ist am größten, wenn die naive Lösung sonst mehr baut als verlangt.

2

Präzise umrissenes Ticket

Ponytail eher weglassen oder bewusst testen, ob es hier hilft. Die Prüfleiter kann bei exakten Anforderungen reiner Aufschlag sein, wie die Messung oben zeigt.

3

Vor einem Merge, oder an Code, der ohne Ponytail entstand

/simplify auf den fertigen Diff anwenden. Es findet Redundanz und Ineffizienz, unabhängig davon, wie der Code entstanden ist.

Die beiden Werkzeuge schließen sich nicht aus, sie beantworten unterschiedliche Fragen. Ponytail spart am ehesten dort, wo ein Agent sonst zu viel baut. /simplify verbessert, was bereits gebaut wurde, ändert aber nicht, ob es hätte gebaut werden sollen. Ein Team, das beides einsetzt, bekommt weniger unnötigen Code und saubereren nötigen Code, aber keines der beiden Werkzeuge ersetzt die Frage, die am Anfang eines Tickets stehen sollte: was hier eigentlich gebraucht wird.

Ehrliche Zusammenfassung: Je ein Durchlauf pro Variante, von mir selbst durchgeführt und bewertet, kein Blindtest. Die drei Worktrees stammen vom selben Commit, damit die Ausgangslage identisch war. Die Richtung der Ergebnisse halte ich für belastbar, insbesondere den negativen Netto-Effekt von Ponytail bei dieser konkreten Aufgabe.

Welche Skills für Ihr Team?

Ich richte Claude Code in Entwicklerteams ein, inklusive Hooks, Skills und der Frage, welche Aufgaben überhaupt an einen Agenten gehören. 30 Minuten Erstgespräch, kostenlos.