Директория ~/.claude/ в Claude Code хранит скилы, агенты, слеш-команды и хуки — всё, что определяет поведение ИИ-ассистента в конкретном рабочем окружении. При активном использовании эти файлы накапливаются месяцами, и их потеря при смене аккаунта или переустановке системы становится ощутимой проблемой. Разработчик опубликовал на GitHub шаблон claude-config-template, который решает задачу версионирования конфигурации через стандартный инструмент — Git.
Ключевое техническое решение — симлинки вместо копирования файлов. После клонирования репозитория команда make install запускает скрипт install.sh, который проходит по категориям (skills, agents, commands, hooks) и создаёт отдельную символическую ссылку для каждого элемента. Например: ln -s "$REPO/skills/my-skill" "$CLAUDE_HOME/skills/my-skill". Поэлементная линковка принципиальна: если бы скрипт линковал директорию skills/ целиком, он бы затёр встроенные скилы, которые Anthropic добавляет автоматически. При поэлементном подходе системные и пользовательские файлы сосуществуют в одной папке без конфликтов.
| Команда | Действие |
|---|---|
| make install | Создаёт симлинки из репозитория в ~/.claude/ |
| make uninstall | Удаляет только созданные ссылки, не трогает чужие файлы |
| make doctor | Проверяет симлинки и наличие нужных инструментов |
| make new-skill name=X desc=Y | Генерирует каркас нового скила с готовым frontmatter |
Практическое следствие такой архитектуры — изменения в репозитории подхватываются мгновенно. Отредактированный SKILL.md становится виден Claude Code при следующем запуске без переустановки. Git-история при этом превращается в историю развития скилов: можно сделать git blame по агенту, откатиться на предыдущую версию или принять правки коллеги через pull request. Команда make uninstall удаляет ровно те ссылки, которые создал install.sh, проверяя, что они по-прежнему указывают на репозиторий, — чужие файлы в ~/.claude/ не затрагиваются.
Симлинки связывают файлы репозитория с ~/.claude/ поэлементно — встроенные скилы Anthropic не затираются.
Скилы и агенты в Claude Code — это Markdown-файлы с frontmatter (YAML-заголовком, описывающим метаданные). Claude Code молча игнорирует файл с опечаткой в имени поля или нарушенным YAML-синтаксисом, не выдавая никаких предупреждений. Для борьбы с этим в шаблон встроен набор линтеров: lint_skills.py проверяет frontmatter во всех SKILL.md и agents/*.md, lint_commands.py валидирует структуру команд, yamllint и jsonschema проверяют форматы данных, shellcheck анализирует shell-скрипты, а gitleaks ищет случайно закоммиченные секреты. Каждая проверка оформлена как отдельный скрипт в linting/check_scripts/ и запускается и в pre-push хуке локально, и в GitHub Actions — один источник правды для обоих окружений.
Дополнительные утилиты упрощают рутину: make new-skill name=my-skill desc="Что делает" генерирует каркас нового скила с корректным frontmatter, make doctor запускает scripts/doctor.sh, который проверяет наличие симлинков и нужных версий Python, ruff, shfmt и других инструментов. Перенос на новую машину сводится к трём командам — git clone, cd и make install — после чего pre-push хук подключается автоматически.
Автор честно обозначает ограничения: если переместить репозиторий в другую директорию, симлинки сломаются и потребуется повторный make install. Если поверх симлинка вручную положить реальный файл, скрипт его пропустит, не перезаписав. Подход оправдан при наличии нескольких скилов или агентов, работе на нескольких машинах и командном использовании. Для одного-двух простых скилов на одной машине достаточно обычного файла в ~/.claude/skills/.


