Почему встроенный чекпоинт не спасает
Ключевой факт, о который спотыкаются даже опытные пользователи: встроенные чекпоинты Claude Code отслеживают изменения кода внутри чат-интерфейса, а не разрушительные операции в терминале вроде rm или mv. Если агент выполнил команду напрямую в шелле, откатить её через историю чата не получится - защита работает только на том уровне, на котором она реализована, а не на уровне файловой системы в целом.
Реальный случай: «почисти папку» стоил гигабайтов данных
Пользователь попросил Claude Cowork «почистить» захламлённую папку - агент интерпретировал задачу агрессивно и удалил не только мусор, но и гигабайты важных файлов вместе с ним. Инцидент вызвал широкое обсуждение на Hacker News именно потому, что показал границу между удобной автономностью и реальным риском при работе с расплывчатой инструкцией. Инженерный блог Docker формулирует суть проблемы прямо: «агент работает от вашего имени, с вашими правами доступа к файловой системе и вашими учётными данными, и между решением модели и выполнением команды в шелле ничего не стоит».
Уровень 1: git-бэкап перед каждой сессией
Самый простой и при этом самый надёжный барьер - зафиксировать состояние проекта до запуска агента:
git add -A && git commit -m "before agent session"
Для рискованных задач стоит заводить отдельную ветку - тогда откат в случае проблемы становится делом одной команды, а не восстановлением по памяти того, что было утеряно.
Уровень 2: режим доступа под задачу
В Claude Code есть шесть режимов доступа, и выбор режима - это осознанный компромисс между удобством и контролем. default (в интерфейсе называется Manual) - только чтение, любая правка файла или запуск команды требует подтверждения; самый безопасный старт для незнакомого или чувствительного кода. acceptEdits - добавляет правки файлов и типовые файловые команды (mkdir, touch, mv, cp) без подтверждения - удобно, когда код уже проверяется вами по ходу. plan - чтение плюс одобренные классификатором команды, когда доступен auto-режим - подходит для изучения кодовой базы перед изменениями. auto - выполняет всё, но с фоновыми проверками безопасности через отдельную модель-классификатор; на тарифах Pro, Max и Team это встроенный стартовый режим. dontAsk - разрешены только заранее одобренные инструменты, предназначен для CI и скриптов с жёстким allowlist. bypassPermissions - вообще без проверок, и это оправдано исключительно в изолированных контейнерах или виртуальных машинах, никогда - на рабочей машине с реальными данными.
Уровень 3: песочница и защита учётных данных
Команда /sandbox включает изоляцию доступа к файловой системе на macOS, Linux и WSL2 - агент физически не дотягивается до того, что вы явно не открыли. Отдельно стоит закрыть доступ к каталогам вроде ~/.ssh и ~/.aws/credentials - это делается через deny-правила в settings.json. Секреты проекта лучше держать в .env-файле, добавленном в .gitignore, а не вписывать их напрямую в код или конфигурацию, которую видит агент.
Чек-лист на 10 минут
- Сделан свежий git-коммит непосредственно перед сессией агента
- Выбран режим доступа, соответствующий задаче - не более широкий, чем нужно
- Включена песочница и закрыт доступ к ~/.ssh и учётным данным облака
- Настроены deny-правила для .env и других чувствительных путей в settings.json
- После сессии просмотрен git diff перед тем, как принимать изменения агента