# 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 l'outil dans `website/src/features/toolboxes/modules/index.jsx`.
- 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/toolboxStorage.js`.
- Mettre à jour `docs/STORAGE_SCHEMA.md`.
- Vérifier l'import et l'export si l'outil stocke des données.
- Vérifier l'affichage dans la page toolbox complète.
- Vérifier l'affichage dans le panneau latéral.
- Vérifier le mode une colonne et deux colonnes.
- 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.
