Files
GameTime/.ideai/memory/gametime-ux-score-chrono.md
Blomios c83906332d docs(ideai): met à jour la mémoire et les tickets après la préparation sync
Ajoute les notes mémoire sur l'architecture et l'UX du score
chronométré, clôture le ticket #12, ajoute le cadrage des tickets
#24 à #31.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 00:54:04 +02:00

42 lines
3.4 KiB
Markdown

---
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.