Visuelle Regressionen vor jedem PR erkennen
Ein Repo-Skill, mit dem Devin jede betroffene Seite per Screenshot erfasst und Layoutprobleme meldet, bevor ein PR erstellt wird.Das Problem: CSS-Bugs bleiben in Unit-Tests unentdeckt
Ihre Test-Suite läuft durch, CI ist grün und der PR wird gemergt — aber auf der Einstellungsseite überlagern sich jetzt Texte auf Mobilgeräten, und der Checkout-Button ist hinter dem Footer verschwunden. Unit-Tests und Linter erkennen visuelle Fehler nicht, sodass der Fehler in Produktion landet und ein Kunde ihn meldet.Ein Repository-Skill löst dieses Problem. Skills sind Markdown-Dateien, die Sie in
.agents/skills/<your-skill>/ in einem Ihrer Repositories committen. Devin sieht alle Skills in allen verbundenen Repositories — Sie können sie manuell triggern, oder Devin kann sie automatisch triggern, wenn eine relevante Situation erkannt wird. Dieser Skill sagt Devin genau, wie es Ihre App starten, zu den vom Diff betroffenen Seiten navigieren und dort bei mehreren Viewport-Breiten Screenshots aufnehmen soll — jedes Mal, vor jedem PR.Fügen Sie den Skill visual-regression zu Ihrem Repo hinzu
Committe eine Datei unter dem Pfad Diese Datei wird mit Ihrem Code ausgeliefert. Sobald sie committed ist, betrachtet Devin sie als verfügbare Fähigkeit – immer wenn eine Sitzung UI-Dateien in diesem Repo bearbeitet, kann Devin die visuellen Regressionstests automatisch ausführen, oder Sie können sie jederzeit manuell anstoßen.
.agents/skills/visual-regression/visual-regression.md, in der die manuelle QA-Checkliste deines Teams als Schritte codiert ist, denen Devin folgen kann:Passen Sie die Checks an Ihre Seiten an
Generische Anweisungen wie „überprüfe, ob die Seite richtig aussieht“ führen zu vagen Ergebnissen. Der wertvollste Teil dieses Skills besteht darin, Devin zu sagen, wie „korrekt“ für jeden Bereich deiner App aussieht.Füge deinem Skill routenspezifische Abschnitte hinzu:Devin liest das Diff, identifiziert, welche Routen betroffen waren, und folgt dem entsprechenden Abschnitt – sodass die Prüfungen gezielt statt generisch sind.
Sehen Sie, wie es einen echten Regressionsfehler erkennt
Nehmen wir an, eine Entwicklerin ändert das CSS-Grid auf dem Dashboard von
grid-template-columns: repeat(3, 1fr) zu repeat(auto-fit, minmax(200px, 1fr)), um das Layout responsiv zu machen. Die Unit-Tests bestehen – es wurde keine Logik geändert. Aber auf Mobilgeräten ragen die Karten jetzt über den Viewport hinaus.Wenn Devin die Codeänderung abgeschlossen hat, führt es diese Fähigkeit automatisch aus:- Startet die App — installiert Abhängigkeiten, startet Docker, führt Migrationen aus, seedet Daten, startet den Dev-Server
- Liest das Diff — erkennt, dass sich
src/components/Dashboard.tsxgeändert hat, und ordnet es der Route/dashboardzu - Macht Screenshots bei 1280px — das 3-Spalten-Grid wird korrekt gerendert
- Macht Screenshots bei 375px — erkennt horizontalen Überlauf: Die Karten passen nicht in den Viewport
- Markiert das Problem — meldet „Horizontaler Bildlauf auf /dashboard bei 375px Breite erkannt — Metrik-Karten ragen über den Viewport hinaus“
- Behebt das CSS — fügt
overflow-x: hiddenhinzu und passt dasminmax-Minimum auf150pxan - Erstellt erneut Screenshots — bestätigt die Korrektur bei beiden Breiten
- Öffnet den PR — fügt Vorher-/Nachher-Screenshots und die Korrektur in die Beschreibung ein
