← KermicLab

trigoLab → KermicLab · version 2 · novembre 2026

Feuille de route

Transformer un laboratoire de trigonométrie en une plateforme d'apprentissage multi-matières, personnalisée et familiale, sans renoncer à ce qui fait KermicLab : des pages déterministes, servies sans token, et aucune donnée personnelle par défaut.

Synthèse

On ne repart pas de zéro : le catalogue, le gabarit de notion, la progression locale et le chat existent déjà. La suite consiste à structurer (un référentiel de notions reliées par leurs prérequis), à personnaliser localement (parcours et cahier de vacances dans le navigateur, sans compte), puis seulement à ouvrir les comptes familles et le tuteur IA, chacun derrière un point de contrôle humain (juridique pour les comptes, budget pour l'IA).

  1. FiabiliserUne CI qui bloque vraiment et une relecture pédagogique tracée des 170+ notions.
  2. StructurerPrérequis, compétences et niveaux décrits dans chaque notion, vérifiés par la CI.
  3. PersonnaliserParcours, révisions et cahier de vacances calculés dans le navigateur, explicables.
  4. AccompagnerComptes familles et tuteur IA, quand le cadre juridique et le budget sont en place.

Principe directeur. KermicLab doit rester entièrement utilisable sans IA et sans compte. L'IA améliore l'accompagnement ; le compte permet de retrouver sa progression ailleurs. Aucun des deux n'est indispensable pour apprendre.

Où en est-on vraiment

La première version de cette feuille de route décrivait un projet « centré sur la trigonométrie ». Le dépôt est en réalité plus avancé : plusieurs étapes prévues pour plus tard sont déjà faites, et la roadmap doit partir de là.

CapacitéÉtatCe qu'il reste
Catalogue multi-matièresEn ligne 170+ notions : maths, physique-chimie, SVT, histoire, géographie, EMC, philosophie, français, SESRelecture pédagogique systématique, métadonnées de prérequis
Gabarit de notion (contenu.json → page)En ligne ADR 0011En faire le contrat officiel des « labs » : événements, exercices notés
Cercle trigonométriquev1.4 3 méthodes, modes Explorer / Apprendre / JouerMode Comparer (v1.5), hors ligne (v2.0)
Routage déterministe et chatEn ligne zéro token sur le catalogue, repli sans clé APIClé API avec plafond quand un budget existe (ADR 0006)
Tableau de bord, pseudo, progressionEn ligne local, session ou mémorisé (ADR 0012)Notion de maîtrise et de révision, au-delà de « notion vue »
Comptes parent et profils élèvesProposé ADR 0010, code OAuth en place, désactivéValidation juridique (RGPD, consentement des moins de 15 ans), AIPD
KPI anonymes, sauvegardesEn ligne D1 + R2, ni IP ni texteIndicateurs pédagogiques agrégés
Contrôle qualité des pagesTechnique : fait sécurité (check:pages), routage, tests navigateur de chaque notion (onglets, CSP, mobile)Relecture pédagogique outillée : aujourd'hui 100 % humaine et sans trace

Conséquence : le risque principal n'est plus de « généraliser la trigonométrie », mais de garantir la qualité d'un catalogue déjà large, destiné à des mineurs, et de lui donner une structure (prérequis, maîtrise) pour que la personnalisation soit possible.

Principes directeurs

Les phases

Les phases sont ordonnées par dépendance. Les phases 2 et 3 peuvent avancer en parallèle de la préparation juridique de la phase 4, qui prend du temps et ne dépend pas du code.

  1. 0Socle fiableMaintenant

    Objectif : pouvoir tout faire évoluer sans casser ce qui est en ligne.

    • Protéger main : CI obligatoire avant fusion (action manuelle du propriétaire).
    • Les tests navigateur couvrent déjà chaque notion du gabarit : les appliquer aussi aux pages écrites à la main et au catalogue privé, et en faire un contrôle obligatoire de la PR.
    • Grille de relecture pédagogique (exactitude, progression collège → lycée, adaptation à l'âge) et statut « relue » dans chaque fiche, appliqués d'abord aux notions les plus consultées.
    • Versions séparées : plateforme (package.json), notion (fiche.md), application du cercle.
    • Migrations D1 versionnées et test de fumée après déploiement, avec retour arrière.

    Condition de sortie : une PR qui casse une page du catalogue est bloquée par la CI ; un déploiement raté est détecté et annulé automatiquement ; les notions les plus consultées sont marquées « relues ».

  2. 1Référentiel et contrat des labsMaintenant

    Objectif : décrire chaque notion de façon structurée, pour qu'un programme puisse raisonner dessus.

    • Champs ajoutés à fiche.md : prerequis, competences, niveaux normalisés (cycle 3, cycle 4, seconde, première, terminale), duree estimée.
    • Graphe de prérequis vérifié en CI : identifiants existants, aucun cycle, niveaux cohérents.
    • Contrat d'événements des pages : une page autonome n'a pas d'accès réseau (connect-src 'none') ; elle signale démarré, indice demandé, réponse, terminé à la page qui l'affiche par postMessage, avec un schéma versionné. C'est la page d'accueil qui enregistre.
    • Exercices du gabarit notés de façon déterministe (réponse attendue, tolérance, erreur fréquente associée).
    • Le cercle trigonométrique devient la première page conforme de bout en bout : il sert de référence.

    Condition de sortie : ajouter une notion, avec ses prérequis et ses exercices notés, se fait par un dossier et une CI verte, sans toucher au code de la plateforme.

  3. 2Parcours et cahier de vacances, sans compteEnsuite

    Objectif : une vraie personnalisation, entièrement dans le navigateur, donc sans enjeu de données.

    • Maîtrise par notion : non commencée → découverte → en cours → maîtrisée, puis à revoir quand la révision est due.
    • Recommandation déterministe : prochaine notion dont les prérequis sont maîtrisés, ou révision due. Chaque proposition affiche sa raison (« parce que tu maîtrises les fractions »).
    • Révision espacée simple (boîtes de Leitner) branchée sur le défi express existant.
    • Cahier de vacances : niveau, période, rythme → diagnostic court → planning jour par jour. Une absence recalcule le planning sans pénalité ni message culpabilisant.
    • Export et import de la progression en fichier, pour changer d'appareil sans compte.

    Condition de sortie : un élève peut suivre un cahier de vacances complet sur une matière et un niveau, sans compte et sans qu'aucune donnée le concernant ne quitte son navigateur.

    Une journée type du cahier de vacances (20 à 30 minutes)
    ÉtapeActivitéBut
    1Révision courte (2 à 3 questions dues)Rappel actif
    2Notion du jour, niveau adaptéComprendre
    3Manipulation dans la page interactiveExpérimenter
    4Exercices notésAppliquer
    5Mini-bilan et badgeValider, se motiver
  4. 3Tuteur bornéEnsuite · budget requis

    Objectif : aider l'élève bloqué, sans lui donner la réponse et sans devenir la source de vérité.

    • D'abord sans IA : indices gradués rédigés dans contenu.json (3 niveaux par exercice). Ils restent la réponse par défaut et le repli quand l'IA est indisponible.
    • Puis avec IA, une fois la clé API et son plafond de dépense en place : reformulation et dialogue socratique, avec le contexte de la notion, de l'exercice, de l'erreur et des indices déjà donnés.
    • Actions limitées : reformuler, questionner, donner l'indice suivant, ouvrir une page du catalogue.
    • Jeu de dialogues de référence évalué automatiquement (exactitude, ne donne pas la réponse, ton adapté à l'âge, aucune donnée personnelle demandée, résistance aux injections).
    • Budget quotidien global, coupe-circuit, aucun texte de conversation conservé.

    Condition de sortie : le jeu d'évaluation passe en CI, le coût par session aidée est mesuré et sous le plafond, et couper l'IA ne casse aucun parcours.

  5. 4Comptes et famillesAprès validation juridique

    Objectif : retrouver sa progression sur plusieurs appareils et permettre au parent d'accompagner.

    • Préalable, à lancer dès maintenant en parallèle : RGPD niveau 1, AIPD, texte de consentement parental pour les moins de 15 ans, validation juridique.
    • Compte parent (OAuth déjà codé), profils élèves sans connexion autonome, tranche d'âge plutôt que date de naissance (ADR 0010).
    • Consentement versionné et révocable, stocké avec sa version.
    • Synchronisation de la progression locale, sur action explicite (« enregistrer ma progression dans le compte »).
    • Tableau de bord parent agrégé : notions travaillées, difficultés persistantes, suggestions d'accompagnement.
    • Export et suppression du compte en un geste, effacement en cascade.

    Condition de sortie : AIPD validée, parcours complet testé (création, consentement, synchronisation, export, suppression) et aucune donnée d'enfant accessible sans le compte parent.

  6. 5Fabrique de contenusPlus tard

    Objectif : produire et maintenir des notions de qualité plus vite que le catalogue ne grandit.

    • Préparation de notions candidates par IA à partir des issues maquette-manquante, relecture humaine obligatoire.
    • Prévisualisation de chaque PR de notion, grille de relecture intégrée à la revue.
    • Traductions (anglais d'abord) avec le même circuit de validation.
    • Indicateurs pédagogiques agrégés : où les élèves bloquent, quels indices servent, quelles notions sont abandonnées.

    Condition de sortie : le délai entre une demande non couverte et une notion publiée et relue est mesuré, et il diminue.

  7. 6Options conditionnellesSi le besoin est prouvé

    Chaque option a un déclencheur : on ne la lance pas avant.

    • Application hors ligne (PWA) — quand une part significative des visites vient du mobile avec reprise de session. Déjà prévue pour le cercle (v2.0).
    • Recherche sémantique — quand le routage par mots-clés laisse trop de questions sans page alors qu'une notion existe.
    • Espace enseignant et classes — après les familles, et après un nouvel avis juridique.
    • Personnalisation statistique — seulement si les données agrégées montrent un gain sur le moteur déterministe.
    • Application native — seulement si la PWA ne suffit pas.

Piste parallèle — cercle trigonométrique. v1.5 : mode Comparer (deux méthodes côte à côte, résultat commun vérifié). v2.0 : hors ligne. Ces versions servent aussi de banc d'essai au contrat d'événements de la phase 1.

Modèle pédagogique

Matière
└── Domaine
    └── Notion (une page, collège → lycée)
        ├── niveaux dépliables (intuition → formel)
        ├── prérequis        → autres notions
        ├── compétences
        ├── exercices notés  → erreurs fréquentes → indices gradués
        ├── page interactive → événements (postMessage)
        └── mise en situation

La notion reste l'unité : une page autonome couvrant plusieurs niveaux, comme aujourd'hui. On n'introduit pas de niveau « chapitre » tant qu'il n'apporte rien au parcours.

Exemple de fiche enrichie (les nouveaux champs sont facultatifs, la CI les vérifie quand ils sont présents) :

id: fractions
titre: Les fractions
sujet: maths/nombres
version: 1.2.0
niveaux: [cycle-3, cycle-4]
prerequis: [nombres-decimaux]
competences: [comparer-fractions, simplifier, additionner-fractions]
duree: 20

Tuteur IA : les garde-fous

Ce qu'il reçoit

  • La notion, l'exercice et le niveau visé
  • Le contenu validé de la page
  • L'erreur commise et les indices déjà donnés
  • Une tranche d'âge, jamais d'identité

Ce qu'il ne fait jamais

  • Noter ou valider seul une maîtrise
  • Demander ou retenir une donnée personnelle
  • Poser un diagnostic médical ou psychologique
  • Conserver le texte de la conversation

Modèle utilisé : celui du chat (rapide et économique), avec modération en entrée et en sortie, plafond de dépense global et coupe-circuit. Le choix d'un modèle plus puissant ne se fait que sur mesure, à partir du jeu d'évaluation.

Familles et données

Architecture et données

Un seul Worker Cloudflare, organisé en modules, reste la cible. Les pages restent des fichiers autonomes servis tels quels.

Navigateur : tableau de bord + pages autonomes (iframe isolée)
   │  progression, maîtrise, parcours  → stockage local
   │  événements des pages             → postMessage → tableau de bord
   ▼
Worker unique : catalogue · routage · chat / tuteur · comptes · KPI
   │
   ├── Git    sources des notions, schémas, historique
   ├── R2     pages publiées, sauvegardes, exports
   └── D1     KPI anonymes · comptes, profils, consentements, progression synchronisée
Tables à ajouter (noms en français, comme le reste du code)
PhaseTables
4 — comptes (ADR 0010)comptes, eleves, consentements
4 — progression synchroniséemaitrises, revisions, parcours, tentatives (résultat seulement, jamais de texte libre)
4 — traçabilitéjournal_acces (actions sur les données d'un enfant)

Avant la phase 4, aucune nouvelle table n'est nécessaire : le référentiel vit dans Git, la progression dans le navigateur.

Comment on mesure

Des indicateurs agrégés et anonymes uniquement, déjà compatibles avec les KPI actuels.

IndicateurPourquoiPhase
Part des questions servies par le catalogueCouverture, coût en tokensDéjà mesuré
Notions marquées « relues »Qualité du contenu0
Notions avec prérequis renseignésStructure du référentiel1
Exercices réussis après un indiceEfficacité des indices2–3
Journées de cahier de vacances terminéesEngagement2
Coût IA par session aidéeSoutenabilité3
Délai demande → notion publiéeCapacité de production5

Risques

RisqueEffetParade
Erreur de contenu dans une notionUn enfant apprend une chose fausseGrille de relecture, signalement en un clic, version de notion corrigeable vite
Comptes ouverts sans cadre juridiqueNon-conformité, perte de confiancePhase 4 bloquée tant que l'AIPD n'est pas validée
Coût de l'IA hors de contrôleArrêt du servicePlafond de dépense, coupe-circuit, repli déterministe
Tuteur qui donne la réponse ou dériveApprentissage court-circuitéJeu d'évaluation en CI, actions limitées
Catalogue qui grandit plus vite que la relectureQualité inégalePriorité à la qualité sur le volume ; statut « relue » par notion
Recommandations opaquesÉlève ou parent perduRaison affichée pour chaque proposition

Ce qu'on ne fait pas

Notes de révision

Cette version reprend la proposition initiale « trigoLab → KermicLab » et la corrige sur les points suivants.

Proposition initialeVersion révisée
Audit d'un projet « centré sur la trigonométrie »Audit à jour : 170+ notions, gabarit, progression locale et comptes déjà amorcés
Progression locale et catalogue multi-matières prévus au MVPDéjà livrés : retirés des phases à venir
Cahier de vacances après le graphe de prérequis, comptes juste aprèsCahier de vacances entièrement local, avant les comptes : forte valeur, aucun enjeu de données
Phases sans condition de sortie pour la plupartUne condition mesurable et un point de contrôle humain par phase
Labs qui émettent des événements, sans dire commentContrat postMessage versionné, compatible avec la CSP sans réseau des pages
Tables et API en anglaisNoms en français, alignés sur l'ADR 0010
Qualité du contenu peu présentePhase 0 dédiée : relecture pédagogique tracée ; les tests techniques existants deviennent bloquants
Coût et mode zéro budget absentsIA conditionnée à un plafond de dépense, repli sans IA garanti
Options long terme sans critèreChaque option a un déclencheur explicite

Roadmap (English summary)

KermicLab grows from trigoLab without a rewrite. Phase 0 makes quality enforceable (blocking CI on the existing browser tests, tracked pedagogical review). Phase 1 adds structure: prerequisites and skills in each concept, checked by CI, and a versioned postMessage event contract for interactive pages. Phase 2 brings learning paths, spaced review and a holiday workbook that run entirely in the browser, with no account. Phase 3 adds a bounded AI tutor once an API budget with a spending cap exists, always backed by written hints. Phase 4 opens parent accounts and child profiles only after legal validation and a DPIA. Later phases cover a content pipeline and options (offline app, semantic search, teacher spaces) that start only when a measured need triggers them. KermicLab must always work without AI and without an account.

← KermicLab