Дайджесты новостей
Рабочее место инженера от первого лица: клавиатура, чашка кофе и монохромный монитор с графической песочницей и командной строкой терминала

Работа в потоке с Claude Code: как делегировать рутину агенту в терминале и не потерять контроль

Смотри, какой парадокс возникает у каждого программиста при знакомстве с ИИ: мы мечтаем об умном помощнике, который избавит нас от скучной механической работы, но на деле получаем вторую работу — работу оператора чат-бота. Ты сидишь в браузере, вручную копируешь в промпт файлы проекта, ждешь ответ, копируешь код обратно в редактор, правишь импорты, запускаешь тесты, ловишь ошибку и снова несешь лог в чат. В итоге вместо глубокой концентрации (того самого состояния flow state) ты получаешь рваный день и сотни переключений контекста.

Появление Claude Code — официального терминального агента от Anthropic — кардинально меняет эту механику. Агент живет прямо в твоей командной строке, сам видит структуру репозитория, выполняет команды bash, правит файлы на диске и перезапускает тесты. Инженер Райли Браун (Riley Brown) провел масштабный эксперимент, показав, как использовать Claude Code для поддержания максимального фокуса в течение всего рабочего дня. Я внимательно изучил его практику и выделил ключевые правила, позволяющие делегировать рутину агенту и не превратить свой проект в хаос.

Терминальный агент вместо привычного чат-окна

Главное преимущество CLI-агента — устранение трения на стыке сред разработки. Когда ты работаешь в классическом веб-интерфейсе, языковая модель изолирована от твоей операционной системы. Она не знает, какая версия Node.js или Python у тебя установлена, какие ветки лежат в Git и упали ли локальные тесты после прошлой правки.

В терминале Claude Code действует как автономный инженерный напарник. Ты даешь ему высокоуровневую задачу: «Исправь утечку соединений в пуле базы данных и напиши интеграционный тест, проверяющий закрытие сессий при таймауте». Агент самостоятельно:

  • Находит нужные файлы в дереве проекта с помощью встроенного поиска;
  • Читает текущую реализацию и сигнатуры методов;
  • Вносит точечные правки в код через механизм diff;
  • Запускает тестовый фреймворк и анализирует реальный код возврата (exit code);
  • Если тест упал — анализирует стектрейс и повторяет цикл правок без твоего участия.

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

Границы доступа: песочница и безопасность файловой системы

Однако дать автономному скрипту неограниченный доступ к терминалу — это прямой путь к катастрофе. Любая галлюцинация или неверно понятая инструкция может привести к случайному удалению миграций базы данных, перезаписи конфигурационных файлов или выполнению опасной команды rm -rf.

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

Вот базовая конфигурация запуска, которую я рекомендую использовать в ежедневной разработке:

# Запуск Claude Code в режиме изоляции директории проекта
claude --dangerously-skip-permissions=false        --allowed-tools="FileRead,FileEdit,Glob,Grep"        --blocked-commands="rm,git push,dropdb"        --max-steps=15

Такая конфигурация гарантирует, что агент сможет свободно читать и редактировать файлы внутри рабочей ветки, искать вхождения функций через Grep, но при любой попытке выполнить деструктивную команду или отправить коммит в удаленный репозиторий он обязан запросить явное подтверждение человека. Как подробно разбиралось в исследовании про плагины для расширения интерфейса Claude Code, перехват потенциально опасных команд на уровне локального посредника защищает рабочий контур от фатальных ошибок без потери скорости.

Атомарные задачи и борьба с информационным шумом

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

Секрет сохранения контроля заключается в декомпозиции на атомарные задачи (atomic tasks). Правило простое: одна задача агенту — это один логический коммит в Git, который ты можешь проверить за две минуты.

Вместо абстрактных просьб используй структурированные CLI-команды с четкими критериями готовности:

# Передача конкретной атомарной задачи с явным критерием приемки
claude "В файле src/auth/jwt.py обнови валидацию срока жизни токена.
Проверь, что при истекшем exp выбрасывается исключение TokenExpiredError.
Запусти pytest tests/test_jwt.py и убедись, что все 4 теста зеленые."

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

Инженерная гигиена работы в связке с CLI-агентом

Чтобы работа с терминальным агентом приносила радость, а не раздражение, Браун сформулировал три принципа гигиены:

  1. Чистый Git-статус перед каждым запуском: никогда не запускай агента, если у тебя есть незакоммиченные локальные правки. Сделай git stash или отдельный коммит. Если агент наломает дров, ты сможешь откатить репозиторий одной командой git checkout ..
  2. Фильтрация вывода терминала: длинные стектрейсы и логи сборки забивают контекстное окно агента и выбивают тебя из потока. Настрой лаконичный вывод тестов (например, pytest -q). Кроме того, критически важно настроить локальный файл конфигурации проекта .claude.json, зафиксировав в нем постоянные правила линтинга и форматирования кода. Когда агент заранее знает, что в репозитории используется строгий Ruff или ESLint, он не тратит лишние шаги на исправление очевидных стилистических помарок.
  3. Короткие циклы ревью: не позволяй агенту делать больше 10–15 шагов подряд без промежуточного взгляда на git diff. Пять секунд проверки промежуточного диффа спасают часы отладки в конце дня.