48 218 файлов за 103 секунды. Столько, по рассказу пользователя Reddit, удалил Claude Code, когда чистил старую копию проекта и не узнал в ней ярлыков на живую папку. Если ваш агент уже работает в папках клиентов, три защиты от таких ста трёх секунд ставятся за один вечер.
Случай произошёл 21 сентября 2026 года на Windows, между 22:10 и 22:12 по восточному времени США. Разбор с цифрами из журнала проверки опубликовал Cybersecurity News, историю подхватил TechRadar. Автор поста анонимный, независимой проверки нет, ответа Anthropic тоже нет. Поэтому цифры ниже я даю по рассказу пользователя.
Git это программа, которая хранит историю версий проекта, и сама история лежит в скрытой папке .git внутри этого же проекта. Junction это ярлык-связка в Windows: снаружи он выглядит как обычная папка и при этом ведёт в другую папку на диске. Что такое Claude Code и чем он отличается от ChatGPT, я разбирала в статье про Claude Code для маркетолога.
У меня есть фишка, по которой мой Claude Code так не сделает. Агенту запрещено удалять файлы: всё лишнее он переносит в папку to_delete, а удаляю оттуда я сама. Слабое место у этой фишки тоже есть, про него ниже.
Что случилось за 103 секунды
Агенту поручили пересобрать рабочую копию проекта. Чтобы убрать старую, Claude Code написал небольшую программу на Python, скрипт очистки. В старой копии, по журналу, лежали 7 332 обычных файла и 614 ярлыков-связок, которые вели в живые папки проекта.
Представьте переезд. Вы говорите грузчикам: вынесите всё из кладовки. В кладовке есть дверь, и она ведёт в гостиную. Грузчики глянули на дверь: обычная дверца шкафа, значит, за ней тоже кладовка. Так они выносят и гостиную, с диваном и шкафом.
Скрипт сделал ровно это. Проверка на ярлыки в нём стояла, только связку Windows Python ярлыком не признал, и скрипт пошёл через неё внутрь. Журнал проверки насчитал 55 550 файлов, 614 связок и 1 808 папок, живых файлов удалено 48 218. Потом, по пересказу TechRadar, агент написал пользователю: «stop and read this. I broke something» («остановись и прочитай. Я кое-что сломал»).
Я перечитала этот разбор дважды. Папку агент выбрал верно, задачу понял верно. Всё решил один ответ «это обычная папка» внутри его же программы, и ста трёх секунд хватило.
Почему Git не спас
У пользователя Reddit скрипт опустошил папки .git/objects, refs и logs, то есть саму историю. Индекс Git, список того, что где лежало, уцелел, а самих файлов по этому списку уже не было. Откатываться стало некуда.
Для меня это главный урок случая. Копия, которая лежит в той же папке, от такой ошибки не защищает. Git спасает, когда история проекта хранится ещё где-то: в закрытом хранилище на GitHub, в облаке, на внешнем диске. Пока всё живёт на одном компьютере, одной неудачной программе хватает власти на всё сразу.
Агент выполняет написанное буквально
Под такими историями пишут «ИИ взбунтовался» или «агент тупой». Я не согласна ни с тем, ни с другим. Агент выполнил ровно то, что было написано в его же скрипте. Человек знает, что за дверью гостиная. Скрипт знает только то, что ему ответила проверка.
Поэтому просьба «будь аккуратнее» работает примерно как «не выносите лишнего» грузчикам, которым не показали, где лишнее. Anthropic пишет об этом прямо в документации по разрешениям: правила разрешений исполняет сама программа Claude Code, а инструкции в запросе и в файле CLAUDE.md влияют только на то, что Claude пытается сделать.
Зачем Claude Code вообще умеет работать без спроса
У Claude Code есть режим bypassPermissions, в переводе «обойти разрешения». В нём агент ничего не спрашивает и без спроса пишет даже в защищённые папки вроде .git, ту самую, которую опустошил скрипт. В документации к режиму приписано: включать только в изолированной среде, в контейнере или виртуальной машине, где Claude Code не может навредить.
Ещё одна деталь видна по тому, чего в настройках по умолчанию нет. Выключатель, который запрещает этот режим, существует (disableBypassPermissionsMode), только включать его вам самим. Интерес понятный: агент, который каждые полминуты спрашивает «можно?», продаётся хуже агента, который молча делает. Скорость продаётся, предупреждение лежит в документации, а решение, куда пустить агента без спроса, остаётся на вас.
Я этот режим понимаю. На длинной задаче подтверждать каждую команду утомительно, и рука начинает жать «да», не читая. Выходит тот же режим без спроса, только с лишними кликами.
Что стоит у меня и где у этого слабое место
Моя фишка записана в инструкциях агента. Слабое место я знаю: это просьба, которая влияет на поведение агента и ничего не запирает. Поэтому рядом стоят ещё две вещи.
Первая: в настройках Claude Code у меня список запрещённых команд против катастрофических удалений, вроде «стереть всё на диске». Обычное удаление этот список не ловит. Случай с Reddit он бы тоже не поймал: удаляла программа на Python, внутри которой команда удаления спрятана. Документация пишет об этом сама: запрет на команду удаления rm не срабатывает, если ту же команду запустить в другой форме. А запреты на чтение и правку файлов, там же, не касаются программ, которые открывают файлы сами.
Вторая: сторож. Это проверка, которая читает каждую команду агента до запуска и может её остановить. Мой сторож бережёт ноутбук от перегрева и держит агента подальше от огромных папок. Сторожа именно на удаление у меня пока нет, ставится он тем же способом.
Что делать вам: три защиты на один вечер
Первая из них у меня уже стоит, это та самая фишка с папкой to_delete. Корзина и подтверждение страхуют от агента, а копия вне компьютера ещё и от сгоревшего ноутбука.
Запрет удаления с папкой-корзиной. Запишите в инструкции агента, в файл CLAUDE.md в папке проекта: файлы никогда не удалять, всё лишнее переносить в папку to_delete, удаляете оттуда вы сами. Разбор случая советует то же самое: обратимое перемещение вместо немедленного удаления. Результат: ошибка агента превращается в папку, из которой всё возвращается перетаскиванием мышкой.
Копия проекта вне этого компьютера. Закрытый репозиторий на GitHub, облако или внешний диск, который после копирования отключается. Результат: даже если агент сотрёт и файлы, и историю Git, у вас останется вчерашняя версия, до которой не дотянется ни один скрипт на ноутбуке.
Подтверждение опасных команд. Не включайте режим без подтверждений в папке, у которой нет копии. Перед любой уборкой просите агента сначала сделать сухой прогон: вывести список того, что он собирается удалить, и ничего не трогать. Результат: число «48 218» вы увидите в списке, до того как файлов не станет. Если режим без подтверждений вам не нужен вовсе, запретите его в настройках (disableBypassPermissionsMode), тогда случайно его не включить.
Кто работает в Claude Code каждый день, может добавить сторожа, в документации он называется хук PreToolUse. Если держаться нашего переезда, это человек у двери квартиры, который смотрит на каждую вещь, прежде чем её вынесут, и может сказать «стоп». Сторож читает текст команды. Программу, которая уже лежит на диске, он увидит только строкой «запусти программу», поэтому сухой прогон он дополняет и не заменяет. Настроить его можно по документации или попросить об этом сам Claude Code.
Коротко
| Вопрос | Ответ |
|---|---|
| Что случилось | Claude Code за 103 секунды удалил 48 218 живых файлов, по рассказу пользователя Reddit |
| Почему | скрипт очистки не узнал 614 ярлыков-связок и пошёл через них в живые папки |
| Почему не помог Git | история версий лежала в той же папке и была стёрта вместе с файлами |
| Что поставить за вечер | корзину вместо удаления, копию вне компьютера, подтверждение и сухой прогон перед уборкой |
Короткие ответы
Может ли Claude Code удалить мои файлы? Может, если в задаче есть удаление и у агента есть на него права.
Хватит ли запрета удалять файлы в CLAUDE.md? Нет: правило влияет на поведение агента и ничего не запирает. К нему нужны копия вне компьютера и подтверждение опасных команд.
Спасёт ли Git, если агент удалил файлы? Только если история проекта лежит ещё где-то, например в закрытом репозитории на GitHub. Папку .git внутри проекта можно стереть вместе с файлами.
Можно ли пользоваться режимом без подтверждений? Документация Claude Code советует включать его только в контейнере или виртуальной машине.
Фрилансер, который ведёт через агента пять клиентов, держит в своих папках чужие файлы. Рано или поздно заказчик спросит: «что будет с моими файлами, если ваш ИИ ошибётся?» Ответ из трёх строк у вас после этого вечера уже будет.
Какая папка на вашем компьютере сейчас живёт в единственном экземпляре, и пустили бы вы туда агента без спроса?
Новости про ИИ и как из них собрать агентную систему я пишу у себя в Telegram-канале. Заходите, читайте: t.me/ruslanagrey