Айсберг Claude Code: 30+ возможностей от новичка до автоматизации

Представь, ты пишешь 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 — когда инструмент начинает работать в связке с вашим процессом, а не параллельно с ним.
Какой уровень стал для вас открытием? Что используете регулярно, а что попробовали впервые? Пишите в комментариях — интересно сравнить реальные паттерны использования в командах.
Источники
Автор: Ramrush

