# ExitPlanMode

يُقدم خطة التنفيذ التي أُعدت أثناء وضع التخطيط لاعتماد المستخدم، ثم — إذا اعتُمدت — ينقل الجلسة خارج وضع التخطيط حتى يمكن أن تبدأ التعديلات.

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

- عندما تكتمل خطة كُتبت خلال `EnterPlanMode` وتصبح جاهزة للمراجعة.
- عندما تكون المهمة موجهة نحو التنفيذ (تغييرات شفرة أو إعدادات)، لا بحثاً صرفاً، فالخطة الصريحة مناسبة.
- عندما تكون جميع القراءة والتحليل التمهيدية منجزة؛ لا حاجة لمزيد من التحقيق قبل أن يقرر المستخدم.
- عندما يكون المساعد قد عدَّد مسارات ملفات ودوال وخطوات ملموسة — لا مجرد أهداف.
- عندما يطلب المستخدم رؤية الخطة، أو عندما يوشك سير عمل وضع التخطيط على التسليم إلى أدوات التعديل.

## المعاملات

- `allowedPrompts` (مصفوفة، اختياري): مطالبات يمكن للمستخدم كتابتها في شاشة الاعتماد لاعتماد الخطة تلقائياً أو تعديلها. يحدد كل عنصر صلاحية مُحدَّدة النطاق (على سبيل المثال، اسم عملية والأداة التي تنطبق عليها). اتركها غير مضبوطة لاستخدام تدفق الاعتماد الافتراضي.

## أمثلة

### مثال 1: تقديم قياسي

بعد التحقق من إعادة هيكلة المصادقة داخل وضع التخطيط وكتابة ملف الخطة على القرص، يستدعي المساعد `ExitPlanMode` دون وسيطات. يقرأ الإطار الخطة من موقعها القانوني، ويعرضها على المستخدم، وينتظر الاعتماد أو الرفض.

### مثال 2: إجراءات سريعة معتمدة مسبقاً

```
ExitPlanMode(allowedPrompts=[
  {"tool": "Bash", "prompt": "run tests"},
  {"tool": "Bash", "prompt": "install dependencies"}
])
```

يتيح للمستخدم منح الإذن مقدماً لأوامر المتابعة الروتينية، حتى لا يحتاج المساعد إلى التوقف عند كل مطالبة إذن خلال التنفيذ.

## ملاحظات

- لا معنى لـ `ExitPlanMode` إلا في العمل بطابع التنفيذ. إذا كان طلب المستخدم مهمة بحث أو شرح بلا تغييرات في الملفات، فأجب مباشرةً — لا تتوجه عبر وضع التخطيط لمجرد الخروج منه.
- يجب أن تكون الخطة مكتوبة على القرص قبل استدعاء هذه الأداة. لا يقبل `ExitPlanMode` متن الخطة كمعامل؛ إذ يقرأ من المسار الذي يتوقعه الإطار.
- إذا رفض المستخدم الخطة، تعود إلى وضع التخطيط. راجع بناءً على الملاحظات وقدم مرة أخرى؛ لا تبدأ في تعديل الملفات بينما الخطة غير معتمدة.
- الاعتماد يمنح الإذن بمغادرة وضع التخطيط واستخدام الأدوات المُعدِّلة (`Edit` و`Write` و`Bash` وغيرها) للنطاق الموصوف في الخطة. توسيع النطاق بعد ذلك يتطلب خطة جديدة أو موافقة صريحة من المستخدم.
- لا تستخدم `AskUserQuestion` لسؤال «هل تبدو هذه الخطة جيدة؟» قبل استدعاء هذه الأداة — طلب اعتماد الخطة هو بالضبط ما يفعله `ExitPlanMode`، ولا يستطيع المستخدم رؤية الخطة قبل تقديمها.
- اجعل الخطة ضئيلة وقابلة للتنفيذ. ينبغي أن يستطيع المراجع تصفحها في أقل من دقيقة وأن يفهم تحديداً ما سيتغير.
- إذا أدركت في منتصف التنفيذ أن الخطة كانت خاطئة، توقف وأبلغ المستخدم بدلاً من الانحراف بصمت. إعادة الدخول إلى وضع التخطيط خطوة صالحة.
