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