Claude Code 2026: Skills, Hooks, Subagents, MCP, worktrees — продвинутое использование в проде
Автор: Silvana · Дата: 10.08.2026 · Verified: 01.09.2026 · Reading time: 28 минут · Prerequisite: базовая установка и работа с Claude Code
Claude Code в 2026 — платформа с модульной архитектурой: Skills (переиспользуемые процессы через slash-команды), Hooks (авто-запуск на события — PreToolUse, PostToolUse, SessionStart), Subagents (делегирование задач в изолированный контекст), MCP-серверы, worktrees и background agents для параллельных сессий. Ниже — как каждый модуль встраивается в реальный prod-workflow разработчика, зачем нужны worktrees для больших миграций и как собрать CI-интеграцию поверх Claude Code CLI.
- Claude Code в 2026 году — платформа с модульной архитектурой: Skills, Hooks, Subagents, MCP-серверы, worktrees, background agents, CI-интеграции.
- Skills — переиспользуемые процессы. Пакуешь один раз, вызываешь через slash-команду. Anthropic и сообщество публикуют готовые skills для типовых задач.
- Hooks — команды, которые запускаются автоматически в определённые моменты (PreToolUse, PostToolUse, UserPromptSubmit, Stop, SessionStart и др.). Используются для автоформатирования, линтинга, безопасности, нотификаций.
- Subagents — специализированные помощники в рамках одной сессии. Ведущий агент делегирует задачу через инструмент Task, subagent работает в своём контексте и возвращает результат.
- Worktrees — изолированные git-рабочие директории. Позволяют работать над несколькими фичами одновременно без переключения веток.
- MCP (Model Context Protocol) — открытый стандарт для подключения агента к внешним данным и инструментам. Есть готовые серверы (GitHub, Slack, Postgres, Playwright), можно писать свои.
- Background agents / cross-session messaging — несколько полных сессий параллельно с одного экрана. Для больших миграций, где каждый шаг занимает около 20 минут.
- CI/CD — Claude Code запускается в GitHub Actions, GitLab CI, cron-задачах. Утренний PR-ревью, ночной анализ ошибок, еженедельный audit зависимостей — типичные сценарии. Подробнее — AI для DevOps и CI/CD.
- Работает из России, если есть иностранный аккаунт Claude или ключ Anthropic API — практические способы оплаты AI-подписок из РФ.
Skills: переиспользуемые процессы
Заголовок раздела «Skills: переиспользуемые процессы»Skill в Claude Code — папка с файлом SKILL.md (и опциональными вспомогательными файлами), которая описывает процесс или знание. Ты вызываешь её через slash-команду (/review-pr, /deploy-staging, /generate-tests), либо Claude сам подхватывает по описанию.
Официальная документация: code.claude.com/docs/en/skills (проверено 10.08.2026).
Структура skill’а:
.claude/skills/review-pr/├── SKILL.md # обязательный├── scripts/│ ├── check-diff.sh│ └── post-comment.sh├── templates/│ └── review-checklist.md└── examples/ └── example-review.mdМанифест SKILL.md — markdown-файл с YAML-фронтматтером и содержимым. Только description рекомендован, остальные поля опциональны:
---description: Полное ревью PR по проектному чек-листу с публикацией комментариев в GitHuballowed-tools: Bash Read WebFetchdisable-model-invocation: true---
## Steps1. Прочитай `templates/review-checklist.md`.2. Получи PR через `gh pr view $ARGUMENTS --json`.3. Прочитай diff через `gh pr diff $ARGUMENTS`.4. Пройди по каждому пункту чек-листа. Отметь: pass / fail / n/a.5. Опубликуй сводный комментарий через `gh pr comment`.6. Если есть блокеры — request changes через `gh pr review --request-changes`.Ключевые поля frontmatter (полный список — code.claude.com/docs/en/skills):
description(рекомендуется) — что делает skill, когда использовать. Claude выбирает skill по описанию.allowed-tools(опция) — список инструментов, которые skill может вызывать без подтверждения (space- или comma-separated).disable-model-invocation: true— только пользователь может запустить skill (через/name), Claude не запускает автоматически.context: fork— запуск в отдельном subagent-контексте.argument-hint— подсказка для автодополнения ([pr-number]).
Skills бывают:
- Project skills — в
.claude/skills/внутри репозитория. Шарятся с командой через git. - Personal skills — в
~/.claude/skills/. Личные, доступны во всех проектах. - Plugin skills — приходят из плагинов, доступны в namespace
<plugin>:<skill>. - Bundled skills — встроенные (
/doctor,/code-review,/verify,/debugи др.).
Вызов skill’а. Из CLI: /review-pr 123 (аргумент попадает в $ARGUMENTS). Из промпта: «Используй skill review-pr для PR #123».
Создание собственного skill’а. Минимально: создай папку .claude/skills/my-skill/, положи SKILL.md с полем description во фронтматтере и инструкциями в теле. Вызов через /my-skill.
Skill best practices:
- Одна цель на skill. «Ревью PR» — да. «Ревью PR и деплой если ок» — нет, разбивай.
- Явные критерии готовности. «Skill завершён, когда комментарий опубликован и статус review установлен».
- Ограничения через
allowed_tools. Не давай skill’у больше прав, чем ему нужно. - Идемпотентность. Skill можно запустить повторно без побочек. «Deploy staging» дважды — нет второго деплоя, есть проверка «уже задеплоено, пропускаем».
- Логи. Скрипты внутри skill’а логируют действия. При отладке видно, где остановился.
Hooks: автоматизация жизненного цикла агента
Заголовок раздела «Hooks: автоматизация жизненного цикла агента»Hooks — команды (shell/HTTP/MCP-tool/subagent), которые Claude Code запускает автоматически в определённые моменты. Официальная документация: code.claude.com/docs/en/hooks (проверено 10.08.2026).
Основные события (полный список — в документации):
- PreToolUse — перед вызовом инструмента; может блокировать (exit code 2).
- PostToolUse — после успешного вызова инструмента.
- UserPromptSubmit — до обработки промпта Claude.
- Stop — когда Claude заканчивает ответ.
- SessionStart / SessionEnd — при старте и завершении сессии.
- PreCompact / PostCompact — вокруг автокомпакции контекста.
- PermissionRequest / PermissionDenied — вокруг запросов permissions.
- SubagentStart / SubagentStop, TaskCreated / TaskCompleted — жизненный цикл subagents.
Хуки настраиваются в .claude/settings.json (проектные), .claude/settings.local.json (личные, не в git), ~/.claude/settings.json (глобальные), или в frontmatter skills/agents.
Пример 1: автоформатирование после Edit.
Hook получает JSON на stdin с полями tool_name, tool_input. Для доступа к пути редактируемого файла используется парсинг JSON или переменная ${CLAUDE_PROJECT_DIR} для относительных путей:
{ "hooks": { "PostToolUse": [ { "matcher": "Edit", "hooks": [ { "type": "command", "command": "jq -r '.tool_input.file_path' | xargs ruff format" } ] } ] }}Пример 2: запрет опасных команд.
{ "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "jq -r '.tool_input.command' | grep -qE '^rm -rf|^sudo|DROP TABLE' && exit 2 || exit 0" } ] } ] }}Exit code 2 — blocking error, действие блокируется, stderr показывается Claude. Exit code 0 — success. Другие exit codes — non-blocking error.
Другие типичные примеры:
- Slack-нотификация при Stop — hook на
Stopсcurl -X POST $SLACK_WEBHOOK -d ... - Линт перед git commit — hook на
PreToolUsematcherBash, проверяет входные аргументы наgit commit, запускаетruff check && mypy - Auto-снапшот при SessionStart — hook на
SessionStart, делаетgit stash push -u
Формат hooks-конфига: массив объектов с matcher (опционально) и hooks — массив handler’ов. Handler имеет type (command / http / mcp_tool / prompt / agent) и специфичные для типа поля. Полная спецификация: code.claude.com/docs/en/hooks.
Best practices для hooks:
- Быстрые. Hooks не должны занимать больше 2-3 секунд, иначе агент чувствуется медленным.
- Fail-soft по умолчанию. Exit code 2 блокирует действие — используй осознанно.
- Логирование. Hooks пишут в свой файл. При отладке видно, что и когда запускалось.
- Идемпотентность. Hook на один и тот же файл дважды не должен ломать состояние.
- Работать через stdin JSON. Инструмент получает контекст (session_id, tool_name, tool_input и др.) на stdin, не через отдельные env-переменные для каждого поля.
Subagents: изолированный контекст под задачу
Заголовок раздела «Subagents: изолированный контекст под задачу»Subagent — специализированный помощник в рамках одной сессии Claude Code. Ведущий агент делегирует ему задачу через инструмент Task, subagent работает в собственном контексте с отдельным system prompt и ограниченными инструментами, возвращает результат-сводку. Основная выгода — экономия контекста ведущей сессии, а не параллелизм.
Официальная документация: code.claude.com/docs/en/sub-agents (проверено 10.08.2026).
Когда использовать subagents:
- Изоляция контекста. Поиск в 500 файлах, чтение логов, ресёрч документации — вся эта «шелуха» остаётся в контексте subagent’а, ведущему возвращается только summary.
- Enforcement ограничений. Subagent-типу можно ограничить инструменты (например, только Read+Grep, без Bash).
- Специализация. Отдельный system prompt для code-reviewer, для test-writer, для migration-agent.
- Контроль стоимости. Часть задач можно роутить на более быстрые/дешёвые модели (Haiku).
Когда не использовать:
- Задачи с общим состоянием. Миграция БД, где каждый шаг зависит от предыдущего.
- Простые задачи. Overhead запуска subagent’а превышает выгоду для задач меньше 100 строк кода.
- Задачи, требующие пошагового человеческого подтверждения — subagent работает автономно до возврата.
Для параллельного запуска нескольких полных сессий используются background agents / agent teams / cross-session messaging (см. соответствующие разделы документации Claude Code) — это отдельная механика.
Ограничения subagents:
- Не разделяют контекст между собой. Subagent видит только то, что ему передал ведущий.
- Каждый subagent — отдельный контекст-окно. Полная оплата токенов за system prompt и инструменты. Для мелких задач overhead может съесть выгоду.
Best practices для subagents:
- Чёткие границы задач. Каждый subagent получает изолированную задачу с явным acceptance criteria.
- Минимальный общий контекст. Передавай только то, что нужно каждому subagent’у. Не грузи всех полным CLAUDE.md проекта.
- Явный формат вывода. «Верни JSON с полями X, Y, Z» — легче агрегировать, чем свободный текст.
- Fail-fast. Если subagent не может выполнить задачу за N минут, лучше вернуть частичный результат, чем блокировать всё.
Worktrees: параллельная работа над несколькими фичами
Заголовок раздела «Worktrees: параллельная работа над несколькими фичами»Git worktree — стандартная git-фича, которая позволяет иметь несколько рабочих директорий из одного репозитория, каждую на своей ветке. Официальная документация: git-scm.com/docs/git-worktree.
Claude Code работает с worktrees так же, как с обычными репозиториями — открываешь новую сессию в директории worktree.
Зачем worktrees в Claude Code:
- Работать над несколькими фичами одновременно без потери контекста.
- Запускать background agents в отдельных worktrees, не мешая основному потоку.
- Быстро переключаться между «активной работой» и «PR-ревью» без stash.
- Изолировать эксперименты — если что-то сломалось, просто удали worktree.
Создание worktree:
# Из корня основного репозиторияgit worktree add ../myproject-feature-x feature/xcd ../myproject-feature-xclaudeClaude Code откроется в новой директории с той же историей репозитория, но на ветке feature/x. Изменения в этом worktree не влияют на основной.
Управление worktrees:
# Список всех worktreesgit worktree list
# Удалить worktree (после мержа PR или закрытия ветки)git worktree remove ../myproject-feature-x
# Автоочистка stale worktreesgit worktree pruneWorkflow с worktrees:
- Основная сессия Claude Code в корне репозитория — здесь ты делаешь ревью PR, отвечаешь на срочное.
- Worktree
feature-auth— Claude Code работает над реавторизацией. - Worktree
bugfix-payment— другой Claude Code исследует баг с оплатой. - Worktree
refactor-db— background agent мигрирует БД по чек-листу.
Ты переключаешься между terminals, каждый со своим Claude Code и своим состоянием.
Best practices для worktrees:
- Именование по ветке.
../project-feature-x, не../project-copy-1. - Один worktree на PR. Не запихивай туда несколько фич.
- Регулярная очистка. Слепые worktrees занимают место. Раз в неделю —
git worktree prune. - CLAUDE.md общий. Если файл в git — он в каждом worktree. Если локальный
.claude/settings.local.json— свой для каждого.
MCP: подключение внешних инструментов
Заголовок раздела «MCP: подключение внешних инструментов»MCP (Model Context Protocol) — открытый стандарт от Anthropic для подключения AI-агентов к внешним данным и инструментам. Полная спецификация: modelcontextprotocol.io.
Идея: MCP-сервер выставляет набор инструментов (tools), ресурсов (resources) и промптов (prompts) через стандартизированный интерфейс. AI-агент подключается и получает доступ ко всему, что сервер предоставляет.
Официальная документация Anthropic: code.claude.com/docs/en/mcp (проверено 10.08.2026).
Готовые MCP-серверы (официальные и от сообщества):
- filesystem — работа с файлами вне текущего проекта.
- github — pull requests, issues, code review через GitHub API.
- gitlab — то же для GitLab.
- slack — читать/писать в каналы, реагировать на события.
- postgres — запросы к БД, схема, миграции.
- google-drive — читать документы, презентации, таблицы.
- playwright — управлять браузером для e2e-тестов и скрейпинга.
- puppeteer — альтернатива Playwright.
- memory — векторное хранилище для долговременной памяти агента.
- sequential-thinking — структурированное пошаговое рассуждение.
Подключение MCP-сервера в Claude Code:
Через CLI (синтаксис сверять на code.claude.com/docs/en/mcp, флаги могут отличаться в новых версиях):
claude mcp add github npx -y @modelcontextprotocol/server-githubИли напрямую в .mcp.json в корне проекта:
{ "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": {"GITHUB_TOKEN": "ghp_xxx"} }, "postgres": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-postgres"], "env": {"POSTGRES_CONNECTION_STRING": "postgresql://..."} } }}После рестарта Claude Code MCP-серверы автоматически подключаются и их tools доступны агенту.
Использование в промптах:
Используй mcp__github__create_pull_request чтобы открыть PR с моими изменениями.Заголовок: "feat: add password reset endpoint"Base: main, head: feature/password-resetНаписание собственного MCP-сервера. Anthropic даёт SDK для Python, TypeScript, Go, Rust. Минимальный сервер — 30-50 строк кода. Официальный quickstart: modelcontextprotocol.io/quickstart/server. Для Python: from mcp.server import Server, декоратор @app.tool() на функциях, запуск через stdio_server. Подключение — блок в .mcp.json с command: "python" и путём к файлу. После рестарта Claude Code инструмент mcp__<server-name>__<tool-name> доступен в промптах.
Best practices для MCP:
- Permissions строго. MCP-сервер получает доступ ко всему, что ты дал ему в env. Не давай токен с правами
admin, если достаточноread. - Один MCP-сервер — одна область. github, slack, db — отдельные серверы, не «всё в одном».
- Логирование внутри сервера. Пиши логи в файл, чтобы можно было отследить, что агент вызывал.
- Версионирование. Пиши в манифесте сервера версию, обновляй при breaking changes.
- Дебаг. MCP-серверы можно тестировать локально через MCP Inspector (npm-пакет
@modelcontextprotocol/inspector).
Background agents и параллельные сессии
Заголовок раздела «Background agents и параллельные сессии»Для параллельной работы Claude Code даёт несколько механизмов: background agents (agent view — запуск нескольких независимых сессий, за которыми можно наблюдать из одной), cross-session messaging (сессии обмениваются сообщениями), agent teams (координированная команда сессий, которую Claude спавнит и супервизирует), а также routines и cowork sessions в облаке. Точный набор команд, флагов и UI меняется от версии к версии — сверяй по code.claude.com/docs/en/agent-view и разделам «Background», «Cross-session messaging», «Agent teams», «Routines» (проверено 10.08.2026).
Когда использовать:
- Большие миграции, где каждый шаг занимает около 20 минут.
- Регулярные task’и, которые не требуют немедленного ответа (обновление зависимостей, аудит безопасности).
- Работа над несколькими независимыми фичами одновременно.
- CI-like задачи, которые нужно запустить локально без загрязнения основной сессии.
Best practices:
- Чёткая цель. Background agent не может уточнить у тебя — если задача ambiguous, он ошибётся.
- Явные критерии готовности. «Готово, когда 12 PR открыты и CI зелёный на всех».
- Не давать доступ к prod. Background agent работает без supervision. Prod-действия — только через explicit approval.
- Логирование в файл. Транскрипт агента может понадобиться для отладки.
Recurring tasks: routines, desktop scheduled tasks, /loop
Заголовок раздела «Recurring tasks: routines, desktop scheduled tasks, /loop»Три способа запускать Claude Code по расписанию. Документация: code.claude.com/docs/en/routines, code.claude.com/docs/en/desktop-scheduled-tasks (проверено 10.08.2026). Синтаксис CLI-команд может отличаться от версии к версии — сверяй актуальный claude --help.
Routines — крутятся в облаке Anthropic. Работают, даже когда твой компьютер выключен. Могут триггериться событиями. Создаются через claude.ai/routines или через claude routines CLI.
Пример конфига (структура и поля сверять на code.claude.com/docs/en/routines):
name: morning-pr-reviewschedule: "0 9 * * 1-5"prompt: | Review all PRs opened since yesterday. Post summary to Slack #dev-updates channel.Desktop scheduled tasks — крутятся на твоей машине через десктоп-приложение Claude. Прямой доступ к локальным файлам и инструментам. Настраиваются в UI приложения.
/loop — bundled skill, повторяет промпт внутри одной CLI-сессии. Полезно для короткого опроса статуса, регулярной проверки внешнего API, ожидания события.
# В интерактивной сессии Claude Code/loop 5m "check deploy status via kubectl, notify if any pod is CrashLoopBackOff"Промпт выполняется каждые 5 минут, пока не отменишь.
Best practices для recurring tasks:
- Routines для важного и надёжного. Утренний PR-ревью, еженедельный audit — routines. Тестовые эксперименты — /loop.
- Идемпотентность. Задача, которая крутится ежедневно, должна корректно работать при повторном запуске в тот же день (например, из-за retry).
- Ограничение permissions. Routine работает без supervision — permissions должны быть минимальные и явные.
- Мониторинг. Routines логируют свои запуски. Раз в неделю — просматривай логи, чтобы поймать деградацию.
CI/CD-интеграция: GitHub Actions, GitLab CI
Заголовок раздела «CI/CD-интеграция: GitHub Actions, GitLab CI»Claude Code запускается в CI как обычный CLI-инструмент. Официальная интеграция с GitHub Actions документирована в code.claude.com/docs/en/github-actions (проверено 10.08.2026).
Пример GitHub Action для автоматического ревью PR:
name: claude-pr-reviewon: pull_request: types: [opened, synchronize]
jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: anthropics/claude-code-action@v1 with: anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }} prompt: | Review this PR. Check for: - Security issues (SQL injection, secrets, path traversal) - Logic errors and edge cases - Style consistency with our conventions in CLAUDE.md
Post findings as review comments on specific lines. If critical issues — request changes. If none — approve.Для GitLab CI аналогично: устанавливаешь @anthropic-ai/claude-code через npm, вызываешь claude -p "..." из скрипта job, передаёшь ANTHROPIC_API_KEY через переменные CI. Полная спецификация синтаксиса — docs.gitlab.com/ci.
Типичные CI-сценарии:
- Автоматический PR-ревью. Каждый PR получает первичный AI-ревью, разработчики уже проверяют то, что AI пропустил.
- Автогенерация changelog. При открытии release-PR — генерация CHANGELOG.md из коммитов с последнего тега.
- Аудит зависимостей. Ежедневно — проверка known CVE в dependencies, автоматический PR с обновлениями.
- Security scan. Прогон нескольких сканеров, консолидированный отчёт, issue для критических findings.
- Обновление документации. При изменении API — автоматическая генерация OpenAPI-спек и коммит.
- Регресс-ревью. При падении CI — Claude анализирует логи, предлагает fix.
Best practices для CI-интеграции:
- API-ключ через secrets. Никогда не хардкодь.
- Ограничение permissions. В CI Claude Code должен иметь только чтение по умолчанию. Запись в git, PR-комменты — через отдельные шаги с явными правами.
- Cost monitoring. CI-запуски дороже интерактивных (частые вызовы). Мониторь usage через console.anthropic.com.
- Fail-soft. Если AI-ревью упал — не блокируй CI. Основной pipeline (тесты, линт) важнее.
- Кэширование. Claude Code читает CLAUDE.md и настройки каждый запуск. В CI кэшируй
.claude/папку между запусками для ускорения.
CLAUDE.md: как писать эффективно
Заголовок раздела «CLAUDE.md: как писать эффективно»CLAUDE.md — markdown-файл в корне проекта, который Claude Code читает в начале каждой сессии. Официальная документация: code.claude.com/docs/en/memory (проверено 10.08.2026).
Структура (рекомендованная):
- Project — что за проект, суть в 2-3 предложениях
- Stack — точные версии зависимостей (Python 3.13, FastAPI 0.115, Next.js 15 и т. д.)
- Conventions — стиль кода (snake_case Python, camelCase TS, commit-стиль, branch-стиль)
- Do not — запреты (не коммить .env, не запускать миграции без backup, не мержить без CI)
- Testing — правила тестов (coverage-порог, где fixtures, что мокать)
- Architecture Decisions — ссылки на ADR
- Commands — типичные команды разработки (запуск, тесты, миграции, билд)
Пример:
# Project: TaskManagerSaaS для управления задачами в командах разработки.
## Stack- Backend: Python 3.13, FastAPI 0.115, SQLAlchemy 2, Alembic- Frontend: Next.js 15, React 19, TypeScript 5.6, Tailwind 4- DB: Postgres 16, Redis 7- Testing: pytest 8, playwright 1.48- Deploy: Docker, GitHub Actions, Fly.io
## Conventions- Python: snake_case, type hints обязательны, ruff strict- TS: camelCase переменные, strict: true, no any- Commits: conventional (feat/fix/chore/refactor)
## Do not- Не коммить .env, secrets- Не запускать миграции без backup- Не мержить PR без CI зелёного
## Commands- Тесты: `pytest`- Линт: `ruff check . && mypy .`- Миграция: `alembic upgrade head`Anti-patterns в CLAUDE.md:
- Слишком общее. «Используй лучшие практики» — не помогает. «Используй pytest, не unittest» — помогает.
- Устарелое. Стек обновился, а CLAUDE.md — нет. Модель пишет код на старой версии.
- Противоречия. В одной секции «snake_case», в другой — «camelCase» для того же контекста.
- Слишком длинное. 2000+ строк CLAUDE.md — модель может не удержать в контексте. Оптимум — 100-300 строк, детали выносить в отдельные файлы и ссылаться.
Дополнительно к CLAUDE.md
Заголовок раздела «Дополнительно к CLAUDE.md»Помимо основного CLAUDE.md в корне репозитория, Claude Code поддерживает CLAUDE.local.md (личный, не под git), path-specific rules и загрузку CLAUDE.md из вложенных директорий. Детали и актуальные пути хранения — на code.claude.com/docs/en/memory (проверено 10.08.2026). Best practice: CLAUDE.md для явных правил (стабильно, под git), локальные варианты — для машинно-специфичных настроек.
Permissions: что разрешать без спроса
Заголовок раздела «Permissions: что разрешать без спроса»Claude Code по умолчанию спрашивает разрешение на каждое действие с побочными эффектами (Bash-команда, редактирование файла, вызов MCP-tool). Это безопасно, но медленно.
Permissions настраиваются в .claude/settings.json. Официальная документация: code.claude.com/docs/en/permissions и code.claude.com/docs/en/settings (проверено 10.08.2026).
Пример базовых permissions:
{ "permissions": { "allow": [ "Bash(pytest:*)", "Bash(ruff:*)", "Bash(mypy:*)", "Bash(git status)", "Bash(git diff:*)", "Bash(git log:*)", "Read(**/*.py)", "Read(**/*.ts)", "Read(**/*.md)", "Edit(src/**)", "Edit(tests/**)", "mcp__github__list_pull_requests", "mcp__github__get_pull_request" ], "deny": [ "Bash(rm -rf:*)", "Bash(sudo:*)", "Bash(psql:*)", "Edit(.env*)", "Edit(secrets/**)" ] }}Правила:
allow— что разрешено без спроса.deny— что запрещено полностью (Claude Code блокирует).- Всё, что не в allow и не в deny — спрашивается интерактивно.
Best practices для permissions:
- Read — щедро. Читать файлы — низкий риск, разрешай широко.
- Edit — с ограничениями.
Edit(src/**)— да.Edit(**)— опасно, можно случайно перезаписать .env. - Bash — узко. Разрешай только конкретные команды, не всё.
Bash(pytest:*)— да.Bash(*)— нет. - MCP-tools — только read-only по умолчанию. Write-операции (create PR, post message, delete data) — интерактивно с подтверждением.
- Раздельные settings.
.claude/settings.json— под git, командные правила..claude/settings.local.json— под gitignore, личные добавки.
Специализированные workflow: TDD, Plan-and-Act
Заголовок раздела «Специализированные workflow: TDD, Plan-and-Act»Claude Code хорошо подходит для двух специализированных подходов.
Test-Driven Development (TDD).
Промпт для TDD:
Промпт: «Задача X. Workflow строго по шагам: (1) напиши тесты в tests/… покрой happy path + edge cases + errors; (2) запусти тесты — они должны падать; (3) реализуй функцию минимально, чтобы прошли; (4) прогоняй тесты; (5) отрефактори; (6) прогоняй снова. Между шагами показывай промежуточный результат для подтверждения». Claude Code следует TDD-циклу: red → green → refactor. Ты видишь тесты до кода, что гарантирует правильный контракт.
Plan-and-Act.
Плановый режим — Claude Code сначала показывает план, ты подтверждаешь, потом делает. Промпт: «Используй Plan mode. Задача X. Сначала составь план: что изменить, в каком порядке, какие риски. Не делай ничего до подтверждения». Claude Code выдаёт план (5-15 шагов), ты редактируешь или подтверждаешь. Активация Plan mode: флаг --plan при запуске, команда /plan в интерактивной сессии, или "defaultMode": "plan" в settings.json.
Best practices:
- TDD для новых функций с чётким контрактом. Парсеры, валидаторы, конвертеры — идеально.
- Plan-and-Act для сложных задач. Миграции, рефакторинги, работа с чужим кодом.
- Обычный режим для рутины. Форматирование, простые правки, ответы на вопросы.
Interoperability: связка с Cursor, JetBrains, VS Code
Заголовок раздела «Interoperability: связка с Cursor, JetBrains, VS Code»Claude Code — не редактор, но интегрируется с редакторами. Три пути.
VS Code extension. Официальное расширение от Anthropic (актуальная документация — на code.claude.com/docs/en, раздел IDE). Даёт chat-интерфейс, diff-viewer, интеграцию с CLAUDE.md. Работает поверх той же CLI-сессии, что и терминальный Claude Code.
JetBrains plugin. Для IntelliJ IDEA, PyCharm, WebStorm. Аналогично VS Code — chat, diff, память проекта.
Cursor / Windsurf. Эти редакторы имеют свой AI-движок (тоже Claude через API), но не запускают Claude Code напрямую. Можно параллельно: Cursor открыт для интерактивного кодинга, Claude Code в терминале — для задач-агентов.
Совместная работа с несколькими редакторами. Claude Code читает CLAUDE.md, .cursorrules, .windsurfrules — если они есть. Общие проектные правила выноси в CLAUDE.md, специфичные для редактора — в свои файлы.
Дебаг Claude Code
Заголовок раздела «Дебаг Claude Code»Инструменты для дебага, когда Claude Code делает что-то неожиданное:
- Транскрипты сессий —
.claude/projects/<project-hash>/sessions/. JSON-файл со всей историей: промпты, ответы, вызовы инструментов, результаты. Смотри черезcat ... | jq. - Hook-логи — если hooks пишут логи (
echo ... >> .claude/hooks.log), смотри параллельно с транскриптом. - Checkpoints — Claude Code v2+ сохраняет checkpoints перед крупными изменениями. Откат:
claude checkpoint list,claude checkpoint restore <id>. - Debug-режим — запуск с флагом
--debugдаёт подробный вывод (MCP-серверы, permissions, hooks, токены). - Verbose-логи —
CLAUDE_LOG_LEVEL=debugв окружении.
Best practices: начинай с транскрипта (90% случаев ответ там), проверяй permissions (если не выполняет — часто просто не пустили), —debug для сложного (MCP, hooks, subagents), логируй важное в отдельные файлы.
Что такое Skill в Claude Code и зачем оно нужно?
Заголовок раздела «Что такое Skill в Claude Code и зачем оно нужно?»Skill — переиспользуемая команда или процесс, упакованный в папку с манифестом. Ты вызываешь его через slash-команду (например, /review-pr), и Claude Code выполняет прописанные шаги. Полезен для повторяющихся задач: PR-ревью, деплой, генерация тестов, обновление changelog. Skills шарятся между разработчиками через git.
Как создать свой Skill?
Заголовок раздела «Как создать свой Skill?»Создай папку .claude/skills/my-skill/ в проекте. Внутри — файл SKILL.md с YAML-фронтматтером (name, description, allowed_tools) и содержимым в markdown. Можно добавить вспомогательные скрипты в scripts/, шаблоны в templates/. После этого skill доступен как /my-skill в CLI.
Как использовать Subagents?
Заголовок раздела «Как использовать Subagents?»В промпте описываешь параллелизуемую задачу и говоришь «запусти N subagents». Ведущий Claude Code запускает дочерние сессии через инструмент Task, каждая работает независимо, результаты агрегируются. Хорошо для рефакторинга множества похожих файлов, multi-domain задач, исследования альтернатив. Не подходит для задач с общим состоянием.
Как правильно писать CLAUDE.md?
Заголовок раздела «Как правильно писать CLAUDE.md?»Структурируй по секциям: Project (что за проект), Stack (точные версии), Conventions (как писать код), Do not (что нельзя), Testing (правила тестов), Commands (типичные команды). Оптимальная длина — 100-300 строк. Слишком короткий — модель не понимает контекст, слишком длинный — не удерживает в фокусе. Держи в git и обновляй по мере эволюции проекта.
Как запустить Claude Code в GitHub Actions?
Заголовок раздела «Как запустить Claude Code в GitHub Actions?»Через официальный action anthropics/claude-code-action. В workflow передаёшь ANTHROPIC_API_KEY через secrets, задаёшь промпт. Типичные сценарии: автоматический PR-ревью, генерация changelog, security scan, обновление документации. Ограничивай permissions в CI строже, чем локально.
В чём разница между routines и scheduled tasks?
Заголовок раздела «В чём разница между routines и scheduled tasks?»Routines крутятся в облаке Anthropic — работают даже при выключенном компьютере, могут триггериться по API или GitHub-событиям. Scheduled tasks крутятся локально — имеют доступ к твоим файлам, но требуют работающего компьютера. /loop — самое простое: повторяет промпт внутри активной сессии.
Как дебажить, если Claude Code делает что-то неожиданное?
Заголовок раздела «Как дебажить, если Claude Code делает что-то неожиданное?»Смотри транскрипт сессии в .claude/projects/--debug для подробного вывода. Проверяй permissions и hook-логи. Используй checkpoints для отката: claude checkpoint list и claude checkpoint restore.
Стоит ли использовать Cursor и Claude Code одновременно?
Заголовок раздела «Стоит ли использовать Cursor и Claude Code одновременно?»Да, они дополняют друг друга. Cursor — для интерактивного кодинга и правок одного файла. Claude Code — для задач-агентов, миграций, автоматизаций в CI, работы с несколькими файлами в одной команде. Общие проектные правила выноси в CLAUDE.md (читается обоими), специфичные для редактора — в .cursorrules.
Как экономить на токенах при активном использовании?
Заголовок раздела «Как экономить на токенах при активном использовании?»Держи CLAUDE.md компактным (100-300 строк). Используй skills для повторяющихся процессов — вместо каждого раза объяснять модели, что делать, вызывай /skill. Кэшируй .claude/ в CI. Для простых задач используй sonnet-модели, для сложных — opus. Мониторь usage через console.anthropic.com. При активном использовании подписка Pro/Max дешевле metered API.
Работает ли всё это из России?
Заголовок раздела «Работает ли всё это из России?»Да, если у тебя есть иностранный аккаунт Claude или ключ Anthropic API. Технически Claude Code не имеет геолимитов. Проблема только в регистрации и оплате — нужен зарубежный номер телефона и иностранная карта. Прямая оплата российской картой не проходит. Альтернативы: доступ через Amazon Bedrock или Google Cloud Vertex AI, если у тебя есть аккаунты у них.
Какие поля обязательны во frontmatter SKILL.md?
Заголовок раздела «Какие поля обязательны во frontmatter SKILL.md?»Только description рекомендован — по нему Claude решает, когда применять skill. Остальные поля (name, allowed-tools, disable-model-invocation, argument-hint, arguments, context, model, effort, paths и другие) — опциональны. Полный список — на code.claude.com/docs/en/skills, раздел «Frontmatter reference». Если description не указан, Claude берёт первый параграф markdown-содержимого.
Как передавать аргументы в skill?
Заголовок раздела «Как передавать аргументы в skill?»В теле skill’а используешь плейсхолдер $ARGUMENTS — он раскроется в текст, который пользователь набрал после /skill-name. Можно также обращаться по индексу: $0, $1 или $ARGUMENTS[0], $ARGUMENTS[1]. Именованные аргументы объявляются во frontmatter (arguments: [issue, branch]) и раскрываются как $issue, $branch. Если skill вызвали с аргументами, но $ARGUMENTS в теле нет — Claude Code сам добавит их в конце как ARGUMENTS: <value>.
Что такое bundled skills и как их отключить?
Заголовок раздела «Что такое bundled skills и как их отключить?»Bundled skills — встроенные skills Claude Code (/doctor, /code-review, /verify, /run, /debug, /loop, /claude-api, /batch и др.). Доступны в каждой сессии без настройки. Отключить все (кроме /doctor) можно через setting disableBundledSkills. Полный список bundled skills — в commands reference документации Claude Code.
Как ограничить, чтобы Claude не запускал skill автоматически?
Заголовок раздела «Как ограничить, чтобы Claude не запускал skill автоматически?»Добавь disable-model-invocation: true во frontmatter SKILL.md. Skill будет доступен только через явный вызов /skill-name. Полезно для операций с побочными эффектами: /deploy, /commit, /send-message. Также используется для управления бюджетом токенов — тяжёлый skill не будет автоматически загружаться Claude’ом.
Как передавать данные между несколькими subagents?
Заголовок раздела «Как передавать данные между несколькими subagents?»Прямо между subagents данные не идут — они изолированы. Координация происходит через ведущего агента: ты запускаешь subagent A, получаешь результат-сводку, передаёшь его как контекст в subagent B. Для полноценной параллельной работы с обменом сообщениями смотри cross-session messaging и agent teams (code.claude.com/docs/en/cross-session-messaging и code.claude.com/docs/en/agent-teams, проверено 10.08.2026).
Как проверить, что hook работает как задумано?
Заголовок раздела «Как проверить, что hook работает как задумано?»Три уровня. Первое — запусти команду hook’а руками с эмуляцией stdin JSON: echo '{"tool_name":"Bash","tool_input":{"command":"rm -rf /"}}' | your-hook.sh. Второе — включи логирование внутри hook’а в отдельный файл. Третье — используй debug-режим Claude Code (детали — на code.claude.com/docs/en/hooks, раздел про диагностику). Если hook падает с exit code, отличным от 0 или 2, он воспринимается как non-blocking error и действие всё равно выполняется — проверяй exit codes.
Актуальность
Заголовок раздела «Актуальность»Актуально на 10.08.2026. Функции Claude Code меняются часто. Перед бизнес-решением всегда сверяйся с первоисточником — все ссылки в разделе Sources ниже.
Sources
Заголовок раздела «Sources»- https://code.claude.com/docs/en/overview — обзор Claude Code (проверено 10.08.2026)
- https://code.claude.com/docs/en/skills — документация по Skills (проверено 10.08.2026)
- https://code.claude.com/docs/en/hooks — документация по Hooks (проверено 10.08.2026)
- https://code.claude.com/docs/en/sub-agents — документация по Subagents (проверено 10.08.2026)
- https://code.claude.com/docs/en/mcp — документация по MCP-интеграции (проверено 10.08.2026)
- https://code.claude.com/docs/en/memory — документация по CLAUDE.md (проверено 10.08.2026)
- https://code.claude.com/docs/en/settings — settings.json (проверено 10.08.2026)
- https://code.claude.com/docs/en/permissions — permissions (проверено 10.08.2026)
- https://code.claude.com/docs/en/routines — routines (проверено 10.08.2026)
- https://code.claude.com/docs/en/desktop-scheduled-tasks — desktop scheduled tasks (проверено 10.08.2026)
- https://code.claude.com/docs/en/github-actions — интеграция с GitHub Actions (проверено 10.08.2026)
- https://code.claude.com/docs/en/agent-view — background agents и agent view (проверено 10.08.2026)
- https://modelcontextprotocol.io — спецификация MCP-протокола (проверено 10.08.2026)
- https://modelcontextprotocol.io/quickstart/server — quickstart для написания MCP-сервера (проверено 10.08.2026)
- https://git-scm.com/docs/git-worktree — официальная документация git worktree (проверено 10.08.2026)