Claude Code Mastery
Интерактивный учебник с триангуляцией источников: каждый факт подтверждён минимум 3 независимыми источниками
CLAUDE.md
Персистентный контекст проекта
Что это и как работает? Подтверждено 4 источниками ↓
CLAUDE.md — это markdown-файл, который Claude Code автоматически читает при старте каждой сессии. Он содержит контекст проекта: архитектуру, правила кода, конвенции и workflow.
Без CLAUDE.md каждую сессию приходится объяснять Claude контекст проекта заново. С файлом — Claude сразу знает структуру, технологии, стиль кода и правила. Это называется «устранение cold start».
Файл работает как «конституция» проекта — набор правил, которые Claude применяет автоматически, без напоминаний.
4 уровня иерархии (по приоритету)
Enterprise policy → Project memory → User memory → Project local (deprecated)
Ранее указывалось 5 уровней, но официальная документация описывает 4 основных уровня. Project Rules (.claude/rules/*.md) — это часть Project Memory, а не отдельный уровень. Они загружаются с тем же приоритетом, что и .claude/CLAUDE.md.
1. Enterprise
/Library/Application Support/ClaudeCode/
Политики компании (наивысший приоритет)
2. Project
./CLAUDE.md + .claude/rules/*.md
Командные правила проекта
3. User
~/.claude/CLAUDE.md
Личные настройки для всех проектов
4. Local deprecated
./.claude/CLAUDE.local.md
Используйте импорты вместо этого
Структура и содержимое
Формат свободный — обычный Markdown. Рекомендуется включать следующие секции:
# Проект: MyApp ## Архитектура - Monorepo с pnpm workspaces - Frontend: React 19 + TypeScript + Tailwind - Backend: Node.js + Prisma + PostgreSQL - Тесты: Vitest + Playwright ## Правила кода - Используй functional components с hooks - Все компоненты в src/components/ - Тесты рядом: Component.test.tsx - НЕ используй any в TypeScript ## Git конвенции - Коммиты на английском: feat:, fix:, refactor: - PR требует 1 апрув + passing CI - Squash merge в main ## Команды - pnpm dev — запуск dev сервера - pnpm test — запуск тестов - pnpm build — production build
Антипаттерн: негативные инструкции без альтернатив
Не пиши «Никогда не используй --foo». Вместо этого: «Не используй --foo, предпочитай --bar». Claude лучше работает с позитивными указаниями.
Best Practice: инкрементальное наполнение
Начни с минимального CLAUDE.md. Добавляй правила по мере обнаружения проблем. Держи файл в git и требуй PR review от SME.
▸ Плюсы и минусы (подтверждено источниками)
▼- Zero effort — загружается автоматически при старте
- Team-shared — версионируется через git
- Иерархия — поддержка вложенных файлов и импортов через @
- /init команда — автогенерация на основе анализа кодовой базы
- Context drift — в длинных сессиях контекст может «размываться»
- Token competition — конкурирует с историей разговора за контекстное окно
Skills
Авто-обнаруживаемые возможности
Что это и как работает? Подтверждено 3 источниками ↓
Skills — это модульные возможности, которые Claude применяет автоматически, когда запрос пользователя соответствует описанию скилла. Это как «reusable playbooks» для повторяющихся задач.
Slash Commands требуют явного вызова через /команда. Skills срабатывают автоматически — Claude сам решает, когда применить скилл, основываясь на поле description.
Skills могут содержать дополнительные файлы: шаблоны, скрипты, документацию — всё в одной папке. Commands — это одиночные markdown-файлы.
Структура директории
Skill — это папка с обязательным файлом skill.md и опциональными ассетами:
.claude/skills/ └── database-expert/ ├── skill.md # Обязательно: главный файл ├── PATTERNS.md # Опционально: паттерны ├── EXAMPLES.md # Опционально: примеры └── templates/ └── migration.ts # Опционально: шаблоны
Пример skill.md с YAML frontmatter
--- name: database-expert description: | Use when working with database schemas, migrations, queries, or ORM patterns in this project. allowed-tools: Read, Grep, Glob, WebFetch, Bash --- # Database Expert Ты эксперт по базам данных для этого проекта. ## Перед любой работой с БД: 1. Прочитай prisma/schema.prisma 2. Проверь существующие миграции в prisma/migrations/ 3. Изучи паттерны в PATTERNS.md этого скилла ## Правила: - Всегда используй транзакции для множественных операций - Избегай N+1 запросов — используй include - Новые миграции: npx prisma migrate dev --name описание ## Чего НЕ делать: - Не изменяй существующие миграции - Не используй raw SQL без крайней необходимости
▸ Плюсы и минусы
▼- Авто-применение — не нужно вручную вызывать
- Bundled assets — шаблоны и скрипты в одной папке
- Портируемость — легко шарить между проектами
- Ограничение tools — можно указать allowed-tools
- Shared context — работает в основном контексте
- Непредсказуемость — Claude сам решает когда триггерить
Авто-активация может не работать (~50% успешность)
По отзывам пользователей, Skills часто не активируются автоматически, даже если description совпадает. Базовая успешность без workarounds — около 50% (как подбрасывание монетки).
Проверенный workaround: 80-84% успешность Триангулировано
После 200+ тестов Scott Spence нашёл два подхода, которые повышают успешность автоактивации до 80-84%:
"hooks": { "UserPromptSubmit": [ { "matcher": ".*", "hooks": [ { "type": "command", "command": "echo 'INSTRUCTION: Before responding, check ~/.claude/skills/ for relevant skills. If prompt matches skill keywords, use Skill(skill-name) tool.'" } ] } ] }
Hook инжектирует напоминание о скиллах в каждый промпт перед обработкой. Claude получает явную инструкцию проверить доступные скиллы, что повышает вероятность их использования.
Альтернатива: Используйте явный вызов через /skill-name (slash command) вместо автоактивации — это даёт 100% надёжность.
Subagents
Специализированные AI-ассистенты
Что это и как работает? Подтверждено 5 источниками ↓
Subagents — это отдельные экземпляры Claude со своим контекстным окном, запускаемые через Task tool. Они работают независимо и возвращают результаты в основной разговор.
Context isolation — главное преимущество. Когда основной агент исследует большую кодовую базу, его контекст «засоряется». Subagent делает эту работу в изоляции и возвращает только summary.
Parallel execution — можно запустить несколько subagents одновременно (например, security audit + performance review + test coverage) и получить результаты быстрее.
Встроенные subagents
| Агент | Назначение | Когда использовать |
|---|---|---|
| Explore | Исследование кодовой базы | Поиск файлов, понимание структуры, навигация |
| Plan | Архитектурное планирование | Проектирование фич, создание implementation plans |
| general-purpose | Универсальные задачи | Сложные multi-step операции без специализации |
Создание кастомного subagent
--- name: security-reviewer description: | Use for security audit of code changes. Finds vulnerabilities, injection vectors, auth issues. model: opus color: red tools: Read, Grep, Glob --- # Security Reviewer Ты senior security engineer. Твоя задача — находить уязвимости. ## Что проверять: - SQL injection (особенно raw queries) - XSS (innerHTML, dangerouslySetInnerHTML) - CSRF (отсутствие токенов) - Auth bypass (broken access control) - Secrets в коде (API keys, passwords) - Insecure dependencies ## Формат отчёта: - 🔴 CRITICAL — требует немедленного исправления - 🟠 HIGH — исправить до merge - 🟡 MEDIUM — запланировать исправление - 🟢 LOW — рекомендация
Background execution
Нажми Ctrl+B чтобы отправить subagent в фоновый режим. Используй /agents для списка агентов, /bashes для фоновых shell-команд. Результаты появятся автоматически.
Slash Commands
Явно вызываемые workflow
Что это и как работает? Подтверждено 3 источниками ↓
Slash Commands — это сохранённые промпты, которые вызываются явно через /имя-команды. В отличие от Skills, они требуют ручного вызова и дают полный контроль над тем, когда выполняется workflow.
$ARGUMENTS — захватывает все аргументы как одну строку. При вызове /fix-issue 123 high-priority, $ARGUMENTS станет "123 high-priority".
$1, $2, $3 — не работают!
Документация упоминает позиционные параметры $1, $2, $3, но по факту они не реализованы и остаются литеральными строками. Используй только $ARGUMENTS. GitHub Issue #8758
Расположение файлов
Глобальные
~/.claude/commands/
Доступны во всех проектах
Проектные
.claude/commands/
Только для этого проекта
Примеры команд
--- description: Review PR changes before merge allowed-tools: Read, Grep, Glob, Bash argument-hint: [branch-name] --- # PR Review для ветки: $ARGUMENTS Выполни полный review: ## 1. Получи изменения git diff main...$ARGUMENTS ## 2. Проверь - Есть ли тесты для новой функциональности? - Соответствует ли код нашим конвенциям (см. CLAUDE.md)? - Нет ли security issues? ## 3. Выведи отчёт Структурируй по категориям: Critical, Warning, Suggestion
Вызов: /review-pr feature/auth
Hooks
Event-driven автоматизация
Что это и как работает? Подтверждено 4 источниками ↓
Hooks — это shell-скрипты, которые гарантированно выполняются при определённых событиях. В отличие от LLM-based логики, hooks детерминированы.
PreToolUse — срабатывает перед выполнением tool. Можно заблокировать операцию (exit code 2), разрешить, или запросить у пользователя. Получает tool_name и tool_input.
PostToolUse — срабатывает после успешного выполнения. Используется для форматирования, логирования, уведомлений. Получает также tool_response.
Все доступные события
| Hook | Когда срабатывает | Типичное использование |
|---|---|---|
| PreToolUse | До выполнения tool | Валидация, блокировка, модификация |
| PostToolUse | После успешного tool | Форматирование, логирование |
| UserPromptSubmit | При отправке промпта | Инъекция контекста, валидация |
| SessionStart | Начало сессии | Инициализация, загрузка данных |
| SessionEnd | Конец сессии | Cleanup, отчёты, уведомления |
| SubagentStop | Завершение subagent | Пост-обработка результатов |
| Notification | При уведомлении | Кастомные нотификации |
| PreCompact | До сжатия контекста | Сохранение важной информации |
Пример конфигурации
"hooks": { "PostToolUse": [ { "matcher": "Edit|Write", "hooks": [ { "type": "command", "command": "npx prettier --write \"$FILE_PATH\"" } ] } ], "PreToolUse": [ { "matcher": "Edit|Write", "hooks": [ { "type": "command", "command": "node ./scripts/check-protected-files.js" } ] } ] }
Избегай «block-at-write» hooks
Блокировка в процессе написания сбивает агента. Лучше валидировать на финальном этапе: при commit или push.
Exit code 2: баг с Write/Edit
Exit code 2 успешно блокирует Bash операции, но не блокирует Write/Edit — файлы всё равно создаются/изменяются. GitHub Issue #13744
Сравнение механизмов
Когда что использовать
| Механизм | Вызов | Контекст | Лучше всего для |
|---|---|---|---|
| CLAUDE.md | Автоматически | Основной | Правила проекта, конвенции |
| Skills | Авто по описанию | Основной | Повторяющиеся задачи с ассетами |
| Subagents | Авто/ручной | Изолированный | Тяжёлый research, параллельные задачи |
| Commands | Ручной (/cmd) | Основной | On-demand workflow с контролем |
| Hooks | По событию | — | Гарантированная автоматизация |
Правило выбора
CLAUDE.md — если нужно всегда. Skill — если нужно автоматически при релевантных задачах. Subagent — если нужен чистый контекст. Command — если нужен явный контроль. Hook — если нужна гарантия выполнения.
Методология триангуляции
Как мы проверяли факты в этом учебнике
Что такое триангуляция? Методология
Триангуляция — это метод верификации информации через минимум 3 независимых источника. Каждый факт в этом учебнике был проверен по этой методологии, чтобы исключить ошибки, устаревшую информацию и «эхо-эффект» (когда источники цитируют друг друга).
AI-модели могут галлюцинировать — генерировать правдоподобную, но неверную информацию. Документация устаревает. Блоги копируют друг друга без проверки. Триангуляция защищает от всех этих проблем.
Процесс верификации
Классификация
Определяем тип утверждения: факт, мнение, прогноз или смешанный
Параллельный поиск
Ищем через Exa AI, WebSearch, официальную документацию и GitHub Issues
Оценка источников
Взвешиваем по типу, независимости, дате публикации и возможному bias
Расчёт определённости
Формула: Качество (40%) + Независимость (30%) + Консенсус (20%) + Актуальность (10%)
Иерархия источников
| Вес | Типы источников | Примеры |
|---|---|---|
| Высокий | Официальная документация, первичные данные | code.claude.com, GitHub Issues, Anthropic Blog |
| Средний | Tech-издания, эксперты, образовательные ресурсы | Dev.to, Medium (проверенные авторы), курсы |
| Низкий | Блоги, форумы, соцсети | Reddit, Twitter, анонимные посты |
Результаты триангуляции этого учебника 87% определённость
| Утверждение | Вердикт | Источников |
|---|---|---|
| CLAUDE.md загружается автоматически | ✓ Подтверждено | 3 |
| 4 уровня иерархии memory | ✓ Подтверждено (исправлено с 5) | 2 |
| Skills активируются автоматически | ⚠ Частично (~50% без workaround) | 4 |
| Subagents в изолированном контексте | ✓ Подтверждено | 3 |
| $1, $2, $3 не работают | ✓ Баг подтверждён | GitHub #8758 |
| Exit code 2 не блокирует Write/Edit | ✓ Баг подтверждён | GitHub #13744 |
Качество источников (36/40): Использованы официальная документация и GitHub Issues
Независимость (25/30): Источники не цитируют друг друга
Консенсус (18/20): Факты согласуются между источниками
Актуальность (8/10): Данные 2025-2026 года
Предупреждающие сигналы
При триангуляции мы отслеживаем потенциальные проблемы:
BIAS
Все источники однобокие (например, только официальные)
ЭХО
Источники цитируют друг друга (ложная триангуляция)
УСТАРЕВШЕЕ
Информация могла измениться с момента публикации
НЕДОСТАТОЧНО
Менее 3 источников для полноценной триангуляции
Скачай скилл /triangulate Open Source
Используй триангуляцию в своих проектах! Скилл проверяет любые утверждения через 3+ независимых источника.
# Клонируй в ~/.claude/skills/ git clone https://github.com/vasilievyakov/triangulate-skill ~/.claude/skills/triangulate # Использование /triangulate "Claude Code поддерживает 5 уровней memory"
Проверь себя
10 вопросов по материалу