# AUDIT_05_ROADMAP_v1.0.md -- Roadmap Exhaustive vers la v1.0 **Date** : 2026-03-11 **Auditeur** : Claude Opus 4.6 --- ## 0. PRINCIPES DE CETTE ROADMAP Cette roadmap remplace la section TODO du `VEZA_VERSIONS_ROADMAP.md` existant. Elle est construite a partir du diagnostic Phase 4 et couvre **tous les ecarts identifies** entre le code actuel et les specifications ORIGIN, organises par priorite. **Regle cardinale** : Rien ne passe en v1.0 tant que tous les criteres GO/NO-GO ne sont pas satisfaits. **Ordre de priorite** : - **P0** : Bloquants securite — sans resolution, aucun deploiement possible - **P1** : Features manquantes bloquant v1.0 — versions TODO du roadmap + tests ethiques - **P2** : Conformite — ecarts spec/code qui n'empechent pas le fonctionnement mais violent les ORIGIN - **P3** : Polish — features partielles et ameliorations d'experience - **P4** : Nice-to-have — optionnel pour v1.0, peut etre reporte en v1.1+ --- ## 1. TABLEAU DE BORD — ETAT AVANT ROADMAP ``` VERSIONS EXISTANTES DONE : 27 versions (v0.9.1 → v0.12.6.1) TODO : 3 versions (v0.12.7, v0.12.8, v1.0.0) ECARTS DIAGNOSTIQUES P0 Bloquants securite : 3 ecarts (~5j) P1 Features bloquantes : 7 ecarts (~15j) P2 Conformite : 8 ecarts (~14j) P3 Polish : 10 ecarts (~20j) P4 Nice-to-have : 5 ecarts (~10j) TOTAL ECARTS : 33 EFFORT TOTAL ESTIME : 50-65 jours-dev CRITERES NON COCHES DANS VERSIONS DONE v0.9.1 : 1 (staging deploy) v0.9.2 : 1 (pentest partiel) v0.9.5 : 1 (tests pass) v0.9.8 : 1 (coverage 70%) v0.10.0 : 2 (perf, staging) v0.10.1 : 1 (test biais) v0.10.2 : 1 (test 0-plays) v0.11.0 : 1 (Lighthouse) v0.12.6 : 1 (3 HIGH findings) TOTAL : 10 criteres non coches ``` --- ## 2. NOUVELLES VERSIONS — VUE D'ENSEMBLE | # | Version | Nom | Priorite | Effort | Prerequisite | GO/NO-GO | |---|---------|-----|----------|--------|--------------|----------| | 1 | v0.12.6.1 | Correctifs Pentest (30/30 findings) | P0 | 5-8j | v0.12.6 | ✅ DONE 2026-03-12 | | 2 | v0.12.6.2 | Correctifs Securite Spec | P0 | 1.5j | v0.12.6 | Securite | | 3 | v0.12.6.3 | Nettoyage Code Fantome | P1 | 1-2j | v0.12.6 | Ethique | | 4 | v0.12.7 | Internationalisation (i18n) | P1 | 3-4j | v0.12.5 | Qualite | | 5 | v0.12.8 | Documentation & API Publique | P1 | 3-4j | v0.12.6 | Qualite | | 6 | v0.12.9 | Tests Ethiques & Coverage CI | P1 | 2-3j | v0.12.6.3 | Ethique+Qualite | | 7 | v0.13.0 | Conformite Features Partielles | P2 | 5-7j | v0.12.9 | Qualite | | 8 | v0.13.1 | Conformite Audio & Player | P2 | 4-5j | v0.13.0 | Qualite | | 9 | v0.13.2 | Consolidation Design System | P2 | 2-3j | v0.13.0 | Qualite | | 10 | v0.13.3 | Polish Securite Avancee | P3 | 3-4j | v0.13.0 | Securite | | 11 | v0.13.4 | Polish Audio & Player | P3 | 3-4j | v0.13.1 | — | | 12 | v0.13.5 | Polish Marketplace & Compliance | P3 | 3-4j | v0.13.0 | Business | | 13 | v0.14.0 | Validation Runtime & Staging | P0-P1 | 3-5j | v0.13.2 | Stabilite+Perf | | 14 | v1.0.0-rc1 | Release Candidate 1 | — | 2-3j | Tout | Tout | | 15 | v1.0.0 | Release Stable | — | 1-2j | v1.0.0-rc1 | Tout | **Effort total estime : 40-55 jours-dev** **Duree calendaire estimee (1 dev) : 10-14 semaines** **Duree calendaire estimee (2 devs) : 6-8 semaines** --- ## 3. DETAIL DES VERSIONS --- ### v0.12.6.1 — Correctifs Pentest (30/30 findings) **Priorite** : P0 — BLOQUANT SECURITE **Statut** : ✅ DONE **Complete le** : 2026-03-12 **Effort** : 3-5 jours **Prerequisite** : v0.12.6 **GO/NO-GO** : `Securite → Pentest externe valide (0 finding critique/haut ouvert)` ✅ **Contexte** : Le pentest v0.12.6 a identifie 30 findings (2 CRIT, 10 HIGH, 12 MEDIUM, 6 LOW). Tous les 30 ont ete corriges dans 4 commits. La matrice de remediation (REMEDIATION_MATRIX_v0.12.6.md) montre 30/30 corriges. **Taches** - [x] **TASK-PFIX-001** : Corriger CRIT-001 — IDOR conversations privees (CVSS 9.1) - [x] **TASK-PFIX-002** : Corriger CRIT-002 — Metriques de popularite publiques (CVSS 5.3) - [x] **TASK-PFIX-003** : Corriger les 10 findings HIGH - [x] **TASK-PFIX-005** : Corriger les 12 findings MEDIUM - [x] **TASK-PFIX-006** : Corriger les 6 findings LOW **Criteres d'acceptation** - [x] Les 2 findings CRITIQUES corriges (IDOR + metriques publiques) - [x] Les 10 findings HIGH corriges (race conditions, TrustedProxies, RGPD, RTMP, etc.) - [x] Les 12 findings MEDIUM corriges (CSP, pagination, WebSocket, k-anonymity, etc.) - [x] Les 6 findings LOW corriges (password policy, Docker pins, dotenv, Elasticsearch, context) - [x] 0 finding critique ou haut ouvert --- ### v0.12.6.2 — Correctifs Securite Spec **Priorite** : P0 — BLOQUANT SECURITE **Effort** : 1.5 jours **Prerequisite** : v0.12.6 **GO/NO-GO** : `Securite → JWT RS256 en production` + regles ORIGIN **Contexte** : Deux ecarts de conformite securite identifies entre le code et ORIGIN_SECURITY_FRAMEWORK.md. **Taches** - [ ] **TASK-SFIX-001** : Forcer MFA pour roles admin et moderator - Modifier le middleware auth pour exiger MFA sur les roles `admin` et `moderator` - Ajouter un ecran de setup MFA obligatoire au premier login admin/moderator - Ref: ORIGIN_SECURITY_FRAMEWORK.md Regle 5 - Fichiers: `backend/internal/middleware/auth_middleware.go`, `backend/internal/auth/mfa_enforcement.go` - [ ] **TASK-SFIX-002** : Aligner refresh token TTL sur la spec (30j → 7j) - Modifier la configuration JWT pour fixer le refresh token TTL a 7 jours - Invalider les refresh tokens existants avec TTL > 7j (migration) - Ref: ORIGIN_SECURITY_FRAMEWORK.md Regle 4 - Fichiers: `backend/internal/auth/jwt_service.go`, `backend/configs/` - [ ] **TASK-SFIX-003** : Tests de validation securite spec - Test: MFA est requis pour tout endpoint admin/moderator - Test: refresh token expire apres 7 jours exactement - Test: access token expire apres 15 minutes **Criteres d'acceptation** - [ ] Connexion admin sans MFA → redirige vers setup MFA obligatoire - [ ] Connexion moderator sans MFA → redirige vers setup MFA obligatoire - [ ] `jwt_service.go` : refresh token TTL = 7 jours (604800 secondes) - [ ] Tests unitaires passent pour les 2 correctifs **Risques** - Impact sur les admins existants qui n'ont pas encore configure MFA - Migration des tokens existants a gerer proprement --- ### v0.12.6.3 — Nettoyage Code Fantome **Priorite** : P1 **Effort** : 1-2 jours **Prerequisite** : v0.12.6 **GO/NO-GO** : `Ethique → Aucune donnee comportementale`, `Ethique → Audit UX anti-dark-patterns` **Contexte** : Le diagnostic a identifie 9 modules "fantomes" — du code present dans le repo mais non specifie dans les ORIGIN. Certains (`contest`, `voting_system`, `production_challenge`) pourraient constituer de la gamification interdite. `playback_abtest_service.go` pose un probleme ethique potentiel. **Taches** - [ ] **TASK-GHOST-001** : Auditer les modules fantomes - Verifier si `contest/`, `sound_design_contest/`, `production_challenge/`, `voting_system/` sont actifs (routes enregistrees? appeles quelque part?) - Si actifs et gamification → desactiver/supprimer - Si inactifs → supprimer le code mort - Fichiers: `backend/internal/api/contest/`, `backend/internal/api/sound_design_contest/`, `backend/internal/api/production_challenge/`, `backend/internal/api/voting_system/` - [ ] **TASK-GHOST-002** : Evaluer et traiter `playback_abtest_service.go` - Verifier si le A/B testing audio est actif - S'il manipule l'experience utilisateur sans consentement → supprimer - S'il est desactive → supprimer le code mort - Ref: ORIGIN_UI_UX_SYSTEM.md §13 anti-dark-patterns - [ ] **TASK-GHOST-003** : Traiter les modules non-spec utiles - `listing/handler.go` et `offer/handler.go` : determiner si lies au marketplace (F226-F275) - `graphql/handler.go` : ORIGIN ne specifie que REST → documenter ou supprimer - `grpc/handler.go` : spec dans ORIGIN section 9 → conserver, documenter - [ ] **TASK-GHOST-004** : Verifier absence de code mort residuel - Confirmer 0 traces AI/ML, blockchain, gamification apres nettoyage - grep final sur les termes interdits **Criteres d'acceptation** - [ ] Aucun module de gamification actif dans le code - [ ] `playback_abtest_service.go` traite (supprime ou desactive avec documentation) - [ ] Code mort fantome supprime ou documente - [ ] grep confirme 0 traces des categories ethiquement exclues **Risques** - Certains modules fantomes pourraient etre utilises par des routes actives → regression possible --- ### v0.12.7 — Internationalisation (i18n) **Priorite** : P1 — BLOQUE v1.0 **Effort** : 3-4 jours **Prerequisite** : v0.12.5 **GO/NO-GO** : `Qualite → CI/CD verte` **Contexte** : Version TODO existante dans le roadmap. L'internationalisation n'est pas implementee. Le spec exige FR/EN/ES minimum. **Taches** - [ ] **TASK-I18N-001** : Infrastructure i18n frontend - Installer et configurer `react-i18next` ou `next-intl` - Creer la structure de fichiers de traduction `locales/{fr,en,es}/` - Configurer le detection de langue (navigator, cookie, URL param) - Fichiers: `apps/web/src/i18n/`, `apps/web/src/locales/` - [ ] **TASK-I18N-002** : Extraction des chaines - Parcourir tous les composants React et extraire les chaines hardcodees - Remplacer par des appels `t('key')` ou equivalent - Generer les fichiers de traduction FR (source), EN, ES - [ ] **TASK-I18N-003** : Commutateur de langue - Composant UI de selection de langue (dropdown header) - Persistence du choix (localStorage / cookie) - Commutation sans rechargement de page (reactif) - [ ] **TASK-I18N-004** : i18n backend (messages d'erreur) - Internationaliser les messages d'erreur API (`Accept-Language` header) - Messages de validation, emails transactionnels - Fichiers: `backend/internal/i18n/`, `backend/pkg/apierror/` - [ ] **TASK-I18N-005** : Tests i18n - Test: toutes les cles de traduction existent dans les 3 langues - Test: commutation de langue fonctionne sans rechargement - Test: fallback vers EN si cle manquante **Criteres d'acceptation** - [ ] Interface 100% traduite en FR/EN/ES - [ ] Commutation de langue sans rechargement - [ ] Messages d'erreur API internationalises - [ ] 0 chaine hardcodee dans les composants React **Risques** - Volume de chaines a extraire potentiellement important (~1900 fichiers TSX) - Traductions ES a faire (ou placeholders acceptables pour v1.0) --- ### v0.12.8 — Documentation & API Publique **Priorite** : P1 — BLOQUE v1.0 **Effort** : 3-4 jours **Prerequisite** : v0.12.6 **GO/NO-GO** : `Qualite → CI/CD verte` **Contexte** : Version TODO existante. Module 24 Developpeurs & API (F586-F600) est tres partiel. ORIGIN exige une documentation API publique navigable. **Taches** - [ ] **TASK-APIDOC-001** : Generation OpenAPI / Swagger - Annoter les handlers Go existants avec des commentaires Swagger (swag/swaggo) - Generer `swagger.json` / `openapi.yaml` - Servir Swagger UI sur `/api/docs` - Fichiers: `backend/cmd/`, `backend/internal/handlers/`, routes - [ ] **TASK-APIDOC-002** : Gestion des cles API developpeurs - CRUD de cles API pour developpeurs tiers - Modele: `api_keys` (id, user_id, key_hash, name, scopes, rate_limit, created_at, expires_at) - Middleware de validation de cle API - Fichiers: `backend/internal/models/api_key.go`, `backend/internal/handlers/api_key_handler.go` - [ ] **TASK-APIDOC-003** : Rate limiting API publique - Rate limits specifiques par cle API (configurable) - Headers `X-RateLimit-*` sur les reponses - Ref: ORIGIN_API_SPECIFICATION.md §rate limits - [ ] **TASK-APIDOC-004** : Page portail developpeurs frontend - Page de gestion des cles API - Documentation interactive embeddee (Swagger UI) - Fichiers: `apps/web/src/pages/developers/` - [ ] **TASK-APIDOC-005** : Tests API publique - Test: Swagger UI accessible et a jour - Test: cle API valide → acces OK, cle invalide → 401 - Test: rate limiting par cle API fonctionne **Criteres d'acceptation** - [ ] Documentation API navigable en ligne (`/api/docs`) - [ ] Un developpeur externe peut creer une cle et consommer l'API - [ ] Rate limiting par cle API fonctionnel - [ ] OpenAPI spec generee automatiquement a jour **Risques** - Annotation Swagger de ~70+ route files = effort significatif - Scope de "API publique" a definir (quels endpoints exposer?) --- ### v0.12.9 — Tests Ethiques & Coverage CI **Priorite** : P1 **Effort** : 2-3 jours **Prerequisite** : v0.12.6.3 **GO/NO-GO** : `Ethique → Algorithme de decouverte auditable`, `Qualite → Coverage tests >= 70%` **Contexte** : Les tests de biais ethiques exiges par les specs sont absents. La coverage n'est ni mesuree ni enforcee en CI. **Taches** - [ ] **TASK-ETH-001** : Test de biais artistes emergents (v0.10.1 non coche) - Ecrire un test qui verifie que la decouverte ne defavorise pas les artistes avec 0 ou peu de contenus - Le feed/decouverte doit inclure des artistes emergents proportionnellement - Ref: ORIGIN_FEATURES_REGISTRY.md, criteres ethiques - Fichiers: `backend/internal/service/discovery_service_test.go` - [ ] **TASK-ETH-002** : Test recherche artiste 0 plays (v0.10.2 non coche) - Ecrire un test qui verifie qu'un artiste avec 0 plays apparait dans les resultats de recherche par nom - La recherche ne doit pas filtrer/penaliser par popularite - Fichiers: `backend/internal/service/search_service_test.go` - [ ] **TASK-ETH-003** : Documenter l'algorithme de decouverte - Ecrire un document expliquant le fonctionnement de la decouverte - Confirmer: chronologique + tags/genres declaratifs, JAMAIS de classement par popularite - Fichier: `veza-docs/DISCOVERY_ALGORITHM.md` - [ ] **TASK-COV-001** : Configurer coverage CI - Ajouter `go test -coverprofile` dans le workflow CI - Ajouter quality gate: coverage >= 70% sur nouveau code - Publier le rapport coverage (badge, artefact) - Fichiers: `.github/workflows/ci.yml` - [ ] **TASK-COV-002** : Augmenter coverage Rust - Ajouter des tests unitaires au stream server Rust (actuellement 25 fichiers) - Cible: au moins 50% de coverage Rust - Configurer `cargo tarpaulin` en CI - [ ] **TASK-COV-003** : Rapport coverage global - Agreger Go + Rust + Frontend dans un rapport unique - Quality gate globale >= 70% **Criteres d'acceptation** - [ ] Test de biais artistes emergents PASSE - [ ] Test recherche artiste 0 plays PASSE - [ ] Algorithme de decouverte documente - [ ] Coverage mesuree et enforcee en CI (>= 70% Go, >= 50% Rust) - [ ] Badge coverage visible dans le repo **Risques** - La coverage Rust peut etre difficile a monter rapidement (de ~40% a 50%) - Les tests de biais peuvent reveler des problemes dans la logique de decouverte --- ### v0.13.0 — Conformite Features Partielles **Priorite** : P2 **Effort** : 5-7 jours **Prerequisite** : v0.12.9 **GO/NO-GO** : `Qualite → 0 linting error` **Contexte** : ~83 features sont marquees PARTIEL dans le diagnostic. Cette version cible les features partielles les plus impactantes pour la conformite. **Taches** - [ ] **TASK-CONF-001** : Completer 2FA SMS (F020) - Implementer l'envoi de codes SMS via un provider (Twilio ou equivalent) - Frontend: ecran de saisie du code SMS - Ref: ORIGIN_FEATURES_REGISTRY.md F020 - Fichiers: `backend/internal/auth/sms_service.go`, `apps/web/src/pages/auth/` - [ ] **TASK-CONF-002** : Implementer CAPTCHA anti-bot (F029) - Integrer hCaptcha ou Turnstile (pas Google reCAPTCHA pour la vie privee) - Proteger: registration, login, password reset, contact forms - Ref: ORIGIN_FEATURES_REGISTRY.md F029 - Fichiers: `apps/web/src/components/captcha/`, `backend/internal/middleware/captcha_middleware.go` - [ ] **TASK-CONF-003** : Completer les features auth partielles - F010: tester logout all devices completement - F013: verifier password history (empecher reutilisation) - F014: ajouter validation force password cote backend - F018: completer notification changement password - F021: tester 2FA backup codes completement - F024: implementer notification connexion inhabituelle - F026: completer historique connexions avec details - [ ] **TASK-CONF-004** : Completer les features fichiers partielles - F075: verifier integration ClamAV complete - F080: evaluer watermarking (si requis pour v1.0) - [ ] **TASK-CONF-005** : Resoudre la double structure handlers - Migrer les handlers restants de `internal/handlers/` vers `internal/core/*/handler.go` - Ou documenter la coexistence et nettoyer les doublons - Ref: diagnostic §5.1 - [ ] **TASK-CONF-006** : Nettoyer TODO/FIXME frontend - Traiter les 43 TODO/FIXME identifies dans le frontend - Resoudre ou convertir en issues trackees - Cible: < 10 TODO/FIXME restants **Criteres d'acceptation** - [ ] F020 2FA SMS fonctionnel de bout en bout - [ ] F029 CAPTCHA actif sur registration et login - [ ] Features auth partielles completees (F010, F013, F014, F018, F021, F024, F026) - [ ] Structure handlers unifiee ou nettoyee - [ ] TODO/FIXME < 10 **Risques** - Integration SMS provider necessite un compte et des couts - Migration handlers peut causer des regressions si routes mal recablees --- ### v0.13.1 — Conformite Audio & Player **Priorite** : P2 **Effort** : 4-5 jours **Prerequisite** : v0.13.0 **GO/NO-GO** : `Qualite` **Contexte** : Plusieurs features du module 4 (Streaming Audio, F106-F150) sont partielles ou absentes. **Taches** - [ ] **TASK-AUDIO-001** : Gapless playback (F116) - Implementer la lecture sans interruption entre deux tracks - Utiliser Web Audio API pour le pre-buffering du track suivant - Fichiers: `apps/web/src/components/player/`, stream server - [ ] **TASK-AUDIO-002** : Crossfade (F117) — si absent - Verifier l'etat actuel du crossfade - Implementer le fondu enchaine configurable (1-12s) - [ ] **TASK-AUDIO-003** : Normalisation audio (F118) — si absent - Normalisation du volume entre tracks (ReplayGain ou equivalent) - Cote serveur (Rust) ou cote client (Web Audio API) - [ ] **TASK-AUDIO-004** : Completer les features player partielles - Verifier F106-F115 (play, pause, seek, volume, queue, shuffle, repeat, progress, waveform) - Completer les tests pour chaque feature player **Criteres d'acceptation** - [ ] Gapless playback fonctionne entre deux tracks consecutifs - [ ] Crossfade configurable - [ ] Pas de saut de volume entre tracks - [ ] Toutes les features player core testees **Risques** - Gapless playback complexe sur mobile/PWA (limitations navigateur) - Performance Web Audio API a valider --- ### v0.13.2 — Consolidation Design System **Priorite** : P2 **Effort** : 2-3 jours **Prerequisite** : v0.13.0 **GO/NO-GO** : `Qualite → 0 linting error` **Contexte** : Le package `packages/design-system/` est quasi vide (1 fichier). Les composants SUMI sont dans `apps/web/src/components/ui/`. Cela cree de la duplication et empeche la reutilisation entre apps. **Taches** - [ ] **TASK-DS-001** : Migrer les composants SUMI vers le design system - Deplacer les composants UI de base de `apps/web/src/components/ui/` vers `packages/design-system/src/` - Exporter proprement depuis `packages/design-system/` - Mettre a jour les imports dans `apps/web/` - [ ] **TASK-DS-002** : Design tokens - Extraire les tokens (couleurs, typo, spacing, shadows, radius) dans le package - S'assurer que dark mode et light mode utilisent les memes tokens - Ref: ORIGIN_UI_UX_SYSTEM.md §design tokens - [ ] **TASK-DS-003** : Documentation Storybook - Verifier que les stories existantes couvrent les composants principaux - Ajouter les stories manquantes pour les composants migres **Criteres d'acceptation** - [ ] `packages/design-system/` contient les composants UI de base - [ ] Design tokens centralises et utilises par toutes les apps - [ ] Stories a jour pour les composants principaux **Risques** - Nombre de composants a migrer potentiellement important - Risque de casser les imports dans l'app web --- ### v0.13.3 — Polish Securite Avancee **Priorite** : P3 **Effort** : 3-4 jours **Prerequisite** : v0.13.0 **GO/NO-GO** : Partiel (`Securite`) **Taches** - [ ] **TASK-SECADV-001** : Passkeys/WebAuthn (F022) - Implementer l'enregistrement et l'authentification par passkeys - Utiliser la Web Authentication API - Backend: `backend/internal/auth/webauthn_service.go` - Frontend: `apps/web/src/pages/auth/passkeys/` - [ ] **TASK-SECADV-002** : Password configurable policy (F015) - Politique de mot de passe configurable par l'admin - Longueur min, complexite, expiration - [ ] **TASK-SECADV-003** : Geolocalisation connexions (F025) - Detection IP → pays via MaxMind GeoIP ou equivalent - Notification si connexion depuis un nouveau pays - Affichage dans l'historique des sessions - [ ] **TASK-SECADV-004** : Password expiration (F016) — optionnel - Politique d'expiration configurable - Notification avant expiration **Criteres d'acceptation** - [ ] WebAuthn fonctionnel (enregistrement + login) - [ ] Geolocalisation des connexions affichee - [ ] Politique de mot de passe configurable **Risques** - WebAuthn complexe a implementer correctement - GeoIP necessite une base de donnees (licence MaxMind) --- ### v0.13.4 — Polish Audio & Player **Priorite** : P3 **Effort** : 3-4 jours **Prerequisite** : v0.13.1 **GO/NO-GO** : — **Taches** - [ ] **TASK-APLSH-001** : Picture-in-picture (F121) - Implementer le mode picture-in-picture pour le player - Utiliser l'API Picture-in-Picture du navigateur - [ ] **TASK-APLSH-002** : Chromecast support (F124) — optionnel v1.0 - Integrer le SDK Cast - Streaming vers Chromecast - [ ] **TASK-APLSH-003** : AirPlay support (F125) — optionnel v1.0 - Streaming vers appareils AirPlay - [ ] **TASK-APLSH-004** : Spectrogram/Equalizer visualiseurs - Visualisation audio temps reel (Web Audio API AnalyserNode) - Equalizer graphique basique **Criteres d'acceptation** - [ ] Picture-in-picture fonctionne sur les navigateurs supportes - [ ] Au moins un visualiseur audio basique **Risques** - Chromecast/AirPlay dependent des SDKs proprietaires - Peut etre reporte en v1.1 sans bloquer le GO/NO-GO --- ### v0.13.5 — Polish Marketplace & Compliance **Priorite** : P3 **Effort** : 3-4 jours **Prerequisite** : v0.13.0 **GO/NO-GO** : `Business → Flux de paiement teste E2E` **Taches** - [ ] **TASK-MKT-001** : KYC vendeurs (F055) - Verification d'identite pour les vendeurs marketplace - Integration avec un service KYC (Stripe Identity ou equivalent) - Fichiers: `backend/internal/service/kyc_service.go` - [ ] **TASK-MKT-002** : Validation E2E flux de paiement - Test complet: creation produit → achat → paiement → download - Test avec Hyperswitch en mode test - Documenter le flux - [ ] **TASK-MKT-003** : Validation E2E flux de payout createur - Test complet: ventes accumulees → seuil $50 → payout automatique - Documenter le flux - [ ] **TASK-MKT-004** : Page support accessible - Page de contact / helpdesk - Au minimum: formulaire de contact email - Ref: GO/NO-GO `Business → Support accessible` **Criteres d'acceptation** - [ ] KYC vendeurs fonctionnel - [ ] Flux paiement teste E2E - [ ] Flux payout teste E2E - [ ] Page support accessible **Risques** - KYC necessite un provider externe avec des couts - Tests E2E paiement necessitent un environnement Hyperswitch fonctionnel --- ### v0.14.0 — Validation Runtime & Staging **Priorite** : P0-P1 **Effort** : 3-5 jours **Prerequisite** : v0.13.2 **GO/NO-GO** : `Stabilite`, `Performance` **Contexte** : De nombreux criteres GO/NO-GO ne peuvent etre valides que sur un environnement live (staging). Cette version est dediee aux validations runtime. **Taches** - [ ] **TASK-STAG-001** : Deploiement staging - Deployer l'ensemble de la stack sur un environnement staging - Verifier que tous les services demarrent correctement - Ref: critere non coche v0.9.1 - [ ] **TASK-STAG-002** : Validation performances - Executer les tests k6 existants - Mesurer: p95 API < 100ms, p99 < 200ms - Mesurer: audio stream start < 500ms - Mesurer: search results < 500ms - [ ] **TASK-STAG-003** : Validation Lighthouse - Executer Lighthouse sur les pages principales - Cibles: Performance >= 85, Accessibility >= 90, PWA >= 90 - Ref: critere non coche v0.11.0 - [ ] **TASK-STAG-004** : Validation stabilite - Monitorer pendant 48h minimum - Verifier: taux erreur 5xx < 0.1% - Verifier: aucun crash/restart non planifie - [ ] **TASK-STAG-005** : Validation RGPD - Tester export de donnees utilisateur de bout en bout - Tester suppression de compte de bout en bout - Verifier anonymisation effective - [ ] **TASK-STAG-006** : Validation bundle size - Verifier: bundle JS initial < 200KB gzip - Documenter le resultat **Criteres d'acceptation** - [ ] Staging deploye et fonctionnel - [ ] p95 API < 100ms - [ ] Lighthouse Performance >= 85, Accessibility >= 90 - [ ] Taux erreur 5xx < 0.1% sur 48h - [ ] RGPD export + suppression fonctionnels - [ ] Bundle < 200KB gzip **Risques** - Infrastructure staging peut ne pas etre disponible - Les metriques runtime peuvent reveler des problemes non detectes en dev --- ### v1.0.0-rc1 — Release Candidate 1 **Priorite** : — **Effort** : 2-3 jours **Prerequisite** : Toutes les versions precedentes **GO/NO-GO** : Validation finale de tous les criteres **Taches** - [ ] **TASK-RC-001** : Checklist GO/NO-GO complete - Parcourir chaque critere GO/NO-GO et cocher - Documenter les preuves pour chaque critere - Fichier: `veza-docs/GO_NO_GO_CHECKLIST.md` - [ ] **TASK-RC-002** : Audit final anti-dark-patterns - Parcours complet de l'UI - Verifier: 0 FOMO, 0 gamification, 0 metriques publiques, 0 friction desinscription - Documenter le resultat - [ ] **TASK-RC-003** : Politique de confidentialite - Verifier que la politique de confidentialite est a jour - Conforme RGPD - Ref: GO/NO-GO Ethique - [ ] **TASK-RC-004** : Documentation decouverte - Verifier que le document `DISCOVERY_ALGORITHM.md` est complet et auditable - Ref: GO/NO-GO Ethique → Algorithme de decouverte documente - [ ] **TASK-RC-005** : Freeze du code - Branche `release/v1.0.0` creee - Seuls les bugfixes critiques acceptes - CI/CD verte depuis 2 semaines minimum - [ ] **TASK-RC-006** : Re-pentest final (optionnel) - Si les correctifs pentest sont significatifs, un re-scan peut etre necessaire **Criteres d'acceptation** - [ ] 100% des criteres GO/NO-GO coches - [ ] Branche release creee - [ ] CI/CD verte **Risques** - Des criteres GO/NO-GO peuvent echouer → retour a la version correspondante --- ### v1.0.0 — Release Stable **Priorite** : — **Effort** : 1-2 jours **Prerequisite** : v1.0.0-rc1 validee **Taches** - [ ] **TASK-REL-001** : Tag v1.0.0 - `git tag -a v1.0.0 -m "Version 1.0.0 : Release Stable"` - [ ] **TASK-REL-002** : Release notes - Changelog complet depuis v0.9.1 - Features highlights - Fichier: `CHANGELOG.md` - [ ] **TASK-REL-003** : Deploiement production - Pipeline CI/CD production - Validation post-deploiement **Criteres d'acceptation** - [ ] Tag v1.0.0 cree - [ ] Release notes publiees - [ ] Deploiement production reussi --- ## 4. MAPPING GO/NO-GO ↔ VERSIONS Chaque critere GO/NO-GO est couvert par au moins une version de cette roadmap. ### Securite | Critere | Version(s) | Statut actuel | |---------|-----------|---------------| | JWT RS256 en production | v0.9.1 (DONE) | ✅ Implemente | | Aucun secret dans le repo git | v0.9.1 (DONE) | ✅ Implemente | | Pentest valide (0 CRIT/HIGH ouvert) | v0.12.6.1 (DONE) | ✅ 30/30 findings corriges (0 ouvert) | | RGPD export + suppression | v0.10.8 (DONE) + **v0.14.0** | ⚠️ Code OK, validation runtime requise | ### Stabilite | Critere | Version(s) | Statut actuel | |---------|-----------|---------------| | Uptime >= 99.9% (30j) | **v0.14.0** | ❌ Non mesure | | Taux erreur 5xx < 0.1% | **v0.14.0** | ❌ Non mesure | | Aucun incident P0 non resolu | **v0.14.0** | ⚠️ A verifier | ### Performance | Critere | Version(s) | Statut actuel | |---------|-----------|---------------| | p95 API < 100ms | v0.12.4 (DONE) + **v0.14.0** | ⚠️ Optimise, non mesure runtime | | Lighthouse Performance >= 85 | v0.12.5 (DONE) + **v0.14.0** | ⚠️ PWA OK, non mesure | | Lighthouse Accessibility >= 90 | v0.12.5 (DONE) + **v0.14.0** | ⚠️ WCAG AA OK, non mesure | | Lighthouse PWA >= 90 | v0.12.5 (DONE) + **v0.14.0** | ⚠️ PWA OK, non mesure | ### Qualite | Critere | Version(s) | Statut actuel | |---------|-----------|---------------| | Coverage >= 70% (Go + Rust) | **v0.12.9** | ❌ Non mesuree | | 0 linting error | v0.9.4 (DONE) + **v0.13.0** | ⚠️ CI lint OK, 43 TODO frontend | | CI/CD verte 2 semaines | **v1.0.0-rc1** | ❌ A valider | ### Ethique | Critere | Version(s) | Statut actuel | |---------|-----------|---------------| | Audit UX anti-dark-patterns | **v0.12.6.3** + **v1.0.0-rc1** | ⚠️ Code clean, audit formel non fait | | Aucune donnee comportementale revendue | **v0.12.6.3** | ✅ Pas de code de revente | | Algorithme decouverte documente | **v0.12.9** | ❌ Non documente | | Politique confidentialite RGPD | **v1.0.0-rc1** | ❌ A verifier/creer | ### Business | Critere | Version(s) | Statut actuel | |---------|-----------|---------------| | Flux paiement teste E2E | v0.12.0 (DONE) + **v0.13.5** | ⚠️ Code OK, test E2E formel requis | | Flux payout createur teste | v0.12.0 (DONE) + **v0.13.5** | ⚠️ Code OK, test E2E formel requis | | Support accessible | **v0.13.5** | ❌ Non implemente | --- ## 5. CRITERES NON COCHES DES VERSIONS DONE — RESOLUTION Les 10 criteres non coches dans les versions DONE sont resolus par cette roadmap : | Version DONE | Critere non coche | Resolution | |--------------|-------------------|------------| | v0.9.1 | Deploiement staging | **v0.14.0** TASK-STAG-001 | | v0.9.2 | Pentest partiel | v0.12.6.1 (DONE) — pentest revalide | | v0.9.5 | Tests pass | Verifier en CI, **v0.12.9** coverage | | v0.9.8 | Coverage 70% | **v0.12.9** TASK-COV-001 | | v0.10.0 | Perf metrics staging | **v0.14.0** TASK-STAG-002 | | v0.10.1 | Test biais emergents | **v0.12.9** TASK-ETH-001 | | v0.10.2 | Test 0-plays search | **v0.12.9** TASK-ETH-002 | | v0.11.0 | Lighthouse scores | **v0.14.0** TASK-STAG-003 | | v0.12.6 | 2 CRIT + 10 HIGH findings | v0.12.6.1 (DONE) — 30/30 corriges | Tous les 10 criteres sont couverts. --- ## 6. DIAGRAMME GANTT SIMPLIFIE ``` Semaine S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- P0 SECURITE v0.12.6.1 [=====] v0.12.6.2 [===] P1 BLOQUANTS v0.12.6.3 [====] v0.12.7 [========] v0.12.8 [========] v0.12.9 [======] P2 CONFORMITE v0.13.0 [============] v0.13.1 [==========] v0.13.2 [======] P3 POLISH v0.13.3 [========] v0.13.4 [========] v0.13.5 [========] P0-P1 VALIDATION v0.14.0 [==========] RELEASE v1.0.0-rc1 [======] v1.0.0 [====] JALONS ^M1 ^M2 ^M3 ^M4 ^M5 ^v1.0 Secu OK i18n+API done Features done Polish done RC RELEASE ``` **Jalons cles** : - **M1 (fin S2)** : Securite P0 resolue — 0 finding critique/haut, MFA admin, token TTL 7j - **M2 (fin S4)** : Versions TODO existantes completees (i18n + API docs) + tests ethiques + coverage CI - **M3 (fin S6)** : Conformite features completee — ecarts spec/code P2 resolus - **M4 (fin S8)** : Polish termine — securite avancee, audio, marketplace - **M5 (fin S9)** : Staging valide, metriques runtime OK, RC1 prete - **v1.0 (fin S10)** : Release stable --- ## 7. CHEMINS CRITIQUES ### Chemin critique principal (bloque v1.0) ``` v0.12.6.1 (pentest) → v0.12.6.2 (MFA/TTL) → v0.12.6.3 (fantomes) ↓ v0.12.7 (i18n) ──────────────────────────────→ v0.12.9 (ethique/coverage) v0.12.8 (API docs) ─────────────────────────→ ↓ v0.13.0 (conformite) ↓ v0.13.2 (design system) ↓ v0.14.0 (staging/runtime) ↓ v1.0.0-rc1 → v1.0.0 ``` ### Parallelisation possible ``` PARALLELE A (securite) PARALLELE B (features) v0.12.6.1 v0.12.7 (i18n) v0.12.6.2 v0.12.8 (API docs) v0.12.6.3 \ / → v0.12.9 (ethique) ← ↓ v0.13.0 (conformite) / \ v0.13.1 (audio) v0.13.2 (design) v0.13.4 (polish) v0.13.3 (sec adv) v0.13.5 (marketplace) \ / → v0.14.0 (staging) ← ↓ v1.0.0-rc1 ↓ v1.0.0 ``` Avec 2 developpeurs, le chemin critique passe de ~10 semaines a ~6-7 semaines grace a la parallelisation des branches securite et features. --- ## 8. FEATURES REPORTEES POST-v1.0 Les features suivantes sont classees P4 et ne bloquent pas la v1.0. Elles seront implementees en v1.1+ : | Feature | Ref | Effort | Justification report | |---------|-----|--------|---------------------| | Chromecast (F124) | Module 4 | 2-3j | SDK proprietaire, complexe | | AirPlay (F125) | Module 4 | 2-3j | SDK proprietaire, complexe | | IP whitelisting (F027) | Module 1 | 1j | Feature entreprise, pas consumer | | Watermarking (F080) | Module 3 | 2j | Nice-to-have, pas bloquant | | Spectrogram visualiseur | Module 4 | 3j | Cosmetique | | Equalizer graphique | Module 4 | 2j | Cosmetique | | Password expiration (F016) | Module 1 | 1j | Optionnel securite | | Module 9 Gestion Materiel complet | F306-F330 | 5-10j | Scope P3, partiellement implemente | | Module 17 Collaboration complete | F481-F490 | 5j | Partiellement implemente, avance | **Total reporte** : ~25-35 jours-dev en v1.1+ --- ## 9. ESTIMATION GLOBALE ### Effort par priorite | Priorite | Versions | Effort total | |----------|----------|-------------| | P0 | ~~v0.12.6.1~~ (DONE), v0.12.6.2 | 1.5j restant | | P1 | v0.12.6.3, v0.12.7, v0.12.8, v0.12.9 | 9.5-13j | | P2 | v0.13.0, v0.13.1, v0.13.2 | 11-15j | | P3 | v0.13.3, v0.13.4, v0.13.5 | 9-12j | | Validation | v0.14.0 | 3-5j | | Release | v1.0.0-rc1, v1.0.0 | 3-5j | | **TOTAL** | **15 versions** | **42-59.5j** | ### Scenarios | Scenario | Equipe | Duree | Date estimee v1.0 | |----------|--------|-------|--------------------| | Optimiste | 2 devs | 6 semaines | 2026-04-22 | | Realiste | 1 dev | 10 semaines | 2026-05-20 | | Pessimiste | 1 dev + imprevu | 14 semaines | 2026-06-17 | ### Facteurs de risque | Risque | Impact | Probabilite | Mitigation | |--------|--------|-------------|------------| | Findings pentest necessitent refactoring majeur | +2-5j | Moyenne | Identifier tot, isoler les changements | | Coverage Rust difficile a monter | +2-3j | Haute | Prioriser les tests critiques | | Infrastructure staging non disponible | +1-2 semaines | Moyenne | Utiliser docker-compose comme staging minimal | | Traductions ES incompletes | +1-2j | Basse | Accepter placeholders EN pour v1.0 | | Tests E2E paiement echouent | +2-3j | Moyenne | Tester en mode sandbox Hyperswitch | | WebAuthn trop complexe pour le calendrier | 0 (report v1.1) | Haute | Declasser en P4 si necessaire | --- ## 10. RECOMMANDATIONS ### Recommandation 1 : Commencer par P0 immediatement Les 3 findings HIGH du pentest bloquent tout. Il faut les corriger avant toute autre chose. En parallele, un second developpeur peut attaquer v0.12.7 (i18n). ### Recommandation 2 : Ne pas sous-estimer v0.14.0 La validation runtime (staging) est le goulot d'etranglement. Beaucoup de criteres GO/NO-GO ne seront verifiables qu'a ce stade. Preparer l'infrastructure staging le plus tot possible. ### Recommandation 3 : Etre pret a reporter des features P3 Si le calendrier se tend, les features P3 (WebAuthn, Chromecast/AirPlay, spectrogram, KYC) peuvent etre reportees en v1.1 sans affecter la validite du GO/NO-GO. ### Recommandation 4 : Automatiser les validations Integrer les checks Lighthouse, coverage, et anti-dark-patterns dans la CI pour detecter les regressions automatiquement plutot qu'en validation finale. ### Recommandation 5 : Clarifier le statut des features fantomes Les modules `contest`, `voting_system`, `production_challenge` doivent etre evalues immediatement. S'ils constituent de la gamification, leur presence est un risque ethique meme s'ils sont desactives. --- *Fin de la roadmap Phase 5*