# Write

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

## Когда использовать

- Создание совершенно нового исходного файла, теста или конфигурации, которого ещё нет
- Генерация свежей фикстуры, снапшота или файла данных с нуля
- Выполнение полной перезаписи, когда инкрементный `Edit` был бы сложнее, чем начать заново
- Выдача запрошенного артефакта, такого как схема, миграция или скрипт сборки, которые пользователь явно попросил произвести

## Параметры

- `file_path` (string, обязательный): абсолютный путь к записываемому файлу. Все родительские каталоги должны уже существовать.
- `content` (string, обязательный): полный текст для записи в файл. Он становится всем телом файла.

## Примеры

### Пример 1: создание нового вспомогательного модуля
Вызовите `Write` с `file_path: "/Users/me/app/src/utils/slugify.ts"` и передайте реализацию как `content`. Используйте только после проверки, что файла ещё не существует.

### Пример 2: перегенерация производного артефакта
После изменения источника схемы перепишите `/Users/me/app/generated/schema.json` одним вызовом `Write`, используя свежесгенерированный JSON как `content`.

### Пример 3: замена небольшого файла фикстуры
Для одноразовой тестовой фикстуры, где каждая строка меняется, `Write` может быть яснее последовательности вызовов `Edit`. Сначала прочитайте файл, подтвердите охват, затем перезапишите.

## Примечания

- Перед перезаписью существующего файла вы обязаны вызвать `Read` на нём в текущей сессии. `Write` отказывается затирать невиденное содержимое.
- Предпочитайте `Edit` для любых изменений, которые касаются только части файла. `Edit` передаёт только дифф, что быстрее, безопаснее и легче для ревью.
- Не создавайте проактивно Markdown-документацию, `README.md` или файлы чейнджлога, если пользователь явно об этом не просит.
- Не добавляйте эмодзи, маркетинговые формулировки или декоративные баннеры, если пользователь не запросил такой стиль.
- Сначала убедитесь, что родительский каталог существует, вызовом `ls` через `Bash`; `Write` не создаёт промежуточные папки.
- Предоставляйте содержимое ровно в том виде, в каком хотите сохранить; шаблонизации или постобработки нет.
