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

# GAB-367 · OrientationLearningDecisionMatrix — « Matrice de décision »

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

> 🚨 **FLAG REVUE BOSS — GAB SENSIBLE (orientation / career / child-safety / RGPD).**
> Ce GAB touche à l'orientation scolaire d'un mineur. Toute mise en prod, tout enrichissement
> de critères ou de feedbacks, et toute exposition utilisateur doivent être **validés par Boss**
> avant déploiement. Aucun critère, conseil, formation ou résultat ne doit être ajouté sans GO.

## Pack (structure officielle par-GAB)
```
GAB-367/
  renderer.html            ← moteur matrice de décision (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` · `decision_matrix_id` · `personal_criteria[]{label}` · `primary_cta{label,action}`
Optionnels : `title`, `intro_note`, `prompt`, `min_weighted_to_build`, `matrix_built_feedback`, `anti_auto_decision_notice`, `child_safety{reversibility,adult_discussion,anti_auto_decision}`.

## Ce qui vient du JSON vs HTML
- **JSON** : la note d'intro, le prompt, chaque critère pondérable, le seuil d'activation, le **libellé** du bouton, le feedback de construction, le rappel anti-décision-automatique.
- **HTML** : la liste de critères cochables, la barre de progression, le bouton structurel, le layout.

## Garde-fous (child_safety) — GAB SENSIBLE
- **Anti-décision-automatique** : l'outil organise les critères, il ne décide **jamais** à la place de l'élève (verbatim source : « Tu pondères TES critères. L'outil organise — il ne décide pas à ta place. »).
- **Réversibilité** : toute décision reste réversible (verbatim : « réversible, et à discuter avec un adulte »).
- **Discussion avec un adulte** : le résultat invite à en parler à un adulte.
- **Anti-invention** : aucun critère, conseil, formation ou résultat n'est inventé hors instance.
- **BLOCKED** si `personal_criteria` vide / `primary_cta` absent.

## QA à vérifier
1. Modifier un `label`/`matrix_built_feedback` → rendu change sans toucher au HTML (critère d'or). 2. `personal_criteria:[]` → BLOCKED propre. 3. < `min_weighted_to_build` critères → bouton désactivé. 4. Construire → feedback + rappel réversibilité/adulte affichés. 5. Responsive 375/768/1024.

## external_refs / dependencies
- Aucune dépendance hors-lot. Le GAB renvoie textuellement vers d'autres GAB du même lot
  côté slots/usage source (GAB-366 comparaison de formations) — purement informatif, pas de
  dépendance technique. Aucun identifiant d'autre GAB n'est présent dans le pack.

## Source
`INDEX-300-orientationlearning-GAB-366-370-PLAYABLE.html` (stage `data-tpl="367"`, handlers `d367Tick` / `d367Build`).
Slots source : req `personal_criteria`, `weighting` ; opt `uncertainty`, `adult_discussion`, `reversibility`, `anti_auto_decision`.
