v1 · 2026

Claude Code · конфигурация

Структура системных файлов
Claude Code

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

🌱 Новичок? Открыть версию простыми словами →

в git · общий для команды local · в .gitignore служебное · не трогать руками
01 Порядок загрузки контекста при старте сессии

Это делает харнесс автоматически и в фиксированном порядке — ещё до твоего первого сообщения. Сверху вниз = раньше → позже.

  1. Системный промпт + окружениеРоль, доступные инструменты, платформа, дата, модель.
  2. Enterprise-политикаУправляемые настройки организации, если заданы — высший приоритет, перебить нельзя.
  3. Глобальный ~/.claude/CLAUDE.mdТвои инструкции для всех проектов.
  4. Проектные CLAUDE.mdСобираются вверх по дереву от текущей папки до корня репозитория, затем сам проектный.
  5. Личный CLAUDE.local.mdЕсли есть (лежит в .gitignore).
  6. @-импорты внутри CLAUDE.mdПодтягиваются рекурсивно (до 5 уровней) — так подключают rules/.
  7. Авто-память MEMORY.md + recallИндекс фактов и релевантные воспоминания.
  8. Метаданные skills / agents / commands / MCPТолько name + description, НЕ тела.
  9. Вывод SessionStart-hookНапр. summary прошлой сессии — если хук настроен.
Ключевой момент: тела skills и agents в контекст сразу не попадают — грузятся только короткие описания. Поэтому даже 100 скиллов не съедают окно; тело подтягивается только когда скилл реально вызван.
Настройки ≠ контекст. settings.json не «читается в окно» — он применяется как конфиг (hooks, permissions, env) по приоритету из раздела 6, а его текст в контекст не загружается.
02 Что читается по команде «прочитай проект»

Здесь порядок не жёсткий: это уже решение модели-агента, а не харнесса. Разумная последовательность — от общего к частному:

  1. CLAUDE.mdУже в контексте — правила и структура проекта. Отправная точка.
  2. README.mdНазначение, как запускать, обзор.
  3. Карта файловGlob / обзор дерева — что вообще есть и как организовано.
  4. Манифесты зависимостейpackage.json, requirements.txt, Cargo.toml, go.mod — стек и команды.
  5. Конфигиtsconfig, vite/next.config, .env.example, CI.
  6. Точки входаindex / main / app — откуда стартует код.
  7. Углубление по задачеКонкретные модули — только нужные под текущий запрос.
Зависит от формулировки. «Прочитай проект» → широкий обзор. «Почини баг в авторизации» → сразу целевой поиск по auth-файлам, без полного обхода. Чем точнее запрос — тем меньше лишнего читается и тем больше окна остаётся на работу.
03 Глобальный уровень — ~/.claude/

Применяется ко всем проектам на этой машине. На Windows путь: C:\Users\<user>\.claude\

~/.claude/
~/.claude/
├── settings.json            # ГЛАВНЫЙ конфиг: hooks, permissions, env, model
├── settings.local.json      # локальные оверрайды (НЕ в git)
├── CLAUDE.md                # глобальные инструкции для ВСЕХ проектов
├── keybindings.json         # кастомные горячие клавиши
│
├── agents/                  # субагенты (.md + YAML-frontmatter)
│   └── planner.md
├── skills/                  # скиллы (папка = 1 скилл)
│   └── <name>/SKILL.md · references/ · scripts/
├── commands/                # slash-команды (/cmd → cmd.md)
├── rules/                   # модульные правила, подключаются из CLAUDE.md
├── hooks/                   # скрипты-хуки, вызываются из settings.json
│
├── plugins/
│   ├── config.json
│   └── installed_plugins.json  # машинно-специфичный — НЕ синкать!
├── mcp.json                 # MCP-серверы (или внутри settings.json)
├── plans/                   # планы (.md)
├── projects/                # история сессий + авто-память по проектам
│   └── <slug>/memory/MEMORY.md  # индекс памяти + *.md (1 факт = 1 файл)
├── session-data/            # снапшоты save-session / resume-session
├── todos/                   # сохранённые TodoWrite-списки
└── statsig/                 # телеметрия/флаги — НЕ трогать
04 Проектный уровень — <project>/.claude/

Живёт внутри репозитория. Дополняет и перебивает глобальные настройки для конкретного проекта.

<project>/
<project>/
├── CLAUDE.md                # инструкции проекта (в git, для всей команды)
├── CLAUDE.local.md          # личные инструкции (НЕ в git) — устаревает
│
└── .claude/
    ├── settings.json        # настройки проекта (в git): hooks, permissions
    ├── settings.local.json  # личные оверрайды (в .gitignore)
    ├── agents/             # агенты только этого проекта
    ├── skills/             # скиллы только этого проекта
    ├── commands/           # slash-команды проекта
    ├── hooks/              # хук-скрипты проекта
    └── mcp.json            # MCP-серверы проекта
Правило большого пальца: всё с .local в имени — личное и идёт в .gitignore. Всё без .local — общее и коммитится.
05 Назначение и формат каждого файла
ФайлЗачемФормат / что внутри
settings.jsonСердце харнесса. Единственное место для автоматизмов («каждый раз когда X»)JSON: hooks, permissions, env, model, statusLinegit
settings.local.jsonТо же, но машинно-/личноеJSON, та же схема — оверрайдит settings.jsonlocal
CLAUDE.mdИнструкции на естественном языке: стиль, правила, структура. Всегда в контекстеMarkdown. Держать короткимgit
agents/*.mdОпределение субагента: системный промпт + набор инструментовYAML-frontmatter (name, description, tools, model) + телоgit
skills/*/SKILL.mdУглублённая инструкция «как сделать X», грузится по требованиюfrontmatter (name, description) + тело; тяжёлое → references/git
commands/*.mdSlash-команда. Имя файла = имя командыMarkdown-промпт; $ARGUMENTS для подстановкиgit
hooks/*Скрипты на события PreToolUse / PostToolUse / Stop / SessionStartИсполняемый файл; JSON в stdin, exit 2 = блокgit
mcp.jsonПодключение внешних MCP-серверов (инструменты, ресурсы)JSON: mcpServers → command/args/env или urlgit
keybindings.jsonПереопределение горячих клавишJSONgit
memory/MEMORY.mdИндекс долговременной памяти — 1 строка на фактMarkdown-списокlocal
06 Иерархия приоритетов — кто кого перебивает

Порядок применения настроек

Выигрывает более специфичный уровень. Проектный local перебивает всё, глобальный settings.json — фундамент.

.claude/settings.local.json проект · личное — ВЫСШИЙ приоритет ★ побеждает .claude/settings.json проект · общий (в git) ~/.claude/settings.local.json глобал · личное ~/.claude/settings.json — фундамент приоритет растёт ↑ верхний оверрайдит нижние

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

07 Жизненный цикл hook'а — событие → скрипт → exit code

Как срабатывает hook

Hook исполняет харнесс, а не Claude. Скрипт получает JSON в stdin и решает судьбу действия кодом выхода.

Событие PreToolUse… hook-скрипт JSON → stdin exit code? exit 0 → продолжить действие выполняется exit 2 → блок stderr → Claude как фидбэк
  • PreToolUse — до вызова инструмента (валидация, блокировка опасного).
  • PostToolUse — после (автоформат, линт, тайп-чек).
  • Stop / SessionStart — на финале / старте сессии (сборка, подгрузка контекста).
08 Что в git, а что в .gitignore

✅ Коммитим в git

Команда видит одно и то же.

  • CLAUDE.md
  • .claude/settings.json
  • .claude/agents/
  • .claude/skills/
  • .claude/commands/
  • .claude/hooks/
  • .claude/mcp.json

🚫 В .gitignore

Личное / машинно-специфичное.

  • *.local.json (любые)
  • CLAUDE.local.md
  • installed_plugins.json
  • session-data/
  • todos/ · statsig/
  • секреты: .env, ключи, токены
.gitignore
# Claude Code — личное и машинно-специфичное
*.local.json
CLAUDE.local.md
.claude/settings.local.json
**/installed_plugins.json
.env
.env.*
09 5 принципов «идеальной» раскладки
1 · Иерархия. Выигрывает более специфичный уровень. Прямая инструкция пользователя — выше любого файла.
2 · Что коммитить. Общее (без .local) → в git. Личное (*.local) → в .gitignore.
3 · Автоматизмы — только через hooks. «Делай X каждый раз после Y» исполняет харнесс. Значит это hooks в settings.json, а не текст в CLAUDE.md и не память.
4 · CLAUDE.md держать тонким. Он всегда в контексте → лишние килобайты съедают окно. Объёмные правила → в rules/ и подключать ссылкой.
5 · Память: 1 факт = 1 файл + строка в MEMORY.md. Не складывать содержимое в индекс.