Contexte
#15695 (fermée par #15877) a ajouté la porte de confirmation élément dans scan_slidev_composition.py : une paire texte×texte qui franchit le seuil Range doit AUSSI avoir des boîtes éléments qui se chevauchent, sinon elle n'est pas rapportée. Correctif validé (contrôles positif + négatif dans #15877).
Le résidu
La porte est silencieuse : quand elle éteint un effleurement Range (le cas fondateur #15695 : puces <code> inline, graze ~1.2 px alors que les boîtes élément sont séparées), rien ne le dit. La PR supplantée #15930 portait ce témoin ; il n'a pas été repris dans la conception retenue.
Un correctif muet est indiscernable d'un organe mort : si la porte disparaît silencieusement dans un refactor futur, aucune mesure ne bouge. C'est la même doctrine que #12719 acceptance 4 (« un marqueur presque-juste qui le DIT ne coûte rien »).
Livrable
Dans la conception retenue (#15877) :
- Le JS compte les paires éteintes (
chevauchementsEteints) au lieu de les continue en silence.
- Le résultat par slide expose
chevauchements_eteints.
github_annotations émet une ::notice [CHEVAUCHEMENT-FANTOME] : « N effleurement(s) Range éteint(s) par la confirmation élément — boîtes élément disjointes, rien à l'écran ».
- Tests unitaires sur
github_annotations (rapports synthétiques, pas de rendu headless requis) : paire rapportée porte les deux mesures ; éteint → notice comptée + PAS de warning [CHEVAUCHEMENT] ; slide propre sans éteints → rien.
Périmètre
2 fichiers : scripts/notebook_tools/scan_slidev_composition.py, scripts/tests/test_scan_slidev_composition.py. Signal ::notice = non bloquant, aucun seuil touché.
🤖 Generated with Claude Code
Contexte
#15695 (fermée par #15877) a ajouté la porte de confirmation élément dans
scan_slidev_composition.py: une paire texte×texte qui franchit le seuil Range doit AUSSI avoir des boîtes éléments qui se chevauchent, sinon elle n'est pas rapportée. Correctif validé (contrôles positif + négatif dans #15877).Le résidu
La porte est silencieuse : quand elle éteint un effleurement Range (le cas fondateur #15695 : puces
<code>inline, graze ~1.2 px alors que les boîtes élément sont séparées), rien ne le dit. La PR supplantée #15930 portait ce témoin ; il n'a pas été repris dans la conception retenue.Un correctif muet est indiscernable d'un organe mort : si la porte disparaît silencieusement dans un refactor futur, aucune mesure ne bouge. C'est la même doctrine que #12719 acceptance 4 (« un marqueur presque-juste qui le DIT ne coûte rien »).
Livrable
Dans la conception retenue (#15877) :
chevauchementsEteints) au lieu de lescontinueen silence.chevauchements_eteints.github_annotationsémet une::notice[CHEVAUCHEMENT-FANTOME]: « N effleurement(s) Range éteint(s) par la confirmation élément — boîtes élément disjointes, rien à l'écran ».github_annotations(rapports synthétiques, pas de rendu headless requis) : paire rapportée porte les deux mesures ; éteint → notice comptée + PAS de warning[CHEVAUCHEMENT]; slide propre sans éteints → rien.Périmètre
2 fichiers :
scripts/notebook_tools/scan_slidev_composition.py,scripts/tests/test_scan_slidev_composition.py. Signal::notice= non bloquant, aucun seuil touché.🤖 Generated with Claude Code