Посмотрите, что загрузилось в контекст
Команда/context показывает всё, что занимает контекстное окно для текущей сессии, разбитое по категориям: системный prompt, файлы памяти, skills, MCP tools и сообщения беседы. Запустите её в первую очередь, чтобы подтвердить, присутствуют ли ваши CLAUDE.md, правила или описания skills вообще.
Для деталей по конкретной категории используйте специализированную команду:
| Команда | Показывает |
|---|---|
/memory | Какие файлы CLAUDE.md и rules загрузились, плюс записи auto-memory |
/skills | Доступные skills из проекта, пользователя и источников плагинов |
/agents | Настроенные subagents и их параметры |
/hooks | Активные конфигурации hooks |
/mcp | Подключённые MCP серверы и их статус |
/permissions | Разрешённые и запрещённые правила, которые в настоящее время действуют |
/doctor | Диагностика конфигурации: неверные ключи, ошибки схемы, здоровье установки |
/status | Активные источники параметров, включая то, действуют ли управляемые параметры |
/memory, проверьте его расположение в соответствии с как загружаются файлы CLAUDE.md. Файлы CLAUDE.md в подпапках загружаются по требованию, когда Claude читает файл в этой папке с помощью инструмента Read, а не при запуске сессии.
Если /memory подтверждает, что файл загрузился, но Claude всё ещё не следует конкретной инструкции, проблема, вероятно, в том, как написана инструкция, а не в том, загрузилась ли она. CLAUDE.md хорошо работает для типов рекомендаций, которые вы дали бы новому коллеге, таких как соглашения проекта, команды сборки и где находятся файлы.
Соответствие снижается, когда инструкция достаточно расплывчата, чтобы интерпретировать несколькими способами, когда два файла дают противоречивые указания или когда файл вырос настолько, что отдельные правила получают меньше внимания. Напишите эффективные инструкции охватывает специфичность, размер и структурные паттерны, которые поддерживают высокое соответствие.
CLAUDE.md и permissions решают разные проблемы. CLAUDE.md говорит Claude, как работает ваш проект, чтобы он принимал хорошие решения. Permissions и hooks обеспечивают ограничения независимо от того, что решит Claude. Используйте CLAUDE.md для “мы делаем это так здесь”. Используйте permissions или hooks для границ безопасности и всего, что никогда не должно происходить, когда вам нужна гарантия вместо рекомендации.
Проверьте разрешённые параметры
Параметры объединяются в управляемых, пользовательских, проектных и локальных областях. Управляемые параметры всегда выигрывают, когда присутствуют. Среди остальных, более близкая область переопределяет более широкую в порядке локальная, затем проект, затем пользователь. Некоторые параметры также можно устанавливать флагами командной строки или переменными окружения, которые действуют как ещё один слой переопределения. Когда параметр не кажется применяемым, значение, которое вы установили, обычно переопределяется другой областью или переменной окружения. Запустите/doctor, чтобы проверить файлы конфигурации и выявить неверные ключи или ошибки схемы. Запустите /status, чтобы увидеть, какие источники параметров активны, включая то, действуют ли управляемые параметры. Чтобы понять, какая область выигрывает для данного ключа, см. Как взаимодействуют области.
Проверьте MCP серверы
Запустите/mcp, чтобы увидеть каждый настроенный сервер, его статус подключения и одобрили ли вы его для текущего проекта. Сервер может быть определён правильно, но всё ещё не предоставлять tools по нескольким распространённым причинам:
- Серверы с областью проекта в
.mcp.jsonтребуют одноразового одобрения. Если prompt был отклонён, сервер остаётся отключённым, пока вы не одобрите его из/mcp. - Сервер, который не запускается, отображается как failed в
/mcp. Относительные пути к файлам вcommandилиargs— частая причина, так как они разрешаются относительно каталога, из которого вы запустили Claude Code, а не расположения.mcp.json. - Сервер, который показывает как connected, но перечисляет нулевые tools, успешно запустился, но не возвращает список tools. Выберите Reconnect из
/mcp. Если количество остаётся нулевым, запуститеclaude --debug mcp, чтобы увидеть вывод stderr сервера.
Проверьте hooks
Запустите/hooks, чтобы перечислить каждый hook, зарегистрированный для текущей сессии, сгруппированный по событиям. Если hook, который вы определили, не появляется, он не читается: hooks идут под ключом "hooks" в файле параметров, а не в отдельном файле.
Если hook появляется, но не срабатывает, обычно причина в matcher. Поле matcher — это одна строка, которая использует | для соответствия нескольким именам tools, например "Edit|Write". Неправильное имя tool молча не срабатывает, потому что matcher никогда не совпадает. Значение массива — это ошибка схемы: Claude Code показывает уведомление об ошибке параметров, /doctor сообщает об ошибке валидации, и запись hook удаляется, поэтому она не будет отображаться в /hooks.
Правки в settings.json вступают в силу в работающей сессии после краткой задержки стабильности файла. Вам не нужно перезагружаться. Если /hooks всё ещё показывает старое определение через несколько секунд после сохранения, запустите /hooks снова, чтобы обновить представление.
Если /hooks показывает hook, но он всё ещё не срабатывает, следующий шаг — наблюдать оценку hook в реальном времени. Запустите сессию с claude --debug hooks и вызовите tool call. Журнал отладки записывает каждое событие, какие matchers были проверены, и код выхода и вывод hook. См. Debug hooks для формата журнала и hooks troubleshooting для распространённых паттернов сбоев.
Распространённые причины
Большинство сюрпризов конфигурации восходят к небольшому набору правил расположения и синтаксиса. Проверьте их перед тем, как предположить ошибку:| Симптом | Причина | Исправление |
|---|---|---|
| Hook никогда не срабатывает | matcher — это JSON массив вместо строки | Используйте одну строку с | для соответствия нескольким tools, например "Edit|Write". См. matcher patterns. |
| Hook никогда не срабатывает | значение matcher в нижнем регистре, например "bash" | Соответствие чувствительно к регистру. Имена tools написаны с заглавной буквы: Bash, Edit, Write, Read. |
| Hook никогда не срабатывает | Hooks находятся в отдельном файле .claude/hooks.json | Нет отдельного файла hooks. Определите hooks под ключом "hooks" в settings.json. См. hook configuration. |
| Permissions, hooks или env, установленные глобально, игнорируются | Конфигурация была добавлена в ~/.claude.json | ~/.claude.json содержит состояние приложения и переключатели UI. permissions, hooks и env принадлежат ~/.claude/settings.json. Это два разных файла. |
Значение settings.json кажется игнорируемым | Тот же ключ установлен в settings.local.json | settings.local.json переопределяет settings.json, и оба переопределяют ~/.claude/settings.json. См. settings precedence. |
Skill не появляется в /skills | Файл skill находится в .claude/skills/name.md вместо папки | Используйте папку с SKILL.md внутри: .claude/skills/name/SKILL.md. |
Skill появляется в /skills, но Claude никогда его не вызывает | Skill имеет disable-model-invocation: true в своём frontmatter или его описание не совпадает с тем, как вы формулируете запрос | Проверьте значок в /skills: метка “user-only” означает, что Claude не будет его запускать самостоятельно. См. skill invocation. |
Инструкции в подпапке CLAUDE.md кажутся игнорируемыми | Файлы подпапок загружаются по требованию, а не при запуске сессии | Они загружаются, когда Claude читает файл в этой папке с помощью инструмента Read, а не при запуске и не при записи или создании файлов там. См. как загружаются файлы CLAUDE.md. |
Subagent игнорирует инструкции CLAUDE.md | Subagents не всегда наследуют память проекта | Поместите критические правила в тело файла агента, которое становится системным prompt subagent. См. subagent configuration. |
| Логика очистки никогда не запускается в конце сессии | Нет настроенного SessionEnd hook | SessionStart и SessionEnd оба существуют. См. hook events list. |
MCP серверы в .mcp.json никогда не загружаются | Файл находится под .claude/ или использует формат конфигурации Claude Desktop | Конфигурация MCP проекта находится в корне репозитория как .mcp.json, а не внутри .claude/. См. MCP configuration. |
| Добавлен MCP сервер проекта, но не появляется | Prompt одноразового одобрения был отклонён | Серверы с областью проекта требуют одобрения. Запустите /mcp, чтобы увидеть статус и одобрить. |
| MCP сервер не запускается из некоторых каталогов | command или args использует относительный путь к файлу | Используйте абсолютные пути для локальных скриптов. Исполняемые файлы в вашем PATH как npx или uvx работают как есть. |
| MCP сервер запускается без ожидаемых переменных окружения | Переменные находятся в settings.json env, которые не распространяются на дочерние процессы MCP | Установите env для каждого сервера внутри .mcp.json. |
Правило отрицания Bash(rm *) не блокирует /bin/rm или find -delete | Правила префикса совпадают с буквальной строкой команды, а не с базовым исполняемым файлом | Добавьте явные паттерны для каждого варианта или используйте PreToolUse hook или sandbox для жёсткой гарантии. |
Связанные ресурсы
Для полного справочника по каждой поверхности конфигурации см. специализированную страницу:- Справочник каталога
.claude: каждое расположение файла конфигурации и что его читает - Settings: порядок приоритета и полный список ключей
- Справочник Hooks: имена событий, payload и формат вывода
--debug hooks - MCP: конфигурация сервера, одобрение и вывод
/mcp - Troubleshooting:
claude doctor, проблемы платформы и проблемы установки