# Interview Notes Записи ответов Олега на вопросы по методологиям AI-разработки. Используется для создания голоса Henry в статье. --- ## Vibe Coding **Вопрос:** Ты когда-нибудь работал в режиме vibe coding? Что получилось? Когда это уместно, когда нет? **Ответ:** Термину меньше года, а он уже стал практически синонимом AI-разработки. Наверное потому что удобно звучит — "vibe coding", "я навайбкодил". Но в этом и проблема: vibe coding сохраняет негативные коннотации (недостаточно профессионально, ненадёжно, абы-как), и при этом обобщает весь AI-кодинг, перенося этот негатив на всё поле. Поэтому и пишу эту статью — давайте разберём где vibe coding, а где другие подходы. **Когда использую:** Dev tools не попадающие в прод, прототипы, эксперименты, side projects. Надо признать — во многих случаях работает неплохо. **Но не чистый vibe:** Обычно всё равно проверяю изменения — хотя бы быстро просматриваю git diff перед коммитом. Если задача большая — прошу агента коммитить небольшими порциями, потом просматриваю. **Хорошие практики даже при vibe coding:** 1. Покрывать код тестами и проверять что проходят (+ typecheck, lint, prettier) 2. Просить другого AI агента сделать ревью проделанной работы 3. Человеческое внимание для важных вещей — если что-то критично, лучше убедиться самостоятельно Не говорю что нужно всегда досконально проверять если код работает, но минимальный контроль — да. --- ## Spec-Driven Development **Вопрос:** Пробовал GitHub Spec Kit или писать spec перед кодом? Это будущее или overkill? **Ответ:** Не знал что есть прям такой фреймворк, но оказывается именно так и делаю большинство задач над продакшен проектами. Пишу подробную спецификацию о том что хочу сделать. Не для каждой задачи — когда нужно начать новый значительный домен функционала. **Что могу подтвердить:** - Время на spec иногда > времени на код. Да, чёрт возьми — это правда. Бывает полдня пишешь спеку, потом уходишь пить кофе, а Клод за это время успевает всё закодить. Несправедливо! :) - Для мелких задач — действительно перебор - Созданная спека сохраняется как CLAUDE.md для продолжения работы позже **Важно:** так делаю для больших разделов. Одним запуском AI агента проблема не решается. Часто потом работа идёт недели или месяцы, и спека используется для быстрого старта новых сессий: "прочитай спеку, найди код". **Проблема подхода:** изначальное решение меняется в ходе разработки. Находятся другие подходы, меняются пути и названия функций. Приходится держать спеку в актуальном состоянии — дополнительная когнитивная нагрузка на человека и AI. Хорошо держать документ в коде и коммитить изменения — тогда удобнее видеть что изменилось. **Лайфхак:** Последнее время делаю стадию разработки спеки не в одиночку, а совместно с Claude Desktop — отличный инструмент для research, brainstorm и metaprompting. Прорабатываю решения, делаю глубокий research, нахожу архитектурное решение, прошу Claude Desktop собрать полноценную спецификацию. Сохраняю в проект и запускаю Claude Code работать по ней. --- ## Agentic Coding **Вопрос:** Как используешь Claude Code? Даёшь автономию или контролируешь каждый шаг? Что доверяешь агенту, что нет? **Ответ:** Вижу много восторженных отзывов о Ralph Loop и может быть хотел бы попробовать. Но честно говоря, этот подход меня смущает. **Главный вопрос:** какие задачи можно ставить агенту, чтобы настолько долго оставлять его работать автономно? Смотри мой ответ про Spec-Driven Development — написание спецификации занимает кратно больше времени чем её выполнение. Меня пугает: сколько времени нужно потратить на постановку задачи, чтобы её потом выполнять 14 часов? Я хотел бы найти применение такому подходу, но пока скорее озадачен и не вижу прямых применений в своих проектах. **Призыв к читателям:** может быть вы в комментариях поделитесь кейсами где Ralph Loop классно работает? --- ### Дополнение: Permissions в Claude Code Пермишены — это боль. Понятно зачем они, но честно говоря они ломают всю концепцию. Сидеть и следить как Claude Code делает свою работу и на каждый чих спрашивает разрешение? Это вообще не тот опыт который хотелось бы получить от AI разработки. Они больше расфокусируют внимание. **Мои практики:** - Прошу Claude Code: "возьми все tools этого MCP и добавь разрешение в `.claude/settings.json`". Проактивное заполнение работает лучше чем кликать вручную - Не встречал ничего такого, чего нельзя было бы вернуть с помощью `git reset` - Иногда включаю `--dangerously-skip-permissions`, но поглядываю не пошёл ли Claude открывать банковский счёт на моё имя **Вывод:** это вопрос который предстоит ещё переизобрести и найти какой-то компромисс. --- ## AI Pair Programming **Вопрос:** Copilot/Cursor — как pair programmer или просто autocomplete? Реально ли это "парное программирование"? **Ответ:** Помню ранние времена, когда AI автокомплит появлялся. Честно? Пробовал в несколько заходов — и каждый раз полностью отключал. **Почему не зашло:** предложения написать мою функцию по названию только мешали и сильно сбивали с мысли. Знаю что многим заходит, но мне почему-то нет. Стандартных подсказок IDE мне всегда хватало. **Почему так:** когда пишу код, я уже мысленно представил что именно хочу получить. Предлагаемое агентом мне уже не нужно. Я делаю ресёрч ДО того как разобраться как это написать в коде. **Где реальное pair programming:** Claude Desktop с хорошо настроенной системной инструкцией проекта + Filesystem MCP чтобы он мог читать реальные файлы из репозитория. Вот тогда — да, могу почувствовать что общаюсь с кем-то кто понимает мою проблему и реально помогает в её решении. **Вывод:** Autocomplete ≠ pair programming. Настоящее pair programming — это диалог, когда AI имеет контекст твоего проекта. --- ## Human-in-the-Loop **Вопрос:** Как часто AI делает что-то без твоего одобрения? Где граница доверия? **Ответ:** Редко останавливаю Claude Code во время работы. Но иногда бывает — когда вижу что он пошёл не по тому пути. Признаюсь, часто это потому что я просто дал недостаточно деталей — я это сразу понимаю и дописываю. **Permissions ≠ HITL.** Не согласен что permissions это реализация Human-in-the-Loop. Это слишком низкоуровневые запросы — по ним не всегда видно какую задачу сейчас решает агент. **Настоящий HITL = Planning Mode.** Предпочитаю запускать режим планирования для всех кроме элементарных задач. Вот это реальный контроль на уровне задачи. **Проблема современных агентов:** они не очень понимают где те моменты когда нужно остановиться и спросить. Редко встречал точное попадание. Думаю это то, что ещё предстоит реализовать в будущем. Так же как и чтобы агент отвечал "я не знаю". Видимо современные модели на это не способны в широком смысле. **Базовое правило:** проверка кода в конце работы агента — это обязательное условие для профессиональной работы. --- ## TDD + AI **Вопрос:** Пишешь тесты первыми при работе с AI? Работает ли классический TDD с генеративным AI? **Ответ:** Это сто процентов очень важный подход. Стараюсь практиковать его на ключевом функционале проекта. **Tests as Specification:** Да, это важный момент. Покрываю тестами значимые участки и всегда инструктирую агента проверять тесты. Это часть спецификации. **AI пишет тесты первым:** Обычно так не делаю. Только когда есть хорошая базовая спецификация — например, документация на API которую легко превратить в набор тестов. Но чаще: спецификация → базовая имплементация → покрытие тестами → дальнейшая работа. **TDD как guardrails:** Думаю там это тем более важно. Но продолжу скепсис — а кто будет писать тесты? Если честно, написанная подробная спека и подробные тесты — это уже 80% работы. **Опасность AI-тестов:** Тесты нужно проверять самостоятельно. Не раз был очевидцем когда агент писал тесты которые "проходили" потому что он использовал замоканные запросы. Иногда это funny, иногда может загубить дальнейшую работу. Правильные тесты — это надёжный фундамент дальнейшей работы. --- ### Дополнение: Контекст агента Тесты — это часть того, что я бы назвал **"контекстом агента"**. Это крайне важная составляющая агентского кодинга, значительно повышающая автономность агента и его способность доведения решения до конца. Условно говоря: если вы дебажите проблему, делаете фичу — подумайте как дать возможность AI агенту самостоятельно проверять результат его работы. Это могут быть тесты, MCP инструменты с доступом к браузеру. Наличие таких способностей повышает эффективность агента в разы. **Где должен быть человек:** в правильном месте — для оценки итогового результата или решения. Нужно стараться исключить его из низкоуровневых мелких итераций где агент лучше действует самостоятельно. --- *Created: 2026-01-22*