Files
roadwave/docs/domains/moderation/rules/moderation-communautaire.md
jpgiannetti 35aaa105d0 docs: améliorer rendu markdown et navigation mkdocs
- Ajouter ADR-018 (librairies Go) dans TECHNICAL.md
- Transformer Shared en menu dépliable dans mkdocs (cohérence avec autres domaines)
- Corriger listes markdown (ajout lignes vides avant listes)
- Corriger line breaks dans génération BDD (étapes "Et" sur nouvelles lignes)
- Ajouter script fix-markdown-lists.sh pour corrections futures

Impacte 86 fichiers de documentation et 164 fichiers BDD générés.
2026-02-09 20:49:52 +01:00

462 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 19. Modération Communautaire - Badges et Récompenses
**Contexte** : Système de gamification pour encourager les utilisateurs à signaler du contenu inapproprié de manière pertinente et qualitative.
**Objectifs** :
- Améliorer la qualité des signalements (réduire les signalements abusifs)
- Réduire la charge de travail des modérateurs (priorisation automatique)
- Récompenser les contributeurs actifs et fiables
---
### 19.1 Système de badges
**Décision** : 3 niveaux de badges selon l'historique de signalements validés
#### 19.1.1 Badges et critères
| Badge | Nom | Critères | Avantages |
|-------|-----|----------|-----------|
| 🥉 | **Contributeur Bronze** | 5 signalements validés + 70% taux pertinence | Signalements prioritaires (+10 points algorithme) |
| 🥈 | **Contributeur Argent** | 20 signalements validés + 80% taux pertinence | Signalements prioritaires (+20 points) + Badge visible profil |
| 🥇 | **Contributeur Or** | 50 signalements validés + 90% taux pertinence | Signalements prioritaires (+30 points) + Badge visible + Réduction Premium |
**Règles d'éligibilité** :
- Minimum **10 signalements envoyés** pour être éligible aux badges
- Les signalements "En cours" ne comptent pas dans le calcul
- Les signalements rejetés font baisser le taux de pertinence
**Calcul du taux de pertinence** :
```
Taux de pertinence = (Signalements validés / Total signalements envoyés) × 100
```
**Période de calcul** :
- Seuls les **6 derniers mois** comptent (période glissante)
- Évite que les utilisateurs se reposent sur leurs lauriers
**Justification** :
- **Simple** : 3 niveaux seulement (pas d'over-engineering)
- **Gratuit** : logique backend + affichage frontend
- **Efficace** : incite la qualité plutôt que la quantité
---
#### 19.1.2 Délai entre obtention badges
**Décision** : Délai minimum entre niveaux
| Transition | Délai minimum |
|------------|---------------|
| **Bronze → Argent** | 30 jours |
| **Argent → Or** | 60 jours |
**Justification** :
- Évite la montée en badge trop rapide (anti-farming)
- Force une contribution régulière sur la durée
- Détecte les patterns suspects (audit modérateur si trop rapide)
---
#### 19.1.3 Découverte du système
**IMPORTANT** : L'utilisateur doit être informé du système de récompenses **dès son premier signalement**.
**Moment d'affichage** :
- Après avoir envoyé le **premier signalement**
- Juste après le toast de confirmation standard
- **2 secondes de délai** avant affichage de la modal
**Modal d'information** (affichage unique, ne se réaffiche jamais) :
```
┌─────────────────────────────────────────────┐
│ 🎯 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 ! 🙏 │
│ │
│ [En savoir plus] [J'ai compris] │
└─────────────────────────────────────────────┘
```
**Lien "En savoir plus"** :
- Redirection vers page dédiée expliquant :
- Calcul détaillé du taux de pertinence
- Critères d'obtention pour chaque badge
- Avantages détaillés de chaque niveau
- Règles anti-abus (limite 10 signalements/24h)
- Durée de validité des badges (audit trimestriel)
**Coût** : **0€** (modal one-time, logique backend simple)
---
#### 19.1.4 Affichage badges et statistiques
**Badge visible** :
- **Profil utilisateur** : visible par tous les autres utilisateurs
- **Historique signalements** : visible uniquement par l'utilisateur lui-même
- **Toast après obtention** :
- 🥉 Bronze : "🎉 Félicitations ! Vous êtes désormais Contributeur Bronze. Merci de rendre RoadWave meilleur !"
- 🥈 Argent : "🎉 Impressionnant ! Badge Contributeur Argent obtenu. Votre engagement fait la différence !"
- 🥇 Or : "🎉 Exceptionnel ! Vous êtes Contributeur Or. La communauté vous remercie pour votre aide précieuse !"
**Statistiques personnelles** (page Profil > Mes signalements) :
```
📊 Vos statistiques de modération
Signalements envoyés : 27
Validés : 23 ✅
Rejetés : 4 ❌
Taux de pertinence : 85%
Badge actuel : 🥈 Contributeur Argent
Prochain palier : 🥇 Contributeur Or (30 signalements validés restants)
```
**Toast après traitement signalement** :
- Si validé : "✅ Bravo ! Votre signalement a aidé la communauté. Progression : 3/5 pour badge Bronze 🥉"
- Si rejeté : "❌ Signalement non retenu. Taux de pertinence : 60%. Continuez vos efforts !"
**Justification** :
- **Transparence totale** : l'utilisateur voit sa progression en temps réel
- **Motivation** : gamification saine (pas de pression, juste encouragement)
- **Gratifiant** : messages positifs valorisant la contribution
---
### 19.2 Score de fiabilité
**Décision** : Score interne utilisé pour prioriser les signalements dans l'algorithme
#### 19.2.1 Formule
```
Score fiabilité = min(100, (Validés × 10 - Rejetés × 5 + Bonus_Or × 20))
```
**Détails** :
- **Validés** : nombre de signalements validés par modérateurs
- **Rejetés** : nombre de signalements rejetés
- **Bonus_Or** : +20 points si badge Or actif
- **Plafond** : maximum 100 points
**Exemples** :
| Cas | Validés | Rejetés | Badge | Score |
|-----|---------|---------|-------|-------|
| Nouvel utilisateur fiable | 10 | 1 | Aucun | 95 |
| Utilisateur moyen | 15 | 8 | Bronze | 70 |
| Contributeur Or | 50 | 3 | Or | 100 (plafonné) |
| Signaleur abusif | 2 | 20 | Aucun | 0 (min 0) |
---
#### 19.2.2 Utilisation dans l'algorithme de priorisation
**Rappel formule Section 14.2.3** :
```
Priorité = (Score_IA × 0.7) + (Signalements_cumulés × 0.2) + (Fiabilité_signaleur × 0.1)
```
**Intégration** :
- **Fiabilité_signaleur** = Score fiabilité / 100 (normalisé 0-1)
- Les signalements des utilisateurs avec badge Argent/Or passent automatiquement devant les autres (même score IA)
**Affichage à l'utilisateur** :
- **NON affiché** publiquement (risque de gamification abusive)
- **Visible** uniquement dans les stats personnelles :
```
Votre score de fiabilité : 85/100
→ Vos signalements sont traités en priorité
```
**Coût** : **0€** (calcul automatique lors du traitement)
---
### 19.3 Statut "Utilisateur de confiance"
**Décision** : Statut automatique pour utilisateurs Badge Argent ou Or
**Critère** :
- Badge **Argent OU Or** actif = automatiquement "Utilisateur de confiance"
**Avantages** :
1. **Priorisation signalements** : traités avant signalements standards (même score IA)
2. **Badge visible** : affichage "Utilisateur de confiance" sur profil public
3. **Notification différée** : résultats sous 12h (au lieu de 24-48h standards)
**Révocation** :
- Perte badge Argent/Or → perte statut confiance automatique
- Retour au statut normal, aucune sanction supplémentaire
**Coût** : **0€** (simple flag booléen calculé automatiquement)
---
### 19.4 Réduction Premium pour badge Or
**Décision** : Seuls les utilisateurs **Contributeur Or** (top contributeurs) obtiennent une réduction Premium
#### 19.4.1 Conditions
| Critère | Valeur |
|---------|--------|
| **Montant** | **-50% pendant 3 mois** (2.49€/mois au lieu de 4.99€) |
| **Éligibilité** | Badge Or actif + pas déjà Premium |
| **Durée** | 3 mois à partir de l'activation |
| **Renouvellement** | Prix normal (4.99€/mois) après 3 mois |
| **Cumul** | Non cumulable avec offre annuelle |
| **Délai activation** | 30 jours après obtention badge Or |
---
#### 19.4.2 Notification
**Email + Push + In-app** dès obtention badge Or :
```
🎉 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.
Merci de contribuer à rendre RoadWave meilleur chaque jour !
```
**Rappels** :
- Email + Push J-7 : "Il vous reste 7 jours pour profiter de votre réduction Premium -50%"
- Email + Push J-1 : "Dernière chance ! Votre réduction Premium -50% expire demain"
**Si non activée après 30 jours** :
- Offre expirée (notification : "Votre offre Premium -50% a expiré")
- Badge Or conservé (seule l'offre expire, pas le badge)
---
#### 19.4.3 Perte du badge Or
**Conditions** :
- Taux de pertinence descend sous **90%** après audit trimestriel
- Signalements abusifs détectés (voir Section 19.5)
**Conséquences** :
- **Badge Or révoqué** immédiatement
- **Abonnement Premium en cours** reste actif jusqu'à sa fin normale
- **Nouvelle souscription** à prix normal (4.99€/mois)
- **Pas de nouvelle offre -50%** même si badge Or réobtenu ultérieurement
**Justification** :
- Maintien qualité badges sur le long terme
- Évite abus système
---
#### 19.4.4 ROI et justification
**Coût maximum** : **200€/mois** (si 50 utilisateurs Or simultanés avec réduction active)
**ROI attendu** :
- **1 utilisateur Or** = économie ~5-10h modération/mois = 75-150€ économisés (taux horaire modérateur ~15€/h)
- **10 utilisateurs Or actifs** = 750-1500€ économisés > 200€ coût réductions
- **ROI positif dès 2-3 utilisateurs Or actifs**
**Justification** :
- **Incitation forte** pour meilleurs contributeurs uniquement
- **Conversion** : utilisateurs gratuits très engagés → Premium payant après 3 mois
- **Risque limité** : coût max plafonné, largement compensé par économie modération
---
### 19.5 Anti-abus
**CRITIQUE** : Système de protection contre les comportements abusifs
#### 19.5.1 Limite temporelle
**Décision** : Maximum 10 signalements / 24h par utilisateur
**Règles** :
- Au-delà de 10 signalements/24h → signalements automatiquement rejetés
- Alerte modérateur automatique (enquête manuelle)
- Message utilisateur : "Limite quotidienne atteinte (10 signalements/24h). Réessayez demain."
**Justification** :
- Évite signalement massif (farming)
- 10/jour = largement suffisant pour usage légitime
- Coût : 0€
---
#### 19.5.2 Détection patterns suspects
**Audit automatique hebdomadaire** :
```sql
-- Détection signaleurs suspects
SELECT user_id, COUNT(*) as total
FROM reports
WHERE created_at > NOW() - INTERVAL '7 days'
GROUP BY user_id
HAVING COUNT(*) > 30
```
**Action** :
- Enquête manuelle modérateur
- Révocation badge si abus confirmé
**Patterns détectés** :
- Signalement massif (>30/semaine)
- Taux de pertinence <50% malgré volume élevé
- Signalements tous rejetés sur période 7 jours
- Signalements ciblant toujours même créateur (harcèlement)
---
#### 19.5.3 Audit trimestriel automatique
**Décision** : Tous les 3 mois, recalcul badges et révocation si critères non respectés
**Processus** :
1. Recalcul taux pertinence sur période glissante 6 mois
2. Vérification critères :
- Bronze : minimum 70% pertinence
- Argent : minimum 80% pertinence
- Or : minimum 90% pertinence
3. Révocation badge si taux insuffisant
4. Email notification **7 jours avant audit** :
```
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 !
```
**Après audit** :
- Email résultat : "Badge conservé ✓" ou "Badge révoqué ✗"
- Possibilité de réobtenir badge ultérieurement (pas de ban)
**Justification** :
- Maintien qualité badges sur le long terme
- Évite repos sur lauriers
- Coût : 0€ (script automatique)
---
#### 19.5.4 Sanctions abus détecté
| Gravité | Abus détecté | Sanction |
|---------|--------------|----------|
| **Mineur** | >10 signalements/jour pendant 1 jour | Avertissement + limite 5/jour pendant 7 jours |
| **Modéré** | >30 signalements/semaine avec <50% pertinence | Révocation badge + interdiction signalement 30 jours |
| **Grave** | Signalements massifs coordonnés (farming) | Ban permanent fonctionnalité signalement + révocation tous badges |
**Notification sanction** :
- Email + Push + In-app
- Explication détaillée de l'abus détecté
- Durée sanction
- **Pas de recours** pour sanctions graves (farming confirmé)
---
## Récapitulatif Section 19
| Point | Décision | Coût |
|-------|----------|------|
| **Badges (3 niveaux)** | Bronze (5), Argent (20), Or (50) signalements validés | 0€ |
| **Modal découverte** | Affichage unique au 1er signalement | 0€ |
| **Score fiabilité** | Calcul automatique pour priorisation | 0€ |
| **Utilisateurs de confiance** | Statut auto Argent/Or | 0€ |
| **Réduction Premium Or** | -50% pendant 3 mois (Post-MVP) | 0-200€/mois |
| **Limite temporelle** | Max 10 signalements/24h | 0€ |
| **Audit trimestriel** | Révocation si critères non respectés | 0€ |
| **Sanctions abus** | Mineur/Modéré/Grave selon pattern | 0€ |
**Coût total MVP** : **0€**
**Coût total Post-MVP** : **0-200€/mois** (réductions Premium Or)
**ROI** : **Positif dès 2-3 utilisateurs Or actifs** (économie modération > coût réductions)
---
**Conformité** :
- ✅ RGPD : données modération anonymisées après 3 ans
- ✅ Transparence : utilisateur informé dès le 1er signalement
- ✅ Anti-discrimination : système accessible à tous, basé uniquement sur pertinence
**Scalabilité** :
- 0-100 utilisateurs actifs : système automatique, 0€
- 100-1000 utilisateurs actifs : 0-50€/mois (quelques badges Or)
- 1000+ utilisateurs actifs : 50-200€/mois (max 50 badges Or simultanés)
---
**Prochaine section à clarifier** : Section 20 (si nécessaire) ou validation complète règles métier