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

Адрес принадлежит одному плагину, а называют его все: 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
+27 -3
View File
@@ -3350,9 +3350,24 @@ JJJ): у профиля обязан быть один правильный от
**Адреса при этом наружу не поехали.** У них владелец есть: раскладку `docs/`
держит канон, каталог задач — плагин задач. `shared/` заводится **только для
фактов без владельца**; чужое с владельцем остаётся дома, а сходимость
упоминаний в чужих деревьях проверяется машинойэто следующая работа, записана
в TODO.
фактов без владельца**; чужое с владельцем остаётся дома, а сходимость упоминаний
в чужих деревьях проверяет машина`scripts/addresses.py`, тем же заходом.
**Что выяснилось при написании чекера: судить незнакомое нельзя.** Первый прогон
дал шесть находок, и три из них были не дрейфом, а свойством канона: `docs/**`
шаблон, а `docs/accessibility.md` в двух местах — пример **своей темы проекта**,
которую канон разрешает заводить произвольно. Список тем открытый, значит
незнакомое имя опровергнуть нечем, и проверка «есть ли такой документ у
владельца» ловила бы законное. Переименование при этом ловится точно и по другому
основанию: канон, убирая слот, кладёт его в карту переездов `RETIRED` — она и
есть перечень запрещённого. Рядом одна догадка: имя, почти совпавшее с
каноническим, читается как опечатка. Порог замерен по репозиторию — законные
имена дают до 0.64, опечатки от 0.91, и между ними пусто.
Четвёртая находка оказалась настоящей: `REMAINING.md` иллюстрировал смысловой
дубль адресом `docs/specs/recognition.md` — слотом, упразднённым в версии 1
канона, то есть при десяти нынешних.
Пример, который сам протух, — ровно то, ради чего чекер и писался.
### Что из этого следует
@@ -3368,3 +3383,12 @@ JJJ): у профиля обязан быть один правильный от
дом, последствие — нет: оно знает про место, а место про правило знать не
обязано. Дом, вобравший последствия, становится реестром потребителей и
устаревает быстрее их всех.
182. **Проверять надо запрещённое, а не незнакомое, когда словарь открыт.**
Открытый список делает «нет такого имени» неопровержимым, и проверка на
принадлежность перечню начинает ловить законное. Ловится ровно то, что
владелец объявил упразднённым: карта переездов — не побочный артефакт
миграции, а перечень запрещённого, и стоит она ровно там, где нужна.
183. **Замер порога записывается рядом с порогом.** Число, выбранное на глаз,
через месяц неотличимо от подогнанного под один случай. Обе стороны разрыва
названы (0.64 и 0.91) — и видно не только, что порог верен, но и насколько
он не на грани.