ما هي خطافات Claude Code؟ تشغيل أوامر الشِل بشكل حتمي
خطافات Claude Code هي أوامر شِل يعرّفها المستخدم وتُنفَّذ تلقائيًا عند نقاط محددة في دورة حياة Claude Code، فتجعل قاعدة "يجب أن يحدث هذا دائمًا" حقيقية وحتمية دون الاعتماد على حكم نموذج اللغة الكبير. الأحداث الكلاسيكية تسعة — SessionStart، وUserPromptSubmit، وPreToolUse، وPostToolUse، وNotification، وStop، وSubagentStop، وSessionEnd، وPreCompact — ومنها PreToolUse وغيره يمكنه الحظر (موقِفًا تعديلات الملفات المحمية أو الأوامر الخطيرة). تُعِدّها في settings.json تحت مفتاح "hooks" على هيئة اسم الحدث ← matcher ← type + command. عقد الإدخال/الإخراج: يتلقى الخطاف JSON على stdin (session_id، وtool_input، إلخ) ويُرجع عبر رمز الخروج 0 (نجاح) / 2 (حظر، مع تمرير stderr إلى Claude) أو JSON مُهيكَل (continue، وdecision:block، وpermissionDecision: deny/allow/ask). المبدأ الرئيسي هو "يمكن للخطافات التشديد لا التخفيف للقيود" (deny تفوز دائمًا، وتحظر حتى في وضع bypassPermissions؛ لكن الـ mod قد يتجاوز ذلك في بعض الحالات). حالات استخدام كلاسيكية: التنسيق التلقائي بعد التعديلات (PostToolUse + Edit|Write)، وحماية الملفات الحرجة، وإيقاف الأوامر الخطيرة، وإعادة حقن السياق (SessionStart)، والإشعارات/سجل التدقيق، والاختبار قبل التوقف (Stop). بخصوص الأمان، تشغّل الخطافات أوامر شِل عشوائية بصلاحياتك، لذا لا تُعِدّ سوى الموثوقة منها وتحقّق من المدخلات واقتبسها؛ وفي الجلسات التفاعلية لا تعمل خطافات ملفات الإعدادات حتى تثق بالمجلد (ميزة أمان)، والتعديلات المباشرة على تلك الملفات تسري عادةً تلقائيًا. استنادًا إلى التوثيق الرسمي، مرتكزًا على الأحداث التسعة الكلاسيكية وعقد الإدخال/الإخراج.