Перейти к содержимому

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-подписок из РФ.

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 по проектному чек-листу с публикацией комментариев в GitHub
allowed-tools: Bash Read WebFetch
disable-model-invocation: true
---
## Steps
1. Прочитай `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 на PreToolUse matcher Bash, проверяет входные аргументы на 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-переменные для каждого поля.

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/x
cd ../myproject-feature-x
claude

Claude Code откроется в новой директории с той же историей репозитория, но на ветке feature/x. Изменения в этом worktree не влияют на основной.

Управление worktrees:

Окно терминала
# Список всех worktrees
git worktree list
# Удалить worktree (после мержа PR или закрытия ветки)
git worktree remove ../myproject-feature-x
# Автоочистка stale worktrees
git worktree prune

Workflow с worktrees:

  1. Основная сессия Claude Code в корне репозитория — здесь ты делаешь ревью PR, отвечаешь на срочное.
  2. Worktree feature-auth — Claude Code работает над реавторизацией.
  3. Worktree bugfix-payment — другой Claude Code исследует баг с оплатой.
  4. 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 (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).

Для параллельной работы 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.
  • Логирование в файл. Транскрипт агента может понадобиться для отладки.

Три способа запускать 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-review
schedule: "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 логируют свои запуски. Раз в неделю — просматривай логи, чтобы поймать деградацию.

Claude Code запускается в CI как обычный CLI-инструмент. Официальная интеграция с GitHub Actions документирована в code.claude.com/docs/en/github-actions (проверено 10.08.2026).

Пример GitHub Action для автоматического ревью PR:

name: claude-pr-review
on:
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 — 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: TaskManager
SaaS для управления задачами в командах разработки.
## 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 Code поддерживает CLAUDE.local.md (личный, не под git), path-specific rules и загрузку CLAUDE.md из вложенных директорий. Детали и актуальные пути хранения — на code.claude.com/docs/en/memory (проверено 10.08.2026). Best practice: CLAUDE.md для явных правил (стабильно, под git), локальные варианты — для машинно-специфичных настроек.

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, личные добавки.

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 для сложных задач. Миграции, рефакторинги, работа с чужим кодом.
  • Обычный режим для рутины. Форматирование, простые правки, ответы на вопросы.

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/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 — переиспользуемая команда или процесс, упакованный в папку с манифестом. Ты вызываешь его через slash-команду (например, /review-pr), и Claude Code выполняет прописанные шаги. Полезен для повторяющихся задач: PR-ревью, деплой, генерация тестов, обновление changelog. Skills шарятся между разработчиками через git.

Создай папку .claude/skills/my-skill/ в проекте. Внутри — файл SKILL.md с YAML-фронтматтером (name, description, allowed_tools) и содержимым в markdown. Можно добавить вспомогательные скрипты в scripts/, шаблоны в templates/. После этого skill доступен как /my-skill в CLI.

В промпте описываешь параллелизуемую задачу и говоришь «запусти N subagents». Ведущий Claude Code запускает дочерние сессии через инструмент Task, каждая работает независимо, результаты агрегируются. Хорошо для рефакторинга множества похожих файлов, multi-domain задач, исследования альтернатив. Не подходит для задач с общим состоянием.

Структурируй по секциям: Project (что за проект), Stack (точные версии), Conventions (как писать код), Do not (что нельзя), Testing (правила тестов), Commands (типичные команды). Оптимальная длина — 100-300 строк. Слишком короткий — модель не понимает контекст, слишком длинный — не удерживает в фокусе. Держи в git и обновляй по мере эволюции проекта.

Через официальный action anthropics/claude-code-action. В workflow передаёшь ANTHROPIC_API_KEY через secrets, задаёшь промпт. Типичные сценарии: автоматический PR-ревью, генерация changelog, security scan, обновление документации. Ограничивай permissions в CI строже, чем локально.

Routines крутятся в облаке Anthropic — работают даже при выключенном компьютере, могут триггериться по API или GitHub-событиям. Scheduled tasks крутятся локально — имеют доступ к твоим файлам, но требуют работающего компьютера. /loop — самое простое: повторяет промпт внутри активной сессии.

Как дебажить, если Claude Code делает что-то неожиданное?

Заголовок раздела «Как дебажить, если Claude Code делает что-то неожиданное?»

Смотри транскрипт сессии в .claude/projects//sessions/. Там вся история: промпты, ответы, вызовы инструментов. Запускай с флагом --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, если у тебя есть аккаунты у них.

Только 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’а используешь плейсхолдер $ARGUMENTS — он раскроется в текст, который пользователь набрал после /skill-name. Можно также обращаться по индексу: $0, $1 или $ARGUMENTS[0], $ARGUMENTS[1]. Именованные аргументы объявляются во frontmatter (arguments: [issue, branch]) и раскрываются как $issue, $branch. Если skill вызвали с аргументами, но $ARGUMENTS в теле нет — Claude Code сам добавит их в конце как ARGUMENTS: <value>.

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 ниже.