> ⚠️ **GAB SENSIBLE — VALIDATION BOSS OBLIGATOIRE avant tout usage.** (child-safety / RGPD / orientation / career). Contenu extrait sans invention ; à relire par un humain.

# GAB-333 · MetacognitionLearningStrategyChoice — « Choisir une stratégie »

**Archétype / renderer_key :** `choice_select` (cartographie) · **module :** EdTechMetacognitionLearning
**Critère validé :** changer le JSON change les stratégies/conséquences sans modifier le HTML. ✅ check.py 12/12.

> ⚠️ **GAB SENSIBLE — REVUE BOSS REQUISE**
> Ce gabarit touche à l'**orientation pédagogique / métacognition** (on guide l'élève vers des stratégies d'apprentissage). Tout contenu pédagogique (stratégies proposées, conséquences, suggestion prof) doit être **validé par Boss** avant mise en prod. Extraction effectuée en mode ULTRA-prudent : **aucune** stratégie ni conséquence n'a été inventée — tout vient strictement de l'écran source `d333Pick`.

## Renderer_key sans moteur kit
`choice_select` n'a **pas de moteur kit de référence** : le renderer a été **dérivé de l'écran source lui-même** (handlers `d333Pick`, structure `.synth-item` → `.choice`). Aucun moteur de cartographie réutilisé. Le moteur `ENGINE` est autonome et data-driven.

## Pack (structure officielle par-GAB)
```
GAB-333/
  renderer.html            ← moteur choix de stratégie (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` · `strategy_choice_id` · `strategies[]{label,tag,icon,consequence,teacher_suggested}` · `explanation`
Optionnels : `title`, `state`, `question`, `student_choice_respected`, `teacher_suggestion_note`.

## Ce qui vient du JSON vs HTML
- **JSON** : chaque stratégie, son icône, son tag, sa **conséquence** affichée au clic, le drapeau `teacher_suggested`, la question, l'explication.
- **HTML** : grille de choix, badge d'état (comparing/chosen/overridden), panel feedback, layout, navigation clavier.

## Garde-fous (child_safety / orientation)
- **Chaque choix est explicable** : on montre la **conséquence** de la stratégie, pas un verdict bon/mauvais sec.
- **Choix de l'élève respecté** : une stratégie `teacher_suggested:true` (ex. « Relecture, suggérée prof ») reste un choix — message « tu peux choisir autre chose ». État `overridden`, jamais bloquant.
- **Anti-invention** : aucune stratégie ni conséquence ajoutée hors source. Contenu manquant → `_TODO` dans l'instance.
- **BLOCKED** si `strategies` vide / `explanation` absente / une stratégie sans `consequence`.

## QA à vérifier
1. Modifier une `consequence`/`label` → rendu change sans toucher au HTML (critère d'or). 2. `strategies:[]` → BLOCKED propre. 3. Clic option prof → état `overridden` + message « tu peux choisir autre chose ». 4. Clic option normale → état `chosen` + conséquence verte. 5. Responsive 375/768/1024.

## external_refs / dependencies
- Référence hors-lot dans la source : `do_not_use_when` mentionne « fixer un objectif (→ GAB-335) ». Simple renvoi documentaire, **aucune dépendance technique** : GAB-333 est autonome (pas d'import, pas d'appel à GAB-335).

## Source
`INDEX-300-metacognitionlearning-GAB-331-335-PLAYABLE.html` (stage `data-tpl="333"`, handler `d333Pick`).
