كل موجه رائع يشترك في عناصر هيكلية مشتركة. فهم هذه المكونات يتيح لك بناء الموجهات بشكل منهجي بدلاً من التجربة والخطأ.

<Callout type="tip" title="اللبنات الأساسية">
فكر في هذه المكونات مثل قطع الليغو. لا تحتاج إلى كلها في كل موجه، لكن معرفة ما هو متاح يساعدك على بناء ما تحتاجه بالضبط.
</Callout>

## المكونات الأساسية

عادةً ما يتضمن الموجه الفعال بعض أو كل هذه العناصر:

<PromptBreakdown parts={[
  { label: "الدور", text: "أنت مهندس برمجيات أول" },
  { label: "السياق", text: "تعمل على تطبيق React." },
  { label: "المهمة", text: "راجع هذا الكود بحثاً عن الأخطاء" },
  { label: "القيود", text: "وركز فقط على المشاكل الأمنية." },
  { label: "التنسيق", text: "أعد النتائج كقائمة مرقمة." },
  { label: "المثال", text: "مثل: 1. خطر حقن SQL في السطر 42" }
]} />

دعنا نفحص كل مكون بالتفصيل.

## 1. الدور / الشخصية

تحديد دور يركز استجابات النموذج من خلال عدسة خبرة أو منظور معين.

<Compare 
  before={{ label: "بدون دور", content: "اشرح الحوسبة الكمية." }}
  after={{ label: "مع دور", content: "أنت أستاذ فيزياء متخصص في جعل المواضيع المعقدة سهلة للمبتدئين. اشرح الحوسبة الكمية." }}
/>

الدور يهيئ النموذج لـ:
- استخدام المفردات المناسبة
- تطبيق الخبرة ذات الصلة
- الحفاظ على منظور متسق
- مراعاة الجمهور بشكل مناسب

### أنماط الأدوار الفعالة

```
"أنت [مهنة] لديك [X سنوات] من الخبرة في [التخصص]"
"تصرف كـ [دور] يتميز بـ [خاصية]"
"أنت خبير [مجال] يساعد [نوع الجمهور]"
```

## 2. السياق / الخلفية

السياق يوفر المعلومات التي يحتاجها النموذج لفهم موقفك. تذكر: النموذج لا يعرف شيئاً عنك أو عن مشروعك أو أهدافك إلا إذا أخبرته.

<Compare 
  before={{ label: "سياق ضعيف", content: "أصلح هذا الخطأ في كودي." }}
  after={{ label: "سياق قوي", content: "أقوم ببناء REST API بـ Node.js باستخدام Express.js. الـ API يتعامل مع مصادقة المستخدمين باستخدام JWT tokens. عندما يحاول المستخدم الوصول إلى مسار محمي، يحصل على خطأ 403 حتى مع token صالح. إليك الكود ذو الصلة: [الكود]" }}
/>

### ما يجب تضمينه في السياق

- **تفاصيل المشروع** — مجموعة التقنيات، البنية، القيود
- **الحالة الحالية** — ما جربته، ما يعمل، ما لا يعمل
- **الأهداف** — ما تحاول تحقيقه في النهاية
- **القيود** — حدود الوقت، المتطلبات التقنية، دليل الأسلوب

## 3. المهمة / التعليمات

المهمة هي قلب موجهك — ما تريد أن يفعله النموذج. كن محدداً وواضحاً.

### طيف التحديد

<SpecificitySpectrum levels={[
  { level: "غامض", text: "ساعدني في هذا المقال" },
  { level: "أفضل", text: "حرر هذا المقال" },
  { level: "جيد", text: "حرر هذا المقال من حيث القواعد والوضوح" },
  { level: "الأفضل", text: "حرر هذا المقال من حيث القواعد والوضوح، مع الحفاظ على النبرة الأصلية لكن تقليل الإسهاب بنسبة 20%" }
]} />

### أفعال العمل التي تعمل بشكل جيد

<div className="my-4 grid gap-2">
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">الإنشاء</span>
    <span className="text-muted-foreground">اكتب، أنشئ، ولّد، ألّف، صمم</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">التحليل</span>
    <span className="text-muted-foreground">حلل، قيّم، قارن، قدّر، راجع</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">التحويل</span>
    <span className="text-muted-foreground">حوّل، ترجم، أعد التنسيق، لخّص، وسّع</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">الشرح</span>
    <span className="text-muted-foreground">اشرح، صِف، وضّح، عرّف، وضّح بمثال</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">حل المشكلات</span>
    <span className="text-muted-foreground">حُل، صحح الأخطاء، أصلح، حسّن، طوّر</span>
  </div>
</div>

## 4. القيود / القواعد

القيود تحدد مخرجات النموذج. تمنع المشاكل الشائعة وتضمن الملاءمة.

### أنواع القيود

**قيود الطول:**
```
"اجعل ردك أقل من 200 كلمة"
"قدم 5 اقتراحات بالضبط"
"اكتب 3-4 فقرات"
```

**قيود المحتوى:**
```
"لا تضمن أي أمثلة كود"
"ركز فقط على الجوانب التقنية"
"تجنب اللغة التسويقية"
```

**قيود الأسلوب:**
```
"استخدم نبرة رسمية أكاديمية"
"اكتب كما لو كنت تتحدث لطفل في العاشرة"
"كن مباشراً وتجنب لغة التحفظ"
```

**قيود النطاق:**
```
"اعتبر فقط الخيارات المتاحة في Python 3.10+"
"اقتصر الاقتراحات على الأدوات المجانية"
"ركز على الحلول التي لا تتطلب تبعيات إضافية"
```

## 5. تنسيق المخرجات

تحديد تنسيق المخرجات يضمن حصولك على ردود بهيكل قابل للاستخدام.

### التنسيقات الشائعة

**القوائم:**
```
"أعد النتيجة كقائمة نقطية"
"قدم قائمة مرقمة من الخطوات"
```

**البيانات المنظمة:**
```
"أعد النتيجة بصيغة JSON مع المفاتيح: title, description, priority"
"نسّق كجدول markdown بأعمدة: الميزة، الإيجابيات، السلبيات"
```

**هياكل محددة:**
```
"نظّم ردك كالتالي:
 ## الملخص
 ## النقاط الرئيسية
 ## التوصيات"
```

### مثال مخرجات JSON

```
حلل هذه المراجعة من العميل وأعد JSON:
{
  "sentiment": "positive" | "negative" | "neutral",
  "topics": ["مصفوفة من المواضيع الرئيسية"],
  "rating_prediction": 1-5,
  "key_phrases": ["عبارات بارزة"]
}

المراجعة: "وصل المنتج بسرعة ويعمل بشكل رائع، لكن 
التعليمات كانت مربكة."
```

## 6. الأمثلة (التعلم بالعينات القليلة)

الأمثلة هي أقوى طريقة لإظهار النموذج ما تريده بالضبط.

### مثال بعينة واحدة

```
حوّل هذه الجمل إلى الزمن الماضي.

مثال:
الإدخال: "هي تمشي إلى المتجر"
المخرج: "هي مشت إلى المتجر"

الآن حوّل:
الإدخال: "هم يركضون كل صباح"
```

### مثال بعينات قليلة

```
صنّف تذاكر الدعم هذه حسب الإلحاح.

أمثلة:
"حسابي تم اختراقه" ← حرج
"كيف أغير كلمة المرور؟" ← منخفض
"فشل الدفع لكن تم خصم المبلغ" ← عالي

صنّف: "التطبيق يتعطل عندما أفتح الإعدادات"
```

## تجميع كل شيء معاً

إليك موجه كامل يستخدم جميع المكونات:

<TryIt 
  title="مثال موجه كامل"
  description="هذا الموجه يوضح جميع المكونات الستة تعمل معاً. جربه لترى كيف تنتج الموجهات المنظمة نتائج احترافية."
  prompt={`# الدور
أنت كاتب تقني أول لديك 10 سنوات من الخبرة في إنشاء وثائق المطورين.

# السياق
أقوم بتوثيق REST API لخدمة معالجة المدفوعات. الجمهور هم مطورون يدمجون API الخاص بنا في تطبيقاتهم. لديهم معرفة برمجية متوسطة لكن قد يكونون جدداً على مفاهيم معالجة المدفوعات.

# المهمة
اكتب توثيقاً لنقطة النهاية API التالية التي تنشئ نية دفع جديدة.

# القيود
- استخدم لغة واضحة ومختصرة
- ضمّن سيناريوهات الأخطاء الشائعة
- لا تضمن تفاصيل تنفيذ الواجهة الخلفية
- افترض أن القراء يفهمون أساسيات HTTP و JSON

# تنسيق المخرجات
نظّم التوثيق كالتالي:
1. نظرة عامة على نقطة النهاية (2-3 جمل)
2. الطلب (الطريقة، URL، الترويسات، الجسم مع مثال)
3. الاستجابة (أمثلة نجاح وخطأ)
4. مثال كود (بـ JavaScript/Node.js)

# تفاصيل نقطة النهاية
POST /v1/payments/intents
Body: { "amount": 1000, "currency": "usd", "description": "Order #1234" }`}
/>

## الموجه الفعال الأدنى

ليس كل موجه يحتاج جميع المكونات. للمهام البسيطة، قد تكفي تعليمات واضحة:

```
ترجم "Hello, how are you?" إلى الإسبانية.
```

استخدم مكونات إضافية عندما:
- تكون المهمة معقدة أو غامضة
- تحتاج تنسيقاً محدداً
- النتائج لا تطابق التوقعات
- الاتساق عبر استعلامات متعددة مهم

## أنماط الموجهات الشائعة

هذه الأطر تعطيك قائمة مرجعية بسيطة لاتباعها عند كتابة الموجهات. انقر على كل خطوة لرؤية مثال.

<CRISPEFramework />

<RTFFramework />

## الملخص

الموجهات الفعالة تُبنى، لا تُكتشف. من خلال فهم وتطبيق هذه المكونات الهيكلية، يمكنك:

- الحصول على نتائج أفضل من المحاولة الأولى
- تصحيح الموجهات التي لا تعمل
- إنشاء قوالب موجهات قابلة لإعادة الاستخدام
- التواصل بنواياك بوضوح

<Quiz 
  question="أي مكون له أكبر تأثير على جودة الاستجابة؟"
  options={[
    "دائماً الدور/الشخصية",
    "دائماً تنسيق المخرجات",
    "يعتمد على المهمة",
    "طول الموجه"
  ]}
  correctIndex={2}
  explanation="المهام المختلفة تستفيد من مكونات مختلفة. الترجمة البسيطة تحتاج هيكلاً بسيطاً، بينما التحليل المعقد يستفيد من دور وسياق وتنسيق مفصل."
/>

<TryIt 
  prompt={`أنت مدير منتج أول لديك 10 سنوات من الخبرة في منتجات SaaS.

السياق: أقوم ببناء تطبيق إدارة مهام للفرق عن بُعد. نحن شركة ناشئة صغيرة بموارد هندسية محدودة.

المهمة: اقترح 3 ميزات يجب أن نعطيها الأولوية لـ MVP الخاص بنا.

القيود:
- يجب أن تكون الميزات قابلة للتنفيذ من فريق من مطورين اثنين في 4 أسابيع
- ركز على ما يميزنا عن Trello و Asana

التنسيق: لكل ميزة، قدم:
1. اسم الميزة
2. وصف من جملة واحدة  
3. لماذا هي مهمة للفرق عن بُعد`}
  description="هذا الموجه يستخدم جميع المكونات الستة. جربه وانظر كيف ينتج النهج المنظم نتائج مركزة وقابلة للتنفيذ."
/>

## ابنِ موجهك الخاص

الآن دورك! استخدم منشئ الموجهات التفاعلي هذا لبناء موجهك الخاص باستخدام المكونات التي تعلمتها:

<PromptBuilder 
  title="منشئ الموجهات التفاعلي"
  description="املأ كل قسم لبناء موجه كامل ومنظم بشكل جيد"
/>

<PromptChallenge
  title="تحدي الفصل: ابنِ موجه مراجعة كود"
  task="اكتب موجهاً يطلب من الذكاء الاصطناعي مراجعة الكود بحثاً عن الثغرات الأمنية. يجب أن يكون موجهك محدداً بما يكفي للحصول على ملاحظات قابلة للتنفيذ."
  criteria={[
    "يتضمن دوراً واضحاً أو مستوى خبرة",
    "يحدد نوع مراجعة الكود (التركيز على الأمان)",
    "يعرّف تنسيق المخرجات المتوقع",
    "يضع قيوداً أو نطاقاً مناسباً"
  ]}
  hints={[
    "فكر في الخبرة التي يجب أن يمتلكها مراجع الكود",
    "كن محدداً حول المشاكل الأمنية التي يجب البحث عنها",
    "فكر في طلب تنسيق استجابة منظم"
  ]}
  exampleSolution={`أنت مهندس أمان أول لديك خبرة في أمان تطبيقات الويب وثغرات OWASP Top 10.

المهمة: راجع الكود التالي بحثاً عن الثغرات الأمنية.

ركز على:
- مخاطر حقن SQL
- ثغرات XSS  
- مشاكل المصادقة/التفويض
- ثغرات التحقق من المدخلات

تنسيق المخرجات:
لكل مشكلة موجودة:
1. رقم(أرقام) السطر
2. نوع الثغرة
3. مستوى الخطر (عالي/متوسط/منخفض)
4. الإصلاح الموصى به

[الكود للمراجعة]`}
  difficulty="intermediate"
/>

في الفصل التالي، سنستكشف المبادئ الأساسية التي توجه قرارات بناء الموجهات.
