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.
- Local d'abord
- Explicable
- Sans IA obligatoire
- Public mineur
- Zéro budget au départ
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).
- FiabiliserUne CI qui bloque vraiment et une relecture pédagogique tracée des 170+ notions.
- StructurerPrérequis, compétences et niveaux décrits dans chaque notion, vérifiés par la CI.
- PersonnaliserParcours, révisions et cahier de vacances calculés dans le navigateur, explicables.
- 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é | État | Ce qu'il reste |
|---|---|---|
| Catalogue multi-matières | En ligne 170+ notions : maths, physique-chimie, SVT, histoire, géographie, EMC, philosophie, français, SES | Relecture pédagogique systématique, métadonnées de prérequis |
Gabarit de notion (contenu.json → page) | En ligne ADR 0011 | En faire le contrat officiel des « labs » : événements, exercices notés |
| Cercle trigonométrique | v1.4 3 méthodes, modes Explorer / Apprendre / Jouer | Mode Comparer (v1.5), hors ligne (v2.0) |
| Routage déterministe et chat | En ligne zéro token sur le catalogue, repli sans clé API | Clé API avec plafond quand un budget existe (ADR 0006) |
| Tableau de bord, pseudo, progression | En 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èves | Proposé ADR 0010, code OAuth en place, désactivé | Validation juridique (RGPD, consentement des moins de 15 ans), AIPD |
| KPI anonymes, sauvegardes | En ligne D1 + R2, ni IP ni texte | Indicateurs pédagogiques agrégés |
| Contrôle qualité des pages | Technique : 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
- Déterminisme d'abord. Une question couverte par le catalogue donne toujours la même page, sans appel à un modèle. Les recommandations suivent la même règle : mêmes données, même proposition, avec la raison affichée.
- Local d'abord. Tout ce qui peut fonctionner dans le navigateur (progression, maîtrise, parcours, cahier de vacances) y fonctionne. Le serveur ne sert qu'à synchroniser, et seulement avec un compte.
- Points de contrôle humains. Juridique avant les comptes, budget avant l'IA, relecture avant publication d'une notion. Une phase ne démarre pas tant que son point de contrôle n'est pas levé ; les autres avancent.
- Une phase = une condition de sortie mesurable. Pas de date imposée : l'ordre et les critères comptent plus que le calendrier.
- Pas de complexité anticipée. Un seul Worker, D1 et R2 tant que le besoin ne prouve pas le contraire.
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.
-
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 ».
- Protéger
-
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,niveauxnormalisés (cycle 3, cycle 4, seconde, première, terminale),dureeestimé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 parpostMessage, 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.
- Champs ajoutés à
-
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) Étape Activité But 1 Révision courte (2 à 3 questions dues) Rappel actif 2 Notion du jour, niveau adapté Comprendre 3 Manipulation dans la page interactive Expérimenter 4 Exercices notés Appliquer 5 Mini-bilan et badge Valider, se motiver -
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.
- D'abord sans IA : indices gradués rédigés dans
-
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.
-
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.
- Préparation de notions candidates par IA à partir des issues
-
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
- Collecter le minimum : pseudo ou prénom affiché, tranche d'âge, langue. Pas de nom de famille, pas de date de naissance, pas d'école.
- Privé par défaut, sans publicité ni revente, sans classement entre enfants.
- Le parent voit des tendances, pas une surveillance : notions travaillées et difficultés, pas le détail minute par minute ni les échanges avec le tuteur.
- Consentement versionné et révocable ; export et suppression accessibles en un geste.
- Séparation stricte entre KPI anonymes et données de compte : aucune clé ne relie les deux.
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
| Phase | Tables |
|---|---|
| 4 — comptes (ADR 0010) | comptes, eleves, consentements |
| 4 — progression synchronisée | maitrises, 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.
| Indicateur | Pourquoi | Phase |
|---|---|---|
| Part des questions servies par le catalogue | Couverture, coût en tokens | Déjà mesuré |
| Notions marquées « relues » | Qualité du contenu | 0 |
| Notions avec prérequis renseignés | Structure du référentiel | 1 |
| Exercices réussis après un indice | Efficacité des indices | 2–3 |
| Journées de cahier de vacances terminées | Engagement | 2 |
| Coût IA par session aidée | Soutenabilité | 3 |
| Délai demande → notion publiée | Capacité de production | 5 |
Risques
| Risque | Effet | Parade |
|---|---|---|
| Erreur de contenu dans une notion | Un enfant apprend une chose fausse | Grille de relecture, signalement en un clic, version de notion corrigeable vite |
| Comptes ouverts sans cadre juridique | Non-conformité, perte de confiance | Phase 4 bloquée tant que l'AIPD n'est pas validée |
| Coût de l'IA hors de contrôle | Arrêt du service | Plafond de dépense, coupe-circuit, repli déterministe |
| Tuteur qui donne la réponse ou dérive | Apprentissage court-circuité | Jeu d'évaluation en CI, actions limitées |
| Catalogue qui grandit plus vite que la relecture | Qualité inégale | Priorité à la qualité sur le volume ; statut « relue » par notion |
| Recommandations opaques | Élève ou parent perdu | Raison affichée pour chaque proposition |
Ce qu'on ne fait pas
- Pas de microservices ni de base vectorielle avant un besoin démontré.
- Pas d'application native avant que la version web hors ligne ait montré ses limites.
- Pas d'apprentissage automatique sur les données des enfants pour personnaliser.
- Pas de classement entre élèves, pas de notifications culpabilisantes.
- Pas de compte enfant autonome au démarrage.
- Pas de publicité.
Notes de révision
Cette version reprend la proposition initiale « trigoLab → KermicLab » et la corrige sur les points suivants.
| Proposition initiale | Version 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 MVP | Déjà livrés : retirés des phases à venir |
| Cahier de vacances après le graphe de prérequis, comptes juste après | Cahier de vacances entièrement local, avant les comptes : forte valeur, aucun enjeu de données |
| Phases sans condition de sortie pour la plupart | Une condition mesurable et un point de contrôle humain par phase |
| Labs qui émettent des événements, sans dire comment | Contrat postMessage versionné, compatible avec la CSP sans réseau des pages |
| Tables et API en anglais | Noms en français, alignés sur l'ADR 0010 |
| Qualité du contenu peu présente | Phase 0 dédiée : relecture pédagogique tracée ; les tests techniques existants deviennent bloquants |
| Coût et mode zéro budget absents | IA conditionnée à un plafond de dépense, repli sans IA garanti |
| Options long terme sans critère | Chaque 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.