Это емкое содержание официального материала 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 (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 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.
Удачного вайбкодинга, господа!
ссылка на оригинал статьи https://habr.com/ru/articles/909866/
Добавить комментарий