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

# GAB-343 · SafetyFallbackLearningSourceNeeded — « Source nécessaire »

**Archétype / renderer_key :** `text_cta` (cartographie) · **module :** EdTechSafetyFallbackLearning
**Critère validé :** changer le JSON change le filet de sûreté sans modifier le HTML. ✅ check.py 12/12.

> ⚠️ **GAB SENSIBLE — REVUE BOSS REQUISE.** Ce gabarit relève de la sûreté / anti-hallucination (child-safety). Tout contenu a été extrait STRICTEMENT du gabarit source `INDEX-300-safetyfallbacklearning-GAB-341-345-PLAYABLE.html` (bloc `<!-- GAB-343 -->`, handlers `d343Pick` / `d343Fallback`). **Aucune invention.** Le champ `child_safety.boss_review_required:true` signale qu'une validation Boss est nécessaire avant tout usage en production.

## Pack (structure officielle par-GAB)
```
GAB-343/
  renderer.html            ← moteur filet de sûreté (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` · `source_need_id` · `expected_source_type` · `why_needed` · `source_options[]{icon,label,accepted,feedback}`
Optionnels : `title`, `state_label`, `alert_notice`, `question`, `fallback_no_source`, `anti_hallucination`, `student_guidance`, `use_when`, `do_not_use_when`, `child_safety`.

## Ce qui vient du JSON vs HTML
- **JSON** : le panneau d'alerte, la question, chaque type de source proposé (icône, libellé, statut accepté/refusé, feedback), le pourquoi de la source, le fallback honnête, les listes use_when / do_not_use_when.
- **HTML** : panneau d'alerte (warn), liste `.synth` des options, panneau de réponse, grille usage, layout, slots, fallback structurel.

## Garde-fous (child_safety)
- **Anti-hallucination** : `anti_hallucination` interdit explicitement d'inventer une source plausible.
- **Pas d'affirmation sans source** : si l'élève n'a aucune source (`accepted:false`), `fallback_no_source` impose de formuler en doute (« à vérifier ») et de guider, **sans rien inventer**.
- **Type de source visible** : `expected_source_type` montre ce qui est attendu (manuel scolaire, encyclopédie…).
- **BLOCKED** si `source_options` vide / `expected_source_type` absent / `why_needed` absent.
- **Revue Boss** : `child_safety.boss_review_required:true`.

## QA à vérifier
1. Modifier un `feedback`/`label` → rendu change sans toucher au HTML (critère d'or). 2. `source_options:[]` → BLOCKED propre. 3. Clic option sans source (`accepted:false`) → message « on n'invente rien ». 4. Clic option acceptée → feedback positif. 5. Responsive 375/768/1024.

## external_refs / dependencies
- Le bloc source renvoie vers le frère **GAB-342** (`SafetyFallbackLearningUncertainAnswer`) dans `do_not_use_when` (« réponse incertaine simple (→ GAB-342) »). Référence textuelle pédagogique uniquement, aucune dépendance technique de rendu.

## Source
`INDEX-300-safetyfallbacklearning-GAB-341-345-PLAYABLE.html` (stage `data-tpl="343"`, handlers `d343Pick` / `d343Fallback`).
