أمثلة Hooks للأتمتة — hooks-automation

مجانًا
تم التنزيل مرتين

أربع وصفات Hooks لـ Claude Code: بناء المشروع بعد تعديل ملف مصدري، وفحص الاعتماديات حين يتغير package.json أو requirements.txt أو Cargo.toml، وإشعار Slack حين ينتهي Claude، وتذكير يدفعه إلى الحسم بدل سؤالك في جلسة لا يراقبها أحد.

  • مجاني، ولا يتطلب أي دفع
  • تنزيل فوري بعد إتمام الطلب
  • مشترياتك محفوظة في حسابك

أربع وصفات تجعل Claude Code يتولى ما يحيط بتعديلاته: يبني المشروع بعد تغيير ملف مصدري، ويفحص الاعتماديات حين يمس ملفاتها، ويرسل إلى Slack رسالة عند انتهائه، ويتلقى تذكيرًا بالحسم بدل التوقف عند سؤال لا يجيب عنه أحد. وهي Hooks يشغّلها Claude Code عند أحداث بعينها، فلا تعمل في claude.ai أو تطبيق Claude.

البطاقات الأربع في plugin/hooks

البطاقات كما وردت في مصدرها: الحدث والمطابِق والمتغيرات والمتطلبات، بلا نص سكربت. سكربتات الثلاث الأولى في مجموعة أمثلة Hooks، وسكربت no-ask-human في المشروع الذي تحيل إليه بطاقته.

  • build-on-change: حدثها PostToolUse بعد كل استخدام لأداة Edit. يشغّل سكربتها npm run build لملفات js وjsx وts وtsx، وmake لملفات c وcpp وh وhpp.
  • dependency-checker: الحدث والمطابِق ذاتهما، لكنها لا تتحرك إلا عند تعديل ملف اعتماديات. تتطلب npm audit لـ Node.js، وsafety لـ Python، وcargo-audit لـ Rust.
  • slack-notifications: حدثها Stop حين ينهي Claude رده. إن كان SLACK_WEBHOOK_URL فارغًا خرج سكربتها بصمت، وإلا أرسل بـ curl رسالة ثابتة: Claude Code has finished working on your request.
  • no-ask-human: للجلسات التي لا يراقبها أحد. تعمل بعد أي أداة وترصد عشر صيغ لأسئلة موجهة إليك، مثل Should I وWould you like، فتذكّر Claude بخمس قواعد يحسم بها وحده، منها ثلاث محاولات لإصلاح الخطأ ثم توثيق العائق والانتقال إلى المهمة التالية. لا تمنع أي أداة، ويوقفها CC_NO_ASK_ENABLED=0، وتحتاج jq.

ماذا يجري حين يضيف Claude مكتبة

تطلب من Claude إضافة مكتبة، فيعدّل package.json بأداة Edit. يطلق Claude Code عندها حدث PostToolUse ويمرر إلى السكربت على مدخله القياسي JSON يصف الأداة ومدخلاتها، فيستخرج سكربت dependency-checker المسار من tool_input.file_path بواسطة jq، ويجده package.json فيشغّل npm audit --audit-level=high. مع requirements.txt أو Pipfile يجرب pip-audit ثم safety check، ومع Cargo.toml يشغّل cargo audit، وأي ملف آخر يمر دون فحص. وإن أضافها Claude بأمر npm install عبر أداة Bash فلن يعمل السكربت، لأن المطابِق Edit لا يلتقط Bash.

تركيب وصفة واحدة يدويًا

  • خذ سكربت الوصفة من مصدره واحفظه في المشروع، مثل .claude/hooks/dependency-checker.sh.
  • ثبّت jq، ثم ما تحتاجه الوصفة: npm أو make، أو أداة الفحص الخاصة بلغة مشروعك، أو curl مع رابط Incoming Webhook من Slack تضعه في SLACK_WEBHOOK_URL.
  • في .claude/settings.json للمشروع، أو ~/.claude/settings.json لكل مشروعاتك، سجّل تحت hooks الحدث والمطابِق من ترويسة البطاقة، وأمرًا من النوع command يشغّله عبر bash صراحةً، فسكربتا البناء والفحص بلا سطر shebang.
  • افتح /hooks في Claude Code لترى الوصفة مسجلة، وجرّبها أولًا على نسخة من مشروع لا تخشى عليه.

أرفقتُ README-AR.md بخطوات البداية ورابط توثيق Hooks الرسمي.

ما لا تفعله الوصفات كما هي

  • في مجلد plugin ملف plugin.json بلا hooks.json، فتثبيته إضافةً لا يشغّل شيئًا.
  • تذكر بطاقتا البناء والفحص المتغير CLAUDE_TOOL_FILE_PATH، أما سكربتاهما فيقرآن المسار من JSON المدخل القياسي. وبطاقة build-on-change تقول إنها بلا متطلبات، وسكربتها يحتاج jq.
  • المطابِق Edit لا يلتقط ملفًا تنشئه أداة Write؛ اكتب Edit|Write لتشملهما.
  • ينتهي أمرا البناء والفحص بـ || true، فلا يعلم Claude بفشل البناء أو بثغرة يكشفها الفحص؛ ليصله ذلك اطبع الخطأ في stderr واخرج برمز 2.
  • الـ Hook ينفّذ أوامر بصلاحيات حسابك، فاقرأ السكربت قبل تسجيله، وأبقِ رابط Slack خارج git.

الترخيص MIT من مستودع BuildWithClaude لصاحبه davepoon ومجتمعه، وأصل no-ask-human مشروع claude-code-hooks.