Поведение Claude Code задают семь способов подачи инструкций. Выбор между ними — это баланс двух вещей: сколько контекста способ съедает и насколько жёстко он исполняется.
/context.additionalContext; обычный stdout уходит в лог./clear между несвязанными задачами · субагент на тяжёлые чтения · /compact focus on … перед большой новой задачей · отключить лишние MCP через /mcp./compact. Разные способы управления переживают это по-разному, и вот тут ломаются интуиции.| Механизм | Итог | Что происходит |
|---|---|---|
| System prompt, output style | не трогается | Живут вне истории сообщений — сжимать нечего. |
| Hooks | не трогается | Это код, а не контекст. Компакция их вообще не касается. |
CLAUDE.md в корне + rules без paths |
перечитывается | Claude заново читает их с диска и вкладывает в новый контекст. |
| Авто-память | перечитывается | Тоже подтягивается с диска заново. |
Rules с paths: |
теряется | Вернётся, только когда Claude снова прочитает подходящий файл. Если правило обязано пережить компакцию — убери paths или перенеси в корневой CLAUDE.md. |
| Вложенные CLAUDE.md (app/api/CLAUDE.md) |
теряется | До следующего чтения файла из этой папки. |
| Тела вызванных скиллов | обрезается | Реинжектятся, но с потолком: 5 000 токенов на скилл и 25 000 суммарно, старые вылетают первыми. Обрезка оставляет начало файла — клади главное наверх SKILL.md. |
# личное, во всех проектах ~/.claude/CLAUDE.md ~/.claude/{rules,skills,agents}/… # проект ./CLAUDE.md ./app/api/CLAUDE.md # по требованию ./.claude/rules/*.md # paths: — скоуп по глобам ./.claude/skills/<name>/SKILL.md ./.claude/agents/<name>.md ./.claude/output-styles/*.md ./.claude/settings.json # hooks, permissions