مهارة Claude Code هي مجلد يحتوي بداخله على ملف SKILL.md: مقدمة YAML تُخبر Claude متى يستخدم المهارة، وتعليمات Markdown تُحدد ماذا يفعل بمجرد تفعيلها. هذا هو النموذج بأكمله. ولإنشاء واحدة، تُنشئ المجلد، وتكتب الملف المكوّن من جزأين، ثم يقوم Claude إما بتحميلها تلقائيًا عندما يتطابق طلبك مع الوصف، أو تستدعيها مباشرة عبر /skill-name. لا حاجة لبناء إضافة، ولا لإعادة تشغيل في معظم الحالات. نحن نُشغّل خط إنتاج المحتوى الكامل لهذا الموقع كمهارة Claude Code واحدة، لذا فإن الشرح أدناه يتبع الشكل نفسه الذي نستخدمه في بيئة الإنتاج، وليس مثالاً تجريبيًا.
تكتسب المهارات أهميتها لأنها تحل محل الشيء الذي ينتهي كل مستخدم مكثّف لـ Claude Code بفعله: لصق قائمة التحقق نفسها أو الإجراء متعدد الخطوات نفسه في المحادثة مرارًا وتكرارًا. انقل ذلك الإجراء إلى مهارة مرة واحدة، فيصبح قدرة قابلة لإعادة الاستخدام وخاضعة للتحكم في الإصدارات، تُحمَّل فقط عندما تكون ذات صلة. وفقًا لـ المقال الهندسي من Anthropic، تتبع المهارات معيارًا مفتوحًا مُصمّمًا بحيث يستدعي الوكيل الخبرة عند الطلب بدلاً من حملها في السياق طوال الوقت.
ما هي مهارة Claude Code؟
المهارة هي أصغر وحدة من الإجراءات القابلة لإعادة الاستخدام في Claude Code. من الناحية البنيوية، هي دليل يحتوي على ملف واحد مطلوب، SKILL.md، بالإضافة إلى أي ملفات دعم اختيارية. تحمل المقدمة (frontmatter) حقلَي name وdescription؛ أما المتن فيحمل التعليمات التي يتبعها Claude عند تشغيل المهارة. وفقًا لـ وثائق Claude Code، يصبح اسم الدليل هو الأمر المائل (slash command) الذي تكتبه، والوصف هو ما يقرأه Claude ليقرر ما إذا كان سيُحمّل المهارة تلقائيًا. في 2026، تم دمج الأوامر المخصصة ضمن المهارات: ملف في .claude/commands/deploy.md ومهارة في .claude/skills/deploy/SKILL.md كلاهما يُنشئ /deploy ويتصرف بالطريقة نفسها، باستثناء أن مجلد المهارة يمكنه أيضًا تجميع سكربتات وملفات مرجعية. إذا سبق لك كتابة أمر مائل من قبل، فأنت تعرف بالفعل 80% من المهارات.
أين تُوجد المهارات
المكان الذي تضع فيه المجلد يُحدد نطاقه. هناك ثلاثة مستويات، والاختيار يتعلق بمن ينبغي أن يرى المهارة:
| المستوى | المسار | متاحة في |
|---|---|---|
| شخصي | ~/.claude/skills/<name>/SKILL.md | جميع مشاريعك |
| مشروع | .claude/skills/<name>/SKILL.md | هذا المستودع فقط (اربطه بالـ commit لمشاركته مع الفريق) |
| إضافة | <plugin>/skills/<name>/SKILL.md | حيثما كانت الإضافة مُفعّلة |
عند تعارض الأسماء، يتجاوز الشخصي المشروع، وكلاهما يتجاوز مهارة مُجمّعة تحمل الاسم نفسه، وبذلك تحل مهارة code-review الخاصة بالمشروع محل /code-review المدمجة. كما تُحمَّل مهارات المشروع من مجلدات .claude/skills/ المتداخلة، مما يتيح لحزمة داخل مستودع أحادي (monorepo) شحن مهارات تنطبق فقط عندما تعمل داخل تلك الحزمة. بالنسبة لفريق، فإن المستوى على مستوى المشروع مع الربط عبر git هو الخيار الصحيح دائمًا تقريبًا: يحصل الجميع على الضوابط نفسها تلقائيًا، بالطريقة نفسها التي يُوحّد بها ملف AGENTS.md المشترك سلوك الوكيل عبر المستودع.
كيفية إنشاء مهارة Claude Code، خطوة بخطوة
إليك الحلقة الكاملة لمهارة حقيقية ومفيدة تُلخّص تغييراتك غير المُلتزَم بها (uncommitted). أولاً، أنشئ الدليل في مجلد المهارات الشخصي الخاص بك:
mkdir -p ~/.claude/skills/summarize-changes
ثم احفظ هذا في ~/.claude/skills/summarize-changes/SKILL.md:
---
name: summarize-changes
description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff before committing.
---
Run `git diff` and `git status` to see staged and unstaged changes.
Summarize what changed, grouped by file, in plain language.
Flag anything risky: secrets, deleted tests, large deletions, or config changes.
End with a suggested Conventional Commit message.
هذا كل شيء. افتح مشروع git، أجرِ تعديلاً، ثم إما اسأل "ما الذي غيّرته؟" (يُحمّلها Claude تلقائيًا لأن الطلب يتطابق مع الوصف) أو اكتب /summarize-changes لتشغيلها مباشرة. يُراقب Claude Code أدلة المهارات بحثًا عن تغييرات، لذا فإن التعديلات ضمن ~/.claude/skills/ أو ضمن .claude/skills/ الخاص بمشروع تدخل حيّز التنفيذ داخل الجلسة. أما إنشاء دليل مهارات على المستوى الأعلى لم يكن موجودًا عند بدء التشغيل، فهو وحده ما يحتاج إلى إعادة تشغيل.
لماذا يُعدّ الوصف هو اللعبة كلها
السبب الأكثر شيوعًا لعدم تفعّل مهارة على الإطلاق هو ضعف description. فهو ليس توثيقًا، بل هو المُحفّز: عند بدء التشغيل، يُحمّل Claude فقط اسم كل مهارة ووصفها، ثم يستخدم ذلك النص ليقرر ما الذي سيستدعيه. الوصف الغامض مثل "باني لوحات المعلومات" يترك Claude في حيرة. تنصح أداة skill-creator الخاصة بـ Anthropic بجعل الأوصاف "إلحاحية" عن قصد وحشوها بسياقات التفعيل: فبدلاً من "كيفية بناء لوحة معلومات"، اكتب "...استخدم هذه المهارة كلما ذكر المستخدم لوحات المعلومات، أو تصوّر البيانات، أو المقاييس الداخلية، أو أراد عرض أي نوع من بيانات الشركة، حتى لو لم يطلب لوحة معلومات صراحةً." ضع في الوصف كلًّا من ما تفعله المهارة وكل سياق ينبغي أن تتفعّل فيه. كل معلومات "متى تُستخدم" مكانها هناك، ولا تُدفن أبدًا في المتن. إذا لم تكن مهارتك تتفعّل، فأصلح الوصف قبل أن تلمس أي شيء آخر.
الكشف التدريجي: لماذا تظل المهارات زهيدة التكلفة
السبب في أن المهارة يمكنها احتواء إجراء ضخم دون تضخيم سياقك هو الكشف التدريجي (progressive disclosure)، وهو نموذج تحميل من ثلاثة مستويات. المستوى 1 هو البيانات الوصفية (الاسم + الوصف، ~100 كلمة) الموجودة دائمًا في السياق. المستوى 2 هو متن SKILL.md، ويُحمَّل فقط عند تفعّل المهارة. المستوى 3 هو الموارد المُجمّعة (سكربتات، وثائق مرجعية، قوالب) التي تُحمَّل فقط عندما يُوجّه المتنُ Claude إليها. وبذلك فإن مهارة تحتوي على مرجع ترحيل من 2,000 سطر تكلّفك نحو 100 توكن حتى اللحظة التي تحتاجها فيها فعلاً. القاعدة العملية من الوثائق: أبقِ متن SKILL.md تحت 500 سطر، وعندما يتجاوز ذلك، انقل التفاصيل إلى ملفات منفصلة واربطها بها.
summarize-changes/
├── SKILL.md # required: frontmatter + core instructions
└── references/ # optional: loaded only when SKILL.md points here
└── risk-rules.md
هذا هو المبدأ نفسه الذي يُبقي خوادم MCP قابلة للتركيب: عرض البيانات الوصفية للقدرات بتكلفة زهيدة، وتحميل التفاصيل الثقيلة عند الطلب.
التحكم فيمن يستدعي المهارة
افتراضيًا، يمكن لكلٍّ منك ومن Claude استدعاء أي مهارة. أما بالنسبة لأي شيء له آثار جانبية، فهذا ليس ما تريده، ولا ينبغي أن تعتمد على اختيار Claude للنشر لأن الكود "يبدو جاهزًا". أضف disable-model-invocation: true إلى المقدمة، عندئذٍ يمكنك أنت وحدك تفعيل المهارة، بكتابة أمرها المائل:
---
name: deploy
description: Deploy the application to production
disable-model-invocation: true
---
استخدم هذا مع /commit و/deploy و/send-slack-message وأي إجراء لا رجعة فيه. هناك حقلان ذوا صلة يمنحان تحكمًا أدق: allowed-tools يُدرج الأدوات التي يمكن للمهارة استخدامها دون مطالبة بإذن، وdisallowed-tools يُزيل أدواتٍ من المجموعة أثناء نشاط المهارة (مفيد لحلقة تعمل في الخلفية ولا ينبغي لها أبدًا أن تطرح سؤالاً على المستخدم). لجأ إلى هذه الحقول عن قصد، لا افتراضيًا.
المهارة مقابل CLAUDE.md مقابل MCP: أيها تحتاج؟
هذه الثلاثة تتداخل بما يكفي لإرباك الناس، لذا إليك التقسيم:
| النهج | يُحمَّل | الأفضل لـ |
|---|---|---|
| CLAUDE.md | دائمًا في السياق | حقائق قصيرة وصحيحة دائمًا عن المستودع |
| المهارة | عند الطلب، عندما تكون ذات صلة | الإجراءات وقوائم التحقق القابلة للتكرار |
| خادم MCP | مخططات الأدوات، عند الطلب | الاتصال بالأنظمة والبيانات الخارجية |
العلامة الدالة على مهارة هي إجراء: إذا نما قسم في ملف CLAUDE.md الخاص بك من حقيقة إلى دليل "كيفية" متعدد الخطوات، فإنه يريد أن يكون مهارة، حيث لا يُكلّف شيئًا حتى يُستخدَم. الحقيقة تبقى في CLAUDE.md. أما الاتصال المباشر بـ Jira أو بقاعدة بيانات فهو خادم MCP. تستخدم كثير من الإعدادات الواقعية الثلاثة معًا، وحسن الاختيار جزء من المعرفة الأدواتية نفسها التي تُميّز أدوات البرمجة بالذكاء الاصطناعي الجديرة بالاستخدام في 2026.
الأسئلة الشائعة
ما هو ملف SKILL.md؟
هو الملف الوحيد المطلوب في مجلد المهارة. يحتوي على مقدمة YAML (كحد أدنى name وdescription) بين علامتَي ---، تليها تعليمات Markdown يتبعها Claude عند تشغيل المهارة. يصبح اسم المجلد هو /slash-command، والوصف يُخبر Claude متى يُحمّل المهارة من تلقاء نفسه.
أين أضع مهارة Claude Code؟
في ~/.claude/skills/<name>/SKILL.md لمهارة شخصية متاحة عبر جميع مشاريعك، أو في .claude/skills/<name>/SKILL.md لمهارة مشروع تربطها بالـ commit وتشاركها مع فريقك. يمكن للإضافات أيضًا تجميع مهارات. تتجاوز المهارات الشخصية مهارات المشروع التي تحمل الاسم نفسه.
هل أحتاج إلى إعادة تشغيل Claude Code بعد إضافة مهارة؟ عادةً لا. يُراقب Claude Code أدلة المهارات ويلتقط المهارات المُضافة أو المُعدّلة أو المحذوفة ضمن الجلسة الحالية. الاستثناء هو إنشاء دليل مهارات على المستوى الأعلى لم يكن موجودًا عند بدء الجلسة، وهو ما يحتاج إلى إعادة تشغيل حتى يمكن مراقبة الدليل الجديد.
لماذا لا تتفعّل مهارتي؟ السبب دائمًا تقريبًا هو الوصف. يقرر Claude ما إذا كان سيُحمّل مهارة من اسمها ووصفها وحدهما، لذا فإن الوصف الغامض يعني أنه لا يستطيع أن يُميّز أن طلبك مطابق. أعد كتابة الوصف ليُسمّي المهام والعبارات المحددة التي ينبغي أن تُفعّله، وكن صريحًا في أنه ينبغي أن يتفعّل حتى عندما لا يستخدم المستخدم الكلمة المفتاحية البديهية.
هل يمكنني منع Claude من تشغيل مهارة تلقائيًا؟
نعم. أضف disable-model-invocation: true إلى المقدمة. عندئذٍ يمكنك أنت وحدك استدعاء المهارة بكتابة أمرها المائل، وهو ما تريده لأي شيء له آثار جانبية مثل النشر أو إرسال رسالة.
Sources
- وثائق Claude Code — توسيع Claude بالمهارات: المرجع الموثوق لبنية SKILL.md، وحقول المقدمة، ومواقع المهارات، والتحكم في الاستدعاء، والكشف المباشر عن التغييرات.
- Anthropic Engineering — تجهيز الوكلاء للعالم الحقيقي عبر Agent Skills: الأساس المنطقي لتصميم المهارات والمعيار المفتوح.
- anthropics/skills — skill-creator SKILL.md: أفضل الممارسات المباشرة من المصدر حول كتابة الأوصاف، وهيكلة SKILL.md، والكشف التدريجي.
- المعيار المفتوح لـ Agent Skills: المعيار العابر للأدوات الذي تتبعه مهارات Claude Code.
وقاص احمد وسیر
وقاص احمد وسیر مطوّر ومهندس أتمتة بخبرة تزيد على 8 سنوات في بناء أنظمة إنتاجية يستخدمها أكثر من 100 ألف شخص. يبني تطبيقات SaaS متعددة المستأجرين، وأتمتة بالذكاء الاصطناعي (n8n، تدفقات LLM، بوتات واتساب)، وبنية استضافة (WHM/cPanel، CloudLinux) — وهو صانع WaSphere وFlowMaticX وعلامة الاستضافة WaseerHost. أنجز أكثر من 100 مشروع لشركات صغيرة ومتوسطة ووكالات وشركات ناشئة ممولة.



