ИИ написал правдоподобную функцию, но вы ещё не можете объяснить её запасные значения и условия ошибки. Выделите код в 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. Проверьте каждую ссылку на исходник
Нажмите ссылку в ответе, чтобы открыть строки в «Быстрый просмотр». Используйте «Открыть файл», если нужны окружающие условия или вызывающий код.
- Проверьте путь, диапазон строк и версию.
- Прочитайте условие перед указанной операцией.
- Проследите значение до вызывающего кода, если ответ описывает видимый пользователю результат.
- Оставьте неподтверждёнными утверждения, для которых мало кода или данных выполнения.
Чтобы утверждать «этот результат всегда останется итоговым», проверьте, какие пути ведут к процитированному присваиванию и может ли что-то записать значение позже.
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, когда отдельный блок требует внимательного чтения.