Большинство лучших практик основаны на одном ограничении: контекстное окно Claude заполняется быстро, и производительность деградирует по мере его заполнения. Контекстное окно Claude содержит весь ваш разговор, включая каждое сообщение, каждый файл, который читает Claude, и каждый вывод команды. Однако это может заполниться быстро. Один сеанс отладки или исследование кодовой базы может сгенерировать и потребить десятки тысяч токенов. Это важно, потому что производительность LLM деградирует по мере заполнения контекста. Когда контекстное окно почти полное, Claude может начать «забывать» более ранние инструкции или делать больше ошибок. Контекстное окно — это самый важный ресурс для управления. Отслеживайте использование контекста непрерывно с помощью custom status line, и см. Reduce token usage для стратегий по снижению использования токенов.
Дайте Claude способ проверить свою работу
Claude работает значительно лучше, когда может проверить свою собственную работу, например запустить тесты, сравнить скриншоты и проверить выходные данные. Без чётких критериев успеха он может создать что-то, что выглядит правильно, но на самом деле не работает. Вы становитесь единственным циклом обратной связи, и каждая ошибка требует вашего внимания.| Стратегия | До | После |
|---|---|---|
| Предоставьте критерии проверки | ”реализовать функцию, которая проверяет адреса электронной почты" | "написать функцию validateEmail. примеры тестовых случаев: [email protected] это true, invalid это false, [email protected] это false. запустить тесты после реализации” |
| Проверьте изменения UI визуально | ”сделать панель управления лучше" | "[вставить скриншот] реализовать этот дизайн. сделать скриншот результата и сравнить его с оригиналом. перечислить различия и исправить их” |
| Решайте коренные причины, а не симптомы | ”сборка не работает" | "сборка не работает с этой ошибкой: [вставить ошибку]. исправить и проверить, что сборка успешна. решить коренную причину, не подавлять ошибку” |
Сначала исследуйте, потом планируйте, потом кодируйте
Позволение Claude сразу перейти к кодированию может привести к коду, который решает неправильную проблему. Используйте Plan Mode для отделения исследования от выполнения. Рекомендуемый рабочий процесс имеет четыре фазы:Исследуйте
Войдите в Plan Mode. Claude читает файлы и отвечает на вопросы без внесения изменений.
claude (Plan Mode)
Планируйте
Попросите Claude создать подробный план реализации.Нажмите
claude (Plan Mode)
Ctrl+G, чтобы открыть план в вашем текстовом редакторе для прямого редактирования перед тем, как Claude продолжит.Реализуйте
Переключитесь обратно в Normal Mode и позвольте Claude кодировать, проверяя против его плана.
claude (Normal Mode)
Plan Mode полезен, но также добавляет накладные расходы.Для задач, где область видимости ясна и исправление небольшое (например, исправление опечатки, добавление строки логирования или переименование переменной), попросите Claude сделать это напрямую.Планирование наиболее полезно, когда вы не уверены в подходе, когда изменение модифицирует несколько файлов или когда вы не знакомы с кодом, который модифицируется. Если вы можете описать diff в одном предложении, пропустите план.
Предоставьте конкретный контекст в ваших подсказках
Claude может вывести намерение, но не может читать ваши мысли. Ссылайтесь на конкретные файлы, упоминайте ограничения и указывайте на примеры паттернов.| Стратегия | До | После |
|---|---|---|
| Определите область задачи. Укажите, какой файл, какой сценарий и предпочтения тестирования. | ”добавить тесты для foo.py" | "написать тест для foo.py, охватывающий граничный случай, когда пользователь вышел из системы. избегать мокирования.” |
| Укажите источники. Направьте Claude к источнику, который может ответить на вопрос. | ”почему ExecutionFactory имеет такой странный api?" | "посмотреть через историю git ExecutionFactory и суммировать, как его api пришёл к этому” |
| Ссылайтесь на существующие паттерны. Укажите Claude на паттерны в вашей кодовой базе. | ”добавить виджет календаря" | "посмотреть, как существующие виджеты реализованы на домашней странице, чтобы понять паттерны. HotDogWidget.php — хороший пример. следовать паттерну для реализации нового виджета календаря, который позволяет пользователю выбрать месяц и переходить вперёд/назад для выбора года. строить с нуля без библиотек, кроме уже используемых в кодовой базе.” |
| Опишите симптом. Предоставьте симптом, вероятное местоположение и то, как выглядит «исправленное». | “исправить ошибку входа" | "пользователи сообщают, что вход не работает после истечения сеанса. проверить поток аутентификации в src/auth/, особенно обновление токена. написать тест, который не проходит и воспроизводит проблему, затем исправить её” |
"что бы вы улучшили в этом файле?" может выявить вещи, о которых вы не подумали бы спросить.
Предоставьте богатый контент
Вы можете предоставить богатые данные Claude несколькими способами:- Ссылайтесь на файлы с
@вместо описания того, где находится код. Claude читает файл перед ответом. - Вставляйте изображения напрямую. Скопируйте/вставьте или перетащите изображения в подсказку.
- Дайте URL-адреса для документации и справочников API. Используйте
/permissionsдля добавления в белый список часто используемых доменов. - Передавайте данные путём запуска
cat error.log | claudeдля отправки содержимого файла напрямую. - Позвольте Claude получить то, что ему нужно. Скажите Claude вытащить контекст самостоятельно, используя команды Bash, MCP tools или читая файлы.
Настройте ваше окружение
Несколько шагов настройки делают Claude Code значительно более эффективным во всех ваших сеансах. Для полного обзора функций расширения и когда использовать каждую, см. Extend Claude Code.Напишите эффективный CLAUDE.md
CLAUDE.md — это специальный файл, который Claude читает в начале каждого разговора. Включите команды Bash, стиль кода и правила рабочего процесса. Это даёт Claude постоянный контекст, который он не может вывести только из кода. Команда/init анализирует вашу кодовую базу для обнаружения систем сборки, фреймворков тестирования и паттернов кода, давая вам прочную основу для уточнения.
Нет требуемого формата для файлов CLAUDE.md, но держите его коротким и удобочитаемым. Например:
CLAUDE.md
| ✅ Включите | ❌ Исключите |
|---|---|
| Команды Bash, которые Claude не может угадать | Всё, что Claude может понять, прочитав код |
| Правила стиля кода, которые отличаются от стандартов | Стандартные соглашения языка, которые Claude уже знает |
| Инструкции по тестированию и предпочитаемые тестовые бегуны | Подробная документация API (вместо этого ссылайтесь на документы) |
| Этикет репозитория (именование ветвей, соглашения PR) | Информация, которая часто меняется |
| Архитектурные решения, специфичные для вашего проекта | Длинные объяснения или учебники |
| Особенности окружения разработчика (требуемые переменные окружения) | Описания файл-за-файлом кодовой базы |
| Общие подводные камни или неочевидные поведения | Самоочевидные практики вроде “писать чистый код” |
@path/to/import:
CLAUDE.md
- Домашняя папка (
~/.claude/CLAUDE.md): применяется ко всем сеансам Claude - Корень проекта (
./CLAUDE.md): зафиксировать в git для совместного использования с вашей командой - Родительские директории: полезно для монорепозиториев, где оба
root/CLAUDE.mdиroot/foo/CLAUDE.mdавтоматически подтягиваются - Дочерние директории: Claude подтягивает дочерние файлы CLAUDE.md по требованию при работе с файлами в этих директориях
Настройте разрешения
По умолчанию Claude Code запрашивает разрешение для действий, которые могут модифицировать вашу систему: записи файлов, команды Bash, MCP tools и т.д. Это безопасно, но утомительно. После десятого одобрения вы не совсем проверяете, вы просто кликаете. Есть три способа снизить эти прерывания:- Auto mode: отдельная модель-классификатор проверяет команды и блокирует только то, что выглядит рискованно: расширение области, неизвестная инфраструктура или действия, вызванные враждебным контентом. Лучше всего, когда вы доверяете общему направлению задачи, но не хотите кликать через каждый шаг
- Белые списки разрешений: разрешить конкретные инструменты, которые вы знаете, что безопасны, например
npm run lintилиgit commit - Sandboxing: включить изоляцию на уровне ОС, которая ограничивает доступ к файловой системе и сети, позволяя Claude работать более свободно в определённых границах
Используйте CLI tools
CLI tools — это наиболее контекстно-эффективный способ взаимодействия с внешними сервисами. Если вы используете GitHub, установите CLIgh. Claude знает, как его использовать для создания issues, открытия pull requests и чтения комментариев. Без gh, Claude всё ещё может использовать GitHub API, но неаутентифицированные запросы часто попадают на ограничения по частоте.
Claude также эффективен в изучении CLI tools, которые он не знает. Попробуйте подсказки вроде Use 'foo-cli-tool --help' to learn about foo tool, then use it to solve A, B, C.
Подключите MCP servers
С MCP servers, вы можете попросить Claude реализовать функции из трекеров issues, запросить базы данных, анализировать данные мониторинга, интегрировать дизайны из Figma и автоматизировать рабочие процессы.Установите hooks
Hooks запускают скрипты автоматически в определённых точках рабочего процесса Claude. В отличие от инструкций CLAUDE.md, которые являются рекомендательными, hooks являются детерминированными и гарантируют, что действие происходит. Claude может писать hooks для вас. Попробуйте подсказки вроде “Write a hook that runs eslint after every file edit” или “Write a hook that blocks writes to the migrations folder.” Отредактируйте.claude/settings.json напрямую для конфигурации hooks вручную, и запустите /hooks для просмотра того, что настроено.
Создайте skills
Skills расширяют знания Claude информацией, специфичной для вашего проекта, команды или домена. Claude применяет их автоматически, когда они актуальны, или вы можете вызвать их напрямую с помощью/skill-name.
Создайте skill, добавив директорию с SKILL.md в .claude/skills/:
.claude/skills/api-conventions/SKILL.md
.claude/skills/fix-issue/SKILL.md
/fix-issue 1234 для вызова. Используйте disable-model-invocation: true для рабочих процессов с побочными эффектами, которые вы хотите запустить вручную.
Создайте пользовательские subagents
Subagents запускаются в своём собственном контексте с собственным набором разрешённых инструментов. Они полезны для задач, которые читают много файлов или нуждаются в специализированном внимании без загромождения вашего основного разговора..claude/agents/security-reviewer.md
Установите plugins
Plugins объединяют skills, hooks, subagents и MCP servers в единый устанавливаемый модуль из сообщества и Anthropic. Если вы работаете с типизированным языком, установите code intelligence plugin для предоставления Claude точной навигации по символам и автоматического обнаружения ошибок после редактирования. Для руководства по выбору между skills, subagents, hooks и MCP, см. Extend Claude Code.Общайтесь эффективно
Способ, которым вы общаетесь с Claude Code, значительно влияет на качество результатов.Задавайте вопросы о кодовой базе
При адаптации к новой кодовой базе используйте Claude Code для обучения и исследования. Вы можете задавать Claude те же вопросы, которые задали бы другому инженеру:- Как работает логирование?
- Как мне создать новую конечную точку API?
- Что делает
async move { ... }на строке 134 файлаfoo.rs? - Какие граничные случаи обрабатывает
CustomerOnboardingFlowImpl? - Почему этот код вызывает
foo()вместоbar()на строке 333?
Позвольте Claude взять интервью у вас
Claude задаёт вопросы о вещах, которые вы, возможно, не рассмотрели, включая техническую реализацию, UI/UX, граничные случаи и компромиссы.Управляйте вашим сеансом
Разговоры являются постоянными и обратимыми. Используйте это в своих интересах!Исправляйте курс рано и часто
Лучшие результаты получаются из плотных циклов обратной связи. Хотя Claude иногда решает проблемы идеально с первой попытки, быстрое исправление обычно даёт лучшие решения быстрее.Esc: остановите Claude в середине действия клавишейEsc. Контекст сохраняется, поэтому вы можете перенаправить.Esc + Escили/rewind: нажмитеEscдважды или запустите/rewindдля открытия меню перемотки и восстановления предыдущего разговора и состояния кода, или суммируйте из выбранного сообщения."Undo that": попросите Claude отменить его изменения./clear: сбросить контекст между несвязанными задачами. Длинные сеансы с нерелевантным контекстом могут снизить производительность.
/clear и начните заново с более конкретной подсказкой, которая включает то, что вы узнали. Чистый сеанс с лучшей подсказкой почти всегда превосходит длинный сеанс с накопленными исправлениями.
Управляйте контекстом агрессивно
Claude Code автоматически компактирует историю разговора, когда вы приближаетесь к ограничениям контекста, что сохраняет важный код и решения, освобождая место. Во время длинных сеансов контекстное окно Claude может заполниться нерелевантным разговором, содержимым файлов и командами. Это может снизить производительность и иногда отвлечь Claude.- Используйте
/clearчасто между задачами для полного сброса контекстного окна - Когда автоматическое компактирование срабатывает, Claude суммирует то, что имеет значение, включая паттерны кода, состояния файлов и ключевые решения
- Для большего контроля запустите
/compact <instructions>, например/compact Focus on the API changes - Для компактирования только части разговора используйте
Esc + Escили/rewind, выберите контрольную точку сообщения и выберите Summarize from here. Это сжимает сообщения с этой точки вперёд, сохраняя более ранний контекст нетронутым. - Настройте поведение компактирования в CLAUDE.md с инструкциями вроде
"When compacting, always preserve the full list of modified files and any test commands"для обеспечения того, что критический контекст выживает при суммировании - Для быстрых вопросов, которые не нужно оставлять в контексте, используйте
/btw. Ответ появляется в отклоняемом оверлее и никогда не входит в историю разговора, поэтому вы можете проверить деталь без увеличения контекста.
Используйте subagents для исследования
Поскольку контекст — это ваше фундаментальное ограничение, subagents — один из самых мощных доступных инструментов. Когда Claude исследует кодовую базу, он читает много файлов, все из которых потребляют ваш контекст. Subagents запускаются в отдельных контекстных окнах и сообщают обратно суммарные данные:Перемотайте с контрольными точками
Claude автоматически создаёт контрольные точки перед изменениями. Дважды нажмитеEscape или запустите /rewind для открытия меню перемотки. Вы можете восстановить только разговор, восстановить только код, восстановить оба или суммировать из выбранного сообщения. См. Checkpointing для деталей.
Вместо тщательного планирования каждого хода, вы можете сказать Claude попробовать что-то рискованное. Если это не сработает, перемотайте и попробуйте другой подход. Контрольные точки сохраняются между сеансами, поэтому вы можете закрыть ваш терминал и всё ещё перемотать позже.
Возобновите разговоры
Claude Code сохраняет разговоры локально. Когда задача охватывает несколько сеансов, вам не нужно переобъяснять контекст:/rename для присвоения сеансам описательных имён, таких как "oauth-migration" или "debugging-memory-leak", чтобы вы могли найти их позже. Относитесь к сеансам как к ветвям: разные рабочие потоки могут иметь отдельные, постоянные контексты.
Автоматизируйте и масштабируйте
Как только вы эффективны с одним Claude, умножьте ваш выход с параллельными сеансами, неинтерактивным режимом и паттернами fan-out. Всё до сих пор предполагает одного человека, одного Claude и один разговор. Но Claude Code масштабируется горизонтально. Техники в этом разделе показывают, как вы можете сделать больше.Запустите неинтерактивный режим
Сclaude -p "your prompt", вы можете запустить Claude неинтерактивно, без сеанса. Неинтерактивный режим — это как вы интегрируете Claude в CI pipelines, pre-commit hooks или любой автоматизированный рабочий процесс. Форматы вывода позволяют вам анализировать результаты программно: простой текст, JSON или потоковый JSON.
Запустите несколько сеансов Claude
Есть три основных способа запуска параллельных сеансов:- Claude Code desktop app: Управляйте несколькими локальными сеансами визуально. Каждый сеанс получает свой собственный изолированный worktree.
- Claude Code on the web: Запустите на защищённой облачной инфраструктуре Anthropic в изолированных VMs.
- Agent teams: Автоматизированная координация нескольких сеансов с общими задачами, обмена сообщениями и лидера команды.
| Session A (Writer) | Session 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. |
Fan out через файлы
Для больших миграций или анализов, вы можете распределить работу через много параллельных вызовов Claude:Сгенерируйте список задач
Попросите Claude перечислить все файлы, которые нужно мигрировать (например,
list all 2,000 Python files that need migrating)--verbose для отладки во время разработки и отключите его в production.
Запустите автономно с auto mode
Для непрерывного выполнения с проверками безопасности в фоне используйте auto mode. Модель-классификатор проверяет команды перед их запуском, блокируя расширение области, неизвестную инфраструктуру и действия, вызванные враждебным контентом, позволяя обычной работе продолжаться без подсказок.-p, auto mode прерывает работу, если классификатор повторно блокирует действия, поскольку нет пользователя для отката. См. when auto mode falls back для пороговых значений.
Избегайте общих паттернов отказа
Это общие ошибки. Их раннее распознавание экономит время:- Сеанс кухонной раковины. Вы начинаете с одной задачи, затем спрашиваете Claude что-то несвязанное, затем возвращаетесь к первой задаче. Контекст полон нерелевантной информации.
Исправление:
/clearмежду несвязанными задачами. - Исправление снова и снова. Claude делает что-то неправильно, вы исправляете, это всё ещё неправильно, вы исправляете снова. Контекст загромождён неудачными подходами.
Исправление: После двух неудачных исправлений,
/clearи напишите лучшую начальную подсказку, включающую то, что вы узнали. - Переопределённый CLAUDE.md. Если ваш CLAUDE.md слишком длинный, Claude игнорирует половину его, потому что важные правила теряются в шуме.
Исправление: Безжалостно обрезайте. Если Claude уже делает что-то правильно без инструкции, удалите это или преобразуйте в hook.
- Разрыв доверия-затем-проверки. Claude создаёт правдоподобно выглядящую реализацию, которая не обрабатывает граничные случаи.
Исправление: Всегда предоставляйте проверку (тесты, скрипты, скриншоты). Если вы не можете это проверить, не отправляйте это.
- Бесконечное исследование. Вы просите Claude “исследовать” что-то без определения области. Claude читает сотни файлов, заполняя контекст.
Исправление: Определите исследования узко или используйте subagents, чтобы исследование не потребляло ваш основной контекст.
Развивайте вашу интуицию
Паттерны в этом руководстве не высечены в камне. Они являются отправными точками, которые хорошо работают в целом, но могут быть не оптимальны для каждой ситуации. Иногда вы должны позволить контексту накапливаться, потому что вы глубоко в одной сложной проблеме и история ценна. Иногда вы должны пропустить планирование и позволить Claude понять это, потому что задача исследовательская. Иногда расплывчатая подсказка — это именно то, что нужно, потому что вы хотите увидеть, как Claude интерпретирует проблему перед её ограничением. Обратите внимание на то, что работает. Когда Claude создаёт отличный выход, заметьте, что вы сделали: структуру подсказки, контекст, который вы предоставили, режим, в котором вы были. Когда Claude борется, спросите почему. Был ли контекст слишком шумным? Подсказка слишком расплывчатой? Задача слишком большой для одного прохода? Со временем вы разовьёте интуицию, которую никакое руководство не может захватить. Вы будете знать, когда быть конкретным и когда быть открытым, когда планировать и когда исследовать, когда очищать контекст и когда позволить ему накапливаться.Связанные ресурсы
- How Claude Code works: агентивный цикл, инструменты и управление контекстом
- Extend Claude Code: skills, hooks, MCP, subagents и plugins
- Common workflows: пошаговые рецепты для отладки, тестирования, PRs и многого другого
- CLAUDE.md: сохранять соглашения проекта и постоянный контекст