Каждый новый чат с Claude Code начинается с нуля. Агент не знает ваш проект, не помнит что вы обсуждали час назад в соседнем окне, не в курсе что на этом сервере нельзя трогать определённый порт. Вы объясняете одно и то же в пятый раз, и на шестой он всё равно полезет “чинить” конфиг который работал нормально.
Каждую неделю в r/ClaudeAI новая история. Агент удалил production базу. Агент запушил секреты в публичный репо. Агент “оптимизировал” billing-сервис и выставил клиентам нулевые счета. И каждый раз думаешь: очень не хочется стать этим человеком из заголовков.
CLAUDE.md должен решать обе проблемы: и контекст между сессиями, и защиту от катастроф. Типичный CLAUDE.md на 5-10 строк не решает ни одну. Я решила подойти к этому системно - не по одной проблеме за раз, а как к архитектурной задаче.
Сейчас мой конфиг - 582 строки, 6 слоёв, и за каждым правилом стоит конкретная история.
Три случая которые всё изменили
Агент “починил” рабочую систему. Воскресенье вечером. Агент видит в конфиге 127.0.0.1 для внешнего сервиса хранения. Решает что предыдущая сессия оставила ошибку - вместо реального адреса стоит localhost. Логично, правда? Он заменяет на настоящий IP. Upload ломается. Дальше полчаса дебага, прежде чем понимаешь: это был SNI-proxy через локальный туннель, 127.0.0.1 был правильным значением. Без контекста очевидное решение оказалось катастрофой.
Правило которое появилось: “не менять конфиги без понимания зачем текущие значения такие. Если значение выглядит странно - сначала понять, потом действовать.”
fail2ban принял агента за брутфорсера. Агент проверял состояние сервера. Для каждой проверки он открывал новое SSH-подключение. Десяток подключений за минуту - fail2ban интерпретировал как brute-force и заблокировал IP на полчаса. В это время на сервере шла тренировка модели, и я потеряла к ней доступ.
Правило: “один SSH-мост на всё. Один клиент на сессию. Не писать отдельные скрипты для check, fix, verify - объединять в один.”
“Отфильтровать” оказалось “удалить”. Я попросила отфильтровать датасет - убрать неподходящие изображения. Агент интерпретировал буквально: удалил файлы. Не переместил, не пометил - удалил. Данные пропали.
Правило: “‘фильтрация’ = переместить или пометить, не удалить. Перед любым удалением убедиться что пользователь явно попросил именно удалить.”
Написать “будь аккуратен” не работает. Нужна система.
6 слоёв: как это устроено
Ни один слой не был запланирован. Каждый появился после конкретной проблемы.
Слой 1: Rules (9 файлов). Набор правил которые подгружаются по ситуации. Агент пишет статью - ему не нужны правила про SSH. Дебажит код - не нужны правила про оформление текста. Claude Code умеет подключать нужные rules-файлы в зависимости от задачи.
Слой 2: Memory (78 файлов). Появилась когда агент в третий раз забыл конфигурацию сервера. Между сессиями он теперь запоминает: настройки инфраструктуры, решения по проектам, мои предпочтения, прошлые ошибки. Файлы связаны ссылками [[filename]] - 178 перекрёстных ссылок, получается граф знаний из обычного markdown. Часть грузится всегда (базовые правила), остальное - по теме.
Слой 3: Handoffs. Появились когда новый чат повторил тупик предыдущего. При закрытии чата агент записывает сводку: что сделано, что НЕ получилось (самая ценная часть), одно следующее действие. Вот реальный handoff:
## Цель сессии Color checker: CNN sweep + diffusion, первые визуальные результаты. ## Сделано - CNN baseline: median 1.99 deg (11M params, 21 MB) - Sweep на 5 GPU: crop128(3.17), bs16(2.04), lr3e-4(NaN) - Diffusion training запущен: epoch 5/50, loss 0.827 ## НЕ сработало - EfficientNet-B0: hash mismatch в Docker image - lr=3e-4: NaN после epoch 10-13, нет gradient clipping - CNN визуально: 3 числа дают паразитные кастинги ## Следующий шаг Inference скрипт для diffusion + visual sheets с 24 patches
Следующий чат читает 1500 токенов вместо того чтобы заново анализировать проект. За 4 дня накопилось 27 handoff’ов - ни один тупик не повторился. Работает не только между чатами: у меня три подписки (две рабочих, одна личная), и handoff позволяет стартовать в другой подписке без повторных объяснений.
Слой 4: Chronicles. Появились когда после 20 handoffs стало непонятно, почему проект вообще пришёл к текущему состоянию. Handoff отвечает “что дальше”. Хроника - “как сюда пришли”. Ключевые решения, повороты, тупики. 3-7 строк на каждую веху.
Слой 5: Hooks. Появились когда правило “проверяй ссылки в CLAUDE.md” перестало работать через 20 минут сессии. Об этом - отдельная секция ниже.
Слой 6: Skills (16 штук). Готовые наборы знаний для конкретных задач. Описание написано как триггер для модели: “используй когда: GPU зависло, нужна проверка здоровья сервера”, а не “помогает с серверами”.
Правило - пожелание. Hook - гарантия.
Это самый неочевидный вывод за месяц.
Правило в CLAUDE.md - инструкция в промпте. Агент может забыть, переинтерпретировать, проигнорировать на длинной сессии когда контекст забит другими вещами. Правило “проверяй ссылки перед работой” работало первые 10 минут. Потом агент увлекался задачей и забывал.
Hook - это Python-скрипт который Claude Code запускает автоматически при определённых событиях. SessionStart, Stop, PreToolUse. Скрипт не забывает, не переинтерпретирует. Он исполняется механически, каждый раз.
Пример - hook который напоминает записать handoff перед закрытием длинной сессии:
# remind_handoff.py (Stop hook, упрощённо) age = session_age_minutes() if age < 15: return # короткая сессия, не нужно if fresh_handoff_exists(): return # уже записан # Блокируем закрытие и просим записать handoff print(json.dumps({ "decision": "block", "reason": f"Сессия {int(age)} мин, handoff не записан. " f"Запиши в .claude/handoffs/ перед выходом." }))
Модель сама знает когда пора - когда задача завершена или контекст переполняется. Hook страхует от случаев когда она забыла.
Если что-то должно происходить гарантированно - это hook, не правило.
Одна строка конфига которая спасла от supply chain атаки
31 марта 2026 года группа Sapphire Sleet (DPRK) скомпрометировала официальный npm-пакет axios (~100M загрузок в неделю). Опубликовали версию 1.14.1 с вредоносным кодом. Окно: 3 часа, с 00:21 до 03:29 UTC.
В моём .npmrc стояла одна строка:
min-release-age=7
Пакеты опубликованные меньше 7 дней назад не устанавливаются. Большинство вредоносных пакетов обнаруживают за 1-3 дня, 7 дней - комфортный буфер.
Меня не затронуло. Одна строка в конфиге.
Аналогично для Python - в uv.toml:
exclude-newer = "7 days"
За конфигом - 37 papers
Многие правила пришли не из личного опыта, а из академических работ. 37 arxiv papers, переработанных в принципы. Вот те, которые изменили мой workflow больше всего:
Proof Loop. Агент говорит “тесты прошли” - проверяете, тесты не прошли. Proof Loop запрещает агенту подтверждать собственную работу. Нужны файлы-доказательства: вывод тестов, verdict от верификатора в свежей сессии, который не видел процесс создания. Источник.
Structured Reasoning. Вместо свободного “ну, может это, а может то” - формат: что точно знаем из кода и логов → пошаговая трассировка → что следует → какие гипотезы проверили и отбросили. На реальных патчах accuracy с 78% до 93%. Источник.
Deterministic Orchestration. Если задача детерминированная - тесты, линтер, форматирование - она идёт через shell-скрипт. Модель плохо считает, теряет счётчики, путает условия в циклах. Скрипт - нет.
Red Lines. Обычные правила агент может интерпретировать “творчески”. Red Lines - абсолютные запреты без исключений. “Не удалять без подтверждения.” “Не менять production конфиги без понимания.” Каждый привязан к инциденту. Паттерн из китайского инженерного сообщества (红线).
Остальные принципы - generator-evaluator, autoresearch, multi-agent decomposition, codified context, agent security, documentation integrity и ещё 7 - подробно описаны в репозитории.
Цифры
78 memory файлов. 178 перекрёстных ссылок. 27 handoffs за 4 дня. 96.9% KV-cache hit rate на 83 сессиях за неделю.
Файл конфигурации обновляет сам себя: после каждого изменения агент проверяет не устарели ли ссылки. SessionStart hook валидирует автоматически.
Работает ли идеально? Нет. При аудите нашлись 4 memory файла которые выпали из индекса. Documentation drift случился с системой, которая должна его предотвращать. Но без неё было бы хуже.
Чего не знаю
Не уверена что все принципы нужны каждому. Для большинства проектов, вероятно, хватит пяти: Deterministic Orchestration, Structured Reasoning, Supply Chain Defense, Codified Context, Handoffs.
Не уверена что 6 слоёв - минимум. Может я overengineered. Но за месяц ни разу не потерялся контекст и ни один тупик не повторился.
Один из принципов (Assumption Testing) прямо говорит: каждый компонент кодирует предположение о неспособности модели. Модели улучшаются. Убирайте компоненты и измеряйте - может какой-то из слоёв уже не нужен.
Попробовать
Скопировать в чат Claude Code:
https://github.com/AnastasiyaW/claude-code-config - изучи, выбери что подходитдля моей работы и настрой мой Claude Code
Начать с малого: Supply Chain Defense (одна строка в .npmrc) + Deterministic Orchestration (тесты через скрипты) + Structured Reasoning (формат дебага). Добавлять по мере необходимости.
Всё под MIT. github.com/AnastasiyaW/claude-code-config
Комментарии (61)

TerraV
12.04.2026 18:01Каждый второй ИИ энтузиаст создает свою систему памяти. Каждый третий видит в ней серебряную пулю. И что самое интересное, для большинства из них это работает. Но так же правда в том, что эти решения user-specific и нифига нормально не переносятся. Мне кажется каждый из нас собирает свое "идеальное зеркало" и потом смотримся в него и умиляемся "как мощны наши лапища".

abbasov-alexander
12.04.2026 18:01А я вот человек неискушенный в ИИ, но как познакомился с GStack, так с ним и работаю (3 недели). Еще начинаю понемногу Beads осваивать. CLAUDE.md создавал через стандартную слэш команду и у меня агенты GStack сами всё важное внесли в файл. И всё выглядит очень емко и кратко. Я бы так не смог. В одном проекте CLAUDE.md 157 строк, в другом 380 строк.
Надо сказать, что я не знаю как остальные люди, но я пока не доверю полностью ИИ. Поэтому внимательно читаю и планы и исследую реализацию. Дебаг и будни программирования не сильно смущают — я пока полагаю, что это нормальная обязанность специалиста владеть кодом который он создаёт, даже если создаёт на пару с ИИ. А, ещё для экономии токенов использую RTK. Не то, чтобы прям большая экономия, но какой никакой расход сокращает.

Sonia_Black Автор
12.04.2026 18:01Правильный подход - читать и понимать что создаёшь, даже если создаёшь с ИИ. 157 и 380 строк - хороший диапазон для проектных CLAUDE.md. По GStack не работала, интересно будет сравнить подходы. Про RTK не слышала - это что за инструмент?

abbasov-alexander
12.04.2026 18:01Какой-то очень новый. По смыслу он сокращает вывод консольных команды, но обещает делать без ущерба для агентов. Работает через хуки. В целом не вижу проблем у агентов при работе с ним, но вот словам про оптимизацию токенов на 90% я бы не верил) Я конечно не делал реальных замеров, но по ощущениям это что-то в районе 10-30%. https://github.com/rtk-ai/rtk

Sonia_Black Автор
12.04.2026 18:01Ну в офисе я раскатала это безболезненно. так что если своих наработок не много то вполне подойдет. Плюс репозиторий я сделала с пометкой для агента выбрать подходящее. Что то наверянка можно забрать.

NadFox
12.04.2026 18:01Работа с AI, помимо всего прочего, даёт отличную возможность почувствовать себя немного богом, словам которого внемлет пусть немного бестолковое, но покорное и одновременно могущественное существо. Такой способ майнинга эндорфинов намного безопаснее (и доступнее) какого-нибудь параглайдинга. Вайбкодинг-зависимость ещё ждёт своих теравпевтов, реабилитационных центров и Обществ Анонимных Вайбкодеров.
Буду первым: "Здравствуйте. Меня зовут NadFox и я вайбкодер".

BearOff
12.04.2026 18:01Claude может произвольно игнорировать инструкции из CLAUDE.md, если он слишком большой. 582 - это большой.
Size: target under 200 lines per CLAUDE.md file. Longer files consume more context and reduce adherence.

jetnet
12.04.2026 18:01надо токены укорачивать: кр.сестр.тал.

ivchatov309
12.04.2026 18:01Надо ставить caveman.md, или как он называется

Optimizator_mk8
12.04.2026 18:01https://github.com/JuliusBrussee/caveman
прикольная штука, тестирую второй день

titulusdesiderio
12.04.2026 18:01Кроме того этот файл дублируется в контекст с каждым новым сообщением от пользователя. Нагружать каждое сообщение дополнительными 600-строками это мощно

Sonia_Black Автор
12.04.2026 18:01Не совсем так - CLAUDE.md грузится один раз и кэшируется (KV-cache). Повторно токены не тратятся, они переиспользуются из кэша. Плюс 582 строки - это вся система, а не один файл. Основная часть распределена по rules/ и memory/, которые подгружаются условно.

titulusdesiderio
12.04.2026 18:01Нет. Он каждый раз отправляется. Это выяснили на прошлой неделе после утечки исходного кода Claude Code

Sonia_Black Автор
12.04.2026 18:01да, файл физически в system prompt каждого запроса. Что в мою защиту: он попадает в стабильный префикс и кэшируется через prompt caching (
cache_read_input_tokens- в ~10x дешевлеcache_creation). "Не грузится повторно" было неточно с моей стороны - правильно "не тарифицируется повторно в пределах 5-минутного TTL". Тем не менее аргумент про размер остаётся - даже закэшированный большой префикс замедляет первый запрос и раздувает storage. Спасибо за указание на неточность

TerraV
12.04.2026 18:01Вы только забыли упомянуть что время жизни кэша ~5 минут у Anthropic. Цифра разумеется плавает, но она очень небольшая. То есть пока вы работаете интенсивно, попадание в кэш хорошее, бюджет сессии тратится медленно. Отойти на 10-20 минут подумать - stale cache + скачок в использовании бюджета. И да, важно упомянуть что кэш это не про "трату токенов" а про тарификацию. Cache miss ощутимо дороже cache hit, но cache hit всё еще тарифицируется и далеко не бесплатен.
С CLAUDE.md еще интереснее. Он цепляется к каждому сообщению (как писали в разборе кода claude code). Я за достоверность не поручусь, но если поменять CLAUDE.md то ИИ прекрасно описывает где и какие изменения произошли. Сама сессия stateless. Т.е. весь контекст "до" + промпт пользователя обрабатывается каждый раз. Кэш спасает, но первый же запрос "продолженной" сессии легко выгребает 10-20% пятичасового бюджета. У меня Opus 4.6 1M, и сессии обычно доходят до 400к токенов, очень иногда 500к+. Дальше наблюдается видимая деградация как в скорости обработки, так и в качестве.

Sonia_Black Автор
12.04.2026 18:01582 строки - это не один файл в промпте. Это вся система целиком: CLAUDE.md (~200 строк основного текста) + 9 rule-файлов которые грузятся условно + 78 файлов памяти которые подтягиваются по теме. В каждый конкретный вызов попадает только релевантная часть. Рекомендацию "under 200 lines per file" я как раз и соблюдаю - отдельно взятый CLAUDE.md укладывается. 582 - это общий объём конфигурации по всем слоям.
dmitrik4321
Спасибо за статью, нашел опечатку, в Попробовать (ниже в строке которую нужно скопировать пропущен пробел между подходит и для)
ProgerMan
Для этого достаточно выделить ошибку и нажать Ctrl+Enter, чтобы отправить автору личным сообщением.
dmitrik4321
Спасибо, не знал, не так давно в Хабре