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>
285 lines
12 KiB
Gherkin
285 lines
12 KiB
Gherkin
# language: fr
|
||
|
||
@moderation @preventive
|
||
Fonctionnalité: Modération préventive
|
||
|
||
# 14.5 - Modération préventive (rappel)
|
||
|
||
Contexte:
|
||
Étant donné que le système de modération préventive est actif
|
||
|
||
# Nouveaux créateurs - Validation manuelle des 3 premiers contenus
|
||
|
||
Scénario: Créateur nouvellement inscrit
|
||
Étant donné que je viens de créer un compte créateur
|
||
Et que je n'ai jamais publié de contenu
|
||
Quand j'examine mon statut de créateur
|
||
Alors mon compte est marqué comme "Nouveau créateur"
|
||
Et mes 3 premiers contenus devront être validés manuellement
|
||
Et je suis informé de ce processus lors de l'onboarding
|
||
|
||
Scénario: Publication du premier contenu par un nouveau créateur
|
||
Étant donné que je suis un nouveau créateur
|
||
Et que je n'ai publié aucun contenu auparavant
|
||
Quand je publie mon premier contenu
|
||
Alors le contenu entre en file d'attente de validation manuelle
|
||
Et le statut du contenu est "En attente de validation"
|
||
Et le contenu n'est pas diffusé sur la plateforme
|
||
Et je reçois une notification:
|
||
"""
|
||
Votre contenu est en cours de validation.
|
||
Les premiers contenus sont vérifiés manuellement pour garantir la qualité de la plateforme.
|
||
Délai: 24-48h (jours ouvrés).
|
||
"""
|
||
|
||
Scénario: Validation manuelle par un modérateur
|
||
Étant donné que j'ai publié mon premier contenu
|
||
Et que le contenu est en attente de validation
|
||
Quand un modérateur examine mon contenu
|
||
Alors le modérateur utilise la transcription automatique Whisper
|
||
Et le modérateur vérifie:
|
||
| critère | conforme |
|
||
| Respect des règles communauté | oui |
|
||
| Pas de contenu inapproprié | oui |
|
||
| Qualité audio acceptable | oui |
|
||
| Métadonnées cohérentes | oui |
|
||
| Tags appropriés | oui |
|
||
Et si tout est conforme, le contenu est validé
|
||
|
||
Scénario: Délai de validation de 24-48h jours ouvrés
|
||
Étant donné que j'ai publié mon premier contenu lundi à 10:00
|
||
Quand le contenu entre en file de validation
|
||
Alors le contenu est validé avant mercredi 10:00 (48h jours ouvrés)
|
||
Et dans la plupart des cas, la validation est effectuée sous 24h
|
||
Et je reçois une notification dès que le contenu est validé
|
||
|
||
Scénario: Notification de validation réussie
|
||
Étant donné que mon premier contenu a été validé par un modérateur
|
||
Quand la validation est approuvée
|
||
Alors je reçois une notification:
|
||
"""
|
||
✓ Votre contenu "Mon premier podcast" a été validé!
|
||
Il est maintenant diffusé sur RoadWave.
|
||
"""
|
||
Et le statut du contenu passe à "Publié"
|
||
Et le contenu devient visible pour tous les utilisateurs
|
||
Et il entre dans l'algorithme de recommandation
|
||
|
||
Scénario: Refus de validation si contenu non conforme
|
||
Étant donné que mon premier contenu viole les règles de la communauté
|
||
Quand le modérateur examine le contenu
|
||
Alors le contenu est refusé
|
||
Et je reçois une notification détaillée:
|
||
"""
|
||
⚠️ Votre contenu "Mon premier podcast" n'a pas été validé.
|
||
|
||
Raison: Contenu inapproprié détecté
|
||
Passage problématique: 3:15-3:45
|
||
Transcription: "[passage surligné]"
|
||
|
||
Que faire?
|
||
- Corrigez le problème et republiez
|
||
- Consultez les règles de la communauté
|
||
- Contactez le support si vous avez des questions
|
||
"""
|
||
Et le contenu reste en statut "Refusé"
|
||
Et je peux modifier et republier
|
||
|
||
Scénario: Les 3 premiers contenus sont validés manuellement
|
||
Étant donné que je suis un nouveau créateur
|
||
Quand je publie mes contenus
|
||
Alors les contenus suivants nécessitent une validation manuelle:
|
||
| contenu | validation manuelle |
|
||
| 1er | oui |
|
||
| 2ème | oui |
|
||
| 3ème | oui |
|
||
| 4ème | non (auto) |
|
||
Et après 3 contenus validés, mes futurs contenus sont publiés automatiquement
|
||
|
||
Scénario: Passage en mode automatique après 3 validations
|
||
Étant donné que mes 3 premiers contenus ont été validés avec succès
|
||
Quand je publie mon 4ème contenu
|
||
Alors le contenu est publié automatiquement
|
||
Et aucune validation manuelle n'est requise
|
||
Et le statut passe directement à "Publié"
|
||
Et je reçois une notification:
|
||
"""
|
||
✓ Votre contenu a été publié automatiquement.
|
||
Vos 3 premiers contenus ayant été conformes, vos futurs contenus sont publiés instantanément.
|
||
"""
|
||
|
||
# Score de confiance dynamique
|
||
|
||
Scénario: Évolution du score de confiance
|
||
Étant donné que je suis un créateur établi
|
||
Quand le système évalue mon historique
|
||
Alors un score de confiance est calculé basé sur:
|
||
| critère | poids |
|
||
| Nombre de contenus publiés | 20% |
|
||
| Strikes reçus | 40% |
|
||
| Signalements infondés | 20% |
|
||
| Ancienneté du compte | 10% |
|
||
| Taux d'engagement positif | 10% |
|
||
Et le score évolue dynamiquement
|
||
|
||
Scénario: Créateur fiable - Publication automatique
|
||
Étant donné que je suis un créateur
|
||
Et que j'ai 0 strike depuis 6 mois
|
||
Et que tous mes contenus précédents ont été conformes
|
||
Quand mon score de confiance est calculé
|
||
Alors je suis classé comme "Créateur fiable"
|
||
Et tous mes nouveaux contenus sont publiés automatiquement
|
||
Et aucune validation manuelle n'est nécessaire
|
||
Et je bénéficie d'une publication instantanée
|
||
|
||
Scénario: Créateur suspect - Validation manuelle systématique
|
||
Étant donné que je suis un créateur
|
||
Et que j'ai reçu 2 strikes récents (< 3 mois)
|
||
Quand mon score de confiance est recalculé
|
||
Alors je suis classé comme "Créateur suspect"
|
||
Et tous mes nouveaux contenus nécessitent une validation manuelle
|
||
Et chaque contenu est examiné avant publication
|
||
Et je suis notifié de ce changement de statut:
|
||
"""
|
||
En raison de sanctions récentes, vos contenus nécessitent une validation manuelle.
|
||
Respectez les règles de la communauté pour retrouver la publication automatique.
|
||
"""
|
||
|
||
Scénario: Réhabilitation après période sans incident
|
||
Étant donné que j'étais un "Créateur suspect"
|
||
Et que je publie 10 contenus conformes sur 6 mois
|
||
Et que je ne reçois aucun nouveau strike
|
||
Quand le système réévalue mon score de confiance
|
||
Alors je passe en "Créateur fiable"
|
||
Et la publication automatique est rétablie
|
||
Et je reçois une notification de réhabilitation:
|
||
"""
|
||
✓ Félicitations! Vous êtes de nouveau un créateur fiable.
|
||
Vos contenus seront publiés automatiquement.
|
||
"""
|
||
|
||
# Publicités - Validation manuelle obligatoire
|
||
|
||
Scénario: Toute publicité nécessite validation manuelle
|
||
Étant donné qu'un annonceur soumet une publicité audio
|
||
Quand la publicité est créée
|
||
Alors elle entre automatiquement en file de validation manuelle
|
||
Et aucune publicité n'est diffusée sans validation préalable
|
||
Et cela est obligatoire pour des raisons de responsabilité juridique
|
||
|
||
Scénario: Validation d'une publicité - Processus complet
|
||
Étant donné qu'une publicité est en attente de validation
|
||
Quand un modérateur senior examine la publicité
|
||
Alors le modérateur vérifie:
|
||
| critère | conforme |
|
||
| Transcription automatique Whisper | effectuée|
|
||
| Contenu conforme aux règles | oui |
|
||
| Pas de fausse publicité / arnaque | oui |
|
||
| Respect du ciblage géographique | oui |
|
||
| Durée conforme (10-60s) | oui |
|
||
| Volume audio acceptable (pas trop fort)| oui |
|
||
| Métadonnées correctes | oui |
|
||
Et si tout est conforme, la publicité est validée
|
||
|
||
Scénario: Délai de validation d'une publicité - 24-48h
|
||
Étant donné qu'un annonceur soumet une publicité lundi à 10:00
|
||
Quand la publicité entre en file de validation
|
||
Alors la publicité est validée avant mercredi 10:00 (48h jours ouvrés)
|
||
Et l'annonceur est notifié dès la validation
|
||
Et la campagne publicitaire peut alors démarrer
|
||
|
||
Scénario: Refus de validation d'une publicité
|
||
Étant donné qu'une publicité contient des éléments non conformes
|
||
Quand le modérateur examine la publicité
|
||
Alors la publicité est refusée
|
||
Et l'annonceur reçoit une notification détaillée:
|
||
"""
|
||
⚠️ Votre publicité n'a pas été validée.
|
||
|
||
Raison: Contenu trompeur détecté
|
||
Passage problématique: 0:15-0:25
|
||
Transcription: "[promesse irréaliste surlignée]"
|
||
|
||
Que faire?
|
||
- Modifiez votre publicité
|
||
- Soumettez-la à nouveau pour validation
|
||
- Consultez les règles publicitaires de RoadWave
|
||
"""
|
||
Et l'annonceur peut modifier et resoumettre la publicité
|
||
Et aucun remboursement n'est effectué pour une publicité refusée
|
||
|
||
# Prévention > Réaction
|
||
|
||
Scénario: Économie de modération grâce à la prévention
|
||
Étant donné que la modération préventive est active
|
||
Quand on analyse l'efficacité du système
|
||
Alors 80% des contenus inappropriés sont détectés avant publication
|
||
Et cela réduit le nombre de signalements de 70%
|
||
Et les ressources de modération sont optimisées
|
||
Et la qualité de la plateforme est préservée dès le début
|
||
|
||
Scénario: Qualité de la plateforme maintenue
|
||
Étant donné que tous les nouveaux créateurs sont vérifiés
|
||
Quand on analyse la qualité globale des contenus
|
||
Alors le taux de contenus inappropriés est <1%
|
||
Et les utilisateurs font confiance à la plateforme
|
||
Et la réputation de RoadWave est préservée
|
||
Et l'expérience utilisateur est optimale
|
||
|
||
# Transparence envers les créateurs
|
||
|
||
Scénario: Information claire sur le processus de validation
|
||
Étant donné que je suis un nouveau créateur
|
||
Quand je consulte la page d'aide "Validation des contenus"
|
||
Alors j'apprends que:
|
||
"""
|
||
Validation des contenus
|
||
|
||
Nouveaux créateurs:
|
||
- Vos 3 premiers contenus sont validés manuellement
|
||
- Délai: 24-48h (jours ouvrés)
|
||
- Après 3 contenus conformes: publication automatique
|
||
|
||
Créateurs établis:
|
||
- Publication automatique si historique conforme
|
||
- Validation manuelle si strikes récents
|
||
|
||
Publicités:
|
||
- Validation manuelle obligatoire pour toutes les publicités
|
||
- Délai: 24-48h (jours ouvrés)
|
||
"""
|
||
Et le processus est clair et transparent
|
||
|
||
Scénario: Badge "Créateur vérifié" après validation
|
||
Étant donné que mes 3 premiers contenus ont été validés avec succès
|
||
Quand je consulte mon profil créateur
|
||
Alors un badge discret "✓ Créateur vérifié" s'affiche
|
||
Et ce badge rassure les auditeurs sur la qualité de mes contenus
|
||
Et il améliore ma crédibilité sur la plateforme
|
||
|
||
# Conformité et justification
|
||
|
||
Scénario: Justification de la modération préventive
|
||
Étant donné que la modération préventive est en place
|
||
Quand on évalue les bénéfices
|
||
Alors les avantages suivants sont constatés:
|
||
| bénéfice |
|
||
| Prévention meilleure que réaction |
|
||
| Économie de ressources de modération (×3-5) |
|
||
| Qualité de la plateforme préservée dès le début |
|
||
| Confiance des utilisateurs renforcée |
|
||
| Moins de contenus inappropriés signalés |
|
||
| Réputation de la plateforme protégée |
|
||
Et l'investissement dans la prévention est rentable
|
||
|
||
Scénario: Coût de la modération préventive
|
||
Étant donné que 100 nouveaux créateurs publient 3 contenus chacun
|
||
Et que 50 publicités sont soumises par mois
|
||
Quand on calcule le coût de modération préventive
|
||
Alors le coût en temps modérateur est:
|
||
| type | nombre | temps/contenu | total |
|
||
| Nouveaux créateurs| 300 | 5 min | 25h |
|
||
| Publicités | 50 | 10 min | 8.3h |
|
||
Et le coût total est d'environ 33h de modération/mois
|
||
Et c'est largement compensé par la réduction des signalements réactifs
|