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

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

В этом посте описаны общие шаблоны, которые оказались эффективными как для внутренних команд Anthropic, так и для внешних инженеров, использующих Claude Code в различных кодовых базах, языках и средах. Ничто из этого списка не является догмой или универсальным решением; воспринимайте эти рекомендации как отправную точку. Экспериментируйте и находите то, что работает для вас!

Для более подробной информации смотрите нашу документацию на claude.ai/code — там описаны все функции, упомянутые в этом посте, а также приведены дополнительные примеры, детали реализации и продвинутые техники.


1. Настройте своё окружение

Claude Code — агентный помощник, который автоматически подгружает контекст в подсказки. Этот сбор контекста занимает время и расходует токены, но вы можете оптимизировать его с помощью настройки окружения.

a. Создавайте файлы CLAUDE.md

CLAUDE.md — специальный файл, который Claude автоматически подтягивает в контекст при запуске диалога. Это идеальное место для документации:

  • Часто используемых bash-команд
  • Основных файлов и утилит
  • Стандарта оформления кода
  • Инструкций по тестированию
  • Этикета работы с репозиторием (например, правила именования веток, merge vs rebase и т.д.)
  • Настроек окружения разработчика (например, pyenv, используемые компиляторы)
  • Неожиданных особенностей или предупреждений, связанных с проектом
  • Другой информации, которую вы хотите, чтобы Claude запомнил

Формат CLAUDE.md не регламентирован, главное — краткость и читаемость. Пример:

# Bash-команды
- npm run build: Сборка проекта
- npm run typecheck: Проверка типов

# Стиль кода
- Использовать синтаксис ES modules (import/export), а не CommonJS (require)
- Деструктурировать импорты, когда возможно (например, import { foo } from 'bar')

# Рабочий процесс
- Проверяйте типы после серии изменений
- Для производительности запускайте отдельные тесты, а не весь набор

Расположить CLAUDE.md можно:

  • В корне репозитория или там, где вы запускаете claude (самый частый вариант). Файл желательно добавить в git для совместного использования.
  • В любом родительском каталоге относительно рабочей папки — удобно для монорепозиториев.
  • В любом дочернем каталоге — Claude подтянет файл по мере необходимости.
  • В домашней папке пользователя (~/.claude/CLAUDE.md) — применяется ко всем сессиям.

При запуске команды /init Claude автоматически создаст CLAUDE.md.

b. Улучшайте ваши CLAUDE.md

CLAUDE.md становится частью подсказок Claude, поэтому его стоит периодически улучшать, как и любой часто используемый prompt. Не стоит просто накапливать информацию — экспериментируйте, чтобы понять, какие формулировки лучше всего работают.

Добавлять контент можно вручную или нажатием # — Claude автоматически включит инструкцию в соответствующий CLAUDE.md. Многие инженеры регулярно используют # для документирования команд, файлов и стиля, а затем коммитят изменения CLAUDE.md для пользы всей команды.

В Anthropic мы иногда прогоняем CLAUDE.md через улучшатель подсказок и усиливаем инструкции (например, добавляя “ВАЖНО” или “ОБЯЗАТЕЛЬНО”), чтобы повысить точность следования рекомендациям.

c. Настройте список разрешённых инструментов

По умолчанию Claude Code запрашивает разрешение на любые действия, которые могут изменить вашу систему: запись файлов, выполнение bash-команд, использование MCP-инструментов и т.д. Это сделано для безопасности. Вы можете настраивать allowlist — разрешать дополнительные инструменты, которые считаете безопасными, или потенциально опасные, если их легко отменить (например, редактирование файлов, git commit).

Управлять списком разрешённых инструментов можно четырьмя способами:

  • Выбрать “Всегда разрешать” при запросе в сессии.
  • Использовать команду /allowed-tools после запуска Claude Code для добавления/удаления инструментов.
  • Редактировать вручную .claude/settings.json или ~/.claude.json (лучше первый вариант добавить в git).
  • Использовать флаг –allowedTools для сессий.

d. Если используете GitHub — установите gh CLI

Claude умеет использовать gh CLI для работы с GitHub: создание задач, пулл-реквестов, чтение комментариев и другое. Без gh Claude может использовать GitHub API или MCP-сервер, если они установлены.


2. Дайте Claude больше инструментов

Claude имеет доступ к вашему shell-окружению, где вы можете создавать наборы скриптов и функций для него, как и для себя. Также он может использовать более сложные инструменты через MCP и REST API.

a. Используйте Claude с bash-инструментами

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

  • Назовите инструмент и приведите пример использования
  • Попросите Claude выполнить –help для просмотра документации
  • Документируйте часто используемые инструменты в CLAUDE.md

b. Используйте Claude с MCP

Claude Code работает как MCP-сервер и клиент. Как клиент, он может подключаться к нескольким MCP-серверам тремя способами:

  • В конфиге проекта (доступно при запуске Claude Code в этой папке)
  • В глобальном конфиге (доступно во всех проектах)
  • В файле, добавленном в git (доступно всем в кодовой базе)

Например, можно добавить Puppeteer и Sentry-серверы в .mcp.json, чтобы все инженеры могли сразу их использовать. Для отладки удобно запускать Claude с флагом –mcp-debug.

c. Используйте кастомные слэш-команды

Для повторяющихся сценариев (отладка, анализ логов и т.д.) храните шаблоны подсказок в Markdown-файлах в папке .claude/commands. Они становятся доступны через меню слэш-команд (при вводе /). Эти команды можно добавить в git для всей команды.

В шаблонах можно использовать специальное слово $ARGUMENTS для передачи параметров.

Пример команды для автоматического исправления GitHub-issue:

Пожалуйста, проанализируй и исправь GitHub-issue: $ARGUMENTS.

Выполни следующие шаги:
1. Используй `gh issue view` для получения деталей задачи
2. Разберись в проблеме
3. Найди релевантные файлы в кодовой базе
4. Внеси необходимые изменения
5. Напиши и запусти тесты
6. Проверь, что код проходит линтер и типизацию
7. Создай информативный commit message
8. Запушь изменения и создай PR

Используй GitHub CLI (`gh`) для всех задач, связанных с GitHub.

Поместите этот текст в .claude/commands/fix-github-issue.md — команда станет доступна как /project:fix-github-issue. Например, /project:fix-github-issue 1234 — Claude исправит задачу #1234. Личные команды можно добавить в ~/.claude/commands.


3. Попробуйте распространённые рабочие процессы

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

a. Исследуй, планируй, пиши код, коммить

Универсальный сценарий:

  • Попросите Claude прочитать нужные файлы, изображения или URL (общо или поимённо), но явно запретите писать код на этом этапе.
  • Попросите Claude составить план решения задачи. Используйте слово “think” для активации режима продуманного анализа (“think” < "think hard" < "think harder" < "ultrathink" — увеличивает бюджет размышлений).
  • Если план устраивает, попросите Claude оформить его в документ или GitHub-issue.
  • Попросите реализовать решение в коде, при необходимости — с проверкой разумности каждого шага.
  • Попросите закоммитить результат и создать PR, обновить README или changelog.

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

b. Пиши тесты, коммить; пиши код, итерации, коммить

Любимый сценарий Anthropic для изменений, легко проверяемых тестами. TDD становится ещё мощнее с агентным кодированием:

  • Попросите Claude написать тесты по ожидаемым входам/выходам, явно указав, что это TDD, чтобы избежать мок-реализаций.
  • Запустите тесты и убедитесь, что они падают (без реализации).
  • Закоммитьте тесты.
  • Попросите написать код, проходящий тесты, не меняя их. Повторяйте до успеха.
  • Можно попросить независимого “субагента” проверить, не переобучился ли код на тестах.
  • Когда результат устраивает — коммит.

Claude лучше всего работает, когда есть чёткая цель для итераций (тест, макет и т.д.).

c. Пиши код, делай скриншоты, итерации

Похожий подход для визуальных задач:

  • Дайте Claude возможность делать скриншоты (через Puppeteer MCP, iOS-симулятор или вручную).
  • Дайте визуальный макет (картинку или путь к файлу).
  • Попросите реализовать дизайн, делать скриншоты результата и итеративно улучшать до совпадения с макетом.
  • Когда довольны — коммит.

Итерации обычно заметно улучшают результат.

d. Безопасный YOLO-режим

Можно использовать claude –dangerously-skip-permissions, чтобы отключить все проверки разрешений и дать Claude работать без остановки — удобно для исправления lint-ошибок или генерации шаблонного кода.

Это рискованно (возможна потеря данных, повреждение системы, утечка информации), поэтому используйте только в изолированном контейнере без доступа в интернет.

e. Q&A по кодовой базе

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

  • Как устроен логгинг?
  • Как добавить новый API-эндпоинт?
  • Что делает async move { … } на 134-й строке foo.rs?
  • Какие крайние случаи обрабатывает CustomerOnboardingFlowImpl?
  • Почему на 333-й строке вызывается foo(), а не bar()?
  • Каков аналог 334-й строки baz.py на Java?

В Anthropic это основной способ онбординга новых инженеров.

f. Работа с git

Claude может выполнять большинство git-операций, например:

  • Поиск: “Какие изменения вошли в v1.2.3?”, “Кто владеет этой фичей?”, “Почему API реализован так?”
  • Написание commit-сообщений
  • Сложные операции: откат файлов, разрешение конфликтов rebase, сравнение и перенос патчей

g. Работа с GitHub

Claude Code умеет:

  • Создавать pull request’ы (понимает “pr” и сам формирует commit-сообщения)
  • Исправлять комментарии к PR одним действием
  • Исправлять падающие сборки или lint-ошибки
  • Категоризировать и сортировать открытые задачи

h. Работа с Jupyter notebook

Исследователи и дата-сайентисты используют Claude Code для чтения и написания Jupyter notebook. Claude понимает выводы, включая изображения, что ускоряет анализ данных. Рекомендуем держать Claude Code и .ipynb открытыми рядом (например, в VS Code). Можно попросить Claude привести ноутбук или визуализации к “эстетически приятному” виду.


4. Оптимизируйте рабочий процесс

Эти советы подходят для всех сценариев:

a. Будьте конкретны в инструкциях

Чем конкретнее задача, тем выше успех. Примеры:

Плохо Хорошо
add tests for foo.py write a new test case for foo.py, covering the edge case where the user is logged out. avoid mocks
why does ExecutionFactory have such a weird api? look through ExecutionFactory’s git history and summarize how its api came to be
add a calendar widget look at how existing widgets are implemented on the home page to understand the patterns and specifically how code and interfaces are separated out. HotDogWidget.php is a good example to start with. then, follow the pattern to implement a new calendar widget that lets the user select a month and paginate forwards/backwards to pick a year. Build from scratch without libraries other than the ones already used in the rest of the codebase.

Claude может догадываться, но не читает мысли. Конкретика = лучшее совпадение с ожиданиями.

b. Добавляйте изображения

Claude отлично работает с изображениями и диаграммами:

  • Вставляйте скриншоты (на Mac: cmd+ctrl+shift+4, затем ctrl+v)
  • Перетаскивайте изображения в окно ввода
  • Указывайте пути к файлам

Особенно полезно для UI-разработки и анализа графиков.

c. Упоминайте файлы, с которыми работаете

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

d. Добавляйте URL

Вставляйте URL вместе с подсказками — Claude сам скачает и прочитает их. Чтобы не подтверждать доступ к одним и тем же доменам, добавьте их в allowlist через /allowed-tools.

e. Корректируйте курс на ранних этапах

Хотя режим авто-принятия (shift+tab) позволяет Claude работать автономно, обычно лучше активно участвовать и корректировать подход. Можно:

  • Попросить Claude составить план перед кодингом
  • Прервать выполнение клавишей Escape, чтобы скорректировать инструкции
  • Двойной Escape — вернуться к предыдущему prompt и попробовать другой путь
  • Попросить Claude отменить изменения

В большинстве случаев активное участие ускоряет получение хорошего результата.

f. Используйте /clear для очистки контекста

В длинных сессиях контекст может засоряться. Часто используйте /clear между задачами.

g. Используйте чек-листы и черновики для сложных задач

Для крупных задач (миграции, исправление множества lint-ошибок, сложные сборки) эффективнее вести Markdown-чеклист или GitHub-issue как рабочий черновик:

  • Попросите Claude запустить линтер и записать все ошибки в Markdown-чеклист
  • Инструктируйте поочерёдно исправлять и отмечать выполненное

h. Передавайте данные Claude

Способы передачи данных:

  • Копировать и вставить прямо в prompt
  • Передать через pipe (например, cat foo.txt | claude) — удобно для логов, CSV и больших данных
  • Попросить Claude получить данные через bash-команды, MCP или слэш-команды
  • Попросить прочитать файлы или скачать URL (работает и для изображений)

Обычно используется комбинация этих способов.


5. Используйте headless-режим для автоматизации

Claude Code поддерживает headless-режим для неинтерактивных задач (CI, pre-commit хуки, скрипты сборки и автоматизация). Используйте флаг -p с подсказкой для headless-режима, а –output-format stream-json — для потокового вывода в JSON.

Headless-режим не сохраняет состояние между сессиями — запускать нужно каждый раз.

a. Используйте Claude для triage задач

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

b. Используйте Claude как линтер

Claude Code может делать субъективный code review — находить опечатки, устаревшие комментарии, неудачные имена переменных и др., что не всегда доступно обычным линтерам.


6. Повышайте эффективность с мульти-Claude сценариями

Некоторые из самых мощных сценариев — параллельное использование нескольких экземпляров Claude:

a. Один Claude пишет код, другой проверяет

Простой, но эффективный подход: один Claude пишет код, другой — ревьюит или тестирует. Иногда полезно разделять контекст:

  • Один Claude пишет код
  • Запустите второй Claude (или очистите контекст через /clear) для ревью
  • Третий Claude может читать код и фидбек, и вносить правки

Аналогично можно разделять написание тестов и кода.

b. Несколько копий репозитория

Вместо ожидания завершения каждого шага можно:

  • Создать 3-4 git-копии в отдельных папках
  • Открыть каждую в отдельной вкладке терминала
  • Запустить Claude в каждой с разными задачами
  • Переключаться между вкладками для контроля прогресса

c. Используйте git worktree

Лёгкая альтернатива нескольким копиям: git worktree позволяет чек-аутить несколько веток в отдельные папки, каждая со своим рабочим каталогом, но общей историей git. Это позволяет запускать несколько сессий Claude параллельно на разных частях проекта.

  • Создайте worktree: git worktree add ../project-feature-a feature-a
  • Запустите Claude: cd ../project-feature-a && claude
  • Повторяйте для других задач

Советы:

  • Используйте единообразные имена
  • Одна вкладка терминала на worktree
  • В iTerm2 можно настроить уведомления
  • Используйте отдельные окна IDE
  • После завершения — удалите worktree: git worktree remove ../project-feature-a

d. Headless-режим с кастомным скриптом

claude -p (headless) позволяет интегрировать Claude Code в большие пайплайны с использованием его инструментов и системных подсказок. Основные паттерны:

  1. Fan-out — массовые миграции или анализы (например, обработка тысяч файлов):

    • Пусть Claude напишет скрипт для генерации списка задач (например, 2000 файлов для миграции).
    • Запускайте Claude программно для каждой задачи с нужными инструментами.
    • Повторяйте скрипт и улучшайте prompt по необходимости.
  2. Пайплайнинг — интеграция Claude в существующие пайплайны обработки данных:

    • Запускайте claude -p “<ваш prompt>” –json | ваша_команда — JSON-вывод облегчает автоматическую обработку.

Для обоих сценариев полезен флаг –verbose для отладки (отключайте в продакшене).


Какие ваши советы и лучшие практики работы с Claude Code? Отмечайте @AnthropicAI, чтобы мы увидели, что вы создаёте!


Автор: Борис Черны. Вдохновлено опытом сообщества пользователей Claude Code и инженеров Anthropic, чьи идеи и практика помогли сформировать эти рекомендации.

Оригинальная статья: Claude Code Best Practices