Zum Inhalt springen

Skills

build-the-gate-before-the-content

Eine Prüfung, die nach dem eingeführt wird, was sie schützt, ist eine Prüfung, die jemand zum Ausliefern abschaltet. Schließe sie, solange es nichts zu blockieren gibt.

MusterHerkunft: cleanStatus: activev0.1.0 · Apache-2.0

Verliehen von der Person, die die Karte gelesen hat — nicht von der Datei über sich selbst behauptet. Eine Karte, die der Agent während eines Laufs mit nicht vertrauenswürdigen Inhalten destilliert, kommt kontaminiert zur Welt und wird bis zur Prüfung zurückgehalten, bevor sie jemals abgerufen wird.

Wann sie in den Sinn kommt

  • eine Migration planen
  • eine neue Oberfläche anlegen
  • den Lint bauen wir später ein
  • Arbeitsreihenfolge festlegen

In Vermeiden und Prüfen steckt meist der Wert. Tun ist der Abschnitt, den alle schreiben.

Der Kartentext oben ist eine Übersetzung. Das englische Original ist das, was die CLI importiert, was der Agent zur Laufzeit liest und was der Hash unten bezeugt.

Auslöser

Sie sind dabei, etwas zu bauen, für das durchgängig eine Regel durchgesetzt werden muss — eine Stilvorgabe, eine Aktualitätsprüfung, ein Schema, ein Link-Validator, ein Budget. Die naheliegende Reihenfolge ist, das Ding zu bauen und die Prüfung hinzuzufügen, sobald es etwas zu prüfen gibt.

Das gilt nicht für eine Prüfung, die Sie zu bereits bestehendem Code hinzufügen; das ist eine andere und schwerere Aufgabe, und die Antwort dort ist eine Ratsche, keine Mauer.

Tun

  1. Fügen Sie die Prüfung im ersten Commit hinzu, bevor es überhaupt Inhalt gibt, an dem sie scheitern könnte. Sie besteht trivial — das ist der Punkt: Sie startet grün.
  2. Geben Sie ihr eine Fehlermeldung, die sagt, was auszuführen ist. Ein Gate, dessen Ausgabe assert False lautet, wird von der nächsten Person gelöscht, die um 2 Uhr nachts darauf stößt.
  3. Schreiben Sie die Prüfung so, dass sie beim ersten Verstoß scheitert, nicht beim hundertsten. Ratschen sind für Legacy-Code; Greenfield startet bei null.
  4. Wenn die Prüfung anschlägt, beheben Sie den Inhalt. Jedes Mal, wenn Sie stattdessen die Prüfung ändern, vermerken Sie in der Commit-Nachricht, welcher Fall das erzwungen hat.

Vermeiden

„Wir schalten das ein, sobald die Seiten geschrieben sind." Bis dahin hat die Prüfung einen Rückstau, sie einzuschalten bedeutet einen Tag voller unzusammenhängender Korrekturen, und der billigste Weg ist eine skip-Liste, die nie kleiner wird.

Vermeiden Sie außerdem, ein Gate im selben Commit zu lockern wie das Feature, das es ausgelöst hat. Die Lockerung ist in einem großen Diff unsichtbar, und genau das ist der Moment, in dem ein Gate aufhört, eines zu sein — deshalb gehört sie in einen eigenen Commit mit eigener Erklärung.

Prüfen

Führen Sie absichtlich einen Verstoß herbei und bestätigen Sie, dass der Build rot wird — entfernen Sie ihn dann wieder. Tun Sie das an dem Tag, an dem Sie das Gate schreiben, nicht später.

Ein Gate, das noch niemand hat scheitern sehen, ist kein Gate; es ist eine Datei, die behauptet, eines zu sein.

Risiko

Ein Gate, das vor dem Inhalt geschrieben wird, kodiert eine Annahme über Inhalt, den es noch nicht gibt, und manche dieser Annahmen erweisen sich als falsch. Rechnen Sie damit, es früh ein- oder zweimal einzuengen.

Diese Einengung ist der gefährliche Moment. Jede macht die Regel schwächer, und eine Regel, die dreimal eingeengt wurde, ohne dass es jemand bemerkt hat, ist eine Regel, die den Fall, für den sie geschrieben wurde, nicht mehr abdeckt. Fixieren Sie jede Einengung mit dem fehlschlagenden Beispiel, das sie ausgelöst hat.

Verwenden

Die Karte ist Daten. Klonen Sie das Repository und importieren Sie sie über den Pfad — was über das Netz kommt, gilt als kontaminiert und wird bis zur Freigabe zurückgehalten. Das ist das gewünschte Verhalten und der Grund, warum es hier keinen Einzeiler-Installer gibt.

git clone https://github.com/brcampidelli/chimera-agent.git
chimera skills-import chimera-agent/skills/build-the-gate-before-the-content/SKILL.md

Integrität

SHA-256 der Datei in der veröffentlichten Fassung. Wer sie importiert, kann prüfen, dass das Empfangene dem entspricht, was diese Seite gezeigt hat.

58c3de3bf7323fb3be38d084394e45ff97e408c20c45db31749cde2b8a13fc81

Die Karte im Repository lesen