← Claude на русском
Открыть оригинал
Перевод
Перевёл Claude Opus 4.7 (ИИ). Это не официальный перевод Anthropic — при сомнениях сверяйся с оригиналом.

Лучшие практики Claude Code

Оригинал: Best Practices for Claude Code · автор: Anthropic · сверено 2026-04-26

Советы и паттерны для того, чтобы извлечь максимум из Claude Code: от настройки окружения до масштабирования через параллельные сессии.

Claude Code — это агентное окружение для написания кода. В отличие от чат-бота, который отвечает на вопросы и ждёт, Claude Code умеет читать ваши файлы, запускать команды, вносить изменения и автономно работать над задачами, пока вы наблюдаете, корректируете направление или вообще отходите от компьютера.

Это меняет способ работы. Вместо того чтобы писать код самостоятельно и просить Claude его проверить, вы описываете, чего хотите, а Claude разбирается, как это построить. Claude исследует, планирует и реализует.

Но эта автономия всё ещё связана с кривой обучения. Claude работает в рамках определённых ограничений, которые нужно понимать.

Этот гайд описывает паттерны, которые показали себя эффективными во внутренних командах Anthropic и для инженеров, использующих Claude Code на разных кодовых базах, языках и в разных окружениях. Про то, как агентный цикл работает изнутри, см. How Claude Code works.


Большинство лучших практик опираются на одно ограничение: context window Claude быстро заполняется, и качество работы падает по мере его заполнения.

Context window Claude хранит всю вашу беседу, включая каждое сообщение, каждый файл, который Claude прочитал, и каждый вывод команды. Однако он может заполниться быстро. Одна сессия отладки или обхода кодовой базы может сгенерировать и потребить десятки тысяч tokens.

Это важно, потому что качество работы LLM падает по мере заполнения контекста. Когда context window заполняется, Claude может начать «забывать» более ранние инструкции или чаще ошибаться. Context window — самый важный ресурс, которым нужно управлять. Чтобы увидеть, как сессия заполняется на практике, посмотрите интерактивный обзор того, что загружается при старте и сколько стоит каждое чтение файла. Отслеживайте использование контекста непрерывно с помощью кастомной строки статуса, а также см. Reduce token usage для стратегий уменьшения расхода tokens.


Дайте Claude способ проверять свою работу

Claude работает кардинально лучше, когда может проверить свою работу — запустить тесты, сравнить скриншоты, валидировать выходные данные.

Без чётких критериев успеха он может выдать что-то, что выглядит правильно, но на деле не работает. Вы становитесь единственной петлёй обратной связи, и каждая ошибка требует вашего внимания.

СтратегияДоПосле
Дайте критерии проверки «реализуй функцию, которая валидирует email-адреса» «напиши функцию validateEmail. примеры тест-кейсов: user@example.com — true, invalid — false, user@.com — false. запусти тесты после реализации»
Проверяйте UI-изменения визуально «сделай дашборд лучше» «[вставь скриншот] реализуй этот дизайн. сделай скриншот результата и сравни его с оригиналом. перечисли отличия и исправь их»
Работайте с корневыми причинами, а не симптомами «сборка падает» «сборка падает с такой ошибкой: [вставь ошибку]. исправь и проверь, что сборка проходит. займись корневой причиной, не подавляй ошибку»

UI-изменения можно проверять через расширение Claude in Chrome. Оно открывает новые вкладки в вашем браузере, тестирует UI и итерирует, пока код не заработает.

Ваша проверка также может быть тестовым набором, линтером или Bash-командой, которая проверяет вывод. Вкладывайтесь в то, чтобы ваша проверка была железобетонной.


Сначала исследуйте, потом планируйте, потом пишите код

Если позволить Claude сразу прыгнуть в кодинг, может получиться код, который решает не ту задачу. Используйте Plan Mode, чтобы отделить исследование от исполнения.

Рекомендуемый workflow состоит из четырёх фаз:

Шаг 1. Исследуйте

Войдите в Plan Mode. Claude читает файлы и отвечает на вопросы, не внося изменений.

read /src/auth and understand how we handle sessions and login.
also look at how we manage environment variables for secrets.
Шаг 2. Планируйте

Попросите Claude создать детальный план реализации.

I want to add Google OAuth. What files need to change?
What's the session flow? Create a plan.

Нажмите Ctrl+G, чтобы открыть план в текстовом редакторе для прямого редактирования, прежде чем Claude продолжит.

Шаг 3. Реализуйте

Переключитесь обратно в Normal Mode и дайте Claude писать код, проверяя по плану.

implement the OAuth flow from your plan. write tests for the
callback handler, run the test suite and fix any failures.
Шаг 4. Закоммитьте

Попросите Claude закоммитить с описательным сообщением и создать PR.

commit with a descriptive message and open a PR

Давайте конкретный контекст в промптах

Claude умеет догадываться о намерениях, но он не умеет читать ваши мысли. Ссылайтесь на конкретные файлы, упоминайте ограничения и указывайте на примеры паттернов.

СтратегияДоПосле
Ограничьте задачу. Указывайте, какой файл, какой сценарий и какие предпочтения по тестированию. «добавь тесты для foo.py» «напиши тест для foo.py, покрывающий граничный случай, когда пользователь не залогинен. избегай моков.»
Указывайте источники. Направляйте Claude к источнику, который может ответить на вопрос. «почему у ExecutionFactory такой странный api?» «просмотри git history ExecutionFactory и резюмируй, как сложился её api»
Ссылайтесь на существующие паттерны. Указывайте Claude на паттерны в вашей кодовой базе. «добавь виджет календаря» «посмотри, как реализованы существующие виджеты на главной странице, чтобы понять паттерны. HotDogWidget.php — хороший пример. следуй паттерну, чтобы реализовать новый виджет календаря, который позволяет пользователю выбирать месяц и листать вперёд/назад для выбора года. построй с нуля без библиотек, кроме тех, что уже используются в кодовой базе.»
Опишите симптом. Дайте симптом, вероятное место и то, как выглядит «исправлено». «пофикси баг логина» «пользователи сообщают, что логин падает после таймаута сессии. посмотри auth-флоу в src/auth/, особенно обновление токена. напиши падающий тест, который воспроизводит проблему, потом исправь её»

Размытые промпты могут быть полезны, когда вы исследуете и можете позволить себе скорректировать курс. Промпт вроде "что бы ты улучшил в этом файле?" может всплыть вещи, о которых вы бы не подумали спросить.

Давайте богатый контент

Вы можете передавать Claude богатые данные несколькими способами:


Настройте окружение

Несколько шагов настройки делают Claude Code значительно эффективнее во всех ваших сессиях. Полный обзор возможностей расширения и того, когда использовать каждую из них, см. в Extend Claude Code.

Напишите эффективный CLAUDE.md

CLAUDE.md — это специальный файл, который Claude читает в начале каждой беседы. Включайте Bash-команды, стиль кода и правила workflow. Это даёт Claude постоянный контекст, который он не может вывести только из кода.

Команда /init анализирует вашу кодовую базу, чтобы определить системы сборки, тестовые фреймворки и паттерны кода, давая вам прочный фундамент для дальнейшей доработки.

У файлов CLAUDE.md нет обязательного формата, но держите их короткими и читабельными для человека. Например:

# Code style
- Use ES modules (import/export) syntax, not CommonJS (require)
- Destructure imports when possible (eg. import { foo } from 'bar')

# Workflow
- Be sure to typecheck when you're done making a series of code changes
- Prefer running single tests, and not the whole test suite, for performance

CLAUDE.md загружается каждую сессию, поэтому включайте только то, что применимо широко. Для доменных знаний или workflow, релевантных только иногда, используйте skills. Claude подгружает их по требованию, не раздувая каждую беседу.

Держите коротко. Для каждой строки спрашивайте: «Если убрать это, начнёт ли Claude ошибаться?» Если нет — выкиньте. Раздутые файлы CLAUDE.md приводят к тому, что Claude игнорирует ваши настоящие инструкции!

✅ Включать❌ Исключать
Bash-команды, которые Claude не может угадатьВсё, что Claude может выяснить, прочитав код
Правила стиля кода, отличающиеся от дефолтовСтандартные конвенции языка, которые Claude уже знает
Инструкции по тестированию и предпочитаемые тест-раннерыПодробную API-документацию (вместо неё дайте ссылку)
Этикет репозитория (имена веток, PR-конвенции)Информация, которая часто меняется
Архитектурные решения, специфичные для вашего проектаДлинные объяснения или туториалы
Особенности окружения разработчика (нужные env vars)Пофайловые описания кодовой базы
Типичные подводные камни или неочевидное поведениеСамоочевидные практики вроде «пишите чистый код»

Если Claude продолжает делать что-то, чего вы не хотите, несмотря на правило против этого, — файл, вероятно, слишком длинный, и правило теряется. Если Claude задаёт вопросы, ответы на которые есть в CLAUDE.md, формулировка может быть неоднозначной. Относитесь к CLAUDE.md как к коду: ревьюйте, когда что-то идёт не так, регулярно подрезайте, и тестируйте изменения, наблюдая, действительно ли поведение Claude меняется.

Можно настраивать инструкции, добавляя акценты (например, «IMPORTANT» или «YOU MUST»), чтобы повысить следование им. Кладите CLAUDE.md в git, чтобы команда могла вносить вклад. Файл накапливает ценность со временем.

Файлы CLAUDE.md могут импортировать дополнительные файлы через синтаксис @path/to/import:

See @README.md for project overview and @package.json for available npm commands.

# Additional Instructions
- Git workflow: @docs/git-instructions.md
- Personal overrides: @~/.claude/my-project-instructions.md

Файлы CLAUDE.md можно размещать в нескольких местах:

Настройте permissions

По умолчанию Claude Code запрашивает разрешение на действия, которые могут изменить вашу систему: запись файлов, Bash-команды, MCP-инструменты и т.п. Это безопасно, но утомительно. После десятого подтверждения вы уже не ревьюите, а просто кликаете. Есть три способа уменьшить эти прерывания:

Подробнее про permission modes, permission rules и sandboxing.

Используйте CLI-инструменты

CLI-инструменты — самый контекст-эффективный способ взаимодействовать с внешними сервисами. Если вы используете GitHub, установите gh CLI. Claude знает, как им пользоваться для создания issues, открытия pull request'ов и чтения комментариев. Без gh Claude всё ещё может использовать GitHub API, но неаутентифицированные запросы часто упираются в rate limit.

Claude также эффективно учится CLI-инструментам, которых пока не знает. Попробуйте промпты вроде Use 'foo-cli-tool --help' to learn about foo tool, then use it to solve A, B, C.

Подключайте MCP-серверы

С MCP-серверами вы можете попросить Claude реализовывать фичи из issue-трекеров, делать запросы к базам данных, анализировать данные мониторинга, интегрировать дизайны из Figma и автоматизировать workflow.

Настройте hooks

Hooks автоматически запускают скрипты в определённых точках workflow Claude. В отличие от инструкций CLAUDE.md, которые носят рекомендательный характер, hooks детерминированы и гарантируют, что действие произойдёт.

Claude может писать hooks за вас. Попробуйте промпты вроде «Напиши hook, который запускает eslint после каждого редактирования файла» или «Напиши hook, который блокирует записи в папку migrations.» Редактируйте .claude/settings.json напрямую, чтобы настраивать hooks вручную, и запускайте /hooks, чтобы посмотреть, что настроено.

Создавайте skills

Skills расширяют знания Claude информацией, специфичной для вашего проекта, команды или домена. Claude применяет их автоматически, когда они релевантны, или вы можете вызвать их напрямую через /skill-name.

Создайте skill, добавив директорию с SKILL.md в .claude/skills/:

---
name: api-conventions
description: REST API design conventions for our services
---
# API Conventions
- Use kebab-case for URL paths
- Use camelCase for JSON properties
- Always include pagination for list endpoints
- Version APIs in the URL path (/v1/, /v2/)

Skills могут также определять повторяющиеся workflow, которые вы вызываете напрямую:

---
name: fix-issue
description: Fix a GitHub issue
disable-model-invocation: true
---
Analyze and fix the GitHub issue: $ARGUMENTS.

1. Use `gh issue view` to get the issue details
2. Understand the problem described in the issue
3. Search the codebase for relevant files
4. Implement the necessary changes to fix the issue
5. Write and run tests to verify the fix
6. Ensure code passes linting and type checking
7. Create a descriptive commit message
8. Push and create a PR

Запустите /fix-issue 1234, чтобы вызвать его. Используйте disable-model-invocation: true для workflow с побочными эффектами, которые вы хотите запускать вручную.

Создавайте кастомных subagents

Subagents работают в собственном контексте со своим набором разрешённых инструментов. Они полезны для задач, которые читают много файлов или требуют специализированного фокуса, не захламляя вашу основную беседу.

---
name: security-reviewer
description: Reviews code for security vulnerabilities
tools: Read, Grep, Glob, Bash
model: opus
---
You are a senior security engineer. Review code for:
- Injection vulnerabilities (SQL, XSS, command injection)
- Authentication and authorization flaws
- Secrets or credentials in code
- Insecure data handling

Provide specific line references and suggested fixes.

Скажите Claude использовать subagents явно: «Используй subagent, чтобы отревьюить этот код на предмет проблем безопасности.»

Устанавливайте плагины

Плагины упаковывают skills, hooks, subagents и MCP-серверы в единый устанавливаемый юнит — от сообщества и Anthropic. Если вы работаете с типизированным языком, установите code intelligence plugin, чтобы дать Claude точную навигацию по символам и автоматическое обнаружение ошибок после правок.

Гайд по выбору между skills, subagents, hooks и MCP — в Extend Claude Code.


Общайтесь эффективно

То, как вы общаетесь с Claude Code, существенно влияет на качество результатов.

Задавайте вопросы про кодовую базу

При онбординге в новую кодовую базу используйте Claude Code для изучения и исследования. Вы можете задавать Claude те же вопросы, что задали бы другому инженеру:

Использование Claude Code таким образом — эффективный onboarding workflow: ускоряет вход в проект и снижает нагрузку на других инженеров. Никакого специального промптинга не требуется: задавайте вопросы напрямую.

Дайте Claude взять у вас интервью

Claude задаёт вопросы про вещи, о которых вы могли ещё не подумать, включая техническую реализацию, UI/UX, граничные случаи и компромиссы.

I want to build [brief description]. Interview me in detail using the AskUserQuestion tool.

Ask about technical implementation, UI/UX, edge cases, concerns, and tradeoffs. Don't ask obvious questions, dig into the hard parts I might not have considered.

Keep interviewing until we've covered everything, then write a complete spec to SPEC.md.

Когда спецификация готова, запустите свежую сессию для её исполнения. У новой сессии чистый контекст, целиком сфокусированный на реализации, а у вас есть письменная спецификация для опоры.


Управляйте сессией

Беседы персистентны и обратимы. Используйте это себе на пользу!

Корректируйте курс рано и часто

Лучшие результаты приходят из плотных петель обратной связи. Хотя Claude иногда решает задачи идеально с первой попытки, быстрая корректировка обычно даёт лучшие решения быстрее.

Если вы поправили Claude больше двух раз по одному и тому же вопросу в одной сессии, контекст замусорен провалившимися подходами. Запустите /clear и начните заново с более конкретным промптом, в который вошло то, что вы выяснили. Чистая сессия с лучшим промптом почти всегда обыгрывает длинную сессию с накопившимися правками.

Управляйте контекстом агрессивно

Claude Code автоматически компактирует историю беседы, когда вы приближаетесь к лимиту контекста; это сохраняет важный код и решения, освобождая место.

В долгих сессиях context window Claude может заполниться нерелевантной беседой, содержимым файлов и командами. Это может снизить качество работы и иногда отвлекать Claude.

Используйте subagents для исследования

Поскольку контекст — ваше фундаментальное ограничение, subagents — один из самых мощных доступных инструментов. Когда Claude исследует кодовую базу, он читает много файлов, и все они расходуют ваш контекст. Subagents работают в отдельных context windows и возвращают сводку:

Use subagents to investigate how our authentication system handles token
refresh, and whether we have any existing OAuth utilities I should reuse.

Subagent исследует кодовую базу, читает релевантные файлы и возвращается с находками — всё это без захламления вашей основной беседы.

Можно также использовать subagents для проверки после того, как Claude что-то реализовал:

use a subagent to review this code for edge cases

Перематывайте через чекпойнты

Claude автоматически делает чекпойнт перед изменениями. Дважды нажмите Escape или запустите /rewind, чтобы открыть меню перемотки. Можно восстановить только беседу, только код, и то и другое или суммаризовать с выбранного сообщения. Подробности — в Checkpointing.

Вместо того чтобы тщательно планировать каждый ход, вы можете сказать Claude попробовать что-то рискованное. Если не сработает — перемотайте и попробуйте другой подход. Чекпойнты сохраняются между сессиями, так что вы можете закрыть терминал и всё равно перемотать позже.

Возобновляйте беседы

Claude Code сохраняет беседы локально. Когда задача растягивается на несколько сессий, вам не нужно заново объяснять контекст:

claude --continue    # Resume the most recent conversation
claude --resume      # Select from recent conversations

Используйте /rename, чтобы давать сессиям описательные имена вроде "oauth-migration" или "debugging-memory-leak" — так их потом проще найти. Относитесь к сессиям как к веткам: разные направления работы могут иметь отдельные персистентные контексты.


Автоматизируйте и масштабируйте

Когда вы научились эффективно работать с одним Claude, умножьте результаты через параллельные сессии, неинтерактивный режим и паттерны fan-out.

Всё, что было выше, предполагало одного человека, одного Claude и одну беседу. Но Claude Code масштабируется горизонтально. Техники в этой секции показывают, как успевать больше.

Запускайте неинтерактивный режим

С claude -p "your prompt" вы можете запускать Claude неинтерактивно, без сессии. Неинтерактивный режим — это то, как вы интегрируете Claude в CI-пайплайны, pre-commit hooks или любой автоматизированный workflow. Форматы вывода позволяют разбирать результаты программно: plain text, JSON или streaming JSON.

# One-off queries
claude -p "Explain what this project does"

# Structured output for scripts
claude -p "List all API endpoints" --output-format json

# Streaming for real-time processing
claude -p "Analyze this log file" --output-format stream-json

Запускайте несколько сессий Claude

Есть три основных способа запускать параллельные сессии:

Помимо распараллеливания работы, несколько сессий открывают workflow с фокусом на качество. Свежий контекст улучшает code review, потому что Claude не будет смещён в сторону кода, который только что написал.

Например, используйте паттерн Writer/Reviewer:

Сессия A (Writer)Сессия B (Reviewer)
Implement a rate limiter for our API endpoints
Review the rate limiter implementation in @src/middleware/rateLimiter.ts. Look for edge cases, race conditions, and consistency with our existing middleware patterns.
Here's the review feedback: [Session B output]. Address these issues.

Можно сделать что-то похожее с тестами: пусть один Claude напишет тесты, а другой — код, который их проходит.

Расходитесь по файлам (fan out)

Для больших миграций или анализов вы можете распределить работу по многим параллельным запускам Claude:

Шаг 1. Сгенерируйте список задач

Попросите Claude перечислить все файлы, которым нужна миграция (например, list all 2,000 Python files that need migrating)

Шаг 2. Напишите скрипт, который пройдёт по списку
for file in $(cat files.txt); do
  claude -p "Migrate $file from React to Vue. Return OK or FAIL." \
    --allowedTools "Edit,Bash(git commit *)"
done
Шаг 3. Протестируйте на нескольких файлах, потом запускайте на масштабе

Доработайте промпт по тому, что пошло не так на первых 2–3 файлах, потом запускайте на полном наборе. Флаг --allowedTools ограничивает то, что Claude может делать, — это важно, когда вы запускаете без присмотра.

Можно также интегрировать Claude в существующие пайплайны обработки данных:

claude -p "<your prompt>" --output-format json | your_command

Используйте --verbose для отладки во время разработки и выключайте его в production.

Запускайте автономно через auto mode

Для непрерывного исполнения с фоновыми проверками безопасности используйте auto mode. Модель-классификатор ревьюит команды перед запуском, блокируя эскалацию скоупа, неизвестную инфраструктуру и действия, спровоцированные враждебным контентом, при этом пропуская рутинную работу без подтверждений.

claude --permission-mode auto -p "fix all lint errors"

Для неинтерактивных запусков с флагом -p auto mode прерывается, если классификатор многократно блокирует действия, поскольку отступать к пользователю некуда. См. when auto mode falls back для порогов.


Избегайте типичных провальных паттернов

Это типичные ошибки. Распознать их рано — сэкономить время:


Развивайте интуицию

Паттерны в этом гайде не высечены в камне. Это стартовые точки, которые в общем случае хорошо работают, но могут не быть оптимальными для каждой ситуации.

Иногда вам стоит позволить контексту накопиться, потому что вы глубоко в одной сложной проблеме и история ценна. Иногда стоит пропустить планирование и дать Claude разобраться, потому что задача исследовательская. Иногда размытый промпт — это ровно то, что нужно, потому что вы хотите увидеть, как Claude интерпретирует задачу, прежде чем её ограничивать.

Замечайте, что работает. Когда Claude выдаёт отличный результат — заметьте, что вы делали: структуру промпта, контекст, который вы дали, режим, в котором вы были. Когда Claude буксует — спросите почему. Был ли контекст слишком шумным? Промпт слишком размытым? Задача слишком большой для одного прохода?

Со временем у вас выработается интуиция, которую не передаст ни один гайд. Вы будете знать, когда быть конкретным, а когда — открытым; когда планировать, а когда — исследовать; когда чистить контекст, а когда — давать ему накапливаться.

Связанные ресурсы