docs(t2-live): cloture documentaire Sprint 6e
Some checks are pending
CI / quality (push) Waiting to run

- CHANGELOG : bloc Sprint 6e (Voie A, Bugs 4/5/6, indicateur, cleanup, removed).
- PARCOURS : section 4 T2 Live (notes + gating 30 mots, candidat initie, timers prepa/dialogue).
- ROADMAP : Sprint 6 marque livre (6b/6c/6e).
- GOLDEN_DATASET : D3 corrige (candidat en premier) + annotations Groupe D (D6 partiel, D7-D11 sprints futurs).
This commit is contained in:
Hermann_Kitio 2026-06-29 14:35:43 +03:00
parent 72795e924e
commit 044a305019
4 changed files with 229 additions and 120 deletions

View file

@ -299,18 +299,41 @@ Page de préparation :
— Explication du déroulé
(l'IA joue le rôle de l'examinateur)
— Consigne de la tâche affichée
— Zone de notes personnelles (brouillon local du candidat)
— Bouton "Suggestions d'idées"
→ propose des pistes pour nourrir la préparation
→ débloqué seulement quand les notes atteignent ~30 mots
(évite une demande d'idées "à vide")
— Bouton "Démarrer le dialogue"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SIMULATION LIVE — T2 Expression Orale
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
— L'IA ouvre le dialogue (première prise de parole de l'examinateur)
— Le candidat répond en audio en temps réel
— Le candidat ouvre l'interaction de service (il a besoin d'une
information et initie la conversation — format réel TCF Canada)
— L'examinateur (IA) répond ensuite et relance le dialogue
— Le candidat poursuit en audio en temps réel
— La voix de l'IA est jouée sans blanc ni coupure ;
voix de l'examinateur et voix du candidat partagent la même
horloge audio (dialogue fluide, sans décalage)
— Un indicateur signale qui a la parole
(le candidat parle / il écoute l'examinateur)
— L'IA adapte ses relances selon les réponses du candidat
— Durée libre en mode entraînement (pas de timer sur cette tâche)
— Timer de préparation 2:00 (transition automatique vers le dialogue à 0:00)
— Timer de dialogue 3:30 (210 s)
Pendant le dialogue, le candidat peut :
— "Annuler" → quitte la simulation sans évaluation,
aucun rapport généré, aucun enregistrement conservé
Fin du dialogue (candidat ou IA clôture)
Écran terminal :
— Bouton "Télécharger l'audio" (enregistrement WAV du dialogue complet,
voix candidat + examinateur mixées sur une seule piste)
— Bouton "Voir le rapport" → /rapport/:id
— Bouton "Nouvelle simulation" → relance le parcours T2 Live
Rapport complet généré (même structure que les autres tâches) ✅
Production enregistrée dans le dashboard avec tag "T2 Live"
@ -424,17 +447,18 @@ Webhook Stripe : customer.subscription.deleted
## 5. Matrice des upgrades / downgrades
| Depuis → Vers | Action | Montant facturé | Délai | Données |
|---|---|---|---|---|
| Free → Standard | Stripe Checkout | 19,90€ | Immédiat après webhook | Conservées |
| Free → Premium | Stripe Checkout | 39,90€ | Immédiat après webhook | Conservées |
| Standard → Premium | Prorata Stripe | Différence au prorata | Immédiat après webhook | Conservées |
| Premium → Standard | Résiliation + nouvel abonnement | 19,90€ | Immédiat après webhook | Conservées |
| Premium → Free | Résiliation | — | Immédiat après webhook | Conservées |
| Standard → Free | Résiliation | — | Immédiat après webhook | Conservées |
| Depuis → Vers | Action | Montant facturé | Délai | Données |
| ------------------ | ------------------------------- | --------------------- | ---------------------- | ---------- |
| Free → Standard | Stripe Checkout | 19,90€ | Immédiat après webhook | Conservées |
| Free → Premium | Stripe Checkout | 39,90€ | Immédiat après webhook | Conservées |
| Standard → Premium | Prorata Stripe | Différence au prorata | Immédiat après webhook | Conservées |
| Premium → Standard | Résiliation + nouvel abonnement | 19,90€ | Immédiat après webhook | Conservées |
| Premium → Free | Résiliation | — | Immédiat après webhook | Conservées |
| Standard → Free | Résiliation | — | Immédiat après webhook | Conservées |
> **Règle absolue :** les productions ne sont jamais supprimées, quel que soit le changement de plan.
> L'accès aux features change. Les données restent.
### Détail du prorata Standard → Premium
Stripe crédite automatiquement les jours non consommés du plan Standard et facture les jours restants au tarif Premium. L'utilisateur voit le montant exact avant de confirmer. Aucun calcul manuel requis côté code — comportement natif de Stripe via `subscription.update()` avec `proration_behavior: 'always_invoice'`.