Rattrapage de l'état runtime IdeA (nouveaux tickets #80-#91, agents coach/commercial, skills, permissions MCP) resté non commité depuis la clôture du ticket #79. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4.0 KiB
Objectif
Produire des fiches de drills basket homogènes, directement exploitables par
DevBackend pour créer les seed data GameTime (entités Exercise, Program,
WorkoutTemplate de lib/domain/entities.dart), sans aller-retour d'interprétation.
Ce skill est destiné à l'agent Coach, dans le cadre du ticket #80 — Bibliothèque de drills basket de démarrage + séance exemple modifiable, et réutilisable pour tout futur enrichissement de la bibliothèque de contenu basket.
Catégories à couvrir pour une bibliothèque de démarrage
- Shoot (tir extérieur, mi-distance)
- Lancers francs
- Dribble / ball-handling
- Finition (layups, floaters, contact)
- Conditionnement (endurance, explosivité spécifique basket)
- Défense (individuelle, déplacements)
- Mobilité / échauffement
Une bibliothèque de démarrage complète vise au moins un drill par catégorie, sans obligation d'exhaustivité — mieux vaut peu de drills bien spécifiés que beaucoup de drills vagues.
Gabarit de fiche — un exercice (Exercise)
Pour chaque drill, remplir tous les champs suivants avant de le considérer prêt :
Nom : (court, concret, ex. "Lancers francs — série de 10")
Catégorie : (une des catégories ci-dessus)
Description : (2-4 phrases : geste, placement, objectif ; vocabulaire basket précis)
Matériel : (ballon / panier / cônes / chrono — jamais de matériel connecté ou de caméra)
Niveau conseillé : (debutant / intermediaire / tous niveaux)
Mesures activées (au moins une) :
- Temps (hasTimeMeasure) : oui/non — si oui, defaultTargetTimeSeconds
- Répétitions (hasRepsMeasure) : oui/non — si oui, defaultTargetReps
- Score (hasScoreMeasure) : oui/non
- scoreInputMode : manual | stopwatch
- si manual : scoreLabel (ex. "Paniers marqués"), scoreUnit (ex. "sur 10")
- defaultTargetScore ou defaultTargetScoreTimeMs selon le mode
Étapes (steps, optionnel — seulement si le drill a plusieurs phases distinctes) :
- Étape 1 : nom, type (time|reps), defaultTargetValue, score optionnel
- Étape 2 : ...
Média souhaité : image et/ou vidéo (décrire l'intention : ex. "photo du placement des
pieds" — ne pas fournir de fichier, c'est à DevBackend/DevFrontend de le résoudre)
Règles de cohérence à vérifier avant de livrer la fiche :
- Au moins une mesure activée.
- Si score en mode manuel :
scoreLabelETscoreUnitrenseignés. - Les cibles par défaut (
defaultTarget*) doivent avoir un sens réel pour un débutant raisonnable (pas de surcharge, pas de valeur arbitraire). - Si le drill a plusieurs phases nettement différentes (ex. échauffement puis
chronométré), utiliser
stepsplutôt que de forcer plusieurs mesures sur un seul exercice plat.
Gabarit de fiche — un programme (Program)
Nom : (ex. "Séance shoot & finition")
Repos par défaut entre séries (defaultRestSeconds) : (valeur réaliste, ex. 30-60s)
Exercices (dans l'ordre) :
1. [Nom exercice] — setsCount : X, mesures activées : [...], cibles : [...], repos
spécifique (restSecondsOverride) si différent du défaut
2. ...
Gabarit de fiche — une séance-modèle (WorkoutTemplate)
Nom : (ex. "Séance découverte basket")
Programmes inclus (dans l'ordre) : [Nom programme 1], [Nom programme 2], ...
Checklist finale avant de transmettre à Architect/DevBackend
- Au moins un drill par catégorie listée ci-dessus.
- Chaque fiche exercice respecte le gabarit et les règles de cohérence.
- Au moins un programme d'exemple cohérent (drills compatibles, ordre logique échauffement → technique → conditionnement).
- Au moins une séance-modèle d'exemple composée du/des programme(s).
- Rien ne dépasse le modèle de données actuel (
Exercise/Program/WorkoutTemplate/ExerciseStep) — sinon, remonter à Architect avant de livrer. - Aucun drill ne nécessite de matériel connecté, de caméra ou d'abonnement tiers.
- Le contenu reste éditable/supprimable : pas d'hypothèse de donnée protégée.