# RAPPORT VAGUE-01 — DocumentLearning (groupe source GAB-301→305)

**Date :** 01/06/2026 · **Format cible :** GAB-VALIDE (moule GAM, 4 fichiers/pack) · **Validateur :** `check.py`

## Périmètre
Source : `GAB-001-390-DATA-SOURCES/INDEX-300-documentlearning-GAB-301-305-PLAYABLE.html`.
- GAB-301 = déjà couvert (réf kit EXEMPLES-VALIDES, non reconverti).
- GAB-302 = converti à la main (exemplaire d'or producteur).
- GAB-303 / 304 / 305 = convertis par 3 agents //, puis re-validés par le lead.

## Statut (check.py relancé par le lead, pas le rapport agent)
| GAB | canonical_name | renderer_key | check.py |
|---|---|---|---|
| GAB-302 | DocumentLearningSourceCard | `source_card` | ✅ VALIDÉ 12/12 |
| GAB-303 | DocumentLearningObserveDescribe | `observe_zones` | ✅ VALIDÉ 12/12 |
| GAB-304 | DocumentLearningExtractInformation | `extract_select` | ✅ VALIDÉ 12/12 |
| GAB-305 | DocumentLearningInterpretEvidence | `interpret_steps` | ✅ VALIDÉ 12/12 |

**BILAN : 4/4 VALIDÉ.** family_code commun = `document_analysis`.

## Format livré (par pack)
`renderer.html` (1 `<script>` nu, DS V2, 0 ombre noire, `init(ext)` priorité inline/externe, `validate()` BLOCKED) + `instance-*.json` (top-level gab_id/renderer_key/family_code/site + `instance{}` + accessibility/child_safety) + `schema.json` (required_fields À PLAT, sous-exigences en blocked_conditions) + `README-contract.md`. Inline == jumeau JSON.

## Anti-invention
Aucun contenu halluciné. Tout extrait des écrans source. 0 `_TODO`. Seul `document_ref.src` réutilise l'asset caricature-1789 partagé du parcours 301-305 (cohérent).

## Reste à faire (gate qualité)
- ⏳ **Playwright** : preuve visuelle "changer le JSON change le rendu" + screenshots desktop/mobile (DONE = +Playwright selon décisions figées). check.py = structurel uniquement.
- Handoff des instance.json au dev Play (Mr Nyms) quand Boss valide.

## Prochaine vague proposée
VAGUE-02 = fichier source DocumentLearning 306-310 (306 CompareDocuments, 307 MapAnalysis, 308 ChartAnalysis, 309 ImageAnalysis, 310 DocumentSynthesis) — ⚠️ 307/309 = annotation (média), 308 = chart. Ou enchaîner une famille text simple. À trancher avec Boss.
