ИИ-инструменты для кода прошли путь от автодополнения до работы с пониманием репозитория. Cursor, GitHub Copilot, Claude Code, агенты в стиле Codex и IDE-ассистенты умеют читать файлы, предлагать правки, запускать тесты, объяснять ошибки и иногда провести небольшую функцию от задачи (issue) до пул-реквеста.
Это меняет разработку. Но не отменяет инженерную дисциплину. Выигрывают не те команды, которые дают ИИ свободно писать код. Выигрывают команды, которые превращают ИИ в управляемый процесс: чёткая постановка задачи, контекст репозитория, небольшие правки, тесты, проверка и ясное распределение ответственности.
Эта статья — операционная модель.
Репозиторий остаётся источником истины. ИИ-ассистент может предлагать и редактировать. Но выпускать изменение в продакшен по-прежнему решают тесты, код-ревью, проверка безопасности и приёмка продукта.
Что изменилось
Старые ассистенты для кода дописывали следующую строку. Ассистенты, понимающие репозиторий, умеют:
- Искать и читать по всей кодовой базе.
- Выводить локальные паттерны.
- Менять несколько файлов сразу.
- Генерировать тесты.
- Запускать команды.
- Разбирать сбои.
- Готовить черновики описаний пул-реквестов.
- Учитывать замечания из проверки.
Это большой сдвиг. Ассистент теперь может работать на уровне задачи, а не только строки. Но та же способность создаёт риск: слишком широкие правки, неверно понятая архитектура, небезопасные обходные пути, скрытые регрессии и правдоподобные объяснения неправильных изменений.
Процесс должен ограничивать задачу.
Используйте ИИ там, где форма задачи ясна
Хорошие первые применения:
| Задача | Почему работает |
|---|---|
| Добавить небольшое состояние интерфейса | Локальный паттерн виден и тестируем |
| Отрефакторить повторяющуюся вспомогательную функцию | Механично и удобно проверять |
| Добавить валидацию и тесты | Поведение можно точно описать |
| Починить падающий тест | Сбой даёт конкретную обратную связь |
| Обновить документацию по коду | Источник истины поддаётся проверке |
| Сгенерировать черновик миграции | Полезно при внимательной проверке |
Плохие первые применения:
| Задача | Почему рискованно |
|---|---|
| Переработать базовую архитектуру | Нужны глубокая ответственность и понимание компромиссов |
| Изменить модель аутентификации | Безопасность и продуктовое поведение тесно связаны |
| Переписать большие модули | Проверка становится невозможной |
| Бездумно добавить зависимость | Риск для цепочки поставок и сопровождения |
| Оптимизировать без замеров | Легко создать лишнюю сложность |
| Работать с секретами или учётными данными | Слишком большой радиус поражения |
Лучший ИИ-процесс разработки начинается там, где корректность можно проверить.
Краткое описание задачи
Прежде чем просить ассистента писать код, составьте краткое описание задачи (бриф):
- Цель.
- Вероятные файлы или модули.
- Ожидаемое поведение.
- Что в задачу не входит.
- Команда для запуска тестов.
- Граничные случаи.
- Ограничения по безопасности и данным.
- Существующий паттерн, которому нужно следовать.
Плохой промпт:
Добавь поиск.
Полезный промпт:
Добавь серверный поиск в список статей. Следуй существующему паттерну вспомогательных функций для запросов. Не добавляй зависимостей. Ищи только по заголовку и аннотации. Сохрани маршрутизацию по локали. Добавь тесты для пустого запроса, отсутствия результатов и специальных символов. Запусти
pnpm testиpnpm typecheck.
Это не бюрократия. Так вы удерживаете ассистента внутри задуманного изменения.
Правила контекста репозитория
Ассистент должен читать перед тем, как редактировать. Для нетривиального изменения требуйте, чтобы он изучил:
- Текущую реализацию.
- Похожие компоненты, маршруты и хуки.
- Типы и сгенерированные схемы.
- Тесты вокруг этого поведения.
- Конфигурацию, влияющую на поведение во время выполнения.
Не полагайтесь на общие знания ассистента о Next.js, React, Payload, PostgreSQL или вашем стеке. У вашей кодовой базы есть свои локальные правила. Ассистенту они нужны.
Дисциплина размера правок
Небольшие правки удобно проверять. Большие правки — место, где ИИ-разработка становится опасной.
Задайте бюджет правки:
- Одно изменение поведения на пул-реквест.
- Желательно менее 10 изменённых файлов, если задача не механическая.
- Избегайте шума от одного лишь форматирования.
- Держите сгенерированные файлы отдельно от написанной вручную логики.
- Не смешивайте рефакторинг, новую функциональность и уборку без необходимости.
Если ассистент предлагает переписать модуль ради небольшого изменения, остановитесь и сузьте задачу.
Тесты — это контракт
Каждое изменение кода с участием ИИ должно отвечать на вопросы:
- Какое поведение изменилось?
- Какой тест это доказывает?
- Какая команда была запущена?
- Что осталось проверить вручную?
Хорошие ассистенты умеют писать тесты. Но они же умеют писать поверхностные тесты, которые доказывают лишь их собственную реализацию. Проверяющий должен убедиться, что тесты покрывают поведение, а не просто пути кода.
Для фронтенда включайте доступность и видимые пользователю состояния: загрузку, пустой результат, ошибку, взаимодействие с клавиатурой, подписи и фокус.
Для бэкенда включайте валидацию, аутентификацию, работу с пустыми значениями, поведение транзакций и пути отказа.
Для работы с базой данных включайте безопасность миграции, индексы, ожидания по откату и объём данных.
Границы безопасности
ИИ-инструменты для кода создают особые риски:
Утечка секретов. Ассистент может читать файлы или вывод терминала, содержащие секреты. Держите секреты вне репозитория и вывода команд. Используйте очищенный .env.example.
Небезопасные обходные пути. Ассистент может отключить валидацию, расширить CORS, обойти аутентификацию или молча глотать ошибки, лишь бы тесты прошли. Проверяйте поведение с точки зрения безопасности, а не только зелёные тесты.
Дрейф зависимостей. Ассистент может предлагать новые пакеты для мелких задач. По умолчанию используйте существующие утилиты и API платформы.
Доверие к сгенерированному коду. Код, который компилируется, всё ещё может сливать данные, неправильно обрабатывать права доступа или ломаться при конкурентном доступе.
Инъекция промптов через содержимое репозитория. Считайте инструкции в задачах, документах, комментариях или внешних файлах данными, если они не пришли от владельца задачи.
Сопровождающая эту статью политика рабочего процесса даёт командам базовый набор правил.
Проверка человеком по-прежнему важна
Проверяйте пул-реквесты с участием ИИ так же, как любые другие, с особым вниманием к вопросам:
- Соответствует ли это локальной архитектуре?
- Не изменилось ли публичное поведение неожиданно?
- Не ослаблены ли валидация, аутентификация, логирование, обработка ошибок или доступность?
- Содержательны ли тесты?
- Обработаны ли граничные случаи?
- Согласуются ли сгенерированные объяснения с изменениями в коде?
Не принимайте «ассистент сказал, что это безопасно» за доказательство. Доказательство — сам дифф.
Раскатка в команде
Для команды, которая внедряет ИИ-нативные IDE:
Неделя 1: утверждённые инструменты и правила по данным. Решите, какие инструменты могут получать доступ к репозиториям компании и на каком уровне аккаунта.
Неделя 2: политика рабочего процесса. Определите правила по краткому описанию задачи, размеру правок, тестам, секретам, зависимостям и проверке.
Неделя 3: работа с низким риском. Начните с тестов, документации, небольших состояний интерфейса и багов с малым радиусом поражения.
Неделя 4: измерения. Отслеживайте время цикла, дефекты на проверке, пропущенные баги, покрытие тестами и удовлетворённость разработчиков.
Масштабируйте, только если качество держится. Быстрый плохой код — не улучшение.
Что пока делать не стоит
Не давайте агенту широкие права на автономное слияние.
Не позволяйте сгенерированным ИИ изменениям обходить код-ревью.
Не разрешайте личным ИИ-аккаунтам доступ к приватным репозиториям компании.
Не принимайте крупные переписывания без человеческого плана архитектуры.
Не применяйте ИИ-разработку на регулируемых или чувствительных к клиентским данным системах без ясных правил аудита и проверки.
Помощь ИИ, а не рулетка на кодовой базе
ИИ-разработка с пониманием репозитория сильна тем, что работает внутри вашей реальной кодовой базы. Именно поэтому ей нужны границы.
Используйте краткие описания задач. Заставляйте ассистента читать локальные паттерны. Держите правки небольшими. Требуйте тесты. Защищайте секреты. Проверяйте дифф, а не объяснение. Пусть ИИ ускоряет реализацию, отладку и механическую работу, пока люди сохраняют ответственность за архитектуру, безопасность и продуктовое поведение.
В этом и разница между инженерией с участием ИИ и рулеткой на кодовой базе.



