Standards
Reviewer setzen dieselben Konventionen von Hand durch, Kommentar für Kommentar. Dieses Skill fördert diese Kommentare in schriftliche Standards und prüft dann Diffs gegen sie. Jeder Standard verbindet eine Regel, die ein Agent beim Schreiben von Code befolgt, mit einer Linse, die ein Reviewer auf einen Diff anwendet. Jeder nummerierte § zitiert die dahinterstehenden Review-Kommentare, sodass jeder eine Regel bis zu den Reviewern zurückverfolgen kann, die sie durchgesetzt haben.
Grundprinzipien
- Beweise zuerst. Ein § benötigt Review-Kommentare aus mindestens 3 verschiedenen Änderungen und von 2 verschiedenen Reviewern, denn viele Kommentare zu einer Änderung oder von einer Person sind der Geschmack eines einzelnen Reviewers.
- Jede Regel trägt ihr Warum. Ein Grund leitet einen Agenten auch dann noch, wenn sich der Code um die Regel herum verändert.
- Zuhause pro Konvention. Zwei Kopien driften auseinander, und ein Agent folgt der, die er zuerst gelesen hat.
- Ein Check schlägt einen §. Eine Konvention, die ein Linter, Typ oder Test abfangen kann, gehört in dieses Werkzeug, denn ein Check läuft jedes Mal.
- Lösche, was Agenten bereits tun. Eine Regel, die unaufgefordert befolgt wird, kostet bei jedem Laden Kontext und ändert nichts.
- Skripte sind Abkürzungen. Jede Ausgabedatei hat ein Schema in
references/schemas/, sodass man die Datei von Hand schreiben kann, wenn ein Skript fehlt oder fehlschlägt. gitist die einzige harte Abhängigkeit. Die CLI einer Forge, wieghoderglab, fügt Review-Kommentare hinzu, undgit logvertritt sie ohne eine solche.
Befehle
| Befehl | Was er tut | Ausgabe | Referenz |
|---|---|---|---|
mine | Holt Review-Kommentare, beschriftet sie nach Konvention, ordnet die Cluster nach Häufigkeit mal Schwere | .standards/clusters.json | references/mine.md |
write | Verwandelt die geordneten Cluster in ein Standards-Skill im Repository, jeder § mit seinem Warum und Beweisen | das Standards-Skill | references/write.md |
review | Wendet jede Linse an, die ein Diff auslöst, und meldet Ergebnisse mit dem zitierten § | Ergebnisse in der Antwort | references/review.md |
prune | A/B-testet jede Regel über Testumgebungen und löscht diejenigen, die Agenten unaufgefordert befolgen | prune.json | references/prune.md |
doctor | Zeigt Abweichungen an: Globs, die nichts finden, zitierte Dateien, die verschwunden sind, Linsen, die nie feuern, veraltete Prune-Daten | .standards/doctor.json | references/doctor.md |
Weiterleitung
Aufruf als standards [befehl] [bereich]. Ein Bereich ist ein Pfad oder Glob, ein Bereichs-Slug aus dem generierten Index oder eine §-Nummer (§2, §2.3). Auflösung gemäß references/scope.md. mine akzeptiert nur einen Pfad, da Bereiche erst nach write existieren.
- Kein Argument. Zeige das Menü unten an und warte auf eine Auswahl. Führe niemals automatisch einen Befehl aus, denn jeder liest Historie, bearbeitet das Repo oder verbraucht viele Agentenläufe.
- Ein Bereich ohne Befehl. Führe
reviewdieses Bereichs aus ohne Nachfrage, dennreviewliest nur. - Ein expliziter oder klar implizierter Befehl. Lade seine Referenz und folge ihr Schritt für Schritt.
- Zwei Befehle passen. Frage einmal nach, welcher, nenne beide und was jeder tun würde. Folge dann der Antwort.
- Standards aus dem Nichts. Beginne mit
mine, dennwritebenötigtclusters.json. Bietewritean, wennminefertig ist. - Eine Frage zum Skill selbst. Antworte aus dieser Datei, ohne einen Befehl auszuführen.
Menü
standards: was soll ich tun?
mine Review-Kommentare in bewertete Konventionen fördern
write Standards aus den bewerteten Konventionen schreiben
review Einen Diff anhand der Standards überprüfen
prune Jede Regel testen und die löschen, die Agenten bereits befolgen
doctor Die Standards auf Abweichungen prüfen
Jeder Befehl akzeptiert einen optionalen Bereich: einen Pfad, einen Bereich oder eine §.
Wenn generierte Standards existieren, liste ihre Bereiche unter dem Menü als §-Nummer und Slug auf.
Pipeline
mine speist write, und write produziert, was review anwendet. prune und doctor warten die Standards danach.
Arbeitsdateien leben in .standards/ im Stammverzeichnis des Ziel-Repos. Behalte diesen Ordner außerhalb der Versionskontrolle, denn Review-Kommentare zitieren Code und Personen. prune.json ist die Ausnahme. Es liegt neben den generierten Standards, weil doctor es dort liest.
<skill-verzeichnis> in den Referenzen ist der Ordner, der diese Datei enthält. Die Skripte in <skill-verzeichnis>/scripts/ beschleunigen mine und benötigen nur die Standardbibliothek einer JavaScript-Laufzeitumgebung.
Bewertungsmodell
mine, prune und doctor stellen viele kleine typisierte Fragen. Ein Bewertungsmodell ist ein schnelles Modell, das typisierte Fragen (wähle eines aus einer Menge, eine Ja/Nein-Wahrscheinlichkeit, eine Bewertung) mit kalibrierten Wahrscheinlichkeiten beantwortet. Wenn Ihre Umgebung Ihnen ein Bewertungsmodell gibt, beantworte die Fragen damit; andernfalls beantworte sie selbst. Die eigenen Anweisungen Ihrer Umgebung entscheiden, welches Modell das ist.
Generierte Standards
- Die Standardausgabe ist ein Skill mit einem Index von Einzeilern, die jeweils auf eine §-Datei verlinken. Vorlagen: Index und Abschnitt.
- Ein Skill pro Bereich ist eine Option, die pro Repo durch das Formexperiment in references/write.md festgelegt wird.
- Generierte Standards folgen denselben Regeln wie dieses Skill: Nur Spec-Frontmatter, keine URLs, keine Daten und ein Warum für jede Regel.