Hooks للأتمتة
حتى الآن، كانت كل قاعدة في الفريق — «شغّل lint قبل الـ commit»، «شغّل الاختبارات قبل الـ push» — تعتمد على الذاكرة: على أحدهم أن يتذكّر تشغيلها في كل مرة، وتحت الضغط يجري تخطّيها. في هذا الدرس سنتعرّف على Hooks: سكربتات يشغّلها Claude Code تلقائيًا عند وقوع حدث محدَّد مسبقًا — قبل تشغيل أداة معيّنة،
في المباني أجهزة كشف دخان تُفعَّل من تلقاء نفسها في اللحظة التي يظهر فيها الدخان، دون حاجة إلى أن يتذكّر أحد فحصها كل صباح. بالطريقة نفسها، يمكنك ضبط قاعدة مسبقًا تنطلق بنفسها في اللحظة المناسبة، دون الاعتماد على ذاكرة أي أحد.
- Hook
- سكربت أو أمر صدفة (shell) يشغّله Claude Code تلقائيًا عند وقوع حدث محدَّد مسبقًا في سير عمله، مثل PreToolUse أو SessionStart — دون الاعتماد على ذاكرة المستخدم.
- PreToolUse
- حدث Hook يعمل قبيل استدعاء Claude Code فعليًا لأداة معيّنة (مثل Bash). يمكنه فحص الإجراء المطلوب بل وحتى حجبه قبل أن يُنفَّذ.
- رمز الخروج 2 (الحجب)
- عندما ينتهي سكربت الـ Hook برمز الخروج 2، يحجب Claude Code الإجراء الذي كان على وشك التنفيذ، ويستلم رسالة الخطأ ليتمكّن من إصلاح المشكلة وإعادة المحاولة.
- SessionStart
- حدث Hook يعمل تلقائيًا مرة واحدة في بداية كل جلسة جديدة — مثلًا لتحميل حالة git أو سياق المشروع، دون أن يضطر أحد إلى طلب ذلك.