# Feature Checklist Checklist à suivre lors de l'ajout ou de la modification d'un outil, d'une page jeu ou d'un format de données. ## Outil Toolbox - Ajouter ou modifier le composant dans `website/src/features/toolboxes/modules/`. - Déclarer ses métadonnées et son chargeur dans `website/src/features/toolboxes/toolboxModuleRegistry.js`. Le registre React `modules/toolboxModuleComponents.jsx` est partagé par la toolbox et la Librairie ; `modules/index.jsx` expose le shell. - Vérifier le chargement à la demande en toolbox et dans chaque catégorie de la Librairie. - Ajouter les textes nécessaires dans `website/public/data/site.json`. - Mettre à jour la validation de `site.json` dans `tests/helpers/data-validation.mjs`. - Mettre à jour la normalisation et le stockage compact dans `website/src/features/toolboxes/storage/modules/.js`, puis vérifier l'export public dans `website/src/features/toolboxes/storage/toolboxStorage.js`. - Mettre à jour `docs/STORAGE_SCHEMA.md`. - Vérifier l'import et l'export si l'outil stocke des données. - Pour une modification de persistance, vérifier les écritures successives en succès/échec, les suppressions, ainsi qu'un import concurrent avec une édition ; un échec ne doit pas restaurer une valeur jamais confirmée. - Si l'outil a un contenu représentable en texte, ajouter ou vérifier l'import/export texte round-trip depuis le toggle import/export du header. - Si l'outil porte un état de progression, vérifier que l'import texte repart de l'état initial attendu. - Vérifier l'affichage dans la page toolbox complète. - Vérifier l'affichage dans le panneau latéral. - Pour le Bloc Note, vérifier la sélection, l'ajout, le renommage et la suppression de pages en page complète, panneau latéral et mobile. - Pour les dessins temporaires et l'historique du simulateur de chance, vérifier l'isolation par clé de session lors des changements de page/outil et après rechargement ; une navigation seule ne doit pas écraser les données de l'autre clé. - Pour le simulateur de chance, vérifier que les brouillons suivent le taux et l'outil actifs, restent intacts lors d'un rendu sans rapport et se valident au blur selon le champ. - Pour le visualiseur d'images, vérifier la remise à zéro des marqueurs et des modes dessin/gomme au remplacement de l'image. - Pour l'éditeur de couverture, vérifier les décodages concurrents, les erreurs après fermeture et la libération des bitmaps/URLs ; une image en chargement ne doit pas permettre de valider la couverture précédente. - Pour Mémos, vérifier l'édition courte, les couleurs, la réorganisation et la bande déroulante. - Vérifier qu'une notification ou une mise à jour sans rapport ne remplace pas un brouillon Mémos avant sa validation au blur. - Pour l'arbre d'objectifs, vérifier la sélection après suppression/import et le retour à Base quand le nœud sélectionné devient une étape sans onglet Contenu. - Vérifier le mode une colonne et deux colonnes. - Vérifier que l'ajout, la suppression et la réorganisation respectent `moduleOrder.one` et `moduleOrder.two`. - Vérifier le quota de stockage si l'outil manipule des données lourdes. ## Page Jeu - Ajouter les données dans `website/public/data/`. - Ajouter les images dans `website/public/static/img/games//`. - Déclarer le jeu dans `website/public/data/site.json`. - Vérifier la page `/games`. - Vérifier la page `/games/`. - Vérifier le chargement à la première visite, la conservation des données pendant la navigation et les erreurs réseau ; sous StrictMode, les requêtes abandonnées ne doivent pas remplacer les données actuelles ni afficher d'erreur d'annulation. - Vérifier le bouton toolbox et le panneau latéral. - Vérifier le breadcrumb. - Vérifier les textes avec retours à la ligne. ## Listes de jeu - Ajouter la liste JSON dans `website/public/data//lists/`. - Lancer `npm run lists:index`. - Vérifier que `index.json` est régénéré. - Vérifier que `nom` est présent sur chaque élément. - Vérifier que `description` et `quantite` restent facultatifs. - Vérifier la copie au format checklist. - Vérifier la création directe de checklist quand une toolbox est associée. ## Style - Réutiliser les tokens existants avant d'ajouter une nouvelle couleur ou taille. - Réutiliser les classes de boutons existantes. - Vérifier les boutons icon, danger, primary et secondary. - Vérifier les cartes, panels et scrollbars. - Vérifier les états hover/focus. - Vérifier mobile et desktop quand le changement touche la mise en page. ## Validation avant push ```bash npm run check ``` Le check doit passer avant de pousser : - syntaxe serveur et Vite ; - génération des index de listes ; - tests Node ; - build de production.