Skip to content

Fix(slides,#11508): debordement de la diapo « Exploration locale d'espaces continus » - #24200

Closed
jsboige wants to merge 1 commit into
mainfrom
fix/11508-l2-deck02
Closed

jsboige wants to merge 1 commit into
mainfrom
fix/11508-l2-deck02

Conversation

@jsboige

@jsboige jsboige commented Nov 2, 2026

Copy link
Copy Markdown
Owner

Grain: MED/slides — lane myia-po-2028:CoursIA — prev: MED/notebook-lean #24192

Summary

Axe L2 de #11508 (débordements visuels) sur le deck slides/02-resolution-problemes : une diapo débordait du cadre, sur 88.

La diapo « Exploration locale d'espaces continus » empile quatre sections H2, trois niveaux de sous-listes et un bloc Corpus de quatre liens. Son corps dépassait le bas de page et recouvrait le pied de page du thème — la dernière ligne du bloc Corpus et le pied « Intelligence(s) » étaient tronqués.

Mesure

Chaîne mesurée sur le deck 01 (PR #24152), rejouée ici dans un worktree neuf :

npm ci --prefix slides
slidev export slides/02-resolution-problemes/slides.md --format png --output <dir>
python scripts/notebook_tools/scan_slidev_overflow.py <dir> --json
Avant Après
Diapos exportées 88 88
Diapos en débordement 1 (diapo 48) 0
ink_ratio max 0,0138 (diapo 48) 0,0

Les 88 diapos ont été rendues dans les deux passes ; le scan ne signale rien d'autre.

Le scan ne conclut jamais seul : la diapo 48 a été rouverte à l'œil dans les deux passes. Avant, le corps mordait sur le pied de page ; après, le bloc Corpus se termine sur trois lignes et laisse le pied de page dégagé. Une seconde diapo dense (diapo 59, « Algorithme Minimax », la plus lourde du deck) a été recontrôlée à l'œil et tient.

Pourquoi resserrer plutôt que scinder

La diapo d'origine (extracted/content.md, PPTX slide 51) porte bien tout ce contenu sur une seule page. Scinder aurait cassé l'alignement 1:1 avec pptx-reference/ (93 rendus de référence pour 88 diapos rendues) et décalé la numérotation de la suite du deck. Le correctif est donc typographique et scopé à cette diapo.

Ce que le diff change

  • slides/02-resolution-problemes/slides.md : deux attributs de classe ajoutés (dense-list dense-list--tight, <small class="corpus-note">). Aucun texte retiré, aucune image touchée.
  • slides/02-resolution-problemes/style.css : deux règles, commentées avec la mesure et le motif du non-split.

Aucune autre diapo ne porte ces classes : la portée est celle de cette seule diapo.

Validation

  • Export PNG complet rejoué après la correction, 88/88 diapos, 0 erreur d'export.
  • Scan de débordement : 0 signalement.
  • Contrôle d'œil sur la diapo corrigée et sur la diapo la plus dense du deck.
  • Aucun notebook touché : C.2 / H.3 sans objet.

See #11508 — l'axe L2 du deck 02 ; les autres decks restent à couvrir.

🤖 Generated with Claude Code

…paces continus »

Le corps de la diapo 48/88 depassait le bas du cadre et recouvrait le pied
de page du theme : quatre sections H2, trois niveaux de sous-listes et un
bloc Corpus de quatre liens. C'etait le seul signalement du deck au scan.

La diapo d'origine (PPTX, slide 51) porte bien tout ce contenu sur une
seule page : la decouper casserait l'alignement 1:1 avec la reference, donc
on resserre la typographie au lieu de scinder. Aucun contenu retire.

Mesure : scan_slidev_overflow sur l'export PNG complet, 88 diapos.
Avant : 1 debordement, diapo 48, ink_ratio 0.0138.
Apres : 0 debordement, max ink_ratio 0.0. Diapo 48 rouverte a l'oeil apres
correction : bloc Corpus sur trois lignes, pied de page degage.

See #11508

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2028:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-11-02) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@jsboige

jsboige commented Nov 3, 2026

Copy link
Copy Markdown
Owner Author

Repliee dans #24152 (fournee diapos #11508, TASK ai-01 du 03/11 00:06Z suite au Concern user du 02/11 19:09Z). Le commit de cette branche y a ete cherry-pick sans conflit, contenu byte-identique (blob verifie). Branche conservee intacte sur le remote ; la review du deck se poursuit dans #24152.

@jsboige jsboige closed this Nov 3, 2026
myia-ai-01 pushed a commit that referenced this pull request Nov 3, 2026
…epli de #24200 #24209 #24217 #24235 #24236) (#24152)

* Fix(slides,#11508): 01-introduction -- deux diapos debordantes passees en layout dense

Audit de rendu L2 du deck 01-introduction, jamais mesure jusqu'ici : les 48
diapos exportees en PNG puis passees a scan_slidev_overflow.py. Six diapos
signalees, dont deux debordements reels confirmes a l'oeil.

- diapo 45 "Plan du cours" : le paragraphe explicatif etait coupe net en bas
  et chevauchait le pied de page.
- diapo 46 "Pour aller plus loin : Notebooks" : la derniere puce (IA
  Generative) etait tronquee de la meme facon.

Correctif : layout dense, le mecanisme de densite du theme ia101 deja employe
par les decks soeurs (35 fois dans 05-theorie-des-jeux, 12 dans 06 et 07,
jamais dans 01). Aucun CSS invente, aucun contenu retire.

Les quatre autres diapos signalees (28 a 31) sont des faux positifs de
l'instrument : schemas et bandes colorees pleine largeur, contenu entierement
dans le cadre -- verifie a l'oeil.

Controle : re-export et re-scan apres correctif, 45 et 46 revenues dans le
cadre et relues visuellement ; les quatre faux positifs sont inchanges.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Fix(slides,#11508): debordement de la diapo « Exploration locale d'espaces continus »

Le corps de la diapo 48/88 depassait le bas du cadre et recouvrait le pied
de page du theme : quatre sections H2, trois niveaux de sous-listes et un
bloc Corpus de quatre liens. C'etait le seul signalement du deck au scan.

La diapo d'origine (PPTX, slide 51) porte bien tout ce contenu sur une
seule page : la decouper casserait l'alignement 1:1 avec la reference, donc
on resserre la typographie au lieu de scinder. Aucun contenu retire.

Mesure : scan_slidev_overflow sur l'export PNG complet, 88 diapos.
Avant : 1 debordement, diapo 48, ink_ratio 0.0138.
Apres : 0 debordement, max ink_ratio 0.0. Diapo 48 rouverte a l'oeil apres
correction : bloc Corpus sur trois lignes, pied de page degage.

See #11508

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Fix(slides,#11508): 03-logique -- la diapo « Regles d'inference » debordait en bas

Balayage L2 du deck 03 : export PNG des 134 diapos puis
`scan_slidev_overflow.py` designe une seule diapo debordante, la 17.

La diapo empile cinq sections H2 et onze puces, plus la table des
equivalences logiques posee en absolu a droite. Sur le rendu, la
derniere section -- « Double negation » et sa puce -- tombait sous le
bas de page et recouvrait le pied de page du theme : le contenu etait
coupe, sans que rien ne le signale dans le source.

Le corps est enveloppe dans `dense-list`, la classe du theme qui
resserre deja les listes longues (deck 02, 06, S3, S8). Aucun contenu
n'est retire, aucune diapo n'est scindee : les cinq regles et leurs
onze puces restent sur la meme page, la table d'equivalences ne bouge
pas.

Le titre portait « infrence » ; il est corrige en « inference » sur la
ligne que ce correctif touche deja.

Mesure : 134 diapos exportees avant et apres, 1 debordement -> 0
(encre sur les 6 dernieres lignes : 6,99 % -> 0). Le differentiel des
PNG est verifie au sha256 : sur les 134, seul `17.png` change -- le
correctif ne touche aucune autre diapo.

See #11508

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Fix(slides,#11508): deck 06 -- six diapos debordaient le canvas, corrigees et re-mesurees

Balayage L2 du deck slides/06-apprentissage : export PNG des 124 diapos puis
scan_slidev_overflow.py. Le seuil par defaut de l'outil (0.01) rendait le deck
propre ; a 0.0005 sur 10 lignes de fond, six diapos debordaient reellement.

Defauts mesures et corriges (idiome `<style scoped>` + `:deep()` + `!important`,
deja utilise par les diapos 54/55/59/60) :

- 34 Methodes d'ensemble : le pseudo-code ADABOOST se coupait en plein
  `for k = 1 to K` (ink 0.0154) -> puces a 0.7em, figure plafonnee a 170px.
- 39 Reseaux a une couche : la 2e figure demarrait sous le canvas (ink 0.0068,
  sous le seuil par defaut car seule une bande centrale depassait) -> les deux
  figures passent en `img-grid` deux colonnes, hauteur auto.
- 42 Retropropagation : la courbe commencait sous le canvas (ink 0.0062) ->
  puces a 0.74em, figure plafonnee a 120px.
- 45 Auto-Encodeurs : le theme impose 300px de haut a chaque `.img-grid` alors
  qu'une rangee d'images en occupe 118, la 5e image demarrait sous le canvas
  (ink 0.0060) -> hauteur auto sur les deux grilles, les 6 images tiennent.
- 53 Programmation logique / GNN : `img-grid cols3` de 9 images sans budget de
  hauteur, 3 des 9 etaient invisibles (ink 0.0761). `style.css` du deck
  redefinit `.img-grid` en `flex-wrap`, donc `grid-template-columns` et
  `grid-auto-rows` du theme sont inertes : une vraie grille 3x3 bornee a 200px
  est forcee, images en `object-fit: contain`.
- 75 ILP : la derniere puce s'ecrivait par-dessus le pied de page et la figure
  du dernier `v-click` sortait du canvas (ink 0.0502) -> puces a 0.8em,
  figure plafonnee a 120px.

Aucun contenu retire : les six corrections ne font que reduire des tailles et
borner des hauteurs. Les diapos 39 et 45 remplacent un empilement par une
grille, les images restent toutes presentes.

Verification :

- export complet avant/apres, 124 PNG : sha256 -> 6 differents (34, 39, 42, 45,
  53, 75), 0 manquant, 0 nouveau. Le perimetre du diff est exactement celui des
  six diapos editees.
- scan du deck complet apres correction, seuil 0.0005 sur 10 lignes :
  0/124 OVERFLOW (le maximum mesure etant 0.0000).
- les cinq diapos re-rendues ont ete relues a l'oeil : l'organe ne conclut pas
  seul, un rognage franc laisse une encre nulle que le scan ne voit pas.

Note d'instrument : le seuil par defaut de scan_slidev_overflow.py (0.01) ne
voit pas un element dont seule une bande etroite depasse. Cinq des six defauts
mesuraient entre 0.0060 et 0.0154. Le scan par defaut concluait CLEAN.

See #11508

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Fix(slides,#11508): retire un compteur quantitatif de la prose ajoutee

Le garde prose-counts (bloquant sur lignes ajoutees, #17636) refuse un
nombre suivi d'une unite dans un commentaire ajoute : « ink 0.0502 a
10 lignes de fond ». La mesure reste, la formulation ne porte plus de
compteur.

Voir #11508

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Fix(slides,#11508): S8-semantic-web -- trois diapos debordant sous le pied de page

Trois diapos du deck S8 laissaient leur ligne « Notebook » tomber sur le
pied de page « Intelligence(s) » : la 11 (SW-5 Linked Data), la 13 (SW-6
RDFS) et la 16 (SW-8 SHACL).

Les diapos 11 et 16 portaient deja <div class="dense-list"> : la
compression etait donc epuisee, et le volume de contenu reste en cause.
La 13 ne portait pas la classe, alors que l'en-tete de style.css nomme
explicitement « listes denses sous H2 empiles (SW-1, RDFS, etc.) ».

Correctifs, aucun contenu retire :
- SW-5 : « Requetes federees SPARQL » (bloc de code + 2 puces + renvoi)
  devient sa propre diapo, detachee du tableau des 5 etoiles ;
- SW-8 : « Definition d'une Shape SHACL » (bloc Python + renvoi) devient
  sa propre diapo, detachee du tableau SHACL vs OWL ;
- SW-6 : dense-list, l'utilitaire que le deck definit pour ce cas.

Preuve : export complet avant/apres, 28 -> 30 diapos, scan 0/30 aux
trois reglages (contre 3/28 a 0.0005/16 avant). Perimetre sha256 : 1-10
identiques au meme index, 13/15/16 a index+1, 19-30 a index+2, et seules
les trois diapos editees (base 11, 13, 16) restent sans contrepartie.

See #11508

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Fix(slides,#11508): S6 -- la slide « Pour aller plus loin » debordait, « Extensions possibles » sur sa propre diapo

Mesure : export complet, scan des 16 dernieres lignes a 0,0005. La diapo 20
rendait son dernier point a hauteur du pied de page : « Argumentation pour
l'explicabilite des modeles ML » se superposait a "Intelligence(s)", et la
diapo empilait trois sections (Documentation, Notebooks connexes, Extensions).

Correctif : la troisieme section devient sa propre diapo (# Extensions
possibles), dans l'idiome du deck (separateur --- nu, markdown pur, aucun HTML).
Aucun contenu retire.

Preuve : 22 -> 23 diapos, scan 0/23 aux trois reglages (0.0005/10, 0.0002/12,
0.0005/16) contre 1/22 au reglage le plus strict avant. Perimetre : 1-19
byte-identiques au meme index, 21-22 identiques a index+1, seule l'ancienne 20
n'a aucun equivalent byte-egal — c'est la diapo scindee.

See #11508

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant