# GAB-285 · WritingLearningArgumentBuilder — « Construire un argument complet »

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

## Pack (structure officielle par-GAB)
```
GAB-285/
  renderer.html            ← moteur argument builder (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` · `argument_builder_id` · `claim{step,label,text}` · `reasoning_structure{step,label,text}` · `evidence_requirements{min_steps,required_types,optional_types}` · `validation_policy{primary_cta_label,primary_cta_reveal,secondary_cta_label,secondary_cta_reveal}`

Optionnels : `title`, `subtitle`, `evidence{step,label,text}`, `example_slot{step,label,text}`, `counterargument_slot{step,label,text}`, `connector_bank[]`, `fallacy_warnings[]{name,example}`, `reason_block{heading,text}`.

## Ce qui vient du JSON vs HTML
- **JSON** : chaque maillon de la chaîne (texte + libellé + step), connecteurs, sophismes, reason_block, libellés des deux CTA.
- **HTML** : structure de la chaîne (classe CSS par type), sections conditionnelles, layout, fallback BLOCKED.

## Garde-fous (child_safety)
- **Anti-invention** : aucun contenu pédagogique en dur dans le renderer. Tout vient de l'instance.
- **BLOCKED** si `claim`, `reasoning_structure`, `evidence_requirements` ou `validation_policy` absents.
- Sections optionnelles (`ab-connectors`, `ab-fallacies`, `reason-block`) masquées si données absentes — jamais de crash.
- Chaîne visuelle : 5 types de maillons (`claim` violet, `evidence` sky, `example` gold, `reasoning` mint, `counter` coral dashed) ; seuls les maillons présents dans l'instance sont rendus.

## QA à vérifier
1. Modifier un `text` de maillon → rendu change sans toucher au HTML (critère d'or).
2. `claim` absent → BLOCKED propre.
3. `connector_bank: []` → section connecteurs masquée.
4. `fallacy_warnings: []` → section sophismes masquée.
5. CTA primaire → panneau `primary_cta_reveal`.
6. CTA secondaire → panneau `secondary_cta_reveal`.
7. `init(extInstance)` → rendu piloté par l'instance externe.
8. Responsive 375/768/1024.

## Source
`INDEX-300-writinglearning-GAB-281-285-PLAYABLE.html` (stage `data-tpl="285"`, section `<!-- ═══════════ GAB-285 ARGUMENTBUILDER ═══════════ -->`).

## Archétype pédagogique
**ArgumentBuilder** : structure rhétorique complète Claim → Evidence → Example → Reasoning → Counterargument. Enseignement de la construction argumentative rigoureuse avec sensibilisation aux sophismes logiques courants. Usage : essais argumentatifs, débats écrits, entraînement à la dissertation (collège/lycée).
