# Lot 4.6 — cadrage & chiffrage (avant L5)

> Demande d'Enguerran du 11/08 : un lot intermédiaire entre la clôture L4/L4.5
> (contre-recette globale en cours) et L5 (finition & mise en prod), embarquant
> le pilotage formateur, la refonte admin, le pont studio↔LMS, et le fil
> d'Ariane pédagogique de l'écran cours.
>
> Unité de chiffrage : **jours de développement effectifs** dans le mode de
> travail actuel (sessions outillées : PR + tests + recette UI locale par
> profil). Référence de vélocité constatée : le lot L4.5 complet — 10 issues,
> dette de tests éteinte, 2 déploiements staging — a tenu en ~1,5 j effectif.
> Les points de validation d'Enguerran sont comptés à part : ce sont eux qui
> pilotent le calendrier réel.

## Bloc A — Pilotage formateur (EA-054 remontée de V2)

**Contenu** (CA de BACK#64, décision F7) : liste apprenant × formation du
formateur (statut, inscription, dernière connexion, certificat téléchargeable),
ligne cliquable → **le cockpit EA-051 existant**, restreint aux apprenants de
SES formations ; entrée « Suivi » dans la latérale formateur (livrée en
phase 3).

| Volet | Travail | Chiffrage |
|---|---|---|
| Back | Liste apprenant×formation périmétrée (ListSchema EA-020), périmétrage du cockpit aux cours du formateur (guard + scope, jamais d'énumération de rôles en dur) | 0,5–1 j |
| Front | Écran DataTable (maquette « liste de gestion » déjà validée), lien cockpit, entrée latérale | 0,5–1 j |
| **Total** | | **1,5–2 j** |

Validation : 1 (mini-maquette de l'écran Suivi — dérivée de la maquette
validée, décision rapide).

## Bloc B — Refonte admin (EA-057 → EA-060 + EA-063, remontées de V2)

**Contenu** : la coquille de navigation admin (3 menus, découpage du monolithe
`AdminUsers.jsx`, 3 358 lignes), l'écran Cours par type, le statut
brouillon/publié RÉEL, et le studio de création refondu.

| Issue | Travail | Chiffrage |
|---|---|---|
| EA-057 coquille 3 menus | Sidebar admin Utilisateurs/Cours/Paramètres, routes dédiées, découpage en pages < 800 l. | 1–1,5 j |
| EA-059 brouillon/publié réel | Migration `status` → draft/published, invisibilité apprenant, publication explicite, API alignée | 0,5–1 j |
| EA-058 v2 + EA-060 écran Cours unifié | Cours/Tutos/Parcours dans UNE liste, colonne + filtre Type, switch publier avec confirmation, filtres, vignettes cliquables | 1–1,5 j |
| EA-063 studio de création | Accordéons sections/leçons, DnD direct, libellés éditables au clic, ajout de support par type — **le morceau le plus lourd en recette** | 2–3 j |
| EA-062 « + Créer » avec choix | Le bouton unique ouvre Un cours / Un tuto / Un parcours, chaque choix ouvre l'écran adapté ; suppression de la chaîne legacy `AdminCreateCourse`/`AddSection` (remontée de V2, retour 11/08) | 0,5 j |
| EA-084a studio tuto (#317) | Écran de création allégé : une vidéo courte, métadonnées, rattachement processus via `learning_path_courses` — le catalogue YouTube et la migration restent en V2 | 1 j |
| Éditeur de parcours (#318) | Composition cours+tutos DnD + **timeline de déclenchement** (inscription / J+X / date fixe / après complétion) : colonnes à ajouter sur `learning_path_courses`, calcul des accès côté back testé | 1,5–2 j |
| Taxonomie (#320) | Catégories = thématiques, le type appartient au contenu : migration de re-catégorisation des données client (mapping nominatif à valider), purge des données de test, invariant testé « aucun écran ne lit le type depuis une catégorie » | 0,5–1 j |
| **Total** | | **7–10 j** *(v2 du 11/08 — était 5–7 j avant l'entrée des tutos, parcours et taxonomie)* |

Validations : 3 points (maquette coquille + écran Cours unifié v2 ; maquette
studio ; maquettes studio tuto + éditeur de parcours — décisions T-1/T-2 et
P-1/P-2/P-3).

## Bloc C — Pont studio microlearning ↔ LMS

**État réel** : le contrat d'interface **existe déjà côté studio** —
`lms_manifest.json` **v1** (13/07), versionné (`contract_version`, refus des
versions inconnues), testé (`test_lms_packager.py`), avec `notion_id` stables
à vie, quiz tagués par notion, kits de remédiation validés par jury, et le
verrou « QUOI rappeler, JAMAIS QUAND » (le calendrier appartient au LMS).
Le travail est donc côté LMS, plus une passe d'alignement à deux.

| Sous-bloc | Travail | Chiffrage |
|---|---|---|
| C1 — Alignement du modèle de données | Spec commune : notions (nouvelle table LMS + liaison questions de quiz), modules → cours/sections, assets → leçons via `support_types` (déjà alignés par #164), stockage du `reminder_plan` pour le futur moteur de rappel | 0,5–1 j (dont validation des mappings par Enguerran) |
| C2 — Importeur LMS | Upload/lecture du package, refus `contract_version` inconnu, **idempotence par `notion_id`** (ré-import après régénération sans casser les stats), rapport d'import exposant `coverage`/`gaps`, tests e2e avec un VRAI export du studio | 1,5–2 j |
| **Total** | | **2–3 j** |

Validation : 1 (les choix de mapping C1 — structurants pour les stats à vie).

## Fil d'Ariane pédagogique (FRONT#26)

Rebrancher l'étiquetage `Exposition → Récupération active → Consolidation →
Synthèse → Évaluation` du sommaire cours sur la **donnée serveur** (champ à
servir côté back — dérivable en première approche du `support_type`, donc
synergie directe avec C1). **0,5–1 j.**

## Synthèse

| Bloc | Chiffrage | Validations Enguerran |
|---|---|---|
| A — Pilotage formateur | 1,5–2 j | 1 |
| B — Refonte admin | 5–7 j | 2 |
| C — Pont studio↔LMS | 2–3 j | 1 |
| Fil d'Ariane | 0,5–1 j | — |
| **Lot 4.6** | **11–16 j effectifs** *(v2 du 11/08 : studio tuto, éditeur de parcours et taxonomie #320 entrent au bloc B)* | **6 points** |

## Séquencement proposé

1. **Dès maintenant, en parallèle de la contre-recette** : maquettes bloc B +
   spec C1 (aucun code chaud touché) → validations pendant que la
   contre-recette tourne.
2. **Vague 1 du lot** : bloc C (C1 puis C2) + fil d'Ariane — indépendants des
   écrans en contre-recette, valeur immédiate (le studio peut livrer de vraies
   formations dans le LMS).
3. **Vague 2** : bloc A (s'appuie sur la latérale formateur de la phase 3).
4. **Vague 3** : bloc B (le plus gros, après correctifs de contre-recette pour
   ne pas recetter une cible mouvante).

**Calendrier réaliste** : au rythme constaté, ~2 semaines calendaires en
comptant les allers-retours de validation et les correctifs de contre-recette
intercalés — compatible avec un démarrage L5 dans la foulée. Le chemin
critique n'est pas le développement : ce sont les 4 points de validation et la
recette du studio EA-063.

## Hors périmètre 4.6 (explicitement)

- EA-070 (analyse items/temps par support) et EA-071 (chat refondu) : restent V2.
- La généralisation DataTable au-delà des listes déjà migrées (#180 vague 2) : octobre, comme acté.
- Le moteur de rappel (courbe de désapprentissage) : le lot 4.6 STOCKE le
  `reminder_plan`, il ne l'exécute pas.
