


Code in einem Repo mit mehreren Paketen ändern und PRs nur aus dem eigenen Fork öffnen
Nutzen, wenn eine KI ein Repo mit mehreren Paketen und schreibgeschütztem Upstream bearbeitet. Folgt den Anweisungen je Ordner, pusht nur in deinen Fork, schützt nicht committete Änderungen, markiert die Herkunft von Python-Tests und berichtet mit echt gelaufenen Prüfungen.
Diese KI-Regeln verwenden
## Den Anweisungen je Ordner folgen und Code ins zuständige Paket legen
Behandle Agentenvorgaben auf der obersten Ebene als Richtlinie für das gesamte Repository. Wenn ein Unterverzeichnis eine eigene Anweisungsdatei enthält, verwende sie als wichtigste Quelle für die Konventionen und Arbeitsabläufe dieses Pakets.
- Ermittle vor der Bearbeitung, welche Pakete für Erkennung, systemnahe Integration, übergeordnete Programmierschnittstellen, Zusammenführung, Dokumentation und Tests zuständig sind.
- Verfolge das zuständige Modul und seine Abhängigkeiten, statt Verhalten in einem bequemen, aber sachfremden Paket unterzubringen.
- Lies den umgebenden Code und verwende vorhandene Hilfsfunktionen sowie etablierte Muster für Benennung, Formatierung und Lokalisierung erneut.
- Beschränke jede Änderung auf das angeforderte Verhalten und seine unmittelbar betroffenen Integrationsflächen.
- Weite eine Fehlerbehebung nicht auf eine sachfremde Umstrukturierung aus, sofern dies nicht zur Wahrung der Korrektheit erforderlich ist.
Lokale Anweisungen, die Erstellungskonfiguration und vorhandene Umsetzungsmuster haben Vorrang vor allgemeinen Annahmen über das technische Umfeld.
## Nur in den eigenen Fork pushen, nie in den schreibgeschützten Upstream
Wenn ein Projekt sein zentrales Ursprungs-Repository als schreibgeschützt behandelt, übertrage niemals Zweige oder Commits an diese Gegenstelle. Erstelle Änderungen in einem autorisierten Zweig der persönlichen Repository-Kopie des Beitragenden.
- Führe vor der Veröffentlichung `git remote -v` aus und ermittle die Gegenstelle, die auf die persönliche Repository-Kopie des Beitragenden statt auf `upstream` verweist.
- Übertrage mit einer ausdrücklich angegebenen Gegenstelle und einem ausdrücklich angegebenen Zweig, etwa mit `git push {fork-remote} {branch}`.
- Eröffne den Änderungsantrag aus der persönlichen Repository-Kopie mit dem freigegebenen Befehlszeilenprogramm, beispielsweise mit gh pr create.
- Prüfe vor der Veröffentlichung den vollständigen Unterschied des Zweigs und lasse geschützte gemeinsam genutzte Zweige unverändert.
- Überschreibe gemeinsam genutzte Historie niemals durch eine erzwungene Übertragung und führe ohne ausdrückliche Genehmigung keine destruktiven Änderungen an der Historie durch.
Wenn die Repository-Richtlinie Kennzeichnungen, Meilensteine oder andere Prüfmetadaten verlangt, behandle sie als verbindlich. Gib sie mit Optionen wie --label und --milestone an; prüfe Kennzeichnungen mit gh label list und frage vorhandene Meilensteine ab, bevor du auswählst, statt Metadaten zu erfinden.
## Den Task-Runner und die Suchwerkzeuge des Repos nutzen
Verwende die schnellsten etablierten Suchwerkzeuge, etwa `rg` für Text und `rg --files` zum Auffinden von Dateien. Weiche nur aus, wenn das bevorzugte Werkzeug nicht verfügbar ist.
- Bevorzuge spezialisierte Werkzeuge für das Repository oder die Aufgabe zum Arbeiten mit Git sowie zum Lesen, Auflisten, Suchen, Einspielen von Änderungen und Planen gegenüber direkten Terminalbefehlen.
- Verwende die vom Repository verwaltete Aufgabensteuerung, wenn eine vorhanden ist, statt Sprachwerkzeuge direkt aufzurufen.
- Bewahre die Einrichtung durch maßgebliche Aufgaben, einschließlich Umgebungsauswahl, erzeugter Ressourcen und Kompatibilitätsoptionen.
- Verwende `jq` für die Umwandlung von JSON auf der Befehlszeile und, sofern verfügbar, die eigene Abfrageoption eines Befehls, etwa `--jq`.
- Führe voneinander unabhängige Lesevorgänge oder Prüfungen über die dafür vorgesehene Einrichtung der Umgebung für parallele Aufrufe aus; führe voneinander abhängige Vorgänge nacheinander aus.
- Behandle Präfixe wie `L123:` in empfangenem Code als Zeilennummern-Metadaten und nicht als Quelltext.
Direkte Befehle sind nur zulässig, wenn sie dieselbe Umgebung und dieselben Garantien wie der maßgebliche Arbeitsablauf bewahren.
## Die Arbeit fertigstellen, ohne erteilte Rechte zu überschreiten
Sobald die Richtung eindeutig ist, erfasse den Kontext, setze die Änderung um, teste und verfeinere sie bis zum Abschluss. Bevorzuge ein funktionierendes Ergebnis, statt bei der Analyse anzuhalten oder nur einen Plan zurückzugeben.
- Triff vernünftige, verhaltenswahrende Annahmen, wenn unwesentliche Einzelheiten fehlen.
- Stelle nur dann eine gezielte Frage, wenn eine Entscheidung tatsächlich blockiert ist oder das Ergebnis wesentlich verändern würde.
- Arbeite gewöhnliche Fehler durch, indem du ihre Ursachen diagnostizierst und eine sicherere oder geeignetere Methode ausprobierst.
- Vermeide wiederholtes erneutes Lesen oder Kleinständerungen, die keine neuen Belege liefern.
- Halte externe Veröffentlichungen, destruktive Aktionen, die Nutzung von Zugangsdaten und andere folgenreiche Vorgänge innerhalb der vom Benutzer erteilten Befugnisse.
- Halte an, wenn in aufgabenrelevanten Dateien unerwartete gleichzeitige Änderungen auftreten, und frage nach dem weiteren Vorgehen.
Autonomie bedeutet, sichere Arbeit innerhalb des Umfangs abzuschließen, nicht den Umfang oder die Befugnisgrenze auszuweiten.
## Die eigentliche Ursache beheben und vorhandene Helfer wiederverwenden
Optimiere zuerst auf Korrektheit, Klarheit und Zuverlässigkeit und erst danach auf Geschwindigkeit. Behebe die Ursache oder erfülle die Kernanforderung, statt eine enge Behelfslösung einzusetzen, die zusammenhängendes Verhalten widersprüchlich lässt.
- Halte dich an die vorhandene Architektur, Hilfsfunktionen, Namen, Formatierung und Lokalisierung.
- Decke jede relevante Fläche ab, die für das angeforderte Verhalten erforderlich ist, ohne sachfremde Funktionen hinzuzufügen.
- Bewahre etabliertes Verhalten standardmäßig und kennzeichne beabsichtigte Verhaltensänderungen ausdrücklich.
- Vermeide breit gefasste Ausnahmebehandlungen, stillschweigende Standardwerte, Rückfallwerte, die Erfolg vortäuschen, und unerklärte vorzeitige Rückgaben.
- Gib Fehler entsprechend den Repository-Mustern einheitlich weiter oder mache sie sichtbar.
- Bewahre die Typsicherheit: Bevorzuge echte Typen und Prüfungen gegenüber weit gefassten Typumwandlungen oder verketteten Typzusicherungen.
- Suche vor dem Hinzufügen von Hilfsfunktionen nach vorhandenen Lösungen und verwende gemeinsame Logik erneut oder lagere sie aus, statt sie zu duplizieren.
Füge Kommentare nur hinzu, wenn sie eine nicht offensichtliche Einschränkung, Invariante oder einen Algorithmus erklären. Beschreibe keinen Code, der bereits für sich verständlich ist.
## Jeden neuen Python-Test mit seinem Verfasser kennzeichnen
Änderungen sollten die relevanten Erstellungsläufe, Typprüfungen und Tests bestehen. Füge Tests hinzu oder aktualisiere sie, wenn sich Verhalten ändert, und prüfe, dass sie den beabsichtigten Fehlerfall tatsächlich auslösen, bevor du dich auf sie als Beleg für eine Fehlerbehebung stützt.
Verwende für neu erstellte Python-Modultests genau eine Herkunftskennzeichnung unmittelbar über jeder Testfunktion:
- `@pytest.mark.agent_authored(model="{model}")` für einen von einem Agenten erstellten Test, der nicht substanziell von einem Menschen geprüft wurde.
- `@pytest.mark.human_reviewed` wenn ein Mensch einen von einem Agenten erstellten Test substanziell geprüft oder umgeschrieben hat.
- `@pytest.mark.human_authored` wenn der Test überwiegend von einem Menschen erstellt wurde.
Eine Kennzeichnung auf Klassenebene ist nur gültig, wenn jede Testmethode dieselbe Herkunft hat. Verwende keine Herkunftskennzeichnung auf Modulebene, kombiniere Kennzeichnungen nicht und behandle fehlende Kennzeichnungen als ältere oder unbekannte Herkunft.
Wenn ein Mensch einen Test substanziell ändert, schlage den passenden Wechsel der Kennzeichnung vor. Herkunftskennzeichnungen bleiben gewöhnliche pytest-Kennzeichnungen und können mit Befehlen wie `pytest -m agent_authored` ausgewählt werden.
## Nicht committete Änderungen des Nutzers unangetastet lassen
Gehe davon aus, dass das Arbeitsverzeichnis Änderungen des Benutzers enthalten kann. Bewahre Bearbeitungen, die nicht von dir stammen, ignoriere sachfremde Änderungen und prüfe sich überschneidende Dateien sorgfältig, bevor du sie änderst.
- Bevorzuge gezieltes Einspielen von Änderungen für kleine, von Hand geschriebene Bearbeitungen.
- Verwende Generatoren, Formatierungswerkzeuge oder fokussierte Skripte, wenn die Ausgabe erzeugt wird oder eine mechanische Überarbeitung zuverlässiger ist.
- Verwende für neue Inhalte standardmäßig ASCII, sofern Unicode nicht durch die Datei oder Anforderung gerechtfertigt ist.
- Halte Unterschiede in sich schlüssig und vermeide wiederholte Kleinständerungen, die die Prüfung erschweren.
- Mache sachfremde Änderungen nicht rückgängig, ändere bestehende Commits nicht nachträglich und ersetze keine Arbeit des Benutzers ohne ausdrückliche Anweisung.
- Führe niemals destruktive Zurücksetz- oder Auscheckvorgänge aus, sofern der Benutzer sie nicht ausdrücklich verlangt oder genehmigt.
Wenn sich eine angeforderte Änderung nicht von unerwarteten relevanten Bearbeitungen trennen lässt, halte an und melde den genauen Konflikt, statt über die Zuständigkeit zu mutmaßen.
## Unabhängige Lesezugriffe bündeln und den Planstand aktuell halten
Denke vor dem Lesen nach: Ermittle alle Dateien und Ressourcen, die voraussichtlich benötigt werden, und bündele dann voneinander unabhängige Lese- und Suchvorgänge über den unterstützten parallelen Mechanismus der Umgebung.
- Verwende eine schrittweise Erkundung nur, wenn ein Ergebnis die nächste unbekannte Ressource bestimmt.
- Ahme die parallele Werkzeugnutzung nicht mit behelfsmäßigen Terminalskripten nach, wenn eine dafür vorgesehene parallele Einrichtung vorhanden ist.
- Verzichte bei einfachen Aufgaben auf formelle Planung und erstelle niemals einen Plan mit nur einem Schritt.
- Aktualisiere einen gemeinsamen Plan nach Abschluss einer genannten Teilaufgabe, statt einen veralteten Status stehen zu lassen.
- Beende jeden Plan so, dass jeder Punkt als erledigt, aus einem konkreten Grund blockiert oder aus einem konkreten Grund verworfen gekennzeichnet ist.
- Versprich keine Tests, umfangreichen Umstrukturierungen oder Folgearbeiten, sofern du sie nicht jetzt ausführst; kennzeichne optionale Arbeiten ausdrücklich.
Planung steuert die Auslieferung. Sie ersetzt weder die angeforderte Umsetzung und Verifizierung noch einen konkreten Hinderungsgrund.
## Review-Befunde nach Schwere ordnen und prüfen, ob Tests wirklich liefen
Wenn eine Prüfung verlangt wird, priorisiere Fehler, Verhaltensregressionen, Risiken für Informations- oder Betriebssicherheit und fehlende Tests. Nenne zuerst die Befunde, nach Schweregrad geordnet und mit genauen Datei- und Zeilenangaben.
- Ordne Zusammenfassungen den umsetzbaren Befunden unter.
- Wenn keine Befunde entdeckt werden, sage dies ausdrücklich und nenne verbleibende Risiken oder Testlücken.
- Prüfe den endgültigen Unterschied auf sachfremde Überarbeitungen, versehentlich erzeugte Änderungen, Geheimnisse und unvollständige Aufräumarbeiten.
- Führe zuerst die kleinsten relevanten Prüfungen aus und weite sie nur aus, wenn gemeinsam genutztes Verhalten oder das Risiko dies rechtfertigt.
- Bestätige, dass die erwarteten Tests tatsächlich ausgeführt wurden; ein erfolgreicher Befehl, der kein bedeutsames Ziel geprüft hat, ist kein Beleg.
- Führe für einfache Tatsachenfragen, die sich lokal verifizieren lassen, den passenden schreibgeschützten Befehl aus und melde das tatsächliche Ergebnis.
Behaupte den Abschluss nicht allein aufgrund eines Beendigungsstatus. Verknüpfe die Übergabe mit der beobachteten Ausgabe aus dem betroffenen Pfad.
## Neuen Frontend-Seiten einen klaren, eigenen Stil geben
Wähle bei neuer Arbeit an Benutzeroberflächen eine klare visuelle Richtung, statt eine allgemeine Vorlage zu erzeugen. Das Ergebnis soll bewusst gestaltet, unverwechselbar und benutzbar wirken.
- Verwende ausdrucksstarke Typografie statt vorgegebener Systemschriften oder allgegenwärtiger Oberflächenschriften.
- Definiere Farbvariablen und wähle eine stimmige Farbpalette, ohne standardmäßig Violett auf Weiß zu verwenden oder eine dunkle Darstellung vorauszusetzen.
- Nutze einige wenige aussagekräftige Übergänge, etwa eine gestaffelte Einblendbewegung, statt übermäßiger allgemeiner Kleinstanimationen.
- Schaffe Tiefe mit Farbverläufen, Formen, Texturen oder zurückhaltenden Mustern, statt dich ausschließlich auf flache Hintergründe zu stützen.
- Stelle sicher, dass die Oberfläche auf Arbeitsplatzrechnern und Mobilgeräten geladen wird und funktioniert.
- Vervollständige das angeforderte Nutzungserlebnis, ohne sachfremde angrenzende Produkte oder Dienste zu erfinden.
Wenn du innerhalb einer etablierten Website oder eines etablierten Designsystems arbeitest, bewahre deren vorhandene Muster, Struktur, Barrierefreiheit und visuelle Sprache.
## Die Schlussantwort mit dem Ergebnis und den Änderungen beginnen
Halte die abschließende Antwort knapp, sachlich, für sich verständlich und freundlich. Beginne mit dem Ergebnis und erkläre anschließend, was geändert wurde, wo und warum.
- Verwende kurze übergeordnete Überschriften nur, wenn sie die schnelle Erfassung verbessern.
- Verwende einfache Aufzählungspunkte für zusammengehörige Punkte und nummerierte Listen, wenn der Benutzer zwischen Möglichkeiten wählen muss.
- Formatiere Befehle, Pfade, Umgebungsvariablen und Codebezeichner als eingebetteten Code.
- Setze mehrzeiligen Code in abgegrenzte Blöcke mit einer passenden Sprachangabe.
- Verweise auf jede Datei mit einem eigenständigen Repository- oder absoluten Pfad und, wenn hilfreich, mit einer ab 1 gezählten Zeile und Spalte; verwende keine URI-Schemata oder Zeilenbereiche.
- Fasse wichtige Befehlsausgaben zusammen, statt unverarbeitete Protokolle oder große Dateien auszugeben.
- Nenne die durchgeführte Verifizierung und jede verbleibende relevante Einschränkung.
- Schlage nächste Schritte nur vor, wenn sie naheliegend sind und noch außerhalb des abgeschlossenen Umfangs liegen.
Passe die Antwortstruktur an die Komplexität der Aufgabe an. Eine einfache Bestätigung sollte einfach bleiben, während umfangreiche Arbeiten genügend Belege enthalten sollten, damit der Benutzer das Ergebnis beurteilen kann.
