Détecter les régressions visuelles avant chaque PR
Une compétence de dépôt qui demande à Devin de prendre une capture d’écran de chaque page concernée et de signaler toute casse de mise en page avant d’ouvrir une PR.Le problème : les bugs CSS échappent aux tests unitaires
Votre suite de tests réussit, la CI est au vert et la PR est fusionnée — mais la page de paramètres affiche désormais du texte qui se chevauche sur mobile, et le bouton de validation de commande a disparu derrière un pied de page. Les tests unitaires et les linters ne détectent pas les régressions visuelles, donc le code est déployé en production et un client le signale.Une compétence de dépôt résout ce problème. Les compétences sont des fichiers Markdown que vous validez dans
.agents/skills/<your-skill>/ dans n’importe lequel de vos dépôts. Devin voit toutes les compétences dans l’ensemble des dépôts connectés — vous pouvez les déclencher manuellement, ou Devin peut choisir de les déclencher automatiquement lorsqu’il détecte une situation pertinente. Cette compétence indique à Devin exactement comment démarrer votre application, naviguer vers les pages affectées par le diff et en faire des captures d’écran à plusieurs largeurs de viewport — à chaque fois, avant chaque PR.Ajoutez la compétence « visual-regression » à votre dépôt
Effectuez un commit d’un fichier à l’emplacement Ce fichier est livré avec votre code. Une fois validé, Devin le considère comme une compétence disponible : dès qu’une session interagit avec des fichiers d’interface utilisateur dans ce dépôt, Devin peut déclencher automatiquement les vérifications de régression visuelle, ou vous pouvez les lancer manuellement à tout moment.
.agents/skills/visual-regression/visual-regression.md qui décrit la checklist de QA manuelle de votre équipe sous forme d’étapes que Devin peut suivre :Adaptez les contrôles à vos pages
Des instructions génériques comme « vérifie que la page s’affiche correctement » produisent des résultats vagues. L’aspect le plus important de cette compétence consiste à dire à Devin à quoi doit ressembler le comportement correct pour chaque partie de votre application.Ajoutez à votre compétence des sections spécifiques à chaque route :Devin analyse le diff, identifie quelles routes ont été modifiées et se reporte à la section correspondante ; ainsi, les vérifications sont ciblées plutôt que génériques.
Regardez-le détecter une véritable régression
Supposons qu’un ingénieur modifie la grille CSS du tableau de bord en passant de
grid-template-columns: repeat(3, 1fr) à repeat(auto-fit, minmax(200px, 1fr)) pour rendre la mise en page responsive. Les tests unitaires passent — aucune logique n’a changé. Mais sur mobile, les cartes débordent désormais du viewport.Quand Devin termine la modification de code, il suit automatiquement cette procédure :- Démarre l’application — installe les dépendances, lance Docker, exécute les migrations, insère les données, démarre le serveur de développement
- Lit le diff — voit que
src/components/Dashboard.tsxa changé, l’associe à la route/dashboard - Fait des captures d’écran à 1280px — la grille à 3 colonnes s’affiche correctement
- Fait des captures d’écran à 375px — repère un débordement horizontal : les cartes ne tiennent pas dans le viewport
- Signale le problème — indique « Horizontal scroll detected on /dashboard at 375px width — metric cards overflow the viewport »
- Corrige le CSS — ajoute
overflow-x: hiddenet ajuste le minimum deminmaxà150px - Refait des captures d’écran — confirme la correction aux deux largeurs
- Ouvre la PR — inclut des captures avant/après et la correction dans la description
