← Retour au suivi de recette

📱 24/08 — les correctifs sont dĂ©ployĂ©s : les Ă©tapes marquĂ©es « À REJOUER » se rejouent maintenant. RafraĂźchis ton navigateur (Ctrl+Maj+R) avant de commencer. La liste Ă  jour des 23 rejeux est sur la page de suivi.

Cahier de recette par parcours

Version 1.4 — 19/08/2026 au soir. Dix parcours, 140 Ă©tapes (134 en v1.3). Reste Ă  Ă©tablir la matrice de couverture, une fois qu'ils auront Ă©tĂ© jouĂ©s.

Ce qui change en v1.5 (21/08) — TROIS ÉTAPES DÉCRIVAIENT UN ATTENDU FAUX. Elles ressortaient KO Ă  chaque passage sans qu'aucun dĂ©faut n'existe, et faisaient perdre du temps au testeur : 5.2 (« Mes Ă©quipes » n'est attendue que pour un encadrant de plusieurs niveaux), 6.17 (cinq panneaux mais quatre onglets), 7.10 (le formateur ne crĂ©e pas de cours — arbitrĂ© le 20/08). RĂšgle qui s'applique ici : un attendu invalidĂ© par une dĂ©cision ou par la mesure se corrige DANS LE CAHIER, jamais par une note en marge — on ne demande pas au testeur de rectifier lui-mĂȘme son rĂ©fĂ©rentiel.

Ce qui change en v1.4 — les ÉTAPES rattrapent les livraisons du 19/08. Le registre Ă©tait Ă  jour, les parcours dĂ©crivaient encore l'interface d'avant. La recette ayant repris, chaque Ă©cart a Ă©tĂ© rejouĂ© contre la PR qui l'a corrigĂ© :

Volet Ce qui bouge
Bascule d'univers l'admin en a trois — Administration · Pilotage · Apprentissage (P0.3, P0.5, P0.10 neuve)
Barre du haut le bouton « Tableau de bord » de l'admin a disparu (P0.4)
Comptes la modale de modification n'existe plus : tout se fait sur la fiche /admin/utilisateurs/:id (P8.1, P8.4, P8.5, P8.14 Ă  P8.17 neuves)
Invitations / Inscriptions le pied d'actions est dans le flux, le libellé est « Envoyer l'invitation » (P1.1, P3.1 à P3.4, P4.1)
Listes « Par page » au gabarit, décompte « Affichage 1 à 20 de N » (P3.5, P8.17)
Sélecteurs de rattachement le serveur sert enfin de quoi départager deux homonymes ; l'écran ne l'affiche pas encore (P3.2, P4.2)
Demandes d'inscription 500 levé, filtre réel, trace de la décision (P4.6, P4.7, P4.9, P4.11 neuve)

Deux ajouts de méthode :

  1. Statut correctif par Ă©tape. Une Ă©tape dont le comportement a changĂ© pendant la recette porte, dans sa colonne Issue, la mention « corrigĂ© le JJ/MM — #xxx — À REJOUER** ». Un testeur qui reprend le cahier voit d'un coup d'Ɠil ce qui a bougĂ© depuis son dernier passage. Les KO encore ouverts gardent, eux, leur simple numĂ©ro d'issue.
  2. Maquettes de référence par parcours. Chaque parcours ouvre sur les liens vers les maquettes de ses écrans. En cas de doute, on ouvre la maquette plutÎt que d'arbitrer de mémoire.

⚠ La rĂšgle que la v1.4 institue

Une livraison qui change un parcours met le cahier Ă  jour DANS le train. Le cahier est un livrable du correctif, pas un rattrapage Ă  faire plus tard. C'est ce retard-lĂ  — registre Ă  jour, Ă©tapes pĂ©rimĂ©es — qui a rendu cette version nĂ©cessaire : un testeur qui rejoue une Ă©tape contre une description obsolĂšte signale un dĂ©faut qui n'existe plus, et le tri de ce faux positif coĂ»te plus cher que la ligne qu'on n'a pas Ă©crite.

Rappel v1.3 (toujours vrai) : le prĂ©requis d'inscription est levĂ© — les quatre jeux sont jouables — et le registre des Ă©carts dĂ©jĂ  connus (en fin de cahier) liste les KO attendus Ă©tape par Ă©tape. Lisez-le avant de signaler quoi que ce soit.

À quoi sert ce document

Il décrit ce qu'un utilisateur fait, pas ce que le code contient. C'est la différence qui compte : les 1 361 tests automatiques garantissent que prochainCertificat départage trois formations correctement. Aucun ne dit qu'un apprenant arrive à obtenir un certificat.

Les trois étapes, et qui fait quoi

Étape Qui Ce qu'elle attrape
Recette unitaire Claude l'Ă©cran est-il conforme Ă  sa maquette — gabarits, tailles, couleurs, mesurĂ©s sur le rendu
Contre-recette Claude le parcours s'enchaĂźne-t-il — sur les Ă©crans rĂ©els, avec un vrai compte
Recette utilisateur un humain est-ce utilisable — ce qu'aucune mesure ne dit

Les Ă©tapes 2 et 3 suivent le mĂȘme cahier. C'est dĂ©libĂ©rĂ© : sans cela, vos retours et les miens ne porteraient pas sur les mĂȘmes gestes et ne pourraient pas se comparer.

Comment signaler — la convention

Une ligne par retour, dans le champ de signalement Sentry. Jamais deux Ă©tapes dans un mĂȘme message.

Marqueur Sens Exemple
OK l'étape se comporte comme attendu OK #172 P3.4
KO l'Ă©tape Ă©choue, sur une issue connue KO #172 P3.4 — le filtre ne renvoie rien
BUG dĂ©faut rĂ©el, rattachĂ© Ă  aucune issue BUG P3.4 — la page blanchit au second clic
EVO ça marche, mais ça devrait ĂȘtre autrement EVO P3.4 — pouvoir trier par date

OK est obligatoire. Un silence est ambigu : on ne sait pas si l'étape a réussi ou n'a pas été jouée.

La distinction KO / BUG est celle qui compte : un KO alimente une issue existante, un BUG en crée une. Sans elle, les vrais défauts se noient dans les écarts déjà connus.

⚠ Avant de signaler un BUG, lisez le registre

Le registre des Ă©carts dĂ©jĂ  connus (en fin de cahier) liste, Ă©tape par Ă©tape, ce qui est dĂ©jĂ  suivi par une issue. Si votre constat y figure, c'est un KO avec le numĂ©ro d'issue — pas un BUG.

Ce n'est pas une formalitĂ© : deux personnes qui rĂ©digent la mĂȘme issue Ă  deux heures d'Ă©cart coĂ»tent une heure de tri Ă  quelqu'un, et le doublon survit souvent au tri. Cherchez sur le CONTENU du constat, pas sur son titre — une mĂȘme anomalie se dĂ©crit rarement deux fois avec les mĂȘmes mots.

Si vous hésitez, signalez KO avec votre description : rattacher un constat à la mauvaise issue se corrige en dix secondes, un doublon coûte bien plus.

Les huit fonctions vitales

Ce sans quoi le produit n'a pas d'objet. Une Ă©tape qui les met en jeu est marquĂ©e vital ; son Ă©chec arrĂȘte la recette.

⚠ Elles parlent de toute personne qui se forme, jamais du « rĂŽle apprenant ». La distinction n'est pas de style : sur staging, 38 personnes sont inscrites Ă  une formation, dont 16 ne portent pas le rĂŽle learner — managers, directeurs, formateurs. Dans ce produit, les encadrants se forment aussi, souvent Ă  des formations obligatoires. Un critĂšre Ă©crit « un apprenant
 » les aurait exclus, et aurait fait passer BACK#447 pour un dĂ©faut secondaire.

  1. Une personne entre — invitation, mot de passe, connexion
  2. Elle atteint ses formations, quel que soit son rĂŽle
  3. Elle consomme un support — vidĂ©o, PDF, page
  4. Sa progression est enregistrĂ©e ET visible par elle ← c'est la preuve, pas un confort
  5. Elle passe un quiz, et son score est conservé
  6. Un certificat est délivré
  7. Un encadrant voit qui a fait quoi ← la preuve QUALIOPI
  8. Rien ne se perd — l'historique survit aux suppressions

Le point 8 n'est pas théorique : la suppression d'un cours effaçait l'historique de tous ses apprenants en cascade. L'entrée a été retirée de l'interface le 16/08, la route reste ouverte (BACK#445).

Quatre niveaux de criticité

Ils se définissent par ce que l'utilisateur ne peut plus faire, jamais par l'ampleur du correctif.

Niveau DĂ©finition Exemple OĂč va le correctif
Vital le produit ne remplit plus sa fonction pour quelqu'un une personne ne peut pas suivre son cours, ou ne voit pas oĂč elle en est — que ce soit un apprenant ou un manager en formation arrĂȘte la recette, correction immĂ©diate
Majeur le produit fonctionne, mais une décision se prend sur du faux un reporting collaborateurs erroné ; un écran qui ne s'affiche pas L4.8, avant la mise en prod
Mineur gĂȘne rĂ©elle, sans empĂȘchement ni erreur un composant pas Ă  jour, un libellĂ© anglais L5
Cosmétique écart au dessin, invisible à l'usage un espacement, une nuance plus tard

⚠ Le critĂšre d'entrĂ©e en L4.8 est la criticitĂ©, pas la date de dĂ©couverte. Sans cette rĂšgle, le lot devient la liste de tout ce que la recette a vu, et il ne se ferme jamais.

Les comptes

52 comptes sur staging, mot de passe commun. ⚠ Les suffixes sont croisĂ©s avec les clĂ©s techniques, Ă  dessein : le testeur voit le mot qu'il verra Ă  l'Ă©cran.

recette-<qui>-admin@yopmail.com           Administrateur
recette-<qui>-managerrh@yopmail.com       Manager RH          (clé `manager`)
recette-<qui>-managergeneral@yopmail.com  Manager Général
recette-<qui>-directeur@yopmail.com       Directeur
recette-<qui>-manager@yopmail.com         Manager d'équipe    (clé `sub_manager`)
recette-<qui>-formateur@yopmail.com       Formateur
recette-<qui>-apprenant@yopmail.com       Apprenant

⚠ Toute adresse SANS segment de jeu (recette-apprenant@
, recette-manager@
) est une ancienne gĂ©nĂ©ration de comptes : elle se connecte avec le mĂȘme mot de passe mais son jeu de donnĂ©es ne correspond PAS au cahier. VĂ©cu en contre-recette : un fil a perdu une heure sur recette-apprenant@ au lieu de recette-claude-apprenant@. Le segment de jeu est OBLIGATOIRE.

<qui> vaut david, eng, lilian ou claude. Chacun dispose en plus de 3 apprenants et 3 managers d'équipe supplémentaires, pour éprouver les rattachements et les équipes à plusieurs niveaux.

Trois sociĂ©tĂ©s : RecetteAikan, RecetteACS, RecetteEfektiv. Certaines Ă©quipes traversent deux sociĂ©tĂ©s — c'est le comportement normal du modĂšle, la sociĂ©tĂ© dĂ©crit, elle ne cloisonne pas.

État des donnĂ©es au 18/08 au soir — aprĂšs le lot back #479

Formations ouvrables par apprenant et par manager d'Ă©quipe 4 — relation-client, traitement-des-reclamations-rcl, et les 2 non publiĂ©es (gsicass-ouverture-do, test-course) qui s'ouvrent DÉSORMAIS pour les inscrits (#453 corrigĂ©e : l'inscription dĂ©cide)
Demande d'inscription en attente apprenant2 → relation-client (jeu claude) — ne pas l'accepter, elle sert d'Ă©tat d'Ă©preuve
Utilisateurs statistiquement visibles 3 par sociĂ©tĂ© (recette-stats-*) — le filtre SociĂ©tĂ© du tableau de bord doit rendre du non-vide
Parcours brouillon d'Ă©preuve recette-brouillon-249 — visible du studio avec badge, fermĂ© aux apprenants

Un 404 sur une formation listĂ©e dans « Mes formations » est dĂ©sormais une RÉGRESSION — l'inverse d'avant le 18/08 au soir.

⚠ Espacez vos connexions

Le serveur limite les tentatives de connexion. En enchaĂźnant plusieurs authentifications coup sur coup — plusieurs rĂŽles, ou plusieurs passes API — les suivantes sont refusĂ©es, et le symptĂŽme ressemble Ă  « ce compte ne fonctionne pas ». Ce n'en est pas un.

Comptez ~20 secondes entre deux connexions. Si un compte semble mort, attendez une minute et recommencez avant de signaler quoi que ce soit.


Ce que chaque parcours sert Ă  obtenir

Une story par parcours. Le « afin de » n'est pas de la forme : c'est lui qui permet de juger un cas que le cahier n'a pas prévu. Sans lui, un testeur constate un écart au script ; avec lui, il sait si l'écart a de l'importance.

En tant que
 je veux
 afin de

P0 n'importe quel utilisateur entrer et sortir de la plateforme accéder à mon espace sans que quelqu'un d'autre puisse y entrer à ma place
P1 apprenant invité recevoir mon accÚs et trouver ma premiÚre formation commencer sans qu'on ait à m'expliquer comment faire
P2 personne en formation suivre mes supports jusqu'au certificat prouver que j'ai suivi la formation, Ă  moi et Ă  mon employeur
P3 Manager RH faire entrer une équipe que mes collaborateurs accÚdent à leurs formations obligatoires sans créer chaque compte
P4 Manager RH inscrire et arbitrer les demandes que chacun suive ce qu'il doit suivre, et pas autre chose
P5 Manager d'Ă©quipe voir oĂč en sont mes collaborateurs intervenir avant qu'un retard devienne un abandon
P6 administrateur composer et publier le catalogue que l'offre corresponde à ce que l'organisme s'est engagé à délivrer
P7 formateur suivre mes cours et mes apprenants accompagner ceux qui décrochent, sans attendre le bilan
P8 administrateur gérer les comptes et les rattachements que chacun voie ce qui le regarde, et rien de plus
P9 responsable produit vĂ©rifier ce qui a Ă©tĂ© RETIRÉ qu'aucune fonction abandonnĂ©e ne subsiste en Ă©tat de nuire

Les dix parcours

Parcours RĂŽle principal Couvre
P0 Entrer et sortir les 7 rÎles connexion, déconnexion, mot de passe, bascule
P1 De l'invitation au premier cours Apprenant invitation plateforme, onboarding, catalogue, page cours
P2 Suivre une formation jusqu'au certificat Apprenant supports, progression, quiz, certificat
P3 Faire entrer une équipe Manager RH invitations, suivi des envois, relances
P4 Inscrire et traiter les demandes Manager RH inscriptions, demandes, notifications
P5 Piloter son équipe Manager d'équipe tableau de bord, cockpit, retard et abandon
P6 Administrer le catalogue Admin création cours/tuto/parcours, publication, référentiels
P7 Encadrer ses apprenants Formateur mes cours, mes apprenants, fiche apprenant
P8 Gérer les comptes Admin utilisateurs, rÎles, rattachements, sociétés
P9 Ce qui doit ĂȘtre ABSENT tous Ă©crans supprimĂ©s, chat masquĂ©, suppression retirĂ©e

P9 n'est pas une formalitĂ©. Le lot a beaucoup retirĂ© — six Ă©crans morts, deux vues fusionnĂ©es, la suppression de cours, le chat. Un retrait ratĂ© ne se voit pas en cherchant ce qui marche : il faut aller vĂ©rifier que ça ne marche plus.


P0 — Entrer et sortir

Le seul parcours joué par les SEPT rÎles. Court, et c'est la seule chose que tout le monde fait. Un défaut ici bloque tous les autres parcours.

Comptes : les sept de votre jeu, l'un aprÚs l'autre. Durée : 5 minutes par rÎle.

Maquettes de rĂ©fĂ©rence : connexion et mot de passe oubliĂ© · profil unique · fiche utilisateur admin — c'est elle qui porte le gabarit .segmented du sĂ©lecteur d'univers (0.5).

# Ce que vous faites Ce qui doit se produire Criticité Issue
0.1 Ouvrir l'adresse de staging L'écran de connexion s'affiche. Logo et libellés en français. vital #11
0.2 Se connecter avec un mot de passe FAUX Le refus est explicite. Il ne dit pas si l'adresse existe — sinon il rĂ©vĂšle qui a un compte. Les deux rĂ©ponses doivent ĂȘtre identiques au caractĂšre prĂšs. majeur BACK#448 — corrigĂ© le 19/08, PR BACK#495 — À REJOUER**
0.3 Se connecter avec le bon mot de passe L'espace s'ouvre sur l'univers du rĂŽle : Administration pour l'admin (/admin/dashboard ne fait plus que rediriger vers /admin/utilisateurs), Pilotage pour les autres encadrants, Apprentissage pour l'apprenant, son espace propre pour le formateur. vital #75 — admin corrigĂ© le 19/08, #269 / PR FRONT#272 — À REJOUER**
0.4 Regarder la barre du haut Le nom et le rĂŽle affichĂ©s sont les libellĂ©s — « Manager RH », jamais manager. ⚠ Plus de bouton « Tableau de bord » pour l'admin : il faisait doublon avec « Administration » du sĂ©lecteur, il a Ă©tĂ© retirĂ©. Le formateur garde le sien — c'est son unique chemin vers /teacher/dashboard, il n'a pas de sĂ©lecteur. majeur #154 · #273 — corrigĂ© le 19/08, PR FRONT#276 — À REJOUER**
0.5 Regarder le sĂ©lecteur d'univers de la barre du haut Trois boutons pour l'administrateur — Administration · Pilotage · Apprentissage, dans cet ordre. Deux pour les autres encadrants (Manager RH, Manager d'Ă©quipe, Directeur, Manager gĂ©nĂ©ral) : Pilotage · Apprentissage. Aucun sĂ©lecteur pour l'apprenant ni pour le formateur. Les libellĂ©s annoncent oĂč l'on va, pas oĂč l'on est ; l'univers courant est la pilule sombre. Le groupe est au gabarit de la maquette (hauteur 42 px, fond --surface-2, survol et focus visibles). majeur #336 · #269 · #274 — corrigĂ© le 19/08, PR FRONT#272 + #278 — À REJOUER**
0.6 Ouvrir Mon profil Un seul écran, quel que soit le rÎle. Le rÎle y est affiché, non modifiable. majeur #154
0.7 Se dĂ©connecter Retour Ă  l'Ă©cran de connexion. Aucun Ă©cran de l'application n'est plus atteignable en revenant en arriĂšre. vital —
0.8 Coller une URL interne aprÚs déconnexion Redirection vers la connexion. Pas de page blanche, pas de contenu. vital #18
0.9 Demander un mot de passe oublié Le message part, le lien reçu porte un domaine complet. majeur #100
0.10 Faire le tour de ses univers, et REVENIR — cliquer chaque bouton du sĂ©lecteur, puis retourner Ă  celui du dĂ©part Chaque bouton mĂšne Ă  l'accueil de son univers : Administration → Utilisateurs, Pilotage → Tableau de bord, Apprentissage → Mes formations. La pilule sombre suit la route Ă  chaque Ă©tape, et le retour ramĂšne bien au point de dĂ©part. ⚠ Pour un apprenant ou un formateur, l'Ă©tape se lit en une seconde : il n'y a pas de sĂ©lecteur, et c'est le comportement attendu. majeur #269 · #92 — neuve en v1.4, PR FRONT#272 + #278

Variantes de rîle — les seules qui comptent

Le pĂ©rimĂštre diffĂšre lĂ©gitimement selon le rĂŽle. Partout ailleurs, un mĂȘme Ă©cran doit se comporter de la mĂȘme façon :

RĂŽle Ce qu'il doit voir en plus Ce qu'il ne doit PAS voir
Administrateur tout —
Manager RH l'onglet Tous les collaborateurs —
Manager d'équipe ses seuls rattachés les collaborateurs des autres
Directeur · Manager général leur hiérarchie l'onglet Tous les collaborateurs
Formateur ses cours, ses apprenants le pilotage
Apprenant l'apprentissage seul le pilotage

⚠ Une diffĂ©rence de comportement qui n'est PAS dans ce tableau est un dĂ©faut, pas une rĂšgle. Exemple vĂ©cu : la progression d'une formation n'Ă©tait servie qu'au rĂŽle learner — un manager qui se forme ne voyait donc jamais oĂč il en Ă©tait (BACK#447, 16 personnes concernĂ©es sur staging). Un cahier Ă©crit depuis le code aurait figĂ© ce bug en « comportement attendu ».

Et c'est vital, pas majeur : pour ces seize personnes, le produit ne remplit pas sa fonction. Un encadrant en formation obligatoire qui ne sait pas oĂč il en est est exactement dans la situation qu'un LMS existe pour Ă©viter.


P1 — De l'invitation au premier cours

RÎle : Manager RH pour les étapes 1.1 à 1.3, puis Apprenant. Comptes : recette-<qui>-managerrh@ puis un apprenant supplémentaire non encore activé. Durée estimée : 20 minutes.

Maquettes de référence : Invitations · Invitations · Suivi · onboarding par lien · accueil apprenant · catalogue apprenant · Mes formations · page d'un cours · Favoris

# Ce que vous faites Ce qui doit se produire Criticité Issue
1.1 Pilotage â€ș Invitations â€ș Inviter, saisir une adresse yopmail inĂ©dite Le formulaire accepte l'adresse. Le compteur de destinataires s'incrĂ©mente. Le pied d'actions annonce « N destinataire(s) · N cours ouvert(s) » et le bouton principal dit « Envoyer l'invitation » — au singulier dĂ©fini, comme la maquette. vital #96 · #286 — libellĂ© corrigĂ© le 19/08, PR FRONT#288 — À REJOUER**
1.2 Ajouter 6 destinataires Le 6e est refusĂ© : la borne est de 5. Le message dit laquelle. ⚠ La borne est posĂ©e par l'Ă©cran seul : invite-mail valide emails => nullable\|array, sans max:5 ni max:400 sur le message. KO attendu, et la contourner par l'API passe. mineur BACK#403
1.3 Envoyer, puis ouvrir l'onglet Suivi L'envoi apparaßt, avec son état. Le regroupement est par personne, pas par envoi. majeur #168
1.4 Ouvrir la boĂźte yopmail du destinataire Le message est arrivĂ©. Le lien porte un domaine complet — pas /onboarding/<jeton>. vital BACK#442
1.5 Cliquer le lien L'écran d'onboarding s'ouvre. Pas de page blanche. vital #59
1.6 Définir un mot de passe trop court Le refus dit la rÚgle, il ne se contente pas de refuser. mineur #100
1.7 Définir un mot de passe valide Connexion automatique. L'espace Apprentissage s'ouvre. vital #77
1.8 Regarder la barre latérale Quatre entrées : Mes formations · Catalogue · Certificats · Favoris. Pas d'onglets horizontaux. mineur #153
1.9 Regarder l'accueil Le vide dit quoi faire, il ne dit pas « aucun enregistrement trouvé ». mineur #199
1.10 Ouvrir Catalogue Rayons par sous-catégorie. Les filtres de durée et d'avancement portent un compteur. majeur #83, #199
1.11 Filtrer sur une durée La liste se restreint. Une formation sans durée déclarée n'apparaßt pas dans un filtre de durée. mineur #139
1.12 Ouvrir une formation La page s'ouvre sur le panneau sombre, trois onglets, le sommaire Ă  droite. ⚠ Toutes les formations listĂ©es s'ouvrent, y compris les non publiĂ©es auxquelles le compte est inscrit : c'est l'inscription qui dĂ©cide. Un 404 ici est dĂ©sormais une RÉGRESSION — l'inverse de ce que disait la v1.3. vital #212 · #453 — corrigĂ© le 18/08 — À REJOUER**
1.13 Lire le bloc de progression « 0 supports terminĂ©s sur N », la barre est Ă  zĂ©ro, le temps restant est annoncĂ©. ⚠ À jouer AUSSI avec un compte manager : la progression doit s'afficher pour tout inscrit, quel que soit son rĂŽle. vital #212, BACK#447
1.14 Chercher le bouton d'action « Commencer le cours » est présent et cliquable. vital #212
1.15 Regarder les onglets du sommaire Pas d'onglet Chat : il est masqué. mineur #140, BACK#391
1.16 Coller /chat dans la barre d'adresse La route ne s'ouvre pas — la fermeture est serveur, pas seulement visuelle. majeur BACK#391

Ce que P1 ne couvre pas, et pourquoi

Points d'attention pour le testeur

1.4 est le plus fragile. Les boĂźtes yopmail sont publiques : n'importe qui connaissant l'adresse lit le message. C'est voulu sur staging, et inacceptable ailleurs.

1.13 emploie le pluriel Ă  zĂ©ro — « 0 supports terminĂ©s ». C'est une dĂ©cision tracĂ©e (#212), pas un dĂ©faut : la rĂšgle stricte du français veut le singulier, mais la convention retenue est l'accord unique, celui qui a le moins d'impact. Ne pas le signaler comme BUG.

1.16 est un test de retrait. Il Ă©choue si la page s'ouvre — c'est l'inverse de l'intuition. Le masquage doit tenir mĂȘme quand on contourne l'interface.


P2 — Suivre une formation jusqu'au certificat

RĂŽle : Apprenant, puis le mĂȘme parcours rejouĂ© par un Manager d'Ă©quipe inscrit. Comptes : recette-<qui>-apprenant@, puis recette-<qui>-manager@. DurĂ©e : 30 minutes.

Maquettes de référence : Mes formations · page d'un cours · page d'un parcours · Certificats

C'est le parcours qui met en jeu cinq des huit fonctions vitales. S'il ne passe pas, le produit ne sert Ă  rien.

# Ce que vous faites Ce qui doit se produire Criticité Issue
2.1 Ouvrir une formation inscrite Le sommaire liste les supports dans l'ordre, avec leur type et leur durée. vital #212
2.2 Ouvrir le premier support vidéo La vidéo se lit. Le lecteur ne déborde pas de son cadre. vital #212
2.3 Regarder la vidĂ©o jusqu'au bout Le support passe Ă  terminĂ©, sans qu'on ait Ă  le dĂ©clarer soi-mĂȘme. vital BACK#398
2.4 Revenir au sommaire La progression a augmenté : pourcentage, barre, « N supports terminés ». vital #212, BACK#447
2.5 Ouvrir un support PDF Le document s'affiche ou se tĂ©lĂ©charge. Pas de page blanche. vital —
2.6 Ouvrir un support de type page (HTML) Le contenu s'affiche dans l'écran, mis en forme. majeur BACK#355
2.7 Quitter la formation, revenir plus tard On retrouve oĂč on en Ă©tait. La progression n'a pas Ă©tĂ© perdue. vital BACK#398
2.8 Ouvrir le quiz de la formation L'écran de quiz s'ouvre. L'instruction dit ce qui va se passer. vital #197
2.9 Répondre à une question, vérifier La correction s'affiche question par question, pas à la fin. majeur #145, #197
2.10 Lire une option corrigĂ©e Chaque option porte son mot (« Juste », « À Ă©carter », « Attendue »), pas seulement une couleur. majeur #197
2.11 Laisser une question sans réponse et terminer Un avertissement chiffre ce qui manque et laisse revenir en arriÚre. majeur #197
2.12 Terminer le quiz Le score s'affiche, avec la cible. Il est conservé : recharger la page le retrouve. vital #197
2.13 Terminer tous les supports La formation passe à 100 %. vital —
2.14 Ouvrir Certificats Le certificat de la formation terminée apparaßt. vital #155
2.15 Télécharger le certificat Le PDF s'ouvre, au nom de la bonne personne, avec la bonne formation. vital #155
2.16 Lire le bas de l'écran Certificats La rÚgle d'obtention est écrite en clair. mineur #155
2.17 Rejouer 2.1 à 2.4 avec un Manager d'équipe inscrit Comportement identique. La progression s'affiche. vital BACK#447

Ce que P2 ne couvre pas

Points d'attention

2.3 est la fonction vitale n°4, et la plus difficile Ă  Ă©prouver : elle dĂ©pend du suivi de lecture. Si le support ne passe pas Ă  « terminĂ© » tout seul, ne pas le forcer — c'est le dĂ©faut, pas un contretemps.

2.17 n'est pas une redite. C'est l'Ă©tape qui a fait naĂźtre BACK#447 : la progression n'Ă©tait servie qu'au rĂŽle learner, jamais aux 16 personnes inscrites qui portent un autre rĂŽle. Si elle Ă©choue, la recette s'arrĂȘte.

2.6 dĂ©pend de BACK#355, ouverte : la famille « page » (HTML) n'est peut-ĂȘtre pas encore gĂ©rĂ©e par la visionneuse. Un KO y est attendu.


P3 — Faire entrer une Ă©quipe

RÎle : Manager RH. Compte : recette-<qui>-managerrh@. Durée : 20 minutes.

Maquettes de référence : Invitations · Invitations · Suivi · Tous les collaborateurs

# Ce que vous faites Ce qui doit se produire Criticité Issue
3.1 Pilotage â€ș Invitations â€ș Inviter Deux onglets : Inviter et Suivi. Pas d'Ă©cran legacy. Le formulaire tient en deux colonnes : la composition Ă  gauche (destinataires, message, cours ouverts), l'aperçu de l'e-mail Ă  droite, qui reste Ă  sa place quand on fait dĂ©filer. majeur #96 · #266 — aperçu corrigĂ© le 19/08, PR FRONT#268 — À REJOUER**
3.2 Saisir 3 adresses, puis dĂ©plier « Cours ouverts Ă  l'arrivĂ©e » La saisie accepte les trois adresses. La liste de cours est cherchable et, une fois dĂ©pliĂ©e, rien ne la recouvre : le pied d'actions est dans le flux de la page, il ne flotte plus par-dessus. ⚠ Les options ne portent que le nom du cours : le serveur sert dĂ©sormais la catĂ©gorie et le nombre de supports, l'Ă©cran ne les affiche pas encore — KO attendu (FRONT#170). ⚠ Ce formulaire ne propose ni rĂŽle ni manager de rattachement : ces deux rĂ©glages n'existent pas Ă  l'invitation, ils se posent depuis la fiche utilisateur (P8). majeur #96 · #267 — pied corrigĂ© le 19/08, PR FRONT#285 — À REJOUER** · FRONT#170 ← BACK#406 (PR BACK#511)
3.3 Dépasser 400 caractÚres de message Le refus dit la borne. mineur BACK#403
3.4 Envoyer Le bouton principal dit « Envoyer l'invitation ». Confirmation au passĂ© : « Invitations envoyĂ©es ». mineur #145 · #286 — libellĂ© corrigĂ© le 19/08, PR FRONT#288 — À REJOUER**
3.5 Onglet Suivi Regroupement par personne. Les filtres Statut et Compte fonctionnent et portent un compteur. Le pied de liste porte « Par page » au gabarit et le dĂ©compte « Affichage 1 Ă  20 de N » — avec l'espace avant « de ». majeur #168 · #275 · #283 — pied et dĂ©compte corrigĂ©s le 19/08, PR FRONT#284 + #287 — À REJOUER**
3.6 Filtrer sur « en attente » La liste se restreint. Le compteur correspond au nombre affiché. majeur #168
3.7 Exporter le suivi Le fichier se tĂ©lĂ©charge, avec le mĂȘme pĂ©rimĂštre que ce qui est affichĂ© — filtres compris. majeur #168
3.8 Relancer une invitation Un nouveau message part. Le suivi le montre. majeur #139
3.9 Ouvrir Tous les collaborateurs L'onglet existe — rĂ©servĂ© au Manager RH et Ă  l'admin. majeur BACK#63
3.10 Rejouer 3.9 avec un Manager d'équipe L'onglet n'existe pas. Il ne voit que ses rattachés. vital BACK#63

Ce que P3 ne couvre pas

Points d'attention

3.10 est un test de cloisonnement, donc vital : un manager d'équipe qui voit toute la plateforme est une fuite, pas un défaut d'affichage.

3.7 : l'export doit refléter les filtres. Un export qui rend tout, alors que l'écran filtre, produit un fichier qui ne correspond à rien de ce qu'on a vu.

3.2 a changĂ© deux fois, et dans deux sens opposĂ©s. Le pied d'actions recouvrait la liste de cours dĂ©pliĂ©e — corrigĂ© le 19/08 (FRONT#267, PR #285) : si la liste est de nouveau masquĂ©e, c'est une rĂ©gression. En revanche la seconde ligne des options (nom + sociĂ©tĂ©, nom + catĂ©gorie) n'est toujours pas affichĂ©e : le serveur la sert depuis BACK#511, l'Ă©cran ne l'a pas encore branchĂ©e — c'est FRONT#170, ouverte, donc un KO attendu et non un dĂ©faut neuf.

Le rĂŽle et le manager de rattachement ne se saisissent PAS Ă  l'invitation. La v1.3 les dĂ©crivait dans ce formulaire ; ils n'y sont pas, et n'y ont pas Ă©tĂ© retirĂ©s — ils se posent Ă  la crĂ©ation d'un compte et sur la fiche utilisateur (P8). L'Ă©tape a Ă©tĂ© réécrite sur ce qui existe.


P4 — Inscrire et traiter les demandes

RÎle : Manager RH. Durée : 20 minutes.

Maquettes de référence : Inscriptions · Inscriptions · Demandes

# Ce que vous faites Ce qui doit se produire Criticité Issue
4.1 Pilotage â€ș Inscriptions â€ș Inscrire Deux onglets : Inscrire et Demandes. Le pied d'actions est dans le flux : une liste dĂ©pliĂ©e n'est plus recouverte (mĂȘme correctif qu'aux Invitations, la classe est partagĂ©e par les deux onglets). majeur #96 · #267 — corrigĂ© le 19/08, PR FRONT#285 — À REJOUER**
4.2 Choisir une formation et des apprenants Les deux listes sont cherchables. Les personnes dĂ©jĂ  inscrites sont signalĂ©es, pas proposĂ©es en double. ⚠ Les options ne portent toujours que le NOM : deux homonymes restent indistinguables Ă  l'Ă©cran. Le serveur sert pourtant dĂ©sormais l'adresse et la sociĂ©tĂ©/le profil mĂ©tier pour les personnes, la catĂ©gorie et le nombre de supports pour les cours — l'Ă©cran ne les a pas encore branchĂ©s. KO attendu. majeur FRONT#170 ← BACK#406 — serveur corrigĂ© le 19/08, PR BACK#511 ; Ă©cran non branchĂ©, FRONT#170 reste ouverte
4.3 Chercher l'interrupteur de notification Il est absent : la fonction n'est pas livrée. Ne pas le signaler comme bug. mineur #170, BACK#405
4.4 Inscrire Confirmation. Les personnes apparaissent comme inscrites. vital —
4.5 VĂ©rifier cĂŽtĂ© apprenant La formation apparaĂźt dans Mes formations. vital —
4.6 Onglet Demandes La liste des demandes d'inscription s'affiche — y compris pour un encadrant sans aucun rattachĂ©. Un 500 ici est dĂ©sormais une RÉGRESSION. majeur #172 · #452 — corrigĂ© le 18/08, PR BACK#463 — À REJOUER**
4.7 Filtrer par statut Le filtre s'applique rĂ©ellement : Pending, Approved, Rejected restreignent la liste. majeur BACK#410 — corrigĂ© le 19/08, PR BACK#495 — À REJOUER · CORRIGÉ le 19/08 (FRONT#312, PR #316) : filtre statut serveur, vue par dĂ©faut « À traiter ». À REJOUER**
4.8 Accepter une demande L'apprenant est inscrit. La demande disparaĂźt de la liste. vital CORRIGÉ le 19/08 (FRONT#312) : une demande traitĂ©e sort de la vue par dĂ©faut. L'inscription fonctionnait dĂ©jĂ . À REJOUER
4.9 Chercher qui a acceptĂ©, et quand La dĂ©cision porte son auteur et sa date. C'est la fonction vitale n°7. majeur BACK#411 — corrigĂ© le 19/08, PR BACK#495 — À REJOUER**
4.10 Refuser une demande Le refus est enregistrĂ©, l'apprenant n'est pas inscrit, et aucun point ne lui est crĂ©ditĂ©. ⚠ L'attendu de cette Ă©tape a CHANGÉ le 22/08 : elle annonçait un crĂ©dit de points en KO attendu — c'Ă©tait faux, un garde-fou l'empĂȘchait dĂ©jĂ . RĂ©-enregistrer le mĂȘme statut ne renvoie plus d'e-mail et n'Ă©crase plus la trace de qui a dĂ©cidĂ©. À REJOUER — vĂ©rifiĂ© en connectĂ© : points 0 → 0. majeur BACK#412 — corrigĂ© 22/08, PR BACK#612
4.11 Faire dĂ©poser une demande par une personne sans manager de rattachement, sur un cours sans rĂ©fĂ©rent La demande part sans erreur silencieuse : Ă  dĂ©faut de destinataire naturel, l'administrateur et le(s) Manager(s) RH sont notifiĂ©s. Le trou est fermĂ© des deux cĂŽtĂ©s. majeur BACK#502 · BACK#503 — neuve en v1.4, corrigĂ©es le 19/08

Points d'attention

Trois KO de la v1.3 sont tombĂ©s pendant la recette (4.6, 4.7, 4.9) : ils sont devenus des tests de non-rĂ©gression. Si le 500, le filtre inerte ou l'absence de trace reviennent, c'est un BUG en citant l'issue d'origine — plus grave qu'un dĂ©faut neuf.

4.9 touche la preuve QUALIOPI : une inscription acceptée sans trace de qui l'a décidée est un trou dans le dossier de formation. C'est la raison pour laquelle elle a été corrigée avant la prod, et la raison pour laquelle il faut la rejouer plutÎt que la croire acquise.

4.2 est le cas d'Ă©cole du volet « Ă  rejouer ». Le correctif serveur est livrĂ©, l'Ă©cran ne l'affiche pas : une Ă©tape peut ĂȘtre « corrigĂ©e » d'un cĂŽtĂ© et inchangĂ©e pour le testeur. C'est ce que la mention distingue.


P5 — Piloter son Ă©quipe

RÎle : Manager d'équipe (sub_manager), puis Manager RH pour comparer les périmÚtres. Durée : 30 minutes.

Maquettes de référence : Tableau de bord pilotage · Mes collaborateurs · Tous les collaborateurs · cockpit apprenant et Mes équipes

# Ce que vous faites Ce qui doit se produire Criticité Issue
5.1 Se connecter en Manager d'équipe Arrivée sur Pilotage, pas sur un écran legacy. vital #75
5.2 Regarder la latĂ©rale Tableau de bord · Mes collaborateurs · Invitations · Inscriptions. ⚠ « Mes Ă©quipes » n'apparaĂźt QUE pour un encadrant de PLUSIEURS niveaux (elle montre les N-1 et les N-2). Son absence chez un Manager d'Ă©quipe, qui n'encadre qu'un niveau, est le comportement attendu — ce n'est pas un KO. majeur #70 · corrigĂ© en v1.5 — l'Ă©tape attendait « Mes Ă©quipes » pour tous
5.3 Tableau de bord Les deux entonnoirs s'affichent avec des chiffres. vital #328 · CORRIGÉ le 19/08 (FRONT#311, PR #313) : le taux sous l'entonnoir des PERSONNES affichait celui des INSCRIPTIONS ; un entonnoir vide se distingue dĂ©sormais d'un absent. À REJOUER
5.4 Tableau « Par module » Les colonnes Vues, Apprenants actifs, Temps moyen, Score quiz sont remplies. majeur BACK#328
5.5 Filtrer par sociĂ©tĂ© Un filtre ne donne jamais accĂšs Ă  plus (vital) et les chiffres se restreignent sans s'annuler : une sociĂ©tĂ© peuplĂ©e rend un tableau non vide. Une sociĂ©tĂ© qui rend zĂ©ro est dĂ©sormais une RÉGRESSION. ⚠ Les deux questions sont Ă  poser — voir ci-dessous. vital + majeur #451 — corrigĂ© le 18/08, PR BACK#463 — À REJOUER**
5.6 Mes collaborateurs Liste des rattachĂ©s directs, avec avancement, retard, abandons. Les filtres SociĂ©tĂ© et Profil mĂ©tier servent leurs options depuis les routes managĂ©riales : un 403 sur cet Ă©cran est une RÉGRESSION. Le pied de liste porte « Par page » au gabarit et « Affichage 1 Ă  20 de N ». vital #263 · #275 · #283 — filtres et pied corrigĂ©s le 19/08, PR FRONT#265 + #284 + #287 — À REJOUER**
5.7 Trier une colonne Le tri s'applique. Les en-tĂȘtes triables ont la mĂȘme casse que les autres. mineur #209
5.8 Masquer une colonne La préférence est retenue au rechargement. mineur BACK#180
5.9 Exporter Le fichier reflĂšte filtres et colonnes affichĂ©es. majeur —
5.10 Mes Ă©quipes HiĂ©rarchie directe et indirecte, avec « Manager de rattachement ». vital —
5.11 Ouvrir le cockpit d'une personne Son dossier s'ouvre : formations, avancement, historique. vital #186
5.12 Lire les valeurs absentes Un « — » pour une mesure absente, un « 0 » pour une mesure Ă  zĂ©ro. Jamais l'un pour l'autre. majeur #146
5.13 Ouvrir une formation du cockpit Le détail s'affiche, la ligne ouverte est surlignée. majeur #186
5.14 Chercher retard et abandon au niveau 1 ⚠ Absents : ils n'apparaissent qu'au niveau 2. KO attendu. majeur #178
5.15 « Afficher tout l'historique » ⚠ Rend des centaines de lignes sans pagination. KO attendu. majeur #180
5.16 Revenir en arriĂšre depuis le cockpit ⚠ Le retour rejoue l'historique au lieu de ramener Ă  la liste. KO attendu. mineur #177
5.17 Rejouer 5.6 en Manager RH Il voit tous les collaborateurs. Le Manager d'équipe n'a vu que les siens. vital BACK#63
5.18 Forger l'accĂšs : en Manager d'Ă©quipe, remplacer l'identifiant d'un rattachĂ© par celui de quelqu'un d'autre dans l'URL d'une fiche Refus (403) sur toutes les routes qui servent une personne — la fiche admin user/show comprise. Une fiche hors pĂ©rimĂštre qui s'ouvre est une RÉGRESSION VITALE. ⚠ Ne se joue pas Ă  la souris — l'Ă©cran ne propose jamais le geste ; passer par tools/recette-api/. confidentialitĂ© #450 — corrigĂ© le 18/08, PR BACK#463 · BACK#512 — garde Ă©tendue Ă  user/show le 19/08 — À REJOUER**

Points d'attention

Trois KO sont attendus (5.14 à 5.16) : ce sont les issues du cockpit sorties du lot UX/UI et reportées. Les signaler confirme qu'elles sont bien présentes ; ne pas les signaler laisserait croire qu'elles sont corrigées.

5.5, 5.17 et 5.18 sont les tests de pĂ©rimĂštre. Ils sont vitaux : un manager qui voit ce qui ne le regarde pas est une fuite de donnĂ©es personnelles. ⚠ Les trois sont tenus depuis le 18/08 — 5.18 l'a Ă©tĂ© en dernier (#450, PR BACK#463), et sa garde a Ă©tĂ© Ă©tendue Ă  la fiche utilisateur le 19/08 (BACK#512). Ils ont donc changĂ© de nature : ce ne sont plus des constats, ce sont des tests de non-rĂ©gression, et c'est pour cela qu'il faut les rejouer.

5.5 demande DEUX questions, et la premiĂšre seule ne suffit pas. « Le filtre Ă©largit-il le pĂ©rimĂštre ? » est satisfait par un filtre cassĂ© qui rend toujours zĂ©ro : 0 ≀ 52, invariant respectĂ©. C'Ă©tait l'Ă©tat constatĂ© avant le 18/08 (#451) — le filtre sociĂ©tĂ© rendait zĂ©ro sur les trois sociĂ©tĂ©s peuplĂ©es, et la passe API le dĂ©clarait vert. Il faut donc aussi demander : « une sociĂ©tĂ© peuplĂ©e rend-elle autre chose que zĂ©ro ? » — la rĂ©ponse doit ĂȘtre oui.

La leçon vaut au-delĂ  de cet Ă©cran : un critĂšre formulĂ© comme une borne (« jamais plus que ») est satisfait par une fonction qui ne rend rien. Partout oĂč le cahier Ă©crit « ne donne jamais accĂšs Ă  plus », il faut lire aussi « et donne bien accĂšs Ă  ce qui est dĂ» ».

5.18 n'est pas une étape d'utilisateur, et c'est pour cela qu'elle manquait. Un cahier écrit du point de vue de ce qu'on fait ne peut pas décrire une fuite : l'interface ne propose jamais de changer un identifiant dans une URL. Elle se joue par la passe API (v_idor_fiche_apprenant), pas au navigateur. Les deux routes qui servaient l'état civil et l'avancement de n'importe qui à n'importe quel encadrant répondent 403 depuis le 18/08 (#450), et la passe couvre depuis le 19/08 la route de la fiche utilisateur admin (BACK#512), qui rendait en plus un 500 sur un identifiant inexistant.


P6 — Administrer le catalogue

RÎle : Administrateur. Durée : 40 minutes.

Maquettes de rĂ©fĂ©rence : Cours (admin) · liste Cours unifiĂ©e · CrĂ©er un cours · CrĂ©ation d'un tuto · Parcours (liste) · CrĂ©er un parcours · Éditeur de parcours · page parcours apprenant · RĂ©fĂ©rentiels des cours

# Ce que vous faites Ce qui doit se produire Criticité Issue
6.1 Admin â€ș Cours Liste unifiĂ©e cours · tutos · parcours, avec un badge de type par ligne. Le pied de liste porte « Par page » au gabarit et « Affichage 1 Ă  20 de N ». majeur #72 · #275 · #283 — pied corrigĂ© le 19/08, PR FRONT#284 + #287 — À REJOUER**
6.2 Menu « + Créer » Trois entrées, chacune décrivant sa nature. majeur #75
6.3 « Un cours » La fenĂȘtre s'ouvre, et son en-tĂȘte rappelle le type — non modifiable. mineur #144
6.4 CrĂ©er sans titre Le refus dit lequel des champs manque. mineur —
6.5 CrĂ©er un cours Il apparaĂźt dans la liste, non publiĂ©. vital CORRIGÉ le 20/08 (BACK#553 + PR #554) : le cours naĂźt en BROUILLON, et le dĂ©faut SQL de la colonne a Ă©tĂ© retournĂ©. À REJOUER
6.6 Ouvrir le studio Sections, supports, glisser-déposer. vital #76
6.7 Ajouter un support vidéo par lien (Vimeo/YouTube) Le lien est accepté, la durée est reprise. majeur #349
6.8 Ajouter un PDF Le fichier se dĂ©pose, son type est reconnu. vital —
6.9 Renommer le cours au clic sur le titre Le renommage seul fonctionne, sans réclamer toute la fiche. mineur #76
6.10 Publier une section Le statut change et se voit. majeur BACK#369
6.11 Publier le cours Il devient visible cĂŽtĂ© apprentissage. vital —
6.12 Ouvrir le cours par son URL Le cours s'ouvre par son slug. ✅ VĂ©rifiĂ© le 17/08 par la passe API : les cours publiĂ©s s'ouvrent par leur slug, BACK#337 est close. Un cours non publiĂ© rend 404 — c'est attendu ici, mais voir #453 pour l'apprenant qui y est inscrit. vital BACK#337 (close)
6.13 Dépublier La confirmation chiffre ce que les apprenants perdent. majeur #145
6.14 Chercher « Supprimer » ⚠ L'entrĂ©e n'existe plus — dĂ©cision du 16/08. Ne pas la signaler comme manquante. ✅ Depuis le 22/08, le serveur refuse aussi : une formation portant un historique d'apprenants ne peut plus ĂȘtre supprimĂ©e, mĂȘme par un appel direct. Message vĂ©rifiĂ© en connectĂ© sur une formation Ă  20 apprenants — il chiffre la consĂ©quence et propose la dĂ©publication. majeur #145, BACK#445 — corrigĂ© 22/08, PR BACK#611
6.15 CrĂ©er un tuto Écran dĂ©diĂ©, badge « Tuto » en en-tĂȘte. majeur #75
6.16 CrĂ©er un parcours L'Ă©diteur s'ouvre : Ă©tapes, rĂ©ordonnancement. majeur —
6.17 RĂ©fĂ©rentiels UN Ă©cran, deux rubriques, cinq panneaux dont QUATRE en onglets. La rubrique « Utilisateurs » n'a qu'un seul contenu : sa barre d'onglets est masquĂ©e Ă  dessein (un onglet unique n'offre aucun choix). Compter 4 onglets n'est pas un KO. majeur #56 · corrigĂ© en v1.5 — l'Ă©tape annonçait « cinq onglets »
6.18 Coller /admin/cours/balises Redirige vers l'onglet Balises — pas seulement vers l'Ă©cran. mineur #56
6.19 CrĂ©er une catĂ©gorie Elle apparaĂźt, et devient disponible dans les filtres. majeur —

Points d'attention

6.14 est un test de retrait. Il échoue si l'entrée est présente.

6.12 est vital : sans slug fonctionnel, aucun lien partagé ne mÚne nulle part.


P7 — Encadrer ses apprenants

RÎle : Formateur. Durée : 15 minutes.

Maquettes de rĂ©fĂ©rence : ⚠ aucune maquette v3 ne dessine l'espace formateur — il n'a Ă©tĂ© ni redessinĂ© ni fusionnĂ© par le lot. Les Ă©crans se jugent donc sur les gabarits partagĂ©s : liste Cours unifiĂ©e pour « Mes cours », Mes collaborateurs pour « Mes apprenants », cockpit apprenant pour la fiche. Un Ă©cart de gabarit se signale ; un Ă©cart de contenu relĂšve des KO ci-dessous, pas de la maquette.

# Ce que vous faites Ce qui doit se produire Criticité Issue
7.1 Se connecter en Formateur ArrivĂ©e sur son espace. LatĂ©rale Ă  deux entrĂ©es : Mes cours · Mes apprenants. ⚠ Aucun sĂ©lecteur d'univers — c'est voulu (#269) ; en revanche le formateur garde son bouton « Tableau de bord », qui est son unique chemin vers son accueil. vital #78 · #273 — vĂ©rifiĂ© le 19/08, PR FRONT#276 — À REJOUER**
7.2 Mes cours Ses cours, sur la DataTable commune. vital #78
7.3 Chercher la colonne « Mis Ă  jour » ⚠ Absente : l'API ne sert pas la donnĂ©e. KO attendu. mineur BACK#434
7.4 Chercher « CatĂ©gorie â€ș Sous-catĂ©gorie » ⚠ Incomplet : la sous-catĂ©gorie n'est pas chargĂ©e. KO attendu. mineur BACK#435
7.5 Chercher un bouton Exporter ⚠ Absent : aucune route d'export teacher.*. mineur BACK#436
7.6 Mes apprenants La liste s'affiche. vital #78
7.7 Chercher tri et recherche ⚠ Absents, dĂ©libĂ©rĂ©ment : la route les ignorerait en silence. mineur BACK#437
7.8 Ouvrir la fiche d'un apprenant Son dossier s'ouvre : formations, avancement. vital #78
7.9 Revenir en arriĂšre Retour Ă  Mes apprenants, pas ailleurs. majeur #78
7.10 Chercher « + CrĂ©er un cours » et « Modifier » ⚠ Absents — comportement ATTENDU. Arbitrage rendu le 20/08 : le formateur ne crĂ©e pas de cours. Leur prĂ©sence serait un dĂ©faut. mineur #78 (close sur arbitrage) · corrigĂ© en v1.5 — l'Ă©tape les attendait

Points d'attention

Cinq KO attendus (7.3 à 7.5, 7.7, 7.10). C'est le parcours le plus contraint par le back : les manques sont tracés et assumés. Un tri absent vaut mieux qu'un tri qui ne trie pas.


P8 — GĂ©rer les comptes

RÎle : Administrateur. Durée : 35 minutes.

Maquettes de rĂ©fĂ©rence : Utilisateurs · CrĂ©er un utilisateur · fiche utilisateur admin — validĂ©e le 19/08, dĂ©cisions F-1 Ă  F-5 en pied de page · RĂ©fĂ©rentiels · ParamĂštres

# Ce que vous faites Ce qui doit se produire Criticité Issue
8.1 Admin â€ș Utilisateurs, puis cliquer sur une LIGNE Liste des comptes, filtres, recherche. Le clic sur la ligne ouvre la fiche /admin/utilisateurs/:id. Les cellules interactives (case Ă  cocher, menu) restent cliquables sans ouvrir la fiche. vital #162 · #270 — corrigĂ© le 19/08, PR FRONT#271 — À REJOUER**
8.2 CrĂ©er un utilisateur La fenĂȘtre s'ouvre. Les rĂŽles proposĂ©s excluent ceux de niveau supĂ©rieur au sien. vital —
8.3 Créer avec un rÎle managérial et un rattachement Le parent proposé porte effectivement un périmÚtre hiérarchique. majeur BACK#52
8.4 Rattacher quelqu'un Ă  lui-mĂȘme — depuis sa fiche La personne Ă©ditĂ©e n'apparaĂźt pas dans la liste des managers : elle en est retirĂ©e, pas seulement refusĂ©e Ă  l'enregistrement. majeur BACK#52 · #270 — portĂ© sur la fiche le 19/08, PR FRONT#271 — À REJOUER**
8.5 Modifier un utilisateur ⚠ La modale de modification n'existe plus. L'Ă©dition se fait sur la fiche — voir 8.14. Chercher une fenĂȘtre de modification depuis la liste est un test de retrait : elle ne doit pas apparaĂźtre. Les modifications enregistrĂ©es sont visibles Ă  la relecture. vital #46 · #270 — la modale a Ă©tĂ© supprimĂ©e le 19/08, PR FRONT#271 — À REJOUER**
8.6 Changer sa sociĂ©tĂ© Le changement est pris. Le rattachement survit. majeur —
8.7 Rattacher Ă  un manager d'une autre sociĂ©tĂ© AcceptĂ© — la sociĂ©tĂ© dĂ©crit, elle ne cloisonne pas. Comportement normal. mineur —
8.8 DĂ©sactiver un compte Il ne peut plus se connecter. Ses donnĂ©es restent. vital —
8.9 Apprenants sans manager L'écran liste les orphelins et permet de les réaffecter. majeur #58
8.10 RĂ©fĂ©rentiels â€ș SociĂ©tĂ©s et profils mĂ©tier Les deux listes s'administrent. majeur #56
8.11 Supprimer une société utilisée La réaffectation est proposée avant la suppression. majeur #56
8.12 ParamÚtres Les réglages s'affichent et s'enregistrent. majeur #165
8.13 Chercher les 4 rĂ©glages de la maquette ⚠ Certains n'ont pas de champ. KO attendu. mineur #165
8.14 La fiche utilisateur : l'ouvrir, modifier un champ dans chacune des trois sections, enregistrer Trois sections Ă©ditables sur place : IdentitĂ© · RĂŽle et rattachement · AccĂšs. La barre d'enregistrement annonce ce qui a changĂ© avant de valider ; « Annuler » remet les valeurs d'origine. AprĂšs enregistrement, la relecture de la fiche montre bien les nouvelles valeurs. majeur #270 — neuve en v1.4, PR FRONT#271
8.15 Depuis la fiche, revenir par le fil d'Ariane « Utilisateurs â€ș nom » Retour Ă  la liste, pas ailleurs, et pas par l'historique du navigateur. majeur #270 — neuve en v1.4, PR FRONT#271
8.16 Ouvrir le menu d'actions d'une ligne Quatre entrĂ©es, en français, sans icĂŽne rose : Ouvrir la fiche · Envoyer un lien de rĂ©initialisation · Ouvrir dans Pilotage · DĂ©sactiver (ou RĂ©activer sur un compte dĂ©sactivĂ©). ⚠ Plus de « Supprimer » — c'est un test de retrait (fonction vitale n°8), il Ă©choue si l'entrĂ©e est prĂ©sente. « Ouvrir dans Pilotage » rend le passage d'univers explicite : on ne s'y retrouve jamais sans l'avoir demandĂ©. majeur #270 — neuve en v1.4, PR FRONT#271
8.17 Regarder le pied de la liste « Par page » est au gabarit (13 px, contrĂŽle de 34 px, dans un pied Ă  filet et fond), et le dĂ©compte lit « Affichage 1 Ă  20 de N utilisatrices » — avec l'espace avant « de » (le dĂ©faut relevĂ© Ă©crivait « 20de 108 »). À vĂ©rifier aussi page 3 : le correctif ne doit pas valoir que pour la premiĂšre page. ⚠ Transverse : le pied est celui de toutes les listes de la plateforme. Un Ă©cart se signale une fois, pas Ă©cran par Ă©cran. mineur #275 · #283 — neuve en v1.4, PR FRONT#284 + #287

Points d'attention

8.7 n'est pas un défaut. Le cloisonnement multi-société est explicitement reporté au SaaS : ManagerialParent n'impose aucune contrainte de société, company_id est nullable, et la société est un filtre d'affichage. Une équipe à cheval sur deux sociétés est le comportement attendu.

8.8 met en jeu la fonction vitale n°8 : désactiver ne doit rien effacer.

P8 est le parcours le plus remanié par les livraisons du 19/08. La modale de modification a disparu au profit de la fiche /admin/utilisateurs/:id, et avec elle l'entrée « Supprimer ». Quatre étapes neuves (8.14 à 8.17) décrivent ce qui n'existait pas quand la v1.3 a été écrite : elles n'ont jamais été jouées par personne. Si vous ne devez en jouer que deux, jouez 8.14 et 8.16.

La fiche n'affiche PAS tout ce que la maquette dessine, et c'est délibéré. « DerniÚre connexion » et la carte Activité complÚte attendaient une route qui ne les servait pas ; elle les sert depuis le 19/08 (BACK#508), le branchement cÎté écran reste à faire. Un champ absent ici est un KO sur BACK#508, pas un BUG. La rÚgle du dépÎt s'applique : un élément de maquette sans route est un élément absent plus une issue, jamais un champ menteur.

La seconde ligne des options de rattachement (rĂŽle · sociĂ©tĂ©) manque encore. Le serveur la sert depuis BACK#511, l'Ă©cran ne l'a pas branchĂ©e — c'est le mĂȘme KO qu'en P4.2 (FRONT#170).


P9 — Ce qui doit ĂȘtre ABSENT

RÎle : tous, mais l'admin suffit pour l'essentiel. Durée : 15 minutes.

Maquettes de rĂ©fĂ©rence : un retrait ne se dessine pas. Deux maquettes servent tout de mĂȘme de tĂ©moin — connexion pour 9.6 (aucun lien « Inscription ») et vitrine publique pour 9.3.

Ce parcours échoue quand quelque chose s'affiche. C'est l'inverse de tous les autres, et c'est pourquoi il est facile à oublier : un retrait raté ne se voit jamais en vérifiant ce qui marche.

⚠ Trois retraits du 19/08 sont vĂ©rifiĂ©s AILLEURS, volontairement — les rejouer ici produirait deux signalements pour un mĂȘme geste :

Ce qui a Ă©tĂ© retirĂ© OĂč on le vĂ©rifie Source
le bouton « Tableau de bord » de l'admin P0.4 #273 / PR FRONT#276
la modale de modification d'un utilisateur P8.5 #46 / PR FRONT#271
l'entrée « Supprimer » du menu d'un utilisateur P8.16 #270 / PR FRONT#271
# Ce que vous faites Ce qui doit se produire Criticité Issue
9.1 Coller /chat Ne s'ouvre pas. La fermeture est serveur. majeur #140, BACK#391
9.2 Chercher Chat, Annonces, Tickets dans les latérales Aucune entrée, pour aucun des trois rÎles concernés. majeur #140
9.3 Coller /catalog (sans E) Route supprimée. mineur #192
9.4 Coller /plans Route supprimée. mineur #192
9.5 Coller /signup Route supprimĂ©e — l'entrĂ©e se fait par invitation. majeur #192
9.6 Chercher un lien « Inscription » sur l'écran de connexion Aucun. majeur #192
9.7 Coller /edit-quiz/1 Route supprimée. mineur #192
9.8 Coller /admin/courses/<slug> Redirige vers /courses/<slug> — vue unique. majeur #193
9.9 Chercher « Supprimer » sur un cours Aucune entrée. majeur #145
9.10 Chercher les onglets horizontaux de l'apprentissage Aucun : latérale seule. mineur #153
9.11 Coller /admin/profile/edit Redirige vers /profil. mineur #154
9.12 Coller une URL quelconque déconnecté Redirection vers la connexion, jamais de contenu. vital #18

Points d'attention

9.5 et 9.6 vont ensemble. Supprimer la route sans retirer le lien laisse un bouton qui mĂšne Ă  une page morte — c'est le piĂšge relevĂ© lors de la chasse aux routes orphelines : le lien vers /signup Ă©tait dans un bloc commentĂ©, donc invisible Ă  la recherche, mais un autre pouvait subsister.

9.12 est vital : c'est le seul test de sécurité de ce parcours.


Vue par rĂŽle

Le mĂȘme contenu, rangĂ© par qui joue. Cette vue sert Ă  RÉPARTIR et Ă  vĂ©rifier qu'aucun rĂŽle n'a Ă©tĂ© oubliĂ© ; la vue par parcours sert Ă  EXÉCUTER. Elle est dĂ©rivĂ©e des Ă©tapes elles-mĂȘmes — elle ne peut donc pas diverger du corps du cahier.

Parcours Rîle qui le joue Étapes dont vitales Neuves en v1.4
P0 — Entrer et sortir les 7 rîles, l'un aprùs l'autre 10 ×7 4 0.10
P1 — De l'invitation au premier cours Manager RH (1.1–1.3) puis Apprenant 16 7 —
P2 — Suivre une formation jusqu'au certificat Apprenant, puis un Manager d'Ă©quipe inscrit 17 12 —
P3 — Faire entrer une Ă©quipe Manager RH 10 1 —
P4 — Inscrire et traiter les demandes Manager RH 11 3 4.11
P5 — Piloter son Ă©quipe Manager d'Ă©quipe, puis Manager RH (5.17) 18 7 —
P6 — Administrer le catalogue Administrateur 19 5 —
P7 — Encadrer ses apprenants Formateur 10 4 —
P8 — GĂ©rer les comptes Administrateur 17 4 8.14 Ă  8.17
P9 — Ce qui doit ĂȘtre ABSENT l'admin suffit 12 1 —

140 Ă©tapes, dont 48 vitales — six de plus qu'en v1.3. Les six portent sur des Ă©crans livrĂ©s le 19/08 : personne ne les a encore jouĂ©es.

⚠ P0 se dĂ©cline sur les sept rĂŽles : ses 10 Ă©tapes valent 70 exĂ©cutions. Avec des contextes isolĂ©s, elles se jouent en parallĂšle et coĂ»tent le temps de dix.


Dépendances et parallélisation

Quatre sortes de dépendances, une seule vraiment bloquante

Type Exemple Parallélisable ?
DonnĂ©es P2.14 (le certificat apparaĂźt) exige P2.13 (formation Ă  100 %) non — chaĂźne stricte
État partagĂ© P4.8 accepte une demande : deux testeurs ne peuvent pas prendre la mĂȘme oui, si chacun joue sur SES comptes
Session le navigateur oui — voir ci-dessous
Aucune tout P9, les périmÚtres, les consultations oui, franchement

La deuxiĂšme se rĂ©sout d'elle-mĂȘme : chaque testeur a son jeu de comptes (david, eng, lilian, claude). Les demandes que l'un accepte ne sont pas celles de l'autre. Il ne reste que les chaĂźnes internes Ă  un parcours.

La contrainte de session est levĂ©e — mesurĂ© le 16/08

On croyait devoir tout jouer en sĂ©rie : cookies et localStorage sont partagĂ©s par ORIGINE, donc deux rĂŽles connectĂ©s en mĂȘme temps s'Ă©crasent l'un l'autre.

C'est vrai d'un navigateur ordinaire, faux avec des contextes isolĂ©s. ÉprouvĂ© sur staging avec Playwright — dĂ©jĂ  prĂ©sent dans le dĂ©pĂŽt depuis le POC de captures d'aoĂ»t :

admin          connecté | lit : ["admin"]
managerrh      connecté | lit : ["manager"]
manager        connecté | lit : ["sub_manager"]
formateur      connecté | lit : ["teacher"]
apprenant      connecté | lit : ["learner"]

Cinq sessions simultanées, chacune gardant la sienne. Chaque browserContext a son propre stockage.

Conséquence : P0, qui se décline sur sept rÎles, passe de 63 exécutions en série à neuf étapes de temps mur. L'estimation d'une journée tombe à deux ou trois heures.

Les chaĂźnes, et ce qui vole en parallĂšle

P1 ──▶ P2          entrer, puis suivre, puis ĂȘtre certifiĂ©
P3 ──▶ P4          faire entrer, puis inscrire

P0   P5   P6   P7   P8   P9        aucune dépendance entre eux

RĂ©partition proposĂ©e — le meilleur des deux mondes

Les humains testent leur métier : c'est leur expertise qui donne de la valeur au retour, et un manager ne saura pas juger de la vue apprenant. Les chaßnes restent entiÚres, mais chacune appartient à un seul testeur.

Testeur Parcours Pourquoi lui
Manager P3 ▶ P4 ▶ P5 il sait ce qu'on attend d'un tableau de bord d'Ă©quipe
Admin P6 · P8 · P9 il connaßt le catalogue et les rattachements
Apprenant P1 ▶ P2 il est le seul Ă  juger si c'est utilisable sans explication
Claude P0 (7 rÎles) · passe API · ce que personne ne prend contextes isolés, exécution parallÚle

Les trois colonnes tournent en mĂȘme temps, chacune sur ses comptes.

✅ Le prĂ©requis d'inscription est levĂ© — mesurĂ© le 17/08 au soir

Historique, Ă  garder pour comprendre le piĂšge. Le seeder crĂ©e la mĂȘme structure pour les quatre jeux mais n'inscrivait personne Ă  une formation ; puis les inscriptions posĂ©es Ă  la main portaient sur des cours non publiĂ©s, que « Mes formations » liste alors que la page rend 404 (#453). P1.12 Ă  P1.14 et tout P2 Ă©taient injouables.

Débloqué le 17/08 : apprenant et manager d'équipe de chacun des quatre jeux sont inscrits à deux formations publiées. Vérifié jeu par jeu :

claude · david · eng · lilian    →  2 formations ouvrables par rĂŽle
P2.17 (BACK#447, vitale)         →  OK sur les quatre

⚠ Ce dĂ©blocage est manuel et ne survivra pas Ă  une reconstruction du jeu. Le seeder doit le porter — c'est BACK#439, qui doit garantir deux choses : inscrire Ă  au moins 2 formations publiĂ©es, et conserver au moins une inscription non publiĂ©e comme cas d'Ă©preuve de #453.

Pour re-vérifier un jeu à tout moment :

RECETTE_PASSWORD='
' RECETTE_QUI=<david|eng|lilian|claude> \
  python3 tools/recette-api/passe_api.py

Attendu Ă  P2.1 : « 2/4 formation(s) listĂ©es dont la page rend 404 ». C'est le bon rĂ©sultat — les deux formations ouvrables fonctionnent, les deux non publiĂ©es dĂ©montrent #453. Si le compte est « 4/4 », les inscriptions publiĂ©es ont disparu : rien ne sert de commencer P1 ou P2.

⚠ Ne jouez pas les quatre passes Ă  la suite : la limitation de dĂ©bit refuse les connexions et le rapport annonce « pas de jeton », qui ressemble Ă  une panne de donnĂ©es sans en ĂȘtre une. Espacez de ~20 secondes.


Registre des écarts déjà connus

À lire avant de signaler. Chaque ligne est un constat dĂ©jĂ  suivi par une issue. Le rencontrer se signale KO avec le numĂ©ro — jamais BUG.

Le registre est arrĂȘtĂ© au 17/08 au soir. Il ne prĂ©tend pas ĂȘtre exhaustif : il couvre ce que la passe API et les tours de recette connectĂ©s ont trouvĂ©. Un constat absent d'ici est un BUG lĂ©gitime, c'est tout l'intĂ©rĂȘt de la liste.

Deux issues sont en cours de correction au moment oĂč vous lisez (#450,

452, possiblement #451) et deux PR front sont en attente de merge (#234,

236). Si le comportement décrit ne se reproduit pas, tant mieux : signalez

OK, la correction est passée entre-temps.

Ce qui a Ă©tĂ© corrigĂ© et vĂ©rifiĂ© en ligne — ne doit PLUS se reproduire

Si l'un de ces défauts réapparaßt, c'est une régression : signalez BUG en citant l'issue d'origine, c'est plus grave qu'un défaut neuf.

Corrigé Ce qui doit marcher Vérifié
FRONT#223 la latérale reste à l'écran quand on fait défiler mesuré, 1 136 px
FRONT#231 catalogue : rayons, familles, flÚches de défilement 42 contenus, 0 rayon sans flÚche
FRONT#226 sélection multiple + barre d'actions sur Utilisateurs et Cours admin, confirmation chiffrée, « Par page » 6 vérifications UI, 18/08
FRONT#228 page d'un cours : un seul en-tĂȘte, quel que soit l'Ă©tat d'inscription 3 Ă©tats rejouĂ©s
BACK#447 la progression s'affiche pour tout INSCRIT, pas seulement le rîle apprenant vital — OK sur les 4 jeux
BACK#450 une fiche hors périmÚtre répond 403 vérifié en ligne, 18/08
BACK#337 les cours publiés s'ouvrent par leur adresse passe API
FRONT#266 l'aperçu d'e-mail des Invitations reste EN PLACE au défilement (la maquette ne le rend pas sticky) bundle servi, 19/08
BACK#502 une demande d'inscription d'un utilisateur SANS manager de rattachement notifie l'admin + le(s) Manager(s) RH, sans erreur silencieuse rejouée en ligne (transaction annulée), 19/08
BACK#503 une demande d'inscription sur un cours SANS manager rĂ©fĂ©rent notifie aussi l'admin + le(s) Manager(s) RH — le trou est fermĂ© des deux cĂŽtĂ©s rejouĂ©e en ligne (transaction annulĂ©e), 19/08
FRONT#46/#270 la fiche utilisateur admin (clic sur la ligne, /admin/utilisateurs/:id) remplace l'ancienne modale : rÎle et rattachement modifiables sur place (sens #52) bundle servi + contrat PUT rejoué en ligne, 19/08
FRONT#269 (décl. 1)/#92 l'admin dispose du sélecteur TROIS UNIVERS (Administration · Pilotage · Apprentissage), actif correct partout ; encadrant 2, apprenant 0 sessions réelles, 19/08
FRONT#273 le bouton « Tableau de bord » admin est retiré (doublon du sélecteur) ; le formateur garde le sien sessions réelles, 19/08
FRONT#274 la bascule d'univers est au gabarit maquette (347×42, --surface-2, survol et focus rĂ©els) bundle servi, 19/08
FRONT#275 « Par page » des listes au gabarit (13px/34px, pied .table-foot) sur TOUTES les listes bundle servi, session réelle, 19/08
FRONT#267 le pied des Invitations/Inscriptions est dans le FLUX : la liste de cours dépliée n'est plus recouverte (0/5 points) bundle servi, session réelle, 19/08
BACK#406 learnerList/coursesList désambiguïsées (email + société/profil ; catégorie + nb supports), périmÚtres inchangés session réelle, 19/08
BACK#503 demande sur un cours SANS rĂ©fĂ©rent → repli admin + Manager RH (le trou fermĂ© des deux cĂŽtĂ©s avec #502) rejouĂ©e en ligne, 19/08
BACK#508 user/show sert last_login_at, created_at, courses_in_progress, certificates_count — rien d'autre session rĂ©elle, 19/08
BACK#512 user/show vérifie le périmÚtre (garde partagée) : 403 hors périmÚtre, plus de 500 sur id inexistant mesuré en ligne, 19/08

Les KO attendus, parcours par parcours

P1 — De l'invitation au premier cours

Étape Ce que vous verrez KO
Invitation à plus de 5 destinataires aucune borne appliquée, aucun message BACK#403
Accueil apprenant pas de section « À faire », pas de badge « ★ AssignĂ© » FRONT#227 ← dĂ©pend de BACK#401

⚠ L'absence de « À faire » est volontaire : l'API ne sert aucune Ă©chĂ©ance, et un dĂ©lai inventĂ© sur un Ă©cran de conformitĂ© coĂ»te plus cher que pas de dĂ©lai. La question produit — faut-il exposer une Ă©chĂ©ance Ă  l'apprenant ? — est ouverte sur BACK#401 et vous appartient.

P2 — Suivre une formation jusqu'au certificat

Étape Ce que vous verrez KO
« Mes formations » TOUTES les formations listĂ©es s'ouvrent — y compris les 2 non publiĂ©es auxquelles le compte est inscrit (#453 corrigĂ©e le 18/08 : l'inscription dĂ©cide, dĂ©publier ne casse plus un parcours engagĂ©). Un 404 ici est dĂ©sormais une RÉGRESSION —
Page d'un cours les durĂ©es Vimeo sont remplies (rĂ©tro-remplissage #456 jouĂ© le 18/08) ; seuls ~19 YouTube et quelques fichiers peuvent rester muets — signalez un « 0:01 » sur une VIDÉO VIMEO comme rĂ©gression —
Page d'un cours pas de « Niveau débutant » BACK#438
Certificat ni numéro de référence, ni score BACK#446
Reprise pas de « derniÚre activité », pas de reprise fine BACK#398

⚠ Depuis le 18/08 au soir, ces deux inscriptions non publiĂ©es servent le cas INVERSE : elles prouvent qu'un inscrit garde l'accĂšs malgrĂ© la dĂ©publication.

P4 — Inscrire et traiter les demandes

Étape Ce que vous verrez KO
Demandes, encadrant sans rattachĂ© corrigĂ© et vĂ©rifiĂ© le 18/08 (PR #463) — si un 500 revient, rĂ©gression —
Filtrer les demandes par statut fonctionne depuis le 19/08 (PR #495) : Pending/Approved/Rejected filtrent rĂ©ellement —
Accepter / refuser tracĂ© depuis le 19/08 : la dĂ©cision porte QUI et QUAND (vĂ©rifiĂ© en ligne) — fonction vitale 7 —
Refuser une demande crĂ©dite quand mĂȘme l'apprenant de points BACK#412
Inscrire l'e-mail part toujours, impossible de s'en passer BACK#405
Onglet Demandes / Inscrire 3 + 2 fonctions de la maquette absentes FRONT#172, FRONT#170

P5 — Piloter son Ă©quipe

Étape Ce que vous verrez KO
Filtres SociĂ©tĂ©/Profil mĂ©tier des Ă©crans collaborateurs corrigĂ©s et vĂ©rifiĂ©s le 19/08 (PR #265) — options servies par les routes managĂ©riales, 3 profils mĂ©tier au jeu de donnĂ©es. Si un 403 revient sur ces Ă©crans, rĂ©gression —
Filtre SociĂ©tĂ© du tableau de bord fonctionne depuis le 18/08 : chaque sociĂ©tĂ© rend un tableau de bord non vide (3 apprenants « Stat » par sociĂ©tĂ©, comptes dĂ©diĂ©s). Si une sociĂ©tĂ© rend zĂ©ro, rĂ©gression —
Fiche d'un apprenant hors de son pĂ©rimĂštre refusĂ©e (403) depuis le 18/08 (PR #463, vĂ©rifiĂ© en ligne) — si elle s'ouvre, rĂ©gression VITALE —
Cockpit apprenant retard et abandon disparaissent au niveau 1 FRONT#178
Cockpit apprenant « tout l'historique » rend des centaines de lignes FRONT#180
Cockpit apprenant aucune action possible depuis le dossier FRONT#179
Compteurs de collaborateurs filtrables en « au moins N » seulement BACK#422

⚠ BACK#450 est une divulgation de donnĂ©es, pas une gĂȘne. Si vous ouvrez une fiche que vous ne devriez pas voir, c'est le dĂ©faut — signalez KO #450 et passez. N'explorez pas plus loin, il n'y a rien Ă  documenter de plus.

P6 — Administrer le catalogue

Étape Ce que vous verrez KO
Studio parcours (liste, crĂ©ation, Ă©diteur) livrĂ© et vĂ©rifiĂ© le 18/08 (PR #248) : liste avec CrĂ©er/Exporter, fenĂȘtre de crĂ©ation, Ă©diteur avec Aperçu apprenant/Ajouter/RĂ©glages — si un de ces Ă©lĂ©ments manque, rĂ©gression —
Aperçu apprenant d'un parcours BROUILLON fonctionne depuis le 19/08 (PR #493+#261) : la page rend avec le badge « Brouillon — aperçu studio » pour l'Ɠil du studio, reste fermĂ©e aux apprenants. Cas d'Ă©preuve : `recette-brouillon-249` —
Étapes d'un parcours publiĂ©, vues par un non-inscrit « Disponible une fois l'Ă©tape prĂ©cĂ©dente terminĂ©e » mĂȘme quand tout est rĂ©glĂ© « Ă  l'inscription » — le libellĂ© est inventĂ© par repli FRONT#249
Actions groupĂ©es : Publier, DĂ©publier livrĂ©es le 18/08 (PR #240) — si absentes, rĂ©gression —
Changer de catĂ©gorie sur la sĂ©lection absent, la route n'existe pas BACK#459 ← FRONT#237
Colonne « Mis à jour » vide BACK#434
Rayon « CatĂ©gorie â€ș Sous-catĂ©gorie » sous-catĂ©gorie absente BACK#435
Bouton Exporter aucune route derriĂšre BACK#436
Supprimer un cours dĂ©truit dĂ©finitivement l'historique des apprenants BACK#445 ⚠
Liste des contenus 3 informations de la maquette non servies BACK#399

⚠ BACK#445 : ne supprimez pas de cours pendant la recette, la perte est irrĂ©versible et emporte l'historique d'apprenants rĂ©els du jeu de test.

P7 — Encadrer ses apprenants

Étape Ce que vous verrez KO
Tri et recherche sur « Mes apprenants » ignorés BACK#437
Export aucune route BACK#436

P8 — GĂ©rer les comptes

Étape Ce que vous verrez KO
Actions groupĂ©es : Affecter un manager, DĂ©sactiver livrĂ©es le 18/08 (PR #240) — si absentes, rĂ©gression —
Changer de rĂŽle sur la sĂ©lection absent, la route n'existe pas BACK#458 ← FRONT#237
« Affecter un manager » répond « N déjà rattachés inchangés » PAS un bug front : la route ignore les comptes déjà rattachés, le front affiche le compte rendu VRAI du serveur BACK#458
Pastille « N sans manager » → Ă©cran dĂ©diĂ©, pas un filtre sur la liste le contrat de listes ne sait pas dire « champ nul » BACK#462
Relancer / Exporter la sĂ©lection (Tous les collaborateurs) absents — aucune route, AUCUNE case Ă  cocher sur cet Ă©cran (voulu : une sĂ©lection sans action = un bouton mort) BACK#460/#461 ← FRONT#237
Listes de rattachement ne servent qu'une partie des personnes BACK#406
RĂ©glages administrables 4 clĂ©s sans champ FRONT#165 ← BACK#413

P9 — Ce qui doit ĂȘtre ABSENT

Étape Ce que vous verrez KO
Mot de passe erronĂ©, adresse existante OU inexistante rĂ©ponses identiques au caractĂšre prĂšs depuis le 19/08 (PR #495) — si elles diffĂšrent, rĂ©gression. Les portes /password/email et signup/verify rendent aussi une rĂ©ponse neutre identique (PR #498, vĂ©rifiĂ©) —
Chat, annonces, tickets non masquĂ©s partout oĂč ils devraient l'ĂȘtre FRONT#140

Écarts d'apparence — transverses, sur tous les Ă©crans

Ceux-ci se rencontrent partout. Signalez-les une fois, pas à chaque étape.

Constat KO
Survol des cartes/boutons/champs, « Tout rĂ©initialiser », enveloppe RĂ©fĂ©rentiels, latĂ©rale admin corrigĂ©s et vĂ©rifiĂ©s en ligne le 18/08 (PR #234, #236) — s'ils rĂ©apparaissent, rĂ©gression
Session expirĂ©e ou corrompue retour propre Ă  l'Ă©cran de connexion (#243 corrigĂ©e et vĂ©rifiĂ©e le 18/08) — une page BLANCHE ici est une rĂ©gression
Annuler une action depuis sa confirmation FRONT#219
Trois feuilles de style qui ne se chargent pas sur leurs écrans FRONT#221

Ce qui n'est pas un défaut

Pour Ă©viter quatre signalements par testeur sur les mĂȘmes points :


Matrice de couverture — Ă  Ă©tablir

Une fois les neuf parcours jouĂ©s, il restera Ă  vĂ©rifier ce qu'aucun ne traverse. La mĂ©thode : croiser les 342 routes d'API (php artisan route:list) et les actions dĂ©clenchables de chaque Ă©cran avec les Ă©tapes ci-dessus. Ce qui n'apparaĂźt nulle part est soit une fonction oubliĂ©e du cahier, soit une fonction que personne n'utilise — les deux mĂ©ritent d'ĂȘtre vues.

Un premier trou, trouvĂ© en v1.4 sans attendre la matrice. Poser les liens de maquettes parcours par parcours a suffi Ă  le montrer : sur les 32 maquettes du dossier, une seule n'est rĂ©fĂ©rencĂ©e par aucun parcours — recherche globale. Aucune Ă©tape ne fait chercher quoi que ce soit Ă  l'Ă©chelle de la plateforme. C'est exactement le genre de trou que la matrice existe pour attraper ; il est notĂ© ici en attendant qu'elle le confirme.