ضبطت نفسي وأنا أكتب نفس التعليمة المؤلفة من 200 كلمة للمرة الرابعة في أسبوع واحد. "اكتب رسالة commit تقليدية للتغييرات الموضوعة في المرحلة، واجعل السطر الأول أقل من 72 حرفاً، وأشر إلى رقم المشكلة إن وُجد رقم في اسم الفرع..." في كل. مرة. بعينها. هذه هي اللحظة التي ينبغي فيها أن تتوقف وتبني أمر شرطة مائلة. فلنقم بإعداد أوامر الشرطة المائلة والمهارات في Claude Code، ونتخلص من إعادة الكتابة إلى الأبد.
كلتا الميزتين تؤديان الغرض الأساسي ذاته — تغليف التعليمات لإمكانية إعادة استخدامها — لكنهما مصممتان لأعمال مختلفة. أوامر الشرطة المائلة مخصصة للأشياء التي تُشغّلها أنت. أما المهارات فهي للأشياء التي يُشغّلها Claude حين تستدعيها المهمة. استوعب هذا الفرق، وسيكون الباقي سهلاً.
أوامر الشرطة المائلة: اختصاراتك الشخصية
أمر الشرطة المائلة هو تعليمة محفوظة تطلقها بكتابة /الاسم. تنشئه بوضع ملف markdown في مجلد .claude/commands/ داخل مشروعك. يصبح اسم الملف هو الأمر.
دعني أتخلص من تعليمة رسالة الـ commit نهائياً. أنشئ .claude/commands/commit.md:
اكتب رسالة commit تقليدية للتغييرات الموضوعة حالياً في المرحلة.
القواعد:
- السطر الأول أقل من 72 حرفاً، في صيغة الأمر ("Add"، وليس "Added").
- بادئة النوع: feat أو fix أو refactor أو docs أو test أو chore.
- إذا كان اسم الفرع يحتوي على رقم مشكلة، أشر إليه في نص الرسالة.
- أظهر لي الرسالة فقط. لا تنفّذ git commit بنفسك.
نفّذ أولاً `git diff --staged` لترى ما الذي تغيّر.
الآن في أي جلسة أكتب /commit ويقوم Claude بالعمل كله. أربعة أحرف بدلاً من مئتي كلمة. الملف هو الأمر — كل ما فيه يُرسَل كتعليمتي حين أستدعيه.
تمرير الوسيطات
تصبح الأوامر أكثر فائدة حين تقبل مدخلات. استخدم $ARGUMENTS كعنصر نائب. إليك .claude/commands/explain.md:
اشرح كيف يعمل $ARGUMENTS في قاعدة الكود هذه.
اعثر على مكان تعريفه، وتتبّع كيفية استخدامه، وأعطني ملخصاً قصيراً
بلغة بسيطة. استخدم وكيلاً فرعياً للبحث لكي لا تمتلئ محادثتنا
بمحتويات الملفات.
ثم /explain تدفق المصادقة يضع "تدفق المصادقة" في ذلك الموضع. أمر واحد، استخدامات لا نهاية لها. أمتلك الآن عشرات هذه الأوامر — /test و/review و/changelog — وقد أزالت بهدوء معظم التكرار الممل من يومي.
المهارات: التعليمات التي يستدعيها Claude بنفسه
أوامر الشرطة المائلة رائعة حين تعرف أنت ما تريده. لكن أحياناً تريد أن يطبّق Claude معرفة متخصصة تلقائياً، في منتصف مهمة ما، دون أن تتذكر استدعاء أي شيء. هذا ما تقوم به المهارة.
المهارة هي مجلد يحتوي على ملف SKILL.md. يصف أعلى هذا الملف متى تنطبق المهارة. يحتفظ Claude بهذا الوصف في ذهنه، وحين تتطابق مهمة ما، يحمّل التعليمات الكاملة من تلقاء نفسه. لا تكتب أمراً. الأمر يحدث وحسب.
لنقل إن فريقك لديه طريقة صارمة لكتابة ترحيلات قاعدة البيانات. أنشئ .claude/skills/migrations/SKILL.md:
---
name: migrations
description: كيفية كتابة ترحيلات قاعدة البيانات في هذا المشروع.
استخدم عند إنشاء ملف ترحيل أو تعديله أو مراجعته.
---
تقع الترحيلات في db/migrations، وتُسمّى بادئةً بطابع زمني بتوقيت UTC.
يجب على كل ترحيل:
- أن يكون قابلاً للعكس — بما يشمل up وdown معاً.
- ألا يحذف عموداً في الترحيل ذاته الذي يتوقف عن الكتابة إليه.
قسّمه على نشرتين منفصلتين.
- تغليف تغييرات المخطط في معاملة.
قبل كتابة ترحيل، اقرأ آخر ثلاثة ترحيلات لمطابقة الأسلوب.
الآن حين أطلب من Claude "إضافة ترحيل للعمود الجديد archived_at"، يلاحظ أن المهمة تتطابق مع وصف المهارة، ويحمّل هذه القواعد ويتبعها — دون أن أنطق بكلمة "مهارة". هذا هو السحر. المعرفة تظهر في اللحظة المناسبة تماماً، وتبقى بعيدة في غير ذلك.
أيهما أبني؟
إليك القاعدة البسيطة التي أتبعها.
ابنِ أمر شرطة مائلة حين تكون أنت من يقرر متى ينفّذه. رسائل الـ commit، توليد سجل التغييرات، إطلاق مراجعة محددة — هذه إجراءات متعمدة. أنت من يستدعيها.
ابنِ مهارة حين يجب أن يقرر Claude بنفسه. اصطلاحات الكود، وقواعد النطاق، ومعايير التنسيق — أي شيء ينبغي أن ينطبق تلقائياً كلما ظهرت مهمة مناسبة. لا تريد أن تتذكر كتابة /migrations في كل مرة تلمس فيها قاعدة البيانات. تريد أن تكون القواعد موجودة وكفى.
مؤشر عملي مفيد: إذا بدأت الجملة بـ "كلما فعل Claude X، يجب أن..." — فهي مهارة. وإذا بدأت بـ "أريد أحياناً أن..." — فهي أمر.
الوصف هو العمود الفقري
بالنسبة للمهارات تحديداً، سطر description هو كل شيء. هذه هي الطريقة التي يقرر بها Claude ما إذا كانت المهارة تنطبق. وصف مبهم يعني أن المهارة لن تنشط أبداً. كن محدداً بشأن المُشغّل: "استخدم عند إنشاء ملف ترحيل أو تعديله أو مراجعته" يخبر Claude متى يوقظها بالضبط. "أشياء قاعدة البيانات" لا يكفي.
الأمر مشابه تماماً لكتابة وصف أداة جيد. أنت تكتب لوكيل يجب أن يقرر في اللحظة ذاتها ما إذا كان هذا الشيء ذا صلة. أعطِه إجابة واضحة بنعم أو لا.
ابدأ بما يزعجك أكثر
لا تجلس لبناء عشرين منها دفعة واحدة. ستخمّن خطأ ما تحتاجه فعلاً. بدلاً من ذلك، انتظر حتى تشعر بالاحتكاك — تلك الكتابة الرابعة، تلك القاعدة التي تواصل شرحها — وابنِ تلك الواحدة. في تلك اللحظة بالذات. يستغرق الأمر دقيقتين والنتيجة فورية.
نما مجموعتي بأكملها بهذه الطريقة، إزعاج تلو إزعاج. جاء أمر الـ commit من إعادة كتابة تعليمات الـ commit. جاءت مهارة الترحيلات من ارتكاب نفس خطأ الترحيل مرتين. كلٌّ منها حلّ إزعاجاً حقيقياً ومحدداً كنت أستطيع تسميته.
إذن، هذا واجبك. في المرة القادمة التي تضبط فيها نفسك وأنت تكتب تعليمة كتبتها من قبل، توقف. افتح .claude/commands/، أنشئ ملفاً، الصق التعليمة. لقد استردّت للتو كل نسخة مستقبلية من تلك الدقيقتين. افعل ذلك عشر مرات وسيتوقف إعداد Claude Code الخاص بك عن أن يبدو عاماً، وسيبدأ يبدو وكأنه ملكك.
