(doc) : ajout et modification de docs après arbitrage

This commit is contained in:
jpgiannetti
2026-01-31 21:09:59 +01:00
parent f99fb3c614
commit 841028d1b2
24 changed files with 3081 additions and 301 deletions

View File

@@ -14,11 +14,11 @@ RoadWave est utilisée en conduisant. Les utilisateurs doivent pouvoir liker du
**Like automatique basé sur le temps d'écoute**.
Règles :
- ≥80% d'écoute → Like renforcé (+2 points)
- 30-79% d'écoute → Like standard (+1 point)
- <30% d'écoute → Pas de like
- Skip <10s → Signal négatif (-0.5 point)
**Principe** : Le système calcule automatiquement un score d'engagement basé sur le pourcentage du contenu écouté, puis applique des ajustements de jauges d'intérêt en conséquence.
**Progression** : Les jauges utilisent des **points de pourcentage absolus** (addition/soustraction), **pas des pourcentages relatifs** (multiplication).
> 📋 **Valeurs concrètes** : Voir [Règle 03 - Évolution des Jauges](../regles-metier/03-centres-interet-jauges.md#31-évolution-des-jauges) pour les seuils et impacts exacts.
## Alternatives considérées
@@ -37,10 +37,62 @@ Règles :
- **Engagement** : Tous les contenus génèrent des signaux
- **Simplicité** : Une seule logique à implémenter et maintenir
## Pattern d'Implémentation
### Architecture
```
[Audio Player] → [Listen Event Tracker]
[Gauge Calculation Service]
- Calcule score basé sur %écoute
- Applique seuils (définis dans règles métier)
- Retourne ajustement (points absolus)
[Gauge Update Service]
- Applique ajustement (addition/soustraction)
- Applique bornes [0, 100]
- Persiste en DB
```
### Principes Clés
**Calcul d'ajustement** :
```go
// Pattern générique (valeurs dans règles métier)
func CalculateGaugeAdjustment(listenPercentage float64) float64 {
// Logique par seuils définis dans règles métier
// Retourne ajustement absolu (ex: +2.0, +1.0, -0.5)
}
```
**Application avec bornes** :
```go
// ✅ CORRECT : Addition de points absolus
newValue := currentValue + adjustment
newValue = clamp(newValue, 0.0, 100.0)
// ❌ INCORRECT : Multiplication (pourcentage relatif)
newValue := currentValue * (1 + adjustment/100) // NE PAS FAIRE
```
**Multi-tags** :
- Si contenu a plusieurs tags → chaque jauge correspondante est ajustée
- Ajustement identique appliqué à toutes les jauges concernées
## Conséquences
### Technique
- Tracking du temps d'écoute via le player audio
- Calcul du score côté backend basé sur `completion_rate`
- Communication onboarding : "Vos likes sont automatiques selon votre temps d'écoute"
- Possibilité de like manuel depuis l'app (à l'arrêt)
- **Architecture à 2 services** : Calculation (calcule ajustement) + Update (applique avec bornes)
- Métriques à suivre : taux de complétion, distribution des scores, feedbacks utilisateurs
### UX
- Communication onboarding : "Vos likes sont automatiques selon votre temps d'écoute"
- Possibilité de like manuel depuis l'app (à l'arrêt) également
- **Progression linéaire** : Évite l'effet "rich get richer" (progression équitable)
- Prévisibilité : Ajustements absolus, pas de calculs complexes
### Référence
- **Seuils et valeurs** : Voir [Règle 03 - Évolution des Jauges](../regles-metier/03-centres-interet-jauges.md#31-évolution-des-jauges)