# GAB-213 · AdaptiveLearningRemediationPath — « Mini-parcours de remédiation »

**Archétype / renderer_key :** `text_cta` (cartographie) · **module :** EdTechAdaptiveLearning
**Taille :** XL · **Priorité :** P0 · **Version :** V1_CORE

## Pack (structure officielle par-GAB)
```
GAB-213/
  renderer.html            ← moteur parcours remédiation (ne pas modifier par instance)
  instance.example.json    ← SOURCE DE VÉRITÉ (contenu réel, à plat)
  schema.contract.json     ← contrat de validation
  README-contract.md       ← ce fichier
```

## Archétype

GAB-213 est le **gabarit de parcours de remédiation structuré** du module AdaptiveLearning. Il s'active quand une seule recommandation (GAB-212) ne suffit pas — la difficulté identifiée nécessite plusieurs étapes enchaînées (comprendre → observer → s'entraîner → vérifier). Il produit une séquence ordonnée de 2 à 6 étapes, multi-formats (visual, exercise, leveltest, audio, memory), avec durée estimée et ton explicitement non punitif.

## Champs requis (instance, à plat)
`gab_id` · `remediation_path_id` · `title` · `summary` · `items[]{step, title, description, module_type, module_label, duration}` · `primary_cta{label, action}`

Optionnels : `reason`, `depth`, `estimated_duration`, `steps_count_label`, `secondary_cta`, `anti_stigma_message`, `accessibility`, `child_safety`.

## Ce qui vient du JSON vs HTML
- **JSON** : titre, sous-titre, raison de transparence, chaque étape (titre, description, type de module, durée), stats (durée totale, nb formats), message anti-stigma, libellés des CTAs.
- **HTML** : layout card, ligne verticale de progression entre étapes, code couleur des numéros d'étape, structure du reason-block, zone stats 2 colonnes, boutons CTA.

## Garde-fous (child_safety)
- **Non punitif** : `anti_stigma_message` obligatoire (ton non culpabilisant, possibilité de pause ou de skip).
- **Transparence adaptative** : slot `reason` en langage élève — pas de boîte noire, pas de score brut exposé.
- **Taille encadrée** : 2 à 6 étapes max. Au-delà → PathMap complet (module 11, GAB-194).
- **BLOCKED** si `title`, `summary`, `items` ou `primary_cta` absents.

## QA à vérifier
1. Modifier le `title`/`items` → rendu change sans toucher au HTML (critère d'or).
2. `items:[]` → BLOCKED propre.
3. `secondary_cta` absent → bouton secondaire masqué (`display:none`).
4. items à 6 étapes → pas de débordement.
5. Responsive 375/768/1024.

## External refs / dependencies

| GAB | Rôle | Relation |
|-----|------|----------|
| GAB-211 | AdaptiveLearningEntrySignal | **Upstream** : le signal d'entrée (mistake, weakness…) déclenche typiquement GAB-213 quand la fragilité est confirmée sur 3+ occurrences |
| GAB-212 | AdaptiveLearningRecommendationCard | **Alternatif** : si 1 seule action suffit → GAB-212 ; si séquence nécessaire → GAB-213 |
| GAB-208 | PlayEngineRemediationInsert | **Distinct** : insert de remédiation IN-SESSION (pendant un exercice) ; GAB-213 = parcours ENTRE sessions |
| GAB-194 | PathMapRecommendedRoute | **Distinct** : route multi-étapes complète sur PathMap (module 11) ; GAB-213 = parcours court ciblé (2-6 étapes max) |
| GAB-215 | AdaptiveLearningProgressReason | **Downstream** : après completion du parcours GAB-213, une décision adaptative (advance/review/repeat…) peut être rendue via GAB-215 |

## Source
`INDEX-300-adaptivelearning-GAB-211-215-PLAYABLE.html` · stage `data-tpl="213"` · classe `.rp-card` et styles `.rp-*`.
