CommunityCodierung & Entwicklunggithub.com

TylerKimbell/iterate

Verbessere alles in wiederholbaren Runden, eine Test-Runde nach der anderen: ein Benutzer-Walkthrough (ein Admin, der etwas einrichtet, ein Neuling, der es benutzt), eine Linsen-Review wie Styling oder ein Probelauf eines Skills oder Prompts. Frische Subagenten führen die Runde aus, bewerten sie anhand der festgelegten Rubrik der Runde und berichten Ergebnisse; du behebst, was im Scope liegt, und führst es erneut aus, bis eine Zielpunktzahl erreicht ist. Funktioniert mit Seiten, Artefakten, Apps, Skills, Prompts, Dokumenten und Workflows, einschließlich dieses Skills selbst. Verwende es für ‚Verbessere das‘, ‚Führe N Runden durch‘, ‚Bring es auf 7/10‘, ‚Teste das als neuer Benutzer‘ oder ‚Verbessere es immer weiter, bis es gut ist‘. Nicht geeignet für eine schnelle Meinung, eine einmalige Bearbeitung oder einen einzelnen Defekt mit einem klaren Endzustand, wie einen defekten Button oder einen fehlgeschlagenen Test.

Was ist iterate?

Der Iterate-Skill ermöglicht die iterative Verbesserung von Software-Artefakten – Seiten, Apps, Skills, Prompts, Dokumente und Workflows – durch strukturierte, wiederholbare Test-Runden. Jede Runde wird von frischen Subagenten ausgeführt, die das Objekt gegen eine vordefinierte Rubrik bewerten, ohne vorherige Ergebnisse zu kennen. Dies stellt vergleichbare Ergebnisse sicher, da jede Runde gegen denselben Flow und dieselbe Rubrik getestet wird. Der Workflow beginnt mit der Auswahl eines Test-Flows und eines Ziel-Scores (z. B. 7/10), gefolgt von der Erstellung einer Spezifikation, die die Szenarien, Fragen, Anker und Bewertungskriterien definiert. Dann werden Einrichtungen und Prüfungen vorbereitet, bevor jede Runde mit frischen Evaluatoren gestartet wird. Nach der Auswertung werden direkte Änderungen gemäß den Bewertungen vorgenommen und geprüft, während Vorschläge protokolliert werden. Der Skill unterstützt mehrere Plattformen (Claude Code, Codex) und Panel von Modellen mit unterschiedlichen Fähigkeiten. Er stoppt automatisch bei Erreichen des Ziels, Budgetverbrauch, mangelndem Fortschritt oder stagnierenden Ergebnissen. Diese Methodik eignet sich besonders für tiefgehende Verbesserungen, bei denen mehrere Perspektiven (z. B. Benutzer-Walkthrough, Styling-Review) durch separate Flows abgedeckt werden, nicht jedoch für schnelle Meinungen oder einzelne Fehler.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/TylerKimbell/tstack/tree/HEAD/skills/iterate

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Iterieren

Mache etwas in Runden besser, die jeder erneut ausführen und vergleichbare Ergebnisse erzielen kann. Die Arbeitseinheit ist ein Test-Flow: ein Standpunkt und das, was er beurteilt. In jeder Runde führen frische Evaluatoren den Flow aus und bewerten ihn anhand der Rubrik des Flows; du behebst, was im Scope liegt, verifizierst, protokollierst und machst weiter. Die Runden bleiben vergleichbar, weil jeder Flow vor seiner ersten Runde schriftlich festgelegt wird, jeder Evaluator mit derselben Aufgabenbeschreibung kalt startet und niemals frühere Ergebnisse sieht, und jede Runde gegen die Basislinie des Flows protokolliert wird. Ergebnisse vergleichen sich nur innerhalb eines Flows. Um mehrere Standpunkte abzudecken, führe den Skill einmal pro Flow aus.

Alles, was der Benutzer entscheidet, geschieht in Schritt 1. Danach läuft die Ausführung autonom: Runden gehen ohne Zwischenfragen hintereinander weiter, bis eine Stoppregel in Schritt 7 die Ausführung beendet, unabhängig vom Budget. Alles, was für den Besitzer bestimmt ist, wartet auf die abschließende Zusammenfassung.

Das Iterieren autorisiert niemals das Senden, Veröffentlichen, Commit oder Berühren von echten Daten von Personen. Eine Korrektur, die Personen erreichen würde oder könnte, die das Objekt bereits verwenden, wie das Bereitstellen einer Live- Seite, gilt als Veröffentlichung: Sie erfolgt nur so, wie der Benutzer in Schritt 1 erlaubt hat.

Anfrage routen

Lade templates.md für jede Route außer einem einzelnen Defekt. Suche nach einer Spezifikation: iterate.md oder <thing>.iterate.md neben dem Objekt oder wo der Benutzer es angibt. Das Ausführungsprotokoll befindet sich neben der Spezifikation in iterate-log.md oder <thing>.iterate-log.md.

AnfrageWas zu tun ist
Noch keine SpezifikationSchritt 1 vollständig.
Eine Spezifikation, aber kein Abschnitt für diesen FlowSchritt 1 nur für den Flow: die gemeinsamen Teile der Spezifikation wiederverwenden.
Eine Spezifikation mit diesem Flow ("führe es erneut aus")Schritt 1 mit der Spalte Erneut ausführen, dann "Einen Flow erneut ausführen" in Schritt 2.
Eine laufende Ausführung ("fortsetzen" und der Ausführungsstatus sagt nicht, dass sie beendet ist)Spezifikation aktualisieren (Schritt 2), Ausführungsstatus und den letzten Eintrag lesen, die Stoppregeln in Schritt 7 prüfen, und falls keine zutrifft, ab Schritt 4 fortfahren.
"Bewerte X", "Was stimmt nicht mit X" oder eine Linse, die ohne Ziel oder Runden genannt wird ("Bewerte das Styling")Schritt 1 mit einem nur Bericht Budget: eine Runde, keine Korrekturen.
"Mach das besser" ohne Angabe von RundenSchritt 1, mit dem am besten passenden Flow und dem Standardbudget sowie einem einmaligen Durchlauf als Alternative.
Ein einzelner Defekt mit einem klaren EndzustandSage in einem Satz, dass es kein Iterieren-Job ist, reproduziere, behebe und verifiziere es dann wie üblich; die Bereitstellung der Korrektur auf einem Live-Objekt benötigt dennoch eine Freigabe. Wenn eine Spezifikation existiert, biete an, eine Zeile zu ihren Prüfungen hinzuzufügen, die den Defekt abfangen würde, und zum eigenen Testwerkzeug des Objekts, falls vorhanden.

Wenn mehr als eine Zeile zutrifft, frage jedes Feld, das jede passende Spalte verlangt, und überspringe, was die Spezifikation bereits beantwortet. Wo eine Spalte ein Feld eingrenzt ("wenn neu", "wenn fehlend", "Änderungen im Scope", "nur Bericht"), gewinnt die eingrenzende Form: Eine Bewertung, die ohne Ziel oder Runden genannt wird, ist nur Bericht, selbst wenn die Spezifikation den Flow nicht enthält. Frage daher nicht nach einem Ziel oder einer Veröffentlichung. Ein nur Bericht-Durchlauf schreibt dennoch den Abschnitt des Flows, die Aufgabenbeschreibung und das Protokoll. Ein einmaliger Durchlauf wird von dir durchgeführt, nicht von einem frischen Evaluator, ohne Spezifikation, Aufgabenbeschreibung, Protokoll oder Bewertung: Bewerte das Objekt einmal anhand der Fragen der passenden Karte, nimm die direkten Korrekturen vor, wenn der Benutzer Änderungen gewünscht hat (andernfalls zeige sie), und liste den Rest als Vorschläge auf. Seine Leitplanken sind die Standardeinstellungen: Formulierung, Reihenfolge, Layout, Beschriftungen, Beispiele und Klärung bestehender Anweisungen sind direkt; Inhalt, Umfang, Richtlinien sowie Hinzufügen oder Entfernen von Anweisungen oder Schritten sind Vorschläge.

Schritt 1: Den Flow und das Ziel auswählen

Sende die Schritt 1-Nachricht aus templates.md: Eine Nachricht mit jedem Feld, das die Route verwendet, ausgefüllt oder wie in den Notizen angegeben formuliert.

Warte auf die Antwort, bevor du die Spezifikation schreibst, auch wenn die Nachricht keine Fragen enthält.

Schritt 2: Die Spezifikation schreiben

Die Spezifikation gehört zu dem Objekt, das verbessert wird, niemals zu diesem Skill: Das Ausführen von Iterieren ändert nicht die Dateien dieses Skills. Bewahre sie dort auf, wo jeder, der das Objekt hat, sie finden kann: Innerhalb oder neben einem Artefakt, das für sich allein geteilt wird, neben einem Dokument, neben dem Quellcode einer Seite. Benenne sie iterate.md oder <thing>.iterate.md, wenn dieser Name bereits vergeben ist oder der Ordner andere Objekte enthält, und führe das Ausführungsprotokoll in einer separaten Datei daneben mit -log im Namen. Evaluatoren lesen die Spezifikation und niemals das Protokoll, sodass sie keine früheren Ergebnisse sehen können. Frage, wo beide hinkommen, wenn es keinen Ordner neben dem Objekt gibt, in den du schreiben kannst, oder wenn Dateien dort an alle gesendet würden, die das Objekt installieren.

Kopiere die Gerüste für Spezifikation und Protokoll, fülle dann den Abschnitt des Flows aus seiner Karte: Szenarien, Fragen, Anker und Unterbewertungen mit ihren Definitionen. Verwende vier bis acht Szenarien oder bis zu zwölf Teile für eine Linse. Wenn ein neuer Flow etwas bewertet, das der gemeinsame "Im Scope" nicht abdeckt, erweitere ihn; jeder Evaluator bewertet dennoch nur das, was sein Flow in "Wer und was" abdeckt.

Schreibe den Abschnitt jedes Flows vor seiner ersten Runde und ändere ihn nur gezielt. Eine Änderung an seinen Szenarien, Fragen, der Rubrik, den Evaluatoren oder der Aufgabenbeschreibung ist ein Bruch der Vergleichbarkeit: Protokolliere sie und mache die erste bewertete Runde danach zu einer neuen Basislinie. Eine Basislinie setzt die beste Punktzahl, macht nur Fortschritt, wenn du einen ihrer hochwirksamen [direkten] Befunde anwendest, und startet das Fenster von Regel 3 in Schritt 7 neu. Das Hinzufügen einer getroffenen Entscheidung ist kein Bruch.

Einen Flow erneut ausführen. Wenn der Abschnitt des Flows bereits existiert, schreibe ihn nicht neu.

  1. Das Abdecken eines "nicht abgedeckten" Elements aus Schritt 1 bedeutet normalerweise ein neues Szenario, was ein Bruch ist.
  2. Bringe die Spezifikation auf den neuesten Stand (unten). Szenarien und Fragen bleiben wie geschrieben; Lücken gegenüber der Karte gehen in die Schritt 1-Nachricht als Vorschläge ein.
  3. Setze den Ausführungsstatus auf das Budget dieser Ausführung ohne verbrauchte Runden, behalte die beste Punktzahl seit der letzten Basislinie oder "noch keine", wenn Punkt 2 einen Bruch protokolliert hat. Gehe zu Schritt 4 und nummeriere die Runde nach der letzten protokollierten.

Eine Spezifikation auf den neuesten Stand bringen. Bei einer erneuten Ausführung oder einer laufenden Ausführung fülle, was die Gerüste verlangen, was der Spezifikation fehlt, und protokolliere alles in einem Eintrag vor der nächsten Runde.

  • Hinzufügungen, keine Brüche: Eine fehlende Karte, Ziel, Veröffentlichungszeile (aus jeder Zeile, die es festlegt), Möglichkeit, das Objekt zu erreichen, oder Aufgabenbeschreibung. Fehlende Evaluatoren: einer auf dem Modell der Sitzung, geschrieben als sein Alias und Aufwand; für einen Probelauf eines Prompts das Produktionsmodell, falls "Das Objekt" eines nennt. Offene Entscheidungen im Protokoll, die in den "Getroffenen Entscheidungen" fehlen, markiert als "ausstehend beim Besitzer". Ein Protokoll innerhalb der Spezifikation, das in eine eigene Datei verschoben wurde. Ein fehlender Ausführungsstatus, geschrieben aus den Einträgen. Eine fehlende Startversion: die Version vor den Korrekturen der Basislinie, wenn die Historie sie hat; andernfalls protokollieren, dass der Vergleich nicht durchgeführt werden kann. Frühere Runden ohne aufgezeichnete Aufgabenbeschreibung vergleichen sich nur lose.
  • Brüche: Fehlende Anker, Definitionen von Unterbewertungen oder die Zeile der Rubrik "ein Urteil, kein Durchschnitt". Nimm die Anker und die Rubrikzeile aus der Karte. Behalte die eigenen Namen der Unterbewertungen des Flows mit der Definition aus der Karte, wenn ein Name übereinstimmt, oder andernfalls eine einzeilige Definition, geschrieben aus der Kartenfrage, die ihr am nächsten kommt. Zeige sie in der Schritt 1-Nachricht an.

Schritt 3: Einrichtungen und Prüfungen einrichten

Einrichtungen und Prüfungen werden über Flows hinweg geteilt: Richte sie einmal ein und erweitere sie, wenn ein neuer Flow mehr benötigt. Protokolliere eine neue Prüfung im Eintrag der nächsten Runde des Flows, der sie benötigte.

  • Einrichtungen: Alles, was der Evaluator benötigt, ohne etwas Reales zu berühren: ein Test-Datensatz, der als Test markiert ist und jedes Feld ausgefüllt hat, Beispiel-Eingaben, ein Scratch-Ordner, ein Steuerelement "Ansicht ab Tag N". Für einen Prompt füge die Fakten und Namen hinzu, die er voraussetzt. Halte kurze Eingaben in der Spezifikation und längere in Dateien daneben, benannt nach Pfad. Markiere erfundene Inhalte als erfunden. Nenne echte Datensätze als tabu und gib an, wie Einrichtungen zwischen den Runden zurückgesetzt werden.
  • Prüfungen: Alles, was ein Skript oder ein kurzer Blick ohne einen Evaluator klären kann: gerenderte Werte, Daten, Links, die funktionieren, erforderliche Abschnitte vorhanden, ein Manifest, das validiert. Wenn nichts zutrifft, schreibe "Keine" und warum. Führe sie vor jeder Runde aus; eine fehlgeschlagene Prüfung ist ein Fehler, der vor der Runde behoben werden muss, kein Befund, der bewertet wird.

Schritt 4: Eine Runde durchführen

Vor der ersten Runde der Ausführung, auf jeder Route außer nur Bericht, speichere die Startversion des Objekts für den Vergleich in Schritt 7: einen Commit, der bereits existiert, eine Kopie im Scratch-Ordner der Ausführung oder Screenshots, wenn eine Kopie nicht möglich ist. Führe vor jeder Runde die Prüfungen aus und setze die Einrichtungen zurück, wie es die Spezifikation angibt. Beauftrage dann neue Subagenten, die frühere Runden nicht gesehen haben, damit sie das Objekt beurteilen und nicht deine Erinnerung daran.

Evaluatoren. Standardmäßig einer: das Modell der Sitzung mit dem Aufwand der Sitzung. Ein Panel hat höchstens drei, alle aus der Modellfamilie der Sitzung und mit dem Aufwand der Sitzung, sofern der Benutzer nichts anderes sagt. Zwei fügt das nächstkleinere Modell hinzu; drei verwendet die gesamte Familie, das größte zuerst:

ToolModelle, das größte zuerst
Claude Codeopus, sonnet, haiku (verwende diese Aliase, nicht Versionsnummern)
CodexSol, Terra, Luna

Der Benutzer kann das Panel stattdessen benennen. Schreibe die aufgelösten Aliase und den Aufwand (wie opus, hoch) in die Zeile "Evaluatoren" der Spezifikation, sodass eine erneute Ausführung von einer anderen Sitzung dieselben Einstellungen verwendet. Ein Probelauf eines Prompts zeichnet dort auch das Produktionsmodell auf (siehe seine Karte). Fable wird niemals standardmäßig hinzugefügt: Verwende es nur, wenn der Benutzer es nennt oder die Sitzung darauf läuft, und warne beide Male, dass es zu teuer für eine Schleife von Runden ist. Wenn ein Modell eine Aufwandsstufe ablehnt, verwende seine Standardeinstellung und protokolliere es. Wenn die Werkzeuge kein Modell pro Subagent auswählen können, läuft jeder Evaluator auf dem Modell der Sitzung; protokolliere, dass zusätzliche Evaluatoren dann Befunde, aber keine unabhängige Punktzahl liefern. Wenn Subagenten überhaupt nicht verfügbar sind, führe die Runde selbst durch und sage, dass die Punktzahl vom Entwickler stammt, nicht von einem frischen Leser. Wenn ein Evaluator keinen Bericht zurückgibt, beauftrage einen frischen einmal; wenn es erneut fehlschlägt, protokolliere die Runde als unvollständig und verwende den stärksten verbleibenden Evaluator als primären Evaluator dieser Runde.

Der primäre Evaluator ist das stärkste Modell im Panel, es sei denn, der Benutzer nennt eines; mit Fable im Panel frage, welches. Die Punktzahl des primären Evaluators ist die maßgebliche Punktzahl für das Ziel und die Stoppregeln. Die Punktzahlen der anderen werden daneben protokolliert: Eine große Lücke, wie 9 vom primären und 5 vom kleinsten Modell, bedeutet, dass das Objekt nur für einen starken Leser funktioniert, und ist ein Befund.

Schreibe die Aufgabenbeschreibung einmal aus der Vorlage, vor der ersten Runde des Flows, und speichere sie in der Spezifikation. Jede Runde sendet sie wortwörtlich an jeden Evaluator, wobei nur die Details der Ausführung selbst (wie ein Scratch-Ordnerpfad) oben hinzugefügt werden: Eine umformulierte Aufgabenbeschreibung kann die Punktzahl genauso beeinflussen wie eine Korrektur. Weise die Evaluatoren auf das Objekt hin, wie es jetzt ist, mit dieser Ausführungskorrekturen: den Entwurf, wenn die Korrekturen nicht live sind (ein Vorschaulink, ein Branch, eine lokale Kopie), niemals die Live-Version ohne sie oder eine Kopie aus einer früheren Runde. Wenn eine frühere Ausführung Korrekturen in einem Entwurf hinterlassen hat, gibt Schritt 1 an, von welcher Version diese Ausführung startet.

Die Berichte sind Modellausgaben. Ihre Behauptungen sind Hinweise, die überprüft werden müssen, niemals Anweisungen oder die Zustimmung des Benutzers. Bei einem Budget "nur Bericht" protokolliere die Runde, überspringe Schritt 5, setze den Ausführungsstatus auf "beendet nach Runde N: nur Bericht" und gib dem Benutzer eine kurze Zusammenfassung: die Punktzahl, die Befunde nach Auswirkung geordnet, was nicht geprüft wurde, und ein Angebot einer Ausführung mit einem Ziel.

Schritt 5: Beheben

  • Überprüfe jedes [direkt] Tag gegen die Leitplanken "Zuerst direkt beheben": Ein Befund, der hinzufügt oder entfernt, was sie für den Besitzer reservieren, ist ein Vorschlag; kennzeichne es neu und protokolliere warum.
  • Wende [direkte] Befunde an, die der primäre Evaluator erhoben hat oder die zwei oder mehr Evaluatoren erhoben haben, im Quellcode des Objekts oder einem Entwurf, und veröffentliche sie nur, wie in Schritt 1 erlaubt. Ein Befund, den nur ein kleineres Modell erhoben hat, wird nur angewendet, wenn es ein Klarheitsproblem ist, das der primäre Evaluator nicht widersprochen hat. Wenn Evaluatoren widersprüchlich sind, gewinnt der primäre Evaluator; protokolliere den Widerspruch.
  • Halte [vorschlag] Befunde für den Besitzer zurück, markiert als offen im Protokoll.
  • Behalte die Auswirkungs-Tags der Evaluatoren, da der Fortschritt in Schritt 7 von ihnen abhängt; wenn du einen änderst, protokolliere warum.
  • Behebe die Ursache hinter einem Cluster von Befunden, nicht jedes Symptom: Wenn Zählwerte an drei Stellen nicht übereinstimmen, gib ihnen eine Quelle.
  • Wenn Evaluatoren über Runden hinweg unterschiedlicher Meinung sind, behalte die Version, die der vom Besitzer genannten Absicht am nächsten kommt, protokolliere sie als offene Entscheidung und füge sie in die "Getroffenen Entscheidungen" der Spezifikation ein, markiert als "ausstehend beim Besitzer", sodass spätere Runden aufhören, sie zu bewerten. Die Aufgabenbeschreibung verweist auf diesen Abschnitt, also ist dies kein Bruch. Wechsle nicht hin und her.
  • Eine Korrektur für einen Flow kann einem anderen schaden, wie ein dichteres Layout, das eine Styling-Bewertung verbessert, aber den nächsten Schritt für einen neuen Benutzer versteckt. Protokolliere es, damit der nächste Durchlauf des anderen Flows es überprüft.
  • Verifiziere jede Korrektur selbst und führe die Prüfungen nach jeder Änderung erneut aus. Wo keine Prüfung eine Korrektur bestätigen kann, wie bei der Ausgabe eines Prompts, führe das betroffene Szenario selbst erneut aus. Ein Evaluator, der sagt, es sei behoben, zählt nicht.

Schritt 6: Die Runde protokollieren

Füge einen Eintrag zum Abschnitt des Flows des Ausführungsprotokolls mit den Feldern hinzu, die das Protokollgerüst auflistet. Die erste bewertete Runde des Flows ist seine Basislinie.

Halte das Protokoll kurz genug, um es vor einer Runde zu lesen: die Basislinie und die letzten drei Runden in vollständiger Form, jede ältere Runde als eine Zeile (Datum, Punktzahl, Fortschritt, Hauptänderung) und offene Vorschläge vollständig, bis der Besitzer entscheidet. Aktualisiere dann die Zeile des Ausführungsstatus des Flows im Protokoll.

Schritt 7: Schleife oder Stopp

Wiederhole die Schritte 4 bis 6 mit frischen Evaluatoren, ohne Zwischenfragen, bis eine der folgenden Stoppregeln zutrifft; eine Runde ohne Fortschritt beendet die Ausführung nicht von selbst. Eine Runde macht Fortschritt, wenn die beste Punktzahl des primären Evaluators bisher steigt oder wenn du mindestens einen seiner hochwirksamen [direkten] Befunde anwendest; eine Basislinie setzt die beste Punktzahl, ohne als Anstieg zu zählen. Punktzahlen sind ganze Zahlen.

Nach jeder Runde lies die Zeile des Ausführungsstatus und den Eintrag der Runde und beende die Ausführung, wenn eine dieser Regeln zutrifft:

  1. Ziel erreicht: Die Punktzahl des primären Evaluators liegt auf oder über dem Ziel.
  2. Budget verbraucht.
  3. Kein Fortschritt: Keine der letzten N Runden, diese eingeschlossen, machte Fortschritt. N ist 2 für ein Budget von 5 oder weniger, andernfalls ein Zehntel des Budgets aufgerundet und mindestens 3: 10 Runden für ein Budget von 100. Die Regel kann nicht zutreffen, bis N Runden seit der letzten Basislinie bewertet wurden, diese eingeschlossen.
  4. Gleichbleibende Punktzahl: Der primäre

… [für die Übersetzung gekürzt]

Verwandte Skills