# GAB-272 · MethodLearningStepByStepMethod — « Méthode étape par étape validée »

**Archétype / renderer_key :** `text_cta` (cartographie) · **module :** EdTechMethodLearning
**Critère validé :** changer le JSON change l'affichage des étapes, erreurs et hints sans modifier le HTML.

## Pack (structure officielle par-GAB)
```
GAB-272/
  renderer.html            ← moteur méthode séquentielle (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
Méthode séquentielle (3-7 étapes) avec validation obligatoire par étape avant passage à la suivante. Affiche : barre de progression, étape courante (titre + corps), erreurs fréquentes pour l'étape, hints progressifs niveau 1 (visibles) et niveau 2 (CTA), bloc de raison pédagogique, CTA Valider + CTA Aide.

## Champs requis (instance, à plat)
`gab_id` · `method_id` · `steps[]{index, title, body}` · `step_order` · `completion_rules` · `current_step_index`

## Champs optionnels
`title` · `subtitle` · `common_errors[]{step_index, error}` · `progressive_hints[]{step_index, level, hint}` · `reason_block{title, text}` · `primary_cta{label, action}` · `secondary_cta{label, action}` · `skip_policy` · `remediation_refs` · `source_metadata`

## Ce qui vient du JSON vs HTML
- **JSON** : titres/corps de chaque étape, erreurs par étape, hints progressifs (niveau 1 inline, niveau 2 au clic), règle de complétion, bloc de raison, libellés des CTAs.
- **HTML** : barre de progression, step-card layout, zones erreur/hint, boutons structurels, fallback BLOCKED.

## Garde-fous (child_safety)
- **Anti-invention** : les étapes non fournies dans la source portent `_TODO` explicite — jamais inventées.
- **Validation séquentielle** : `step_order='sequential'` = l'étape suivante est bloquée tant que la courante n'est pas validée (comportement HTML).
- **BLOCKED** si `steps` vide/absent, `step_order` absent, `completion_rules` absent.
- Les hints niveau 2 sont cachés jusqu'au clic CTA — pas de sur-aide automatique.

## _TODO à compléter (contenus manquants dans la source)
1. Titre et corps des étapes 1, 2, 4, 5 (source ne fournissait que l'étape 3 en démo).
2. Errors/hints éventuels pour les étapes 1, 2, 4, 5 (non fournis dans la source).

## QA à vérifier
1. Modifier `title`/`body` d'une étape → rendu change sans toucher au HTML (critère d'or).
2. `steps:[]` → BLOCKED propre.
3. `current_step_index` hors borne → comportement gracieux (step undefined affiche _TODO).
4. CTA Valider → panel vert, bouton désactivé.
5. CTA Aide niveau 2 → panel doré avec hint.
6. Responsive 375/768/1024.

## Source
`INDEX-300-methodlearning-GAB-271-275-PLAYABLE.html` (stage `data-tpl="272"`, handlers `gabConfirm`/`gabReveal`).
