You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci(markdown-claims): signal noye 8 FP / 1 vrai — intercepter systematiquement les valeurs d'execution en prose (exclusion tarifaire, signature non-mutabilite, cout borne) #15430
Le détecteur check_markdown_claims_output.py a un signal utile noyé dans ses propres faux positifs. Sur 07-SemanticKernel-MultiModal.ipynb (mesuré via #15365) : 9 findings dont 8 FP structurels — des tarifs ($0.04/image, $0.006/min, $15/1M chars, $2.00/1M tokens) qui viennent de pages de prix, jamais de la sortie d'une cellule — contre 1 vrai positif (117,600, valeur jamais produite par aucune cellule). Un organe dont le signal utile est minoritaire 8 contre 1 dans sa sortie sera survolé — et l'a été : l'advisory sticky de la PR #15343 se lisait comme du bruit.
Même après la vague de dé-quantification (#9434), le risque de régression reste : chaque nouvelle prose peut re-enchâsser un nombre dérivé d'exécution qui re-périra au passage kernel suivant.
La piste user (commentaire du 2026-09-09T14:25:41Z sur #15367)
Peut-être que les nombres « complexes » dans le markdown devraient avoir une signature de non mutabilité certifiée ? Attention malgré tout à ne pas utiliser des regexs trop coûteux si ça doit scanner en masse.
Pistes de design à investiguer (non exclusives)
Classement par provenance plutôt que par forme : un nombre en prose est soit (a) un fait externe documenté (tarif, limite d'API : 4096 caractères, 6 voix, $0.04/image) — précédé d'un symbole monétaire ou suivi d'une unité de tarification (/image, /min, /1M) — soit (b) une valeur prétendue dérivée d'exécution (taille, durée, compteur) — c'est la classe (b) seule qui mérite finding. Commencer par la exclusion monétaire (coût nul : lookahead simple sur le token, pas de backtracking).
Signature de non-mutabilité : pour les nombres de classe (a) qu'on veut autoriser en prose, une liste d'autorisation par notebook (fichier annexe ou marqueur inline borné) signée à l'ajout ; tout nombre classe (b) non signé = finding. Éviter les regex coûteuses : tokénisation numérique en une passe (\d[\d.,]* ancré mot) + lookup, jamais de motif imbriqué.
Bornage du coût : l'organe ne scanne que les notebooks touchés par le diff (déjà le cas des gardes per-PR) ; la passe sur fichier complet reste linéaire, pas multi-passe.
Acceptance
Mesure du ratio FP/vrai sur au moins les familles GenAI/SemanticKernel + ML (échantillon borné) avant/après exclusion monétaire
Prototype de l'exclusion monétaire (lookahead simple) avec benchmark du coût de scan sur le plus gros notebook du dépôt
Décision argumentée sur la signature de non-mutabilité (adoptée / écartée, avec la raison)
Exécution des pistes 1+3 du body avec décision argumentée sur la piste 2 (signature de non-mutabilité) : exclusion monétaire par lookahead simple (classement par provenance, pas par forme), benchmark du coût sur le plus gros notebook, mesure FP/vrai avant/après sur l'échantillon GenAI/SemanticKernel + ML, contrôle positif 117,600 (#15365).
Activity
myia-po-2023 commentedon Sep 10, 2026
[CLAIMED] #15430 — myia-po-2023:CoursIA — 2026-09-10T03:55Z
Exécution des pistes 1+3 du body avec décision argumentée sur la piste 2 (signature de non-mutabilité) : exclusion monétaire par lookahead simple (classement par provenance, pas par forme), benchmark du coût sur le plus gros notebook, mesure FP/vrai avant/après sur l'échantillon GenAI/SemanticKernel + ML, contrôle positif 117,600 (#15365).
fix(ci,#15430): tariff exemption requires bounded lexical context (#1…
fix(ci,#15430): math sandwich '$0.5$' -- le delimiteur fermant n'est …
Merge pull request #15435 from jsboige/fix/15430-claims-monetary-prov…