Tvijo wiki
Каталог

Темы

Проверьте, что сайт на самом деле отдаёт, прежде чем называть его пустым

Главная страница говорит, что сайт сам о себе рассказывает, а не что он отдаёт. Прежде чем писать, что на сайте нет данных, обойдите его sitemap и robots.txt скриптом и читайте числа из сохранённого результата. Одного неверного вердикта достаточно, чтобы это автоматизировать.

🎯 Для Любой, кто проверяет, сравнивает или пишет о сайте — вручную или с агентом

📚 Вы узнаете
  • Почему первый экран — не доказательство
  • Как работает детерминированная проверка поверхности и что она записывает
  • Как не допустить обратной ошибки — верить странице только потому, что она ответила HTTP 200

👀 Ошибка

9 сентября 2026 мы сделали вывод, что на одном сайте с данными о компаниях «полезных данных нет». Вывод сделан по одной странице — главной. Тот же сайт отдавал рейтинг тысячи лучших с источниками и каталог из 56 138 профилей. Главная страница ни о том, ни о другом не говорила так, чтобы это заметил быстрый взгляд. Вердикт оказался неверным, а прозвучал уверенно.

Ошибка общая. Главная страница — это рассказ сайта о себе. Отдаёт ли он то, что заявляет, выясняется на страницах за ней.

🔬 Что делает проверка поверхности

Мы заменили привычку командой. Для домена она читает sitemap и robots, обходит перечисленные там адреса и записывает для каждой страницы статус и значения, заданные контрактом. Контракт перечисляет именованные величины и выражение, которое читает их из видимого текста страницы с вырезанными скриптами и разметкой. Величиной может быть напечатанное число или число совпадений, например сколько на странице ссылок определённого вида.

Результат пишется в файл этого домена, а команда завершается с кодом ошибки, если какое-то значение нарушает своё правило. У серьёзности три уровня: info попадает в отчёт, warn и error роняют запуск.

Сегодня в репозитории контракты для 7 поверхностей, а тестов проверяющего — 21.

⚖️ Второе правило: 200 — это не данные

Страница со статусом 200 может быть пустой. Мы видели, как все разделы панели отвечали 200 с нулями, потому что снимок под ними был пуст. Приёмка идёт по содержимому, например «число больше нуля», а не по коду статуса. Одна и та же величина на двух страницах имеет одно определение. Если две страницы показывают разные подписи для одной и той же величины без перехода между ними, это дефект, о котором надо сообщить.

🛠️ Практика: напишите первый контракт

  1. Выберите один сайт и перечислите пять фактов, которые он заявляет: число товаров, число рейтингов, дата последнего обновления.
  2. Для каждого найдите страницу, где факт должен быть, и напишите регулярное выражение, читающее число из видимого текста.
  3. Добавьте правило: значение должно существовать и быть выше выбранного порога.
  4. Напишите небольшой скрипт: получает sitemap и robots, обходит каждую страницу по разу с вежливой паузой и применяет контракт.
  5. Сохраняйте результат со временем запуска. Не перезаписывайте молча. Храните предыдущий запуск для сравнения.
  6. Решите, какие сбои предупреждения, а какие ошибки, и пусть скрипт возвращает верный код.

✅ Проверьте себя

  • Намеренно нарушьте правило, например указав несуществующую страницу. Скрипт завершается с ошибкой, а в сохранённом файле видно, какое значение не прошло.
  • В файле результата перечислены все посещённые адреса и статус каждого.
  • Две страницы с одной и той же величиной дают одно число.
  • Коллега может воспроизвести ваш вердикт запуском команды, а не доверием к вашему описанию.

🚧 Когда это не работает

  • Страницы, которые строит скрипт в браузере. Если числа появляются только после выполнения JavaScript, обычный запрос их не увидит. Нужен шаг рендеринга или конечная точка с данными.
  • Закрытые за входом разделы. Проверка не может судить о том, до чего не достаёт. Скажите это в отчёте.
  • Меняющиеся макеты. Регулярное выражение ломается при смене формулировки. Пересматривайте контракты при изменении страниц.
  • Тяжёлые сайты. Обход десятков тысяч страниц требует бюджета и паузы. Берите выборку и говорите, что это выборка.
  • Смысл. Проверка доказывает, что значение есть. Верность она не доказывает. За истиной идите к источнику.

📊 Доказательства

Что измерено Число поверхностей с контрактом и тестов проверяющего в нашем репозитории; исходная ошибка вердикта от 9 сентября 2026
Когда Репозиторий прочитан 3 ноября 2026, 22:06 UTC
Артефакт Файл контрактов поверхностей (7 поверхностей) и файл тестов проверяющего (21 тестов) в нашем закрытом репозитории; запись об инциденте в заголовке файла контрактов
Ограничение Числа о проверенном сайте взяты из нашей записи об инциденте. Для этой страницы мы сайт заново не обходили

➡️ Дальше

Как мы помечаем источники и даты, читайте в Источниках, датах и значении слова «проверено», а как держать утверждения привязанными к доказательствам — в AI judging.

Источники

Связи опубликованных статей. Выберите узел, чтобы открыть статью у заголовка.

100%
→ Связанные статьи← Ссылаются сюда⋯ Та же тема
Связи статей · клавиатура / текст

💬 Комментарии

Комментарии публичны и модерируются. Не публикуйте персональные данные.
  • Комментариев пока нет. Будьте первым!

Следующие шаги

ИИ-агенты и MCP простыми словами

Векторная база — это карта, а не источник: чему нас научил поиск

Векторная база находит фрагменты, близкие по смыслу к вашему вопросу. Она не знает, какие из них верны или актуальны. Считайте каждое попадание указателем: откройте названный файл, сверьте хэш, а числа берите из артефакта, а не из найденного абзаца.

ИИ-агенты и MCP простыми словами

Когда неизвестно, сколько стоил вызов модели: заморозка, затем сверка

Иногда вызов модели обрывается по таймауту, и вы не знаете, списал ли провайдер деньги. Никогда не записывайте это как ноль. Пометьте как неопределённое, остановите новые платные вызовы и пусть названный человек сверит это с выпиской провайдера. Отказы до генерации — исключение.

ИИ-агенты и MCP простыми словами

Как разбить большую задачу для дешёвой модели: урок 24 000 байт

Дешёвая модель хорошо справляется с одной небольшой чёткой задачей и плохо — с большой кучей. Мы ограничиваем задачу 24 000 байт и отклоняем большие до вызова любой модели. Режьте по единицам — один файл или одна страна на задачу — и проверяйте размер до запуска.

ИИ-агенты и MCP простыми словами

Навыки, MCP-инструменты и правила: три способа дать агенту возможности

Агенты получают способности по-разному. Правило ограничивает, что они делают, навык говорит, как делать работу, а MCP-инструмент позволяет вызывать функцию. У каждого свой риск, поэтому объявляйте все три в реестре и проверяйте тестом, что ничего не существует вне списка.