Constat
L'organe scripts/notebook_tools/detect_md_content_loss.py signale LOST_NAV_LINKS quand une cible de navigation de la base disparaît de la tête. Depuis l'option a du 2026-09-24 (commentaire 5809336658), un libellé générique qui survit sur une cible déjà pointée en base n'excuse plus la perte.
Le commentaire du code prescrit alors que la perte soit « à justifier dans le body de la PR ». Or le seul dispositif de justification par body (#13491, --pr-body-file / --pr-body) ne lit que les findings TRUNCATED_CELL, et son docstring exclut LOST_NAV_LINKS en toutes lettres. La prescription du code n'a donc aucune porte d'entrée.
Instance : #17392 (Lab6-First-Agent), qui fusionne un double bloc de navigation.
- Deux cibles « Index » divergentes :
../../../../README.md et ../../README.md.
- Nombre de liens de navigation : 7 → 4.
- Le notebook grossit : 6686 → 7065 caractères normalisés,
md_cells 21 → 22.
La lane a justifié la perte dans le body. Le rouge reste bloquant, et aucun geste de la lane ne peut le lever.
Grain
Étendre le dispositif #13491 à LOST_NAV_LINKS, sur le modèle de TRUNCATED_CELL_JUSTIFIED_BY_BODY :
- Un marker de body keyé sur le couple (notebook, cible), par exemple
md-content-loss: navigation assumee -- <notebook> target <cible> : <raison>.
- Le finding justifié est réécrit en
LOST_NAV_LINKS_JUSTIFIED_BY_BODY. La trace est préservée, jamais masquée, et le verdict binaire ne compte plus ce finding.
- Justification partielle. Si une seule des cibles perdues n'a pas de marker, le finding reste rouge pour les cibles restantes.
- Raison. Un marker sans raison, ou avec une raison vide, n'est pas valide.
- Tests.
- Docstring. Mettre à jour le point 8 et la liste des catégories non couvertes.
Hors périmètre
Pas d'assouplissement de (e2) ou de (e3). La perte reste détectée : elle devient seulement déclarable.
Critère de mort
Constat
L'organe
scripts/notebook_tools/detect_md_content_loss.pysignaleLOST_NAV_LINKSquand une cible de navigation de la base disparaît de la tête. Depuis l'option a du 2026-09-24 (commentaire 5809336658), un libellé générique qui survit sur une cible déjà pointée en base n'excuse plus la perte.Le commentaire du code prescrit alors que la perte soit « à justifier dans le body de la PR ». Or le seul dispositif de justification par body (#13491,
--pr-body-file/--pr-body) ne lit que les findingsTRUNCATED_CELL, et son docstring exclutLOST_NAV_LINKSen toutes lettres. La prescription du code n'a donc aucune porte d'entrée.Instance : #17392 (Lab6-First-Agent), qui fusionne un double bloc de navigation.
../../../../README.mdet../../README.md.md_cells21 → 22.La lane a justifié la perte dans le body. Le rouge reste bloquant, et aucun geste de la lane ne peut le lever.
Grain
Étendre le dispositif #13491 à
LOST_NAV_LINKS, sur le modèle deTRUNCATED_CELL_JUSTIFIED_BY_BODY:md-content-loss: navigation assumee -- <notebook> target <cible> : <raison>.LOST_NAV_LINKS_JUSTIFIED_BY_BODY. La trace est préservée, jamais masquée, et le verdict binaire ne compte plus ce finding.Hors périmètre
Pas d'assouplissement de (e2) ou de (e3). La perte reste détectée : elle devient seulement déclarable.
Critère de mort