Как пользоваться Claude Code: рабочий цикл на примере реальной задачи

Разбираем один полный проход с Claude Code: от формулировки задачи до коммита. Как читать дифф, откатывать правки и не раздувать расход токенов.

5 мин · · разработка · агенты

Если вы установили Claude Code и смотрите на пустое приглашение, вопрос «как пользоваться Claude Code» сводится к одному: какими шагами пройти от задачи до рабочего коммита. Ниже один цикл на конкретном примере: в Python-проекте падает тест, нужно найти причину, исправить и закоммитить. Установку и подключение ключа мы здесь не разбираем, для этого есть статья про настройку с нуля и страница в документации.

Перед началом: чистое дерево и ветка

Главная страховка при работе с агентом, который правит файлы, это git. Перед сессией:

bash
cd ~/projects/billing-service
git status          # рабочее дерево должно быть чистым
git switch -c fix/date-parsing
claude

Чистое дерево нужно, чтобы дифф после сессии содержал только правки агента. Отдельная ветка нужна, чтобы любой неудачный результат можно было выбросить целиком одной командой.

Если Claude Code подключён через шлюз, переменные выглядят так (подробности в документации):

bash
export ANTHROPIC_BASE_URL=https://api.zukko.pro
export ANTHROPIC_AUTH_TOKEN=fetch_ваш_ключ
export ANTHROPIC_MODEL=claude-sonnet-5-5

Адрес здесь без /v1: Claude Code сам добавляет путь. Переменная именно ANTHROPIC_AUTH_TOKEN.

Как формулировать задачу

Плохой запрос: «почини тесты». Агенту придётся угадывать, какие тесты, что считать успехом и что трогать нельзя. Хороший запрос содержит четыре части: цель, где смотреть, ограничения и способ проверки.

bash
Тест tests/test_dates.py::test_parse_month_end падает на последний день месяца.
Найди причину в app/dates.py и исправь.
Не меняй публичные сигнатуры функций и не трогай другие тесты.
Проверь командой: pytest tests/test_dates.py -q

Способ проверки важнее остального. Если агент может сам запустить тест и увидеть результат, он итерирует: правка, запуск, чтение ошибки, новая правка. Без команды проверки вы получите правдоподобный код, который никто не запускал.

Постоянные правила проекта (как запускать тесты, какой стиль, что нельзя менять) вынесите в файл CLAUDE.md в корне, чтобы не повторять их в каждом запросе: как его писать.

Сначала план, потом правки

Для нетривиальной задачи полезно сначала попросить план без изменений. В интерактивной сессии есть режим планирования, переключаться между режимами разрешений можно сочетанием Shift+Tab (точный набор режимов зависит от версии, сверьтесь с /help). Можно и просто написать в запросе: «сначала опиши план и подожди моего подтверждения».

Читайте план как ревьюер. Типичные красные флаги: агент собирается переписывать соседние модули «заодно», добавлять зависимость ради одной функции или менять тест, чтобы он проходил. Последнее нужно пресекать сразу: тест правят, только если ошибка в самом тесте.

Как читать дифф

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

bash
git diff --stat      # сколько файлов и строк затронуто
git diff             # сами правки

На что смотреть:

  • Затронуты только ожидаемые файлы. Неожиданный файл в --stat — повод спросить агента, зачем он его менял.
  • Нет «побочной уборки»: переименований, форматирования всего файла, удалённых комментариев.
  • Новый код не заглушает ошибку (except Exception: pass, пропущенный тест, смягчённое условие в проверке).
  • Тесты запускали вы сами, а не только агент: pytest -q.

Как откатывать

Откат всегда делайте средствами git, а не просьбами к агенту:

bash
git restore app/dates.py        # выбросить правки в одном файле
git restore .                   # выбросить все незакоммиченные правки
git switch main && git branch -D fix/date-parsing   # выбросить всю ветку

Если результат наполовину хороший, закоммитьте удачную часть и откатите остальное. Некоторые версии Claude Code умеют возвращать состояние сессии к более раннему шагу, но это дополнение, а не замена git; возможности своей версии смотрите в документации инструмента.

Расход токенов: что делать по ходу работы

Агент на каждом шаге отправляет модели накопленный диалог, поэтому стоимость растёт быстрее, чем длина вашего текста. Три привычки, которые держат расход в рамках:

  1. Одна задача — одна сессия. Закончили баг, начните следующий с чистого контекста командой /clear. Для долгой задачи есть /compact, она сжимает историю.
  2. Не просите «изучи весь проект». Называйте файлы и каталоги.
  3. Подбирайте модель под задачу: для рутины вроде этого бага хватает недорогой, для сложного рефакторинга пробуйте сильнее. Переключение — команда /model.

Прикинем оценку без кэша на нашем багфиксе. Допустим, 20 запросов к модели, в среднем по 40 000 токенов входа и 1 000 токенов выхода (цифры условные). Формула без кэша: вход × цена входа + выход × цена выхода. Цены на 18 октября 2026:

  • claude-sonnet-5-5: 0,8 млн × 0,4 + 0,02 млн × 2 = 0,32 + 0,04 = $0,36.
  • claude-opus-5-5: 0,8 × 0,8 + 0,02 × 4 = 0,64 + 0,08 = $0,72.

В Anthropic-формате, который использует Claude Code, повторяющаяся часть контекста читается из кэша: у claude-sonnet-5-5 чтение стоит $0,05 за 1M против $0,4 за вход, а запись в кэш $0,5. Поскольку при долгой сессии чтений гораздо больше, чем записей, реальная сумма обычно ниже расчёта. Точный расход смотрите в разделе «Использование» кабинета, а список моделей и цен — через GET https://api.zukko.pro/v1/models. Чтобы агент не ушёл в минус, поставьте ключу дневной лимит: как это сделать.

Коммит

Когда проверка прошла и дифф вас устраивает:

bash
pytest -q
git add -p                      # выбрать, что именно коммитить
git commit -m "Fix month-end parsing in parse_date"

Агента можно попросить предложить сообщение коммита по диффу, но сам коммит делайте вы: это последняя точка контроля.

Частые вопросы

С чего начать, если проект большой?

С маленькой задачи с понятной проверкой: баг с воспроизводимым тестом, один эндпоинт, один скрипт. Так вы увидите, как агент ведёт себя на вашем коде, прежде чем доверять ему рефакторинг.

Нужно ли разрешать агенту выполнять любые команды?

Нет. Пока вы привыкаете, подтверждайте команды, а запуск тестов и чтение файлов разрешите на постоянной основе. Опасные операции (удаление, push, работа с продом) оставляйте за собой. Конкретные настройки разрешений есть в документации инструмента.

Почему сессия стоит дороже, чем я ожидал?

Обычно из-за длинной истории и крупных файлов в контексте. Начинайте новую сессию на новую задачу, сужайте область поиска и смотрите расход по запросам в кабинете.

Работает ли это с оплатой из России?

Доступ из России идёт через шлюз, пополнить баланс можно через СБП (платёжная страница добавляет комиссию 8,5%), картой MasterCard или криптовалютой.

Чтобы повторить этот цикл на своём проекте, создайте ключ в кабинете, подключите Claude Code и начните с одного небольшого бага.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.