воркшоп · настройка агента

Защиты, которые ставим до первой задачи

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

Здесь два файла настроек и десять минут работы. После них можно спокойно включать режим, в котором агент делает мелочи сам и не дёргает вас на каждом шаге — опасное он уже не сможет сделать в принципе.

Почему это первым делом. Ошибку в тексте вы заметите и поправите. Удалённую папку — нет. Поэтому защиты ставятся до того, как агент получит первую настоящую задачу.

шаг 1Правила словами — файл CLAUDE.md

Это конституция. Агент читает её перед каждым разговором и выполняет как инструкцию. Пишется обычным текстом, по-русски.

Создайте файл CLAUDE.md в папке .claude внутри домашней папки и вставьте текст ниже целиком.

~/.claude/CLAUDE.md
## Главное правило: никогда не удалять файлы без моего разрешения

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

### Что запрещено

- Удалять файлы (rm, unlink, trash, любые другие команды удаления)
- Удалять папки (rmdir, rm -rf и аналоги)
- Перезаписывать файлы без явного согласия
- Очищать содержимое файла — замена на пустой текст это тоже удаление

### Если кажется, что файл или папку нужно удалить

1. Не удаляй. Сначала спроси и объясни, что именно и зачем.
2. Если я не ответил или ответ неоднозначен — переспроси ещё раз.
3. Если явного разрешения нет — не удаляй.

### Если сомневаешься — папка _TO_DELETE

Вместо удаления:

1. Перемести файл или папку в _TO_DELETE/ рядом с исходным местом
2. Создай _TO_DELETE/_README.md и запиши: что перемещено,
   почему казалось ненужным, дату
3. Скажи мне: «Я переместил X в _TO_DELETE, потому что Y.
   Можешь удалить вручную, если согласен.»

### Единственные случаи, когда удалять можно

- Я написал явно: «удали файл X» или «удали папку Y» — с конкретным именем
- Я подтвердил удаление дважды в рамках одного разговора

## Перед изменением существующего файла

Показать, что именно изменится, и дождаться подтверждения.
Создать новый файл рядом лучше, чем переписать существующий.

## Перед правкой файла, который дорабатывается

Спросить: новая версия или правим текущую. Если новая — старую не трогать,
создать файл с новым номером версии в имени.

## Язык

Отвечать по-русски.

Ключевое здесь не запрет, а третий раздел: куда девать то, что кажется мусором. Без папки _TO_DELETE агент упирается в тупик и начинает спорить.

шаг 2Жёсткие запреты — файл settings.json

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

Тот же путь, файл settings.json. Если он уже есть, добавьте разделы аккуратно, не стирая существующие.

~/.claude/settings.json
{
  "cleanupPeriodDays": 36500,
  "permissions": {
    "deny": [
      "Bash(rm *)",
      "Bash(rm -rf *)",
      "Bash(sudo rm *)",
      "Bash(* && rm -rf *)",
      "Bash(* ; rm -rf *)",
      "Bash(* | xargs rm*)",
      "Bash(find * -delete)",
      "Bash(find * -exec rm*)",
      "Bash(rm -rf ~/Desktop*)",
      "Bash(rm -rf ~/Documents*)",
      "Bash(rm -rf ~/Downloads*)",
      "Bash(rm -rf ~/Pictures*)",
      "Bash(rm -rf ~/Music*)",
      "Bash(rm -rf ~/Movies*)",
      "Bash(rm -rf ~/.claude*)",
      "Bash(rm -rf ~/.ssh*)",
      "Bash(rm -rf ~/.zsh*)",
      "Bash(git push --force *)",
      "Bash(git push -f *)",
      "Bash(git reset --hard *)",
      "Bash(git clean -f *)",
      "Bash(cat .env*)",
      "Bash(cat */.env*)",
      "Bash(head .env*)",
      "Bash(tail .env*)",
      "Bash(less .env*)",
      "Bash(more .env*)",
      "Bash(grep * .env*)",
      "Bash(curl * --upload*)",
      "Bash(curl * -d *@.env*)",
      "Bash(curl * --data*@.env*)",
      "Bash(wget --post-file*)",
      "Bash(sudo *)",
      "Bash(shred *)",
      "Bash(chmod 777 *)",
      "Bash(mkfs*)",
      "Bash(dd if=*)",
      "Bash(diskutil erase*)",
      "Bash(shutdown *)",
      "Bash(reboot *)"
    ],
    "defaultMode": "auto"
  }
}

Что именно закрыто

  • Удаление. Любые формы rm, в том числе спрятанные в середине длинной команды. Отдельно — рабочий стол, документы, загрузки, фото, музыка, видео и папки с ключами.
  • Разрушение истории работы. Принудительная отправка в репозиторий, жёсткий откат, чистка рабочей копии — всё, после чего сделанное не вернуть.
  • Секреты. Файлы с паролями и ключами нельзя ни открыть, ни выгрузить наружу.
  • Команды уровня системы. Права администратора, форматирование диска, перезагрузка, выключение.

Две строки, на которые стоит посмотреть отдельно

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

defaultMode: auto — режим работы. О нём следующий шаг.

шаг 3Режим «Авто» — и почему теперь можно

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

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

Четвёртый уровень, «делает всё без вопросов», сегодня не включаем. Он существует, вы о нём услышите, но это не для первого дня.

шаг 4Куда класть файлы

структура папок
Мак
/Users/ваше-имя/.claude/
    CLAUDE.md       ← правила: что нельзя удалять
    settings.json   ← запреты и режим работы

Виндоус
C:\Users\ваше-имя\.claude\
    CLAUDE.md
    settings.json

В каждом рабочем проекте — ещё один CLAUDE.md рядом с файлами:
~/мой-проект/
    CLAUDE.md       ← правила этого проекта
    ...ваши файлы

Домашний CLAUDE.md действует везде. Проектный — только в своей папке, и он дополняет общий. Правило про удаление держите именно в домашнем: оно должно работать во всех проектах без исключения.

шаг 5Проверка, что защиты встали

  1. Откройте агента в любой тестовой папке и положите туда ненужный файл.
  2. Скажите: «удали этот файл». Правильная реакция — он не удаляет, объясняет правило и предлагает перенести в _TO_DELETE.
  3. Скажите: «выполни в терминале rm имя-файла». Правильная реакция — команда не запускается, он сообщает, что она запрещена настройками.
  4. Обе проверки прошли — защиты работают, можно работать всерьёз.

Если агент всё-таки удалил, значит файлы лежат не там, где он их ищет. Проверьте, что папка называется именно .claude, с точкой в начале, и находится в домашней папке, а не внутри проекта.

Если файл всё-таки надо удалить

Назовите его прямо: «удали файл такой-то». Правило разрешает удаление, когда вы называете конкретный объект. Оно защищает от инициативы агента, а не от вашего решения.

Олег Дымшаков · раздатка к воркшопу · сентябрь 2026
Made on
Tilda