# GAB-360 · MotivationLearningMotivationRecovery — « Rebondir après un échec »

**Archétype / renderer_key :** `text_cta` (cartographie) · **module :** EdTechMotivationLearning
**Critère validé :** changer le JSON change le rendu sans modifier le HTML. check.py 12/12.

## Pack (structure officielle par-GAB)
```
GAB-360/
  renderer.html            ← moteur rebond après échec (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
```

## Champs requis (instance, à plat)
`gab_id` · `recovery_id` · `intro_note` · `cause_prompt` · `causes[]{id,label,icon,feedback,show_micro_cta}` · `micro_success_cta_label` · `micro_success_feedback`

Optionnels : `title`, `non_blame`, `fallback_text_summary`.

## Ce qui vient du JSON vs HTML
- **JSON** : intro, question de sélection de cause, chaque cause (icône, libellé, feedback, affichage micro-victoire), libellé et feedback du bouton micro-victoire.
- **HTML** : layout des causes, bouton structurel micro-victoire, affichage conditionnel, animations, fallback BLOCKED.

## Garde-fous (child_safety)
- **Non-blame** : aucun texte ne doit imputer la faute à l'élève — principe `non_blame:true`.
- **Cause fatigue** : `show_micro_cta:false` — une pause est conseillée, pas une action immédiate (évite la pression).
- **Micro-victoire conditionnelle** : le bouton n'apparaît que si la cause choisie le demande (`show_micro_cta:true`).
- **BLOCKED** si `causes` vide/absent, `recovery_id` absent ou `micro_success_feedback` absent.

## QA à vérifier
1. Modifier un `feedback` de cause → rendu change sans toucher au HTML (critère d'or).
2. `causes:[]` → BLOCKED propre.
3. Cause `fatigue` sélectionnée → bouton micro-victoire masqué.
4. Cause `frustration` ou `method` sélectionnée → bouton micro-victoire affiché.
5. Clic bouton micro-victoire → `micro_success_feedback` affiché en vert.
6. Instance externe injectée via `ENGINE.init(ext)` → le rendu change sans modifier le HTML.
7. Responsive 375/768/1024 — aucun débordement horizontal.

## Source
`INDEX-300-motivationlearning-GAB-356-360-PLAYABLE.html` (stage `data-tpl="360"`, handlers `d360Pick`, `d360Micro`).

## Références hors-lot (external_refs / dependencies)
- GAB-356 · MotivationLearningProgressCelebration — célébration d'un progrès prouvé (à utiliser à la place si l'échec mène à un rebond positif mesuré).
- GAB-357 · MotivationLearningBadgeUnlock — déblocage de badge (hors scope rebond).
