
Представь, ты пишешь Claude AI: «PAYMENT-4521, возьми описание из Jira, создай ветку и реализуй». Claude через MCP подтягивает задачу, читает описание, создаёт feature/PAYMENT-4521 и начинает писать код. Ты уходишь на обед, предварительно перекинув сессию в Claude.ai через /remote-control. Claude работает на твоей машине, а ты с телефона следишь за прогрессом и подтверждаешь действия при необходимости.
Готово: код написан, ревью пройдено субагентом, изменения запушены, PR открыт. К твоему возвращению уже есть комментарии. Ты просишь: «Посмотри, исправь по делу, ответь и переведи задачу в ревью». Claude всё делает сам: правит, пушит, отвечает и двигает тикет. А ты наливаешь кофе.
Привет! Меня зовут Рамиль, я программист отдела серверных решений ЮMoney. Я собрал полезные советы по claude code и организовал её в интерактивном формате «Айсберга». Это способ подачи материала от очевидного к малоизвестному. На верхушке — то, что знает каждый, кто хоть раз открывал Claude Code. Чем глубже — тем реже встречаются эти знания, и тем больше они меняют подход к работе.
Кому полезна статья: разработчикам и тимлидам, которые уже пробовали Claude Code или только рассматривают его. Все примеры практические — их можно скопировать и использовать в своём проекте прямо сейчас.
Что внутри:

Уровень 1: Верхушка айсберга
Это базовые возможности Claude Code, с которых начинает каждый. Если вы только установили инструмент, начните отсюда.
1.1. Задавайте вопросы и генерируйте код
Claude Code работает как чат прямо в терминале. Вы можете попросить его объяснить код, сгенерировать новый или переписать существующий. Не нужно копировать код в браузер — Claude видит ваш проект целиком. Ещё для ваших IDE активно появляются расширения.
Пример
> Объясни, что делает класс PaymentService > Напиши unit-тест для метода calculateTotal в OrderService
1.2. Команда /help — запустите хотя бы 1 раз
Команда /help выводит список всех доступных slash-команд и краткое описание каждой. Это первое, что стоит набрать, если вы не знаете, что умеет Claude Code. Используйте её как справочник, не нужно запоминать все команды наизусть.
1.3. Команда /clear — начните с чистого листа
Каждый новый диалог с Claude Code накапливает контекст предыдущих вопросов и ответов. Когда вы переключаетесь на другую задачу, старый контекст может мешать — Claude будет учитывать неактуальную информацию. Команда /clear сбрасывает историю диалога и освобождает контекстное окно. Подробнее о работе с контестом далее.
1.4. Синтаксис @file — укажите Claude на нужный файл
По умолчанию Claude Code видит весь проект, но не всегда понимает, какой именно файл вы имеете в виду. Синтаксис @file явно указывает на конкретный файл и подгружает его содержимое в контекст. Это особенно полезно, когда в проекте есть файлы с похожими именами или когда нужно сравнить два файла.
Пример
> Посмотри на @src/main/java/com/example/payment/PaymentService.java и найди потенциальные баги
1.5. Советы по формулировке запросов
Чем точнее запрос, тем лучше результат. Избегайте размытых формулировок вроде «сделай лучше» — вместо этого опишите, что именно нужно изменить и почему. Давайте примеры ожидаемого результата, указывайте ограничения и контекст задачи.
Хороший запрос
> Перепиши метод processPayment в PaymentService: > — используй паттерн Strategy вместо цепочки if-else > — каждую стратегию вынеси в отдельный класс > — добавь логирование через slf4j на уровне INFO при выборе стратегии
1.6. /remote-control — управление сессией через claude.ai
Команда /remote-control (алиас /rc) делает текущую сессию доступной для управления через веб-интерфейс claude.ai или мобильное приложение. Сессия продолжает работать в терминале, но вы можете отправлять команды с телефона или другого устройства.
Уровень 2: Ватерлиния
Эти приёмы известны многим разработчикам, но далеко не все используют их системно. Освоение этого уровня превращает Claude Code из «умного автодополнения» в полноценного напарника по разработке.
2.1. CLAUDE.md — инструкции для проекта
Файл CLAUDE.md — это способ дать Claude постоянный контекст о вашем проекте: стек технологий, принятые соглашения, команды сборки и тестирования, ключевые файлы и директории. Claude автоматически читает этот файл при запуске и учитывает его содержимое во всех последующих запросах. Существует три уровня файлов: пользовательский (~/.claude/CLAUDE.md) — для персональных предпочтений, проектный (./CLAUDE.md) — для командных соглашений, и локальный (CLAUDE.local.md) — для личных настроек в рамках проекта, не попадающих в систему контроля версий.
Если у вас несколько микросервисов с одинаковой структурой — создайте шаблонный
CLAUDE.mdи копируйте его в каждый проект или добавьте в персональный claude.md. В общем случае команда/initсгенерирует файл с основной информацией о работе с проектом на основе анализа кода.
Пример CLAUDE.md
# payment-service ## Стек - Java 21, Spring Boot 3, Gradle - PostgreSQL, Kafka - TestNG + AssertJ для тестов ## Команды - Сборка: `./gradlew build` - Все тесты: `./gradlew test` - Один тест: `./gradlew test --tests "com.example.PaymentServiceTest.should_process_payment"` ## Архитектура - REST-контроллеры в `controller/` - Бизнес-логика в `service/` - Миграции в `src/main/resources/db/migration/` ## Соглашения - Именование тестов: `should_действие_when_условие` - Checked exceptions не используем — только RuntimeException - Все публичные методы — с Javadoc
2.2. /compact — сжатие контекста (ручное сжатие с возможностью указания на чём сконцентрироваться)
В длительных сессиях контекстное окно Claude заполняется, и модель начинает «забывать» ранние сообщения — это известная проблема «lost in the middle». Если есть необходимость продолжать диалог, то не дожидаясь автосжатия (autocompact), рекомендуется использовать /compact {comment} с указанием, какую информацию сохранить.
Чтобы не прерывать работу вопросом об автосжатии, можно включить настройку:
claude config set autoCompact true.
2.3. /model — переключение модели на лету
Команда /model позволяет сменить модель прямо в середине сессии. У claude от модели зависит расход токенов, скорость и точность работы модели. Модели haiku, sonnet, opus.
/model opusplan— специальный режим, где Opus используется для планирования, а Sonnet — для выполнения.
2.4. Управление контекстом — ключевой навык
Контекстное окно — рабочая память Claude. В него входят: системный промпт, CLAUDE.md, история диалога, результаты инструментов и содержимое файлов. Когда окно заполняется, Claude начинает «забывать» ранние сообщения — это не баг, а фундаментальное ограничение модели.
Качество ответа можно выразить формулой:
качество = (корректность × полнота) / (объём × шум)
Это значит: неточная формулировка — хуже результат, больше лишней информации — хуже результат.
Умение управлять контекстом — то, что отличает продуктивную работу от хаотичной, поэтому:
Передавайте только нужное, например через
@fileИспользуйте
/clearпри смене задачи.После этапа планирования просите claude (opus) создать артефакт с подробным планом и отдавайте этот план исполнителю (sonnet) с чистым контекстом
2.5. --continue и --resume — возврат к предыдущим сессиям
Claude Code локально сохраняет все сессии на диск. Флаг --continue (или -c) загружает последнюю сессию в текущей директории, а --resume позволяет выбрать любую сессию по имени или ID.
Уровень 3: Под водой
Эти приёмы отделяют опытного пользователя Claude Code от новичка. Каждый из них экономит десятки минут на реальных задачах.
3.1. Субагенты и параллельная работа
Представь: нужно провести аудит безопасности 40 Java-классов перед релизом. Один поток — 40 файлов последовательно, час работы. С субагентами: Claude делит файлы на 8 групп по 5, запускает 8 агентов параллельно, каждый анализирует свою группу, главный агент собирает итоговый отчёт. Реальное время — 10 минут.
Важно: агенты одноразовые — выполняют один промпт и выключаются. Агенты можно соединять и собирать в некоторые цепочки, или вызывать один внутри другого. Агент задаётся с помощью .md файла.
Пример промпта для миграции тестов с субагентами
Мне нужно переписать все тесты с kotlin на java из @src/test/kotlin\ в @src/main/java\. Используй субагентов, деля работу по пакетам.
3.2. Пользовательские субагенты
Помимо встроенных, можно создавать пользовательских субагентов с явной специализацией.
Упрощенный пример: агент для код-ревью
Файл .claude/agents/reviewer.md:
--- name: reviewer description: Проводит код-ревью изменений tools: Read, Glob, Grep model: sonnet maxTurns: 10 --- Ты — опытный ревьюер Java-кода. Проанализируй изменения и выдай замечания по: - корректности логики - обработке ошибок - производительности - соответствию принятым конвенциям Не предлагай косметических изменений. Фокусируйся на реальных проблемах.
Claude будет автоматически делегировать задачи ревью этому субагенту, когда контекст подходит под описание.
Готовые субагенты можно найти в открытых каталогах:
3.3. Готовые расширения или свои — выбор за вами
Команды (.claude/commands/), агенты (.claude/agents/) и skills — это не только то, что вы пишете сами. Вокруг Claude Code сформировалась экосистема готовых наработок: каталоги агентов, наборы команд для типичных задач, коллекции скиллов. Стоит сначала поискать готовое решение, и только если не нашли — писать своё. Хорошие отправные точки: каталоги из секции про субагентов выше, GitHub-поиск по claude agents и claude commands.
3.4. /fork [name] — ветвление диалога
Команда /fork создаёт копию текущей сессии.
Представь: ты 20 сообщений отлаживал баг в авторизации. Claude понимает архитектуру, помнит зависимости. И тут видишь два варианта фикса: переписать middleware или поправить guard. Что сработает — пока не ясно. Раньше приходилось угадывать: промах — и весь контекст теряется. Теперь ты пишешь /fork, открываешь второй терминал, и у тебя два Claude с одинаковой историей, каждый пробует свой подход. Сработавший коммитишь.
Важно: форк дублирует разговор, а не файлы. Оба терминала работают в одной директории, поэтому если форк А поправил auth.service.ts, форк Б это сразу видит. Нужна полная изоляция? Используй git worktrees, тогда у каждого форка своя копия кода.
Типичный сценарий
> Реализуй сервис оплаты через Strategy-паттерн. ... Claude реализует ... > /fork via-chain Создана копия сессии «via-chain». Текущая сессия сохранена. > Теперь попробуй вариант через Chain of Responsibility. ... Claude реализует альтернативу в форке ... # Чтобы вернуться к исходной сессии: claude --resume Выберите исходную сессию из списка.
3.5. /rewind — откат к предыдущей точке
Команда /rewind (или /checkpoint, или двойной escape) откатывает диалог и файлы к любому предыдущему моменту сессии. Claude покажет список контрольных точек, и вы выберете, куда вернуться. Файловые изменения откатываются независимо от git — Claude отслеживает все правки, сделанные через собственные инструменты.
Пример использования
> /rewind *появляется история пользовательских вводов* 1. Начало сессии 2. Создай PaymentService такой-то 3. Напиши тесты. Обрати внимание > 4. Напиши реализацию через паттерн Strategy 5. ... Диалог и файлы откатываются к состоянию до шага 4.
/rewindотслеживает только изменения, сделанные через инструменты Claude. Если вы вручную выполняли команды в bash или редактировали файлы в IDE — эти изменения не будут откатаны.
3.6. /add-dir — работа с несколькими связанными директориями
По умолчанию Claude работает только с текущей директорией проекта. Команда /add-dir расширяет рабочую область, подключая дополнительные директории.
Типичные сценарии
Работа с общей библиотекой, от которой зависит проект.
Параллельное редактирование API-контракта и его реализации в разных репозиториях.
Сравнение реализаций в двух проектах.
Есть нерешённый баг https://github.com/anthropics/claude-code/issues/7412, что @files не индексирует файлы из новой директории.
Уровень 4: Глубины
Об этих возможностях знают немногие, но именно они превращают Claude Code в инструмент уровня команды.
4.1. Хуки — автоматические действия на события
Хуки (hooks) — это shell-команды, которые автоматически выполняются при определённых событиях Claude Code: после записи файла, перед коммитом, после выполнения команды.
Настраиваются через команду /hooks.
Типичные сценарии использования
Автоформатирование кода после каждого редактирования файла.
Автоматический запуск линтера после изменений.
Проверка git-ветки перед коммитом (запрет прямых коммитов в
master).
Представь: Claude написал код, который работает, но не соответствует вашему стайлгайду. Замечаешь на ревью, просишь исправить. Он исправляет, но через три файла снова оступается. С хуком PostToolUse этой проблемы нет: каждый сохранённый файл автоматически прогоняется через prettier. Claude физически не может сохранить неотформатированный код — петля обратной связи замкнута без твоего участия.
Пример: автоформатирование через Prettier после записи файла
{ "hooks": { "PostToolUse": [ { "matcher": "Write|Edit", "command": "npx prettier --write \"$CLAUDE_FILE_PATH\"" } ] } }
Пример: запрет коммитов в master
{ "hooks": { "PreToolUse": [ { "matcher": "Bash", "command": "if git branch --show-current | grep -q '^master$'; then echo 'BLOCK: прямые коммиты в master запрещены' && exit 1; fi" } ] } }
Пример: автозапуск тестов после изменения кода
{ "hooks": { "PostToolUse": [ { "matcher": "Edit|Write", "command": "bash -c 'FILE=\"$CLAUDE_FILE_PATH\"; if [[ \"$FILE\" == *.java ]] && [[ \"$FILE\" != *Test.java ]]; then ./gradlew test --tests \"$(basename ${FILE%.java})Test\" 2>&1 | tail -5; fi'" } ] } }
4.2. MCP-серверы — подключение внешних инструментов
MCP (Model Context Protocol) — открытый протокол, позволяющий подключать к ИИ-ассистенту внешние системы: трекеры задач, базы знаний, базы данных и произвольные API. По сути, MCP превращает Claude Code в хаб, через который можно взаимодействовать с любым инструментом, не покидая терминал.
Управление серверами — через команду /mcp. Конфиг в user/claude.json.
Что это даёт на практике
Jira — просматривать задачи, создавать тикеты, искать по JQL;
Confluence — искать по документации, читать страницы;
Bitbucket — смотреть PR и комментарии;
БД — выполнять SQL-запросы к dev/staging окружению;
Произвольные API — через кастомные MCP-серверы.
Пример сессии с подключённой Jira
> Найди все открытые баги в проекте PAYMENT с приоритетом Critical > Возьми описание задачи PAYMENT-4521 и реализуй по нему фикс
Claude выполнит всё это в рамках одной сессии, обращаясь к Jira через MCP автоматически.
Представь: пятница, 17:30, прод упал, в Sentry сотня ошибок NullPointerException. Раньше: открыть Sentry, скопировать стектрейс, открыть IDE, найти класс, вернуться в Claude, объяснить контекст. Сейчас: «Посмотри последние ошибки в Sentry по проекту payment-service, найди причину и предложи фикс». Claude сам заходит в Sentry, читает стектрейс, находит нужный код — и ты уже смотришь на готовый патч.
Если ты работаешь с несколькими ассистентами, не только с claude, то рассмотри установку mcp router.
4.2.1. Популярные MCP-серверы
Сервер | Возможности |
|---|---|
GitHub | Управление PR, issue, ревью кода, поиск по репозиторию. |
PostgreSQL / SQLite | SQL-запросы к базам данных прямо из диалога. |
Sentry | Анализ ошибок, поиск по стектрейсам, группировка инцидентов. |
Notion / Confluence | Поиск и чтение документации, баз знаний. |
Slack | Чтение каналов, отправка сообщений, поиск по истории. |
Filesystem | Расширенные файловые операции за пределами рабочей директории. |
4.3. Путевые правила — инструкции для конкретных типов файлов
Файлы в директории .claude/rules/.md позволяют задать правила, привязанные к glob-паттернам. Правило загружается в контекст только при работе с файлами, соответствующими паттерну. Это экономит контекстное окно и делает инструкции точечными.
Пример: правило для Java-файлов
Файл .claude/rules/java-conventions.md:
--- globs: "*.java" --- # Конвенции для Java-кода - Используй Java 21 и возможности языка: records, sealed interfaces, pattern matching - Все публичные методы должны иметь Javadoc - Именование: camelCase для методов, PascalCase для классов - Nullable-параметры помечай @Nullable, non-null — без аннотации - Исключения: не используй checked exceptions, оборачивай в RuntimeException - Тесты: JUnit 5 + AssertJ, суффикс Test
Пример: правило для SQL-миграций
Файл .claude/rules/sql-review.md:
--- globs: "*.sql" --- # Правила для SQL-миграций - Каждая миграция должна быть идемпотентной (IF NOT EXISTS, IF EXISTS) - Запрещены блокирующие операции на больших таблицах без CONCURRENTLY - ALTER TABLE с добавлением NOT NULL столбца — только через два шага: добавить nullable, затем заполнить, затем NOT NULL - Перед генерацией SQL покажи план и дождись подтверждения
Путевые правила особенно полезны в монорепозиториях, где разные части кодовой базы живут по разным стандартам.
4.4. Режимы разрешений и списки разрешений /permissions — контроль над действиями Claude
Claude Code поддерживает несколько режимов разрешений, которые определяют, что Claude может делать без вашего подтверждения. Переключение между режимами — через Shift+Tab.
Режим | Поведение |
|---|---|
| Стандартный — Claude спрашивает разрешение на запись файлов и выполнение команд. |
| Только чтение. Claude анализирует, но не изменяет файлы. |
| Автоматически одобряет редактирование файлов, но спрашивает перед выполнением bash-команд. |
| Пропускает все проверки. Можно включить в конфиге через |
Точечная настройка разрешений возможна через .claude/settings.json или /permissions:
Пример широких разрешений в settings.json
{ "permissions": { "allow": [ "Bash", "Read", "Edit", "Write", "WebFetch", "Grep", "Glob", "LS", "MultiEdit", "NotebookRead", "NotebookEdit", "TodoRead", "TodoWrite", "WebSearch", "Bash(dir /s /b \"%USERPROFILE%\\\\.gradle\\\\caches\\\\*yamoney-fsm*.jar\")", "Bash(dir /s /b \"%USERPROFILE%\\\\.gradle\\\\caches\\\\*yamoney-fsm*\")", "Bash(findstr:*)" ], "defaultMode": "acceptEdits" } }
4.5. /doctor — диагностика окружения
Команда /doctor проверяет установку и конфигурацию Claude Code: версию, подключение к API, статус MCP-серверов, права доступа. Используйте при любых проблемах — это первое, что стоит запустить.
Уровень 5: Бездна
Здесь начинается территория автоматизации, кастомных агентов и полной автономии.
5.1. Пользовательские slash-команды
Представь: каждый понедельник перед деплоем ты вручную прогоняешь один и тот же чеклист — сборка, тесты, ветка, незакоммиченные изменения. Пять минут рутины, которую легко пропустить в спешке. Создаёшь один файл .claude/commands/deploy-check.md с этими шагами, коммитишь в git — и теперь вся команда пишет /deploy-check и получает полный отчёт. Единый стандарт без договорённостей на словах.
Создание команды /deploy-check
Файл .claude/commands/deploy-check.md:
Выполни предрелизную проверку: 1. Запусти `./gradlew build` и убедись, что сборка проходит 2. Проверь, что все тесты проходят: `./gradlew test` 3. Проверь, что нет незакоммиченных изменений: `git status` 4. Проверь, что текущая ветка — не master/main 5. Выведи сводку: статус сборки, количество тестов, текущая ветка Если есть проблемы — выведи список с рекомендациями по исправлению.
Теперь в сессии Claude Code можно набрать /deploy-check и получить полную предрелизную проверку.
Для параметризованных команд используйте плейсхолдер $ARGUMENTS:
Файл .claude/commands/explain-class.md
Найди класс $ARGUMENTS в проекте. Объясни: - Назначение класса и его роль в архитектуре - Основные зависимости и кто его использует - Потенциальные проблемы и технический долг Выведи результат в структурированном виде.
Ещё один пример: /find-todos
Файл .claude/commands/find-todos.md:
Найди все TODO, FIXME и HACK комментарии в проекте. Для каждого выведи: - файл и строку - текст комментария - предполагаемую сложность исправления (low/medium/high) Результат оформи как markdown-таблицу.
5.2. Skills — переиспользуемые шаблоны промптов
Skills — это именованные, переиспользуемые шаблоны промптов, которые можно вызывать как slash-команды прямо в сессии. В отличие от пользовательских команд, skills ориентированы на встраивание в агентные сценарии: их можно вызывать программно, передавать между агентами и составлять в цепочки.
Тема skills достаточно обширна, чтобы стать предметом отдельной статьи — здесь лишь обозначим, что такой механизм существует и открывает новый уровень переиспользования промптов в команде.
5.3. Claude Agent SDK
Для разработчиков, которым нужно встроить агентные возможности Claude в собственные инструменты, существует Claude Agent SDK. Это отдельная библиотека, позволяющая программно создавать агентов с доступом к инструментам, управлять их жизненным циклом и обрабатывать результаты. Доступна на языках Python, TS.
Типичные сценарии использования
Внутренние инструменты code review с кастомной логикой.
CI/CD пайплайны с интеллектуальным анализом ошибок.
Чат-боты для разработчиков с доступом к кодовой базе.
Автоматические аудиторы безопасности и стиля кода.
Пример: простой агент на TypeScript
import { Claude } from "@anthropic-ai/claude-code"; const claude = new Claude(); const conversation = claude.start({ system: "Ты — ассистент для анализа Java-кода.", tools: ["Read", "Glob", "Grep", "Bash"] }); const result = await conversation.send( "Найди все контроллеры без валидации входных параметров" ); console.log(result.text);
5.4. Pipe-режим и headless-режим — Claude Code в скриптах и CI/CD
Claude Code работает не только как интерактивный ассистент. Его можно использовать в скриптах, пайплайнах и автоматизациях.
5.4.1. Pipe-вход
Передача данных через stdin:
cat src/main/java/PaymentService.java | claude "найди потенциальные проблемы с конкурентным доступом"
5.4.2. Print-режим (-p)
Неинтерактивный режим — Claude получает вопрос, выводит ответ в stdout и завершается:
claude -p "объясни, что делает метод processRefund в PaymentService"
5.4.3. Структурированный вывод и интеграция в CI/CD
Для автоматизации — JSON-формат с разбором через jq:
claude -p "перечисли все TODO в проекте" --output-format json | jq '.[]'
Пример: автоматическое ревью PR в Jenkins/GitHub Actions
# Получить diff и отправить на ревью git diff origin/master...HEAD | claude -p \ "Проведи код-ревью этого diff. Укажи: баги, проблемы безопасности, нарушения конвенций. Формат: markdown." \ --output-format json > review-result.json
Пример: генерация описания PR
claude -p "на основе git log и diff сгенерируй описание PR в формате markdown" > pr-description.md
Pipe- и headless-режимы превращают Claude Code из персонального ассистента в компонент инженерного конвейера.
Итог
Большинство разработчиков застревают на уровне 1–2 и используют Claude Code как дорогой автодополнитель. Реальная ценность начинается с уровня 3 — когда инструмент начинает работать в связке с вашим процессом, а не параллельно с ним.
Какой уровень стал для вас открытием? Что используете регулярно, а что попробовали впервые? Пишите в комментариях — интересно сравнить реальные паттерны использования в командах.
