SpyBara
Go Premium

memory.md 2026-09-09 22:58 UTC to 2026-09-10 23:00 UTC

This page contains 65 additions and 30 deletions.

2026
Thu 10 23:00 Sat 12 03:02 Fri 18 23:58 Tue 22 23:59 Wed 23 23:57

Как Claude запоминает ваш проект

Дайте Claude постоянные инструкции с помощью файлов CLAUDE.md и позвольте Claude автоматически накапливать знания с помощью auto memory.

Каждый сеанс Claude Code начинается со свежего context window. Два механизма переносят знания между сеансами:

  • Файлы CLAUDE.md: инструкции, которые вы пишете, чтобы дать Claude постоянный контекст
  • Auto memory: заметки, которые Claude пишет сам на основе ваших исправлений и предпочтений

На этой странице рассматривается, как:

CLAUDE.md и auto memory

Claude Code имеет две дополняющие друг друга системы памяти. Обе загружаются в начале каждого разговора. Claude рассматривает их как контекст, а не как принудительную конфигурацию. Чтобы заблокировать действие независимо от того, что решит Claude, используйте PreToolUse hook вместо этого. Чем более конкретны и лаконичны ваши инструкции, тем последовательнее Claude их соблюдает.

Файлы CLAUDE.md Auto memory
Кто это пишет Вы Claude
Что это содержит Инструкции и правила Знания и закономерности
Область действия Проект, пользователь или организация Отдельно для каждого репозитория, общая для всех его worktrees
Загружается в Каждый сеанс Каждый сеанс (первые 200 строк или 25KB)
Используется для Стандарты кодирования, рабочие процессы, архитектура проекта Ваши предпочтения, исправления, которые вы даёте Claude, контекст проекта, который Claude не может вывести из кода

Используйте файлы CLAUDE.md, когда вы хотите направить поведение Claude. Auto memory позволяет Claude учиться на ваших исправлениях без ручных усилий.

Subagents также могут поддерживать собственную auto memory. Подробнее см. в разделе конфигурация subagent.

Файлы CLAUDE.md

Файлы CLAUDE.md — это файлы markdown, которые дают Claude постоянные инструкции для проекта, вашего личного рабочего процесса или всей организации. Вы пишете эти файлы в виде простого текста; Claude читает их в начале каждого сеанса.

Когда добавлять в CLAUDE.md

Рассматривайте CLAUDE.md как место, где вы записываете то, что иначе пришлось бы переобъяснять. Добавляйте в него, когда:

  • Claude делает одну и ту же ошибку во второй раз
  • Проверка кода обнаруживает что-то, что Claude должен был знать об этой кодовой базе
  • Вы вводите одно и то же исправление или уточнение в чат, которое вводили в прошлом сеансе
  • Новому члену команды потребуется тот же контекст для продуктивности

Ограничивайте это фактами, которые Claude должен помнить в каждом сеансе: команды сборки, соглашения, макет проекта, правила "всегда делай X". Если запись — это многошаговая процедура или имеет значение только для одной части кодовой базы, переместите её в skill или правило с ограничением по пути вместо этого. Обзор расширений охватывает, когда использовать каждый механизм.

Выберите, где разместить файлы CLAUDE.md

Файлы CLAUDE.md могут находиться в нескольких местах, каждое с разной областью действия. Таблица ниже перечисляет их в порядке загрузки, от самой широкой области действия к наиболее специфичной, поэтому инструкция проекта появляется в контексте после инструкции пользователя.

Область действия Местоположение Назначение Примеры использования Общий доступ с
Управляемая политика • macOS: /Library/Application Support/ClaudeCode/CLAUDE.md
• Linux и WSL: /etc/claude-code/CLAUDE.md
• Windows: C:\Program Files\ClaudeCode\CLAUDE.md
Инструкции на уровне организации, управляемые IT/DevOps Стандарты кодирования компании, политики безопасности, требования соответствия Все пользователи в организации
Инструкции пользователя ~/.claude/CLAUDE.md Личные предпочтения для всех проектов Предпочтения стиля кода, личные ярлыки инструментов Только вы (все проекты)
Инструкции проекта ./CLAUDE.md или ./.claude/CLAUDE.md Инструкции, общие для команды проекта Архитектура проекта, стандарты кодирования, общие рабочие процессы Члены команды через систему контроля версий
Локальные инструкции ./CLAUDE.local.md Личные предпочтения, специфичные для проекта; добавьте в .gitignore Ваши URL-адреса sandbox, предпочтительные тестовые данные Только вы (текущий проект)

Файлы CLAUDE.md и CLAUDE.local.md в иерархии каталогов выше рабочего каталога загружаются полностью при запуске. Файлы в подкаталогах загружаются по требованию, когда Claude читает файлы в этих каталогах. Полный порядок разрешения см. в разделе Как загружаются файлы CLAUDE.md.

Для больших проектов вы можете разбить инструкции на файлы, специфичные для темы, используя правила проекта. Правила позволяют ограничить инструкции определёнными типами файлов или подкаталогами.

Установите CLAUDE.md проекта

CLAUDE.md проекта может быть сохранён либо в ./CLAUDE.md, либо в ./.claude/CLAUDE.md. Создайте этот файл и добавьте инструкции, которые применяются к любому, кто работает над проектом: команды сборки и тестирования, стандарты кодирования, архитектурные решения, соглашения об именовании и общие рабочие процессы. Эти инструкции общие для вашей команды через систему контроля версий, поэтому сосредоточьтесь на стандартах уровня проекта, а не на личных предпочтениях. Чтобы подтвердить загрузку файла, запустите /context в сеансе и проверьте список в разделе Memory files.

Пишите эффективные инструкции

Файлы CLAUDE.md загружаются в context window в начале каждого сеанса, потребляя токены наряду с вашим разговором. Визуализация context window показывает, где загружается CLAUDE.md относительно остального контекста при запуске. Поскольку это контекст, а не принудительная конфигурация, то, как вы пишете инструкции, влияет на то, насколько надёжно Claude их соблюдает. Лучше всего работают конкретные, лаконичные, хорошо структурированные инструкции.

Размер: целевой показатель менее 200 строк на файл CLAUDE.md. Более длинные файлы потребляют больше контекста и снижают соблюдение. Если ваши инструкции становятся большими, используйте правила с ограничением по пути, чтобы инструкции загружались только когда Claude работает с соответствующими файлами. Вы также можете разделить содержимое на импорты для организации, хотя импортированные файлы всё равно загружаются и входят в context window при запуске.

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

Конкретность: пишите инструкции, которые достаточно конкретны для проверки. Например:

  • "Используйте отступ из 2 пробелов" вместо "Правильно форматируйте код"
  • "Запустите npm test перед фиксацией" вместо "Протестируйте ваши изменения"
  • "Обработчики API находятся в src/api/handlers/" вместо "Держите файлы организованными"

Согласованность: если два правила противоречат друг другу, Claude может выбрать одно произвольно. Периодически проверяйте ваши файлы CLAUDE.md, вложенные файлы CLAUDE.md в подкаталогах и файлы .claude/rules/, чтобы удалить устаревшие или конфликтующие инструкции. В монорепозиториях используйте claudeMdExcludes для пропуска файлов CLAUDE.md от других команд, которые не имеют отношения к вашей работе.

Импортируйте дополнительные файлы

Файлы CLAUDE.md могут импортировать дополнительные файлы, используя синтаксис @path/to/import. Импортированные файлы расширяются и загружаются в контекст при запуске вместе с CLAUDE.md, который их ссылается.

Допускаются как относительные, так и абсолютные пути. Относительные пути разрешаются относительно файла, содержащего импорт, а не рабочего каталога. Импортированные файлы могут рекурсивно импортировать другие файлы с максимальной глубиной четыре перехода.

Анализ импорта пропускает диапазоны кода Markdown и блоки кода с ограждением. Чтобы упомянуть путь в вашем CLAUDE.md без его импорта, оберните его в обратные кавычки: написание `@README` сохраняет текст буквальным, в то время как @README вне обратных кавычек импортирует файл.

Чтобы подтянуть README, package.json и руководство рабочего процесса, ссылайтесь на них с помощью синтаксиса @ в любом месте вашего CLAUDE.md:

Смотрите @README для обзора проекта и @package.json для доступных команд npm для этого проекта.

# Дополнительные инструкции
- git workflow @docs/git-instructions.md

Для личных предпочтений проекта, которые не должны попадать в систему контроля версий, создайте CLAUDE.local.md в корне проекта. Он загружается вместе с CLAUDE.md и рассматривается так же. Добавьте CLAUDE.local.md в ваш .gitignore, чтобы он не был зафиксирован. С установленным CLAUDE_CODE_NEW_INIT=1 запуск /init и выбор личного варианта делает это за вас.

Если вы работаете в нескольких git worktrees одного репозитория, игнорируемый git CLAUDE.local.md существует только в worktree, где вы его создали. Чтобы поделиться личными инструкциями между worktrees, импортируйте файл из вашего домашнего каталога вместо этого:

# Личные предпочтения
- @~/.claude/my-project-instructions.md

AGENTS.md

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

@AGENTS.md

## Claude Code

Используйте plan mode для изменений в `src/billing/`.

Symlink также работает, если вам не нужно добавлять содержимое, специфичное для Claude:

ln -s AGENTS.md CLAUDE.md

Команда не выводит никакого вывода при успехе. В вашем следующем сеансе запустите /context и подтвердите, что CLAUDE.md появляется в разделе Memory files.

На Windows создание symlink требует привилегий администратора или режима разработчика, поэтому используйте импорт @AGENTS.md вместо этого.

Запуск /init читает правила Cursor в .cursor/rules/ или .cursorrules, и правила Copilot в .github/copilot-instructions.md, и включает соответствующие части в созданный CLAUDE.md. С установленным CLAUDE_CODE_NEW_INIT=1 /init также читает AGENTS.md, .devin/rules/, .windsurf/rules/ или .windsurfrules, и .clinerules.

Вы также можете запустить /import для переноса конфигурации поддерживаемого кодирующего агента в Claude Code, который добавляет одноразовую копию файлов инструкций, таких как AGENTS.md, к соответствующему CLAUDE.md и переносит MCP серверы, команды, subagents и skills. Требует Claude Code v2.1.213 или позже.

Как загружаются файлы CLAUDE.md

Claude Code загружает CLAUDE.md и CLAUDE.local.md из вашего текущего рабочего каталога и каждого каталога выше него. Запустите Claude Code в foo/bar/ и он загружает инструкции из foo/bar/CLAUDE.md, foo/CLAUDE.md и любых файлов CLAUDE.local.md рядом с ними.

Все обнаруженные файлы объединяются в контекст, а не переопределяют друг друга. Во всём дереве каталогов содержимое упорядочивается от корня файловой системы вниз к вашему рабочему каталогу. Для примера foo/bar/ foo/CLAUDE.md появляется в контексте перед foo/bar/CLAUDE.md, поэтому инструкции ближе к месту запуска Claude читаются последними. В каждом каталоге CLAUDE.local.md добавляется после CLAUDE.md, поэтому ваши личные заметки — это последнее, что Claude читает на этом уровне.

Claude также обнаруживает файлы CLAUDE.md и CLAUDE.local.md в подкаталогах под вашим текущим рабочим каталогом. Вместо загрузки при запуске они включаются, когда Claude читает файлы в этих подкаталогах.

Если вы работаете в большом монорепозитории, где подбираются файлы CLAUDE.md других команд, используйте claudeMdExcludes для их пропуска. Для полного макета корневых и каталог-специфичных файлов CLAUDE.md и правил см. Монорепозитории и большие репозитории.

Блочные HTML-комментарии (<!-- maintainer notes -->) в файлах CLAUDE.md удаляются перед внедрением содержимого в контекст Claude. Используйте их для оставления заметок для человеческих разработчиков без траты токенов контекста на них. Комментарии внутри блоков кода сохраняются. Когда вы открываете файл CLAUDE.md напрямую с помощью инструмента Read, комментарии остаются видимыми.

Загрузка из дополнительных каталогов

Флаг --add-dir дает Claude доступ к дополнительным каталогам вне вашего основного рабочего каталога. По умолчанию файлы CLAUDE.md из этих каталогов не загружаются.

Чтобы также загружать файлы памяти из дополнительных каталогов, установите переменную окружения CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD:

CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

Это загружает CLAUDE.md, .claude/CLAUDE.md, .claude/rules/*.md и CLAUDE.local.md из дополнительного каталога. CLAUDE.local.md пропускается, если вы исключите local из --setting-sources.

Организуйте правила с помощью `.claude/rules/`

Для больших проектов вы можете организовать инструкции в несколько файлов, используя каталог .claude/rules/. Это делает инструкции модульными и облегчает их поддержку командами. Правила также могут быть ограничены определёнными путями файлов, поэтому они загружаются в контекст только когда Claude работает с соответствующими файлами, снижая шум и экономя пространство контекста.

Установите правила

Поместите файлы markdown в каталог .claude/rules/ вашего проекта. Каждый файл должен охватывать одну тему с описательным именем файла, например testing.md или api-design.md. Все файлы .md обнаруживаются рекурсивно, поэтому вы можете организовать правила в подкаталоги, такие как frontend/ или backend/:

your-project/
├── .claude/
│   ├── CLAUDE.md           # Основные инструкции проекта
│   └── rules/
│       ├── code-style.md   # Рекомендации по стилю кода
│       ├── testing.md      # Соглашения тестирования
│       └── security.md     # Требования безопасности

Правила без frontmatter paths загружаются при запуске с тем же приоритетом, что и .claude/CLAUDE.md.

Правила проекта пропускаются, если вы исключите project из --setting-sources. До версии 2.1.211 правила, которые загружаются по требованию, включая правила с ограничением по пути и правила в вложенных каталогах .claude/rules/, загружались даже когда project был исключён.

Правила, специфичные для пути

Правила могут быть ограничены определёнными файлами с помощью YAML frontmatter с полем paths. Эти условные правила применяются только когда Claude работает с файлами, соответствующими указанным шаблонам.

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

# Правила разработки API

- Все конечные точки API должны включать проверку входных данных
- Используйте стандартный формат ответа об ошибке
- Включите комментарии документации OpenAPI

Правила без поля paths загружаются безусловно и применяются ко всем файлам. Правила с ограничением по пути срабатывают, когда Claude читает файлы, соответствующие шаблону, а не при каждом использовании инструмента. Начиная с версии 2.1.198, сопоставление также работает, когда Claude достигает файла через символическую ссылку на каталог проекта, например в символически связанном checkout.

Используйте glob-шаблоны в поле paths для сопоставления файлов по расширению, каталогу или любой комбинации:

Шаблон Соответствует
**/*.ts Все файлы TypeScript в любом каталоге
src/**/* Все файлы в каталоге src/
*.md Файлы Markdown в корне проекта
src/components/*.tsx Компоненты React в определённом каталоге

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

---
paths:
  - "src/**/*.{ts,tsx}"
  - "lib/**/*.ts"
  - "tests/**/*.test.ts"
---

Каждая группа скобок умножает количество развёрнутых шаблонов: src/*.{ts,tsx} развёртывается в два шаблона, а {a,b}/{c,d}/*.{ts,tsx} в восемь. Чтобы сохранить расширение ограниченным, весь список paths правила использует один бюджет из 1000 развёрнутых шаблонов и 4 МиБ, и шаблоны без скобок не учитываются в нём.

Claude Code использует любой шаблон, который превысит бюджет без развёртывания, и его буквальные скобки не соответствуют никаким файлам. До версии 2.1.217 значение paths со многими группами скобок зависало или вызывало сбой CLI при запуске.

Синтаксис Glob рассматривает [ как начало выражения в скобках, такого как [abc]. Шаблон с [, который не может быть прочитан как выражение в скобках, такой как photos [2024/**, является недействительным: он ничему не соответствует, и другие шаблоны правила продолжают работать. Чтобы сопоставить буквальный [ в имени файла, экранируйте его как photos \[2024/**. До версии 2.1.207 один недействительный шаблон приводил к сбою инструмента Read для каждого файла, для которого оценивалось правило, вместо того чтобы ничему не соответствовать.

Каталог .claude/rules/ поддерживает symlinks, поэтому вы можете поддерживать общий набор правил и связывать их с несколькими проектами. Symlinks разрешаются и загружаются нормально, а циклические symlinks обнаруживаются и обрабатываются корректно.

Этот пример связывает как общий каталог, так и отдельный файл:

ln -s ~/shared-claude-rules .claude/rules/shared
ln -s ~/company-standards/security.md .claude/rules/security.md

Правила на уровне пользователя

Личные правила в ~/.claude/rules/ применяются к каждому проекту на вашей машине. Используйте их для предпочтений, которые не зависят от проекта:

~/.claude/rules/
├── preferences.md    # Ваши личные предпочтения кодирования
└── workflows.md      # Ваши предпочтительные рабочие процессы

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

Управляйте CLAUDE.md для больших команд

Для организаций, развёртывающих Claude Code в командах, вы можете централизовать инструкции и контролировать, какие файлы CLAUDE.md загружаются.

Развёртывание CLAUDE.md на уровне организации

Организации могут развернуть централизованно управляемый CLAUDE.md, который применяется ко всем пользователям на машине. Этот файл не может быть исключён индивидуальными настройками.

1

Создайте файл в местоположении управляемой политики

  • macOS: /Library/Application Support/ClaudeCode/CLAUDE.md
  • Linux и WSL: /etc/claude-code/CLAUDE.md
  • Windows: C:\Program Files\ClaudeCode\CLAUDE.md
2

Развёртывание с помощью вашей системы управления конфигурацией

Используйте MDM, Group Policy, Ansible или аналогичные инструменты для распределения файла на машины разработчиков. Подробнее см. в разделе управляемые настройки для других параметров конфигурации на уровне организации.

Ключ claudeMd позволяет вам поместить содержимое управляемого CLAUDE.md непосредственно внутри managed-settings.json вместо развёртывания отдельного файла.

Область действия: каждый сеанс Claude Code на машине, в каждом репозитории. Для руководства, специфичного для репозитория, вместо этого зафиксируйте CLAUDE.md проекта.

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

Где это соблюдается: только управляемые и политические настройки. Установка claudeMd в пользовательских, проектных или локальных настройках не имеет эффекта.

Пример ниже добавляет поведенческие инструкции непосредственно в файл управляемых настроек:

{
  "claudeMd": "Always run `make lint` before committing.\nNever push directly to main."
}

Управляемый CLAUDE.md и управляемые настройки служат разным целям. Используйте настройки для технического принуждения и CLAUDE.md для поведенческого руководства:

Проблема Настроить в
Блокировать определённые инструменты, команды или пути файлов Управляемые настройки: permissions.deny
Принудительная изоляция sandbox Управляемые настройки: sandbox.enabled
Переменные окружения и маршрутизация поставщика API Управляемые настройки: env
Метод аутентификации и блокировка организации Управляемые настройки: forceLoginMethod, forceLoginOrgUUID
Рекомендации по стилю кода и качеству Управляемый CLAUDE.md
Напоминания об обработке данных и соответствии Управляемый CLAUDE.md
Поведенческие инструкции для Claude Управляемый CLAUDE.md

Правила настроек принудительно применяются клиентом независимо от того, что решит делать Claude. Инструкции CLAUDE.md формируют поведение Claude, но не являются жёстким уровнем принуждения.

Исключите определённые файлы CLAUDE.md

В больших монорепозиториях файлы CLAUDE.md предков могут содержать инструкции, которые не имеют отношения к вашей работе. Параметр claudeMdExcludes позволяет пропустить определённые файлы по пути или glob-шаблону.

Этот пример исключает CLAUDE.md верхнего уровня и каталог правил из родительской папки. Добавьте его в .claude/settings.local.json, чтобы исключение оставалось локальным для вашей машины:

{
  "claudeMdExcludes": [
    "**/monorepo/CLAUDE.md",
    "/home/user/monorepo/other-team/.claude/rules/**"
  ]
}

Шаблоны сопоставляются с абсолютными путями файлов с использованием синтаксиса glob. Вы можете настроить claudeMdExcludes на любом уровне настроек: пользователь, проект, локальный или управляемая политика. Массивы объединяются между уровнями.

Чтобы исключить файл правила, который вы достигаете через symlink, будь то файл или его каталог является ссылкой, напишите шаблон для любого пути: пути файла в .claude/rules/ или его цели ссылки. Шаблон, который соответствует любому пути, исключает файл. До версии 2.1.239 только шаблон, который соответствовал цели ссылки, исключал файл.

Файлы CLAUDE.md управляемой политики не могут быть исключены. Это гарантирует, что инструкции на уровне организации всегда применяются независимо от индивидуальных настроек.

Auto memory

Auto memory позволяет Claude накапливать знания между сеансами без вашего участия. По мере работы Claude сохраняет четыре вида заметок для себя. Claude записывает вид как поле type в frontmatter файла памяти:

  • user: ваша роль, опыт и предпочтения в работе
  • feedback: исправления, которые вы даёте Claude, и подходы, которые вы подтверждаете
  • project: текущая работа, сроки и решения, которые Claude не может вывести из кода или истории git
  • reference: где найти информацию вне проекта, например трекер проблем или панель управления

Claude пропускает всё, что он может вывести из кодовой базы, такое как архитектура, пути файлов или исправления отладки. Он также пропускает всё, что уже говорят ваши файлы CLAUDE.md.

Claude не сохраняет что-то каждый сеанс. Он решает, что стоит помнить, на основе того, будет ли информация полезна в будущем разговоре.

Включите или отключите auto memory

Auto memory включена по умолчанию. Чтобы переключить её, откройте /memory в сеансе и используйте переключатель auto memory, который сохраняет autoMemoryEnabled в ваши пользовательские настройки в ~/.claude/settings.json. Чтобы отключить её для одного проекта, установите autoMemoryEnabled в настройках этого проекта:

{
  "autoMemoryEnabled": false
}

Чтобы отключить auto memory через переменную окружения, установите CLAUDE_CODE_DISABLE_AUTO_MEMORY=1.

Местоположение хранилища

Каждый проект получает свой собственный каталог памяти в ~/.claude/projects/<project>/memory/. Путь <project> получается из репозитория git, поэтому все worktrees и подкаталоги в одном репозитории используют один каталог auto memory. Вне репозитория git вместо этого используется корень проекта.

Если вы установите CLAUDE_CODE_PROJECT_DIR_NAME рядом с CLAUDE_CONFIG_DIR, Claude Code использует это имя как каталог <project> под <config dir>/projects/ независимо от того, в каком репозитории вы его запустите, поэтому проекты, запущенные с этим каталогом конфигурации, используют один каталог auto memory. Требуется Claude Code v2.1.234 или позже.

Чтобы сохранить auto memory в другом местоположении, установите autoMemoryDirectory в вашем settings.json. Он читается из любой области настроек: пользователя, проекта, локальной, политики или --settings.

{
  "autoMemoryDirectory": "~/my-custom-memory-dir"
}

Значение должно быть абсолютным путём или начинаться с ~/. Когда вы установите его в .claude/settings.json или .claude/settings.local.json проекта, Claude Code соблюдает его в соответствии с тем же правилом доверия рабочей области, что и hooks в файлах настроек.

Каталог содержит индекс MEMORY.md и один файл по теме на память:

~/.claude/projects/<project>/memory/
├── MEMORY.md           # Индекс, одна строка на память, загружается в каждый сеанс
├── user_role.md        # Одна память
├── feedback_testing.md # Одна память
└── ...                 # Любые другие файлы по темам, которые создаёт Claude

MEMORY.md служит индексом каталога памяти. Claude читает и пишет файлы в этом каталоге на протяжении вашего сеанса, используя MEMORY.md для отслеживания того, что хранится где.

Auto memory зависит от машины. Все worktrees и подкаталоги в одном репозитории git используют один каталог auto memory. Файлы не общие между машинами или облачными окружениями.

Claude Code удаляет старые стенограммы сеансов после периода хранения cleanupPeriodDays, но исключает файлы памяти в каталоге памяти из этого периода хранения. MEMORY.md и файлы по темам остаются до тех пор, пока вы или Claude не отредактируете или не удалите их.

Как это работает

Первые 200 строк MEMORY.md, или первые 25KB, в зависимости от того, что наступит раньше, загружаются в начале каждого разговора. Содержимое после этого порога не загружается при запуске сеанса. Claude держит MEMORY.md лаконичным, перемещая подробные заметки в отдельные файлы по темам.

После того как Claude пишет в MEMORY.md, Claude Code измеряет файл в соответствии с ограничениями чтения в 200 строк и 25KB. Если файл близок к ограничению, Claude Code напоминает Claude сократить его: оставить одну строку на запись, переместить детали в файлы по темам и объединить или удалить устаревшие записи. Если файл превышает ограничение, запись всё ещё успешна, но Claude Code возвращает ошибку, указывающую Claude переписать индекс, потому что всё после ограничения отбрасывается при следующей загрузке.

Это ограничение применяется только к MEMORY.md. Claude Code загружает файл CLAUDE.md размером до 4 MiB полностью и пропускает больший файл. Более короткие файлы дают лучшее соблюдение.

Claude Code не загружает файлы по темам, такие как user_role.md или feedback_testing.md, при запуске. Claude читает их по требованию, используя свои стандартные инструменты файлов, когда ему нужна информация.

Память auto memory основного разговора не загружается в подагентов; исключением является fork, который наследует родительский разговор и системный prompt. Собственная auto memory подагента, включённая с полем memory подагента, — это отдельный каталог.

Claude читает и пишет файлы памяти во время вашего сеанса. Когда вы видите сообщения вроде "Saved 2 memories" или "Recalled 2 memories" в интерфейсе Claude Code, Claude активно обновляет или читает из ~/.claude/projects/<project>/memory/.

Когда Claude пишет файл памяти, который начинается с YAML frontmatter, Claude Code записывает время записи в поле modified frontmatter как временную метку ISO 8601. Временная метка показывает, насколько актуален факт, как для вас, так и для Claude, когда он читает память обратно. Любой файл, который имеет frontmatter, получает это поле при следующей записи Claude, включая файлы, созданные в более ранних версиях; Claude Code никогда не добавляет frontmatter к файлу, который его не имеет. Поле modified требует Claude Code v2.1.214 или позже.

Проверьте и отредактируйте вашу память

Файлы auto memory — это простой markdown, который вы можете редактировать или удалять в любое время. Запустите /memory для просмотра и открытия файлов памяти из сеанса.

Просмотр и редактирование с помощью `/memory`

Команда /memory перечисляет ваши файлы CLAUDE.md, CLAUDE.local.md и другие файлы памяти в разных областях пользователя и проекта, включая записи CLAUDE.md пользователя и проекта для файлов, которые еще не существуют. Она также позволяет переключать auto memory включена или отключена и предоставляет опцию для открытия папки auto memory. Выберите любой файл для открытия его в вашем редакторе; выбор файла, который еще не существует, сначала создает его. Чтобы проверить, какие файлы фактически загружены в текущий сеанс, запустите /context.

Графические редакторы, такие как VS Code, открывают файл в отдельном окне, и вы можете продолжать использовать сеанс, пока он открыт. До версии 2.1.216 /memory ждал, пока вы закроете файл, прежде чем ответить. Редакторы терминала, такие как Vim, захватывают терминал, пока вы не выйдете.

Когда вы просите Claude что-то запомнить, например "всегда используйте pnpm, а не npm" или "помните, что тесты API требуют локального экземпляра Redis", Claude сохраняет это в auto memory. Чтобы добавить инструкции в CLAUDE.md, попросите Claude напрямую, например "добавьте это в CLAUDE.md", или отредактируйте файл самостоятельно через /memory.

Устранение неполадок с памятью

Это наиболее распространённые проблемы с CLAUDE.md и auto memory, а также шаги для их отладки.

Claude не следует моему CLAUDE.md

Содержимое CLAUDE.md доставляется как пользовательское сообщение после системного запроса, а не как часть самого системного запроса. Claude читает его и пытается следовать ему, но нет гарантии строгого соответствия, особенно для расплывчатых или конфликтующих инструкций.

Для отладки:

  • Запустите /context и проверьте список под Memory files, чтобы убедиться, что ваши файлы CLAUDE.md и CLAUDE.local.md загружены. Если файл отсутствует там, Claude не может его видеть. Используйте /memory для открытия и редактирования файлов.
  • Проверьте, что соответствующий CLAUDE.md находится в местоположении, которое загружается для вашего сеанса (см. Выберите, где разместить файлы CLAUDE.md).
  • Сделайте инструкции более конкретными. "Используйте отступ из 2 пробелов" работает лучше, чем "красиво форматируйте код".
  • Ищите конфликтующие инструкции в файлах CLAUDE.md. Если два файла дают разные рекомендации для одного поведения, Claude может выбрать одну произвольно.

Если инструкция — это что-то, что должно выполняться в определённый момент, например перед каждым коммитом или после каждого редактирования файла, напишите её как hook. Hooks выполняются как команды shell в фиксированных событиях жизненного цикла и применяются независимо от того, что решит сделать Claude.

Для инструкций, которые вы хотите на уровне системного запроса, используйте --append-system-prompt. Вы передаёте это при запуске, поэтому оно лучше подходит для скриптов и автоматизации, чем для интерактивного использования. О том, как оно ведёт себя при возобновлении разговора, см. System prompt flags in resumed conversations.

Я не знаю, что сохранила auto memory

Запустите /memory и выберите папку auto memory для просмотра того, что Claude сохранил. Всё это простой markdown, который вы можете читать, редактировать или удалять.

Мой CLAUDE.md слишком большой

Файлы более 200 строк потребляют больше контекста и могут снизить соблюдение. Claude Code пропускает файл размером более 4 MiB. Используйте path-scoped rules для загрузки инструкций только когда Claude работает с соответствующими файлами, или сократите содержимое, которое не требуется в каждом сеансе. Разделение на @path imports помогает организации, но не снижает контекст, так как импортированные файлы загружаются при запуске.

Проверка /doctor предлагает сокращения для проверенного CLAUDE.md: она удаляет содержимое, которое Claude может вывести из кодовой базы, такое как макеты каталогов, списки зависимостей и обзоры архитектуры, и сохраняет подводные камни, обоснование и соглашения, которые отличаются от стандартных инструментов. Проверка сокращения требует Claude Code v2.1.206 или более поздней версии.

Инструкции кажутся потерянными после `/compact`

CLAUDE.md в корне проекта выживает при сжатии: после /compact Claude повторно читает его с диска и повторно вводит его в сеанс. Вложенные файлы CLAUDE.md в подкаталогах и правила с paths: frontmatter перезагружаются по мере того, как Claude читает файлы, к которым они применяются.

Если инструкция исчезла после сжатия, она была дана только в разговоре, находится в вложенном CLAUDE.md, который ещё не перезагрузился, или является правилом с областью действия пути, которое не совпадало с файлом с момента сжатия. Добавьте инструкции только для разговора в CLAUDE.md, чтобы они сохранялись. Полный список см. в разделе What survives compaction.

Подробнее см. в разделе Write effective instructions для рекомендаций по размеру, структуре и конкретности.

  • Отладка вашей конфигурации: диагностируйте, почему CLAUDE.md или настройки не вступают в силу
  • Skills: упакуйте повторяемые рабочие процессы, которые загружаются по требованию
  • Settings: настройте поведение Claude Code с помощью файлов настроек
  • Subagent memory: позвольте subagents поддерживать собственную auto memory