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

# GAB-375 · CareerLearningDayInLifeScenario — « Une journée dans le métier »

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

> ⚠️ **GAB SENSIBLE — REVUE BOSS REQUISE** (orientation / career / child-safety).
> Extraction ULTRA-prudente, **aucune invention**. Avant prod : valider le contenu pédagogique avec Boss, en particulier le `career_label` (voir _TODO).

## Pack (structure officielle par-GAB)
```
GAB-375/
  renderer.html            ← moteur scénario journée (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` · `scenario_id` · `title` · `moments[]{time,label,message}`
Optionnels : `career_label`, `intro`, `prompt`, `completion_message`, `progress_template`, `slots[]`, `use_when[]`, `do_not_use_when[]`, `child_safety{}`.

## Ce qui vient du JSON vs HTML
- **JSON** : titre, intro, prompt, chaque moment (heure/label/message), message de complétion, slots, use_when/do_not_use_when.
- **HTML** : timeline cliquable, barre de progression, panel feedback, layout, fallback.

## Garde-fous (child_safety)
- **Anti-storytelling trompeur** : `child_safety.anti_misleading_storytelling = true` — journée réaliste, jamais enjolivée.
- **Tâches moins visibles** : `show_less_visible_tasks = true` — préparation, administratif, comptes-rendus inclus (les parties « invisibles »).
- **Anti-invention métier** : aucun métier n'est imposé. La source est générique (« le métier »), donc `career_label` reste un `_TODO`.
- **BLOCKED** si `moments` vide / `title` absent / moment sans `message`.

## _TODO / contenus manquants (source absente — non hallucinés)
- **`career_label`** : la source HTML n'identifie **aucun métier précis** (texte générique « le cœur du métier », « l'image du métier »). Le champ porte un marqueur `_TODO` au lieu d'une valeur inventée. À renseigner par Boss / éditeur pédagogique lors de l'instanciation réelle.

## external_refs / dependencies
- `do_not_use_when` référence **GAB-372** (« réalité statique → GAB-372 »). Référence hors-lot conservée verbatim depuis la source ; aucune dépendance technique, simple renvoi pédagogique.

## QA à vérifier
1. Modifier un `message`/`label` → rendu change sans toucher au HTML (critère d'or). 2. `moments:[]` → BLOCKED propre. 3. Cliquer tous les moments → `completion_message` affiché. 4. Slots affichés depuis `slots[]`. 5. Responsive 375/768/1024.

## Source
`INDEX-300-careerlearning-GAB-371-375-PLAYABLE.html` (stage `data-tpl="375"`, handler `d375Step`).
