Перейти к основному содержанию
Когда Claude игнорирует инструкцию или функция, которую вы настроили, не появляется, причина обычно в том, что файл не загрузился, загрузился из другого места, чем вы ожидали, или его переопределил другой файл. Это руководство показывает, как проверить, что Claude Code действительно загрузил, чтобы вы могли сузить, какой из этих вариантов применяется. Для проблем с установкой, аутентификацией и подключением см. Troubleshooting.

Посмотрите, что загрузилось в контекст

Команда /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 сервера.
Для расположений конфигурации и правил области см. MCP.

Проверьте 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.jsonsettings.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.mdSubagents не всегда наследуют память проектаПоместите критические правила в тело файла агента, которое становится системным prompt subagent. См. subagent configuration.
Логика очистки никогда не запускается в конце сессииНет настроенного SessionEnd hookSessionStart и 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, проблемы платформы и проблемы установки