$HOME в git: единый конфиг для Claude Code
Как перестать копировать настройки между проектами и превратить домашнюю директорию в единую точку управления AI.
Проблема
Много проектов. В каждом свой CLAUDE.md, свои правила. Начинаешь что-то улучшать в одном месте - хочется перенести в другое. Переносишь. Потом улучшаешь там. Переносишь обратно.
В какой-то момент образовалась каша из разных версий одних и тех же правил, разбросанных по десятку проектов.
Копипаста настроек бесила, но руки не доходили. На новогодних праздниках решил разобраться.
Решение
Всё перенёс в домашнюю директорию `~/.claude/`. Один конфиг на все проекты.
Да, теперь есть привязка к структуре папок в домашней директории. Но эта структура не менялась годами:
- `~/my/` для проектов - `~/education/` для обучения - `~/family/` для семейного
Риск минимальный.
Структура
Что живёт в `~/.claude/`:
Основные файлы
- `CLAUDE.md` - общие принципы (подтверждение задач, форматирование) - `HOME_MAP.md` - карта домашней директории для навигации
Директории
- `rules/` - правила (загружаются автоматически) - `rules/projects/` - проектно-специфичные правила - `commands/` - слэш-команды - `skills/` - переиспользуемые навыки - `agents/` - кастомные агенты - `hooks/` - хуки сессий
Как работает навигация
Ключевой файл - `HOME_MAP.md`. Это карта всей домашней директории с правилами определения контекста.
Claude видит ключевые слова в запросе и понимает, в какой директории работать:
- `aitrader`, `archlint`, `блог` -> `~/my/` - `курс`, `книга`, `обучение` -> `~/education/` - `память`, `запомни`, `миссия` -> `~/my/org-roam/`
Если контекст неоднозначный - спрашивает.
Проектные правила
Если нужны специфичные правила для проекта - добавляются в `rules/projects/`.
Например, `aitrader.md` содержит:
- Как запускать collector (без proxy для Tinkoff API) - Команды тестирования - Особенности проекта
Эти правила загружаются глобально, но применяются только когда работа идёт в контексте aitrader.
Git
Всё под git. Один репозиторий, одна история изменений.
`.gitignore` получился большой - там практически всё что не нужно версионировать: креды, кеши, Downloads, Documents, Library, .ssh.
Зато всё остальное - конфиги, `.claude/`, dotfiles - под контролем.
В планах добавить приватные репозитории как сабмодули, чтобы одним `git clone` восстанавливать всю домашнюю директорию.
Больше никакого копирования между проектами. Улучшил правило - оно сразу работает везде.
Итог
Было: десяток проектов с разрозненными CLAUDE.md, постоянное копирование настроек, разные версии одного и того же.
Стало: один `~/.claude/`, структурированные правила, git для версионирования. Улучшение в одном месте - работает везде.
Минус: жёсткая привязка к структуре домашней директории. Для меня не проблема - структура стабильна.
Telegram: https://t.me/MikeShogin