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>
116 lines
5.0 KiB
Gherkin
116 lines
5.0 KiB
Gherkin
# 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
|