# SendMessage

يُسلِّم رسالة من عضو فريق إلى آخر داخل فريق نشط، أو يبث إلى جميع أعضاء الفريق في آن واحد. هذه هي القناة الوحيدة التي يسمعها زملاء الفريق — أي شيء يُكتب في الإخراج النصي العادي يكون غير مرئي لهم.

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

- تعيين مهمة أو تسليم مشكلة فرعية إلى زميل فريق مُسمَّى أثناء التعاون الجماعي.
- طلب حالة أو نتائج وسيطة أو مراجعة شفرة من وكيل آخر.
- بث قرار أو قيد مشترك أو إعلان إيقاف تشغيل للفريق بالكامل عبر `*`.
- الرد على مطالبة بروتوكول مثل طلب إيقاف تشغيل أو طلب اعتماد خطة من قائد الفريق.
- إغلاق الحلقة في نهاية مهمة مفوَّضة حتى يتمكن القائد من وضع علامة على البند بالاكتمال.

## المعاملات

- `to` (سلسلة، مطلوب): `name` زميل الفريق المستهدف كما هو مسجَّل في الفريق، أو `*` للبث إلى جميع زملاء الفريق دفعة واحدة.
- `message` (سلسلة أو كائن، مطلوب): نص عادي للتواصل الطبيعي، أو كائن مُنظَّم لردود البروتوكول مثل `shutdown_response` و`plan_approval_response`.
- `summary` (سلسلة، اختياري): معاينة من 5 إلى 10 كلمات تُعرض في سجل نشاط الفريق للرسائل النصية. مطلوبة للرسائل النصية الطويلة؛ تُتجاهل عندما يكون `message` كائن بروتوكول.

## أمثلة

### مثال 1: تسليم مهمة مباشر

```
SendMessage(
  to="db-lead",
  message="Please audit prisma/schema.prisma and list any model missing createdAt/updatedAt timestamps. Reply when done.",
  summary="Audit schema for missing timestamps"
)
```

### مثال 2: بث قيد مشترك

```
SendMessage(
  to="*",
  message="Reminder: do not touch files under legacy/ — that subtree is frozen until the migration PR lands.",
  summary="Freeze legacy/ during migration"
)
```

### مثال 3: رد بروتوكول

الرد على طلب إيقاف تشغيل من القائد باستخدام رسالة منظمة:

```
SendMessage(
  to="leader",
  message={ "type": "shutdown_response", "ready": true, "final_report": "All assigned diff chunks committed on branch refactor-crew/db-lead." }
)
```

### مثال 4: رد اعتماد خطة

```
SendMessage(
  to="leader",
  message={ "type": "plan_approval_response", "approved": true, "notes": "LGTM, but please split step 4 into migration + backfill." }
)
```

## ملاحظات

- إخراج نص المساعد المعتاد لا يُنقل إلى زملاء الفريق. إذا أردت أن يرى وكيل آخر شيئاً، فيجب أن يمر عبر `SendMessage`. هذا أكثر الأخطاء شيوعاً في سير عمل الفرق.
- البث (`to: "*"`) مكلف — يوقظ كل زميل فريق ويستهلك سياقه. احتفظ به للإعلانات التي تؤثر فعلاً في الجميع. فضِّل الإرسالات المُستهدَفة.
- أبقِ الرسائل موجزة وموجهة للفعل. أدرج مسارات الملفات والقيود وصيغة الرد المتوقعة التي يحتاجها المستلم؛ تذكر أنه لا ذاكرة مشتركة بينكما.
- لكائنات رسائل البروتوكول (`shutdown_response`، `plan_approval_response`) أشكال ثابتة. لا تمزج حقول البروتوكول في رسائل نصية أو العكس.
- الرسائل غير متزامنة. سيستلم المستلم رسالتك في دوره التالي؛ لا تفترض أنه قرأها أو تصرف بناء عليها قبل أن يرد.
- `summary` جيد الكتابة يجعل سجل نشاط الفريق قابلاً للتصفح للقائد — تعامل معه كسطر موضوع الالتزام.
