docs: update plans

This commit is contained in:
2026-09-26 15:36:49 +05:00
parent 73bcbcc26a
commit e2bd786d46
2 changed files with 36 additions and 7 deletions
+31 -5
View File
@@ -1,9 +1,9 @@
# План: линтеры, тесты и качество кодовой базы
> Статус: **draft — Q0–Q5 и Q6a–Q6f.3 готовы к ревью; Q6f.4 — следующий этап**.
> Статус: **draft — Q0–Q5 и Q6a–Q6f.5 готовы к ревью; Q7 — следующий этап**.
>
> Источник: `docs/backlog.md`, аудит конфигурации `web/`, e2e-тестов и
> инфраструктурных скриптов. Q0–Q5 и Q6a–Q6f.3 выполнены; Q6f.4–Q8 выполняются
> инфраструктурных скриптов. Q0–Q5 и Q6a–Q6f.5 выполнены; Q7–Q8 выполняются
> отдельными атомарными шагами.
>
> Цель: сделать качество кодовой базы воспроизводимым, убрать ложную «зелёность»
@@ -355,13 +355,37 @@ Firefox и WebKit для browser-critical спецификаций и mobile Chr
- Порог functions самый слабый (74.31% против 91.77%): добавление инструмента с
непокрытым `run` быстрее всего опускает именно его. Это ожидаемо, порог держит
запас.
- DOM-тесты `SchemaToolView`/controls и visual snapshots не начаты: браузерные
модули исключены сознательно, а baselines snapshots платформенные и должны
рождаться на Linux.
- DOM-тесты `SchemaToolView`/controls не начаты: браузерные модули исключены из
coverage сознательно, а их перенос в scope — отдельное решение вместе с visual
snapshots, см. Q6f.5.
Не применять один одинаковый smoke-сценарий к image-, text-, generator- и
file-result-инструментам.
#### Q6f.5. Visual snapshots — решение отложено
**Статус:** сознательно не делаем. Это решение, а не долг.
- Механика: `toHaveScreenshot` сравнивает отрендеренную страницу с PNG-baseline,
закоммиченным в `web/e2e/<spec>-snapshots/`. Эталон — картинка из прошлого
коммита, а не замысел дизайнера; обновление идёт через `--update-snapshots` и
ревью картинок.
- Почему отложено:
- визуальный язык сейчас активно меняется, поэтому каждый дизайн-PR
превращается в перегенерацию и ревью картинок, а соблазн обновить снапшот не
глядя появляется постоянно;
- baseline привязан к платформе (ОС, шрифты, особенности рендеринга): снимок с
Windows не совпадёт на `ubuntu-latest`, значит эталоны должны рождаться на
Linux, а локальные прогоны будут постоянно расходиться;
- при матрице из четырёх проектов плюс тема и viewport число файлов Baseline
растёт нелинейно.
- Что закрывает потребность сейчас: e2e-поведение (276 тестов), `lint:tokens` и
token audit, i18n-гейт, ручной чеклист `docs/checklist-manual-testing.md`. Не
закрыто только «элемент визуально наехал» — это ловится чеклистом и ревью.
- Условие возврата: визуальный язык стабилен, изменения редкие, ручной чеклист
перестал справляться. Тогда первым идёт `/kit` в двух темах, а эталоны
генерируются на Linux (docker-образ Playwright или отдельный CI-job).
### Q7. Укрепление lint-инфраструктуры
**Оценка:** M. **Зависимости:** Q1, Q2, Q3.
@@ -518,6 +542,8 @@ refactor, новые i18n-правила и исправление продук
- Какие executor/worker/fallback сценарии войдут в первый Q6 coverage PR?
- Нужны ли browser/mobile matrix и visual snapshots до coverage thresholds?
Решено: matrix — Q6f.3, coverage — Q6f.4, visual snapshots отложены с
обоснованием в Q6f.5.
- Какие unused design tokens можно удалить, а какие должны остаться?
- Какие browser/e2e проверки должны быть обязательными для PR, а какие —
отдельным ночным прогоном?
+5 -2
View File
@@ -156,5 +156,8 @@ non-blocking E2E не считается заменой локальному smo
тесты падают без ошибок. Локальный matrix поэтому медленный, но не нагружает
компьютер.
- Локальный baseline: 276 тестов, 276 passed, 0 skipped, 0 failed.
- Visual snapshots и coverage thresholds не часть matrix; они вынесены в
`docs/plan-codebase-quality.md` (Q6f.4).
- Visual snapshots сознательно не используются: baseline платформенный, а
визуальный язык сейчас активно меняется. Причина и условие возврата — в
`docs/plan-codebase-quality.md` (Q6f.5).
- Visual snapshots и coverage thresholds вынесены в
`docs/plan-codebase-quality.md` (Q6f.4, Q6f.5).