9.9 KiB
P66 — август 2023: стабильные e2e-тесты
Граница пакета
Подготовлены только пять sidecar-файлов для последующей интеграции главным агентом:
web/scripts/upgrade-2023-08.mjs;editorial/reviews/2023-08-draft.md;web/public/assets/editorial/2023/e2e-stability-2023-flake-classification.svg;web/public/assets/editorial/2023/e2e-stability-2023-wait-contract.svg;web/public/assets/editorial/2023/e2e-stability-2023-triage-loop.svg.
Три замены используют точные archive slug и не содержат date или author:
| Slug | Роль | Основной текст |
|---|---|---|
editorial-2023-08-practice-e2e-stability |
практический маршрут | 9 694 знака |
editorial-2023-08-mechanism-e2e-stability |
модель контрактов | 9 423 знака |
editorial-2023-08-field-e2e-stability |
triage и rollback | 9 443 знака |
Registry, README, articles.json, очередь, Git и файлы других агентов не
менялись. Пакет не коммитился и не пушился.
Историческая опора
Все источники являются официальными и были доступны к концу августа 2023:
- Playwright v1.37.0 — опубликованный GitHub release от 10 августа 2023.
- Auto-waiting, тег v1.37.0 — для
clickперечислены attached, visible, stable, receives events и enabled; это actionability target, не бизнес-успех. - Retries, тег v1.37.0 — при failure worker с браузером отбрасывается, retry идёт в новом worker;
flakyописывает failed → passed, а не причину различия. - Trace Viewer, тег v1.37.0 — записанный trace включает actions, snapshots, action log, source и network log;
on-first-retryотносится к первому retry. - Best Practices, тег v1.37.0 — изоляция, user-facing locator и web-first assertions.
Саморевью 1 — факты и модель
- Разведены selector, actionability, readiness condition, retry и evidence.
Уникальный locator и успешный
clickнигде не выдаются за подтверждение продуктового результата. failed → passedназван статусом двух попыток; не утверждается, что это реальный flake, причина сбоя, медленная сеть или совместимость браузера.- Trace описан как evidence конкретной записанной попытки. В текстах нет заявления, что был открыт настоящий trace, video, browser или CI-report.
- Fixture создаёт только marked synthetic objects в памяти. У него нет URL,
реального
trace.zip, video, duration, browser name, файлового чтения, запуска Playwright или обращения к сети. Он не оценивает настоящий флак, время или compatibility. - Отрицательные ветки отделяют множественный selector от отсутствующего readiness, отвергают расходящуюся retry-policy и подмену synthetic evidence реальным artefact. План запрещает увеличивать timeout или переписывать selector без evidence и требует condition, совпадающий с evidence.
Саморевью 2 — голос, полнота и объём
- Голос М6 соответствует 2023 году: спокойная системная практика без неподтверждённого опыта управления всей организацией. Утверждения привязаны к контракту, попытке, owner, rollback и следующей проверке.
- Первые два абзаца каждой статьи называют проблему и цену: retry маскирует первый отказ, а общий timeout ухудшает обратную связь.
- В каждой статье есть доступная таблица, самостоятельный SVG с содержательным
altи подписью, исполнимый fixture, ordered route «симптом → причина → проверка → действие», ограничения и следующий шаг. - Проверен объём основного текста без списка источников: 9 694, 9 423 и 9 443 знака — внутри требуемых 5 000–15 000 и целевого практического диапазона около 8–10 тысяч.
- Убраны обобщения без объекта. Timeout назван верхней границей ожидания, а не readiness condition; trace не назначен заменой причинного анализа.
Саморевью 3 — визуал, безопасность и выпуск
- Все три SVG прошли XML-проверку. Safety scan не нашёл
script,foreignObject,javascript:,data:imageи event-handler attributes. - Каждый SVG отрендерен Sharp при ширине 375 px. На визуальном проходе проверены контраст, отсутствие обрезания текста, стрелки переходов и читаемость ключевых развилок: selector/readiness/retry/evidence.
- Автоматический аудит подтвердил slug, import-safe CLI/export, отсутствие
date/author, объём, таблицы, figure/caption, пример, ordered route, источники и наличие visual assets. - Production build и registry-аудит намеренно не выполнялись: это sidecar без интеграции, и их выполняет главный агент после добавления revisions в общий registry.
Выполненные команды
| Команда | Результат |
|---|---|
node --check web/scripts/upgrade-2023-08.mjs |
PASS |
node web/scripts/upgrade-2023-08.mjs --verify-fixture |
PASS fixture: 18/18 assertions после независимого model review |
npm run audit:draft -- scripts/upgrade-2023-08.mjs из web/ |
PASS для трёх slug |
import-safe import без date/author |
PASS import-safe: 3 revisions without date/author |
xmllint --noout для трёх SVG |
PASS |
| SVG safety scan | PASS, совпадений нет |
| Sharp render 375 px для трёх SVG | PASS, выполнен визуальный проход |
Интеграционное ревью главного агента
Проведён отдельный проход после передачи sidecar. Проверены первоисточники
Playwright по тегу v1.37.0: actionability для click не равна продуктовому
readiness; retry запускается в новом worker; flaky означает только
failed → passed; on-first-retry относится к записи trace первого retry.
Эти границы оставлены в тексте и в fixture, а не заменены общими обещаниями
«стабильности».
Model review нашёл две скрытые возможности подмены вывода. Классификатор теперь
принимает только согласованную retry-policy: начальная и первая повторная
попытки обе должны быть частью одной настройки с configuredRetries = 1.
План изменения readiness теперь обязан использовать в точности condition из
evidence; нельзя собрать правильную классификацию и затем предложить другое
ожидание. Добавлены отрицательные fixture-сценарии для обоих случаев.
Повторные результаты: node --check — PASS, fixture — 18/18, черновой
аудит — 9 694 / 9 655 / 9 562 знака, строгий archive audit — PASS для трёх
archive slug. Registry содержит 193 уникальные ревизии. XML и safety scan
визуалов чисты; три PNG-рендера при 375 px просмотрены вручную. npm run build
сгенерировал 374 статические страницы без ошибки.
Ограничение при передаче
Этот пакет не является доказательством стабильности существующих e2e-тестов. Главному агенту при интеграции нужно добавить только эти три revisions в общий overlay, затем выполнить строгий archive audit и production build в контексте репозитория. Реальные trace, browser run, CI-данные, flake rate и browser compatibility остаются за пределами sidecar.