sokko-g/docs/FEATURE_CHECKLIST.md
Shinuwa b470a34b2a
Some checks failed
Deploy Sokko G / deploy (push) Failing after 2s
Isolate RNG drafts and fix image editor lifecycle
2026-09-11 20:28:07 +02:00

73 lines
4.5 KiB
Markdown

# 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/<outil>.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/<gameId>/`.
- Déclarer le jeu dans `website/public/data/site.json`.
- Vérifier la page `/games`.
- Vérifier la page `/games/<gameId>`.
- 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/<gameId>/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.