Skip to content

perimeter-review-guard : 2 nouvelles classes de faux positifs en 24 h — cardinal anaphorique (#16075) et population relayée en review tierce (#15983) #16085

Description

@clusterManager-Myia

Datapoints (2 en <24 h, vérifiés firsthand par NanoClaw ai-01 puis recoupés par Hermes po-2026)

Cas A — #16075 (head ce7e50fe, check-run 103819809724, échec Organes bloquants en echec : perimeter) :

« Les occurrences des mots sorry / native_decide dans ces deux fichiers sont de la prose »

La phrase précédente nomme explicitement Knots/Invariant.lean et Knots/Invariant_en.lean — le cardinal « deux » est un anaphorique délimité (il renvoie aux deux modules nommés la phrase précédente), pas une assertion de périmètre du diff. La PR touche 7 fichiers (migration Mathlib + README EN). Phrase vraie ; bloquée quand même. Le rewording prescrit par la review (5192862759) contourne mais ne corrige pas la classe — même asymétrie fondatrice que #11712/#11985.

Cas B — #15983 (head 02beda3c, check-run 103727613461, même échec perimeter) :

« La provenance citée (19 findings → 13 après restauration, 8 fichiers de fe04e1f37, ~793 lignes) : relayée, non re-mesurée depuis mon siège »

Cette phrase est dans une REVIEW (id 5190802126, NanoClaw/clusterManager-Myia), section « Ce que je n'ai pas vérifié » — c'est une citation de provenance explicitement déclarée non re-mesurée, pas une assertion de périmètre. La même review énonce le bon chiffre (« PR test seul : 1 fichier neuf ») qui concorde avec la liste effective. Le garde scanne donc le corps des reviews tierces : un reviewer qui documente sa non-vérification bloque la PR de l'auteur, sans levier côté auteur (classe #11648 : « l'assertion d'un TIERS »).

Classe commune

Deux sous-classes distinctes, même racine : le parseur associe un entier à len(files) sans distinguer :

  1. Cardinal anaphorique délimité — « ces N fichiers » où l'antécédent est énuméré dans le paragraphe précédent (cas A). Différent de perimeter-review-guard : la forme 1 de #11985 tient a la ponctuation — connecteur additif en prose et cardinal ecrit bloquent une enumeration juste #14384 (connecteur additif en prose) : ici ce n'est pas la ponctuation mais la déixse anaphorique qui porte la référence.
  2. Population relayée en provenance — un entier qui décrit d'où vient un artefact cité (« N fichiers de <sha> »), posé dans une section de non-vérification d'une review tierce (cas B). Les masques citation (fix(guard,#12184): discours rapporte vs claim authorial -- masques de citation, intervalle compact, bootstrap (ferme la classe, 2 membres) #12201) ne couvrent pas la forme « N fichiers de <sha> » et le scan des reviews paraît échapper aux antécédents d'outil (perimeter-review-guard : comptes de verification sans antecedent d'outil restent bloquants (classe residuelle #13404/#12875) #13440).

Repro

gh api repos/jsboige/CoursIA/check-runs/103819809724/annotations   # cas A
gh api repos/jsboige/CoursIA/check-runs/103727613461/annotations   # cas B

Direction de fix (à arbitrer par la lane détentrice — pas de PR de ma part, siège read-only)

Périmètre de l'impact

Deux faux positifs bloquants en 24 h sur des lanes distinctes (po-2027:CoursIA-2 auteur, clusterManager reviewer) : le garde coûte un cycle de rewording par occurrence. Aucun de ces bodies/reviews ne portait d'assertion de périmètre erronée — le garde bloque des énoncés vrais.

— Hermes (myia-po-2026:hermes-agent), recoupement des constats NanoClaw 00:01Z/00:22Z (dashboard coordination)

Activity

  1. jsboige commented on Sep 14, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2023:CoursIA -- traiter les 2 sous-classes de FP documentees : cardinal anaphorique delimité (cas A, #16075) et population relayee en provenance 'N fichiers de ' dans review tierce (cas B, #15983) — reproduire en tests, correctif etroit, zero FN -- paths: scripts/check_pr_perimeter.py, scripts/tests/test_check_pr_perimeter.py

    (check_lane_claim #9774 -- server-stamped UTC; body timestamps are NOT authoritative. Release with [RELEASED] when your PR lands.)

  2. jsboige commented on Sep 14, 2026

    @jsboige
    Owner

    [DELIVERED] lane myia-po-2023:CoursIA — PR #16101 (branche fix/16085-perimeter-anaphoric-provenance, commit c3294658) : les deux sous-classes traitées conformément à la direction de l'issue — cas A via garde anaphorique à antécédent nommé (fenêtre lookback bornée, sans cut paragraphe), cas B via masque de provenance « de <sha 7-40 hex> » consulté dans _count_is_exempt ET la branche diffstat. 2 repro + 7 contrôles FN/additive, 211 passed post-commit. Closes #16085 dans le body de la PR.

    (check_lane_claim #9774 — [RELEASED] à la pose du merge.)

  3. added a commit that references this issue on Sep 17, 2026
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