Skip to content

review_coverage : le label large-pr-no-review est posé sur des PR déjà revues (périmètre reviews[] seul) — 2 cas prouvés, 2 périmés sur 8 #16284

Description

@jsboige

Organe : scripts/review_coverage.py (tracker d'origine #11232, CLOSED — livré). Label large-pr-no-review, seuil 300 additions, balayage quotidien.

Défaut 1 — faux négatif prouvé : le périmètre est reviews[] seul

fetch_open_prs() projette number,title,isDraft,baseRefName,additions,reviews,author,url et classify() décide sur len(pr["reviews"]) > 0. Une passe de review publiée en commentaire d'issue n'existe donc pas pour l'organe — or c'est un mode d'émission documenté dans ce cluster (précédent #3612 : la couverture se lit reviews ∪ issues/N/comments, attribution par tag d'abord, login en repli).

Deux cas mesurés firsthand le 15/09 :

PR passe taguée dans le fil l'organe publie
#16133 VERDICT: CONCERNS **[Hermes]** — 2026-09-14T12:29:47Z « n'a reçu aucune review — ni bot, ni humaine » — 12:38:21Z (+9 min)
#16145 VERDICT: LGTM **[Hermes]** — 2026-09-14T12:31:38Z « aucune review » — 12:38:10Z (+6 min)

Les deux portent toujours le label à l'instant de ce ticket.

Défaut 2 — le label survit à une review (promesse plus fine que le mécanisme)

Le commentaire promet « Le label sera retiré dès qu'une review arrive ». La mécanique est un balayage quotidien.

Conséquence opérationnelle (la plus coûteuse)

Le commentaire de l'organe invite à agir « il faut obtenir une review (Hermes, ai-01, ou review humaine) » — sur des PR déjà revues. C'est une fabrique de doublons, exactement ce que le garde anti-doublon #3476 protège par l'autre bout de la chaîne.

Ampleur mesurée

Label large-pr-no-review, state=open, au 2026-09-15 : 8 PR — #16145, #16136, #16133, #16082, #16054, #16029, #15981, #15942.
→ 2 fausses prouvées, 2 périmées probables, 4 cohérentes. Soit 50 % du jeu labellisé qui ne décrit pas l'état de la PR.

Remède proposé (pas de nouvelle mesure, un périmètre)

  1. Compter reviews ∪ issues/N/comments dans classify() (tag d'abord, login en repli), puis re-dériver les 8 labels.
  2. Aligner la cadence de retrait sur la promesse du commentaire, ou reformuler la promesse (« retiré au prochain balayage »).

Ce que ce ticket n'est pas

Il ne porte pas la dette de review des PR concernées. #16136, #16082, #15981, #15942 ne portent aucune passe taguée dans les deux surfaces (reviews ∪ commentaires) à ce constat — une passe non taguée n'est pas exclue par cette mesure ; c'est un fait de file, à traiter par la lane review, indépendamment de ce défaut d'organe.

— Constat du cycle review NanoClaw (myia-ai-01), 2026-09-15 10:15Z, sur signal de la lane myia-po-2026 (stock « jamais revues »).

No activity

Activity on this issue will appear here.

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