feat(moderation): ajouter Gherkin modération communautaire
Ajoute moderation-communautaire.feature couvrant la Règle 15/19 : - Système de badges (Bronze/Argent/Or) - Score de fiabilité et priorisation - Modal découverte au 1er signalement - Réduction Premium -50% pour badge Or - Limites anti-abus (10 signalements/24h) - Audit trimestriel automatique - Sanctions graduées (mineur/modéré/grave) Les 4 autres fichiers de modération existants (signalement, traitement, sanctions, préventive) sont déjà conformes à l'ADR-023 et à la Règle 14.
This commit is contained in:
392
features/api/moderation/moderation-communautaire.feature
Normal file
392
features/api/moderation/moderation-communautaire.feature
Normal file
@@ -0,0 +1,392 @@
|
||||
# language: fr
|
||||
|
||||
@moderation @community
|
||||
Fonctionnalité: Modération communautaire - Badges et récompenses
|
||||
En tant que plateforme
|
||||
Je veux gamifier les signalements pertinents
|
||||
Afin d'améliorer la qualité des signalements et réduire la charge modérateurs
|
||||
|
||||
# 19. Modération Communautaire - Badges et Récompenses
|
||||
|
||||
Contexte:
|
||||
Étant donné que le système de modération communautaire est actif
|
||||
|
||||
# 19.1 - Système de badges
|
||||
|
||||
Scénario: Trois niveaux de badges disponibles
|
||||
Étant donné que je consulte le système de badges
|
||||
Quand je vois les badges disponibles
|
||||
Alors 3 niveaux de badges existent:
|
||||
| badge | nom | critères | avantages |
|
||||
| 🥉 | Contributeur Bronze | 5 validés + 70% pertinence | Signalements prioritaires (+10 points) |
|
||||
| 🥈 | Contributeur Argent | 20 validés + 80% pertinence | +20 points + Badge visible profil |
|
||||
| 🥇 | Contributeur Or | 50 validés + 90% pertinence | +30 points + Badge + Réduction Premium |
|
||||
Et les badges valorisent la qualité plutôt que la quantité
|
||||
|
||||
Scénario: Règles d'éligibilité aux badges
|
||||
Étant donné que je veux obtenir un badge
|
||||
Quand je consulte les règles d'éligibilité
|
||||
Alors les critères suivants s'appliquent:
|
||||
| règle | valeur |
|
||||
| Minimum signalements envoyés pour éligibilité | 10 |
|
||||
| Signalements "En cours" comptent dans le calcul | non |
|
||||
| Signalements rejetés font baisser le taux | oui |
|
||||
| Période de calcul (glissante) | 6 mois |
|
||||
Et seuls les 6 derniers mois sont pris en compte
|
||||
|
||||
Scénario: Calcul du taux de pertinence
|
||||
Étant donné que j'ai envoyé 20 signalements
|
||||
Et que 16 ont été validés par les modérateurs
|
||||
Et que 4 ont été rejetés
|
||||
Quand le système calcule mon taux de pertinence
|
||||
Alors la formule appliquée est "Signalements validés / Total signalements × 100"
|
||||
Et mon taux est de 80% (16 / 20 × 100)
|
||||
Et ce taux détermine mon éligibilité aux badges
|
||||
|
||||
Scénario: Obtention du badge Bronze
|
||||
Étant donné que j'ai 10 signalements envoyés
|
||||
Et que 7 signalements ont été validés
|
||||
Et que mon taux de pertinence est de 70%
|
||||
Quand le système évalue mon éligibilité
|
||||
Alors j'obtiens le badge 🥉 Contributeur Bronze
|
||||
Et je reçois une notification:
|
||||
"""
|
||||
🎉 Félicitations ! Vous êtes désormais Contributeur Bronze.
|
||||
Merci de rendre RoadWave meilleur !
|
||||
"""
|
||||
Et mes futurs signalements gagnent +10 points de priorité
|
||||
|
||||
Scénario: Obtention du badge Argent
|
||||
Étant donné que j'ai déjà le badge Bronze
|
||||
Et que j'ai 25 signalements envoyés
|
||||
Et que 20 signalements ont été validés
|
||||
Et que mon taux de pertinence est de 80%
|
||||
Et que 30 jours se sont écoulés depuis l'obtention du badge Bronze
|
||||
Quand le système évalue mon éligibilité
|
||||
Alors j'obtiens le badge 🥈 Contributeur Argent
|
||||
Et je reçois une notification:
|
||||
"""
|
||||
🎉 Impressionnant ! Badge Contributeur Argent obtenu.
|
||||
Votre engagement fait la différence !
|
||||
"""
|
||||
Et le badge est visible sur mon profil public
|
||||
Et mes futurs signalements gagnent +20 points de priorité
|
||||
|
||||
Scénario: Obtention du badge Or
|
||||
Étant donné que j'ai déjà le badge Argent
|
||||
Et que j'ai 60 signalements envoyés
|
||||
Et que 54 signalements ont été validés
|
||||
Et que mon taux de pertinence est de 90%
|
||||
Et que 60 jours se sont écoulés depuis l'obtention du badge Argent
|
||||
Quand le système évalue mon éligibilité
|
||||
Alors j'obtiens le badge 🥇 Contributeur Or
|
||||
Et je reçois une notification:
|
||||
"""
|
||||
🎉 Exceptionnel ! Vous êtes Contributeur Or.
|
||||
La communauté vous remercie pour votre aide précieuse !
|
||||
"""
|
||||
Et je bénéficie d'une réduction Premium -50% pendant 3 mois
|
||||
Et mes futurs signalements gagnent +30 points de priorité
|
||||
|
||||
Scénario: Délai minimum entre niveaux de badges
|
||||
Étant donné que j'ai obtenu le badge Bronze il y a 15 jours
|
||||
Et que je remplis les critères pour le badge Argent
|
||||
Quand le système évalue mon éligibilité
|
||||
Alors je ne peux pas encore obtenir le badge Argent
|
||||
Et je dois attendre 15 jours supplémentaires (30 jours minimum)
|
||||
Et cela évite la montée en badge trop rapide (anti-farming)
|
||||
|
||||
# 19.1.3 - Découverte du système
|
||||
|
||||
Scénario: Modal d'information au premier signalement
|
||||
Étant donné que je viens d'envoyer mon tout premier signalement
|
||||
Et que le toast de confirmation standard s'est affiché
|
||||
Quand 2 secondes se sont écoulées
|
||||
Alors une modal d'information s'affiche automatiquement
|
||||
Et la modal explique le système de badges et récompenses
|
||||
Et la modal contient:
|
||||
"""
|
||||
🎯 Bravo ! Vous contribuez à une communauté plus saine
|
||||
|
||||
En signalant ce contenu, vous participez activement à améliorer
|
||||
l'expérience de tous les utilisateurs RoadWave.
|
||||
|
||||
Vos contributions de qualité sont valorisées et récompensées :
|
||||
|
||||
🥉 Bronze : 5 signalements validés → Signalements prioritaires
|
||||
🥈 Argent : 20 signalements validés → Badge visible + priorité accrue
|
||||
🥇 Or : 50 signalements validés → Réduction Premium -50% pendant 3 mois
|
||||
|
||||
💡 Votre taux de pertinence compte !
|
||||
Signalements validés ÷ Total × 100
|
||||
|
||||
Continuez à nous aider, chaque signalement pertinent compte ! 🙏
|
||||
"""
|
||||
Et la modal contient un bouton "En savoir plus"
|
||||
Et la modal contient un bouton "J'ai compris"
|
||||
Et la modal ne se réaffiche jamais
|
||||
|
||||
# 19.1.4 - Affichage badges et statistiques
|
||||
|
||||
Scénario: Statistiques personnelles visibles
|
||||
Étant donné que j'ai un badge Bronze
|
||||
Quand je consulte "Profil > Mes signalements"
|
||||
Alors je vois mes statistiques de modération:
|
||||
"""
|
||||
📊 Vos statistiques de modération
|
||||
Signalements envoyés : 27
|
||||
Validés : 23 ✅
|
||||
Rejetés : 4 ❌
|
||||
Taux de pertinence : 85%
|
||||
|
||||
Badge actuel : 🥉 Contributeur Bronze
|
||||
Prochain palier : 🥈 Contributeur Argent (17 signalements validés restants)
|
||||
"""
|
||||
Et je vois ma progression vers le prochain badge
|
||||
|
||||
Scénario: Toast après validation de signalement
|
||||
Étant donné que j'ai un badge Bronze (3/5 signalements validés)
|
||||
Et que j'envoie un nouveau signalement
|
||||
Quand le modérateur valide mon signalement
|
||||
Alors je reçois un toast:
|
||||
"""
|
||||
✅ Bravo ! Votre signalement a aidé la communauté.
|
||||
Progression : 4/5 pour badge Bronze 🥉
|
||||
"""
|
||||
Et je vois ma progression vers le badge suivant
|
||||
|
||||
Scénario: Toast après rejet de signalement
|
||||
Étant donné que j'ai un taux de pertinence de 65%
|
||||
Et que j'envoie un nouveau signalement
|
||||
Quand le modérateur rejette mon signalement
|
||||
Alors je reçois un toast:
|
||||
"""
|
||||
❌ Signalement non retenu.
|
||||
Taux de pertinence : 60%.
|
||||
Continuez vos efforts !
|
||||
"""
|
||||
Et je vois l'impact sur mon taux de pertinence
|
||||
|
||||
# 19.2 - Score de fiabilité
|
||||
|
||||
Scénario: Calcul du score de fiabilité
|
||||
Étant donné que j'ai 15 signalements validés
|
||||
Et que j'ai 3 signalements rejetés
|
||||
Et que j'ai le badge Or actif
|
||||
Quand le système calcule mon score de fiabilité
|
||||
Alors la formule appliquée est:
|
||||
"""
|
||||
Score fiabilité = min(100, (Validés × 10 - Rejetés × 5 + Bonus_Or × 20))
|
||||
"""
|
||||
Et mon score est: min(100, (15 × 10 - 3 × 5 + 1 × 20)) = 100 (plafonné)
|
||||
Et ce score est utilisé dans l'algorithme de priorisation
|
||||
|
||||
Scénario: Utilisation du score dans la priorisation
|
||||
Étant donné que j'ai un score de fiabilité de 85/100
|
||||
Et qu'un autre utilisateur a un score de 30/100
|
||||
Quand nous signalons des contenus similaires
|
||||
Alors mon signalement a un meilleur score de priorité
|
||||
Et mon signalement est traité en premier
|
||||
Et la formule de priorité inclut:
|
||||
"""
|
||||
Priorité = (Score_IA × 0.7) + (Signalements_cumulés × 0.2) + (Fiabilité_signaleur × 0.1)
|
||||
"""
|
||||
Et la fiabilité est normalisée : 85/100 = 0.85
|
||||
|
||||
# 19.3 - Statut "Utilisateur de confiance"
|
||||
|
||||
Scénario: Obtention automatique du statut de confiance
|
||||
Étant donné que j'obtiens le badge Argent
|
||||
Quand mon statut est mis à jour
|
||||
Alors je deviens automatiquement "Utilisateur de confiance"
|
||||
Et mes signalements sont traités en priorité (même score IA)
|
||||
Et je reçois des notifications sous 12h (au lieu de 24-48h)
|
||||
Et le badge "Utilisateur de confiance" s'affiche sur mon profil
|
||||
|
||||
Scénario: Révocation du statut de confiance
|
||||
Étant donné que je suis "Utilisateur de confiance"
|
||||
Et que je perds mon badge Argent après audit trimestriel
|
||||
Quand mon statut est réévalué
|
||||
Alors le statut "Utilisateur de confiance" est révoqué
|
||||
Et je reviens au statut normal
|
||||
Et aucune sanction supplémentaire n'est appliquée
|
||||
|
||||
# 19.4 - Réduction Premium pour badge Or
|
||||
|
||||
Scénario: Notification de réduction Premium au badge Or
|
||||
Étant donné que j'obtiens le badge Contributeur Or
|
||||
Quand la notification est envoyée
|
||||
Alors je reçois un email + push + in-app:
|
||||
"""
|
||||
🎉 Exceptionnel ! Vous avez obtenu le badge Contributeur Or
|
||||
|
||||
Vous faites partie des meilleurs contributeurs de RoadWave.
|
||||
Grâce à votre engagement et votre vigilance, vous aidez
|
||||
des milliers d'utilisateurs à profiter d'une expérience audio de qualité.
|
||||
|
||||
La communauté vous remercie ! 🙏
|
||||
|
||||
En reconnaissance de votre aide précieuse, vous bénéficiez de :
|
||||
|
||||
✨ 3 mois d'abonnement Premium à -50%
|
||||
→ 2.49€/mois au lieu de 4.99€
|
||||
|
||||
[Profiter de l'offre]
|
||||
|
||||
Cette offre est valable pendant 30 jours.
|
||||
"""
|
||||
Et l'offre est valable pendant 30 jours
|
||||
|
||||
Scénario: Activation de la réduction Premium Or
|
||||
Étant donné que j'ai obtenu le badge Or
|
||||
Et que j'ai reçu l'offre Premium -50%
|
||||
Quand je clique sur "Profiter de l'offre" dans les 30 jours
|
||||
Alors je souscris à Premium à 2.49€/mois
|
||||
Et la réduction est valable pour 3 mois
|
||||
Et après 3 mois, le renouvellement passe à 4.99€/mois
|
||||
Et l'offre n'est pas cumulable avec l'offre annuelle
|
||||
|
||||
Scénario: Expiration de l'offre Premium après 30 jours
|
||||
Étant donné que j'ai obtenu le badge Or il y a 31 jours
|
||||
Et que je n'ai pas activé l'offre Premium -50%
|
||||
Quand j'essaie d'activer l'offre
|
||||
Alors l'offre a expiré
|
||||
Et je vois le message "Votre offre Premium -50% a expiré"
|
||||
Et mon badge Or est conservé (seule l'offre expire)
|
||||
Et je ne peux plus bénéficier de la réduction
|
||||
|
||||
Scénario: Rappels avant expiration de l'offre
|
||||
Étant donné que j'ai obtenu le badge Or
|
||||
Et que je n'ai pas encore activé l'offre Premium
|
||||
Quand il reste 7 jours avant l'expiration
|
||||
Alors je reçois un email + push:
|
||||
"""
|
||||
Il vous reste 7 jours pour profiter de votre réduction Premium -50%
|
||||
"""
|
||||
Et quand il reste 1 jour, je reçois un dernier rappel:
|
||||
"""
|
||||
Dernière chance ! Votre réduction Premium -50% expire demain
|
||||
"""
|
||||
|
||||
Scénario: Perte du badge Or pendant l'abonnement Premium
|
||||
Étant donné que j'ai le badge Or et l'abonnement Premium -50% actif
|
||||
Et que je perds le badge Or après un audit trimestriel
|
||||
Quand mon abonnement arrive à échéance
|
||||
Alors l'abonnement en cours reste actif jusqu'à sa fin normale
|
||||
Mais le renouvellement se fait à prix normal 4.99€/mois
|
||||
Et je ne peux pas réobtenir l'offre -50% même si je récupère le badge Or
|
||||
|
||||
# 19.5 - Anti-abus
|
||||
|
||||
Scénario: Limite de 10 signalements par 24h
|
||||
Étant donné que j'ai déjà envoyé 10 signalements aujourd'hui
|
||||
Quand j'essaie d'envoyer un 11ème signalement
|
||||
Alors le signalement est automatiquement rejeté
|
||||
Et je vois le message:
|
||||
"""
|
||||
Limite quotidienne atteinte (10 signalements/24h).
|
||||
Réessayez demain.
|
||||
"""
|
||||
Et une alerte modérateur automatique est déclenchée
|
||||
|
||||
Scénario: Détection de signalement massif suspect
|
||||
Étant donné que j'ai envoyé 35 signalements cette semaine
|
||||
Quand l'audit automatique hebdomadaire s'exécute
|
||||
Alors mon compte est détecté comme suspect (>30/semaine)
|
||||
Et une enquête manuelle modérateur est déclenchée
|
||||
Et le modérateur peut révoquer mon badge si abus confirmé
|
||||
|
||||
Scénario: Patterns suspects détectés
|
||||
Étant donné que le système analyse mes patterns de signalement
|
||||
Quand des comportements suspects sont identifiés:
|
||||
| pattern | seuil |
|
||||
| Signalement massif | >30/semaine |
|
||||
| Taux de pertinence très faible | <50% |
|
||||
| Tous signalements rejetés sur 7 jours | 100% rejet |
|
||||
| Signalements ciblant toujours même créateur | Harcèlement |
|
||||
Alors une enquête manuelle est déclenchée
|
||||
Et le modérateur examine les signalements en détail
|
||||
|
||||
Scénario: Audit trimestriel automatique des badges
|
||||
Étant donné que le système effectue l'audit trimestriel
|
||||
Quand mon badge est audité
|
||||
Alors le système recalcule mon taux de pertinence sur 6 mois glissants
|
||||
Et vérifie les critères:
|
||||
| badge | taux minimum |
|
||||
| Bronze | 70% |
|
||||
| Argent | 80% |
|
||||
| Or | 90% |
|
||||
Et si mon taux est insuffisant, mon badge est révoqué
|
||||
|
||||
Scénario: Email de prévention 7 jours avant audit
|
||||
Étant donné que l'audit trimestriel arrive dans 7 jours
|
||||
Et que mon taux de pertinence est de 78%
|
||||
Et que j'ai un badge Argent (minimum 80% requis)
|
||||
Quand le système envoie les notifications préventives
|
||||
Alors je reçois un email:
|
||||
"""
|
||||
Votre badge Contributeur Argent sera audité dans 7 jours.
|
||||
Taux de pertinence actuel : 78%
|
||||
Minimum requis : 80%
|
||||
|
||||
Continuez à signaler du contenu pertinent pour conserver votre badge !
|
||||
"""
|
||||
Et je suis informé à l'avance pour améliorer mes signalements
|
||||
|
||||
Scénario: Résultat d'audit - Badge conservé
|
||||
Étant donné que l'audit trimestriel vient d'être effectué
|
||||
Et que mon taux de pertinence est de 85%
|
||||
Et que j'ai un badge Argent (minimum 80% requis)
|
||||
Quand je reçois le résultat
|
||||
Alors je reçois un email: "Badge conservé ✓"
|
||||
Et mon badge reste actif pour 3 mois supplémentaires
|
||||
|
||||
Scénario: Résultat d'audit - Badge révoqué
|
||||
Étant donné que l'audit trimestriel vient d'être effectué
|
||||
Et que mon taux de pertinence est de 75%
|
||||
Et que j'ai un badge Argent (minimum 80% requis)
|
||||
Quand je reçois le résultat
|
||||
Alors je reçois un email: "Badge révoqué ✗"
|
||||
Et mon badge Argent est révoqué immédiatement
|
||||
Mais je peux réobtenir un badge ultérieurement (pas de ban)
|
||||
|
||||
Scénario: Sanctions pour abus détecté - Mineur
|
||||
Étant donné que j'ai envoyé >10 signalements/jour pendant 1 jour
|
||||
Quand l'abus mineur est détecté
|
||||
Alors je reçois un avertissement
|
||||
Et ma limite est réduite à 5 signalements/jour pendant 7 jours
|
||||
Et je reçois une notification explicative
|
||||
|
||||
Scénario: Sanctions pour abus détecté - Modéré
|
||||
Étant donné que j'ai envoyé >30 signalements/semaine
|
||||
Et que mon taux de pertinence est <50%
|
||||
Quand l'abus modéré est confirmé
|
||||
Alors tous mes badges sont révoqués
|
||||
Et je suis interdit de signalement pendant 30 jours
|
||||
Et je reçois une notification de sanction
|
||||
|
||||
Scénario: Sanctions pour abus détecté - Grave
|
||||
Étant donné que j'ai participé à un farming coordonné de signalements
|
||||
Quand l'abus grave est confirmé par modérateur
|
||||
Alors je reçois un ban permanent de la fonctionnalité signalement
|
||||
Et tous mes badges sont révoqués définitivement
|
||||
Et il n'y a pas de recours possible pour farming confirmé
|
||||
|
||||
# ROI et justification
|
||||
|
||||
Scénario: ROI positif de la modération communautaire
|
||||
Étant donné que 10 utilisateurs Or sont actifs
|
||||
Quand on calcule le ROI
|
||||
Alors chaque utilisateur Or économise 5-10h de modération/mois
|
||||
Et cela représente 75-150€ économisés par utilisateur (taux 15€/h)
|
||||
Et le total est de 750-1500€ économisés/mois
|
||||
Et le coût des réductions Premium est maximum 200€/mois (50 utilisateurs Or)
|
||||
Et le ROI est positif dès 2-3 utilisateurs Or actifs
|
||||
|
||||
Scénario: Coût total du système
|
||||
Étant donné que le système de modération communautaire est en place
|
||||
Quand on calcule le coût total
|
||||
Alors en phase MVP, le coût est de 0€
|
||||
Et en phase Post-MVP avec réductions Premium, le coût est de 0-200€/mois
|
||||
Et le système est entièrement automatique (0€ développement continu)
|
||||
Et le ROI est largement positif
|
||||
Reference in New Issue
Block a user