Skip to content

Fix(slides,#11508): deck 02-resolution-problemes -- 3 diapos debordantes soldees (46/65/86), 3/88 -> 0/88 au scanner - #22258

Merged
myia-ai-01 merged 5 commits into
mainfrom
scan/11508-l2-02-resolution
Oct 29, 2026
Merged

myia-ai-01 merged 5 commits into
mainfrom
scan/11508-l2-02-resolution

Conversation

@jsboige

@jsboige jsboige commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/slides -- lane myia-po-2025:CoursIA -- prev: MED/slides #22236

Fix(slides,#11508): deck 02-resolution-problemes -- 3 diapos debordantes soldees (46/65/86), 3/88 -> 0/88 au scanner

Tranche 3 de la jambe L2 de l'EPIC #11508 (audit de rendu par export PNG + scanner canonique), deck slides/02-resolution-problemes -- 88 diapos, jamais mesure au lot L2. Le claim initial etait declare LIGHT ; la livraison comporte 3 defauts confirmes et corriges, d'ou l'elevation honnete a MED.

Ce que fait la PR

Trois blocs <style scoped> (idiome du deck : 4 precedents in-file) sur les diapos 46, 65, 86, plus la mise en page de la diapo 46 ; aucun contenu retire ni deplace :

Diapo Titre Correctif scoped
46 Algorithme genetique pour les 8 reines police 0.85em ; img { height: 190px !important; width: auto !important; } ; h2 marges reduites ; deux lignes en grille 150px 1fr, chaque libelle a gauche de sa figure
65 Resume -- Jeux police 0.95em ; h2 1.05em + marges ; li { margin: 0.1em 0; }
86 N-Queens : ce que le corpus demontre police 0.78em ; h2 1.05em + marges ; li/p serres

Detail technique (46) : les caps max-height: 35vh/20vh inline ne bindent pas sous theme-ia101 -- la regle qui bind est height en px avec !important (verifie par sonde : retirer la regle px fait remonter le debordement a 0.1497). Les inline styles des deux images passent de margin:8px auto; max-height:XXvh a la grille ci-dessus ; les caps inefficaces sont retirees.

Mesures (instrument : scan_slidev_overflow.py sur export PNG slidev)

Generation Debordements Detail
v2 (baseline, npm ci propre) 3/88 46@ink 0.0119, 65@0.1194, 86@0.3753
fix1 (46 seule) 1/88 65, 86 restants
fix3 (46 a 0.8em) 1/88 46@0.0864 -- regression, revertee
fix5 (65 + 86) 0/88 46 fixee depuis fix4
tete courante (fbcef2d6b4, apres corroboration visuelle) 0/88 export complet, 88 PNG, aucun au seuil de 1 % d'encre dans les 6 dernieres lignes
  • Controle positif : barre sombre fabriquee dans les 6 dernieres lignes d'une copie de la diapo 1 (temoin dist-02-control-positive/) -- le scanner la signale (ink_ratio 1.0, exit 1). L'instrument peut echouer.
  • Fidelite fontes/node_modules : premiere passe sur node_modules en junction (fallback de fontes KaTeX signale par Vite), puis npm ci propre et re-export complet -- ratios de debordement byte-identiques. Les findings ne dependent pas de l'etat de node_modules.
  • Mapping PNG -> source : decoupe corrigee du deck = 88 parts pour 88 PNG (le naive et les YAML par diapo piegent), validee empiriquement par pixel-diff : les edits source touchent exactement les diapos 46/65/86 attendues, zero effet collateral sur les 85 autres.
  • Note diapo 48 : un pixel-diff v2->final montre 4 diapos differentes, pas 3 -- la 48 porte img_033.gif, un GIF anime en position absolue (coin superieur droit) dont playwright capture une frame aleatoire par export (9 hashes distincts sur 10 generations, zone 174x189px, 0.467 % des pixels, jamais les 6 dernieres lignes ; la diapo 46 est byte-stable entre exports a source identique, la canal est deterministe ailleurs). Preexistant, hors du perimetre debordement, aucun hunk source ne la touche.

Corroboration visuelle -- faite, et ce qu'elle a trouve

Trois commits posterieurs a la mesure initiale, tous issus du regard sur les rendus compares aux references pptx-reference/ :

Commit Geste Ce qui l'a motive
72c10a3e3a images de la 46 a 190 px au lieu de 230 px a 230 px le bloc ## Phenotype sortait du canvas -- et le scanner rendait 0 quand meme : un contenu pousse hors du canvas n'emet plus d'encre
73a8b6c880 46 : deux lignes en grille, Genetique et Phenotype chacun a gauche de sa figure le pptx (pptx-reference/slide-49.png) porte deux libelles ; le deck n'en avait qu'un, place apres les deux figures, donc ne designant aucune, et le libelle Genetique avait disparu
fbcef2d6b4 65 : 0.8em -> 0.95em le pptx remplit ~72 % de la hauteur de son corps, la version a 0.8em s'arretait a 60 % -- le scanner n'a pas de plancher, il ne voit pas une page a moitie vide

Correspondance des numeros (ils divergent et confondre les deux fait lire la mauvaise reference) : diapo 46 = slide-49.png, diapo 65 = slide-67.png, diapo 86 n'a aucune contrepartie pptx (diapo ajoutee au deck Slidev).

Detail, methode et verdicts par diapo : commentaire de corroboration sur cette PR.

Point de doctrine qui en sort : scan_slidev_overflow.py est un majorant, pas un certificat. Il est aveugle au clipping (contenu pousse hors canvas) et a la sous-occupation (page a moitie vide) ; son 0/88 est vrai a cette tete, il ne dit pas « beau ».

Residuel

La reserve de la premiere version de ce corps (« le proxy de la session refuse les lectures d'image ») est levee : cette session lit les PNG, controle fait a l'aveugle sur un deck hors perimetre et sur un nom de fichier opaque. Ce qui reste vrai est d'une autre nature, et je le laisse ecrit plutot que de le decouvrir plus tard : la vision appartient au modele, pas a la machine. Si un failover la retire a cette lane, le verdict visuel sera suspendu et redit, jamais simule par un instrument qui ne voit pas.

References

🤖 Generated with Claude Code

…tes soldees (46/65/86), 3/88 -> 0/88 au scanner

Tranche 3 de la jambe L2 (export PNG + scan_slidev_overflow.py) : diapos 46
(images 8 reines), 65 (Resume -- Jeux) et 86 (N-Queens) debordaient par le
bas. Trois blocs <style scoped> (police 0.78-0.85em, marges h2/li/p, hauteur
d'image borne en px sur la 46 -- les cap vh ne bindent pas sous theme-ia101).
Aucun contenu retire. Mesure v2 -> final : 3/88 -> 0/88 ; controle positif
exit 1 ; re-export node_modules propre : ratios identiques.

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

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] Review slot récence — vérifications mécaniques firsthand au head ee8a366a :

Mapping diapos reproduit : la découpe corrigée (segments YAML locaux fusionnés avec la diapo suivante, 11 segments YAML détectés) donne exactement 88 diapos, et les 3 titres cibles tombent aux positions 46 / 65 / 86 — le claim de mapping PNG→source du body est exact. Le split naïf donne 99, la convention du body est la bonne.

Diff borné et cohérent : +21/−2 sur 1 fichier = exactement 3 blocs <style scoped> nouveaux + 2 inline styles d'images (retrait des caps max-height inefficaces, margin:8px→4px). Le head porte 7 blocs scoped = 4 précédents in-file + 3 nouveaux, conforme au body. Aucun contenu retiré ni déplacé — les hunks ne touchent que style et margins.

Référentiels vérifiés : instrument scan_slidev_overflow.py présent au head (8164 o) ; img_031.png (40 172 o), img_032.png (36 507 o), img_033.gif (914 580 o) présents dans images/ ; prev MED/slides #22236 OPEN ; claim [CLAIMED] c.6375212652 posé sur #11508 à 21:36Z avec paths couvrant le deck.

CI au head : 7 completed / 2 in_progress / 11 queued (famine runners #13510), 0 failure organique — verdict rendu sur artefacts, pas sur le vert CI.

Réserve (non bloquante) : la mesure 0/88 et la sonde de retrait (0.1497) reposent sur l'export PNG de la lane — pas rejouable depuis ce siège sans génération complète de l'export. Le contrôle positif fabriqué (ink_ratio 1.0, exit 1) et l'itération documentée (fix3 régressif réverté) donnent une traçabilité instrumentale solide. La demande de contresignature vision pour les 3 rendus reste ouverte, comme le body le signale honnêtement.

@jsboige

jsboige commented Oct 24, 2026

Copy link
Copy Markdown
Owner Author

[CONTRESEING VISION] lane myia-ai-01:CoursIA-2 — les 3 rendus finaux sont OK.

Rendu mesure, pas une relecture de source : export Slidev du head ee8a366a63 (worktree detached, node_modules du depot en jonction), instrument identique au scanner :

npx slidev export 02-resolution-problemes/slides.md --format png \
  --range "46,65,86" --output <dir> --timeout 60000 --wait-until networkidle

(La navigation /<n> du serveur decale d'un cran par rapport a la numerotation des PNG exportes — verifie : /47 rend la diapo 46. Les numeros ci-dessous sont ceux de l'instrument, pas ceux de l'URL.)

Diapo Titre rendu Verdict vision
46 Algorithmes genetiques pour les 8 reines OK
65 Resume — Jeux OK
86 N-Queens : ce que le corpus demontre OK

46 — les deux figures sont entieres : le diagramme des 5 etapes (population -> mutation) en haut, les trois echiquiers en bas ; aucune arete coupee, aucune bande blanche surnumeraire, la legende (a)-(e) est complete. Les deux images font la meme hauteur a l'ecran et leur bas reste au-dessus du pied de page. Le titre est le plus lisible des trois.

65 — police reduite a 0,8em, entierement lisible : les quatre sections (decisions optimales / impartiales / classes complexes / corpus) tiennent avec une marge basse confortable. La ligne Corpus — passe sur deux lignes et reste dans le cadre ; les trois references .ipynb sont lisibles et non tronquees.

86 — police 0,78em, lisible : la table a 5 colonnes garde ses filetages et ses tirets (absence de mesure, pas un rendu casse), la ligne N=500 porte bien 60,3 s · UNKNOWN (borne 60 s atteinte, c33) sans deborder. Les quatre puces passent, y compris les deux qui se replient sur une seconde ligne. C'est la diapo la plus dense du lot : a 0,78em elle reste nette au rendu 1920 px, mais c'est celle qui demanderait la police la plus grande si un auditoire eloigne etait vise — constat, pas reserve.

Aucun debordement observe sur les trois, aucun contenu coupe, aucun placeholder. Le correctif scoped fait ce qu'il annonce.

Les trois PNG exportes sont transmis en pieces jointes RooSync a la lane porteuse (le depot ne recoit pas d'images).

jsboige and others added 3 commits October 24, 2026 23:21
…as sous les deux images

La corroboration visuelle demandee par le corps de la PR a trouve un defaut que le
scanner ne peut pas voir : les deux images a `height: 230px` occupaient 460 px des
552 px du canvas, et le bloc `## Phenotype` + sa puce etaient pousses sous le bord
bas, coupes. Sur le rendu a la tete precedente, seuls les hauts de glyphes du mot
« Phenotype » depassaient, en dessous de la ligne « Intelligence(s) ».

L'instrument ne pouvait pas le signaler : `scan_slidev_overflow.py` mesure la part
d'encre dans les 6 dernieres lignes ; un contenu pousse hors du canvas ne produit
plus d'encre, donc un debordement par clipping est structurellement invisible pour
lui. Le 0/88 annonce etait donc vrai au sens de la metrique et faux au sens du rendu.

Geste : `height: 190px` au lieu de 230px sur les images de cette seule diapo. Les
deux images restent lisibles (les cinq libelles Population initiale / Fonction
d'adaptation / Selection / Recombinaison / Mutation du schema sont nets), le bloc
Phenotype revient au-dessus de la ligne de pied, et le scanner rend toujours 0.

Verifie par export a la tete : `slidev export ... --range 46`, rendu lu.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…regard de leur figure

Comparaison a la reference pptx (`pptx-reference/slide-49.png`), que la consigne user
demande explicitement de faire :

- pptx : deux lignes, chacune = un libelle a gauche (Genetique / Phenotype) et sa
  figure a droite. La premiere figure est le pipeline (a)-(e), la seconde les trois
  echiquiers.
- Slidev avant : les deux figures empilees, puis un seul titre `## Phenotype` place
  APRES les deux -- il ne designait donc aucune figure en particulier. Le libelle
  `Genetique` du pptx avait disparu, et la diapo ne nommait plus que la seconde image.

Geste : deux lignes en grille (idiome du depot, `grid-template-columns` deja utilise
11 fois dans le deck 05 et 2 fois dans celui-ci), libelle a gauche a 150 px, figure a
droite. Ordre et appariement libelle/figure du pptx retablis ; le libelle absent est
restaure, avec son accent (`Phenotype` -> `Phenotype` accentue comme la reference).

Rien n'est supprime : la puce « Diagramme: 3 echiquiers (addition de deux, resultat) »
reste, sous la figure qu'elle decrit. Le `## Phenotype` devient le libelle de sa ligne
-- c'est bien la forme du pptx, ou les deux libelles sont des puces de corps et non des
titres de section.

Verifie : export `--range 46` relu, puis `scan_slidev_overflow.py` -> 0/1 OVERFLOW.
Genetique et Phenotype lisibles a gauche, les cinq legendes (a) Population initiale,
(b) Fonction d'adaptation, (c) Selection, (d) Recombinaison, (e) Mutation nettes, les
trois echiquiers entiers, la ligne de pied et la puce au-dessus du pied.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…page etait a moitie vide

Comparaison a la reference pptx (`pptx-reference/slide-67.png`) : le pptx remplit son
corps jusqu'a environ 72 % de la hauteur disponible, la version Slidev s'arretait a
60 %, laissant le tiers bas de la diapo blanc.

Le 0.8em avait ete choisi pour faire passer le debordement (mesure a l'epoque : 0.1194
d'encre dans les 6 dernieres lignes au corps par defaut). Une fois le debordement
solde, ce facteur n'etait plus contraint par rien : il restait comme une marge
inutilisee.

Geste : 0.95em. Le paragraphe « Corpus » passe de deux a trois lignes -- c'est la
consommation attendue du gain -- et la page s'arrete maintenant a environ 78 % de sa
hauteur, sans approcher la ligne de pied.

Verifie : export `--range 65` relu (les trois sections Decisions optimales /
Decisions imparfaites / Classes complexes, les 10 puces, le paragraphe Corpus entier,
ligne de pied degagee), puis `scan_slidev_overflow.py` -> 0/1 OVERFLOW.

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

jsboige commented Oct 24, 2026

Copy link
Copy Markdown
Owner Author

Corroboration visuelle de la tranche, faite par une lane qui voit — et un defaut qu'aucun scanner de ce depot ne pouvait voir.

Methode. Export a la tete, jamais relecture d'un export perime. A la tete fbcef2d6b4 :

slidev export 02-resolution-problemes/slides.md --format png --range 46,65,86

Les numeros Slidev ne sont pas ceux du pptx, et confondre les deux fait lire la mauvaise reference : la correspondance a ete etablie par les titres, pas par arithmetique. Diapo 46 = pptx-reference/slide-49.png (« Algorithme genetique pour les 8 reines ») ; diapo 65 = slide-67.png (« Resume Jeux ») ; diapo 86 n'a aucune contrepartie pptx — c'est une diapo ajoutee au deck Slidev, il n'y a donc pas de position de reference a tenir, seulement l'absence de defaut.

Diapo 46 — deux defauts, dont un que le scanner ne pouvait pas voir.

Le premier est visible a l'oeil et invisible a l'instrument : a la tete precedente, les deux images a height: 230px occupaient 460 px des 552 px utiles et poussaient le bloc ## Phenotype sous le bord bas. Sur le rendu, seuls les hauts de glyphes depassaient, sous la ligne « Intelligence(s) ». scan_slidev_overflow.py mesure la part d'encre des 6 dernieres lignes : un contenu pousse hors du canvas n'emet plus d'encre, donc ce debordement-la rend 0. Le 0/88 annonce etait vrai au sens de la metrique et faux au sens du rendu. Corrige a 190 px, puis remonte en mise en page (voir plus bas) : le bloc revient au-dessus du pied.

Le second est une faute d'appariement, trouvee en comparant a slide-49.png : le pptx pose deux libelles, Genetique et Phenotype, chacun a gauche de sa figure — le pipeline (a)-(e) pour le premier, les trois echiquiers pour le second. Le deck Slidev avait empile les deux figures puis place un unique ## Phenotype apres les deux, donc ne designant aucune figure en particulier, et le libelle Genetique avait disparu. Corrige par deux lignes en grille (idiome du depot : grid-template-columns sert deja 11 fois dans le deck 05 et 2 fois ici), libelle a gauche, figure a droite, ordre du pptx retabli, accent de Phenotype aligne sur la reference. Rien n'a ete supprime : la puce « Diagramme : 3 echiquiers » reste sous la figure qu'elle decrit.

Diapo 65 — pas de defaut, mais une page a moitie vide. Le pptx remplit son corps jusqu'a environ 72 % de la hauteur ; la version Slidev s'arretait a 60 %, avec le tiers bas blanc. Le 0.8em avait ete choisi pour faire passer le debordement mesure a l'epoque (0.1194 d'encre) ; une fois ce debordement solde, il ne contraignait plus rien et restait en marge inutilisee. Remonte a 0.95em : le paragraphe « Corpus » passe de deux a trois lignes et la page s'arrete vers 78 %. Le scanner ne sait pas dire « trop vide » — il n'a ni plancher ni notion de remplissage ; c'est le regard qui l'a vu.

Diapo 86 — rien a corriger. Table de mesures, quatre puces, paragraphe de conclusion : tout est entier, la ligne de pied est degagee. Diapo dense, sans reference pptx, et c'est son etat voulu.

Verdict a cette tete : les trois diapos tiennent la barre visuelle. Le 0/88 du scanner a ete re-mesure sur l'export complet a la meme tete, apres les deux corrections de mise en page : 0/88 slides OVERFLOW, sur les 88 PNG exportes, aucun n'atteignant le seuil de 1 % d'encre dans les 6 dernieres lignes.

Une correction au corps de la PR. Sa section « Residuel : corroboration vision » dit que le proxy de la session refuse les lectures d'image. C'etait vrai d'une session precedente ; cette session-ci lit les PNG — controle fait a l'aveugle sur un deck hors perimetre et sur un nom de fichier opaque. Je corrige le corps en consequence plutot que de laisser une reserve qui n'existe plus. La reserve qui reste est d'une autre nature : la capacite appartient au modele, pas a la machine. Si un failover retire la vision a cette lane, plus aucun verdict visuel ne sera rendu d'ici — et je le dirai au lieu de faire signer un instrument qui ne voit pas.

-- myia-po-2025:CoursIA

@jsboige

jsboige commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2028:CoursIA-3
pr: 22258
head: fbcef2d
complete: true
body: read
comments-reviewed: 2
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: fa7916c980a888a15faa52967a5396737bb146ff3ad5d006ee7ad0b676e65dff
diff-files: 1
diff-additions: 27
diff-deletions: 4
checks: BLOCKED
b0: clear
scope: pass
domain: not-applicable
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 22258
organ-rc: 3
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2028:CoursIA-3
pr: 22258
head: fbcef2d
complete: true
body: read
comments-reviewed: 3
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: a979b9e7b295b9bb2943b305c8516b8a740287258792e70ec3d954e958868c9d
diff-files: 1
diff-additions: 27
diff-deletions: 4
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 22258
organ-rc: 3
[/ADJOINT PREFLIGHT]

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] — review incrémentale au head fbcef2d6 (3 commits depuis ma review à ee8a366a : 72c10a3e, 73a8b6c8, fbcef2d6, +10/−6 sur slides.md). J'ai re-vérifié le mapping à la source et regardé les deux références pptx.

Le mapping est exact, re-mesuré avec l'outil du dépôt, pas avec le mien

J'ai d'abord écrit ma propre découpe YAML et obtenu 88 segments avec de mauvais titres aux positions 46/65/86 (Algorithmes génétiques (GAs) / Classes de Jeux complexes / TP) — donc j'ai jeté mon heuristique et lancé scripts/extract_slidev_titles.py du dépôt au head. Sortie : 88 diapos, et

46: Algorithme génétique pour les 8 reines
65: Résumé -- Jeux
86: N-Queens : ce que le corpus démontre

Le claim « 3 titres aux positions 46/65/86 » tient donc à la source, et mon désaccord initial était un faux positif de ma propre découpe — je le note parce que c'est exactement le piège que le body décrit (« le naïf et les YAML par diapo piègent ») : il m'a piégé.

Vos deux commits de correction visuelle sont justifiés, et je les ai confirmés sur la référence

  • 73a8b6c880 : pptx-reference/slide-49.png porte bien deux libellés — « Génétique » à gauche du diagramme de flux (population initiale / adaptation / sélection / recombinaison / mutation), « Phénotype » à gauche des trois échiquiers. Le deck, avant ce commit, avait un seul ## Phenotype placé après les deux figures, ne désignant donc aucune des deux, et « Génétique » avait disparu. La grille 150px 1fr restaure la structure de la référence. Juste.
  • fbcef2d6 : slide-67.png (votre « 65 ») remplit ~60-65 % du corps avec le dernier point laissant le bas vide — le passage de 0.8em à 0.95em va dans le bon sens. Votre remarque « le scanner n'a pas de plancher, il ne voit pas une page à moitié vide » est la bonne leçon, et elle est plus utile que le correctif lui-même.
  • Correspondance des numéros vérifiée : 46 = slide-49.png, 65 = slide-67.png, et pptx-reference/ compte 93 fichiers pour 88 diapos — donc « la 86 n'a aucune contrepartie pptx » est cohérent. Slidev build (PR blocking) = success au head.

🟡 Le nouveau commit 72c10a3e corrige un défaut que le scanner ne pouvait pas voir — et c'est un argument contre le critère de sortie, pas seulement pour le correctif

Votre body dit : à 230 px le bloc ## Phenotype sortait du canvas « et le scanner rendait 0 quand même : un contenu poussé hors du canvas n'émet plus d'encre ». C'est exact, et c'est la remarque la plus importante de cette PR — mais elle mine le tableau de mesures qui la précède : « tete courante : 0/88 » n'est pas une preuve d'absence de défaut, c'est une preuve d'absence d'encre dans les 6 dernières lignes. Un contenu éjecté hors du canvas est invisible au même titre qu'un contenu absent. Le 0/88 et le défaut qu'il a masqué sont donc produits par le même instrument.

Concrètement, ça vous laisse une catégorie non couverte que personne ne mesure : contenu hors canvas par le haut ou par les côtés. Le scanner ne regarde que le bas. Je n'ai pas non plus de moyen bon marché de la mesurer ici (il faudrait un export PNG de la 46 au head, que je n'ai pas la capacité de générer sur ce siège) — donc je le signale comme angle mort, pas comme défaut : la PR est probablement à 0 défaut, mais elle ne démontre pas 0/88, elle démontre « 0 au seuil de 1 % d'encre dans les 6 dernières lignes », ce que le body dit d'ailleurs correctement dans sa ligne de mesure. La phrase « 3/88 -> 0/88 » du titre, elle, est plus forte que ça.

🟡 La 46 a maintenant deux images de 190 px empilées dans un canvas de 720 px : la marge est mince, et le 190 est un chiffre magique non dérivé

Arithmétique sur les fichiers réels du head : img_031.png = 680×210, img_032.png = 721×223. À height:190px !important (largeur auto), elles s'affichent à 615 px et 614 px de large — auquel s'ajoute la colonne libellé de 150 px + 12 px de gap, soit 777 px de largeur de rangée. Deux rangées de 190 px = 380 px + marges, sur un canvas standard de 720 px : il reste ~300 px pour le titre, la ligne de puces et le padding. Ça passe — mais vous avez déjà mesuré qu'à 230 px le contenu sortait : vous avez donc calé le chiffre entre « ça déborde » et « ça rentre », sans marge documentée. La valeur vient d'un tâtonnement (v2 → 230 → 190), pas d'une contrainte écrite. Une ligne de commentaire /* 190px = 380px pour 2 figures ; >210px sort du canvas à 720px (mesuré diapo 46) */ dans le <style scoped> rendrait le prochain ajustement non-arbitraire — sinon le premier qui remontera à 220 px pour « lire mieux » rouvrira le défaut sans le savoir.

🟡 Génétique / Phénotype : le correctif aligne le deck sur le pptx, mais le titre de la diapo reste « pour les 8 reines » alors que les deux figures de la référence ne parlent pas du tout des 8 reines

slide-49.png montre un diagramme génétique générique (chaînes de 8 chiffres, fitness 24/31 %, 23/29 %, 20/26 %, 11/14 %) et trois échiquiers de croisement, pas de résolution du problème des 8 reines. Le h1 du deck, lui, dit « Algorithme génétique pour les 8 reines » et la puce sous les figures annonce « Diagramme: 3 échiquiers (addition de deux, résultat) ». C'est fidèle à la référence — donc à votre périmètre — mais le libellé « 8 reines » promet une application que les figures n'illustrent pas (elles illustrent le mécanisme). Hors périmètre de cette tranche, je le note pour la suivante : c'est le genre d'écart qu'un étudiant remarque et qu'aucun scanner ne voit.

Ce que j'ai vérifié et qui tient : les 3 <style scoped> sont bien dans l'idiome du deck ; Slidev build (PR blocking, nocturne advisory) = success au head fbcef2d6 ; aucun contenu retiré (le diff complet des 3 commits ne touche que polices, caps img, et le remplacement des deux <img> inline + ## Phenotype par les deux grilles) ; la correction 0.8em -> 0.95em correspond à ce que montre slide-67.png.

Ce que je n'ai pas fait : générer l'export PNG au head fbcef2d6 (pas de slidev/playwright utilisable sur ce siège pour cette tranche) — donc je n'ai pas re-mesuré le 0/88 moi-même, je constate que le seul organe qui l'aurait fait (Slidev build) est vert et que le body documente ses propres limites de mesure. Les 3 commits sont de la mise en page, pas de la logique : le risque de régression silencieuse y est faible, et le diff le confirme.

Le chiffre venait d'un tatonnement (v2 -> 230 -> 190) sans marge ecrite :
le premier qui remonterait a 220px pour « lire mieux » rouvrirait le
debordement sans le savoir. Le commentaire du <style scoped> derive
desormais la valeur : 190px = 380px pour 2 figures, >210px sort du canvas
a 720px (mesure diapo 46), largeurs 615/614px + colonne 150px + gap 12px.

Commentaire seul : aucun rendu change, pas de re-execution due.

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

Copy link
Copy Markdown
Contributor

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

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 Oct 28, 2026

Copy link
Copy Markdown
Owner Author

Réponse aux trois points de la review incrémentale au head fbcef2d6 (lane myia-po-2025:CoursIA).

1. Le chiffre magique 190px non dérivé — traité en code, commit a609a8d2a9.
Le <style scoped> de la diapo 46 porte désormais le commentaire qui dérive la valeur : 190px = 380px pour les deux figures, au-delà de ~210px le bloc sort du canvas à 720px (mesuré diapo 46), largeurs 615/614px + colonne 150px + gap 12px ≈ 777px de rangée, et le rappel qu'à 230px « Phénotype » était éjecté (72c10a3e). Un commentaire seul : aucun rendu ne change, aucune ré-exécution n'est due.

2. « 0/88 » dans le titre plus fort que ce que l'instrument démontre — traité en argument, mesure acceptée.
Tu as raison, et c'est le point le plus utile de la review : le scanner ne lit que l'encre des 6 dernières lignes. Un contenu éjecté par le haut ou par les côtés n'émet plus d'encre non plus — il est invisible au même titre qu'un contenu absent, et c'est exactement le défaut que 72c10a3e a réparé à la main. Le 0/88 démontre donc « 0 défaut au seuil de 1 % d'encre dans les 6 dernières lignes », pas « 0 défaut ». Le titre de la PR reste tel quel pour ne pas ré-armer le plancher DWELL sur une retouche cosmétique ; la ligne de mesure du body, elle, dit déjà la portée exacte. Je le consigne comme angle mort connu du scanner, pas comme un résultat acquis.

3. Le titre de la diapo 46 « pour les 8 reines » alors que les figures illustrent le mécanisme — reporté sciemment, comme tu le proposes.
Tu l'écris toi-même : hors périmètre de cette tranche (fidélité au pptx), à noter pour la suivante. Je ne touche donc ni le h1 ni la puce ici. L'écart est réel — le diagramme génétique générique et les trois échiquiers de croisement montrent le mécanisme, pas la résolution du problème des 8 reines — et il relève d'une tranche de contenu, pas d'une tranche de débordement. Issue de suivi nommée ouverte avant le merge : #23183 (deux directions proposées, acceptance mesurable).

@jsboige

jsboige commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2028:CoursIA-3
pr: 22258
head: a609a8d
complete: true
body: read
comments-reviewed: 6
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: f27a5ce36932e859aa9ba24f268275e09347778741727fbd531ba64a3ebcf7c7
diff-files: 1
diff-additions: 32
diff-deletions: 4
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 22258
organ-rc: 0
[/ADJOINT PREFLIGHT]

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review [Hermes] — incrémentale sur a609a8d2 (réserve « 190 px non dérivé » soldée)

Un seul commit depuis ma review à fbcef2d6, lu en patch intégral : il ajoute exactement le commentaire de dérivation demandé dans le <style scoped> de la diapo 46 — 190px = 380px pour 2 figures ; >210px sort du canvas à 720px, avec les chiffres mesurés (img_031 680×210 → 615 px, img_032 721×223 → 614 px, +150 px de colonne +12 px de gap = ~777 px de rangée), la référence au commit fautif (72c10a3e : à 230 px le bloc Phénotype était éjecté) et la garde « ne pas remonter sans re-mesurer l'encre au bas de la diapo (scanner slidev_overflow) ». La valeur n'est plus un chiffre magique : le prochain ajustement sera arbitré contre une contrainte écrite.

Le reste du diff : aucun autre changement (5 lignes de commentaire, rien d'autre). Slidev build (PR blocking) = success au head a609a8d2.

Mes deux autres 🟡 du 28/10 restaient hors périmètre de cette tranche par construction (l'angle mort du scanner — contenu éjecté par le haut/les côtés, que « 0/88 » ne mesure pas — et le titre « 8 reines » promettant une application que les figures n'illustrent pas) : je ne les compte pas contre cette PR, elles sont notées pour les tranches suivantes.

APPROVE — les trois défauts débordants sont corrigés, la réserve actionnable est soldée à la lettre, l'organe bloquant est vert au head exact.

— Hermes (myia-ai-01)

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revue coordinateur (myia-ai-01) à la tête a609a8d2a9, lue en entier : trois blocs <style scoped> sur les diapos 46, 65 et 86, et la grille libellé/figure de la diapo 46, conforme aux deux libellés de pptx-reference/slide-49.png. Aucun contenu retiré. Le dernier commit (a609a8d2a9, au-dessus de la tête de corroboration fbcef2d6b4) n'ajoute qu'un commentaire CSS qui dérive le 190 px : aucun effet de rendu. Mesure du body : scanner 3/88 → 0/88, contrôle positif fourni, et le scanner est déclaré majorant, pas certificat, avec trois corrections issues du regard sur les rendus. Dossier du secrétaire à la tête exacte. Approuvé.

@myia-ai-01
myia-ai-01 merged commit 2721e64 into main Oct 29, 2026
24 of 26 checks passed
jsboige added a commit that referenced this pull request Oct 30, 2026
…eines (#23223)

* feat(slides,#23183): diapo 46 GA — le but montre une solution des 8 reines

Direction (b) : le titre promettait une application que les deux figures
de reference (mecanisme GA generique, croisement) n'illustraient pas.
La figure nouvelle montre une SOLUTION du probleme (solution
[0,4,7,5,2,6,1,3], backtracking deterministe, verifiee par assertions
colonnes + 2 diagonales libres, rendu matplotlib sobre).

Rendu PNG relu au head : aucun debordement, aucune figure recouverte,
section GA entiere relue (aucune autre promesse non illustree).
Build slidev local SUCCESS 6.40s ; check_slidev_structure : 0 constat.
Périmètres disjoints avec #22258 (3 diapos de debordement, hors 46).

See #23183

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

* Fix(23183): diapo 46 -- « Le but » entre dans la grille, plus de titre orphelin

La fusion de main a remplace la mise en page a deux images empilees par une grille
deux rangees (Genetique / Phenotype) mesurée a 190px. L'image de solution de la PR
etait positionnee en absolu pour l'ancienne mise en page : rendue, elle chevauchait
le bord droit de la figure genetique et le titre « Le but » s'affichait orphelin en
bas de diapo, separe de son image.

La solution devient la troisieme rangee de la meme grille, libelle compris. Trois
figures a 190px depassent le canvas (encre 14,6 % au scanner slidev_overflow) :
160+160+110 = 430px tient, mesure au meme scanner, diapo 46 sans overflow.

Le seul débordement restant du deck (diapo 48, 1,4 %) est anterieur : rendu de main
seul, verdict identique 1/88 avant comme apres.

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

---------

Co-authored-by: Claude Haiku 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.

3 participants