# Write

يُنشئ ملفاً جديداً أو يستبدل محتويات ملف موجود بالكامل على نظام الملفات المحلي. لأنه يستبدل كل شيء في المسار المستهدف، ينبغي حجزه للإنشاء الحقيقي أو إعادة الكتابة الكاملة المقصودة.

## متى يُستخدم

- إنشاء ملف مصدر جديد تماماً، أو اختبار، أو إعداد لا يوجد بعد
- توليد موضع جديد، أو لقطة، أو ملف بيانات من الصفر
- تنفيذ إعادة كتابة كاملة حيث يكون `Edit` التزايدي أكثر تعقيداً من البدء من جديد
- إصدار عنصر مطلوب مثل مخطط أو ترحيل أو سكربت بناء طلب المستخدم إنتاجه صراحة

## المعاملات

- `file_path` (سلسلة، مطلوب): المسار المطلق للملف المراد كتابته. يجب أن تكون أي أدلة أبوية موجودة بالفعل.
- `content` (سلسلة، مطلوب): النص الكامل المراد كتابته في الملف. هذا يصبح متن الملف بأكمله.

## أمثلة

### مثال 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` أو سجل تغييرات إلا إذا طلبها المستخدم صراحةً.
- لا تُضف رموزاً تعبيرية أو نصوصاً تسويقية أو لافتات زخرفية إلا إذا طلب المستخدم هذا الأسلوب.
- تحقق من وجود الدليل الأبوي أولاً باستدعاء `Bash` `ls`؛ لا يُنشئ `Write` مجلدات وسيطة.
- زوّد المحتوى بالضبط كما تريد استمراره؛ لا يوجد قولبة أو معالجة لاحقة.
