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

Нужны Yenpo, локальный проект и доступ к провайдеру с поддерживаемым API. Объяснять код может другая модель, не та, которая его написала.

1. Подключите свою модель

В настройках откройте «Модели», добавьте провайдера кнопкой плюс и выберите его как «Текущий провайдер». Укажите тип API, «Базовый URL», «Способ входа» и точный ID доступной модели.

Yenpo предлагает три типа API: «OpenAI Compatible» (OpenAI Chat Completions), «OpenAI Responses» и «Anthropic Messages». Выбирайте протокол по документации сервиса, а не только по названию модели. «Получить список» необязателен: если списка нет, введите ID вручную.

Ключи вводите только в настройках. Начните с кода, который разрешено отправлять провайдеру. Запрос может включать связанный код, найденный AI Reader за пределами выделения; см. данные и разрешения. Пути URL и ошибки описаны в руководстве по подключению.

2. Приложите код для объяснения

Откройте файл, выделите функцию или небольшой блок. Начните новый диалог AI Reader и выберите «Объяснить выделение». Проверьте файл и строки во вложении, отредактируйте черновик и отправьте. Оставьте «Разрешить изменения» выключенным.

Попросите проверяемые подробности:

Объясни выделенный код в порядке выполнения. Для каждой ветви укажи вход или состояние, приводящее в неё, возвращаемое значение и побочные эффекты. Дай точные ссылки на строки для каждого утверждения. При необходимости прочитай вызывающий код или тесты и отдели факты кода от предположений о входных данных. Не редактируй файлы.

Выделение задаёт начальную точку. Для старого изменения откройте соответствующее сравнение Git и спрашивайте о нём: текущий файл мог измениться.

3. Проверьте каждую ссылку на исходник

Нажмите ссылку в ответе, чтобы открыть строки в «Быстрый просмотр». Используйте «Открыть файл», если нужны окружающие условия или вызывающий код.

  1. Проверьте путь, диапазон строк и версию.
  2. Прочитайте условие перед указанной операцией.
  3. Проследите значение до вызывающего кода, если ответ описывает видимый пользователю результат.
  4. Оставьте неподтверждёнными утверждения, для которых мало кода или данных выполнения.

Чтобы утверждать «этот результат всегда останется итоговым», проверьте, какие пути ведут к процитированному присваиванию и может ли что-то записать значение позже.

4. Разберите небольшой пример построчно

Допустим, ИИ написал такую JavaScript-функцию в учебном проекте:

function displayName(user) {
  if (!user) return 'Guest';
  const name = user.name?.trim();
  return name || 'Guest';
}

Здесь строки считаются от начала блока. В своём проекте используйте реальные номера строк файла.

Утверждение Строки Что подтверждает код
Без пользователя возвращается запасное значение 2 null, undefined или другое ложное значение возвращает "Guest" до обращения к имени
Имя из пробелов заменяется запасным значением 3–4 trim даёт "", затем возвращается запасное значение
Любые некорректные данные безопасны 3 Имя вроде 42 вызывает TypeError, поскольку метода trim нет

Последнее утверждение нужно исправить. Опциональная цепочка здесь обрабатывает null и undefined в имени, но не проверяет все типы. Прочитайте вызывающий код или валидатор, чтобы понять, может ли число попасть в эту функцию.

5. Оспорьте объяснение и выполните проверку

Если ответ обещает слишком много, уточните:

Перепроверь утверждение, что любые некорректные данные безопасны. Что будет, если имя — число? Укажи операцию, которая завершится ошибкой, и найди, предотвращает ли такой вход вызывающий код или валидатор. Если это не установлено, оставь вопрос открытым.

Проверьте отсутствие пользователя, имя из пробелов, обычное имя с пробелами по краям и числовое имя. Запустите минимальный подходящий тест средствами проекта и прочитайте результат.

Не меняйте файл во время сверки ссылок. Если он обновился, выделите новый код и спросите снова, чтобы не сопоставлять старое объяснение с новыми строками.

6. Сохраните то, что удалось понять

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

Применяйте тот же способ при разборе шага Claude Code или ветки Codex, когда отдельный блок требует внимательного чтения.