Zum Inhalt springen

Skills

pin-the-case-that-narrowed-the-rule

Wenn eine Prüfung beim falschen Ziel anschlägt, macht der Fix sie schwächer. Halte den Fehlalarm im selben Commit als Test fest, sonst erodiert die Regel still.

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

  • der Linter meckert etwas Legitimes an
  • eine Ausnahme hinzufügen
  • False Positive in der CI
  • eine Prüfung lockern

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

Eine Prüfung, die Sie geschrieben haben, ist an etwas gescheitert, das eigentlich in Ordnung ist, und Sie sind dabei, eine Ausnahme, einen Allowlist-Eintrag oder ein engeres Muster hinzuzufügen.

Das gilt nicht, wenn die Prüfung ein echtes Problem gefunden hat — beheben Sie das Problem. Es gilt auch nicht für das Feinjustieren eines Schwellenwerts, bevor die Prüfung überhaupt einmal im Ernstfall gelaufen ist.

Tun

  1. Schreiben Sie in einem Satz auf, warum der markierte Fall legitim ist. Wenn Sie das nicht können, hat vielleicht die Prüfung recht und der Code unrecht.
  2. Fügen Sie beide Fälle zur Test-Suite hinzu: den legitimen, der bestehen muss, und eine synthetische Version des echten Verstoßes, die weiterhin scheitern muss.
  3. Engen Sie die Regel so wenig wie möglich ein. Nehmen Sie einen Pfad aus, nicht ein ganzes Verzeichnis; verlangen Sie eine nahegelegene Verneinung, statt die Formulierung aus der Liste zu löschen.
  4. Bringen Sie die Einengung in einen eigenen Commit, und nennen Sie in der Nachricht, welcher Fall sie erzwungen hat.

Vermeiden

Die Regel zu löschen, weil sie einmal lästig war. Vermeiden Sie auch die leisere Version: eine Ausnahme so weit auszuweiten, bis die Regel nichts mehr abdeckt — eine Allowlist, die jeden Sprint wächst, ist eine Regel, die Zeile für Zeile aus dem Dienst genommen wird, ohne dass jemand entschieden hat, sie aus dem Dienst zu nehmen.

Vermeiden Sie es, nach Datei auszunehmen, wenn die eigentliche Unterscheidung nach Bedeutung verläuft. Eine Formulierungsprüfung, die einen Satz pauschal verbietet, verbietet auch die Warnung, die ihn verneint, und die ehrliche Lösung ist, die Verneinung zu verlangen, nicht, diese Seite nicht mehr zu prüfen.

Prüfen

Führen Sie nach der Einengung die Suite mit dem wieder eingeführten ursprünglichen Verstoß aus. Sie muss weiterhin scheitern.

Lesen Sie dann den Diff der Regel selbst und fragen Sie: Welche Klasse von Problemen kann jetzt durchrutschen, die vorher nicht durchkam? Wenn Sie das nicht beantworten können, wurde die Einengung nicht verstanden.

Risiko

Das fügt für jede Ausnahme einen Test hinzu, und eine Suite voller Ausnahme-Tests ist eine Suite, die mühsam zu lesen ist.

Das größere Risiko ist, den fixierten Test als Beweis dafür zu behandeln, dass die Regel noch stark ist. Er beweist, dass ein Fall weiterhin scheitert. Eine fünfmal eingeengte Regel hat fünf fixierte Fälle und möglicherweise ein großes Loch dazwischen, und nur das erneute Lesen der Regel als Ganzes zeigt das.

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/pin-the-case-that-narrowed-the-rule/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.

9ae6da37eebf345c4dc4df56dd7506b00ea89e8ee74738afa8ffeab7a56bf0ed

Die Karte im Repository lesen