адреса чужих документов сверяются с перечнем владельца

Адрес принадлежит одному плагину, а называют его все: docs/* стоит в
сорока местах конвейера, tasks/ROADMAP.md — в четырёх местах канона.
Переименование в каноне до них не доходит, и заметить это нечем:
протухший адрес попадает в механизм честной деградации ревью и выходит
правдоподобной строкой «документа в проекте нет», а не поломкой.

Перечень берётся из константы владельца — той, по которой он и так
проверяет раскладку. Судится упразднённое, а не незнакомое: список тем
канона открытый, и «нет такого имени» опровергнуть нечем; зато карта
переездов RETIRED и есть перечень запрещённого. Рядом одна догадка —
почти совпавшее имя как опечатка, порог замерен (законные до 0.64,
опечатки от 0.91).

Первый прогон: одна настоящая находка — REMAINING иллюстрировал
смысловой дубль адресом docs/specs/, упразднённым в версии 1 канона.

В гейте без glob: перечень лежит в .py, упоминания в .md, и коммит с
переименованием трогает только первую сторону.
This commit is contained in:
av
2026-08-09 15:12:46 +03:00
parent c6be879831
commit 872732989a
7 changed files with 302 additions and 31 deletions
+9
View File
@@ -32,6 +32,15 @@ pre-commit:
glob: "*.md"
run: python3 scripts/copies.py
# Без glob намеренно, и это третье исключение из правила «судим staged».
# Проверка сводит две стороны: перечень адресов лежит в константе скрипта
# владельца (`.py`), упоминания — в прозе плагинов (`.md`). Коммит, где
# переименован документ канона, трогает только первую сторону: по глобу
# `*.md` он бы проверку не разбудил, а расходится в нём именно вторая.
# Весь обход — семь сотых секунды.
- name: адреса документов
run: python3 scripts/addresses.py
# Самая дорогая проверка: каждый блок — свой запуск mermaid-cli со своим
# chromium. Отсюда и staged-файлы вместо обхода, и параллель внутри самого
# скрипта: репозиторий целиком — 3 секунды, один файл — одна.