Skills: المتغيرات ونظام القوالب
آخر تحديث: 2026-08-31
المتغيرات تحوّل المهارات من "قوالب مشفرة بشكل ثابت" إلى "أدوات مرنة" — تعريف واحد، ألف إعادة استخدام.
1. أنواع المتغيرات
(1) متغيرات مدخلات المستخدم
معاملات يقدمها المستدعي:
YAML
variables:
- name: target_file
description: "مسار الملف المراد مراجعته"
required: true
- name: severity_level
description: "الحد الأدنى لمستوى الخطورة"
default: "warning"
choices: ["info", "warning", "error", "critical"]
(2) متغيرات البيئة
تُحصل تلقائيًا من بيئة التشغيل:
YAML
variables:
- name: current_branch
type: env
source: "GIT_BRANCH"
- name: project_root
type: env
source: "PROJECT_ROOT"
(3) متغيرات السياق
تُحقن من سياق المحادثة أو المشروع:
YAML
variables:
- name: tech_stack
type: context
source: "project.language"
- name: changed_files
type: context
source: "git.changed_files"
2. صياغة القوالب
(1) الاستبدال الأساسي
MARKDOWN
يرجى مراجعة {{target_file}}، مع التركيز على المشاكل بمستوى {{severity_level}} وما فوق.
(2) العرض الشرطي
MARKDOWN
## استراتيجية المراجعة
{{#if tech_stack == "python"}}
راجع بمعايير Python: تلميحات الأنواع، docstrings، PEP 8
{{/if}}
{{#if tech_stack == "typescript"}}
راجع بمعايير TypeScript: أمان الأنواع، كشف any، تعريفات الواجهات
{{/if}}
(3) العرض الحلقي
MARKDOWN
## قائمة الملفات المتغيرة
{{#each changed_files}}
- {{this}}
{{/each}}
(4) القيم الافتراضية والاحتياطية
MARKDOWN
أسلوب الكود يتبع {{linter_config || "المعايير الافتراضية للصناعة"}}.
3. التحقق من المتغيرات
(1) التحقق من النوع
YAML
variables:
- name: max_lines
type: integer
min: 10
max: 500
default: 100
- name: output_format
type: enum
choices: ["markdown", "json", "table"]
default: "markdown"
(2) فحص الضرورة
TEXT
📖 للعرض فقط
تدفق التحقق من المتغيرات:
1. تحقق مما إذا تم توفير جميع المتغيرات المطلوبة
2. تحقق من تطابق الأنواع
3. تحقق من أن القيم ضمن نطاق الخيارات
4. تحقق من قيود min/max
5. لم يُقدم لكن لديه قيمة افتراضية → استخدم القيمة الافتراضية
6. فشل التحقق → اطلب من المستخدم التوفير
4. ممارسة المتغيرات
▶ مثال: مهارة نشر معلمية
أنشأت Alice مهارة نشر مرنة:
YAML
---
name: smart-deploy
variables:
- name: environment
description: "بيئة النشر"
required: true
choices: ["staging", "production"]
- name: skip_tests
description: "هل يتم تخطي الاختبارات"
type: boolean
default: false
- name: rollback_on_fail
description: "هل يتم التراجع عند الفشل"
type: boolean
default: true
---
MARKDOWN
# نشر إلى {{environment}}
{{#if skip_tests}}
⚠️ تخطي الاختبارات، نشر مباشر
{{/if}}
{{#if !skip_tests}}
1. شغّل مجموعة الاختبارات الكاملة
2. أكد نجاح جميع الاختبارات
{{/if}}
3. انشر إلى {{environment}}
{{#if rollback_on_fail}}
4. تحقق من نجاح النشر، تراجع تلقائي عند الفشل
{{/if}}
علّق Bob: "المعلمية تجعل المهارة الواحدة تساوي عشر — لا حاجة لكتابة مهارات منفصلة لبيئتي staging وproduction، متغير واحد يكفي."
❓ الأسئلة الشائعة
س هل المتغيرات الكثيرة تجعل المهارة معقدة؟
ج نعم. نوصي بألا تزيد المتغيرات الأساسية عن 5 والمتغيرات الاختيارية عن 3. إذا تجاوزت، فكر في التقسيم إلى مهارات متعددة.
س هل صياغة القوالب هي نفسها عبر المنصات؟
ج لا. Claude Code يستخدم
{{var}}، Cursor يستخدم $var، Copilot يستخدم ${var}. هذه الدورة تستخدم صياغة Claude Code؛ المفاهيم مشتركة بين المنصات.س هل يمكن حساب المتغيرات ديناميكيًا عند التشغيل؟
ج نعم، من خلال متغيرات السياق ومتغيرات البيئة. للحسابات المعقدة، نوصي بوصف المنطق بلغة طبيعية ضمن قالب المهارة وترك الذكاء الاصطناعي يستنتجه.
📖 ملخص
- ثلاثة أنواع من المتغيرات: مدخلات المستخدم، البيئة، السياق
- صياغة القوالب: استبدال، شروط، حلقات، قيم افتراضية
- التحقق من المتغيرات: النوع، الضرورة، قيود النطاق
- مبدأ التصميم: متغيرات أساسية <5، قيم افتراضية معقولة
📝 تمارين
- أساسي (⭐): أضف متغير
severity_levelإلى مهارة code-review للتحكم في مستوى مخرجات المراجعة. - متوسط (⭐⭐): أنشئ مهارة نشر معلمية تدعم اختيار البيئة، وتبديل تخطي الاختبارات، ومتغيرات استراتيجية التراجع.
- متقدم (⭐⭐⭐): صمّم نظام تحقق من المتغيرات يتعامل مع فحص الأنواع، والتبعيات (مثلاً: الإنتاج يتطلب موافقًا)، والقيم الافتراضية الديناميكية.