# CronCreate

يجدول إدراج موجّه (prompt) في قائمة الانتظار في وقت مستقبلي، سواء لمرة واحدة أو بصورة دورية. يستخدم صيغة cron القياسية ذات الخمسة حقول بتوقيت المستخدم المحلي، دون الحاجة إلى أي تحويل للمنطقة الزمنية.

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

- **التذكيرات الفردية**: عندما يرغب المستخدم في تذكيره في وقت محدد ("ذكّرني غدًا الساعة 3 مساءً"). مع `recurring: false` تُحذف المهمة تلقائيًا بعد تنفيذها.
- **الجداول الدورية**: عندما يتطلب الأمر تنفيذًا متكررًا ("كل يوم عمل الساعة 9 صباحًا"، "كل 30 دقيقة"). تغطي القيمة الافتراضية `recurring: true` هذه الحالة.
- **حلقات الوكيل المستقل**: لبناء سير عمل تُعيد تشغيل نفسها وفق جدول زمني، كالملخصات اليومية أو فحوصات الحالة الدورية.
- **المهام الدائمة**: عندما يجب أن يستمر الجدول بعد إعادة تشغيل الجلسة. يؤدي تمرير `durable: true` إلى حفظ المهمة في `.claude/scheduled_tasks.json`.
- **الأوقات التقريبية**: عندما يقول المستخدم "حوالي الساعة 9" أو "كل ساعة"، ينبغي اختيار قيمة دقائق غير مدورة (مثل `57 8 * * *` أو `7 * * * *`) تجنبًا لتزاحم المستخدمين عند :00 أو :30.

## المعاملات

- `cron` (string، مطلوب): تعبير cron بخمسة حقول وفق التوقيت المحلي للمستخدم. الصيغة: `دقيقة ساعة يوم-الشهر شهر يوم-الأسبوع`. مثال: `"0 9 * * 1-5"` يعني من الاثنين إلى الجمعة الساعة 9:00 صباحًا.
- `prompt` (string، مطلوب): نص الموجّه الذي يُدرج في قائمة الانتظار عند تشغيل cron — الرسالة الدقيقة التي ترسل إلى REPL في الوقت المحدد.
- `recurring` (boolean، اختياري، الافتراضي `true`): عند `true` تُنفَّذ المهمة في كل دورة cron مطابقة وتنتهي صلاحيتها تلقائيًا بعد 7 أيام. عند `false` تُنفَّذ مرة واحدة فحسب ثم تُحذف — للتذكيرات الفردية.
- `durable` (boolean، اختياري، الافتراضي `false`): عند `false` يعيش الجدول في الذاكرة فقط وينتهي مع انتهاء الجلسة. عند `true` تُحفظ المهمة في `.claude/scheduled_tasks.json` وتستمر بعد إعادة التشغيل.

## أمثلة

### مثال 1: تذكير لمرة واحدة

يقول المستخدم: "ذكّرني غدًا الساعة 2:30 مساءً بإرسال التقرير الأسبوعي." بفرض أن غدًا هو 21 أبريل:

```json
{
  "cron": "30 14 21 4 *",
  "prompt": "تذكير: أرسل التقرير الأسبوعي الآن.",
  "recurring": false,
  "durable": true
}
```

يضمن `recurring: false` حذف المهمة تلقائيًا بعد تنفيذها. يحافظ `durable: true` عليها في حال حدوث إعادة تشغيل قبل ذلك.

### مثال 2: مهمة صباحية دورية في أيام العمل

يقول المستخدم: "كل صباح يوم عمل، لخّص لي المشكلات المفتوحة على GitHub."

```json
{
  "cron": "3 9 * * 1-5",
  "prompt": "لخّص جميع مشكلات GitHub المفتوحة المُسندة إليّ.",
  "recurring": true,
  "durable": true
}
```

استخدام الدقيقة `3` بدلًا من `0` يتفادى ذروة الحمل عند الساعة المدوّرة. تنتهي صلاحية المهمة تلقائيًا بعد 7 أيام.

## ملاحظات

- **انتهاء صلاحية تلقائي بعد 7 أيام**: تُحذف المهام الدورية تلقائيًا بعد 7 أيام كحد أقصى. إن احتجت إلى جدول أطول، أعد إنشاء المهمة قبل انتهاء صلاحيتها.
- **التنفيذ عند الخمول فقط**: لا يُدرج `CronCreate` الموجّه في قائمة الانتظار إلا حين لا يعالج REPL طلبًا آخر. إن كان REPL مشغولًا وقت التشغيل، ينتظر الموجّه حتى تنتهي الاستعلام الحالي.
- **تجنب دقائق :00 و:30**: عند الأوقات التقريبية، اختر قيم دقائق غير مدورة عمدًا لتوزيع حمل النظام. احتفظ بـ :00/:30 للحالات التي يحدد فيها المستخدم تلك الدقيقة بالضبط.
- **لا حاجة لتحويل المنطقة الزمنية**: يُفسَّر تعبير cron مباشرةً وفق التوقيت المحلي للمستخدم. لا حاجة للتحويل إلى UTC أو أي منطقة زمنية أخرى.
