# Как объединить инструкции Claude Code, Codex и Cursor в одном файле в 2026 году

> Как использовать единый AGENTS.md для Claude Code, Codex и Cursor в 2026 году: встроенное чтение, импорт в CLAUDE.md, символьная ссылка и команда /init.

Source: https://ailoot.ai/blog/ru/agents-md-claude-md-one-instruction-file/
Canonical: https://ailoot.ai/blog/ru/agents-md-claude-md-one-instruction-file/
Language: ru
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-004
Revision: sha256-cf1bd59cdcb39fcae7648943ad5d86a62342b729ab113dd670fa744b9e3c036b


Работу с сервисом описывает [документация Ailoot](https://ailoot.ai/docs/).

## Что меняется, если вы работаете сразу с Claude Code, Codex и Cursor?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевые выводы раздела">

**Главное**

В 2026 году разработчики, работающие с ИИ, часто используют не один инструмент, а три—пять. Например, Claude Code — как основной, Codex — для длительных автономных задач, а Cursor — для быстрых изменений в IDE. У каждого есть собственный файл инструкций: `CLAUDE.md`, `AGENTS.md` или `.cursorrules`. Если синхронизировать их вручную, одну и ту же строку приходится менять в нескольких местах. Легко забыть обновить файл для Cursor, и через неделю Claude и Codex могут по-разному выполнить одинаковый запрос.

</div>

В этом примере Claude Code — основной инструмент, а Codex и Cursor используются для отдельных задач. В моём `CLAUDE.md` примерно 250 строк: там указано, что и в каком порядке читать, какие файлы нельзя менять, какими командами развёртывать проект и как оформлять коммиты. Когда я впервые запустил Codex CLI в проекте, он не знал этих правил: пытался выполнить `git push --force`, открывал `.env` и небрежно переименовывал файлы.

Сначала я вручную скопировал `CLAUDE.md` в `AGENTS.md`. Через две недели в проекте оказалось уже четыре версии одних и тех же инструкций: в `CLAUDE.md`, `AGENTS.md`, `.cursorrules` и `.windsurf/rules/`. Они немного различались. Причина не в конкретной программе, а в типичной проблеме нескольких источников правды. Подробнее об этом — в [руководстве по работе с несколькими агентами](https://ailoot.ai/blog/ru/claude-code-codex-together/).

В июне 2026 года документация Anthropic о памяти Claude Code предлагала одно решение: общий файл и его импорт. С сентября 2026 года Claude Code самостоятельно читает `AGENTS.md`, если в проекте нет `CLAUDE.md`. Импорт по-прежнему нужен, если для Claude есть отдельные правила. Ниже рассмотрим, когда достаточно одного `AGENTS.md`, как настроить импорт и как отделить общие правила от инструкций для Claude.

## Читает ли Claude Code файл AGENTS.md самостоятельно?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевые выводы раздела">

**Главное**

Да, начиная с версии 2.1.277, выпущенной 18 сентября 2026 года, если в рабочей папке и её родительских папках нет `CLAUDE.md`, `.claude/CLAUDE.md` или `CLAUDE.local.md`. Если `CLAUDE.md` существует, Claude Code по умолчанию читает только его. Чтобы подключить `AGENTS.md`, добавьте в `CLAUDE.md` строку `@AGENTS.md` или создайте символьную ссылку. Поведение можно изменить в `/config`, в разделе Project instructions. До сентября Claude Code вообще не читал `AGENTS.md`, и импорт был единственным способом подключить его.

</div>

До сентября 2026 года ответ был отрицательным. Запрос № 6235 о поддержке `AGENTS.md` оставался открытым с августа 2025 года и был закрыт 17 августа 2026 года. Всё это время документация по памяти предлагала завести `CLAUDE.md` и импортировать в него `AGENTS.md`. Начиная с версии 2.1.277 в документации описано новое поведение:

<figure>
<blockquote>
<p>Claude Code может использовать <code>AGENTS.md</code> как файл инструкций проекта. Поэтому репозиторий, уже подготовленный для других агентов, будет работать и без <code>CLAUDE.md</code>, импорта и дополнительной настройки.</p>
</blockquote>
<figcaption>Anthropic — документация Claude Code: поддержка AGENTS.md (https://code.claude.com/docs/en/memory#agents-md)</figcaption>
</figure>

Какие файлы прочитает Claude Code, зависит от их наличия в проекте:

| Файлы проекта | Что прочитает Claude Code |
|----|----|
| Есть `AGENTS.md`, но нет `CLAUDE.md` и `CLAUDE.local.md` ни в рабочей папке, ни выше | `AGENTS.md` |
| В рабочей папке или выше есть `AGENTS.md` и `CLAUDE.md` (либо `CLAUDE.local.md`) | Только `CLAUDE.md` |
| В `CLAUDE.md` есть строка `@AGENTS.md` | `CLAUDE.md` и подключённый через импорт `AGENTS.md` |

При этой проверке учитываются `CLAUDE.md`, `.claude/CLAUDE.md` и `CLAUDE.local.md` в рабочей папке и во всех её родительских папках. Личный `~/.claude/CLAUDE.md`, корпоративный управляемый файл и правила из `.claude/rules/` не учитываются: они загружаются наряду с `AGENTS.md`.

Если `CLAUDE.md` отсутствует, при запуске Claude Code читает все `AGENTS.md` и `.claude/AGENTS.md` в рабочей папке и её родительских папках. Файл `AGENTS.md` во вложенной папке загружается, когда Claude Code обращается к файлу в этой папке. Импорты `@path` внутри `AGENTS.md` также поддерживаются. Файлы `AGENTS.local.md`, `AGENTS.override.md` и содержимое папки `.agents/` Claude Code не читает.

Обратите внимание: личный `CLAUDE.local.md` тоже влияет на выбор файла. Если создать его для незакоммиченных личных правил, Claude Code перестанет читать `AGENTS.md`. Решение — настройка ниже.

Изменить поведение можно через `/config`, в разделе Project instructions:

| Значение | Какие файлы читает Claude Code |
|----|----|
| `claude-md-or-agents-md` (по умолчанию) | `CLAUDE.md`, а если нет ни его, ни `CLAUDE.local.md` — `AGENTS.md` |
| `claude-md-and-agents-md` | Оба файла: в каждой папке сначала `CLAUDE.md`, затем `AGENTS.md` |
| `claude-md` | Только `CLAUDE.md` |
| `managed-only` | Только корпоративный управляемый `CLAUDE.md` и автоматическая память |

Если вы хотите сохранить `CLAUDE.local.md` и при этом подключать `AGENTS.md`, выберите `claude-md-and-agents-md`. Повторной загрузки не произойдёт: файл `AGENTS.md`, уже подключённый строкой `@AGENTS.md` или символьной ссылкой, Claude Code не загружает во второй раз — независимо от выбранного режима.

Проверить, что файл загружен, можно командой `/memory`: начиная с версии 2.1.280, путь к `AGENTS.md` отображается в списке. В версиях ниже 2.1.277 и в сеансах с отключённым встроенным плагином `agents-md` Claude Code читает только `CLAUDE.md`; пункта Project instructions в `/config` там нет. До версии 2.1.281 так же работали сеансы через Amazon Bedrock и сеансы с отключённой телеметрией. В первом сеансе после обновления со старой версии `AGENTS.md` может ещё не загрузиться; в следующем сеансе поведение должно быть штатным.

Для схемы с общим файлом это означает следующее. Если отдельных правил для Claude нет, достаточно `AGENTS.md`: его прочитают Claude Code, Codex и Cursor. Если такие правила нужны — например, для планирования работы в рискованных папках, навыков или хуков, — потребуется `CLAUDE.md`, а Claude Code перестанет самостоятельно загружать `AGENTS.md`. В этом случае добавьте в `CLAUDE.md` строку `@AGENTS.md`. Такой вариант также подходит для старых версий Claude Code. Разберём его подробнее.

## Как импортировать AGENTS.md в CLAUDE.md?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевые выводы раздела">

**Главное**

Импорт нужен, когда в проекте присутствует `CLAUDE.md`: по умолчанию Claude Code не читает одновременно и `AGENTS.md`. В начало `CLAUDE.md` добавьте строку `@AGENTS.md`. При запуске сеанса Claude Code подставит содержимое `AGENTS.md` вместо этой строки и обработает результат как единый текст. Ниже можно добавить раздел «Claude Code» с правилами только для этого инструмента. Импорт поддерживает относительные и абсолютные пути и вложенность до четырёх уровней.

</div>

Минимальный пример из официальной документации:

```markdown
@AGENTS.md

## Claude Code

Use plan mode for changes under `src/billing/`.
```

Первая строка — директива импорта. В начале сеанса Claude Code находит её в `CLAUDE.md` и помещает на это место весь текст из `AGENTS.md`. Следом идёт заголовок `## Claude Code`: это обычный Markdown-раздел, в котором можно описать дополнительные инструкции для Claude. Например, приведённое правило предписывает использовать режим планирования при изменениях в папке биллинга. Codex CLI и Cursor `CLAUDE.md` не открывают: они используют `AGENTS.md`.

В документации сказано следующее о работе импортов:

<figure>
<blockquote>
<p>Файлы CLAUDE.md могут подключать другие файлы с помощью синтаксиса <code>@path/to/import</code>. Содержимое таких файлов раскрывается и загружается в контекст при запуске сеанса вместе с ссылающимся на них CLAUDE.md.</p>
</blockquote>
<figcaption>Anthropic — документация Claude Code о памяти и инструкциях (https://code.claude.com/docs/en/memory)</figcaption>
</figure>

Несколько особенностей, которые стоит учесть:

- **Относительные и абсолютные пути.** `@AGENTS.md` указывает путь относительно файла с директивой. Для абсолютного пути подойдут, например, `@/Users/me/shared/rules.md` или `@~/.claude/personal.md`. Последний вариант позволяет хранить личные предпочтения вне репозитория.
- **Вложенность до четырёх уровней.** `AGENTS.md` может подключить `@docs/coding-style.md`, а тот — ещё один файл. Допускается до четырёх уровней вложенности, чего достаточно для обычных структур проекта.
- **Обратные кавычки отменяют импорт.** Запись `` `@README` `` — это упоминание имени файла, а не команда подключить его. Так можно объяснить синтаксис, не запуская импорт.
- **Подтверждение для файлов вне проекта.** При первом обращении к пути за пределами рабочей папки, например `@~/.claude/personal.md`, Claude Code показывает список таких файлов и запрашивает подтверждение. Если отказаться, внешние импорты останутся отключёнными, а диалог больше не появится. Для `@AGENTS.md` из корня проекта подтверждение не нужно. Это снижает риск случайно включить в контекст посторонний файл.

После перехода на эту схему мой `CLAUDE.md` в описанном проекте сократился с 250 до 60 строк: в нём осталась ссылка `@AGENTS.md` и пять—семь правил только для Claude Code, например о режиме планирования для рискованных папок, работе с административным интерфейсом и оформлении коммитов. Общие инструкции собраны в `AGENTS.md`, который читают Codex и Cursor.

## Когда использовать символьную ссылку, а когда импорт?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевые выводы раздела">

**Главное**

Anthropic описывает два способа подключить общие правила: импорт через `@AGENTS.md` и символьную ссылку `ln -s AGENTS.md CLAUDE.md`. Ссылка проще: это псевдоним файла, который не требует его редактировать. Но у неё есть три ограничения: в Windows могут понадобиться права администратора, в `CLAUDE.md` нельзя добавить собственные правила для Claude, а Git иногда отображает ссылку в diff неудобным образом. Импорт подходит для разных платформ. Если специальных правил для Claude нет, начиная с версии 2.1.277 можно обойтись без обоих вариантов: Claude Code прочитает `AGENTS.md` самостоятельно.

</div>

В документации приведена такая команда для создания символьной ссылки:

```bash
ln -s AGENTS.md CLAUDE.md
```

Также Anthropic отдельно предупреждает о нюансах Windows:

<figure>
<blockquote>
<p>Если вы или участник, который клонирует репозиторий, работаете в Windows, используйте импорт <code>@AGENTS.md</code>. Создание символьной ссылки требует прав администратора или режима разработчика. Если в Git не включён параметр <code>core.symlinks</code>, закоммиченная ссылка будет извлечена как обычный текстовый файл; в рабочей копии вместо инструкций окажется файл <code>CLAUDE.md</code> с одной строкой.</p>
</blockquote>
<figcaption>Anthropic — документация Claude Code об импорте файлов инструкций (https://code.claude.com/docs/en/memory)</figcaption>
</figure>

Сравнение вариантов:

| Критерий | Импорт `@AGENTS.md` | Символьная ссылка `ln -s` |
|----|----|----|
| **Работа в Windows без прав администратора** | Да | Нет (нужен Developer Mode) |
| **Можно добавить правила только для Claude** | Да, после импорта | Нет, содержимое файла совпадает |
| **Отображение в Git как обычного Markdown-файла** | Да | Как ссылка (зависит от `core.symlinks`) |
| **Можно подключить несколько файлов** | Да, до четырёх уровней | Нет, связь один к одному |
| **Кэширование и обновление в Claude Code** | Стандартное для `CLAUDE.md` | Работает, но возможны дополнительные нюансы со ссылкой |
| **Подходящий вариант по умолчанию** | Подходит для большинства | Только если совместимость между платформами не важна |

В описанном проекте я выбрал импорт по трём причинам:

1. **В команде используются разные операционные системы.** Я работаю на Mac, а участники команды примерно поровну используют Windows и Mac. Если добавить в репозиторий символьную ссылку, то на Windows без Developer Mode она может превратиться в обычный текстовый файл с единственной строкой `AGENTS.md`. Из-за этого правила иногда работают, а иногда нет.
2. **Нужны отдельные правила для Claude.** Под строкой `@AGENTS.md` в моём `CLAUDE.md` находится раздел «Claude Code». В нём указано, например, применять `--effort high` для архитектурных задач, запускать `npm run build` до `git push` и не вызывать вручную `/api/v1/deploy`. Codex эти инструкции не использует.
3. **Так проще разбираться с настройками.** Если что-то работает не так, в `CLAUDE.md` сразу видно, где подключены общие инструкции и где заданы переопределения. Дополнительные сведения о настройке Claude Code — в [руководстве по безопасному режиму](https://ailoot.ai/blog/ru/claude-code-safe-mode-recovery/).

Если отдельных правил для Claude нет, начиная с версии 2.1.277 символьная ссылка тоже не требуется: достаточно удалить `CLAUDE.md`, и Claude Code сам прочитает `AGENTS.md`. Оставляйте ссылку, если участники команды используют версию старше 2.1.277 и не могут обновиться. Если нужны правила именно для Claude, импорт обычно удобнее.

## Какие файлы читают Codex, Cursor, Copilot, Windsurf и Gemini CLI?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевые выводы раздела">

**Главное**

У каждого инструмента есть свой основной файл инструкций; некоторые умеют читать несколько форматов. Claude Code использует `CLAUDE.md`, а с сентября 2026 года читает и `AGENTS.md`, если в проекте нет `CLAUDE.md`. Codex CLI — `AGENTS.md` и `AGENTS.override.md`. Cursor — старый формат `.cursorrules` или новый `.cursor/rules/*.mdc`; с лета 2026 года он также читает `AGENTS.md`. Copilot использует `.github/copilot-instructions.md` или `.github/instructions/*.instructions.md`. Для Windsurf предусмотрены `.windsurfrules` и `.windsurf/rules/`, для Gemini CLI — `GEMINI.md`. Aider и Cline тоже поддерживают `AGENTS.md`.

</div>

Сопоставление основных инструментов по их официальной документации:

| Инструмент | Основной файл инструкций | Другие варианты | Поддерживает `AGENTS.md`? |
|----|----|----|----|
| **Claude Code** | `CLAUDE.md` | `~/.claude/CLAUDE.md`, `./.claude/CLAUDE.md`, управляемая политика | Да, если в проекте нет `CLAUDE.md` (с версии 2.1.277); иначе — через импорт |
| **Codex CLI** (OpenAI) | `AGENTS.md` | `AGENTS.override.md` | Да, встроенная поддержка |
| **Cursor** | `.cursor/rules/*.mdc` | `.cursorrules` (устаревший формат) | Да |
| **GitHub Copilot** | `.github/copilot-instructions.md` | `.github/instructions/*.instructions.md` | Через расширения |
| **Windsurf** | `.windsurf/rules/` | `.windsurfrules` (устаревший формат) | Да |
| **Gemini CLI** | `GEMINI.md` | — | Нет |
| **Aider, Cline, opencode** | `AGENTS.md` | — | Да, встроенная поддержка |

Если в репозитории есть `AGENTS.md`, а при необходимости и `CLAUDE.md` с импортом, пять из семи перечисленных инструментов получают актуальные общие инструкции автоматически. У Cursor и Windsurf есть собственные форматы правил; можно сохранить их, поскольку они также читают `AGENTS.md`, или настроить импорт. Синтаксис импорта различается и поддерживается не везде.

Для нового проекта подойдёт такая схема:

1. **Соберите общие правила в `AGENTS.md`.** В нём будет основная часть инструкций.
2. **Добавьте `CLAUDE.md`, если Claude нужны отдельные правила.** В первой строке укажите `@AGENTS.md`, а ниже перечислите инструкции только для Claude. Если таких инструкций нет, этот файл не нужен: с версии 2.1.277 Claude Code читает `AGENTS.md` самостоятельно.
3. **Оставьте `.cursor/rules/` для редких требований именно к Cursor**, например для его команд `@Codebase` и `@Docs`.
4. **Аналогично настройте Windsurf.** Старый файл `.windsurfrules` лучше не использовать; применяйте `.windsurf/rules/`, только если нужны правила с его особым синтаксисом.

Так можно получить большую часть преимуществ общей системы без множества копий. По моему опыту работы в смешанных командах, больше двух источников правды — общих правил и дополнений для Claude — уже сложно поддерживать. Если кто-то добавит инструкцию только в `.cursorrules` и забудет внести её в `AGENTS.md`, через неделю Cursor и Codex могут начать действовать по-разному.

## Как команда /init использует существующий AGENTS.md?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевые выводы раздела">

**Главное**

Команда `/init` формирует `CLAUDE.md` на основе файлов, уже находящихся в репозитории, и помогает сэкономить 20–30 минут ручной настройки. Обычно она учитывает правила Cursor (`.cursor/rules/`, `.cursorrules`) и Copilot (`.github/copilot-instructions.md`). Файлы `AGENTS.md`, `.windsurfrules` и `.clinerules` обрабатываются, если включить режим `CLAUDE_CODE_NEW_INIT=1`. Он запускает интерактивный многоэтапный сценарий: задаёт вопросы, исследует код с помощью субагента и предлагает план перед сохранением. С сентября 2026 года создание `CLAUDE.md` командой `/init` в проекте с `AGENTS.md` имеет последствие: Claude Code перестаёт автоматически читать `AGENTS.md`, а инструкции могут оказаться в двух файлах.

</div>

Anthropic описывает работу `/init` следующим образом:

<figure>
<blockquote>
<p>Команда <code>/init</code> читает файлы инструкций других инструментов и переносит подходящие сведения в созданный <code>CLAUDE.md</code>: правила Cursor из <code>.cursor/rules/</code> или <code>.cursorrules</code> и правила Copilot из <code>.github/copilot-instructions.md</code>. При установленной переменной <code>CLAUDE_CODE_NEW_INIT=1</code> учитываются также <code>AGENTS.md</code>, <code>.devin/rules/</code>, <code>.windsurf/rules/</code>, <code>.windsurfrules</code> и <code>.clinerules</code>.</p>
</blockquote>
<figcaption>Anthropic — документация Claude Code о памяти и инструкциях (https://code.claude.com/docs/en/memory)</figcaption>
</figure>

На практике это означает, что `/init` может перенести действующие правила из поддерживаемых файлов в новый `CLAUDE.md`. После генерации стоит проверить результат: удалить устаревшие пункты, объединить повторы и разложить инструкции по заголовкам.

Интерактивный режим, в котором `/init` также читает `AGENTS.md`, включается переменной среды:

```bash
CLAUDE_CODE_NEW_INIT=1 claude
```

После запуска `/init` Claude задаёт вопросы об артефактах, которые нужно настроить (`CLAUDE.md`, навыки, хуки), стеке проекта и командах для тестирования. Затем субагент изучает кодовую базу: например, читает `package.json`, `README.md` и конфигурационные файлы. На основе найденного он предлагает недостающие сведения. В конце появляется план, который можно отредактировать до сохранения. Подробнее о подготовке Claude Code к работе над проектом — в [отдельном руководстве](https://ailoot.ai/blog/ru/spec-kit-claude-code-spec-driven-development/).

Есть важный нюанс: если в проекте уже используется `AGENTS.md`, после `/init` рядом появится `CLAUDE.md` с копией его правил. С этого момента Claude Code по умолчанию читает только `CLAUDE.md`. Если изменить `AGENTS.md`, а копию не обновить, Claude продолжит следовать старым инструкциям. Команда `/import` может привести к тому же результату: она добавляет в `CLAUDE.md` копию содержимого `AGENTS.md`. Чтобы сохранить единый источник, поставьте в начало `CLAUDE.md` строку `@AGENTS.md` и удалите из него повторяющиеся правила.

`/init` удобно запускать при создании проекта или переходе на Claude Code с Cursor или Copilot. Нет необходимости искать шаблон `CLAUDE.md`: команда учитывает файлы, уже находящиеся в репозитории. Если проект уже содержит рабочий `AGENTS.md`, а особые правила для Claude не нужны, `/init` не требуется — Claude Code самостоятельно прочитает этот файл.

## Как отделить общие инструкции от правил для Claude?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевые выводы раздела">

**Главное**

В `AGENTS.md` записывайте правила, подходящие любому ИИ-агенту: какие файлы нельзя менять, как называть ветки, где хранятся секреты и какими командами запускать тесты. В `CLAUDE.md`, после импорта общего файла, размещайте инструкции, относящиеся только к Claude Code: режим планирования, навыки, хуки, ссылки на навыки и настройки моделей. Простой ориентир: правило «Claude должен» относится к `CLAUDE.md`, а правило «инструмент должен» — к `AGENTS.md`.

</div>

Я распределяю инструкции по этому принципу. В `AGENTS.md` можно поместить общие правила:

- **Запреты на изменения.** Не трогать `.env`, `node_modules`, `.next/` и `.git/`; менять `prisma/migrations` только через `prisma migrate`.
- **Соглашения об именах.** Использовать префиксы `feat/`, `fix/` и `chore/` для веток. Начинать сообщения коммитов с `feat:`, `fix:` или `docs:`, а затем кратко описывать изменение. Имена файлов компонентов писать в `kebab-case`.
- **Команды тестирования и проверки стиля.** Например, `npm run build`, `npm run lint` и `npm test`, а также команда, которую нужно запускать перед `git push`.
- **Архитектурные договорённости.** Определить, что хранится в `src/lib/` и `src/components/`, где находится бизнес-логика и где — интерфейс.
- **Безопасность.** Не добавлять секреты в коммиты. Запросы к рабочей базе выполнять только через `prod-psql`. Для подключения к рабочему серверу по SSH использовать алиас `prod`, а не `root@IP`.

В `CLAUDE.md` после `@AGENTS.md` можно указать правила, специфичные для Claude:

- **Режим планирования.** Использовать `plan mode` для изменений в рискованных папках, например `src/billing/`.
- **Уровень усилий.** Для архитектурных задач задавать `--effort high`, для обычной работы — `medium`.
- **Навыки и агенты.** Указать, каких ИИ-агентов и навыки запускать в разных ситуациях. Например: «Работая над руководством, запусти навык `build-guide`».
- **Память Claude.** Описать, что сохранять в автоматической памяти, а что — в `CLAUDE.local.md`. Подробнее о памяти Claude — в [руководстве по Memory и CLAUDE.md](https://ailoot.ai/blog/ru/claude-memory-claude-md-auto-memory/).
- **Хуки.** Если в `.claude/settings.json` настроены хуки, объяснить их назначение. Codex и Cursor не используют эти настройки.
- **Команды.** Перечислить часто используемые slash-команды, например `/init`, `/cd`, `/memory` и `/plan`.

Граница иногда зависит от контекста. Правило «не выполнять `git push --force` в `main`» общее, поэтому его следует поместить в `AGENTS.md`. А требование «перед отправкой изменений в hot-branch сначала использовать `plan mode`» относится к Claude и должно находиться в `CLAUDE.md`. Задайте вопрос: «Если завтра я перестану пользоваться Claude Code и оставлю только Codex, это правило всё ещё будет актуально?» Если да — поместите его в `AGENTS.md`; если нет — в `CLAUDE.md`.

## Что хранить в AGENTS.md, CLAUDE.md и .claude/rules?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевые выводы раздела">

**Главное**

Для крупного проекта одного `AGENTS.md` может быть недостаточно: файл разрастается, а каждый агент загружает в контекст правила, не относящиеся к текущей работе. В Claude Code инструкции можно распределить по тематическим файлам в `.claude/rules/` и ограничить их области действия с помощью YAML-поля `paths:`. Например, указать, что правила API применяются, только когда Claude работает с `src/api/`. Это помогает не расходовать контекстное окно на неактуальные сведения. Похожие каталоги правил есть у Cursor (`.cursor/rules/`) и Windsurf (`.windsurf/rules/`).

</div>

Если файл с правилами превысил 200 строк, рассмотрите разделение на тематические части. В документации Anthropic рекомендуется ориентироваться на 200 строк на файл: длинный `CLAUDE.md` может хуже влиять на соблюдение инструкций.

Пример структуры крупного проекта:

```
my-project/
├── AGENTS.md                    # 100-150 строк, общие правила
├── CLAUDE.md                    # 30-50 строк: @AGENTS.md и правила для Claude
└── .claude/
    ├── CLAUDE.md                # альтернатива корневому файлу, тот же файл
    └── rules/
        ├── api.md               # с paths: ['src/api/**']
        ├── components.md        # с paths: ['src/components/**']
        ├── testing.md           # без paths, действует всегда
        └── security.md          # без paths, действует всегда
```

Файл в `.claude/rules/` может содержать frontmatter:

```markdown
---
paths:
  - "src/api/**/*.ts"
---

# Правила API
- Проверяйте входные данные каждого endpoint через zod
- Возвращайте ошибки в стандартном формате `{error, code}`
- Добавляйте комментарии OpenAPI
```

Claude загружает эти инструкции, только когда работает с файлами, соответствующими шаблону. Если он изменяет `src/components/Button.tsx`, правила для API не добавляются в контекст. Так в контекстном окне остаются сведения, нужные для текущей задачи. Каталог `.claude/rules/` действует и без `CLAUDE.md`: если в проекте есть только `AGENTS.md`, правила из него загружаются рядом с общим файлом и не отключают прямое чтение `AGENTS.md`.

Cursor и Windsurf предлагают похожую организацию правил в `.cursor/rules/` и `.windsurf/rules/`. Стандарт AGENTS.md позволяет ссылаться на эти каталоги, однако синтаксис для совместной работы между инструментами пока поддерживается не везде. Поэтому общие инструкции надёжнее хранить в `AGENTS.md`, а редкие правила, привязанные к путям, при необходимости дублировать в `.claude/rules/` и `.cursor/rules/`.

Расположения `CLAUDE.md`, от общих настроек к локальным:

| Уровень | Расположение | Назначение |
|----|----|----|
| **Управляемая политика** | `/Library/Application Support/ClaudeCode/CLAUDE.md` (Mac), `/etc/claude-code/CLAUDE.md` (Linux) | Корпоративные требования для IT и DevOps |
| **Пользовательский** | `~/.claude/CLAUDE.md` | Личные предпочтения для всех проектов |
| **Проектный** | `./CLAUDE.md` или `./.claude/CLAUDE.md` | Общие правила проекта |
| **Локальный** | `./CLAUDE.local.md` (в `.gitignore`) | Личные правила для конкретного проекта |

Например, в `~/.claude/CLAUDE.md` можно записать два требования: отвечать на языке, выбранном пользователем, и писать название Ailoot именно таким образом. Они будут действовать во всех проектах без повторения в каждом репозитории.

Из этих четырёх уровней прямое чтение `AGENTS.md` отключают только проектный `CLAUDE.md` и `CLAUDE.local.md`. Личный `~/.claude/CLAUDE.md` и корпоративная управляемая политика этому не мешают: Claude Code загружает их одновременно с `AGENTS.md`.

## Что делать, если AGENTS.md в проекте устарел?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевые выводы раздела">

**Главное**

Если `AGENTS.md` давно создан для Codex или Aider и с тех пор не обновлялся, попросите Claude Code проверить его на устаревшие, повторяющиеся и неясные правила. Формат AGENTS.md продолжает развиваться под эгидой Linux Foundation. При актуализации оставляйте правила, которые отвечают на вопрос: «Что мне приходится постоянно повторять Claude или Codex?» Остальные можно убрать или перенести в архив.

</div>

Чтобы обновить устаревший файл, сначала попросите Claude составить перечень проблем, не меняя текст. После проверки удалите устаревшие команды и сведения, объедините дубли, добавьте инструкции о повторяющихся ошибках и попросите провести итоговую проверку на противоречия и неоднозначности. Такой порядок помогает сохранить контроль над содержимым `AGENTS.md`.

Основные принципы поддержки файла:

- **Фиксируйте повторяющиеся ошибки.** Если за месяц правило ни разу не понадобилось, возможно, оно не должно занимать место в файле.
- **Формулируйте правила как команды.** «Использовать два пробела» — конкретная инструкция. «Писать аккуратный код» — слишком расплывчатая.
- **Добавляйте конкретные действия.** «Запускайте `npm run build` перед `git push`» полезнее общего совета «тестируйте изменения».

## Что в этой схеме не работает?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевые выводы раздела">

**Главное**

Импорт `@AGENTS.md` не делает разные инструменты одинаковыми. У каждого остаются собственные особенности. Codex CLI не использует `.claude/rules/` и хуки Claude Code. Автодополнение Cursor работает отдельно и не читает `CLAUDE.md` при подстановке текста. Copilot ориентируется на `.github/copilot-instructions.md`, поэтому ему могут потребоваться отдельные настройки. Общий файл становится источником базовых правил, а для отдельных инструментов сохраняются дополнительные инструкции.

</div>

Вот несколько ограничений, на которые стоит обратить внимание:

**1. Автодополнение Cursor не использует AGENTS.md.** При предложении продолжения строки редактор не загружает `AGENTS.md` в реальном времени: для этого используется отдельный механизм. Инструкции из файла учитываются в чате Cursor. Поэтому правило «не использовать `var`, применять `const`» не обязательно повлияет на автодополнение. Для такого требования настройте ESLint или конфигурацию TypeScript.

**2. Хуки Claude Code не действуют в Codex.** Например, хук PreToolUse в `.claude/settings.json` может запрещать определённое действие. Codex не знает о таком хуке. Общее правило о запрете действия укажите в `AGENTS.md`, а наличие механизма, который блокирует его в Claude Code, — в `CLAUDE.md`.

**3. Для Copilot может понадобиться отдельный файл.** GitHub Copilot использует `.github/copilot-instructions.md`, а поддержку `AGENTS.md` следует сверять с его актуальной документацией и настройками расширений. Если в команде активно используется Copilot, добавьте отдельный файл с нужной частью общих правил или проверьте доступные расширения для `AGENTS.md`. Поддержка меняется со временем, поэтому проверяйте её перед настройкой.

**4. Изменение AGENTS.md не меняет текст символьной ссылки.** Если `CLAUDE.md` создан командой `ln -s AGENTS.md CLAUDE.md`, изменения в общем файле будут видны через ссылку. Git покажет изменение `AGENTS.md`, но не обязательно отдельный diff для `CLAUDE.md`. Чтобы участникам ревью было понятно, укажите в описании запроса на слияние, что Claude Code использует обновлённый файл через символьную ссылку.

**5. Вложенные импорты усложняют диагностику.** Если `AGENTS.md` подключает `@docs/coding-style.md`, а тот импортирует `@docs/typescript.md`, при конфликте правил сложнее найти источник. Для простоты можно ограничиться схемой `CLAUDE.md` → `AGENTS.md`. В Anthropic описан хук `InstructionsLoaded`, который записывает сведения о загруженных файлах и помогает разбирать сложные конфигурации. Учтите: при импорте или символьной ссылке на `AGENTS.md` хук срабатывает, а при самостоятельной загрузке `AGENTS.md` Claude Code — нет.

<div class="section" role="doc-bibliography" aria-label="Перечень источников">

### Источники

- [Документация Claude Code: память и поддержка AGENTS.md](https://code.claude.com/docs/en/memory#agents-md) — самостоятельная загрузка `AGENTS.md`, настройка Project instructions, импорт и символьные ссылки.
- [Документация Claude Code об импорте файлов](https://code.claude.com/docs/en/memory#import-additional-files) — синтаксис `@path/to/file`, вложенность до четырёх уровней, относительные и абсолютные пути.
- [AGENTS.md — открытый формат Agentic AI Foundation](https://agents.md/) — описание формата и перечень инструментов, которые его поддерживают.
- [Документация Cursor о правилах](https://docs.cursor.com/context/rules-for-ai) — форматы `.cursor/rules/*.mdc` и поддержка `AGENTS.md`.
- [Пользовательские инструкции GitHub Copilot](https://docs.github.com/en/copilot/customizing-copilot/adding-custom-instructions-for-github-copilot) — настройка `.github/copilot-instructions.md`.
- [Проект AGENTS.md в Agentic AI Foundation](https://aaif.io/projects/agents-md/) — сведения о развитии спецификации.

</div>



Познакомьтесь с [Ailoot](https://ailoot.ai/).

## Вопросы и ответы

### Когда использовать импорт вместо символической ссылки?

Используйте @AGENTS.md в CLAUDE.md для отдельных дополнений Claude или команды с Windows. Символическая ссылка делает содержимое обоих имён общим и не позволяет хранить отдельный раздел только для Claude.

### Как проверить загрузку общих инструкций?

Откройте /memory и проверьте список файлов инструкций. Если CLAUDE.md или CLAUDE.local.md подавляет прямую загрузку AGENTS.md, добавьте импорт либо выберите загрузку обоих файлов в настройках. Затем начните новую сессию.


## Ailoot · Компания и портфель её проектов

Ailoot опирается на накопленный опыт работы, большую клиентскую базу, стабильный сервис и постоянный контроль KPI.

Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.

Этот опыт Ailoot использует для API-доступа к нейросетям в продуктах клиентов, агентах, приложениях и автоматизациях.
