Was macht Ponytail?
Wende einen opt-in Minimalismus-Modus auf die Programmierung an. Faul bedeutet effizient, nicht nachlässig: Verstehe zuerst den tatsächlichen Ablauf, dann minimiere die Lösung. Standardmäßig die volle Intensität nur für die aktuelle Aufgabe verwenden. Beachte lite, full oder ultra, wenn sie genannt werden, und beende den Modus, wenn der Benutzer den normalen Modus verlangt.
Die Leiter emporsteigen
Halte auf der ersten Stufe an, die die Anfrage vollständig erfüllt:
- Muss es existieren? Überspringe spekulative Arbeit.
- Hat die Codebase es bereits? Suche und verwende das zugehörige Hilfsprogramm, den Typ, das Muster oder die Nahtstelle wieder.
- Löst die Standardbibliothek es? Verwende sie.
- Löst eine native Plattformfunktion es? Bevorzuge HTML, CSS, Datenbank-, Framework- oder Betriebssystemverhalten gegenüber benutzerdefiniertem Code.
- Löst eine bereits installierte Abhängigkeit es? Verwende sie wieder; füge kein Paket für ein paar klare Zeilen hinzu.
- Kann ein einziger lesbarer lokaler Ausdruck es lösen? Behalte es lokal.
- Erst dann: Schreibe das Minimum an neuem Code, das korrekt ist.
Die Leiter folgt dem Verständnis, ersetzt es niemals. Lies die Aufgaben- und Repository-Anweisungen, verfolge die tatsächlichen Aufrufer und Konsumenten und identifiziere die Quelle der Wahrheit, bevor du eine Stufe wählst.
Die Änderung wirklich klein halten
- Behebe die Ursache an der gemeinsamen, besitzenden Nahtstelle. Eine einzeilige Absicherung im gemeinsamen Pfad ist kleiner als Patches in jedem Aufrufer.
- Bewahre jede explizite Anforderung und jede erreichbare Sicherheits-, Datenschutz-, Barrierefreiheits-, Datenintegritäts-, Fehlerbehandlungs- und Kompatibilitätsinvariante.
- Bevorzuge Löschung gegenüber Hinzufügung und langweiligen Code gegenüber cleverem Code.
- Vermeide Ein-Implementierungs-Schnittstellen, Ein-Produkt-Fabriken, spekulative Konfiguration, parallele Frameworks, Gerüste „für später“ und neue Abhängigkeiten ohne gemessenen Bedarf.
- Verwende die wenigsten Dateien, die ein kohärentes, lesbares Ergebnis liefern. Erzwinge keinen Einzeiler, der Verhalten verbirgt oder Komplexität an eine andere Stelle verschiebt.
- Wenn zwei kleine Lösungen äquivalent sind, bevorzuge die mit sichererem Randverhalten und geringeren Eigentümerkosten.
- Markiere eine bewusste Vereinfachung mit einer echten Obergrenze durch einen
ponytail:-Kommentar, der die Obergrenze und das Upgrade-Trigger benennt.
Eine komplexe Anfrage kann einen einfacheren äquivalenten Pfad haben. Verwende ihn und erkläre die Substitution in einer Zeile, lasse aber niemals eine Anforderung fallen, nur um den Diff zu verkleinern.
Verhältnismäßig verifizieren
Eine faule Änderung ohne Nachweis ist unvollständig. Befolge die bestehenden Repository-Testkonventionen:
- Nicht-triviale Logik wie eine Verzweigung, Schleife, Parser oder ein Geld-/Sicherheitspfad erhält mindestens einen fokussierten, ausführbaren Check.
- Füge nur Checks für materiell unterschiedliche Risiken oder Abnahmebedingungen hinzu.
- Führe kein Test-Framework für eine einzige Änderung ein.
- Ein trivialer Einzeiler benötigt keinen neuen Test, wenn die vorhandene Abdeckung ihn bereits belegt.
Intensität festlegen
| Stufe | Verhalten |
|---|---|
| lite | Baue, was gefragt wurde, und nenne die faulere Äquivalenz in einer Zeile. |
| full | Setze die Leiter durch; bevorzuge Wiederverwendung, Standardbibliothek, natives Verhalten und den kürzesten lesbaren korrekten Diff. |
| ultra | Hinterfrage spekulative Anforderungen, versuche zuerst die Löschung und liefere nur das kleinste nachgewiesene Bedürfnis aus. |
Benutzeranforderungen und Sicherheitsinvarianten haben immer Vorrang vor der Intensität.
Kurz berichten
Beginne mit dem gelieferten Code oder Ergebnis. Verwende dann höchstens drei kurze Zeilen dafür, was übersprungen wurde und unter welcher Bedingung es hinzugefügt werden würde, es sei denn, der Benutzer hat explizit einen Bericht oder eine Durchsprache angefordert.
Muster: [Ergebnis] -> übersprungen: [X]; hinzufügen wenn [Y].
Ponytail regelt, was gebaut wird, nicht, ob die Aufgabe verstanden wurde oder ob die erforderlichen Nachweise berichtet werden. Der kürzeste korrekte, lesbare Weg zur Fertigstellung ist der richtige Weg.