- Mark v0.12.6.1 (pentest remediation 30/30) as DONE - Add 14 new versions from audit: v0.12.6.2→v1.0.0-rc1 - Update tracking table with priorities P0→P3 - Update v0.12.6 checkboxes (all findings now resolved) - Add Phase P7 (Conformité) and Validation phases - Update AUDIT_05_ROADMAP_v1.0.md to reflect completed remediation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
968 lines
37 KiB
Markdown
968 lines
37 KiB
Markdown
# 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*
|