Настройка фреймворка: правила и хуки
CLAUDE.md, директория rules/, 14 типов хуков, settings.json — полная настройка фреймворка для продуктивной работы.
Простым языком
Представь что у тебя новый сотрудник. Ему нужно объяснить правила работы. Вот это и есть настройка фреймворка — ты один раз пишешь правила, а Claude им следует всегда.
Правила бывают двух видов. Текстовые — объясняют КАК работать. Хуки — делают что-то автоматически (например, форматируют код после каждого сохранения). Не страшно, здесь всё покажем.
Три слоя настройки
Claude Code настраивается на трёх уровнях — от общего к конкретному:
- Глобальный (
~/.claude/) — правила для всех проектов: стиль, безопасность, git-конвенции - Проектный (
.claude/в корне) — настройки конкретного проекта: хуки, права, специфика стека - Сессионный — настройки текущей сессии через промпт или slash-команды, не сохраняются
Проектный слой переопределяет глобальный. Сессионный — временный.
Хуки — автоматические скрипты
Хуки — это скрипты, которые запускаются автоматически на события Claude Code. Ты их не вызываешь — они работают сами. Настраиваются в .claude/settings.json:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"command": "prettier --write ${FILEPATH} 2>/dev/null || true"
},
{
"matcher": "Write|Edit",
"command": "bash .claude/hooks/security-scan.sh ${FILEPATH}"
}
],
"PreToolUse": [
{
"matcher": "Bash",
"command": "bash .claude/hooks/destructive-guard.sh"
}
],
"Stop": [
{
"command": "bash .claude/hooks/check-debug-code.sh"
}
]
}
}Четыре типа триггеров
- PreToolUse — до выполнения инструмента. Блокировка деструктивных команд, бэкап перед изменением
- PostToolUse — после выполнения. Автоформатирование, security-scan, логирование
- Stop — при завершении сессии. Проверка на
console.log/debugger, отчёты - Notification — при событиях: compaction (сжатие контекста). Восстановление состояния
Пример: хук защиты от деструктивных команд
#!/bin/bash
# .claude/hooks/destructive-guard.sh
# Блокирует rm -rf, DROP TABLE и подобное
COMMAND="$1"
PATTERNS=("rm -rf /" "rm -rf ~" "DROP TABLE" "truncate" "force-push")
for pattern in "${PATTERNS[@]}"; do
if echo "$COMMAND" | grep -qi "$pattern"; then
echo "BLOCKED: Деструктивная команда: $pattern"
exit 1
fi
done
exit 0Пример: хук проверки debug-кода
#!/bin/bash
# .claude/hooks/check-debug-code.sh
# Запускается при Stop — ищет console.log, debugger
FOUND=$(git diff --cached --name-only | xargs grep -l "console\.log\|debugger\|print(" 2>/dev/null)
if [ -n "$FOUND" ]; then
echo "WARN: Debug-код найден в:"
echo "$FOUND"
echo "Убери перед коммитом!"
fiПравила — директория rules/
Правила живут в rules/*.md. Claude читает их как часть системного промпта. Каждый файл — отдельная область:
- anti-mirage.md — проверка реальности: все файлы и функции, на которые ссылается AI, реально существуют
- coding-standards.md — стандарты: DRY, KISS, размеры файлов и функций, именование
- security.md — безопасность: запрещённые паттерны, валидация, параметризация SQL
- database.md — работа с БД: миграции, именование, индексы, мягкое удаление
- testing.md — пирамида тестов, решение когда что писать, антипаттерны
Начни с anti-mirage.md — это самый ценный файл. Спасёт часы отладки.
Плагины — MCP-серверы
MCP (Model Context Protocol) — стандарт для расширений Claude. Плагины дают доступ к документации, базам данных, внешним API. Подключаются в ~/.claude/settings.json:
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@context7/mcp-server"]
},
"mgrep": {
"command": "npx",
"args": ["-y", "@mgrep/mcp"]
}
}
}- context7 — актуальная документация библиотек. Вместо устаревших данных из обучения — живые доки
- mgrep — семантический поиск по кодовой базе. Быстрее
grep, понимает смысл запроса - typescript-lsp / pyright-lsp — типы и ошибки в реальном времени прямо в диалоге
context7 — обязательный плагин. Claude часто галлюцинирует устаревшие API. context7 даёт реальную документацию.
Минимальная конфигурация на старте
Для нового проекта достаточно этой структуры:
my-project/
├── CLAUDE.md # Проектный конфиг
├── .claude/
│ ├── settings.json # Хуки и права
│ └── hooks/
│ ├── security-scan.sh
│ └── check-debug-code.sh
└── rules/
├── anti-mirage.md # Обязательно
└── coding-standards.md # РекомендуетсяДобавляй инструменты по мере необходимости. 5 рабочих хуков лучше, чем 50 настроенных криво.
> Пока нет комментариев