Que fait unslop-audit ?
Procédure
- Rassemble les preuves à partir du code et, si possible, de l’app en cours : routes, composants, points d’API, tables de base de données, variables d’environnement, configuration docker-compose/proxy.
- Note chaque dimension de 0 à 4 en utilisant la rubrique ci-dessous. Un score doit être accompagné d’une raison avec un fichier ou une route.
- Liste les « tells » issus de « Indices de structure ». Une ligne par tell, avec l’emplacement.
- Classe les constats : Bloqueur (sécurité, perte de données, légal, effets de bord externes) → Lacune (un flux entier manquant) → Rugosité (incohérent ou inachevé) → Polissage.
- Rédige le rapport selon le modèle ci-dessous.
Rubrique (0 = absent, 2 = fonctionne mais maigre, 4 = délibéré)
| Dimension | 4 signifie |
|---|---|
| Identité et accès | Connexion, déconnexion, réinitialisation, invitation, rôles appliqués côté backend, propriété des données, limites de débit |
| Onboarding | La première utilisation explique la boucle, collecte ce dont le produit a besoin, se termine par un premier succès |
| Boucle principale | Démarrer, progresser, obtenir un résultat, réessayer, annuler, exporter existent tous et sont liables |
| Paramètres | Profil, équipe, notifications, intégrations, export et suppression des données ; rien d’important ne vit uniquement dans des variables d’environnement |
| États | Chaque écran a les états vide, chargement, erreur, partiel, hors ligne, pas d’autorisation, limite atteinte |
| Structure | Routes réelles, liens profonds par entité, pagination, filtres, navigation cohérente |
| Copy | Spécifique, humaine, pas d’erreurs brutes, pas d’expressions génériques, une seule voix |
| Visuels | Tokens pour espace/couleur/typo, chrome discret, un élément focal délibéré, mobile fonctionne |
| Composants | Chaque écran possède un composant signature choisi pour sa forme de données ; pas de tableau/carte KPI/formulaire par défaut ; lecture d’abord avec modification à un niveau de profondeur |
Total /36. Moins de 14 : prototype. 14-23 : utilisable en interne. 24-31 : publiable. 32+ : délibéré.
Indices de structure (apps construites par IA)
- Un composant de 800+ lignes rend tout le produit ; pas de routeur.
- Authentification uniquement dans une config proxy ou commentée ; API ouverte.
- Textes de confirmation qui disent « pour tous les utilisateurs » ou données sans propriétaire.
- Les paramètres n’existent que comme variables d’environnement ou pas du tout.
- L’interface rafraîchit chaque élément à chaque rafraîchissement (N+1 côté client).
- « À venir », pages placeholder, boutons morts, lorem ipsum, données de seed présentées comme réelles.
- Du support est promis dans les textes d’erreur mais aucun contact n’existe.
- Statuts sans explication ; le même état nommé de trois façons.
- Pas de page 404/403/500 ; le fallback SPA sert le shell pour tous les chemins.
- Emails sortants ou webhooks sans aperçu, test d’envoi, historique, limite de débit ou désabonnement.
- Tableaux de bord avec des cartes décoratives sans action derrière.
- Écrans construits sur la silhouette par défaut : titre, rangée de cartes KPI, tableau avec contrôles d’édition dans les cellules, formulaire (voir
unslop-components).
Modèle de rapport
# Audit : <app> - <date>
Score : <n>/36 (<tranche>)
## Bloqueurs
- <constat> - <fichier/route> - <pourquoi c’est important> - <correction minimale>
## Lacunes
## Rugosités
## Polissages
## Scores
| Dimension | Score | Raison |
## Non vérifié