15 KiB
CODE-REVIEW-681-r1
Issue: #681 — «Гигиена,
волна 4 — чек-листы testing-notes и дизайн-материалы выпущенных задач»
(эпик #674). Материал раунда: 708ed850f3ba5069d2507afcf066ae65939a5703
(один коммит поверх origin/dev @ c8fc8838, слитого в #679). Заход r1,
блокирующих циклов израсходовано 0 из 4.
Скоуп
Инфраструктурная задача (класс C — документация, плюс попутные правки в
scripts/, test/, demo/, .github/workflows/**, которые относятся к
классу B и покрыты тем же issue). Ни одного файла класса A с продуктовым
поведением: единственные касания src/** — комментарий в
src/styles/form-kit.styles.ts (ссылка на удалённый референс), без изменения
кода. Задача закрывает волну 4 эпика #674: убрать ручные чек-листы, которых
нет в PROCESS.md §2 (ни ручной фазы, ни одного отмеченного пункта за всё
время), и дизайн-материалы уже выпущенных задач (#505, #600), которые больше
не нужны в рабочем дереве. Прямая связь со SCOPE.md отсутствует, что и
ожидаемо для инфраструктурной гигиены — задача не добавляет продуктовое
поведение и не обязана называть Core user job; смотрю по PROCESS.md §8/§2.7
(соразмерность гейтов и полнота доказательств), а не по SCOPE.md.
Трейлеры коммита: Issue: #681, User-Visible: no — корректно, изменений в
пользовательском поведении нет, оба CHANGELOG (docs/CHANGELOG.md,
docs/CHANGELOG.ru.md) не тронуты, что и требуется при no.
Как проверялось
Материал — ровно 708ed850, git fetch/checkout не выполнялись. Дешёвые
гейты уже подтверждены зелёным Validate на этом SHA
(run 36341174458) — npx tsc --noEmit, npm test, npm run build +
сверка бандла не перегонялись повторно. Из моего бюджета:
- Прочитан весь диф (
git show --stat 708ed850, полныйgit diff origin/dev...HEAD, 84 файла, +245/−9902) и тело/комментарии issue — сверены все восемь пунктов чек-листа «Объём» и раздел «Чем доказано». - Точечно прогнаны два целевых теста, которые сам диф добавляет/меняет:
node --test test/testing-doc.test.mjs— 2/2 зелёные;node --test --test-name-pattern="issue 570|opening.*symbol|golden.*matrix" test/golden-matrix.test.mjs— 7/7 зелёные. - Проверена дисциплина «тест умеет падать» для нового мутанта
testing-doc-drops-manual-section: вручную применил его патч (## Чего не проверяет автоматика→## Ручные заметкивdocs/TESTING.md), прогналnode --test --test-name-pattern="#681 TESTING.md" test/testing-doc.test.mjs— тест покраснел, откатил файл,git statusчист. git grepпо перечню удалённых путей (testing-notes/{core-checklist, decor-and-backdrop,devices,dialogs-and-forms,geometry,history, infrastructure,live-and-integrations,README},505-summary-panel,600-settings-dialogs/{reference,screenshots,pairs},capture_summary_panel_505,README-ha-dialog-505) внеlegacy/,docs/reviews/,docs/specs/, changelog — единственные совпадения на600-settings-dialogsбез под-путейreference/screenshots/pairs: два прокомментированных упоминания (src/styles/form-kit.styles.ts:142,scripts/bundle-budget.mjs:554), явно помеченные «с #681 — в истории git», и команда восстановленияgit checkout f989fbfe -- .../referenceв самом README папки — не битые ссылки, а осознанные указатели на git-историю. Совпадений на реально удалённые пути не найдено.- Прочитаны и сверены файл-за-файлом:
docs/TESTING.md(711 строк, разделы «Пустое совпадение--test-name-pattern(#650)» и «Чего не проверяет автоматика»),scripts/mutation-registry.mjs(переименование мутанта и егоbecause),test/golden-matrix.test.mjs:847-855(67 id только изdemo/golden/matrix.mjs, без сверки с текстом доков), состав каталоговdocs/testing-notes/иdocs/design/,docs/design/600-settings-dialogs/(что осталось),demo/helpers/README-ha-dialog.md,.github/workflows/release-review.yml:210,demo/guard/README.md,docs/DEVELOPMENT.md:744-746,docs/specs/505-summary-panel-design-parity.md,scripts/check-inputs.mjs(нет упоминаний удалённогоcapture_summary_panel_505.mjs— правка там не нужна),demo/helpers/ha-dialog-fixture.mjs(маршрут/reference/отсутствует),docs/design/649-25d-stage6(диф пуст — пункт действительно не тронут).
Находки
Нет. High: 0. Medium: 0. Low: 0.
Что проверено и корректно
| Пункт «Объём» (issue) | Что сделано | Чем доказано | Проверка ревьюера |
|---|---|---|---|
docs/testing-notes/ |
9 файлов удалены (README-индекс + 8 чек-листов), правило #650 перенесено в TESTING.md, [manual]-пункты без автосвидетеля сведены в раздел «Чего не проверяет автоматика», реестр mutation-browser-guards.md (#659) сохранён |
test/testing-doc.test.mjs (лимит 800 строк, точный состав каталога), mutation-gate --check (заявлено 200/200) |
Каталог перечитан: единственный файл — mutation-browser-guards.md. Тест прогнан лично — зелёный, мутация красит его |
TESTING.md |
Приложения по issue (#197/#249/#272/#275/#288/#261, v1.43–1.44) сняты, ссылка на #650 работает | 800 → 711 строк | Строки посчитаны (wc -l → 711), разделы найдены на местах |
Мутант testing-notes-index-drops-section → testing-doc-drops-manual-section |
Патчит новый раздел TESTING.md, because объясняет риск («ручные проверки теряют дом») |
mutation-gate --id=… заявлен пойманным 1/1 |
Патч применён вручную, тест покраснел; старый id в реестре отсутствует (не задвоен) |
test/golden-matrix.test.mjs:847-855 |
Копия 67 id снята из geometry.md, список и способ измерения — только в demo/golden/matrix.mjs; тест проверяет длину/уникальность/присутствие в матрице, без сверки с текстом доков |
golden-matrix 52/52 |
Целевой прогон лично — 7/7 в затронутой области |
docs/design/505-summary-panel |
Удалён вместе с demo/capture_summary_panel_505.mjs и маршрутом /reference/ в ha-dialog-fixture.mjs; ссылка в 505-summary-panel-design-parity.md заменена на указатель в git-историю (git show f989fbfe:…) |
check-inputs --coverage чист |
Каталог отсутствует, маршрут /reference/ в фикстуре отсутствует, check-inputs.mjs не содержит упоминаний удалённого скрипта |
docs/design/600-settings-dialogs |
reference/, screenshots/, pairs/, ARCHIVE-README, ISSUE-FORM, OPEN-POINTS удалены; SPEC, IMPLEMENTATION-GUIDE, field-maps/, ACCEPTANCE, README (с командой восстановления) остались; вывод capture-скриптов перенесён в artifacts/ |
68 файлов/4,08 МБ → 13/0,70 МБ | Состав каталога сверен, README содержит корректную команду восстановления и таблицу оставшегося; два комментария в src//scripts/ явно помечены как историческая ссылка |
docs/design/649-25d-stage6 |
Не тронут (после стабильного v1.78.0) | — | git diff по каталогу пуст |
README-ha-dialog-505.md → README-ha-dialog.md |
Переименован и сокращён до фикстуры/#607/#609; путь в release-review.yml:210 исправлен |
release-review.test.mjs 7/7 (заявлено) |
Файл существует под новым именем, старое имя нигде не встречается, строка 210 workflow ссылается на новое имя; workflow подтверждённо thin/workflow_dispatch-only — зеркало в main не требуется |
demo/guard/README.md:25-28 |
«Запись здесь» заменена на явное указание — запись в verify-guard.mjs |
— (документационная правка) | Прочитан текст — README прямо говорит «Этот README записи не заменяет» |
DEVELOPMENT.md:748 |
Правило [auto: …] сужено до TESTING.md, упоминание testing-notes/ снято |
— | Диф прочитан, соответствует факту (каталог больше не хранит чек-листов) |
Трейлеры (Issue:, User-Visible: no), число видимое пользователю
отсутствует (задача не меняет ни одной пользовательской величины — единственные
числа в диффе — размеры документации, «одно число — один источник» не
применимо).
Чего не проверял
- Полный
npm run gate:small,mutation-gate --check,check-docs.mjsзаново не гонял — Validate зелёный на этом самом SHA (run 36341174458), а диф не даёт оснований сомневаться в этих гейтах (никакого продуктового кода, только документация/скрипты вокруг диагностик). Прогнал только два точечных теста, которые новы/изменены этим диффом, плюс ручную мутацию одного из них — этого достаточно для дисциплины «тест умеет падать» на задеваемых AC. node scripts/smoke-select.mjs --base <base> --head <head>не запускал: диф не касаетсяsrc/**поведения, только один комментарий вform-kit.styles.ts; браузерные смоки заявлены автором как не выбранные (smoke-select: прямых и зарегистрированных смоков 0) и это согласуется с характером изменений — правки не в рантайм-коде.demo/verify_ha_form_shell_609.mjs --captureв песочнице не поднимается (известный таймаут__card, не связанный с этой правкой) — автор сам пометил это как неподтверждённое прогоном; правка там ограничена путём вывода--capture(artifacts/ha-form-shell-609/), не логикой диагностики, риск минимален.golden:verify,pytest tests_backend,npm run invariants— не прогонял: диф не трогаетcustom_components/**/*.py, геометрию модели или ссылки на неё, и ни один визуальный сценарий не меняется (только текст документации о сценах, не сами сцены).- Полный
mutation-gate --check(весь реестр, не один мутант) не гонял — дорогой прогон, автор привёл результат зелёного прогона на этом дереве; целевая проверка одного нового мутанта показала, что дисциплина «мутация красит тест» соблюдена. - Размер дерева
docs/design/до/после не пересчитывал независимо (доверилсяls/git show --stat, что согласуется с заявленным числом 68→13 файлов).
Вердикт
Зелёный. Все восемь пунктов чек-листа «Объём» закрыты (кроме сознательно
отложенного 649-25d-stage6, который сам чек-лист требует не трогать сейчас),
удаления не оставили висячих ссылок или сирот, оба заявленных теста
(testing-doc.test.mjs, целевая часть golden-matrix.test.mjs) зелёные и
проверены на способность падать, новый мутант ловит регресс. High: 0,
Medium: 0.
Материал раунда
- Ветка:
issue/681-hygiene-wave4, коммит708ed850f3ba— ребейз его осиротит, и это нормально: ниже якоря, которые ребейз не меняет. - Дерево материала:
6be376e127daef6302df7a245a48d51e875e12d5git log --all --format='%H %T' | grep 6be376e127da - Тело issue:
dfbb1cd7358f3126f50fe5d03da58c207e0e2bdacefe736792772b891512dca8 - Вердикт конвейера:
green· High 0