--- name: gametime-ux-score-chrono description: memory note gametime-ux-score-chrono metadata: type: project --- # GameTime — Score chronométré (ticket #18, UX 2026-07-18) Décision structurante : **le score chronométré est un MODE du Score existant** (`manual` vs `stopwatch`), pas une 4e mesure. Le mental model Temps/Répétitions/Score reste inchangé. ## Configuration exercice Si "Score" activé → sous-choix "Mode de saisie" : "Saisie libre" (comportement actuel, label+unité) ou "Chrono intégré" (label par défaut "Temps réalisé", pas d'unité libre, unité implicite "temps"). Badge résumé : "Score chrono" au lieu de "Score" pour ce mode. ## Configuration programme (personnaliser l'exercice) Si mesure = Score chrono : champ "Objectif de chrono" optionnel (aide : "Le résultat réel sera mesuré pendant la série."), pas de "cible score" classique. ## Exécution de séance Bloc dédié "Chrono score" avec affichage mm:ss.d et boutons Démarrer/Arrêter/Reprendre/Réinitialiser. Comportements clés : - "Terminer la série" avec chrono non démarré → confirmation "Aucun temps chronométré / Tu n'as pas démarré le chrono score." avec actions "Démarrer le chrono" / "Terminer sans chrono". - "Terminer la série" avec chrono en cours → arrête automatiquement et enregistre (comportement le plus utile en usage réel). - "Passer" pendant que le chrono tourne → confirmation "Le chrono en cours sera ignoré." - Pause de séance → le chrono score se met en pause avec la séance (jamais actif pendant une pause), reprise affiche "Reprendre le chrono". - Action secondaire "Modifier le temps" pour corriger manuellement (champ min/s/dixièmes), disponible aussi dans la bottom sheet "Modifier la série" de la refonte de navigation (#23). - Persistance robuste si app fermée pendant que le chrono tourne : horodatage de départ + accumulé, pas un simple compteur mémoire (cohérent avec le reste de l'app). ## Cumul avec les autres mesures - Avec Répétitions : oui, cas d'usage principal (ex: "10 suicides · chrono score"). - Avec Score libre : non — un seul mode de score actif à la fois, pas les deux simultanément. - Avec Temps (objectif) : possible mais avertissement explicite affiché en configuration si les deux sont actifs ensemble ("Temps sert d'objectif de durée ; Score chrono enregistre le temps réalisé."). ## Cas limites - Oubli de démarrer + "Terminer sans chrono" → série Terminée si reps/temps renseignés sinon Passée. - Réinitialiser le chrono après arrêt avec valeur → confirmation ("Le temps mesuré sera supprimé."). - Libellés utilisateur : jamais "Score (s)", toujours "Score chrono" dans les listes/badges et "Temps réalisé" dans le détail historique. ## Découpage proposé par UX 1. Domain · mode de score (enum ScoreInputMode manual/stopwatch, propagation dans tous les snapshots). 2. Exercices/Programmes · configuration Score chrono (choix du mode, objectif de chrono). 3. Exécution · chrono score intégré (démarrer/arrêter/reprendre/réinitialiser, auto-stop, confirmations). 4. Historique/Plan · affichage Score chrono (résumé, détail, édition ponctuelle avec durée manuelle). Stockage recommandé par UX (à confirmer par Architect) : champ dédié `actualScoreTimeMs` plutôt que réutiliser `actualScore` en secondes — évite d'ambiguïser une durée avec un score numérique libre, facilite l'affichage mm:ss.d.