Перейти к содержанию

Отчёт об изменении и основания выводов

У локального изменения уже есть код, карточка ревью и передача состояния. Теперь нужно сформулировать результат так, чтобы каждое существенное утверждение имело понятное основание. В этом уроке создадим EVIDENCE.json: небольшой отчёт, связывающий вывод с файлом и способом получения знания. Он поможет отличить чтение исходников от ожидаемого поведения и фактического выполнения, которое в нашей подготовке не проводилось.

Отчёт нужен не ради длинного списка проверок. Его задача — дать читателю возможность оценить конкретный вывод. Если мы утверждаем, что URL берётся из манифеста, можно указать строку формирования объекта. Если говорим о результате limit=True, нужно обозначить, основан ли он на чтении условия или на запуске. Такой формат сохраняет доверие к полезному локальному результату, не добавляя выдуманных свидетельств.

Утверждение имеет предмет

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

Другой пример — приватность. По чтению public_pages видно, что служебные записи исключаются из публичного набора. Это не доказывает отсутствие утечек через все возможные маршруты настоящего сайта. Наш проект не имеет HTTP-сервера или редакторского API, а программа выводит только выбранные поля. Поэтому основание касается этой операции, на этих исходных данных. Если позднее появится новый экспорт, его доступ нужно рассмотреть самостоятельно.

В EVIDENCE.json у записи есть claim, basis и method. Формат прост и не привязан к внешнему сервису. claim содержит утверждение, basis называет исходник или предмет, method показывает способ: статическое чтение либо ожидаемый непроверенный результат. Сам JSON не делает вывод правильным. Его польза в том, что неточность становится видимой и обсуждаемой: можно открыть указанный файл и проверить, действительно ли он поддерживает формулировку.

Чтение не является запуском

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

Если самостоятельный запуск позже выполнен, добавьте отдельную запись с командой, состоянием и наблюдением. Не перезаписывайте старое ожидание так, будто оно всегда было полученным результатом. История происхождения помогает понять, когда уверенность выросла и почему. Например, читатель может сначала предполагать два результата по манифесту, затем увидеть фактический JSON и сравнить адреса. Это разные этапы исследования, хотя вывод может совпасть.

Не все утверждения подходят для одного способа проверки. Сохранение поля можно прочитать в коде; скорость загрузки требует измерения; внешний вид карточки требует страницы; отсутствие опубликованного черновика требует анализа выдачи и правил сборки. Наш калькулятор расходов также не подтверждает цену реального аккаунта. Поэтому отчёт не должен иметь единственную отметку «проверено» для всего проекта. Полезнее связать метод с каждым предметным утверждением.

Материальные ограничения

В отчёте отдельно записаны статусы runtime, model calls и deployment. Это помогает увидеть, какие части процесса отсутствуют. Мы не вызываем агента, поэтому кандидат не является наблюдением о качестве выбранной модели. Не размещаем код, поэтому локальная готовность не является успешной публикацией. Не запускаем программу, поэтому ожидаемые ошибки нельзя представить как полученные сообщения среды. Каждое ограничение имеет прямое отношение к тому, что читатель может заключить из пакета.

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

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

Отчёт также помогает принимать небольшое изменение независимо от будущего выпуска. Можно признать, что исходники и описание согласованы локальным чтением, сохранив запрет публикации. Это завершённый результат текущей области, а не обещание всех последующих этапов. Когда пользователь разрешит запуск или деплой, появятся новые основания и статусы. Их следует добавить к актуальному состоянию, а не считать, что давняя карточка автоматически разрешила дальнейшие действия.

Ожидаемый результат урока — две конкретные записи в EVIDENCE.json и явные статусы невыполненных этапов. Файл составлен автором и не является выводом системы мониторинга. Вы можете открыть его вместе с catalog.py и проверить смысл ссылки на основу. Если формулировка шире показанного кода, сузьте её или добавьте необходимое наблюдение в отдельном разрешённом шаге.

Вывод о скорости

Пусть агент написал, что после правки главная «загружается быстрее». Наша функция лишь выбирает записи и не обслуживает браузерную страницу. Без измерений такое утверждение не имеет основания. Его можно заменить конкретным фактом: результат содержит не более двух объектов вместо всего публичного набора. Этот факт может повлиять на будущий интерфейс, но сам по себе не доказывает изменение времени загрузки настоящего сайта.

Если позднее появится замер, укажите среду, страницу, способ получения и выбранную метрику. Один быстрый локальный просмотр не обязательно описывает мобильную сеть или повторный визит. Отчёт об основаниях помогает сохранить масштаб вывода: наблюдение относится к тому, что действительно измерено. Это особенно полезно при AI-генерации текста, которая легко превращает ожидаемое улучшение в уверенное утверждение о результате.

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

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

Полный файл EVIDENCE.json из состояния lesson-13. Полное самостоятельное состояние находится в архиве серии; фрагмент не заменяет остальные определения.

{
  "claims": [
    {
      "claim": "URL берётся из manifest",
      "basis": "catalog.py: row[url]",
      "method": "static_reading"
    },
    {
      "claim": "limit=True отклоняется",
      "basis": "type(limit) is not int",
      "method": "expected_not_run"
    }
  ],
  "runtime_checks": "not_run",
  "model_calls": "not_run",
  "deployment": "not_run"
}

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

Оглавление серии · Полные исходники

Первичные документы: Источник 1.