Пользовательский хук PostToolUse для загрузки CLAUDE.md по требованию вне дерева проекта

Поведение загрузки CLAUDE.md в Claude Code
В источнике подробно описано, как Claude Code обрабатывает файлы CLAUDE.md в различных условиях:
- Иерархическая загрузка: При запуске сессии в подкаталоге загружаются как локальный файл CLAUDE.md, так и файлы CLAUDE.md из родительских каталогов. Пример: сессия в
root/a/загружает иroot/a/CLAUDE.md, иroot/CLAUDE.md. - Загрузка по требованию для дочерних каталогов: Дочерние каталоги корневого каталога текущей сессии загружают свои файлы CLAUDE.md, когда Claude обращается к файлам в этих каталогах. Пример: сессия в
root/загружаетroot/CLAUDE.mdизначально, затем загружаетroot/a/CLAUDE.md, когда Claude читает файл вroot/a/. - Доступ к дополнительным каталогам через флаги: Использование
--add-dirсCLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1позволяет получить доступ к файлам CLAUDE.md в каталогах за пределами дерева проекта, но они загружаются при запуске сессии, а не по требованию.
Проблема: файлы CLAUDE.md из внешних каталогов не загружаются по требованию
Автор отмечает, что при работе в одном проекте и указании Claude читать файлы из каталогов за пределами дерева каталогов сессии, любые файлы CLAUDE.md в этих внешних каталогах не загружаются автоматически. Это создает проблемы для постепенного раскрытия контекста и требует ручного вмешательства каждый раз.
Решение: пользовательский хук PostToolUse
Решение включает создание хука PostToolUse, который:
- Проверяет, работает ли Claude за пределами дерева проекта при каждом вызове инструмента
- Поднимается вверх от этого каталога в поисках файлов CLAUDE.md
- Если найден, завершается с кодом 2, чтобы передать инструкции Claude, указывая ему прочитать их
- Отслеживает, какие файлы уже были представлены в сеансе, во временном файле с областью действия сессии, чтобы избежать повторных инструкций
Хук SessionStop очищает временный файл, используемый для отслеживания. Автор предоставляет скрипт под названием check_claude_md.py (исходный код указан в оригинальном посте), который реализует эту функциональность хука PostToolUse.
Практическая реализация
Данный подход решает конкретное ограничение, когда файлы CLAUDE.md из внешних каталогов загружаются только при запуске сессии при использовании флага --add-dir с CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1. Перехватывая вызовы инструментов и проверяя операции за пределами дерева проекта, хук обеспечивает загрузку по требованию, аналогично тому, как работают дочерние каталоги внутри дерева проекта.
Такой пользовательский хук полезен для разработчиков, которые часто работают с несколькими проектами или нуждаются в ссылках на общие файлы контекста из внешних каталогов без необходимости каждый раз вручную указывать Claude читать файлы CLAUDE.md.
📖 Прочитать полный источник: r/ClaudeAI
👀 Смотрите также

Основные пользовательские инструкции для Claude, чтобы предотвратить типичные раздражающие моменты
Пользователь Reddit делится тремя конкретными пользовательскими инструкциями для решения распространённых проблем в работе с Claude: требование предупреждений перед деструктивными командами, предотвращение изменения плана в середине ответа и использование блоков кода исключительно для функционального кода.

10 практических советов по использованию Claude Code от пользователя Reddit
Пользователь Reddit делится конкретными техниками для Claude Code, включая использование /effort high с 'ultrathink' для расширенного мышления, создание изолированных ветвей диалога с помощью /fork и настройку пользовательских хуков в .claude/settings.json.

在Claude Code之上构建处理上下文与协调的流程层
Команда рассказывает, как они построили процессный слой поверх Claude Code, который объявляет входы/выходы для каждого этапа разработки, уменьшая потерю контекста при передаче задач и обеспечивая совокупный рост продуктивности без опоры на индивидуальную дисциплину.

Задачи Cron с резервным ИИ могут привести к неожиданным расходам на API при зависании инструментов.
Пользователь сообщил, что cron-задача в OpenClaw, проверяющая почтовый ящик каждые 10 минут с помощью himalaya, сожгла около $60 кредитов API, когда соединение IMAP начало зависать, запуская агентов Claude при каждом таймауте, несмотря на инструкции задействовать ИИ только для входящих писем.