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
- matheus3006/my-claude-skillstheir own version, first seen Nov 8, 2026
- Aboudjem/ui-ux-suitetheir own version, first seen Nov 8, 2026
- JoaoEquer/Oficinatheir own version, first seen Nov 1, 2026
- tznc/treqtheir own version, first seen Nov 1, 2026
- treq-dev/treqtheir own version, first seen Nov 1, 2026
- frankxai/starlight-design-intelligencetheir own version, first seen Oct 24, 2026
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.
JwuthriSkillcanvas-generative
Algorithmic and generative art with Canvas 2D - particles, flow fields, noise, fractals, L-systems.
Also in 3 projects that use this
JwuthriSkillcompose-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
soilmassSkillmotion-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
Other versions19 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 19
- UniClipboard/UniClipboard★ 2ksame name
- Jwuthri/Tracely-ai★ 1.3ksame name
- jwuthri-cloud/Tracely-ai★ 979same name
- AThevon/genjutsu★ 758same name
- tdimino/claude-code-minoan★ 41same name
- excatt/superclaude-plusplus★ 14same name
- devanshuDesai/agent-skills★ 11same name
- Aboudjem/ui-ux-suite★ 8same name
- treq-dev/treq★ 5same name
- tznc/treq★ 5same name
9 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- architecture-auditSkill
- clean-code-auditSkill
- diff-auditSkill
The file
Files
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-*)
| ID | Règle | Sévérité | Pattern de Détection |
| BTN-001 | Un seul bouton primaire par page/vue | HIGH | Chercher plusieurs variant="default" dans le même fichier page |
| BTN-002 | Ordre des boutons (Annuler gauche, Primaire droite) | MEDIUM | Vérifier l'ordre des boutons dans les footers |
| BTN-003 | État de chargement pour actions async | HIGH | Chercher onClick avec mutation sans disabled={isPending} |
| BTN-004 | Confirmation pour actions destructives | HIGH | Chercher variant="destructive" avec onClick direct (sans dialog) |
| BTN-005 | aria-label pour boutons icônes | MEDIUM | Chercher size="icon" sans aria-label |
Formulaires (FRM-*)
| ID | Règle | Sévérité | Pattern de Détection |
| FRM-001 | Label au-dessus, pas placeholder comme label | HIGH | Chercher <input> avec placeholder mais sans <label> associé |
| FRM-002 | Champs requis marqués avec * | LOW | Vérifier les champs required ont un indicateur visuel |
| FRM-003 | Erreurs inline sous le champ | MEDIUM | Chercher toast.error pour erreurs de validation (devrait être inline) |
| FRM-004 | Spinner dans bouton soumission | HIGH | Chercher type="submit" sans gestion de isPending |
| FRM-005 | Garder données en cas d'erreur | HIGH | Chercher reset() ou setFormData({}) dans les handlers onError |
Chargement (LD-*)
| ID | Règle | Sévérité | Pattern de Détection |
| LD-001 | Skeleton correspond au contenu | MEDIUM | Vérifier que les skeletons correspondent au layout réel |
| LD-002 | Spinner dans bouton, pas pleine page | HIGH | Chercher spinner pleine page (fixed inset-0) pour des fetches |
| LD-003 | Garder contenu pendant refetch | MEDIUM | Chercher if (isLoading) return sans distinction isFetching |
| LD-004 | Pas de skeleton pour formulaires | LOW | Chercher Skeleton dans les formulaires (devrait pré-remplir) |
Erreurs (ERR-*)
| ID | Règle | Sévérité | Pattern de Détection |
| ERR-001 | Erreurs validation inline, pas toast | HIGH | Chercher toast.error pour erreurs de validation de champ |
| ERR-002 | Messages d'erreur conviviaux | MEDIUM | Chercher error.message ou error.stack affichés directement |
| ERR-003 | Option de réessai pour erreurs chargement | MEDIUM | Chercher états d'erreur sans bouton refetch ou "Réessayer" |
| ERR-004 | Toasts d'erreur persistants | LOW | Vérifier configuration des toasts d'erreur (pas de auto-dismiss) |
Modales (MDL-*)
| ID | Règle | Sévérité | Pattern de Détection |
| MDL-001 | Pas de modales imbriquées | HIGH | Chercher <Dialog> à l'intérieur d'un autre <Dialog> |
| MDL-002 | Titres descriptifs | MEDIUM | Chercher DialogTitle avec "Êtes-vous sûr" ou contenu générique |
| MDL-003 | Vérification modifications non sauvegardées | MEDIUM | Chercher Dialog avec formulaire sans isDirty check |
| MDL-004 | Max 6 champs dans formulaire modal | LOW | Compter les inputs dans les DialogContent |
États vides (EMP-*)
| ID | Règle | Sévérité | Pattern de Détection |
| EMP-001 | Message + action pour états vides | HIGH | Chercher length === 0 retournant null ou juste du texte sans action |
| EMP-002 | Message spécifique au contexte | MEDIUM | Chercher messages génériques "Pas de données", "Aucun élément" |
| EMP-003 | Ton positif orienté action | LOW | Vérifier le wording des états vides |
Cartes (CRD-*)
| ID | Règle | Sévérité | Pattern de Détection |
| CRD-001 | Padding standard p-6 | LOW | Chercher <Card> sans padding ou avec padding non-standard |
| CRD-002 | Grille responsive | MEDIUM | Chercher 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" -iLD-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" -iERR-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 |
| HIGH | Impact UX majeur, confusion utilisateur, perte de données potentielle |
| MEDIUM | Déviation du pattern, UX dégradée |
| LOW | Convention/style, amélioration mineure |
Format de Rapport
Le rapport généré doit inclure :
- Résumé — Totaux par sévérité
- Violations par catégorie — BTN-, FRM-, LD-, ERR-, MDL-, EMP-, CRD-* avec fichier, ligne, description
- Tâches recommandées — Actions de remédiation priorisées
- 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 :
- Skeleton correspond au layout — Le skeleton doit avoir la même structure que le contenu réel
- Ordre des boutons — Annuler à gauche, action principale à droite
- Ton des messages d'état vide — Positif et orienté action
- Grille de cartes responsive — 1 colonne mobile, 2-3 colonnes desktop
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
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.

