Aller au contenu
Riadh Mnasri
← Retour au blog
4 min de lecture

Croiser EcoleDirecte et FFE : ne proposer que des tournois compatibles avec l'école

Croiser EcoleDirecte et FFE : ne proposer que des tournois compatibles avec l'école

chess-tournament-finder trouve des tournois d'échecs homologués FFE près de chez moi. Ce qu'il ne dit pas, c'est si le tournoi trouvé tient vraiment dans l'agenda de mes enfants. Un tournoi un dimanche, aucun problème. Un tournoi sur plusieurs jours qui déborde sur la semaine, ça dépend entièrement de si on est en période scolaire ou en vacances, et ça, aucun skill ne le vérifiait.

Le problème concret#

En listant les tournois des Hauts-de-Seine pour préparer cet article, un exemple est tombé tout seul : le "23e Bois-Colombes Chess Master" est annoncé avec une seule date, le 26 décembre 2026. Rien dans cette date ne dit que le tournoi dure en réalité cinq jours, du samedi au mercredi. Par chance le 26 décembre tombe en vacances de Noël, donc aucun conflit. Mais rien dans le listing ne le garantissait a priori, et un autre tournoi à cheval sur une période scolaire aurait dû être écarté pour la même raison.

Deux MCP existent déjà chez moi pour répondre à des bouts de cette question : ffe-mcp pour les tournois, ecoledirecte-mcp pour les devoirs et les absences de mes enfants. Construits à des moments différents, pour des besoins différents, jamais pensés pour se parler. chess-tournament-fit est l'agent qui les fait parler.

Ce que lister_tournois ne dit pas#

Le premier réflexe aurait été de croire qu'une date de tournoi suffit à savoir s'il est compatible. Faux : l'outil lister_tournois de ffe-mcp renvoie une seule date par tournoi, celle du début. Pour le Bois-Colombes Chess Master, cette date c'est le 26 décembre. La durée réelle, "DU SAMEDI 26 AU MERCREDI 30 DÉCEMBRE 2026", n'existe que dans le champ announcement de details_tournoi, un bloc de texte libre pensé pour un joueur qui lit l'annonce, pas pour un programme qui la parse.

Le nombre de rondes n'aide pas non plus à deviner la durée : ce tournoi a 9 rondes réparties sur 5 jours, à 2 rondes par jour sauf le dernier. Un autre tournoi à 9 rondes pourrait tout aussi bien se jouer sur un week-end à 4-5 rondes par jour. Sans lire l'annonce, impossible de trancher. L'agent cherche donc une plage de dates explicite ou un horaire ronde par ronde dans ce texte, et classe le tournoi "durée non confirmée" plutôt que de deviner à partir du seul nombre de rondes quand cette information manque.

Pas de calendrier scolaire codé en dur#

Même règle que pour domain-expiry-check, qui interroge l'API Vercel à chaque exécution plutôt que de maintenir une liste de domaines qui se périmerait : les vacances scolaires sont récupérées à chaque lancement sur le site du ministère de l'Éducation nationale, jamais codées en dur dans l'agent. Elles changent chaque année, et une date fausse coûte plus cher qu'une date absente.

Seules les vacances de février et de printemps varient selon la zone (mes enfants sont en zone C). Noël, Toussaint et l'été sont les mêmes partout en France, mais l'agent va quand même chercher les dates exactes à chaque fois : "les mêmes chaque année" n'est vrai que sur le principe, pas sur les bornes précises.

Un tournoi d'un seul jour, samedi ou dimanche, est compatible par défaut, qu'on soit en période scolaire ou en vacances : pas de cours le week-end. Un tournoi qui déborde sur un jour de semaine n'est compatible que si toutes ses dates tombent dans une période de vacances confirmée. Sinon, il est écarté avec le motif écrit noir sur blanc : "chevauche des jours d'école".

Deux signaux indirects, pas un agenda complet#

ecoledirecte-mcp n'expose aucun outil d'emploi du temps ni de calendrier. Ce que j'ai à disposition, c'est consulter_devoirs et consulter_absences. Ça ne dit pas "l'enfant est libre ce jour-là", mais ça donne deux signaux utiles :

  • Un devoir ou une évaluation daté du jour de classe qui suit la fin du tournoi ajoute un flag "à vérifier", sans exclure le tournoi : c'est à moi de juger si c'est gênant, pas à l'agent de décider à ma place.
  • Une absence déjà enregistrée sur les dates du tournoi ajoute un flag "conflit" : signe possible d'un déplacement ou d'un empêchement déjà prévu ailleurs.

C'est la limite honnête de cet agent, et je préfère l'écrire noir sur blanc plutôt que de laisser croire à une vérification d'agenda complète : il détecte ce que ces deux outils rendent visible, pas ce qui n'y est pas.

Ce que ça généralise#

Les deux tiers de cet agent existaient déjà, chacun de son côté, avant même que l'idée de les croiser existe. ffe-mcp cherchait des tournois, ecoledirecte-mcp lisait des devoirs. Aucun des deux n'avait été pensé pour répondre à la question que l'autre pouvait éclairer.

La leçon générale n'est pas "construire plus d'outils", c'est que deux outils étroits et bien faits, construits pour des raisons complètement indépendantes, valent souvent plus assemblés après coup que n'importe quel outil unique conçu dès le départ pour tout faire. Le prix à payer, c'est de rester honnête sur ce que le croisement révèle vraiment, et ce qu'il se contente de supposer.