feat(bdd): réorganiser features en catégories api/ui/e2e et créer ADR-024

Résolution des incohérences #10, #11, et #12 de l'analyse d'architecture.

## Phase 1 : Réorganisation Features BDD (Point #10 - RÉSOLU)

- Créer structure features/{api,ui,e2e}
- Déplacer 83 features en 3 catégories via git mv (historique préservé)
  - features/api/ : 53 features (tests API backend)
  - features/ui/ : 22 features (tests UI mobile)
  - features/e2e/ : 8 features (tests end-to-end)

Domaines déplacés :
- API : authentication, recommendation, rgpd-compliance, content-creation,
  moderation, monetisation, premium, radio-live, publicites
- UI : audio-guides, navigation, interest-gauges, mode-offline,
  partage, profil, recherche
- E2E : abonnements, error-handling

## Phase 2 : Mise à jour Documentation

### ADR-007 - Tests BDD
- Ajouter section "Convention de Catégorisation des Features"
- Documenter règles api/ui/e2e avec exemples concrets
- Spécifier step definitions (backend Go, mobile Dart)

### ADR-024 - Stratégie CI/CD Monorepo (NOUVEAU)
- Créer ADR dédié pour stratégie CI/CD avec path filters
- Architecture workflows séparés (backend.yml, mobile.yml, shared.yml)
- Configuration path filters détaillée avec exemples YAML
- Matrice de déclenchement et optimisations (~70% gain temps CI)
- Plan d'implémentation (~2h, reporté jusqu'au développement)

### ADR-016 - Organisation Monorepo
- Simplifier en retirant section CI/CD détaillée
- Ajouter référence vers ADR-024 pour stratégie CI/CD

### INCONSISTENCIES-ANALYSIS.md
- Point #10 (Tests BDD synchronisés) :  RÉSOLU
  - Catégorisation features implémentée
  - ADR-007 mis à jour avec convention complète
- Point #11 (70/30 Split paiements) :  ANNULÉ (faux problème)
  - ADR-009 et Règle 18 parfaitement cohérents
  - Documentation exhaustive existante (formule, SQL, comparaisons)
- Point #12 (Monorepo path filters) : ⏸️ DOCUMENTÉ
  - Architecture CI/CD complète dans ADR-024
  - Implémentation reportée (projet en phase documentation)
- Métriques mises à jour :
  - MODERATE : 6/9 traités (4 résolus + 1 annulé + 1 documenté)
  - ADR à jour : 100% (19/19 avec ADR-024)

## Phase 3 : Validation

- Structure features validée (api/ui/e2e, aucun répertoire restant)
- Historique Git préservé (git mv, renommages détectés)
- 83 features total (API: 53, UI: 22, E2E: 8)

Closes: Point #10 (résolu), Point #11 (annulé), Point #12 (documenté)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
jpgiannetti
2026-02-01 11:31:41 +01:00
parent 841028d1b2
commit 37c62206ad
88 changed files with 625 additions and 67 deletions

View File

@@ -0,0 +1,115 @@
# language: fr
Fonctionnalité: Mode Kids pour utilisateurs 13-15 ans
En tant que parent ou adolescent
Je veux activer un mode Kids avec filtrage de contenu
Afin de protéger les mineurs des contenus inappropriés
Contexte:
Étant donné que l'API RoadWave est disponible
Scénario: Activation manuelle du mode Kids
Étant donné que je suis un utilisateur de 14 ans
Et que le mode Kids n'est pas activé par défaut
Quand j'active le mode Kids dans les paramètres
Alors le mode Kids est activé sur mon compte
Et je vois le message "Mode Kids activé - Contenus filtrés pour 13-15 ans"
Scénario: Parent active le mode Kids pour son enfant
Étant donné que je suis le parent d'un utilisateur de 13 ans
Et que j'ai accès au compte de mon enfant
Quand j'active le mode Kids
Alors le mode Kids est activé sur le compte enfant
Et seuls les contenus "Tous publics" sont accessibles
Scénario: Filtrage contenu - uniquement "Tous publics"
Étant donné que le mode Kids est activé sur mon compte
Et qu'il existe des contenus avec les classifications:
| classification | nombre |
| Tous publics | 100 |
| 13+ | 50 |
| 16+ | 30 |
| 18+ | 20 |
Quand je demande des recommandations
Alors seuls les 100 contenus "Tous publics" sont proposés
Et les contenus 13+, 16+, 18+ sont exclus
Scénario: Exclusion automatique du contenu politique
Étant donné que le mode Kids est activé
Et qu'il existe 20 contenus "Tous publics" dont 5 tagués "Politique"
Quand je demande des recommandations
Alors seuls les 15 contenus non-politiques sont proposés
Et les 5 contenus politiques sont automatiquement exclus
Scénario: Pas de publicité en mode Kids
Étant donné que le mode Kids est activé
Et que je suis un utilisateur gratuit
Quand j'écoute du contenu
Alors aucune publicité n'est diffusée
Et je n'ai pas d'insertion publicitaire (règle 1/5 désactivée)
Scénario: Publicité validée manuellement en mode Kids (post-MVP)
Étant donné que le mode Kids est activé
Et qu'une publicité a été validée manuellement pour le mode Kids
Quand j'écoute du contenu
Alors cette publicité peut être diffusée
Mais la fréquence reste inférieure au mode standard
Scénario: Interface standard même en mode Kids
Étant donné que le mode Kids est activé
Quand j'ouvre l'application
Alors l'interface est identique au mode normal
Et seul le filtrage de contenu est actif (pas d'UI enfant)
Scénario: Désactivation du mode Kids
Étant donné que le mode Kids est activé
Quand je désactive le mode Kids dans les paramètres
Alors tous les contenus sont à nouveau accessibles selon mon âge
Et je vois le message "Mode Kids désactivé"
Scénario: Utilisateur 16 ans ne peut pas activer le mode Kids 13-15 ans
Étant donné que je suis un utilisateur de 16 ans
Quand j'essaie d'activer le mode Kids
Alors l'activation réussit
Et le mode Kids filtre les contenus 16+ et 18+ (pas seulement 13+)
Et je vois uniquement les contenus "Tous publics"
Scénario: Tentative d'accès direct à contenu 16+ en mode Kids
Étant donné que le mode Kids est activé
Et qu'un ami me partage un contenu 16+
Quand j'essaie d'accéder au contenu via le lien
Alors l'accès est refusé
Et je vois le message "Ce contenu n'est pas accessible en mode Kids"
Scénario: Recherche en mode Kids filtre automatiquement
Étant donné que le mode Kids est activé
Quand je recherche "débat"
Alors seuls les contenus "Tous publics" apparaissent dans les résultats
Et les contenus 13+, 16+, 18+ sont exclus de la recherche
Scénario: Audio-guide en mode Kids
Étant donné que le mode Kids est activé
Et qu'un audio-guide "Tous publics" existe au musée du Louvre
Quand je suis à proximité du Louvre
Alors l'audio-guide est proposé normalement
Et toutes les séquences sont accessibles
Scénario: Statistiques créateur - audience mode Kids
Étant donné que je suis un créateur
Et que mes contenus "Tous publics" sont écoutés par des utilisateurs mode Kids
Quand je consulte mes statistiques
Alors je vois le pourcentage d'écoutes en mode Kids
Et je peux adapter mes contenus en conséquence
Scénario: Notification lors de l'activation du mode Kids
Quand j'active le mode Kids
Alors je reçois une notification explicative:
| information | description |
| Contenu | Seuls les contenus "Tous publics" accessibles |
| Politique | Contenus politiques automatiquement masqués |
| Publicité | Aucune publicité affichée |
Scénario: Badge mode Kids visible dans le profil
Étant donné que le mode Kids est activé
Quand je consulte mon profil
Alors je vois un badge "Mode Kids actif 🛡"
Et je peux le désactiver en un clic