Agent Directeur sportif¶
Description : Sports Director — trouve des courses organisées (trail ou route) adaptées à la demande et à l'historique de l'athlète, et conseille sur le prochain objectif et le calendrier de saison (objectif principal, courses de préparation et courses plaisir). Chaque course vient du web, jamais inventée.
Quelle course, et quand ? — L'agent directeur sportif : l'historique réel avant toute recherche, la faisabilité dite d'emblée, des courses sourcées sur le web et jamais inventées, un calendrier de saison calculé, l'avis médical qui l'emporte, et un objectif proposé sans jamais être écrit à votre place.
Rôle¶
Le staff prépare très bien un objectif déjà choisi : le coach construit l'entraînement, le stratège de course prépare le jour J. L'agent sports-director s'occupe de l'étape d'avant : quelle course, et quand ?
| Agent | Décide |
|---|---|
sports-director |
Quelle course et quand |
coach |
Comment s'entraîner pour y arriver |
course-strategist |
Comment la courir le jour J |
Exemples de demandes :
- « Tu me conseilles quoi comme prochain objectif ? »
- « Je cherche un trail à faire entre amis en juin, 80 km et 1500 D+. »
- « Aide-moi à planifier ma fin de saison. »
Responsabilités¶
Prochain objectif¶
L'agent lit d'abord ce que vous avez réellement couru : plus longue sortie,
plus gros D+, volume des dernières semaines, charge récente et rapports de course
(scripts/arc_index.py history-summary), score Trail Shape, blessures en cours.
Si rien n'a été synchronisé depuis plus d'une semaine, il le dit : la charge
affichée reflète alors le trou de synchronisation, pas du repos. Il propose ensuite une marche suivante
réaliste, souvent en deux options (« consolider » ou « monter d'une marche »),
avec le nombre de semaines de préparation nécessaire. La recherche de courses ne
vient qu'après.
Recherche sous contraintes¶
- Extrait la période, la zone (par défaut le lieu du profil), la distance, le D+.
- Faisabilité d'abord : si la distance demandée est hors de portée à la date visée, il le dit clairement dès les premières lignes, faits à l'appui, avec l'horizon où elle deviendrait réaliste. Il ne refuse pas pour autant : pour une sortie entre amis, il cherche le même événement avec un format adapté (même jour, même arrivée).
- Le format proposé à la place passe la même vérification : si c'est une vraie marche à franchir, il dit laquelle (souvent le D+), à quelle condition d'entraînement, et quel format de repli.
- Il remet en question une demande incohérente, une seule fois (ex. 1500 m D+ sur 80 km, c'est un trail très roulant).
Rôles des courses¶
| Rôle | Sens |
|---|---|
| Objectif principal | La course pour laquelle tout le plan est construit, avec un affûtage ; candidate pour planning/active_objective.md |
| Préparation | Une course qui sert l'objectif principal (terrain, durée, ravitaillement, premier dossard), placée hors de l'affûtage |
| Plaisir | Course pour l'ambiance ou sortie entre amis, courue sous l'effort de course |
Les écarts entre courses et le jour de la semaine de chaque date sont calculés par un script Python, jamais de tête. Une course annoncée un jour de semaine est signalée comme suspecte.
Les règles de récupération et d'affûtage sont pour l'instant des règles provisoires, annoncées comme telles. Elles sont fixes, pour que deux questions ne reçoivent pas deux réponses différentes. La taille d'une course se mesure en km-effort (distance en km + D+ en m / 100) :
| Course (km-effort) | Récupération avant une course courue à fond | Affûtage si objectif principal |
|---|---|---|
| jusqu'à 15 | 2 semaines | 10 jours |
| 15 à 30 | 3 semaines | 2 semaines |
| 30 à 60 | 4 semaines | 2 semaines |
| plus de 60 | 6 semaines | 3 semaines |
Aucune course pendant l'affûtage de l'objectif principal, même une course Plaisir. Une course de Préparation doit avoir fini sa récupération avant le début de l'affûtage. Une course Plaisir demande 1 semaine avant la course suivante courue à fond.
La course recommandée est toujours une course où l'on peut encore s'inscrire. Une course complète n'apparaît qu'en second, « si un dossard se libère ».
Sources et garde-fous¶
Il n'existe pas d'API publique de calendrier de courses. L'agent utilise la
recherche web de l'environnement (WebSearch / WebFetch sous Claude Code,
webfetch sous opencode), comme vous le feriez vous-même.
Dans le chat du tableau de bord, la recherche web est permise et les grands
calendriers (Kikourou, Betrail, Finishers, Ahotu, FFA…) se consultent
librement ; le site officiel d'une course, comme ITRA et UTMB (qui portent
votre indice), affiche une carte d'approbation avec son adresse complète. Une adresse du réseau local n'est
jamais joignable. Réglage : section [web] de config/chat-policy.toml.
- Aucune course inventée : chaque course vient d'une page consultée pendant la session.
- Date vérifiée sur le site officiel de l'organisateur, pour l'édition à venir ; sinon « à confirmer », avec la date de l'édition précédente.
- Une valeur lue sur un agrégateur est étiquetée avec sa source (« calendrier Finishers »), jamais présentée comme officielle.
- Distance, D+, prix ou état des inscriptions absents : « non trouvé », jamais complétés de mémoire. Un bouton « S'inscrire » visible ne prouve pas que les inscriptions sont ouvertes.
- Recherche web indisponible : l'agent le dit et vous demande des noms ou des liens de courses.
Consultation du staff¶
L'agent peut consulter un autre agent avant de recommander, dans trois cas
seulement, et uniquement si cet agent est dans [agents].enabled :
medical: obligatoire quand le profil déclare une blessure, des antécédents ou une zone fragile, et que la course recommandée est plus longue que votre plus longue sortie, a plus de D+ que votre plus grosse sortie, ou ajoute une contrainte nouvelle (nuit, longues descentes, terrain technique). Cela vaut aussi pour un format de remplacement. Son avis l'emporte.coach: quand la recommandation dépend d'une condition d'entraînement (« 3 séances par semaine dès l'hiver »), pour la course finale seulement.course-strategist: quand vous hésitez entre une ou deux finalistes dont le parcours est disponible.
Lancé lui-même comme sous-agent, il ne peut pas en lancer d'autres : il note alors la question (« À valider avec le coach : … ») pour la session principale.
Ce qu'il ne fait pas¶
- Il ne modifie jamais
planning/active_objective.mdniplanning/Runner_Profile.md: il propose les valeurs à reporter. - Il ne persiste rien pour l'instant : le contrat de données n'a pas encore de type pour une sélection de courses.
- Il ne pousse rien vers Garmin ou intervals.icu.
- Il ne tourne jamais en headless (
garmin-daily-syncne l'appelle pas).
Fichier source¶
agents/sports-director.md
