Skip to content

B.0 sur-accusation — répondre à une réserve en la citant crée une nouvelle réserve (cas #16441, laissé hors du fix #17065) #17071

Description

@jsboige

Title: B.0 sur-accusation — répondre à une réserve en la citant crée une nouvelle réserve (cas #16441, laissé hors du fix #17065)

Le cas

Sur #16441, un item blocking de check_unaddressed_nits.py provient d'une réponse à une réserve, qui cite la réserve traitée :

Re: @myia-ai-01 CHANGES_REQUESTED au head 432520cb — les deux blockers sont traités

CHANGES_REQUESTED y est en position de citation d'adresse (« la réserve que tu as posée au head X »), pas d'émission. L'organe le compte comme une réserve posée : une lane ne peut pas se dé-bloquer en répondant — la forme même de la réponse recrée le bloquant. C'est un piège sans sortie pour la lane porteuse.

Pourquoi hors du fix #17065 (décision du critère 4 de #17065)

Le fix #17070 traite le cas structurel : le délimiteur machine-lisible [ADJOINT PREFLIGHT]…[/ADJOINT PREFLIGHT]. Ici le discriminateur candidat serait la forme de la réponse (« Re: », mention @, « au head ») — c'est une heuristique de prose, exactement la classe que la mesure #14682 a bornée (sur-accusation d'un facteur 5 quand l'organe lit la prose libre). Écarter « CHANGES_REQUESTED » derrière un « Re: » écarterait aussi les vraies réponses qui RÉITÈRENT une réserve (« Re: … : le CHANGES_REQUESTED tient »).

Pistes candidates (à arbitrer avant implémentation)

  1. CITERS étendu aux formes d'adresse : ajouter aux fenêtres de _is_cited les préfixes Re: / @<login> / « au head » comme indices de citation — risque : faux négatifs sur réponses qui réitèrent.
  2. Voie de sortie côté lane (zéro changement d'organe) : répondre sans citer le mot (« Réponse à ta réserve du head 432520c : les deux blockers sont traités ») — documenter la forme sûre dans le protocole B.0 plutôt que d'élargir le scanner.
  3. Résolution par thread inline : la réponse est un thread inline résolu (isResolved: true) — vérifier si fix(iit,#2161): ICT-25 Ex1 + ICT-15e Ex1/Ex2 visibles au compteur — print-idiom C.1 #16441 avait un thread résoluble qui aurait dû lever l'item (la Voie 2 de B.0 existe déjà).

Reproduction

python scripts/check_unaddressed_nits.py 16441 --json → item [BOT-CONCERN]/[HUMAN] dont l'excerpt commence par Re: @myia-ai-01 CHANGES_REQUESTED.

Ampleur

Mesurée sur le sweep des 263 PRs ouvertes du fix #17065 (2026-09-20, pré-fix) : 1 PR porte un item blocking de cette forme (#16441 exactement, l'exemplaire mesuré par ai-01). Classe confinée mais piège sans sortie pour la lane porteuse — à arbitrer entre les trois pistes.

Grain: LIGHT/guard — lane myia-po-2025:CoursIA-2

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