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

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

Представь, ты пишешь Claude AI: «PAYMENT-4521, возьми описание из Jira, создай ветку и реализуй». Claude через MCP подтягивает задачу, читает описание, создаёт feature/PAYMENT-4521 и начинает писать код. Ты уходишь на обед, предварительно перекинув сессию в Claude.ai через /remote-control. Claude работает на твоей машине, а ты с телефона следишь за прогрессом и подтверждаешь действия при необходимости.

Готово: код написан, ревью пройдено субагентом, изменения запушены, PR открыт. К твоему возвращению уже есть комментарии. Ты просишь: «Посмотри, исправь по делу, ответь и переведи задачу в ревью». Claude всё делает сам: правит, пушит, отвечает и двигает тикет. А ты наливаешь кофе.

Привет! Меня зовут Рамиль, я программист отдела серверных решений ЮMoney. Я собрал полезные советы по claude code и организовал её в интерактивном формате «Айсберга». Это способ подачи материала от очевидного к малоизвестному. На верхушке — то, что знает каждый, кто хоть раз открывал Claude Code. Чем глубже — тем реже встречаются эти знания, и тем больше они меняют подход к работе.

Кому полезна статья: разработчикам и тимлидам, которые уже пробовали Claude Code или только рассматривают его. Все примеры практические — их можно скопировать и использовать в своём проекте прямо сейчас.

Что внутри:

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

Уровень 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 начинает «забывать» ранние сообщения — это не баг, а фундаментальное ограничение модели.

Качество ответа можно выразить формулой:

качество  = (корректность × полнота) / (объём × шум)

Это значит: неточная формулировка — хуже результат, больше лишней информации — хуже результат.

Умение управлять контекстом — то, что отличает продуктивную работу от хаотичной, поэтому:

  1. Передавайте только нужное, например через @file 

  2. Используйте /clear при смене задачи. 

  3. После этапа планирования просите 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.

Режим

Поведение

default

Стандартный — Claude спрашивает разрешение на запись файлов и выполнение команд.

plan

Только чтение. Claude анализирует, но не изменяет файлы.

acceptEdits

Автоматически одобряет редактирование файлов, но спрашивает перед выполнением bash-команд.

bypassPermissions

Пропускает все проверки. Можно включить в конфиге через "defaultMode": "bypassPermissions"

Точечная настройка разрешений возможна через .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

Источник

Оставить комментарий