Skip to content

Восемнадцатая партия бэклога: запись с прежним текстом сообщения и сверка зеркал - #121

Merged
keyfire merged 3 commits into
mainfrom
backlog-batch-18
Sep 19, 2026

Conversation

@keyfire

@keyfire keyfire commented Sep 19, 2026

Copy link
Copy Markdown
Owner

Два пункта бэклога: запись списка принятых перестаёт совпадать, когда правило меняет текст сообщения, и никто не сверяет зеркала страниц сайта документации с их источниками.

Запись с прежним текстом сообщения

Запись списка принятых опознаётся по файлу, правилу и тексту сообщения, а текст принадлежит правилу. Одно из правил недавно изменило формулировку, и на живом проекте принятая находка с причиной вернулась как новая, а её запись стала устаревшей.

Теперь у сопоставления есть второй проход. Запись, которую не израсходовал точный текст, удерживает находку того же правила в том же файле, если выполнены оба условия:

  • текст записи не подходит ни под одну нынешнюю формулировку правила ни на одном языке;
  • в нём стоят значения, которые называет находка, в тех же кавычках и в том же порядке.

Второе условие отсекает чужие находки: имя в кавычках служит опознавательным признаком, а одиночная буква нет. Первое не даёт записи с нынешним текстом удержать другую находку. Так бывает у правила с двумя сообщениями, где у одного значений больше: исчезнувшая длинная находка не прикроет появившуюся короткую. Сообщение без значений сопоставляется только по тексту, потому что две такие находки нечем различить.

Проверка называет такие записи: строкой в текстовом отчёте, ключами baseline_reworded и baseline_reworded_entries в сводке json и в ответе MCP lint_paths. --write-baseline записывает находку под новым текстом и переносит причину записи. Страница linting в обеих редакциях говорит об этом.

Зеркала страниц документации

scripts/sync-docs.mjs копирует README расширения и журналы изменений в docs/, а сборка сайта делает свои копии. Поэтому отставшее зеркало видно только на GitHub: одно отстало на два абзаца и нашлось случайно. Задача docs в CI теперь запускает генератор после генераторов страниц команд и включает зеркала в git diff --exit-code.

Проверки

  • Новые тесты tests/test_baseline_reworded.py сначала падали: у apply не было параметра reworded, находка не удерживалась, причина при перезаписи терялась. Среди них есть тесты на отказ: другие значения, другой порядок, запись с нынешним текстом другого сообщения, сообщение без значений.
  • На корпусе в 1467 файлов со своим списком принятых отличие от main одно: запись с прежним текстом удержала свою находку. Других совпадений второй проход не дал.
  • Сверка зеркал на чистом дереве проходит, а после правки README без запуска генератора падает.
  • Имитация публичного клона без данных: 2473 пройдено. langguard, purity_scan и check_docs с каталогом данных – ноль замечаний.

Запись с прежней формулировкой удерживает находку того же правила в том же
файле, если её текст не подходит ни под одну нынешнюю формулировку, а
значения в нём те же, в тех же кавычках и в том же порядке. Точный текст
расходуется первым, сообщение без значений сопоставляется только по тексту.
Проверка называет такие записи (строка отчёта, baseline_reworded в json и в
MCP lint_paths), а --write-baseline переносит их причины на новый текст.

Конвейер CI сверяет и зеркала страниц сайта документации: sync-docs.mjs
запускается в задаче docs, и отставшее зеркало роняет проверку.
@keyfire
keyfire merged commit 72ec39b into main Sep 19, 2026
6 checks passed
@keyfire
keyfire deleted the backlog-batch-18 branch September 19, 2026 17:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant