# GAB-263 · ComprehensionLearningKeyIdeas — « Extraction des idées principales »

**Archétype / renderer_key :** `text_cta` (cartographie) · **module :** EdTechComprehensionLearning
**Critère validé :** changer le JSON change la hiérarchie d'idées sans modifier le HTML.

## Pack (structure officielle par-GAB)
```
GAB-263/
  renderer.html            ← moteur extraction idées principales (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` · `key_ideas_id` · `title` · `items[]{rank,level,level_label,level_tag,text}` · `primary_cta{label,action}`

Optionnels : `subtitle`, `extraction_mode`, `rationale`, `secondary_cta`, `source_passage`.

## Ce qui vient du JSON vs HTML
- **JSON** : chaque item (rang, niveau, libellé de niveau, tag, texte), la justification pédagogique (`rationale`), le libellé du bouton primaire et secondaire.
- **HTML** : grille ki-items, codage couleur par niveau (main=violet, secondary=sky, detail=muted), layout, fallback.

## Archétype
GAB-263 est une carte d'**extraction et hiérarchisation** : un texte source produit une liste ordonnée d'idées (1 principale, N secondaires, N détails). Ce n'est pas une évaluation notée (→ Assessment), ni une mémorisation (→ Memory). Position dans la chaîne : 261 Intro → 262 TextReading → **263 KeyIdeas** → 264 QuestionAnswer → 265 SelfCheck.

## Garde-fous (child_safety)
- **Anti-invention** : tout contenu textuel vient du JSON — aucune phrase générée côté HTML.
- **BLOCKED** si `items` absent/vide, `title` absent ou `primary_cta` absent.
- `level` : uniquement `main`, `secondary`, `detail` — toute valeur hors-enum affiche le style `detail` par défaut (dégradation gracieuse).

## QA à vérifier
1. Modifier un `text` item → rendu change sans toucher au HTML (critère d'or).
2. `items:[]` → BLOCKED propre.
3. `title` absent → BLOCKED propre.
4. `primary_cta` absent → BLOCKED propre.
5. CTA primaire → panel ok vert.
6. CTA secondaire → panel note neutre.
7. Responsive 375/768/1024 — aucun débordement.

## Source
`INDEX-300-comprehensionlearning-GAB-261-265-PLAYABLE.html` (stage `data-tpl="263"`, handlers `kiPick`, `KI_TYPES`).

## external_refs / dependencies
Aucune dépendance hors-lot. Chaîne compréhension : GAB-261, GAB-262, GAB-264, GAB-265 (même LOT).
