--- issueRef: "#81" version: 3 updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"} updatedAt: 1784665481490 --- ## Spec UX (livrée) Bloc compact "Références" dans l'écran d'exécution (workout_execution_screen.dart), sous le nom de l'exercice, avant la séquence d'étapes/champs de résultat. Deux infos max : "Dernière" (résultat de la même série que l'historique le plus récent, fallback dernière série dispo) et "Record" (meilleure valeur toutes séances confondues, règle de meilleur selon type de mesure : score manuel/reps = max, score chrono = min, temps = max). États : loading, avec dernière+record, dernière seule, record seul, vide sans historique ("Première fois sur cet exercice"), vide sans mesure pertinente, erreur (non bloquant). Pour exercices à étapes : reste au niveau série dans le bloc principal, détail par étape optionnel (bottom sheet), non bloquant pour le ticket. Exigences techniques : - Use case `getExercisePerformanceReference(exerciseId, activeMeasures, currentSetIndex)` retournant `ExercisePerformanceReference { last, record, hasAnyHistoryForExercise }` - Matching par identité stable de l'exercice source (pas par nom sauf fallback validé Architect), historiques d'exercices archivés restent exploitables - Ignorer séries skipped/valeurs nulles, ne lire que historiques terminés (pas séance active) - Chargement non bloquant, skeleton/"Chargement…", erreur non bloquante "Références indisponibles" - Composant DevFrontend réutilisable `PerformanceReferenceCard` avec formatage temps/score selon règles UX Prochaine étape : Architect cadre l'implémentation technique (requêtes historique, ports/use case, découpage Dev).