agentleFS
VincwebVincweb/caudron-plugin/skills/design-audit/SKILL.md

design-audit

Skill0 starsChanged 3 months agoMITView on GitHub

Audite les composants UI React contre les design patterns Caudron — boutons, formulaires, états de chargement, gestion d'erreurs, modales, états vides, accessibilité. Utiliser quand on demande un audit de design, une revue UI/UX, ou une vérification de cohérence des composants.

19 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use canvas-generative, compose-graphics and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • JwuthriSkill

    canvas-generative

    Algorithmic and generative art with Canvas 2D - particles, flow fields, noise, fractals, L-systems.

    Also in 3 projects that use this

  • JwuthriSkill

    compose-graphics

    Advanced Compose visuals - Material 3 Expressive motion physics, AGSL shaders (Android 13+), Canvas/DrawScope generative, graphicsLayer effects.

    Also in 3 projects that use this

  • soilmassSkill

    motion-principles

    Motion design philosophy and principles from major design systems. Use when understanding why animations should behave certain ways, learning motion fundamentals, or aligning with design system philosophy. References M3, Carbon, Fluent, and Apple HIG principles.

    Also in 3 projects that use this

  • +9 more from Jwuthri

The file

Files
SKILL.md

Skill: Design Audit

Analyse le code source pour détecter les écarts avec les design patterns documentés.

Objectif

Comparer l'implémentation réelle des composants UI avec les règles définies dans ${CLAUDE_PLUGIN_ROOT}/blueprints/design-patterns/ et identifier les violations.

Prérequis

Lire les blueprints de référence embarqués dans le plugin :

  • ${CLAUDE_PLUGIN_ROOT}/blueprints/design-patterns/README.md
  • ${CLAUDE_PLUGIN_ROOT}/blueprints/design-patterns/components/*.md
  • ${CLAUDE_PLUGIN_ROOT}/blueprints/design-patterns/patterns/*.md

Les chemins de code audités (src/) sont relatifs à la racine du projet analysé.

Exécution

Sur un projet de taille non triviale, déléguer à l'agent design-auditor (read-only) plutôt que de tout lire soi-même. Il peut tourner en parallèle de architecture-auditor et clean-code-auditor si un audit complet est demandé.

Règles d'Audit

Boutons (BTN-*)

IDRègleSévéritéPattern de Détection
BTN-001Un seul bouton primaire par page/vueHIGHChercher plusieurs variant="default" dans le même fichier page
BTN-002Ordre des boutons (Annuler gauche, Primaire droite)MEDIUMVérifier l'ordre des boutons dans les footers
BTN-003État de chargement pour actions asyncHIGHChercher onClick avec mutation sans disabled={isPending}
BTN-004Confirmation pour actions destructivesHIGHChercher variant="destructive" avec onClick direct (sans dialog)
BTN-005aria-label pour boutons icônesMEDIUMChercher size="icon" sans aria-label

Formulaires (FRM-*)

IDRègleSévéritéPattern de Détection
FRM-001Label au-dessus, pas placeholder comme labelHIGHChercher <input> avec placeholder mais sans <label> associé
FRM-002Champs requis marqués avec *LOWVérifier les champs required ont un indicateur visuel
FRM-003Erreurs inline sous le champMEDIUMChercher toast.error pour erreurs de validation (devrait être inline)
FRM-004Spinner dans bouton soumissionHIGHChercher type="submit" sans gestion de isPending
FRM-005Garder données en cas d'erreurHIGHChercher reset() ou setFormData({}) dans les handlers onError

Chargement (LD-*)

IDRègleSévéritéPattern de Détection
LD-001Skeleton correspond au contenuMEDIUMVérifier que les skeletons correspondent au layout réel
LD-002Spinner dans bouton, pas pleine pageHIGHChercher spinner pleine page (fixed inset-0) pour des fetches
LD-003Garder contenu pendant refetchMEDIUMChercher if (isLoading) return sans distinction isFetching
LD-004Pas de skeleton pour formulairesLOWChercher Skeleton dans les formulaires (devrait pré-remplir)

Erreurs (ERR-*)

IDRègleSévéritéPattern de Détection
ERR-001Erreurs validation inline, pas toastHIGHChercher toast.error pour erreurs de validation de champ
ERR-002Messages d'erreur conviviauxMEDIUMChercher error.message ou error.stack affichés directement
ERR-003Option de réessai pour erreurs chargementMEDIUMChercher états d'erreur sans bouton refetch ou "Réessayer"
ERR-004Toasts d'erreur persistantsLOWVérifier configuration des toasts d'erreur (pas de auto-dismiss)

Modales (MDL-*)

IDRègleSévéritéPattern de Détection
MDL-001Pas de modales imbriquéesHIGHChercher <Dialog> à l'intérieur d'un autre <Dialog>
MDL-002Titres descriptifsMEDIUMChercher DialogTitle avec "Êtes-vous sûr" ou contenu générique
MDL-003Vérification modifications non sauvegardéesMEDIUMChercher Dialog avec formulaire sans isDirty check
MDL-004Max 6 champs dans formulaire modalLOWCompter les inputs dans les DialogContent

États vides (EMP-*)

IDRègleSévéritéPattern de Détection
EMP-001Message + action pour états videsHIGHChercher length === 0 retournant null ou juste du texte sans action
EMP-002Message spécifique au contexteMEDIUMChercher messages génériques "Pas de données", "Aucun élément"
EMP-003Ton positif orienté actionLOWVérifier le wording des états vides

Cartes (CRD-*)

IDRègleSévéritéPattern de Détection
CRD-001Padding standard p-6LOWChercher <Card> sans padding ou avec padding non-standard
CRD-002Grille responsiveMEDIUMChercher grilles de cartes sans classes responsive (md:grid-cols-2)

Commandes de Détection

BTN-001: Bouton primaire unique

grep -rE "variant=['\"]default['\"]" src/pages/ --include="*.tsx" -c | awk -F: '$2 > 1'

BTN-004: Suppression sans confirmation

grep -rE "variant=['\"]destructive['\"].*onClick=\{[^}]*delete" src/ --include="*.tsx" | grep -v "setShow\|setOpen\|Confirm"

BTN-005: Boutons icônes sans aria-label

grep -rE "size=['\"]icon" src/ --include="*.tsx" | grep -v "aria-label"

FRM-001: Input sans label

grep -rE "<(Input|input).*placeholder=" src/ --include="*.tsx"

FRM-003: Toast pour erreurs de validation

grep -rE "toast\.error.*invalid|toast\.error.*required|toast\.error.*validation" src/ --include="*.tsx" -i

LD-002: Spinner pleine page pour fetch

grep -rE "fixed inset-0.*Spinner|Spinner.*fixed inset-0" src/pages/ --include="*.tsx"

ERR-001: Toast pour validation

grep -rE "toast\.error.*form|toast\.error.*field|toast\.error.*input" src/ --include="*.tsx" -i

ERR-002: Messages techniques exposés

grep -rE "error\.(message|stack)|\.message\}" src/ --include="*.tsx" | grep -v "getErrorMessage\|formatError"

MDL-001: Modales imbriquées

grep -rE "<Dialog" src/ --include="*.tsx" -A 50 | grep -E "DialogContent.*Dialog"

MDL-002: Titres génériques

grep -rE "DialogTitle.*[Êê]tes-vous|DialogTitle.*[Aa]re you sure|DialogTitle.*[Cc]onfirm" src/ --include="*.tsx"

EMP-001: États vides sans action

grep -rE "\.length === 0.*return" src/ --include="*.tsx" | grep -v "Button\|Link\|action"

Classification des Sévérités

SévéritéCritères
HIGHImpact UX majeur, confusion utilisateur, perte de données potentielle
MEDIUMDéviation du pattern, UX dégradée
LOWConvention/style, amélioration mineure

Format de Rapport

Le rapport généré doit inclure :

  1. Résumé — Totaux par sévérité
  2. Violations par catégorie — BTN-, FRM-, LD-, ERR-, MDL-, EMP-, CRD-* avec fichier, ligne, description
  3. Tâches recommandées — Actions de remédiation priorisées
  4. Couverture des règles — Status PASS/FAIL par règle

Principes

  • Non-destructif : Ne jamais modifier le code source
  • Basé sur preuves : Chaque violation cite fichier et ligne
  • Actionnable : Chaque violation a une action de remédiation claire
  • Priorisé : Focus sur violations à fort impact
  • Déterministe : Même codebase = même rapport

Exceptions Connues

Certains patterns sont intentionnels :

  • Les pages de paramètres peuvent avoir plusieurs boutons primaires (sauvegarde par section)
  • Les formulaires multi-étapes peuvent dépasser 6 champs au total
  • Les confirmations système peuvent utiliser des titres génériques

Règles à vérifier manuellement

Certaines règles nécessitent une vérification visuelle :

  1. Skeleton correspond au layout — Le skeleton doit avoir la même structure que le contenu réel
  2. Ordre des boutons — Annuler à gauche, action principale à droite
  3. Ton des messages d'état vide — Positif et orienté action
  4. Grille de cartes responsive — 1 colonne mobile, 2-3 colonnes desktop

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.