Когда я открываю новый проект в Cursor, в репозиторий первым делом летит AGENTS.md. Не README, не папка docs, не комментарии в коде. AGENTS.md — это короткий файл, который объясняет ИИ-агенту, что можно трогать, что нельзя, и какие у нас тут правила. Один файл, пять-десять минут чтения, и новая сессия Cursor или Claude Code перестаёт ломать проект.

Я перепробовал разные подходы: «пусть ИИ сам разберётся», «расскажу в начале сессии», «поставлю подробные правила в системный промпт». Всё это работает хуже, чем один файл в корне проекта, который агент читает при каждом старте.

Ключевое правило: AGENTS.md — это не договор с человеком. Это шпаргалка для ИИ. Пишите простыми словами, как для коллеги, который зашёл в проект впервые и не хочет ничего сломать.

Что вообще такое AGENTS.md

AGENTS.md — это конвенция, которую поддерживают Cursor, Claude Code, Aider, Continue и большинство современных ИИ-агентов для кода. Файл лежит в корне репозитория (или в корне монорепы, в подпапке). Агент читает его автоматически при старте сессии и использует как набор правил: что менять можно, что нельзя, как запускать тесты, какой стиль кода предпочтителен.

Это аналог README, только для машины. README пишется для человека, который заходит на GitHub. AGENTS.md — для агента, который заходит в ваш проект и собирается писать код.

Почему этого не заменяет системный промпт или длинный README

Я проверял. Системный промпт в Cursor работает, но: первое — он один на все проекты, его нельзя сделать разным для бэкенда и фронта; второе — агенты часто игнорируют длинные инструкции, особенно когда задача простая («поправь опечатку»).

README — отличный формат, но он для людей. Когда я пишу в нём «используем TypeScript и Next.js», я объясняю архитектурные решения для разработчика. Когда я пишу в AGENTS.md «не трогай файлы в src/legacy/ — там легаси, которое нельзя рефакторить без согласования», я объясняю агенту границы дозволенного. Разные задачи — разные файлы.

Когда AGENTS.md действительно нужен

  • Проект больше одного экрана кода — агенту нужен контекст структуры
  • В проекте есть зоны «не трогать» (легаси, сгенерированный код, чужие пакеты)
  • Команда или вы сами возвращаетесь к проекту через месяцы — нужен файл, который напомнит правила
  • Используете несколько агентов в разных IDE — единый файл удобнее, чем настройки в каждой

Для простого скрипта на 50 строк AGENTS.md избыточен. Для проекта, который будет жить дольше одного вечера — почти всегда оправдан.

Что писать в AGENTS.md: 7 обязательных блоков

Я выделяю семь блоков, которые закрывают 90 процентов случаев. Не обязательно писать длинно — главное, чтобы каждый блок был понятен агенту без догадок.

1. Цель проекта — что делаем и зачем

Один-два абзаца: что это за проект, для кого, какую проблему решает. Агент с этой информацией делает более точные предположения. Пример: «Магазин здорового питания с доставкой по Петрозаводску, целевая — мамы с детьми до 5 лет». Не «интернет-магазин».

2. Текущее состояние — что уже работает

Список того, что уже реализовано: «готова авторизация, корзина, оплата через Юкассу; не готово — личный кабинет, история заказов». Агент не будет предлагать писать авторизацию заново.

3. Стек и команды запуска

Коротко: язык, фреймворк, база данных, пакетный менеджер. И — обязательно — команды, которые нужно знать агенту:

npm run dev      # локальный сервер
npm run build    # прод-сборка
npm run test     # тесты
npm run lint     # проверка стиля

Без этих команд агент не сможет проверить, что его изменения не сломали проект. А с этими командами — сможет.

4. Границы и зоны «не трогать»

Самый важный блок. Перечислите директории и файлы, которые агенту нельзя менять без явного запроса:

  • src/legacy/ — старый код, рефакторинг только после согласования
  • src/generated/ — сгенерированный код, править бессмысленно, перегенерируется
  • vendor/ и node_modules/ — чужие пакеты
  • .env, secrets/, credentials/ — секреты, не читать и не коммитить

5. Стиль кода — что предпочтительнее

Короткий список правил: используем функциональные компоненты, избегаем any в TypeScript, имена переменных — английские, комментарии — на русском. Без эссе — по пунктам.

6. Типичные задачи — примеры запросов

Три-четыре примера того, что вы обычно просите у агента в этом проекте. Не копипаст промптов, а формулировки: «добавить новый роут в /api/orders», «обновить компонент карточки товара под новый дизайн», «написать миграцию для нового поля в orders».

7. Проверка перед коммитом

Чеклист из 3-5 пунктов: прогнать тесты, проверить линтер, обновить документацию в /docs, проверить, что новые секреты не утекли в код. Этот блок дисциплинирует и вас, и агента.

Минимум, который можно начать с завтрашнего дня

Если у вас нет времени на семь блоков — начните с трёх: цель проекта, стек и команды, границы «не трогать». Уже через неделю вы заметите, что агент перестал ломать легаси и предлагать «давайте всё перепишем на Rust».

Дальше — добавляйте стиль, типичные задачи, чеклист. Через месяц файл вырастет до 30-50 строк, и это нормально. Главное — он живой, вы обновляете его, когда меняется архитектура или появляются новые «зоны не трогать».

Главная мысль

AGENTS.md — это маленький файл с большим эффектом. Он превращает ИИ-агента из «умного гостя, который тыкает во всё подряд» в «коллегу, который знает ваши правила и работает по ним». Десять минут работы экономят часы правок после.

Если захотите — у меня есть шаблоны AGENTS.md под Next.js, Python-бэкенд, Telegram Mini App и data-проекты. Могу поделиться и разобрать ваш проект. @vorobeoff.