تجاوز إلى المحتوى
العربية
المستوى 11: التوسعة والأتمتة
الدرس 4 · +10 XP

ما هي الـ hooks؟

في المستوى 9 تعلّمت أن تكتب أشياء في CLAUDE.md — «شغّل الـ formatter دائمًا بعد التعديل»، «لا تلمس مجلد migrations أبدًا». وهذا ينفع في معظم الأحيان. لكنه طلب. يقرؤه Claude، ويتّبعه عادةً، وأحيانًا — وهو منشغل، مشتّتٌ بمشكلة صعبة — ينساه.

أما القواعد التي لا يمكن نسيانها على الإطلاق، فتريد لها شيئًا أقوى.

الـ hook أمرٌ يشغّله برنامج Claude Code تلقائيًا في لحظة محددة — مثل كل مرة يُعدَّل فيها ملف، أو قُبيل تنفيذ أي أمر. ينطلق مهما قرّر Claude، لأن الـ harness هو من يشغّله، لا الـ model.

ذلك الجزء الأخير هو بيت القصيد، فلنتوقّف عنده.

الطلب مقابل الضمان

هناك فاعلان مختلفان هنا، والـ hooks تعيش مع الفاعل الموثوق.

  • الـ model هو عقل Claude. ذكيّ، لكنه يتّخذ أحكامًا تقديرية — والحكم التقديري قد يتفاوت.
  • الـ harness هو البرنامج الملتفّ حول العقل (الشيء الذي ثبّتّه في الدرس 2.2). إنه برمجيات صرفة. يفعل بالضبط ما هو مُهيّأ لفعله، في كل مرة دون استثناء.

الـ CLAUDE.md يخاطب الـ model — «من فضلك افعل هذا». أما الـ hook فمربوطٌ بالـ harness — «هذا سيحدث». الأول ورقة لاصقة على الثلاجة. والثاني كاشف الدخان الذي ينطلق سواء تذكّر أحدٌ مراقبة الموقد أم لا.

إن كان نسيانه ولو مرة واحدة مشكلة حقيقية، فهو hook — لا سطرٌ في CLAUDE.md.

الـ hooks تنطلق عند events

أنت لا تكتب hook ليعمل «متى ما اتّفق». بل تربطه بـ لحظة في عمل Claude. وأشهرها:

  • PreToolUseقُبيل استخدام Claude لـ tool (تنفيذ أمر، تعديل ملف). وهذا يستطيع حتى أن يمنع الإجراء. فـ hook هنا يستطيع اعتراض rm -rf ورفضه قبل أن ينفَّذ.
  • PostToolUseعقب ذلك مباشرة. والمثال الكلاسيكي: عُدّل ملف، فشغّل الـ formatter عليه الآن.
  • UserPromptSubmit — مباشرة بعد ضغطك على Enter، قبل أن يرى Claude رسالتك.
  • Stop — حين ينتهي Claude ويعيد الدور إليك. مفيد لإصدار صوت «تمّ!» أو إشعار على سطح المكتب.

كل event يسلّم الـ hook الخاص بك بعض المعلومات (أي tool، أي ملف، أي أمر) كي يقرّر ما يفعله.

فيمَ يستخدمها الناس فعلًا

القائمة الصادقة قصيرة وعملية:

  • Auto-format لكل ملف لحظة يعدّله Claude، كي تبقى الكود مرتّبة دائمًا.
  • منع الأوامر الخطيرةPreToolUse hook يرفض أن يدع أي شيء يمسّ الـ production.
  • تشغيل الـ linter أو الاختبارات بعد تغيير، وإعادة الإخفاقات إلى Claude كي يصلحها.
  • إشعارك — صوت أو تنبيه على الهاتف حين تنتهي مهمة طويلة، كي تتمكّن من الابتعاد.

لاحظ القاسم المشترك: هذه هي الأعمال المملّة التي يجب أن تحدث في كل مرة. وهذه هي النقطة المثلى. فالـ hooks تحوّل «آمل أن يتذكّر Claude» إلى «الآلة تتولّى الأمر».

ما التالي

الآن الجزء المُرضي: ستكتب واحدًا فعلًا. hook قصير يعمل في كل مرة يعدّل فيها Claude ملفًا — وستراه ينطلق من تلقاء نفسه.