Repository navigation
Conversation
…e d'espacement scan_md_table_syntax.py detecte MATH_SPAN_PIPE et recommande `\lvert`/`\rvert` SANS la regle d'espacement -- exactement la forme qui a produit les deux defauts attrapes a la main : `\lverts` (commande indefinie par collage, #15958) et `$\lvertS\lvert$` (collage + fermeture par un second ouvreur, #15965). A/B sur la sortie imprimee au worker (fixture notebook, meme pathologie) : AVANT : ... utiliser \lvert/\rvert APRES : ... utiliser \lvert/\rvert en separant la commande de son operande (espace ou {}) et en fermant par \rvert, pas par \lvert Detection inchangee : meme pathologie, meme cellule, meme ligne. Correction de la proposition de l'issue (G.1) : elle demandait d'aligner la prose sur `\mid`/`\vert` comme "la forme que le test utilise deja" -- or le test n'utilise ni l'un ni l'autre (test_scan_md_table_syntax.py:494 est `$\lvert F_B\rvert / \lvert A\rvert$`, avec espacement). Le correctif garde donc `\lvert`/`\rvert` et ajoute les deux regles manquantes : ne jamais coller une commande LaTeX a la lettre suivante ; fermer par \rvert, jamais par \lvert. Les jetons casses ne sont pas ecrits dans la prose (copiables tels quels). Balayage freres : la prose de recommandation n'existe que dans ce fichier et son test, rien a grouper. Les notebooks contenant `lvert` (2 ICT, SL-8) utilisent la forme correcte et espacee -- la pathologie n'y est pas. Perimetre : 1 fichier, 2 chaines de prose, aucune modification de detection. 85 tests passent, py_compile OK. Closes #15974 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Path-collision (organ #13359/#13615)Cette PR #15988 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
Clôture comme superseded par #15975 (mergée le 2026-09-13T21:34:09Z, merge Vérification instant-T : les deux PR réécrivent les mêmes sites de Aucun contenu unique n'est donc perdu par cette clôture. L'issue #15974 reste ouverte : le volet distinct de détection du LaTeX collé n'est traité ni par cette PR ni par #15975. |
Grain: LIGHT/tooling — lane myia-po-2026:CoursIA — prev: DEEP/slides #15865
Contexte
scan_md_table_syntax.pydétecteMATH_SPAN_PIPE(pipe brute dans un span$...$d'une table) et recommande la forme de correction au worker. Or sa recommandation enseignait\lvert/\rvertsans la règle d'espacement — exactement la forme qui a produit les deux défauts du jour, attrapés à la main :\lverts(commande non définie par collage) sur #15958, et$\lvertS\lvert$(collage + fermeture par un second ouvreur) sur #15965.La garde posée en amont (payload
roo-extensions#3621) ne couvrait pas cette prose-ci : un worker qui suit la sortie--checkde cet organe recevait l'instruction incomplète.A/B sur la sortie réellement imprimée au worker
Fixture notebook minimal, même pathologie (
$|F_B| / |A|$), scanner avant puis après :Détection inchangée (même pathologie, même cellule, même ligne) : seule la recommandation gagne la règle qui lui manquait.
Correction apportée à l'issue (G.1)
L'issue proposait d'aligner la prose sur « la forme que le test du scanner utilise déjà » en recommandant
\mid(condition) /\vert(valeur absolue). Vérification : le test n'utilise ni l'un ni l'autre. Son unique occurrence (test_scan_md_table_syntax.py:494) est$\lvert F_B\rvert / \lvert A\rvert$, soit\lvert/\rvertavec espacement. La recommandation de l'issue contredisait donc son propre critère d'alignement.Le correctif est ancré sur la source, pas sur la proposition : on garde
\lvert/\rvert(la forme réellement utilisée par le test et par les notebooks) et on ajoute les deux règles dont l'absence est la cause racine unique des deux défauts :\lvertdoit être séparé de son opérande par une espace ou{}(le collage rend la commande indéfinie) ;\rvert, jamais par un second\lvert(deux ouvreurs s'apparient silencieusement au lieu de fermer).Conformément à l'issue, la prose n'écrit pas les jetons cassés : une prose qui les montre est copiable telle quelle, c'est ainsi qu'ils se propagent.
Balayage frères (avant commit)
git grep -ln 'MATH_SPAN_PIPE|pipe-free'→ 2 hits, tous deux dans l'organe et son test. Rien à grouper, aucun frère à corriger.lvert(2 ICT,SL-8) : ils utilisent la forme correcte et espacée (\lvert F_B\rvert / \lvert A\rvert). La pathologie n'est pas dans les notebooks — seule la prose de l'organe était fautive. (Le hit surICT-12cest un faux positif degrepsur un blob base64 inline.)Périmètre — exactement celui annoncé par l'issue
1 fichier, 2 chaînes de prose (docstring l.32,
detaill.523). Aucune modification de détection. Aucun test à changer. Diff : 2 hunks, prose seule.Vérifications
test_scan_md_table_syntax.py— 85 passedpython -m py_compile— OKscripts/notebook_tools/scan_md_table_syntax.pyRésiduel — signalé, pas traité ici
La pathologie reste non détectée par la machine. L'organe recommande maintenant correctement, mais rien ne détecte le collage (
\lvertsuivi d'une lettre → commande indéfinie) ni l'appariement de deux ouvreurs — c'est précisément pourquoi #15958 et #15965 ont été attrapés à la main et non par une garde. C'est un volet détection, distinct de cette tranche prose ; il mérite son propre grain (élargir le scanner ou ajouter un organe, avec contrôles positif + négatif). Hors périmètre de l'issue, qui scope explicitement « ~2 lignes, aucun comportement modifié ».Closes #15974
🤖 Generated with Claude Code