# GAB-274 · MethodLearningJustificationBuilder — « Justifier avec preuve + lien logique »

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

## Pack (structure officielle par-GAB)
```
GAB-274/
  renderer.html            ← moteur chaîne justification (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
```

## Archétype pédagogique
GAB-274 est le **JustificationBuilder** : il enseigne à construire une justification rigoureuse sous forme de **chaîne 4 maillons** — Claim → Evidence → Reasoning → FinalAnswer. Le piège principal à éviter est la **circularité** (affirmer ce qu'on doit prouver). Le contenu intègre un bloc anti-circulaire et des connecteurs logiques conseillés.

Position dans la chaîne : `271 Intro → 272 StepByStep → 273 AnswerStructure → **274 JustificationBuilder** → 275 ExamChecklist`.

## Champs requis (instance, à plat)
`gab_id` · `justification_id` · `claim` · `evidence_required` · `reasoning_steps` · `final_answer_format`

Optionnels : `title`, `subtitle`, `reasoning_type`, `rule_ref`, `because_connectors[]`, `common_bad_justifications`, `anti_circular_traps`, `primary_cta{label,action}`, `secondary_cta{label,action}`, `why_chain`, `accessibility`, `child_safety`.

## Ce qui vient du JSON vs HTML
- **JSON** : chaque maillon de la chaîne (claim, evidence, reasoning, final), connecteurs, piège anti-circulaire, libellés des boutons, explication why_chain.
- **HTML** : layout chaîne 4 blocs colorés, bloc anti-circulaire, why-block, boutons structurels, slots panel.

## Garde-fous (child_safety)
- **Anti-circularité** : `evidence_required` doit contenir des données INDÉPENDANTES de la `claim`. Un raisonnement circulaire (prouver en répétant l'affirmation) est explicitement nommé et illustré dans `common_bad_justifications`.
- **BLOCKED** si `claim`, `evidence_required`, `reasoning_steps` ou `final_answer_format` absents.
- Contenu pédagogique neutre (mathématiques). Aucune donnée personnelle.

## QA à vérifier
1. Modifier `claim`/`reasoning_steps` → rendu chaîne change sans toucher au HTML (critère d'or).
2. `claim` absent → BLOCKED propre.
3. `because_connectors` présent → chips connecteurs affichés sous maillon reasoning.
4. `common_bad_justifications` absent → bloc anti non affiché (hidden).
5. Responsive 375/768/1024 : aucun débordement horizontal.

## Source
`INDEX-300-methodlearning-GAB-271-275-PLAYABLE.html` (stage `data-tpl="274"`, bloc `<!-- GAB-274 -->`).
