Communitygithub.com

molveau/anti-slop

Supprime l'aspect généré par IA d'une interface utilisateur et lui donne une direction propre. À utiliser lorsqu'un écran, une page d'accueil ou un tableau de bord a l'air générique ou « vibe-codé » (dégradés violets, texte en dégradé, emojis en label, lueur, pilules d'accroche, Inter partout, copie en jargon, espacement inégal), avant de livrer n'importe quelle UI pour vérifier les 20 signes révélateurs.

Qu'est-ce que anti-slop ?

Cette compétence fusionne trois approches pour débarrasser les interfaces utilisateur des signes distinctifs de la génération par IA : la méthode passe-par-passe de *unslop*, la machinerie de direction artistique de *taste-skill*, et une liste actualisée de 20 signes trahis avec un script de détection sans dépendance. Elle aide les développeurs et designers à transformer une UI générique (dégradés, police Inter, emojis, espacement incohérent) en une interface professionnelle et unique, avec une direction artistique claire. Le workflow commence par un « portail de direction » (5 lignes + inventaire), puis suit neuf passes de correction (espacement, couleur, icônes, copie, typographie, mise en page, détails, visuels, motion), et se termine par une vérification automatisée avec le script détecteur. La compétence est compatible avec tout projet web (HTML/CSS, React, Vue, etc.) et s'utilise via un agent IA ou en ligne de commande. Elle inclut des crédits et licences (CC BY 4.0 et MIT) pour les sources adaptées.

Compatible avec✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/molveau/skills/tree/main/skills/anti-slop

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait anti-slop ?

Les interfaces « vibe-codées » échouent toujours de la même manière. Cette compétence fusionne trois choses en un seul flux de travail : la méthode passe-par-passe de unslop, la machinerie de direction artistique de taste-skill, et une liste de 20 signes révélateurs avec un script qui attrape les plus mécaniques.

Crédits et licences

  • La méthode est adaptée de unslop par Damir Sokolovsky (https://github.com/heydamir/unslop), sous licence CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Adaptée : condensée et fusionnée avec taste-skill par Leonxlnx et la liste de signes de Molveau dans references/playbook.md. Gardez ce crédit dans toute copie ou adaptation. L'original est vendu sans modification dans references/vendor/unslop/.
  • Le processus de direction artistique, les règles maison et l'inspecteur viennent de taste-skill par Leonxlnx (https://github.com/Leonxlnx/taste-skill), MIT, vendu sans modification dans references/vendor/taste/.
  • La liste des 20 signes et scripts/detect-tells.mjs sont propres à Molveau (MIT).
  • scripts/story.mjs est adapté du rendu de unslop (CC BY 4.0, changements listés dans son en-tête) ; il reste CC BY 4.0, tout comme scripts/story-server.mjs, son serveur local. scripts/story-contrast.mjs est propre à Molveau (MIT).

Commencez ici

Lisez references/playbook.md en premier, en commençant par son bloc « Faites ceci d'abord » ; ouvrez les fichiers vendus uniquement pour approfondir ou pour des exemples concrets. Le playbook est la doctrine fusionnée (direction, passes, copie, espacement, couleur, typographie, icônes, détails, données, écrans d'application, imagerie, motion, vérifications) avec des balises de source et les décisions prises lorsque les sources divergent. Le tableau « Quand lire quoi » ci-dessous est l'index de profondeur.

Chevauchement : ceci est la passe anti-look IA. Les lignes de critique de la compétence ui sont la revue de design générale plus légère, et design-grill est l'audit multi-lentilles approfondi ; utilisez-les pour la qualité du design au-delà des signes.

Portail de direction

Faites ceci avant tout code pour une nouvelle page ou un nouvel écran, et comme étape 3 de chaque session de slop lourd, même lorsque la demande est d'une ligne ou dit de simplement le faire. Le reste de cette compétence supprime les erreurs ; elle ne donne pas de caractère à un écran. Si ignoré, le résultat est la page médiane que chaque modèle produit : juste dans les détails, n'appartenant à personne.

  1. Cinq lignes. Produit : ce qu'il fait, pour qui. Caractère : deux ou trois mots concrets (« calme, précis, un peu chaud »), jamais propre, moderne, élégant, minimal ou premium. Monde : le lieu ou le matériau auquel le produit appartient ; il teinte les neutres et définit l'accent. Moments : les un ou deux endroits qui reçoivent une couleur et des détails riches. Signature : un petit détail que seul ce produit a, utilisé de manière cohérente. Un moment est dessiné avec soin, pas seulement nettoyé : un graphique redessiné pour ce qu'il doit dire (lignes lisses, une comparaison en miroir, une échelle réelle), ou l'objet propre du produit rendu avec poids et lumière.
  2. Inventaire, puis l'idée. Listez 8 à 12 choses qu'aucun concurrent ne partage (nom, rue, chiffres du brief, matériaux, outils, rituels, documents que le métier imprime). Écrivez : « Sur cet écran, [un élément] devient [le dispositif] ». Ce dispositif est le moment.
  3. Refusez les valeurs par défaut de second ordre sauf si la marque les possède déjà. Ce sont ce qu'un modèle atteint une fois les signes évidents bannis :
    • une page crème, pierre ou blanc chaud avec un accent orange brûlé, terre cuite, sauge ou forêt, avec ou sans titre en sérif (le look « papier et encre » est le nouveau défaut, pas une direction) ;
    • Fraunces, Instrument Serif, Playfair ou Georgia comme police de titre par réflexe ; system-ui comme seule police ;
    • Inter ou Geist sur blanc avec un accent indigo ou bleu ;
    • hero, trois fonctionnalités, témoignages, appel à l'action, dans cet ordre, sans argument pour cela ; sur un écran d'application, quatre cartes de statistiques égales au-dessus d'un graphique à barres ;
    • un accroche centrée, un titre et deux boutons comme seul premier écran.
  4. Test d'échange. Remplacez le nom et le métier par ceux d'un concurrent. Si l'écran correspond toujours, changez la revendication, le moment et la signature, et testez à nouveau.
  5. Montrez et attendez. Montrez les cinq lignes et l'idée, et attendez le propriétaire. Si vous ne pouvez pas demander (l'utilisateur a dit de simplement construire, ou vous travaillez sans personne), écrivez-les comme commentaire en haut du fichier principal et construisez exactement cela.

Profondeur : playbook anti-slop §2 (direction) et §12 (écrans d'application) ; la compétence design-inspiration-index pour des références réelles.

L'idée centrale

Le slop répand la couleur et les effets sur le chrome : arrière-plans, boutons, bordures, étiquettes. Le savoir-faire garde le chrome discret et met la richesse dans un ou deux moments de contenu dont les gens se souviennent. Supprimer le slop est la moitié du travail ; un écran propre qui pourrait appartenir à n'importe quel produit est le prochain modèle. Chaque session se termine par un écran que seul ce produit pourrait avoir.

Ordre de travail

  1. Page de zéro ou refonte profonde ? Suivez le processus de taste-skill (references/vendor/taste/taste-skill.md) avec les surcharges du playbook. Écrans d'application : playbook §12.
  2. Regardez l'écran, rendu si possible, pas seulement le code.
  3. Auditez par rapport à la liste des signes (references/vendor/unslop/unslop/references/signs.md) et les 20 signes (references/tells.md). Une ligne par signe, avec son emplacement.
  4. Estimez le travail (lourd, léger, pas de slop) et écrivez la direction, puis attendez le propriétaire (playbook §1 et §2).
  5. Corrigez en neuf passes, chacune sur tout l'écran : espacement, couleur, icônes, copie, typographie, mise en page, détails, visuels, motion (playbook §3 à §14).
  6. Vérifiez avec la checklist du playbook, exécutez le détecteur, comparez avec l'audit (playbook §15).
  7. Rapportez la direction, quelques lignes par passe, et chaque revendication que vous avez retirée ou ne pouviez pas vérifier.

Les 20 signes

Tableau complet avec remplacements : references/tells.md. Résumé, avec ce que le script attrape :

#SigneScript
1Dégradé violet/fuchsia/indigooui
2Texte en dégradéoui
3Emoji dans la copieoui
4Inter ou Space Grotesk partoutnon
5Bordure latérale coloréeoui
6Glassmorphisme décoratifoui
7Mode sombre faible contrastenon
8Trois boîtes d'icônes en lignenon
9Pilule d'accroche au-dessus du titrenon
10Lucide par défautoui
11shadcn/ui non modifiénon
12Fondu au défilementoui
13Lueur suivant le curseurnon
14Fondu au survol sur les boutonsoui
15Espacement incohérentnon
16Tiret cadratin dans la copieoui
17Copie en jargonoui
18Mots d'accent en italique sérifnon
19Space Grotesk avec son partenaire sérif d'affichage habituel (paire dans references/tells.md)oui
20Grain sur un dégradénon

Le détecteur

node <dossier compétence>/scripts/detect-tells.mjs [--json] [--include-tests] <chemins...>

Zéro dépendance, Node 20 ou plus récent, aucune importation en dehors de ce dossier de compétence, donc cela fonctionne lorsque la compétence est installée seule. Sortie 0 propre, 1 résultats, 2 utilisation. Il ignore node_modules .git .next dist build .open-next coverage et les fichiers de test. Il rapporte chemin:ligne #étiquette de signe correspondance. Les limites sont listées à la fin de references/tells.md ; traitez un résultat comme « regardez ici ».

Test à cliquet dans un projet

Un cliquet épingle le nombre d'aujourd'hui et échoue lorsqu'il augmente, de sorte que les signes ne peuvent que diminuer. Esquisse pour node:test (adaptez les chemins et la base de référence) :

import { test } from 'node:test';
import assert from 'node:assert/strict';
import { readFileSync, globSync } from 'node:fs'; // globSync nécessite Node 22 ; sur 20, parcourez les dossiers vous-même
import { detectTells } from './.agents/skills/anti-slop/scripts/detect-tells.mjs';

const BASELINE = { 10: 8, 5: 1 }; // numéro de signe -> résultats autorisés aujourd'hui
test('aucun nouveau signe vibe-codé', () => {
  const files = globSync('{app,components}/**/*.{ts,tsx,css}').map((path) => ({ path, text: readFileSync(path, 'utf8') }));
  const now = {};
  for (const f of detectTells(files)) now[f.tell] = (now[f.tell] ?? 0) + 1;
  for (const [tell, n] of Object.entries(now)) assert.ok(n <= (BASELINE[tell] ?? 0), `signe ${tell} : ${n} résultats, base ${BASELINE[tell] ?? 0}`);
});

Abaissez la base de référence chaque fois que vous en corrigez un ; ne l'augmentez jamais.

Vidéo d'histoire

Un clip carré, d'environ 10 secondes, où l'écran se déslope étape par étape avec des lignes rouges. Faites-le uniquement lorsqu'on vous le demande. Construisez le fichier d'histoire exactement comme décrit dans la section « Story video » de unslop (references/vendor/unslop/unslop.md : un story.html, CSS .s1 à .s5 par-dessus, data-gap, data-radius, data-slop, échanges), puis rendez-le avec le rendu adapté de cette compétence :

node <dossier compétence>/scripts/story.mjs unslop-story/story.html unslop-story.mp4   # --wide pour 16:9, --play pour regarder

Ce qu'il ajoute au rendu de unslop :

  • Une étape d'accessibilité. Une étape dont le nom contient Accessibilité affiche des mesures en direct. Mettez data-contrast sur deux à quatre éléments de texte dont le contraste change ; chacun affiche son ratio WCAG, rouge en dessous de 4.5:1 (3:1 pour les grands textes), blanc avec AA une fois réussi, gris ? lorsqu'une couleur ne peut pas être lue (comme lab() ou color(display-p3 ...)) : utilisez des couleurs sRGB, hex ou oklch() sur ces éléments. Mettez data-target sur une ou deux commandes ; chacune affiche sa taille, rouge en dessous de 24 par 24 px. Choisissez des éléments qui échouent dans l'avant ; ne marquez jamais un élément qui échoue encore dans l'après.
  • Une légende, <meta name="story-caption" content="...">, en bas à gauche. Indiquez uniquement ce qui est vrai de la session, comme le modèle et le fait que l'écran n'a pas été édité à la main.
  • Le crédit molveau/skills · unslop method by @heydamir est dessiné sur chaque image, comme le demande la licence CC BY 4.0 de unslop. Ne le supprimez pas.

L'histoire est une présentation de fichiers réels : l'étape 0 est l'avant tel qu'il était, et la dernière étape est égale au fichier propre que vous livrez. Ne peaufinez pas l'histoire au-delà de l'écran livré.

Quand lire quoi

BesoinLire
Les règles fusionnées, les valeurs et les appels de conflitreferences/playbook.md
Les 20 signes avec remplacements et les limites du détecteurreferences/tells.md
La méthode complète de unslop, direction, neuf passes, checklist, vidéo d'histoirereferences/vendor/unslop/unslop.md
Valeurs exactes (espacement, échelle typographique, rampes, courbes de motion)references/vendor/unslop/unslop/references/tokens.md (ses valeurs de motion sont remplacées : le playbook ui §10 et motion §5 gagnent, conflit 19 du playbook)
La liste d'audit des signesreferences/vendor/unslop/unslop/references/signs.md
Visuels hero, invites d'image, quels styles fonctionnentreferences/vendor/unslop/unslop/references/visuals.md
Code de glyphe, tramage, dither et duotonereferences/vendor/unslop/unslop/references/effects.md
Écrans de référence terminés (images)references/vendor/unslop/unslop/references/refs.md
Instantané d'une URL en direct pour travailler sur une copiereferences/vendor/unslop/unslop/scripts/snapshot.mjs
Une page de zéro ou une refonte profonde : inventaire, direction traitée, idée, règles maison, portailreferences/vendor/taste/taste-skill.md
Tableaux de bord, écrans d'administration et de paramètres en profondeurreferences/vendor/taste/taste-skill/references/app-screens.md
Jeu de copie, arithmétique à deux lignes, preuve sans inventerreferences/vendor/taste/taste-skill/references/copy.md
Échelle typographique, affichage, chargement de policesreferences/vendor/taste/taste-skill/references/type.md
Rôles de palette, champs, pages sombres, contrastereferences/vendor/taste/taste-skill/references/colour.md
Marges, espace vide, le cadre, sections, le téléphonereferences/vendor/taste/taste-skill/references/layout.md
Trouver, créditer, placer et traiter images et vidéosreferences/vendor/taste/taste-skill/references/imagery.md
Recettes de motion (opt-in : playbook motion §9) et scènes de défilementreferences/vendor/taste/taste-skill/references/motion.md, references/vendor/taste/taste-skill/references/scenes.md
Juger un résultat avec une grille d'évaluationreferences/vendor/taste/taste-skill/references/critique.md
Le registre des signes datés par vaguereferences/vendor/taste/taste-skill/references/tells.md
L'étude derrière les chiffres de tastereferences/vendor/taste/taste-skill/references/research.md

Les fichiers vendus conservent leur mise en page amont, donc quelques liens relatifs à l'intérieur peuvent ne pas résoudre ici. Les scripts de taste-skill lisent son dossier library/ (ne le lisez pas en entier ; exécutez draw.mjs) ; certains scripts nécessitent Node 22, un navigateur, Playwright, ffmpeg ou un accès réseau. Les vérifications visuelles à exécuter sont décidées dans le playbook ui, conflit 14 (le conflit 14 de ce playbook y renvoie).

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

molveau/design-inspiration-index

Routing index for design inspiration. Use when you need visual references or ideas for a UI (a hero, landing page, SaaS page, navbar, CTA, motion or micro-interaction, brand or rebrand, component, icon) and want to know which curated gallery to pull from. Maps a need to the best source among galleries, component registries and optional MCP servers. Use it before hunting blindly for inspiration.

molveau/ui

Builds, restyles, polishes and reviews user interfaces with taste. Use when building, restyling or improving a UI, page, screen or component, including a hero, navbar, header, cards, a form or a section ("make it better", "make it pop", "add polish"); working on layout, spacing, typography, color, dark mode or design tokens; polishing hover and focus states or details when something "feels off"; responsive or mobile layout; critiquing, auditing or redesigning an interface; doing a design review or UI roast; simplifying or making a design bolder; or writing prompts that get production-grade UI out of an AI tool.

molveau/vitrine

Playbook for a vitrine, a business showcase / brochure site for a local business. Use at the start of a small business website, brochure site, landing page for a local business, service-business site, or when adding pricing, booking, city pages, local SEO, bilingual FR/EN or a Québec privacy setup to one. Says what such a site needs, in which order to apply the ui, ux, anti-slop, motion, french-typography and loi-25-website skills, and gives a done checklist.

Skills associés