
Это емкое содержание официального материала 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.pyand 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 toREADME.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 (Model Context Protocol)
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 forfoo.pyХорошо:
write a new test case forfoo.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 athttps://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.
Удачного вайбкодинга, господа!