
Это емкое содержание официального материала Anthropic Claude Code: Best practices for agentic coding (PDF)
Claude Code — инструмент командной строки от Anthropic для «agentic coding». Он дает инженерам и исследователям Anthropic нативный способ встроить Claude в их воркфлоу. Инструмент специально сделан низкоуровневым и не навязывает подходы, предоставляя почти прямой доступ к модели.
Кастомизация и настройка рабочего окружения
CLAUDE.MD
: персональная база знаний для ИИ-ассистента
Файлы CLAUDE.MD
автоматом подтягиваются в контекст Claude Code, описывая специфику проекта.
В них можно указать:
Часто используемые bash-команды, например:
# Bash commands\n- npm run build: Build the project
Ключевые файлы:
Core file: src/utils/auth.js - handles all authentication logic
Стилевые гайды:
# Code style\n- Use ES modules (import/export) syntax
Инструкции по тестированию
Правила работы с репозиторием (именование веток, merge vs. rebase)
Особенности настройки окружения (например, использование pyenv)
Файлы могут располагаться:
В корне репозитория:
CLAUDE.md
(командный) илиCLAUDE.local.md
(личный)В родительских/дочерних директориях (для монорепозиториев)
В домашней директории:
~/.claude/
CLAUDE.md
(глобальные настройки)
Команда /init
автоматически создаёт базовый файл.
Тюнинг CLAUDE.MD
для лучшей работы модели
Чтобы инструкции в CLAUDE.MD
работали лучше, их стоит дорабатывать итеративно, как и промпты.
Инженеры Anthropic советуют:
Не перегружать инструкции лишним
Проверять его влияние на поведение модели
При необходимости выделять важное ("IMPORTANT", "YOU MUST")
Использовать prompt improver при необходимости
Добавлять информацию вручную или клавишей
#
для автоматического включения
CLAUDE.MD
— динамичный инструмент промпт-инжиниринга, который требует внимания для эффективной работы с ИИ.
Контроль доступа для инструментов
Claude Code по умолчанию запрашивает разрешение на действия, меняющие систему. При этом он позволяет гибко настраивать список разрешённых инструментов.
Управлять разрешениями можно через:
Выбор "Always allow" при запросе
Команду
/allowed-tools
(например,Edit
для файлов,Bash(git commit:*)
для коммитов,mcp__puppeteer__puppeteer_navigate
для навигации Puppeteer)Ручное редактирование
settings.json
(для командной работы) или~/.claude.json
Флаг
-allowedTools
для сессионных разрешений
Интеграция с gh
CLI для эффективной работы с GitHub
Claude Code умеет использовать CLI gh
для работы с GitHub. Когда gh
CLI установлен, Claude может:
Создавать задачи (issues)
Открывать пул-реквесты (PR)
Читать комментарии
Выполнять другие операции на GitHub
Без gh
он может использовать GitHub API или MCP-сервер.
Ключевые воркфлоу и паттерны использования
Цикл «исследуй → планируй → кодируй → коммить»: основной воркфлоу
Универсальный воркфлоу для многих задач, который заметно бустит продуктивность. Особенно при решении проблем, требующих глубокого анализа.
Как:
Исследование:
claude read src/feature_x/
main.py
and src/utils/
logger.py
. Do not write code yet.
Рекомендуется использовать субагентов для проверки деталей.Планирование:
claude think hard and create a plan to implement feature Y using the patterns in feature_X.
Слова "think", "think hard", "think harder", "ultrathink" выделяют ИИ дополнительный бюджет на обдумывание. План можно сохранить как документ.Кодирование:
claude now implement the plan. Verify your steps.
Завершение:
claude write a commit message for my changes and commit.
Также Claude может создать PR, обновить README/changelog.
Тест-ориентированная разработка (TDD) с ИИ: новый уровень
TDD с Claude Code: ИИ сначала пишет тесты, потом код под них.
Как:
Claude пишет тесты на основе ожидаемых пар «вход/выход»:
claude write tests for our new email validation function. This is TDD, so don't implement the function yet. The tests should verify that valid emails pass and invalid ones fail.
Тесты запускаются:
claude run the tests to confirm they fail
Тесты коммитятся:
claude commit the tests with message "Add email validation tests"
Claude пишет код, проходящий тесты:
claude implement the email validation function to make all tests pass. Do not modify the tests.
На этом этапе может быть полезно попросить Claude проверить с помощью независимых субагентов, что реализация не переобучена под тесты (overfitting).
Код коммитится:
claude commit the implementation with message "Implement email validation"
Итеративная разработка с визуальной обратной связью
Claude Code может итеративно пилить UI, ориентируясь на визуалы (макеты).
Как:
Дать Claude возможность делать скриншоты через Puppeteer MCP, iOS simulator MCP или вручную
Предоставить визуальный макет (изображение через copy/paste, drag-drop или путь к файлу)
Claude реализует дизайн:
claude implement this design in HTML and CSS. Follow our project's style conventions.
Делает скриншоты:
claude take a screenshot of the current implementation
Итерирует до совпадения с макетом:
claude the button positioning is off. Move it 10px to the right and center it vertically.
Режим «Safe YOLO»: скорость в обмен на контролируемый риск
Использование флага claude --dangerously-skip-permissions
для обхода всех проверок разрешений. Это позволяет Claude работать непрерывно.
Подходит для:
Исправления ошибок линтера
Генерации шаблонного кода
Быстрого прототипирования
Важно: этот режим рискован и может привести к потере данных. Для снижения рисков рекомендуется использовать его в изолированном контейнере без доступа в интернет.
Claude Code как инструмент онбординга и исследования кодовой базы
Claude Code круто помогает въезжать в новые кодовые базы. Он отвечает на вопросы, которые обычно задают коллегам.
Примеры вопросов:
«Как работает логирование в этом проекте?»
«Как создать новую API-точку?»
«Что делает
async move { ... }
в строке X файла Y?»«Какие пограничные случаи обрабатывает
CustomerOnboardingFlowImpl
?»
Claude сам ищет ответы в коде и объясняет их простым языком.
Автоматизация работы с Git и GitHub
Claude Code может выполнять большинство операций с Git и GitHub, автоматизируя рутину.
Git:
Поиск по истории:
claude what changes were included in v1.2.3?
Написание сообщений коммитов:
claude write a commit message for my current changes
Разрешение конфликтов:
claude resolve the merge conflicts in user_service.js
Отмена изменений:
claude reset the changes to config.json but keep the changes to
README.md
GitHub:
Создание PR:
claude pr
илиclaude create a pull request for my current branch
Исправление комментариев код-ревью:
claude fix the comments on PR #123 and push
Устранение ошибок сборки:
claude fix the CI failures in PR #456
Примечательно: инженеры Anthropic используют Claude для более чем 90% своих операций с Git.
Работа с Jupyter Notebooks: анализ и визуализация
Claude Code используется исследователями Anthropic для чтения и записи Jupyter notebooks.
Claude может:
Интерпретировать выводы, включая изображения
Улучшать визуализации:
claude make this matplotlib chart more aesthetically pleasing
Объяснять результаты:
claude explain what's happening in the anomaly at timestamp 1500 in the notebook output
Предлагать следующие шаги анализа:
claude based on these results, what should we explore next?
Рекомендуемый подход: Claude Code и .ipynb
файл открыты рядом в VS Code.
Интеграция с тулами для расширения возможностей
Использование пользовательских bash-инструментов
Claude Code подхватывает ваше bash-окружение, но о кастомных тулах ему нужно сообщить.
Рекомендации:
Объясните Claude имя инструмента с примерами:
claude we use a tool called "projectctl" for managing our deployments. Example: projectctl deploy --env staging
Посоветуйте запустить
-help
:claude run projectctl --help to see available commands
Задокументируйте инструменты в
CLAUDE.MD
:# Custom tools\n- projectctl: Deployment management tool
Добавляем фичи через MCP (Modular Capability Providers)
Claude Code может работать как MCP-сервер и клиент. Он подключается к другим MCP-серверам для доступа к их инструментам.
Подключение настраивается через:
Конфигурацию проекта
Глобальную конфигурацию
Файл
.mcp.json
в репозитории (например, для Puppeteer, Sentry)
Флаг -mcp-debug
помогает в отладке: claude -mcp-debug analyze the webpage at
example.com
Пользовательские slash-команды для повторяющихся задач
Для часто повторяемых процессов можно создавать шаблоны промптов в виде slash-команд.
Markdown-файлы с шаблонами хранятся в папках:
.claude/commands
(для командных)~/.claude/commands
(для личных)
Команды доступны через /
и могут использовать $ARGUMENTS
. Пример: /project:fix-github-issue 1234
для автоматического исправления GitHub issue.
Оптимизируем работу и управляем контекстом
Конкретность инструкций – ключ к успеху
Чем точнее и детальнее инструкции, тем лучше Claude Code справляется.
Примеры:
Плохо:
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
Плохо:
refactor this
Хорошо:
refactor this code to use the builder pattern approach. Keep the same functionality.
Claude может предполагать намерения, но не читать мысли. Конкретика даёт лучшие результаты.
Разные типы инпута: картинки и URL для большего контекста
Claude эффективно работает с изображениями и URL. Это обогащает его понимание задачи.
Изображения можно:
Вставлять (cmd+ctrl+shift+4 на macOS для скриншота в буфер, затем ctrl+v – примечание: не cmd+v)
Перетаскивать
Указывать путь к файлу:
claude analyze the design in ~/designs/homepage_v2.png
URL можно вставлять напрямую. Для часто используемых доменов можно использовать /allowed-tools
для добавления в allowlist.
Ранняя и частая коррекция курса для лучших результатов
Активная работа с Claude обычно дает лучший результат, чем если пустить его на самотек.
Как:
Запрашивать план перед кодированием:
claude outline your approach before writing any code
Нажимать
Escape
для прерывания (сохраняет контекст для перенаправления)Двойное нажатие
Escape
для возврата и редактирования предыдущего промптаИспользовать shift+tab для переключения auto-accept
Просить отменить изменения:
claude undo the last change
/clear
для фокусировки контекста
Команда /clear
сбрасывает окно контекста. Это особенно полезно в длительных сессиях.
Используйте её между задачами для удаления нерелевантной информации:
Переписки
Содержимого файлов
Вывода команд
Такой подход предотвращает снижение производительности из-за переполненного контекста.
Чек-листы и «черновики» для сложных задач
Для объёмных, многоэтапных задач рекомендуется использовать чек-листы.
Пример для исправления ошибок линтера:
claude run lint and put all errors into a checklist in checklist.md. Then, fix them one by one, checking them off.
Подходит для:
Миграций кода
Исправления множества ошибок
Рефакторинга крупных компонентов
Многоэтапных оптимизаций
Разные способы передачи данных в Claude
Существует несколько методов для предоставления данных Claude Code:
Копирование/вставка в промпт (самый частый)
Передача через pipe:
cat logs.txt | claude analyze these server logs and suggest optimizations
Чтение файлов:
claude read config.json and explain what each setting does
Чтение URL:
claude summarize the documentation at
https://docs.example.com/api
Извлечение через bash:
claude run grep -r "TODO" . | sort and organize these TODOs by priority
Автоматизация и масштабирование с Claude Code
Headless mode: для работы без UI (в скриптах, CI/CD)
Режим без интерфейса для неинтерактивных контекстов:
claude -p "Refactor all .js files in src/legacy to use async/await instead of promises. Output a list of changes." --output-format stream-json
Используется в:
CI/CD
Pre-commit хуках
Скриптах сборки
Автоматизации рабочих процессов
Флаг -output-format stream-json
для структурированного вывода в JSON.
Важно отметить: headless mode не сохраняется между сессиями; его необходимо активировать для каждой сессии заново.
Автоматический триаж задач с помощью headless mode
Headless mode можно использовать для автоматизации, запускаемой событиями GitHub.
Пример:
claude -p "Review this new issue and add appropriate labels: $ISSUE_BODY" --allowedTools Bash(gh issue edit:*)
Публичный репозиторий Claude Code использует этот механизм для проверки задач и присвоения меток.
Claude Code как продвинутый линтер
Claude Code делает субъективные код-ревью, которые видят больше, чем обычные линтеры:
Выявляет опечатки:
claude review this code for typos in comments and variable names
Находит устаревшие комментарии:
claude find outdated comments in the codebase
Проверяет согласованность именования:
claude review our API for naming consistency
Оценивает понятность кода:
claude review this function for readability and suggest improvements
Мульти-Claude: параллельная работа для повышения эффективности
Использование нескольких экземпляров Claude Code параллельно повышает общую продуктивность.
Ключевое преимущество такого подхода заключается в том, что разделение контекстов между разными экземплярами Claude часто даёт лучшие результаты, чем работа с одним экземпляром, так как каждый ИИ-ассистент может сфокусироваться на своей задаче без влияния истории предыдущих взаимодействий по другим задачам.
Как:
Один пишет, другой проверяет: C1 пишет код,
/clear
или C2 в другом терминале ревьюит. C3 читает код и фидбек, вносит правки.Один пишет тесты, другой код: C1 пишет тесты, C2 — код. Экземпляры могут «общаться» через общие «черновики» (scratchpads).
Несколько checkout'ов репозитория: 3-4 checkout'а в разных папках/терминалах.
Git worktrees:
git worktree add ../project-feature-a feature-a
Советы:
Используйте единообразное именование
Одна вкладка терминала на worktree
Настройте уведомления (например, в iTerm2)
Используйте отдельные окна IDE
Headless mode с кастомной «обвязкой»: распараллеливание и конвейеризация
Использование claude -p
для программной интеграции в более крупные рабочие процессы.
Распараллеливание (Fanning out):
Claude пишет скрипт для генерации списка задач:
claude create a script that outputs a list of all TypeScript files that need migration to new API
Цикл по задачам:
for file in $(cat files_to_migrate.txt); do
claude -p "migrate $file from old API to new API. When done, return OK or FAIL" --allowedTools Edit Bash(git commit:*)
done
Итеративная отладка промпта для повышения успешности
Конвейеризация (Pipelining):
claude -p "Extract all function names from this code" --json | jq '.output' | claude -p "Generate documentation for these functions"
Флаг -verbose
для отладки (рекомендуется отключать в production).
Краткое руководство
Начните с
CLAUDE.MD
:claude /init
Добавьте частые команды, стиль кода и ключевые файлы
Делитесь им с командой через Git
Конкретизируйте запросы:
claude write a new test case for auth.js, covering the case where the token is expired. Use jest and mock the API calls.
Используйте цикл «исследуй → планируй → кодируй»:
claude read src/feature_x/ main.py and src/utils/logger.py. Do not write code yet. claude think hard and create a plan to implement feature Y using the patterns in feature_X. claude now implement the plan. Verify your steps.
Автоматизируйте Git/GitHub:
claude write a commit message for my current changes. claude pr claude fix the comments on my PR #123 and push.
Дайте Claude «глаза» и «руки»:
/allowed-tools add Edit /allowed-tools add Bash(git commit:*) /allowed-tools add mcp__puppeteer__puppeteer_navigate
Управляйте контекстом:
/clear claude run lint and put all errors into a checklist in checklist.md. Then, fix them one by one, checking them off.
Для автоматизации – headless mode:
claude -p "Refactor all .js files in src/legacy to use async/await instead of promises. Output a list of changes." --output-format stream-json
Пробуйте multi-Claude для сложных задач:
В одном терминале:claude write tests for the new user registration flow.
В другом (после
/clear
или в новом worktree):claude review the tests in tests/user_registration_test.js. Then write code in src/user_controller.js to make all tests pass. Do not modify the tests.
Удачного вайбкодинга, господа!