diff --git a/scripts/check_pr_perimeter.py b/scripts/check_pr_perimeter.py index ccfa04f6e8..1f3a29f117 100644 --- a/scripts/check_pr_perimeter.py +++ b/scripts/check_pr_perimeter.py @@ -1572,7 +1572,24 @@ def _extract_line_candidates(text: str) -> list[tuple[int, str]]: continue candidates.append((idx, line)) continue - if _has_exclusivity(low) and any(w in low for w in STRONG_SCOPE_WORDS): + # #15833/#15846: the scope-word test goes through `_has_strong_scope`, + # NOT a plain substring scan. The whole-word guard already exists and is + # already used by the two other call sites (l.~1168, l.~1257); this one + # was never migrated, so it kept matching scope words INSIDE longer + # words. Two measured misfires, both on a line whose subject is not the + # PR perimeter at all: + # #15833 l.45 "`--dist loadscope`, jamais `load` [...] il est sur + # **uniquement** grace a ce groupement" -- 'scope' inside + # "loadscope". #12718 added the `(?