Руководство · Cursor
Как проверять код от ИИ: чек-лист до merge
Не принимайте правки от ИИ без diff, понимания scope и прогона проверок из вашего репозитория. Минимум до merge: просмотр каждого изменённого файла, поиск секретов и лишних зависимостей, npm test или lint из package.json, ручной прогон критического сценария. Agent ускоряет черновик, ответственность за merge остаётся у вас.

Почему код от ИИ нельзя принимать вслепую
Модель оптимизирует «правдоподобный ответ», а не ваш прод. Она может добавить пакет, которого нет в lockfile, захардкодить токен «для примера», поменять сигнатуру функции, от которой зависят десять файлов, или удалить проверку, которую вы не просили трогать. На практике это не злой умысел - просто контекст обрезан, а задача сформулирована широко.
| Риск | Как проявляется | Почему ИИ так делает |
|---|---|---|
| Лишние зависимости | package.json +3 строки | «Так проще решить задачу» |
| Секреты в коде | API_KEY = "sk-..." | Пример из обучающих данных |
| Сломанный контракт | изменён export без миграции | Не видит всех вызовов |
| Тихое удаление проверок | убран if / try/catch | «Упростил» без запроса |
| Неверный стек | Express в Next-проекте | Обобщённый шаблон |
Я не говорю «не используйте Agent». Я говорю: Agent пишет черновик, вы - редактор с правом veto. Один merge без ревью может стоить больше, чем неделя аккуратных diff. Запрос «проверка кода ии» в поиске обычно означает именно это: как не слепо доверять генерации.

Чек-лист ревью до Apply и до merge
Разделяю два момента: до Apply в сессии Agent и перед merge в git. Оба обязательны, если правки затрагивают больше одного косметического файла.
До Apply в Cursor
- 01
Прочитайте список файлов, которые агент собирается менять - не только итоговый diff последнего шага.
- 02
Сверьте scope с исходным промптом: если просили «поправить валидацию email», а в списке config и deploy - Stop.
- 03
Отклоните правки в
.env, ключах, CI-секретах, production-конфигах без явного запроса. - 04
Применяйте по файлам или небольшими группами, не Apply All на 40 файлов с первого раза.
Перед merge (git)
| # | Проверка | Команда / где | PASS если | ||
|---|---|---|---|---|---|
| 1 | Diff просмотрен | git diff main...HEAD | Понимаете каждое изменение | ||
| 2 | Нет секретов | rg "sk- | API_KEY | password" | Только плейсхолдеры |
| 3 | Lockfile согласован | package-lock / pnpm-lock | Осознанные изменения | ||
| 4 | Lint | npm run lint | exit 0 | ||
| 5 | Тесты | npm test | exit 0 или задокументирован skip | ||
| 6 | Build | npm run build | exit 0 | ||
| 7 | Ручной сценарий | браузер / curl | Критический путь работает |
Фрагмент .cursor/rules или project rule, который я добавляю в учебные репозитории:
```markdown
Перед merge после Agent
- Запусти: npm run lint && npm test && npm run build - Не коммить .env, ключи, токены - Любая новая зависимость - отдельным коммитом с обоснованием - Scope: только файлы из задачи; лишнее - revert ```
В Agent я часто прошу явно: «покажи план изменений по файлам до правок» - это снижает сюрпризы. Режим Plan из документации Cursor для multi-file задач тоже про согласование до правок.
Тесты, линтер и build: что запускать после Agent
ИИ редко знает ваш полный CI. Она может написать «тесты прошли», не запуская их, или запустить урезанную команду. Единственный источник правды - скрипты из вашего package.json и pipeline.
Типичный минимум для JS/TS-проекта:
npm run lint
npm test -- --runInBand
npm run buildДля Python - ruff check, pytest, для Go - go test ./.... Главное - те же команды, что на CI, а не «что-нибудь зелёное».
| Тип изменения | Минимум проверок | Зачем |
|---|---|---|
| UI / CSS | lint + visual smoke | Agent ломает классы и импорты |
| API route | unit + integration | Контракты и статусы |
| Рефакторинг | полный test suite | Скрытые регрессии |
| Новая зависимость | audit + build | Supply chain |
| Миграция БД | migrate dry-run | Не катить вслепую |
Если тестов в проекте нет - честно зафиксируйте это как риск, а не как «раз ИИ сказал OK». На наставничестве первым делом добавляем хотя бы один тест на критический сценарий, иначе каждый Agent-сеанс - лотерея.

Матрица: что можно мержить с минимальным ревью
Не всё требует одинаковой глубины. Я использую матрицу, чтобы не тратить час на правку комментария и не пропустить опасный refactor.
| Изменение | Ревью | Тесты | Кто мержит |
|---|---|---|---|
| Комментарии, typo в README | diff 1 файла | опционально | автор |
| Форматирование prettier | diff | lint | автор |
| Одна функция с тестом | diff + тест | обязательно | автор |
| Новый endpoint | полный diff | unit + e2e | автор + второй взгляд |
| Auth / payments | построчно | полный CI + ручной | только после ревью человека |
| Зависимости | lockfile + changelog | build + audit | отдельный PR |
Красная зона - всё, что трогает аутентификацию, биллинг, персональные данные, деплой на прод. Agent туда не пускаю без Plan, отдельной ветки и второго ревьюера, если работаете в паре.
Cursor Rules и контекст: как упростить ревью
Rules не заменяют diff, но сужают пространство ошибок. Если в Rules прописаны команды npm run lint, запрет на .env в коммитах и стек (Next 15, не Express), агент реже «улетает в сторону». Подробнее - в Cursor Rules.
Что я держу в Rules для учебных и клиентских репо:
{
"scripts": {
"verify": "npm run lint && npm test && npm run build"
},
"agent": {
"never_edit": [".env", ".env.local", "secrets/*"],
"require_tests_for": ["src/api/*", "src/lib/*"]
}
}Это псевдоструктура - в реальном .cursor/rules или AGENTS.md пишите текстом, как принято в вашем репо. Плюс project brief: одна страница «что это за проект, как запустить, где опасные зоны».
Перед сложной задачей в Agent я делаю Ask: «какие файлы затронет изменение X» - без правок. Потом Agent с узким промптом и списком разрешённых путей. Так diff предсказуемее.
Типовые ошибки и как исправить
Здесь симптом → причина → действие, как в тикетах после Agent.
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
| Apply All, потом 500 на проде | Не смотрели diff | git revert, пофайловый Apply в следующий раз |
| В diff появился .env | Пример «для локалки» | Удалить из коммита, rotate ключ |
| «Тесты зелёные» без вывода | Agent не запускала | npm test вручную в терминале |
| +5 dependencies | Библиотека «для одной строки» | Откат, решить без deps или обосновать |
| Сломался import path | Массовый rename | git diff --name-only, grep вызовы |
| Удалён auth middleware | «Упростил код» | Restore из git, сузить промпт |
Слепой Apply All. Самая частая ошибка новичков. Лечится дисциплиной: ветка agent/feature-x, Apply по частям, commit после каждого зелёного npm run verify.
Секрет в коммите. Даже если ключ «тестовый» - удалить из истории (git filter или новый commit + rotate), не пушить «ну потом уберу».
Ложная уверенность агента. Фразы «готово, всё работает» в чате - не артеfact. Артеfact - зелёный CI или ваш ручной прогон.

Что делать дальше
Проверка кода от ИИ - привычка, не разовая статья.
- 01
Закрепите Cursor Agent mode - матрица «что поручать агенту».
- 02
Напишите Cursor Rules с командами verify и запретами на секреты.
- 03
Один раз пройдите сценарий: ветка → Agent на маленькую задачу → diff → lint → test → merge.
- 04
Если ревью процесса нужно под ваш репозиторий - наставничество или Telegram.
На разборе я смотрю не «умеете ли промпт», а есть ли у вас обратимый цикл: git checkpoint до Agent, verify после, понятный rollback. Без этого любой гайд по проверке кода от нейросети останется теорией.
По теме в блоге: связка промпты для Cursor + Rules + этот чек-лист закрывает 80% рисков на маленьких задачах. Для бизнес-автоматизации с webhook и CRM - другой контур, но принцип тот же: diff, секреты, тест на реальных данных.
Проверено 2026-08-21. Источники: cursor.com/docs/agent, cursor.com/docs/agent/security, практика ревью на разборах.
Частые вопросы
Нужно ли проверять каждый diff от Cursor Agent?
Да, если правки больше косметики в одном файле. Agent может добавить зависимости, секреты или сломать контракт. Минимум: просмотр diff, lint и test из вашего package.json, ручной прогон критического сценария. Apply All на десятки файлов без ревью - частая причина отката.
Как проверить, что в коде от ИИ нет секретов?
Перед merge прогоните поиск по diff: API_KEY, sk-, password, token в открытом виде. Не коммитьте .env и secrets/**. Если ключ уже попал в коммит - rotate и уберите из истории, не оставляйте «на потом». В Cursor Rules можно явно запретить правки env-файлов.
Agent пишет «тесты прошли», но я не видел вывода - что делать?
Запустите тесты сами в терминале теми же командами, что на CI: npm test, pytest, go test. Чат агента - не лог CI. Зелёный merge только после реального exit code 0 у ваших скриптов.
Можно ли мержить код от ИИ без unit-тестов в проекте?
Можно только с повышенным риском: тогда обязательны lint, build и ручной прогон критического пути. Я рекомендую добавить хотя бы один тест на главный сценарий - иначе каждый Agent-сеанс лотерея. На наставничестве часто начинаем с этого.
Чем проверка кода от ИИ отличается от обычного code review?
Те же принципы: diff, scope, регрессии, секреты. Отличие - ИИ чаще добавляет лишние зависимости, «упрощает» проверки и уверенно ошибается. Плюс риск Apply All без пофайлового контроля. Rules и узкий scope снижают сюрпризы.
Какие команды запускать после Agent в JavaScript-проекте?
Ориентир: npm run lint, npm test, npm run build - те же, что в CI. Зафиксируйте их в Cursor Rules как verify. Для UI добавьте visual smoke в браузере. Не доверяйте словам агента без exit code.
Что делать, если Apply All уже сломал проект?
git status и git diff, затем git checkout -- . или git reset --hard на последний хороший commit, если не коммитили. В следующий раз - отдельная ветка, Apply по файлам, checkpoint до Agent. Опишите симптом в Telegram, если застряли на откате.
Помогают ли Cursor Rules при ревью кода от ИИ?
Да, как ограничитель: стек, команды verify, запрет на .env, список опасных путей. Rules не заменяют diff, но уменьшают число «случайных» правок. Подробнее в гайде Cursor Rules на сайте.
Связанные страницы

Обсудить вашу задачу
Напишите в Telegram цель, что уже сделано и где стопор.
Отвечаю сам — без бота и «оставьте заявку».





