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
check_unaddressed_nits: une reserve bloquante en prose libre, sans marqueur d'emission, rend rc=0 (#14658) #14682
Sur PR #14658, Hermes a pose une reserve que le reviewer qualifie lui-meme de
« le seul point bloquant pour un LGTM plein » : une date fausse (Dung (1985),
alors que le papier fondateur est Artificial Intelligence 77(2), 1995) dans une
cellule de synthese d'un notebook pedagogique.
python scripts/check_unaddressed_nits.py 14658 rend rc=0.
La reserve est posee a 18:25:21Z, apres le dernier commit (8db2b4df, 18:19:27Z),
et rien ne la leve. Elle aurait du tenir la porte ; l'organe ne l'a pas vue.
Pourquoi l'organe ne la voit pas
CONCERN_MARKERS reconnait des marqueurs : verdicts ASCII
(COMMENT_WITH_CONCERNS, CHANGES_REQUESTED, REQUEST_CHANGES, NEEDS_CHANGES, CONCERNS), glyphes de severite (🟡, 🔴), verdicts d'emission (**BLOCKED**, BLOCKED PR), et la forme etiquetee Concern:.
Le corps de review de #14658 n'en porte aucun. Son prefixe est neutre
(« [Hermes] Review lu sur 8db2b4d »), et la reserve vit en prose francaise libre.
L'organe classe donc la review comme non-porteuse. Il fait exactement ce qu'il annonce
— « aucune phrase de levee ne manque » — mais la substance bloquante passe.
Surface mesuree — et la correction de ma propre mesure
Scan des 80 dernieres PRs mergees + #14658 (controle positif, present dans le
resultat) :
N
reviews Hermes/NanoClaw avec un marqueur reconnu
8
reviews sans marqueur, prose « bloquante » selon un detecteur ad-hoc
5
reviews sans marqueur ni prose de ce type
67
Les 5 ne sont pas 5. En ouvrant chacune, quatre tombent :
Le detecteur ad-hoc de ce ticket sur-accuse d'un facteur 5, en confondant la prose
qui decrit un blocage (d'un job, d'un garde) avec la prose qui pose une reserve.
C'est le meme defaut de classe que l'organe qu'il pretend auditer, dans l'autre sens —
et c'est la raison pour laquelle ce ticket ne demande pas d'elargir CONCERN_MARKERS
a des mots-cles de prose : « bloquant », « a corriger », « est faux » sont des mots
frequents et ambigus, et les ajouter au filet produirait des faux positifs a la chaine
sur des reviews qui disent explicitement le contraire.
Ce qui est propose
Le defaut est cote emission, pas cote filet : Hermes dispose d'un vocabulaire de
severite (prefixe de verdict, glyphes 🟡/🔴) et ne l'a pas employe alors qu'il
formulait un point bloquant. La voie qui n'entre pas dans une course aux mots-cles :
Rendre l'emission obligatoire cote reviewer — toute review qui formule un point
tenant le merge porte un marqueur reconnu (prefixe de verdict ou glyphe). C'est une
consigne de persona, pas un changement d'organe.
Ne pas elargir CONCERN_MARKERS a la prose libre — mesure ci-dessus a l'appui.
La consigne d'emission (point 1) est ecrite la ou vit la persona du reviewer.
CONCERN_MARKERSnon elargi a des mots de prose libre, ou elargi avec un
controle positif ET negatif chiffre montrant que les 4 faux positifs ci-dessus
restent hors du filet.
Mesure et scripts refaisables : le scan ci-dessus se rejoue sur --limit N ; le
controle positif est #14658 — un detecteur qui ne le rend pas est casse, et son zero
ne vaut rien.
[CLAIMED] #14682 — myia-po-2026:CoursIA — 2026-09-08T06:5xZ — volet emission : consigne de marqueur dans la regle reviewer (persona Hermes/NanoClaw/humains) + citation #14658 dans CLAUDE.md B.0 + ligne de decision au niveau de CONCERN_MARKERS (non-elargissement documente, mesure 4FP/5 du body). CONCERN_MARKERS lui-meme INCHANGE (acceptance branche 1). Item 3 verifie firsthand : date 1995 sur main, PR mergee.
Les 3 items d'acceptance : (1) consigne d'émission HARD dans .claude/rules/pr-review-discipline.md (le fichier de persona de TOUS les reviewers) avec #14658 citée ; (2) CONCERN_MARKERS non élargi — décision consignée en commentaire au niveau du marqueur dans l'organe, avec les 4 faux positifs mesurés ; (3) vérifié firsthand avant la PR : date Dung corrigée sur origin/main (Dung (1995), zéro 1985 restant) et #14658 fusionnée depuis 2026-09-05.
Contrôles : 449 tests des 3 suites de l'organe passent (aucun changement de comportement — geste 2 est un commentaire) ; contrôle positif rejoué sur #14658 : rc=0 avec la réserve visible en sortie = la limite acceptée, contrat porté côté émission.
Le fait
Sur PR #14658, Hermes a pose une reserve que le reviewer qualifie lui-meme de
« le seul point bloquant pour un LGTM plein » : une date fausse (
Dung (1985),alors que le papier fondateur est Artificial Intelligence 77(2), 1995) dans une
cellule de synthese d'un notebook pedagogique.
python scripts/check_unaddressed_nits.py 14658rend rc=0.La reserve est posee a 18:25:21Z, apres le dernier commit (
8db2b4df, 18:19:27Z),et rien ne la leve. Elle aurait du tenir la porte ; l'organe ne l'a pas vue.
Pourquoi l'organe ne la voit pas
CONCERN_MARKERSreconnait des marqueurs : verdicts ASCII(
COMMENT_WITH_CONCERNS,CHANGES_REQUESTED,REQUEST_CHANGES,NEEDS_CHANGES,CONCERNS), glyphes de severite (🟡,🔴), verdicts d'emission (**BLOCKED**,BLOCKED PR), et la forme etiqueteeConcern:.Le corps de review de #14658 n'en porte aucun. Son prefixe est neutre
(« [Hermes] Review lu sur 8db2b4d »), et la reserve vit en prose francaise libre.
L'organe classe donc la review comme non-porteuse. Il fait exactement ce qu'il annonce
— « aucune phrase de levee ne manque » — mais la substance bloquante passe.
Surface mesuree — et la correction de ma propre mesure
Scan des 80 dernieres PRs mergees + #14658 (controle positif, present dans le
resultat) :
Les 5 ne sont pas 5. En ouvrant chacune, quatre tombent :
Reste 1 instance genuine sur 80 : #14658, tenue.
Le detecteur ad-hoc de ce ticket sur-accuse d'un facteur 5, en confondant la prose
qui decrit un blocage (d'un job, d'un garde) avec la prose qui pose une reserve.
C'est le meme defaut de classe que l'organe qu'il pretend auditer, dans l'autre sens —
et c'est la raison pour laquelle ce ticket ne demande pas d'elargir
CONCERN_MARKERSa des mots-cles de prose : « bloquant », « a corriger », « est faux » sont des mots
frequents et ambigus, et les ajouter au filet produirait des faux positifs a la chaine
sur des reviews qui disent explicitement le contraire.
Ce qui est propose
Le defaut est cote emission, pas cote filet : Hermes dispose d'un vocabulaire de
severite (prefixe de verdict, glyphes
🟡/🔴) et ne l'a pas employe alors qu'ilformulait un point bloquant. La voie qui n'entre pas dans une course aux mots-cles :
tenant le merge porte un marqueur reconnu (prefixe de verdict ou glyphe). C'est une
consigne de persona, pas un changement d'organe.
CONCERN_MARKERSa la prose libre — mesure ci-dessus a l'appui.CLAUDE.md§B.0 dit deja queexit 0ne juge pas la substance. enrich(tweety,#11601): densite Tweety-3-Dung 576 -> 728 c/cell + 2 fixes theoriques #14658 en est l'instance concrete ; la citer nommement
vaut mieux qu'une regle de plus.
Acceptance
CONCERN_MARKERSnon elargi a des mots de prose libre, ou elargi avec uncontrole positif ET negatif chiffre montrant que les 4 faux positifs ci-dessus
restent hors du filet.
1985->1995).Mesure et scripts refaisables : le scan ci-dessus se rejoue sur
--limit N; lecontrole positif est #14658 — un detecteur qui ne le rend pas est casse, et son zero
ne vaut rien.