Files
progcode/editorial/reviews/2023-08-draft.md
T
huncode 3d310bd605
Build and deploy / deploy (push) Successful in 16s
revise August 2023 e2e stability articles
2026-07-31 15:08:57 +03:00

9.9 KiB
Raw Blame History

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.