Files
roadwave/docs/domains/moderation/flows/moderation-signalement.md
jpgiannetti 5e5fcf4714 refactor(docs): réorganiser la documentation selon principes DDD
Réorganise la documentation du projet selon les principes du Domain-Driven Design (DDD) pour améliorer la cohésion, la maintenabilité et l'alignement avec l'architecture modulaire du backend.

**Structure cible:**
```
docs/domains/
├── README.md (Context Map)
├── _shared/ (Core Domain)
├── recommendation/ (Supporting Subdomain)
├── content/ (Supporting Subdomain)
├── moderation/ (Supporting Subdomain)
├── advertising/ (Generic Subdomain)
├── premium/ (Generic Subdomain)
└── monetization/ (Generic Subdomain)
```

**Changements effectués:**

Phase 1: Création de l'arborescence des 7 bounded contexts
Phase 2: Déplacement des règles métier (01-19) vers domains/*/rules/
Phase 3: Déplacement des diagrammes d'entités vers domains/*/entities/
Phase 4: Déplacement des diagrammes flux/états/séquences vers domains/*/
Phase 5: Création des README.md pour chaque domaine
Phase 6: Déplacement des features Gherkin vers domains/*/features/
Phase 7: Création du Context Map (domains/README.md)
Phase 8: Mise à jour de mkdocs.yml pour la nouvelle navigation
Phase 9: Correction automatique des liens internes (script fix-markdown-links.sh)
Phase 10: Nettoyage de l'ancienne structure (regles-metier/, diagrammes/, features/)

**Configuration des tests:**
- Makefile: godog run docs/domains/*/features/
- scripts/generate-bdd-docs.py: features_dir → docs/domains

**Avantages:**
 Cohésion forte: toute la doc d'un domaine au même endroit
 Couplage faible: domaines indépendants, dépendances explicites
 Navigabilité améliorée: README par domaine = entrée claire
 Alignement code/docs: miroir de backend/internal/
 Onboarding facilité: exploration domaine par domaine
 Tests BDD intégrés: features au plus près des règles métier

Voir docs/REFACTOR-DDD.md pour le plan complet.
2026-02-07 17:15:02 +01:00

76 lines
2.9 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.
# Flux de modération - Processus de signalement
📖 Voir [Règles métier - Section 14 : Modération Flows](../rules/moderation-flows.md)
## Diagramme
```mermaid
flowchart TD
Start([Utilisateur signale un contenu]) --> Form[Formulaire signalement<br/>7 catégories + commentaire optionnel]
Form --> Submit[Envoi signalement]
Submit --> Toast[Toast confirmation<br/>Traitement sous 24-48h]
Submit --> Queue[Ajout file d'attente]
Queue --> Transcription[Transcription automatique<br/>Whisper large-v3]
Transcription --> AI[Analyse IA<br/>Score confiance 0-100%]
AI --> Priority{Calcul priorité}
Priority -->|Score ≥90| Critical[🔴 CRITIQUE<br/>Traitement <2h]
Priority -->|Score 70-89| High[🟠 HAUTE<br/>Traitement <24h]
Priority -->|Score 40-69| Medium[🟡 MOYENNE<br/>Traitement <24h]
Priority -->|Score <40| Low[⚪ BASSE<br/>Traitement <72h]
Critical --> AutoAction{Score IA >95%<br/>+ catégorie évidente?}
AutoAction -->|Oui| AutoSanction[Action automatique]
AutoAction -->|Non| ModReview
High --> ModReview[Examen modérateur]
Medium --> ModReview
Low --> ModReview
ModReview --> Decision{Décision}
Decision -->|Validé| Sanction[Application sanction<br/>Strike/Suspension/Ban]
Decision -->|Rejeté| Reject[Signalement rejeté]
AutoSanction --> Notify
Sanction --> Notify[Notification créateur<br/>Email + Push + In-app]
Notify --> Creator{Créateur réagit?}
Creator -->|Conteste<br/>sous 7 jours| Appeal[Formulaire d'appel<br/>Ticket généré]
Creator -->|Accepte ou<br/>pas de réaction| Final1[Sanction définitive]
Appeal --> SeniorMod[Modérateur senior<br/>Examen sous 72h]
SeniorMod --> AppealDecision{Décision appel}
AppealDecision -->|Accepté| Overturn[Annulation sanction<br/>Strike retiré]
AppealDecision -->|Rejeté| Maintain[Maintien sanction]
Overturn --> Final2[Décision définitive]
Maintain --> Final2
Reject --> NotifyReporter[Notification signaleur<br/>Mise à jour historique]
Final1 --> End([Fin du processus])
Final2 --> End
NotifyReporter --> End
style Critical fill:#ff6b6b,stroke:#c92a2a,color:#fff
style High fill:#ff922b,stroke:#d9480f,color:#fff
style Medium fill:#ffd43b,stroke:#f59f00,color:#000
style Low fill:#e9ecef,stroke:#adb5bd,color:#000
style Sanction fill:#fa5252,stroke:#c92a2a,color:#fff
style Overturn fill:#51cf66,stroke:#2b8a3e,color:#fff
style AutoSanction fill:#ff6b6b,stroke:#c92a2a,color:#fff
```
## Légende
**Priorités de traitement** :
- 🔴 **CRITIQUE** (score ≥90) : <2h - Violence, suicide, danger immédiat
- 🟠 **HAUTE** (70-89) : <24h - Haine, harcèlement
- 🟡 **MOYENNE** (40-69) : <24h - Spam, contenu inapproprié
-**BASSE** (<40) : <72h - Qualité audio, tags incorrects
**Calcul priorité** : `(Score_IA × 0.7) + (Signalements_cumulés × 0.2) + (Fiabilité_signaleur × 0.1)`