Зачем эта иерархия вообще нужна
Когда работаешь с Claude как с обычным чатом, у него ноль контекста о тебе и проекте. В каждом разговоре приходится заново объяснять стек, конвенции, что нельзя, какие файлы нельзя трогать. Это медленно и роняет качество.
Claude Code решает это слоями. Шесть мест, где живут инструкции, и каждый слой подтягивается автоматически в нужный момент. Чем выше слой — тем шире охват (всё, всегда), чем ниже — тем точечнее (одна команда, один файл).
Шесть слоёв сверху вниз
1. Глобальный CLAUDE.md (~/.claude/CLAUDE.md)
Личные правила — язык, тон, запреты, стиль работы. Загружается в любую сессию, в любом проекте.
Сюда: «русский основной язык», «не выдумывай данные», «не отправляй сообщения без явного одобрения», «делай 2-3 варианта с плюсами и минусами».
Не сюда: специфика конкретного проекта, стек, имена людей.
2. Проектный CLAUDE.md (в корне проекта)
Стек, конвенции, структура папок, активные клиенты, ключевые файлы, которые нельзя трогать. Подтягивается, когда заходишь в этот проект.
Сюда: «Next.js 14 App Router, TypeScript strict, Tailwind 4», «деплой через rsync на VPS», «клиент по обучению Claude Code».
Не сюда: твои личные предпочтения по стилю общения (это в глобальный).
3. Skills (~/.claude/skills/<name>/SKILL.md)
Атомарная задача, которую ты делаешь регулярно. Триггерится по фразе или по слэш-команде. Например: /commit, /deploy, /review.
Skill — это не инструкция «всегда так делай», а «когда я говорю Х, выполни такой-то протокол».
Пример: skill /commit знает конвенцию проекта (feat/fix/docs), запускает git status + git diff, формулирует сообщение, ставит coauthor. Раньше я каждый раз набивал это руками.
4. Subagents (.claude/agents/<name>.md)
Специализированный исполнитель в виде отдельного .md файла. У него своя инструкция, свой набор инструментов, своя зона ответственности.
Главное отличие от skill — агент работает в своём контексте, не засоряя основной. Можно отправить ему большую задачу, он её сделает и вернёт сжатый результат.
Я использую: backend-specialist, frontend-specialist, quality-guardian, web-researcher. Каждый специализирован, каждый на своём.
5. MEMORY.md + memory/.md
Персистентная память между сессиями. Не инструкции, а факты — кто пользователь, что было решено, какие правила фидбека уже даны, контекст по клиентам.
MEMORY.md — индекс. Сами записи живут в отдельных файлах (feedback_*.md, project_*.md, client_*.md). Так MEMORY.md остаётся коротким, а детали раскрываются по мере необходимости.
Пример записи: «Лана — изоляция чатов: НИКОГДА не использовать cfg.chat_id при прямом Telethon. Причина: был инцидент с пересечением чатов двух клиентов».
6. settings.json + permissions
Конфиг проекта на уровне самой Claude Code. Какие команды разрешены без подтверждения, какие переменные среды, какие хуки запускаются автоматически.
Сюда: «разрешить npm install без спроса», «при каждом сохранении .tsx запускать prettier», «при стопе показать дашборд».
Это уже не «что Claude знает», а «что Claude может делать сам».
Как это работает в живом разговоре
Открыл Claude Code в проекте — система загрузила:
- Твой глобальный
CLAUDE.md(общие правила) - Проектный
CLAUDE.md(стек и контекст) MEMORY.md(что было раньше)- Skills из
~/.claude/skills/и.claude/skills/(атомарные команды доступны) - Subagents из
.claude/agents/(специалисты на подхвате) - Permissions из
settings.json(что можно делать молча)
Ты пишешь «обнови карточку клиента после сессии» — Claude уже знает кто ты, какой проект, какой стиль, есть ли подходящий skill, и какие команды в bash он может выполнить без вопросов.
Принцип распределения
Один вопрос: «это правда везде или только здесь?»
- Везде, всегда → глобальный CLAUDE.md
- В этом проекте → проектный CLAUDE.md
- Когда я скажу команду → skill
- Большая задача отдельно → subagent
- Запомнить факт → memory
- Разрешить инструмент → settings.json
Большинство ошибок в настройке Claude Code от того, что инструкции лежат не на своём слое — например, проектная конвенция в глобальном файле или личное правило в проектном. Через неделю ты сам не понимаешь, почему AI делает не то.
Что сделать прямо сейчас
- Открой
~/.claude/CLAUDE.md. Если его нет — создай. Запиши 5 правил, как ты хочешь, чтобы AI с тобой работал. - В каждом активном проекте создай
CLAUDE.mdв корне. 10-15 строк: стек, что трогать нельзя, кто текущие клиенты. - Поймай повторяющуюся задачу (коммит, деплой, ревью) — заверни в skill.
Дальше слои подтянутся сами по мере роста.