# PHASE K — SCORE GLOBAL & RECOMMANDATIONS
---
## Tableau de synthèse
| Catégorie | Score /10 | Pondération | Score pondéré | Justification |
|-----------|-----------|-------------|---------------|---------------|
| Architecture | **7.0** | ×1.3 | **9.1** | Routing exemplaire, TypeScript strict, feature modules en cours, mais dualité components/features et client.ts monstre |
| Design System | **6.5** | ×1.0 | **6.5** | Tokens ambitieux et complets, mais fragmentation (kodo/veza), CSS vanilla parallèle, duplications composants |
| Cohérence UI | **7.0** | ×1.0 | **7.0** | Icônes uniformes, layout responsive, button system solide, mais hacks CSS et duplications |
| Accessibilité | **6.5** | ×1.0 | **6.5** | ARIA extensif, focus management, mais skip nav absent, sémantique HTML minimale |
| Sécurité | **8.0** | ×1.5 | **12.0** | JWT httpOnly, DOMPurify strict, CSRF, pas de secrets hardcodés — exemplaire |
| Performance | **6.0** | ×1.2 | **7.2** | Routes lazy, manual chunks, mais build cassé, vendor 925KB, images non-lazy |
| Dette technique | **5.0** | ×1.0 | **5.0** | 706 `as any`, 25 fichiers morts, client.ts 2237L, build cassé, hooks >600L |
| Scalabilité | **5.5** | ×1.0 | **5.5** | Theming prêt, routing scalable, mais i18n non externalisé, white-labeling bloqué |
| Maturité perçue | **6.5** | ×1.0 | **6.5** | Design distinctif et ambitieux, mais finitions manquantes et placeholders |
### Calcul du score global
| | Somme pondérée | Somme pondérations |
|---|---|---|
| Total | **65.3** | **10.0** |
| **SCORE GLOBAL** | **6.5 / 10** | |
---
## Recommandations immédiates (semaine 1-2)
### 1. Fixer le build cassé
- **Fichier** : `src/components/views/education-view/useEducationView.ts` → import `educationService` manquant
- **Temps** : 15 minutes
- **Impact** : 🔴 Critique — débloque le déploiement
### 2. Supprimer les fichiers orphelins
- **Fichiers** : 25 fichiers identifiés en Phase H6 (~3 000 LOC de code mort)
- **Temps** : 2-4 heures
- **Impact** : Réduit la confusion, améliore la navigabilité du code
### 3. Supprimer les CSS vanilla parallèles
- **Fichiers** : `styles/button.css`, `styles/card.css`, `styles/input.css`, `styles/badge-avatar.css`, `styles/header.css`
- **Temps** : 1 jour (vérifier qu'aucun composant n'utilise encore les classes `.btn-veza`, `.card-veza`, etc.)
- **Impact** : Élimine la double maintenance CSS ↔ composants React
### 4. Supprimer les hacks CSS `!important`
- **Fichiers** : `styles/fix-input-focus.css`, `styles/fix-login-form.css`
- **Temps** : 4-8 heures
- **Impact** : Élimine les overrides imprévisibles
### 5. Résoudre les duplications de composants
- **Actions** :
- Supprimer `ui/loading-spinner.tsx` → utiliser `ui/Spinner.tsx`
- Supprimer `ui/button-loading.tsx` → utiliser `Button` prop `loading`
- Choisir entre `modal.tsx` et `dialog/` → migrer vers un seul
- Consolider `DataList` et `Accordion` (legacy → nouveau)
- **Temps** : 1-2 jours
- **Impact** : API claire pour les développeurs
---
## Recommandations court terme (mois 1-2)
### 1. Split `services/api/client.ts` (2 237 lignes)
- **Description** : Décomposer en modules (interceptors, retry, cache, csrf, request-builder)
- **Prérequis** : Aucun
- **Effort** : L (3-5 jours)
- **Impact** : Critique — fichier le plus modifié du projet
### 2. Migrer components/ → features/
- **Description** : Déplacer `components/player/`, `components/settings/`, `components/social/`, `components/education/`, `components/commerce/`, `components/studio/` dans les modules features correspondants
- **Prérequis** : Fixer les imports, mettre à jour les barrel exports
- **Effort** : L (1 semaine)
- **Impact** : Majeur — architecture clarifiée
### 3. Activer `@typescript-eslint/no-explicit-any: 'warn'`
- **Description** : Réactiver la règle ESLint, corriger progressivement les ~120 `any` dans le code source (pas les tests ni les types générés)
- **Prérequis** : Aucun
- **Effort** : M (2-3 jours pour la correction initiale)
- **Impact** : Majeur — type safety restaurée
### 4. Unifier les tokens de design (`--kodo-*` ↔ `--veza-*`)
- **Description** : Choisir un namespace unique, migrer toutes les références
- **Prérequis** : Décision de nommage
- **Effort** : M (2-3 jours)
- **Impact** : Majeur — source de vérité unique pour les couleurs
### 5. Ajouter skip navigation
- **Description** : Ajouter `Skip to content` en haut du layout
- **Prérequis** : `id="main-content"` sur le ``
- **Effort** : XS (30 minutes)
- **Impact** : Critique (WCAG 2.4.1)
### 6. Ajouter sémantique HTML
- **Description** : `