‏تخطَّ إلى المحتوى
kenjtecJournal
‏البحث في Journal

‏خطافات Claude Code: القواعد المتكررة تصبح خطوات ثابتة في سير العمل

‏ترتبط الخطافات (hooks) بأحداث في سير عمل Claude Code. وتُظهر حمايةٌ صغيرة من الكتابة مخرجاتِ القرار، والتحققَ من المسارات، وحدودَ مثل هذا الضبط.

‏تدحرج لينا قطع دراجة على منحدر صغير نحو بوابة فحص؛ وتقف قطعة مرجعية داخل وعاء زجاجي. رسم توضيحي بالذكاء الاصطناعي.

‏عبارة «يُرجى تغيير المسودات فقط» تعليمات عمل معقولة. لكنها ليست بعدُ نقطة تحقق تقنية. يمكن للخطاف أن يطبّق قاعدة متكررة عند النقطة التي يكون فيها إجراء محدد قد جُهِّز. وبهذا يتحول طلب عام إلى قرار قابل للتحقق بشأن استدعاء أداة بعينه.

‏يصف ‏مرجع Claude Code ‏الحدثَ PreToolUse من بين أحداث أخرى: فهو يقع بعد إنشاء معاملات الأداة وقبل معالجة الاستدعاء. ويمكن للخطاف أن يُرجع قرارًا. تشرح الأمثلة التالية مسودة خاصة بنا؛ ولم يُثبَّت أي إعداد للخطافات ولم يُشغَّل من أجلها.

‏ما المعلومات المتاحة عند نقطة القرار؟

‏يحتوي مشروعنا التعليمي على مجلد للمسودات وملف مرجعي بجانبه. ينبغي للوكيل أن يحرّر المسودات فقط. لذلك تنظر القاعدة المعقولة إلى الهدف المحدد لإجراء الكتابة. ولا تقرر ما إذا كان محتوى المحادثة بأكمله جديرًا بالثقة.

‏توفّر الواجهة اسم الأداة والمُدخَل. وبالنسبة إلى طلب ملف مناسب، يمكن تحديد الهدف منهما. أما الأداة غير المعروفة أو المُدخَل غير المفهوم فينبغي أن يؤديا إلى حالة خاصة بهما. ويجب ألا يبدو خطأ صامت في برنامج التحقق كأنه مسار جرى التحقق منه بنجاح.

‏القرار قيمة إرجاع منظَّمة

‏تبدو قيمة رفض توضيحية في بنية PreToolUse الموثَّقة على النحو التالي. والسبب من صياغتنا الخاصة؛ وهو يصف القاعدة المحلية، لا تقييمًا عامًا للمستخدم.

{
  "hookSpecificOutput": {
    "hookEventName": "PreToolUse",
    "permissionDecision": "deny",
    "permissionDecisionReason": "The target file is outside the drafts area."
  }
}

‏هذا المقتطف هو قيمة الإرجاع، وليس برنامج تحقق كاملًا. فهو لا يتضمن تسجيل الخطاف ولا قراءة المُدخَل والتحقق منه. وهذا الفصل بالذات مفيد: إذ يمكن النظر في القاعدة والتقييم التقني ومخرجات الواجهة كلٍّ على حدة.

‏الانتماء إلى مسار أكثر من مجرد بادئة متطابقة

‏قد تخلط المقارنة المجردة بين سلاسل الأحرف بين مجلدات متجاورة ذات أسماء متشابهة. لذلك ينبغي لقاعدتك الخاصة أن تعمل بمسارات محلولة بشكل لا لبس فيه وأن تتحقق مما إذا كان الهدف ينتمي فعلًا إلى المجلد الجذر المقصود. ويجب مراعاة الفواصل المختلفة والروابط في البيئة المستخدمة.

own rule logic, schematic:
  Input fully readable? Otherwise check status unknown.
  Tool belongs to the write path being handled? Otherwise not checked.
  Resolve target and permitted root unambiguously.
  Target really inside the root? Otherwise deny.
  Assess only the specific call being handled.

‏لا يوحي هذا المخطط عمدًا بحماية كاملة. فالبرامج الخارجية على وجه الخصوص، التي تغيّر بنفسها ملفات أخرى، تحتاج إلى نظر مختلف عن حقل ملف واحد. ولا يقول ملف البدء المسموح به شيئًا بعدُ عن إجراءات المتابعة التي ينفذها البرنامج النصي.

‏أربعة اختبارات تجعل النطاق مرئيًا

‏في مشروع مؤقت، أنشئ ملفًا مسموحًا به، ومرجعًا محميًا، ومجلدًا مجاورًا باسم مشابه. أضف مُدخَلًا غير صالح. ولكل حالة، دوِّن مسبقًا القرار المتوقع. ثم انظر إلى قيمة الإرجاع وإلى التنفيذ الفعلي كليهما.

‏اختبر أيضًا تعطُّل برنامج التحقق نفسه. يعتمد سلوك التعطل على الحدث وعلى الإعداد، ولذلك فهو جزء من القبول. وغياب الرسالة ليس دليلًا على أن القاعدة جرى التحقق منها بنجاح.

‏لكل اختبار، سجِّل أيضًا ما إذا كان الخطاف قد بُلغ أصلًا. فالإجراء الذي يسلك مسارًا مختلفًا يمكنه تجاوز القاعدة دون أن يكون فحص المسار الداخلي فيها قد عمل بشكل خاطئ.

‏الخطاف ليس إطار حماية كاملًا

‏يتعلق PreToolUse باستدعاءات الأدوات. ويمكن للسياق أن يدخل الجلسة عبر مسارات أخرى؛ ويصف المرجع الحالي صراحةً حدودًا في هذا الشأن. لذلك لا يحل الخطاف محل الأذونات ولا محل التحكم في البيئة، وليس ضمانة عامة ضد حقن الأوامر (prompt injection).

‏ابدأ بقاعدة محلية واحدة ووثِّق المسارات التي تغطيها والتي لا تغطيها. يكمن المكسب التقني في نقطة تحقق مفهومة. أما ما إذا كانت نقطة التحقق هذه مُعدّة بشكل صحيح في إصدارك، فيجب أن تُظهره تجربة فعلية بالواجهات المناسبة.

‏المصادر وحالة الوثائق: 25 أكتوبر 2026.

‏هامبورغ هي نقطة انطلاقنا.

‏الفائدة ترافقك أينما ذهبت.

‏تطبيقات عملية للذكاء الاصطناعي من هامبورغ، بشرح للجميع.

‏المقالات المحفوظة