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؛ المفاهيم مشتركة بين المنصات.
س هل يمكن حساب المتغيرات ديناميكيًا عند التشغيل؟
ج نعم، من خلال متغيرات السياق ومتغيرات البيئة. للحسابات المعقدة، نوصي بوصف المنطق بلغة طبيعية ضمن قالب المهارة وترك الذكاء الاصطناعي يستنتجه.

📖 ملخص


📝 تمارين

  1. أساسي (⭐): أضف متغير severity_level إلى مهارة code-review للتحكم في مستوى مخرجات المراجعة.
  2. متوسط (⭐⭐): أنشئ مهارة نشر معلمية تدعم اختيار البيئة، وتبديل تخطي الاختبارات، ومتغيرات استراتيجية التراجع.
  3. متقدم (⭐⭐⭐): صمّم نظام تحقق من المتغيرات يتعامل مع فحص الأنواع، والتبعيات (مثلاً: الإنتاج يتطلب موافقًا)، والقيم الافتراضية الديناميكية.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%