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

# GAB-342 · SafetyFallbackLearningUncertainAnswer — « Réponse incertaine »

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

## 🚩 FLAG REVUE BOSS (GAB SENSIBLE — child-safety)
Ce GAB relève de la **sûreté pédagogique / child-safety** (gestion de l'incertitude d'une réponse IA face à un élève). Extraction **ULTRA-prudente**, **AUCUNE invention** de contenu pédagogique : tout vient du HTML source `data-tpl="342"`.
- Les champs `uncertainty_reason` et `prudent_phrasing` sont des **reformulations issues du contexte du HTML source** (l'exemple « population de Paris en 1789 » et le wording « Il *semble* que »). À **valider par Boss** avant tout usage prod.
- Garde-fou central : `block_strong_claims:true` — une option « Affirmer comme certain » est **toujours bloquée** (jamais transformer un doute en certitude).

## Pack (structure officielle par-GAB)
```
GAB-342/
  renderer.html            ← moteur réponse incertaine (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` · `uncertain_answer_id` · `confidence_level{value,label}` · `uncertainty_reason` · `options[]{id,label,kind,next_state,feedback}`
Optionnels : `title`, `answer_kind_label`, `answer_text`, `prudent_phrasing`, `prompt`, `block_strong_claims`, `verification_action`, `initial_state`, `child_safety{no_fabrication,show_uncertainty}`.

## Ce qui vient du JSON vs HTML
- **JSON** : le texte de la réponse IA, le niveau de confiance (valeur + label), la raison de l'incertitude, les options de réaction (label, kind ok/blocked, feedback), l'état résultant.
- **HTML** : la « feuille » document, la barre de confiance, les chips, le badge d'état, le layout, le fallback BLOCKED.

## Garde-fous (child_safety)
- **Anti-affirmation forte** : option `kind:'blocked'` → on refuse de transformer le doute en certitude (`block_strong_claims`).
- **Incertitude visible** : `confidence_level` (faible) et `uncertainty_reason` affichés, jamais masqués.
- **Guidage** : seules les réactions « vérifier » / « clarifier » sont valorisées (kind:'ok').
- **Confiance = signal**, jamais une note officielle (`value` dans [0,1]).
- **BLOCKED** si `options` vide / `confidence_level` absent / `uncertainty_reason` absent.

## QA à vérifier
1. Modifier `answer_text`/`confidence_level` → rendu change sans toucher au HTML (critère d'or). 2. `options:[]` → BLOCKED propre. 3. Clic « Affirmer comme certain » → panel bad, refus. 4. Clic « Vérifier »/« Clarifier » → panel ok + bon état. 5. Responsive 375/768/1024.

## Source
`INDEX-300-safetyfallbacklearning-GAB-341-345-PLAYABLE.html` (stage `data-tpl="342"`, handlers `d342Act`).

## external_refs / dependencies
- `do_not_use_when` du source renvoie vers **GAB-343** (SafetyFallbackLearningSourceNeeded) quand une **source est requise** (hors lot logique mais même module). Pas de dépendance de code : chaque GAB est un pack autonome.
