Skip to main content

أوامر محفوظة، تُشغَّل عند الطلب

الإجراء هو أمر تكتبه مرة واحدة وتشغّله متى شئت — “لخّص طلبات السحب المفتوحة”، “سوّد تحديثي الأسبوعي”، “افرز صندوق بريدي”. إنه التوأم عند الطلب لـمهمة النبض: نفس آلية التنفيذ، لكن بلا جدول. الإجراء لا ينطلق من تلقاء نفسه أبداً — يبقى في صفحة الإجراءات حتى تضغط تشغيل أو تطلب من وولفيش تشغيله. الإجراءات المحفوظة بيانات بسيطة — قائمة مسطّحة من سجلّات { title, prompt, mode, icon, projectId } في brain/procedures.json. لا تُحرّر هذا الملف يدوياً أبداً. أدِرها من صفحة الإجراءات، أو تحدّث فقط إلى وولفيش عبر قدرة procedures (‏procedure_list، procedure_view، procedure_create، procedure_edit، procedure_delete، procedure_run).

إجراء أم أتمتة؟

الإجراءات والأتمتة شقيقان يتشاركان مُشغّلاً واحداً لكن يختلفان فيما يبدؤهما. الاختيار بينهما يتلخّص في سؤال واحد: هل تريد إعادة تشغيل هذا بنفسك، أم أن يعمل على مؤقّت؟
لا كلمات توقيت؟ إذاً هو إجراء. “كل يوم”، “بعد 15 دقيقة”، “من الآن فصاعداً” ← تلك أتمتة. أما المهمة العابرة التي تريد إنجازها الآن فليست أياً منهما — إنها ببساطة عمل يؤديه وولفيش في اللحظة؛ ولا يُحفَظ شيء.

صفحة الإجراءات

افتح الإجراءات من قائمة التطبيق. كل إجراء محفوظ بطاقة تعرض رمزه التعبيري، وعنوانه، ومتى عُدّل آخر مرة، ومعاينة لأمره — والأحدث تعديلاً في الأعلى. والإجراء المربوط بمشروع يعرض اسم المشروع على بطاقته. والصفحة تُنعش نفسها حيّةً حين يتغيّر المخزن من تحتها — اطلب من وولفيش وسط محادثة حفظ إجراء أو تعديله وستظهر بطاقته أو تتحدّث في مكانها. في المحرّر، العنوان مطلوب — فهو اسم البطاقة — والأمر حقل Markdown. منتقي رموز تعبيرية يضبط أيقونة البطاقة (لكل إجراء واحدة؛ الجديد يبدأ بـ📋)، ومنتقي مشروع يربط الإجراء اختيارياً بمشروع — فتُنفَّذ تشغيلاته بتعليمات المشروع وقائمة ملفاته، وتُسجَّل محادثاتها تحته. تُحفَظ التعديلات تلقائياً بعد نحو نصف ثانية من توقّفك عن الكتابة، فلا زر حفظ، بل تم فقط.
الإجراء لا يحمل حالة خاصة به — لا مفتاح “تفعيل” ولا حقل آخر تشغيل. إنه بيانات خاملة: يبقى موجوداً حتى تحذفه، و”التشغيل” خاصية للتشغيل نفسه لا للإجراء المحفوظ.

تشغيل إجراء

ابدأ تشغيلاً بطريقتين:
  • تشغيل من البطاقة، أو
  • اطلب من وولفيش“شغّل موجزي الصباحي” — فيُطلقه عبر procedure_run.
في كلتا الحالتين، يعمل الأمر بوصفه محادثة خلفية جديدة مكتفية بذاتها — لا داخل المحادثة التي أنت فيها — وبوضع الإجراء نفسه (ختمُه فردي/سير عمل، لا الوضع الذي تصادف أن محادثتك عليه). وهذه القاعدة الوحيدة التي تصوغ كل أمر إجراء: التشغيل لا يحمل أي ذاكرة عن محادثتك الحالية، فيجب أن يكون الأمر قائماً بذاته. التشغيل يبقى بعيداً عن طريقك وهو يعمل — عمداً. فالإجراء مجرّد أمر محفوظ يؤدّي عمله، فلا بطاقة ولا غطاء ولا شيء يُغلَق؛ والتطبيق يبقى صالحاً للاستعمال كله، ولا يرفع إشعاراً إلا التشغيل الذي يفشل، يسمّي فيه ما انكسر. والتشغيل مختومٌ برمز الإجراء التعبيري وموسومٌ بأيقونة Play (وسم الأصل [procedure]) في السجلّ، فتعرف بلمحة لأيّ إجراء يعود. وبعيداً عن طريقك لا يعني بعيداً عن متناولك. فمنذ الإصدار 1.0.236 صار تشغيل الإجراء ينشئ محادثته قبل أن يبدأ بدل أن يظهر بعد انقضائه: يظهر الصفّ في شريط المحادثات فوراً بنبضة معالجةٍ حيّة، وتستطيع أن تفتحه وتشاهد الردّ يصل، وزرّ الإيقاف يعمل عليه — الزرّ نفسه، والحركة نفسها، لتشغيلٍ لم يكتبه أحد. ويُكتَب التقدّم على القرص في أثناء العمل، فالإغلاق أو الانهيار في منتصف الطريق يخلّف نصّاً حقيقيّاً لا طلباً عارياً، وفتحُ التطبيق من جديد في أثنائه يجده ماضياً في عمله.
  • مغلق ومعزول. التشغيل محادثته الخاصة — لا يمكنه أن يشوّش مقياس سياق محادثتك الحية، أو يخطف زر التوقّف فيها، أو يستبدلها. يعمل حتى الاكتمال من تلقاء نفسه؛ ولا ينتظر وولفيش النتيجة.
  • حتى ثلاثة معاً، مُدمَج. تشغيلات الإجراءات تتشارك مجمع التنفيذ المحدود مع الأتمتة — ثلاث خانات متزامنة: إن كانت الخانات كلها مشغولة، ينتظر التشغيل في الطابور وينطلق لحظة تخلو واحدة — وطلب تشغيل الإجراء نفسه ثانيةً وهو قيد التنفيذ يُدمَج بدل أن يعمل مرتين.
تشغيل الإجراء يوافق تلقائياً على كل استدعاء أداة — تماماً مثل مهمة النبض، تُتجاوز نافذة تأكيد Amygdala. الإجراء الذي يرسل رسائل أو يحذف ملفات يفعل ذلك بلا أحد يراقب. احفظ فقط الأوامر الآمنة للتشغيل دون إشراف؛ وتنطبق هنا طبقة القرار نفسها في ماذا تجدول.

عبر وولفيش

نادراً ما تحتاج لمسّ الصفحة — فقط اطلب:
  • “احفظ هذا إجراءً” / “اصنع أمراً محفوظاً لتحديثي الأسبوعي” ← يُنشئ واحداً
  • “ما الإجراءات التي لديّ؟” ← يسردها بالرقم والعنوان
  • “أرِني إجراء فرز صندوق البريد” ← يطبع أمره الكامل
  • “أعِد تسميته إلى التحديث الأسبوعي” / “عدّل الأمر ليشمل GitHub أيضاً” ← يُعدّل العنوان و/أو الأمر
  • “شغّل موجزي الصباحي” ← يُطلقه الآن، في الخلفية
  • “احذف إجراء ملخّص طلبات السحب” ← يزيله (يؤكّد وولفيش أولاً)
خلف هذه الصياغات قدرة procedures. تشير إلى إجراء برقمه (من القائمة)، أو عنوانه الدقيق، أو معرّفه (id):
  • procedure_list — كل إجراء: رقمه وعنوانه ومعاينة سطر واحد من الأمر
  • procedure_view — عنوان إجراءٍ واحد وأمره الكامل
  • procedure_create — يحفظ إجراءً جديداً (عنوان + أمر مكتفٍ بذاته، مع mode اختياري)
  • procedure_edit — يغيّر عنواناً و/أو أمراً و/أو وضعاً (أغفِل ما تريد إبقاءه)
  • procedure_delete — يزيل إجراءً نهائياً (يطلب منك التأكيد)
  • procedure_run — يُشغّل إجراءً الآن، في محادثة خلفية جديدة
إنه “أطلِقه وانسَه”: يعود procedure_run لحظة جدولة التشغيل، فيتابع وولفيش حديثه معك بينما يؤدي التشغيل عمله. لا تتوقّع أن يُعيد إليك النتيجة في وسط المحادثة — راجع التشغيل في السجل عند اكتماله.

كتابة أمر إجراء جيد

يعمل التشغيل بكامل أدوات وولفيش لكن بلا سياق محادثة، فاكتب الأمر كما تُحيط نفسك من الصفر:
  • كن محدداً ومكتفياً بذاتك. “لخّص إشعارات GitHub غير المقروءة وألحِق الملخّص بسجل اليوم” أفضل من “لخّصها” — لا “ها” في محادثة جديدة.
  • قل أين تذهب المخرجات — ملف، أو ذاكرة، أو أنت على قناة (telegram_send / whatsapp_send، فقط إن كانت تلك القناة موصولة).
  • أبقِه آمناً للتشغيل دون إشراف. فضّل القراءة / التلخيص / الإبلاغ على الإجراءات التي لا رجعة فيها، لأن التشغيل يوافق تلقائياً على استدعاءات أدواته. طبّق قائمة ماذا تجدول على الإجراء كما تطبّقها على مهمة مجدولة.

أين تُحفَظ

تُخزَّن الإجراءات في ملف JSON واحد عند brain/procedures.json في مساحة العمل — قائمة مسطّحة، تُكتَب بشكل ذرّي فلا تتمزّق بسبب انهيار أو تعديل متزامن. كل سجلّ هو { id, title, prompt, mode, icon, projectId, createdAt, updatedAt } (يظهر projectId عند الربط فقط)؛ وتعرض القائمة الأحدث تعديلاً أولاً. عامِل الملف بوصفه بيانات مُدارة: أنشئ وعدّل واحذف من الصفحة أو عبر وولفيش بدل تحريره يدوياً.

اقرأ أيضاً

  • النبض والجدولة — النظير المجدول: شغّل أمراً على مؤقّت بدل تشغيله عند الطلب
  • ماذا تجدول — طبقة قرار الأمان لأي شيء يعمل دون إشراف، والإجراءات منها
  • القدرات المدمجة — قدرة procedures وأدواتها، مسرودةً إلى جانب كل قدرة مدمجة أخرى
  • إنشاء القدرات — حين يستحق سير عمل متكرر أداةً جديدة حقيقية، لا مجرّد أمر محفوظ