Skip to content

check_prose_quantitative_claims : ENV_RE aveugle a la forme table, qui est celle que le critere 2 de #9434 nomme #14314

Description

@jsboige

Mesuré le 2026-09-02 en livrant le critère 2 de #9434 (PR à suivre) : ENV_RE de scripts/notebook_tools/check_prose_quantitative_claims.py exige le nom de bibliothèque et la version adjacents, donc il ne voit pas la forme table markdown — qui est précisément celle que le critère 2 nomme (« les tables de versions écrites à la main »).

True   Nous utilisons NumPy 2.2.6 pour les tirages.
False  | `numpy` | 2.2.6 | Tirages gaussiens |
False  | Python  | 3.13  | Version recente |
False  | Python  | 3.13.3 | Version Python installee |

Deux causes cumulées :

  1. ENV_RE = \b(?:LIBS)\s+v?\d+(?:\.\d+){1,3}\b — en table, un | (et souvent des backticks) sépare le nom de la version, donc \s+ ne matche pas.
  2. Python n'est pas dans ENV_LIBS, alors que la version de l'interpréteur est la valeur env-dépendante la plus fréquemment épinglée à la main dans les notebooks de setup.

Comment le défaut s'est manifesté : les trois notebooks corrigés pour le critère 2 rendent [OK] sous --class env avant comme après le correctif (falsification dans les deux sens, même dossier, --root). Le garde ne tire pas sur ce qu'il est censé garder. C'est la classe « un contrôle structurellement incapable de contrôler » : le tell est qu'on ne vérifie pas qu'il a tiré.

Ce que ce n'est pas

Ce n'est pas un appel à drainer un compte. La sonde par conjonction (cellule de code qui imprime la version + prose qui l'épingle à côté) remonte 95 notebooks / 145 épinglages, largement bruités : python 3.9+ est un pré-requis (structurel, à garder), 54(2):286-295 est une référence bibliographique. Élargir ENV_RE sans mesurer ses faux positifs transformerait un garde silencieux en garde bruyant, ce qui est pire.

Acceptance

  1. ENV_RE (ou une seconde expression dédiée) matche la forme table : | <lib> | <version> |, backticks tolérés, et Python ajouté aux bibliothèques reconnues.
  2. La discrimination version épinglée vs pré-requis (3.9+, >=3.10) est explicite et testée : un pré-requis ne doit jamais être signalé (c'est la ligne de partage de notebooks(#9377,#8052): porter le mandat « quantitatif tenu par le CI, pas par la prose » a l'interieur des notebooks — la vague #8052 re-epingle des valeurs qui rebougeront #9434).
  3. Le taux de faux positifs est mesuré sur le dépôt entier et rapporté dans le body de la PR — pas estimé.
  4. Validation par les faux négatifs, dans les deux sens : neutraliser le nouveau prédicat (sous-portée) et l'élargir (sur-portée) doivent chacun faire rougir des tests nommés. Les trois notebooks corrigés par la PR du critère 2 servent de fixtures d'état-avant.

See #9434
See #9377

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions