# Protocole de validation — Tâche 3 (frontend web, tuiles, layout, paramètres) > **Type** : grille de validation. Utilisée après la mission décrite dans `tache3.md`. > **But** : vérifier que la spec frontend est complète, respecte le design system, et s'intègre au backend/API sans inventer de logique métier côté client. > **Gate obligatoire** : cette validation doit être passée avant implémentation frontend majeure. > **Rappel** : la tâche 3 est une mission design UX/UI, pas d'implémentation. --- ## 0. Quand lancer cette validation - La mission `tache3.md` est annoncée terminée. - Les maquettes ASCII et specs frontend sont présentes. - `consigne_icon.md` existe si des icônes spécifiques sont demandées. --- ## 1. Discipline & périmètre - [ ] Aucun code de production frontend modifié dans cette mission de design. - [ ] Le design respecte `design_system/consigne_design_system.md`. - [ ] Les icônes passent d'abord par le `ui-kit`/Font Awesome. - [ ] Les SVG spécifiques sont listés dans `consigne_icon.md`, pas improvisés dans le JSX. - [ ] Aucun secret n'est affiché ou stocké côté navigateur. --- ## 2. Layout global webapp - [ ] Vue globale header/volet Hermes/centre/terminal/footer définie. - [ ] Le volet Hermes ne masque pas la zone centrale. - [ ] Le terminal droit ne masque pas les tuiles. - [ ] Les dimensions sont bornées, redimensionnables et responsive. - [ ] Le footer contient les métriques compactes attendues. - [ ] Le mode smartphone est traité comme une UX dédiée, pas comme trois colonnes compressées. --- ## 3. Tuiles machine - [ ] État compact défini. - [ ] État Docker ouvert défini. - [ ] État Post-install ouvert défini. - [ ] État machine physique/Proxmox/hardware défini. - [ ] OS et type machine sont visibles. - [ ] APT, Docker, Post-install, Hardware, Health et Alerts sont représentés. - [ ] Les actions dangereuses sont clairement distinguées et validables. - [ ] La tuile s'agrandit sans casser la grille. --- ## 4. Paramètres frontend - [ ] Vue onglet Paramètres définie. - [ ] Paramètres d'apparence, tuiles, volets, Docker, scripts, Hermes, terminal SSH et nettoyage présents. - [ ] Les paramètres persistants sont destinés au backend/BDD, pas uniquement `localStorage`. - [ ] Les paramètres app icons/favicon/PWA sont listés. --- ## 5. Hermes et terminal - [ ] Discussion Hermes lisible : messages utilisateur/Hermes/système distingués. - [ ] Copier-coller natif et boutons copier prévus. - [ ] Blocs de commandes copiables mais non exécutés automatiquement. - [ ] Cartes de validation séparées du texte Hermes. - [ ] Terminal logs d'exécution distinct du vrai terminal SSH interactif. - [ ] Terminal SSH interactif désactivable et clairement risqué. --- ## 6. Icônes et assets - [ ] `favicon.svg`, `favicon.ico`, `apple-touch-icon.png`, icônes PWA sont spécifiés. - [ ] Liste d'alias `ICON_MAP` à ajouter/vérifier. - [ ] Liste d'icônes SVG custom candidates priorisée. - [ ] Le style respecte Gruvbox seventies. - [ ] Pas de logo propriétaire copié. --- ## 7. Intégration JSON/API - [ ] Le frontend consomme uniquement JSON canonique/API. - [ ] Le frontend ne parse jamais les logs bruts pour calculer un état. - [ ] Les références rapports/logs sont affichées par liens/actions. - [ ] Les erreurs structurées sont affichables sans ouvrir le terminal. --- ## 8. Verdict - **✅ Accepté** : spec UI complète et implémentable. - **🟡 Accepté avec réserves** : points UX mineurs à clarifier. - **❌ Rejeté** : design incomplet, non conforme au DS, ou logique métier côté client. --- ## 9. Notes de validation > Date : 2026-06-05. Relecteur : orchestrateur, validation déléguée. --- ### Verdict global **Accepté avec réserves (🟡)** La spec `tache3.md` couvre l'essentiel du périmètre attendu : layout global, tuiles machine à plusieurs états, paramètres frontend, volet Hermes, terminal, icônes/favicon/PWA, intégration JSON/API. Les règles du design system sont explicitement rappelées et la distinction terminal de logs vs SSH interactif est traitée. Quelques points nécessitent une clarification ou un complément avant implémentation. --- ### Section 1 — Discipline et périmètre - [x] Aucun code de production modifié : la tâche est déclarée design-only et aucune modification de code n'est demandée. - [x] Respect du DS formellement exigé : section 2 liste toutes les règles (variables CSS, ui-kit, ``/``, pas de hover sauf jauges, tooltips, polices, Popup, labels uppercase). - [x] Icônes par `ui-kit`/Font Awesome en premier ; SVG custom uniquement pour les concepts manquants listés. - [x] SVG spécifiques délégués à `consigne_icon.md` (lien présent en §3). - [x] Aucun secret affiché côté navigateur : règle explicite en §9 (terminal) et §10 (JSON). Masquage backend exigé avant diffusion UI. **Note :** le ui-kit actuel (`ui-kit.tsx`) n'expose ni composant `Checkbox` ni composant `Select`/`Dropdown` ni `Input`. La spec §8 demande des « vraies cases à cocher du design system » (`Toggle` ou checkbox stylée) et les maquettes Post-install montrent des `` / ``** non présents dans le ui-kit actuel, alors que les maquettes montrent des menus déroulants (OS, type machine, interface réseau). À créer ou à utiliser un `