Zum Inhalt springen

Skills

declare-when-a-setting-takes-effect

Eine Einstellung, die erfolgreich speichert und bis zum Neustart nichts ändert, ist schlimmer als eine, die fehlschlägt. Sag, wann sie greift, und leite das davon ab, wo sie gelesen wird.

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 Einstellungsseite bauen
  • die Konfiguration ist gecacht
  • warum greift meine Änderung nicht
  • Neustart erforderlich

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 stellen eine Einstellung in einer Benutzeroberfläche bereit, und der Code, der sie konsumiert, liest den Wert nicht bei jeder Verwendung, sondern zu einem anderen Zeitpunkt: beim Prozessstart, beim Aufbau einer Sitzung, oder in ein gecachtes Objekt hinein.

Das gilt nicht für eine Einstellung, die bei jeder Verwendung gelesen wird. Die gelten sofort und sollten nichts dazu sagen — ein Hinweis auf eine Verzögerung, die es gar nicht gibt, lehrt dasselbe Misstrauen wie ein fehlender Hinweis.

Tun

  1. Finden Sie für jede Einstellung die Zeile, die sie liest. Wann sie wirkt, ist eine Eigenschaft dieser Zeile, nicht des Bedienelements.
  2. Bevorzugen Sie, sie live zu lesen. Eine Eigenschaft, die sich bei Zugriff auflöst, kostet meist nichts und beseitigt das Problem, statt es nur zu beschreiben.
  3. Wo das wirklich nicht geht — etwas wird beim Hochfahren gestartet — kennzeichnen Sie es, und generieren Sie die Kennzeichnung aus dem Server oder demselben Modul, das die Lesestelle kennt, damit sie nicht auseinanderdriften kann.
  4. Gruppieren Sie die Kennzeichnungen in sinnvolle Klassen: gilt jetzt, gilt für Ihre nächste Unterhaltung, gilt nach einem Neustart.

Vermeiden

Ein Einstellungsbildschirm, der ein Speichern bestätigt und dabei still und leise nichts tut. Das ist schlimmer als ein Fehler: Ein Fehler schickt den Nutzer auf die Suche nach einer Ursache, während ein Erfolg ihn dazu bringt, dem Feature, dem Modell oder sich selbst die Schuld zu geben.

Vermeiden Sie es, die Liste der „braucht einen Neustart"-Einstellungen fest in der Oberfläche zu kodieren. Diese Liste ist eine Kopie von Wissen, das anderswo lebt, und sie veraltet, sobald sich eine Lesestelle verschiebt — lautlos, genau so, wie das ursprüngliche Problem entstanden ist.

Vermeiden Sie einen pauschalen Hinweis wie „manche Einstellungen erfordern einen Neustart". Er ist wahr, nutzlos, und deckt auch die ab, für die das nicht gilt.

Prüfen

Ändern Sie die Einstellung, nutzen Sie das Feature, und beobachten Sie das Verhalten — nicht den Bildschirm. Lesen Sie einen Wert aus dem laufenden System zurück, nicht aus dem Formular, das Sie gerade abgeschickt haben.

Die mechanische Version: Prüfen Sie, dass keine Einstellung als sofort wirksam gekennzeichnet ist, und dass jede Einstellung, die die Oberfläche zeigt, in der vom Server veröffentlichten Klassifizierung erscheint.

Risiko

Kennzeichnungen fügen einem Einstellungsbildschirm Rauschen hinzu, und ein Bildschirm, auf dem jede Zeile ein Badge hat, ist ein Bildschirm, auf dem Badges nichts bedeuten. Nur die verzögerten brauchen eins.

Das tiefere Risiko ist, die Kennzeichnung als die Lösung zu behandeln. Zu erklären, dass ein Bedienelement bis zum Neustart wirkungslos ist, ist ehrlich; es live zu machen ist besser, und die Kennzeichnung sollte nicht zu einem bequemen Weg werden, der schwierigeren Änderung auszuweichen.

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/declare-when-a-setting-takes-effect/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.

2f1c9fd86ac24a61af75b11945b5042d1a2b53ef081cd9a87c3031d5fa97fcf3

Die Karte im Repository lesen