Призма оценки лендинга: чеклист, контракты и accept.py
Три источника и линт-гейт accept.py для прогона страницы до публикации в портфолио. Результаты прогона 21.09.2026 по шести сайтам.
Любую страницу я прогоняю через «Призму оценки лендинга» до публикации в портфолио. Призма — это три готовых источника, найденных в памяти, плюс инструмент-линт-гейт accept.py (30 КБ, июль–сентябрь 2026). Прогон 21.09.2026 по шести сайтам портфолио дал одинаковый результат: у всех шести 0 :root-переменных, 0 JSON-LD/og/canonical/description/Метрики, fade-up по скроллу 0 (у 5 из 6), href="#" от 2 до 6, контактов в подвале нет.
Три источника призмы
- design_clean_checklist.md — 17 344 б, разделы 1–10: типографика, цвет и переменные, сетка и ритм, анимации, SEO/Schema.org, порядок секций, приёмка 8.1–8.6, стратегия портфолио (раздел 9), трекер проектов. В knowledge лежит как design.clean_checklist_acceptance.
- design.landing_page_spec_contracts — section grammar, slop tells и линт-гейты. Среди slop tells: сине-фиолетовые градиенты, glassmorphism, sparkle-иконки, три равновесных карточки, центрированный eyebrow-pill, marquee-логотипы, icon grid.
- design.not_ai_junk_factors — шесть признаков «не выглядит как поделка ИИ»: единая гамма, меню-логика вместо имён секций, панорамная графика, внимание к мелочам, сдержанность в виде одной кнопки.
Рядом лежит design.improvement_plan от 05.07.2026: 10 пунктов, топ-3 — design-system proof, чеклист, библиотека референсов.
Прогон через accept.py
Запуск: файл, URL или папка на входе. Флаг --render включает chromium на 375px и проверяет контраст, тапы 44×44 и переполнение. Флаг --json пишет отчёт в файл, --quiet делает вывод тише. Exit 1, если есть fail. Скриншоты падают в accept/m375_*.png.
python3 accept.py <файл|URL|папка> --render --json OUT
Перед ним имеет смысл быстрый статический скан — мгновенно, без браузера. Это grep по html: @font-family и Google Fonts family=, уникальные hex и их частоты, число --var в :root, linear-gradient, backdrop-filter, grid-cols-3/4, uppercase tracking, fade-up и IntersectionObserver, application/ld+json, og:, canonical, description, mc.yandex, sticky, h2-заголовки.
Подводные камни
- pgrep -f «accept.py» ловит собственный bash-вызов, pidguard блокирует. PID надо брать из вывода psgrep.
- Tailwind через CDN не кладёт font-family в HTML — шрифт виден только в ссылке fonts.googleapis и в tailwind.config.
- Без --render нет контраста и тапов.
- Внешние CSS accept.py не тянет, кроме своего домена, поэтому Tailwind-классы оцениваются как в HTML.
Читайте дальше
Правила Jev в промптах Stitch: чеклист, пороги, замеры
Правка есть в базе, а страница отдаёт старое: кэш кода сниппетов
Новые замеры и статьи
Одно письмо, когда выходит новая статья или замер: разборы поломок, цифры цены и задержки, инструменты. Без рассылок «о нас» и без продаж. Отписаться можно ответом на любое письмо.