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

# GAB-377 · CareerLearningCareerEvolutionMap — « Évolution professionnelle »

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

## 🚩 FLAG REVUE BOSS — GAB SENSIBLE (orientation / career / child-safety)
Ce gabarit touche à l'**orientation professionnelle** de mineurs. Avant tout usage prod :
- Faire **valider par Boss** les libellés d'étapes, le message de reconversion et le texte de sources.
- Vérifier qu'aucune **promesse de progression garantie** ne soit jamais introduite côté instance.
- L'extraction est **100 % issue du HTML source** (zéro invention). Tout ajout futur de contenu = revue Boss obligatoire.

## Pack (structure officielle par-GAB)
```
GAB-377/
  renderer.html            ← moteur carte d'évolution (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` · `evolution_map_id` · `title` · `intro_note` · `non_linear_steps[]{label,badge,message}`
Optionnels : `pick_prompt`, `sources_cta{label,action}`, `sources_text`, `no_progression_promise`, `uncertainty`, `child_safety{orientation_safe,notes}`.

## Ce qui vient du JSON vs HTML
- **JSON** : le titre, la note d'intro, chaque étape (label + badge + message au clic), le **libellé** du bouton Sources, le texte de sources, les garde-fous.
- **HTML** : la liste cliquable d'étapes, le bouton Sources structurel, le panneau de message, le layout, l'accessibilité.

## Garde-fous (child_safety / orientation)
- **Non-linéarité** : plusieurs voies présentées (spécialisation OU management OU reconversion), jamais une trajectoire unique.
- **Pas de promesse** : `no_progression_promise:true` — aucune progression garantie.
- **Reconversion normalisée** : « changer de voie est normal et fréquent ».
- **Incertitude visible** : « Les évolutions varient selon les secteurs — rien de garanti ».
- **BLOCKED** si `title` absent / `non_linear_steps` vide / `intro_note` absent.

## QA à vérifier
1. Modifier un `message`/`label` → rendu change sans toucher au HTML (critère d'or). 2. `non_linear_steps:[]` → BLOCKED propre. 3. Clic étape → message exact de l'instance, jamais inventé. 4. Bouton Sources → `sources_text` + avertissement d'incertitude. 5. Responsive 375/768/1024.

## external_refs / dependencies
- GAB-378 (`CareerLearningMythRealityCheck`) référencé dans le source comme suite logique (mythes/réalités). Hors lot ici, **aucune dépendance technique** : GAB-377 est autonome.

## Source
`INDEX-300-careerlearning-GAB-376-380-PLAYABLE.html` (stage `data-tpl="377"`, handlers `d377Pick` / `d377Source`).
