Пользовательский хук 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
👀 Смотрите также

Как сократить расходы на OpenClaw Agent на 80% с помощью смены модели
Пользователь отслеживал использование токенов в течение 14 дней и обнаружил, что 67% расходов приходилось на задачи, где дешевые модели Flash соответствовали качеству Opus. Переход на Flash по умолчанию и использование /model во время сессии сократили расходы с ~$170 до ~$35 в месяц.

Запуск OpenClaw на Raspberry Pi Model B с использованием бесплатных API
OpenClaw стабильно работает на Raspberry Pi Model B с бесплатными API, включая Google Gemma 4 31B IT (~20 RPM, безлимитный контекст) и Gemini Flash, при этом Firefox headless превосходит Chromium для автоматизации браузера.

Практические инсайты по использованию OpenClaw из личного опыта
Пользователь Reddit делится семью конкретными уроками, полученными при использовании OpenClaw, охватывающими проблемы настройки, развертывание виртуальных машин, интеграцию Skills vs. MCP, организацию контекста, безопасность учетных данных, использование нескольких агентов и стратегии выбора моделей.

Дизайн Клода: 7 советов, как не выходить за рамки своих возможностей
Сначала зафиксируйте бриф в обычном чате Claude, настройте дизайн-систему до первого промпта, прикрепляйте референсы в виде скриншотов, ссылайтесь на поддиректории, а не на целые репозитории, используйте слайдеры для небольших правок, вставляйте инлайн-комментарии в чат как резервную копию, выбирайте формат экспорта под конечную платформу.