# GAB-265 · ComprehensionLearningSelfCheck — « Auto-vérification de compréhension »

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

## Pack (structure officielle par-GAB)
```
GAB-265/
  renderer.html            <- moteur auto-vérification (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-265 est un écran de **self-check métacognitif** : après une activité de compréhension de texte, l'élève se positionne sur 3 zones (SOLIDE / FRAGILE / À REVOIR) et reçoit une recommandation d'action suivante. Le moteur supporte 4 `check_mode` (zones_three, quick_quiz, explain_back, emoji_check) sélectionnables via chips enum.

## Champs requis (instance, à plat)
`gab_id` · `selfcheck_id` · `title` · `zones[]{key,icon,label,description}` · `check_modes[]{key,title,subtitle,next_action,primary_cta}`

Optionnels : `subtitle`, `check_mode` (mode initial), `next_action_header`, `next_action_text`, `metacognitive_header`, `metacognitive_text`, `primary_cta`, `secondary_cta`, `zone_confirm_feedback`.

## Ce qui vient du JSON vs HTML
- **JSON** : libellés des 3 zones (icon/label/description), titre et sous-titre par mode, next_action (peut contenir `<b>`), libellés des 2 CTAs, feedback de confirmation, texte métacognitif.
- **HTML** : grille des zones, chips enum, bloc action, bloc métacognitif, layout, responsive, blocked handler.

## Garde-fous (child_safety)
- **BLOCKED** si `zones` vide / `check_modes` vide / `title` absent / `gab_id` absent.
- **Anti-hardcode** : 0 libellé pédagogique dans le HTML — tout vient de l'instance.
- **next_action injecté via innerHTML** : peut contenir du gras `<b>` ; pas de script user.

## QA à vérifier
1. Clic zone solid → highlighted + feedback `zone_confirm_feedback`.
2. Chip `quick_quiz` → titre/sous-titre/next_action/primary_cta changent.
3. `zones:[]` → BLOCKED propre.
4. `ENGINE.init(extInstance)` → rendu remplacé sans rechargement HTML.
5. Responsive 375px → zones en colonne, 0 débordement.

## Source
`INDEX-300-comprehensionlearning-GAB-261-265-PLAYABLE.html` (stage `data-tpl="265"`, handler `scPick`, constante `SC_TYPES`).

## Note : canonical_name vs renderer task label
La source nomme ce GAB `ComprehensionLearningSelfCheck` (tag affiché dans la demo). Le task label `ComprehensionLearningEvidenceFinder` correspond au nom de tâche de conversion — les deux désignent GAB-265 ; le `canonical_name` du schema suit la source.
