From 17ae5f5e5bb47b8afec02e9629e8ec8873a36991 Mon Sep 17 00:00:00 2001 From: laurentbarontini Date: Sun, 10 May 2026 10:16:50 +0200 Subject: [PATCH] notes --- .../01B_fractions/NOTES_SESSION_2026-05-09.md | 149 ++++++++++++++++++ .../01B_fractions/README.md | 7 + 2 files changed, 156 insertions(+) create mode 100644 backend/contenus_pedagogiques/cycle_3/mathematiques/cm1/01_nombres_calcul_resolution/01B_fractions/NOTES_SESSION_2026-05-09.md diff --git a/backend/contenus_pedagogiques/cycle_3/mathematiques/cm1/01_nombres_calcul_resolution/01B_fractions/NOTES_SESSION_2026-05-09.md b/backend/contenus_pedagogiques/cycle_3/mathematiques/cm1/01_nombres_calcul_resolution/01B_fractions/NOTES_SESSION_2026-05-09.md new file mode 100644 index 0000000..93bcd84 --- /dev/null +++ b/backend/contenus_pedagogiques/cycle_3/mathematiques/cm1/01_nombres_calcul_resolution/01B_fractions/NOTES_SESSION_2026-05-09.md @@ -0,0 +1,149 @@ +# Notes de session - 2026-05-09 - Reprise qualite SVG fractions + +## Bilan de la session + +Session efficace de reprise qualite sur les SVG de lecon du sous-theme `01B_fractions`. + +Objectif principal : fiabiliser les fractions verticales dans les SVG, notamment les barres de fraction, les alignements, les espacements et les chevauchements. + +Les 8 SVG de lecon ont ete repris progressivement a partir des retours image par image. + +## Fichiers concernes + +Dossier : + +`backend/contenus_pedagogiques/cycle_3/mathematiques/cm1/01_nombres_calcul_resolution/01B_fractions/svg/` + +SVG de lecon : + +- `01_lire_ecrire_fraction_simple.svg` +- `02_representer_fraction_partage.svg` +- `03_fraction_sur_demi_droite_graduee.svg` +- `04_fraction_superieure_a_un.svg` +- `05_comparer_fractions_simples.svg` +- `06_encadrer_fraction_entre_entiers.svg` +- `07_additionner_soustraire_fractions_simples.svg` +- `08_fraction_d_une_quantite.svg` + +## Probleme initial + +Les SVG etaient visuellement mieux que la premiere generation, mais plusieurs erreurs persistaient : + +- fractions qui chevauchent des textes ou des figures ; +- numerateurs trop hauts ou trop proches des traits ; +- signes `+`, `-`, `=`, `<` mal centres par rapport aux traits de fraction ; +- fractions trop proches ou trop eloignees des signes ; +- elements qui sortent d'un panneau ; +- textes avec caracteres casses lors de certaines generations ; +- corrections ponctuelles non suffisantes pour garantir les futures fiches. + +## Decisions prises + +Le SVG reste le format de sortie, mais il ne doit plus etre traite comme une simple image libre. + +Pour les contenus mathematiques sensibles, il faut raisonner avec des primitives et des boites : + +- une fraction verticale est un composant reserve ; +- une expression mathematique est une suite de tokens ; +- chaque token expose une boite logique ; +- les panneaux imposent une zone utile ; +- le validateur doit refuser les collisions, pas seulement les erreurs XML. + +La note generale est dans : + +`SVG_CONTENT_ARCHITECTURE.md` + +## Regles stabilisees pour les fractions + +### Fraction verticale + +- Utiliser `fraction-g` pour toutes les fractions visibles. +- Ajouter un `data-box` sur chaque `fraction-g`. +- Interdire les fractions obliques de type `3/4` dans les SVG eleves. +- Barre horizontale obligatoire, visible et separee des chiffres. +- Numerateur et denominateur centres sur la barre. +- Equilibrer optiquement la fraction autour du trait, pas seulement avec une symetrie de baseline SVG. + +### Anti-chevauchement + +- Une fraction reserve sa boite complete. +- Aucun texte, signe, figure, point, bande, disque ou autre fraction ne doit intersecter cette boite. +- Les fractions posees pres d'une figure doivent etre dans une zone mathematique separee. +- Quand une nouvelle ligne ou un nouveau token est ajoute, verifier la place disponible avec une marge suffisante par rapport aux formes deja presentes. + +### Operations + +- Chaque signe est un token separe. +- Chaque entier isole dans une operation est un token separe. +- Ne pas grouper `= 1 +`, `= 2`, `2 <`, `< 3` dans un seul texte lorsque la ligne contient des fractions. +- Garder des ecarts visuels constants entre les tokens d'une operation. +- Les signes sont centres sur l'axe des traits de fraction. +- Les signes de comparaison sont au milieu de l'espace entre les fractions. + +### Panneaux + +- Un element ne doit pas sortir de sa bulle ou de son panneau. +- Les textes longs doivent etre raccourcis, passes en `small` ou coupes sur deux lignes. +- Il faut conserver une marge perceptible, meme si le SVG est techniquement valide. + +## Validateur ajoute / renforce + +Fichier : + +`backend/tools/validate_svg_quality.py` + +Fonctions principales ajoutees ou renforcees : + +- detection de fractions obliques ; +- detection de mojibake ou caracteres de remplacement suspects ; +- controle de structure `fraction-g` ; +- controle de `data-box` ; +- controle de collisions autour des fractions ; +- controle de confinement dans les panneaux ; +- controle des espacements autour des barres de fraction ; +- validation possible avec `--warnings-as-errors`. + +Commande de reference : + +```powershell +& C:\Users\baron\AppData\Local\Programs\Python\Python313\python.exe backend\tools\validate_svg_quality.py backend\contenus_pedagogiques\cycle_3\mathematiques\cm1\01_nombres_calcul_resolution\01B_fractions\svg --warnings-as-errors +``` + +Resultat final de la session : + +```text +SVG controles: 8 | erreurs: 0 | warnings: 0 +``` + +Recherche finale des caracteres casses sur les SVG de lecon : aucun resultat. + +## Point important pour la suite + +Les regles sont maintenant documentees et outillees, mais elles ne remplacent pas encore une vraie generation structuree. + +Pour les futures fiches, eviter de produire directement du SVG brut. Idealement, generer : + +1. une description structuree des zones ; +2. des tokens mathematiques ; +3. des primitives controlees ; +4. le SVG final ; +5. une validation automatique. + +## Prochaine reprise + +La prochaine session doit repartir sur les JSON ou des commentaires auront ete ajoutes. + +Priorites annoncees : + +1. relire les JSON commentes ; +2. valider les parcours ; +3. valider le diagnostic ; +4. valider la lecon ; +5. garder en tete que les SVG fractions de lecon sont proches du niveau attendu, mais que les futures generations doivent passer par les nouvelles regles. + +## A ne pas oublier + +- Ne pas reprendre les SVG fractions en mode correction ponctuelle sans relancer le validateur. +- Si un nouveau SVG contient une fraction, lancer le validateur avant revue utilisateur. +- Les exercices SVG existants peuvent encore remonter des warnings de `data-box` manquant si on valide tout `backend/contenus_pedagogiques`. +- Le lot de lecons `01B_fractions/svg` est le lot de reference propre pour les nouvelles regles. diff --git a/backend/contenus_pedagogiques/cycle_3/mathematiques/cm1/01_nombres_calcul_resolution/01B_fractions/README.md b/backend/contenus_pedagogiques/cycle_3/mathematiques/cm1/01_nombres_calcul_resolution/01B_fractions/README.md index 57da9f3..9d28199 100644 --- a/backend/contenus_pedagogiques/cycle_3/mathematiques/cm1/01_nombres_calcul_resolution/01B_fractions/README.md +++ b/backend/contenus_pedagogiques/cycle_3/mathematiques/cm1/01_nombres_calcul_resolution/01B_fractions/README.md @@ -82,6 +82,13 @@ Decision : - utiliser un composant de fraction stable, avec espacements imposes et controles visuels ; - ne pas assimiler definitivement ces SVG tant que la reprise n'est pas validee. +Reprise qualite du `2026-05-09` : + +- notes detaillees : `NOTES_SESSION_2026-05-09.md` ; +- architecture et regles SVG : `SVG_CONTENT_ARCHITECTURE.md` ; +- validateur : `backend/tools/validate_svg_quality.py` ; +- commande de reference : valider `svg/` avec `--warnings-as-errors`. + ## Contextes dynamiques generes Phase 4A : 24 contextes dynamiques par card generes dans `card_contexts/`.