الميزات

المهارات (Skills)

أنشئ مجموعات تعليمات قابلة لإعادة الاستخدام لسير عمل متخصصة. حدّد سير عمل مخصصة، أضف ملفات داعمة، وعلّم Bob مهامًا متخصصة للحصول على نتائج متسقة.

المهارات (Skills) هي مجموعات تعليمات قابلة لإعادة الاستخدام تعلّم Bob مهامًا متخصصة ومراحل جديدة من سير العمل. فكّر فيها كوصفات يتّبعها Bob لإنجاز أنواع محددة من العمل بطريقة متسقة وقابلة للتكرار.

لماذا تستخدم المهارات؟

  • قابلية إعادة الاستخدام: حدّد سير العمل مرة واحدة واستخدمها عبر محادثات متعددة.
  • الاتساق: تأكد من أن Bob يتّبع نفس الأسلوب في كل مرة لمهام محددة.
  • التخصص: أنشئ خبرة متخصصة بالمجال لمراجعات الكود والاختبار والتوثيق وغيرها.
  • تعاون الفريق: شارك سير العمل الموحّدة مع فريقك عبر نظام التحكم بالإصدار.
  • المرونة: أدرج ملفات داعمة كقوائم التحقق والقوالب والمواد المرجعية.

المتطلبات

المهارات متاحة في الوضع المتقدم (Advanced mode) فقط. ويضمن ذلك أن Bob يملك الوصول إلى كل الأدوات اللازمة لتشغيل سير العمل المستندة إلى المهارات بفعالية.

كيف تعمل المهارات

عند تفعيل مهارة، يتلقى Bob تعليماتها ويحصل على إمكانية الوصول إلى الملفات الداعمة في مجلد المهارة. ثم يتّبع هذه التعليمات لإكمال مهمتك وفق سير العمل المحدد.

تُحمَّل المهارات مرة واحدة في كل محادثة لتجنب تكرار التعليمات. ويحدد Bob تلقائيًا متى يفعّل مهارة بناءً على طلبك ووصفها.

إنشاء مهارة

الإعداد الأساسي

أنشئ مجلدًا داخل .bob/skills/ في جذر مشروعك، أو استخدم ~/.bob/skills/ للمهارات العامة.

أضف ملف SKILL.md داخل ذلك المجلد.

مثال على الهيكل:

SKILL.md

صيغة SKILL.md

يستخدم ملف SKILL.md مقدمة YAML تليها تعليمات المهارة:

---
name: code-review
description: راجع الكود بحثًا عن الأخطاء والمشكلات الأمنية وأفضل الممارسات
---

عند مراجعة الكود، تحقّق مما يلي:
- الثغرات الأمنية
- مشكلات الأداء
- غياب معالجة الأخطاء عند حدود API
- الاستيرادات غير المستخدمة والكود غير المستخدم

قدّم ملخصًا يبيّن مستوى الخطورة لكل نتيجة.

الحقول المطلوبة:

  • name: الاسم المعروض للمهارة في واجهة Bob
  • description: ملخص واضح يساعد Bob على تحديد متى يفعّل هذه المهارة — تُتجاهل المهارات التي بلا وصف

قسم التعليمات: كل ما يأتي بعد المحدد --- يصبح التعليمات التي يتلقاها Bob عند تفعيل المهارة.

إضافة ملفات داعمة

يمكنك إدراج ملفات ومجلدات فرعية إضافية إلى جانب SKILL.md لتوفير مواد مرجعية وقوالب وقوائم تحقق وسكريبتات وموارد أخرى. يمكن لـ Bob قراءة هذه الملفات تلقائيًا بمجرد تفعيل المهارة.

مثال مع ملفات داعمة:

SKILL.md
checklist.md
severity-guide.md
analyze.sh
report-generator.py

الملفات والمجلدات الداعمة يمكن أن تتضمن:

  • قوائم تحقق وقوالب
  • توثيق مرجعي
  • أمثلة إعداد
  • سكريبتات وأدوات في مجلدات فرعية
  • أدلة أسلوب
  • أي موارد أخرى لازمة للمهارة

مواقع المهارات

يمكن تعريف المهارات على مستويين:

الموقعالنطاقحالة الاستخدام
<project>/.bob/skills/خاص بالمشروعسير العمل الفريدة لهذا المشروع
~/.bob/skills/عالميسير عمل شخصية أو على مستوى المؤسسة

الأولوية: إذا احتوى كلا الموقعين على مهارة بالاسم نفسه، تكون الأولوية لمهارة مستوى المشروع.

الموافقة على المهارات

بشكل افتراضي، يطلب Bob إذنك قبل تفعيل مهارة. ويمنحك ذلك التحكم في وقت تطبيق سير العمل المتخصصة.

لتخطي موافقة الطلب:

افتح إعدادات Bob.

انتقل إلى قسم Auto-Approve.

شغّل مفتاح التبديل Skills.

بتفعيل هذا الإعداد، يفعّل Bob المهارات تلقائيًا عند الاقتضاء من دون طلب الإذن.

تبويب إعدادات المهارات

يمنحك تبويب Skills في إعدادات Bob مكانًا مركزيًا لعرض المهارات المتاحة في مساحة عملك وإدارتها. استخدمه لمعرفة المهارات المحمّلة والتحقق من مواقعها والتأكد من اختيار المهارات من مجلدات مشروعك أو من المجلدات العامة على النحو الصحيح.

كتابة مهارات فعّالة

أوصاف واضحة

اكتب أوصافًا تشير بوضوح إلى وقت استخدام المهارة. يعتمد Bob على هذه الأوصاف لتحديد مدى ملاءمتها.

جيد: "راجع الكود بحثًا عن الأخطاء والمشكلات الأمنية وأفضل الممارسات"

تجنّب: "مهارة لمراجعة الكود"

تعليمات مُركّزة

ابقِ ملف SKILL.md الرئيسي مُركّزًا على سير العمل الجوهري. انقل المواد المرجعية التفصيلية والأمثلة وقوائم التحقق إلى ملفات داعمة.

مثال:

---
name: api-documentation
description: أنشئ توثيق API وفق معايير OpenAPI
---

أنشئ توثيق API يتضمن:
- أوصاف نقاط النهاية
- مخططات الطلبات والاستجابات
- متطلبات المصادقة
- أمثلة للطلبات والاستجابات

اتبع دليل الأسلوب في `api-style-guide.md` واستخدم القالب في `api-template.md`.

خطوات قابلة للتنفيذ

نظّم التعليمات كخطوات واضحة وقابلة للتنفيذ يمكن لـ Bob اتباعها بشكل منهجي.

مثال:

---
name: feature-implementation
description: نفّذ ميزات جديدة وفق معايير الفريق
---

<Steps>
<Step>
راجع متطلبات الميزة.

</Step>

<Step>
أنشئ خطة بالتغييرات المطلوبة على الملفات.

</Step>

<Step>
نفّذ الميزة وأضف الاختبارات.

</Step>

<Step>
حدّث التوثيق.

</Step>

<Step>
تحقّق من نجاح جميع الاختبارات.

</Step>
</Steps>

اتبع معايير كتابة الكود في `coding-standards.md`.

أمثلة على المهارات

مهارة لمراجعة الكود

---
name: security-review
description: راجع الكود بحثًا عن الثغرات الأمنية وأفضل الممارسات
---

أجرِ مراجعة للكود تركّز على الأمان:

<Steps>
<Step>
تحقّق من الثغرات الشائعة:
- مخاطر حقن SQL
- ثغرات XSS
- مشكلات المصادقة والتفويض
- كشف البيانات الحساسة

</Step>

<Step>
راجع أفضل ممارسات الأمان:
- التحقق من صحة المدخلات
- ترميز المخرجات
- الإعداد الآمن
- معالجة الأخطاء

</Step>

<Step>
قدّم النتائج متضمنة:
- مستوى الخطورة (حرج، مرتفع، متوسط، منخفض)
- الموضع في الكود
- الإصلاح المقترح
- مرجعًا إلى معايير الأمان

</Step>
</Steps>

استخدم دليل مستويات الخطورة في `severity-levels.md` للتصنيف.

مهارة للتوثيق

---
name: api-docs
description: أنشئ توثيقًا شاملًا لـ API
---

أنشئ توثيق API يتضمن:

<Steps>
<Step>
قسم النظرة العامة:
- الغرض وحالات الاستخدام
- متطلبات المصادقة
- عنوان URL الأساسي وإدارة الإصدارات

</Step>

<Step>
لكل نقطة نهاية:
- طريقة HTTP والمسار
- الوصف والغرض
- معاملات الطلب
- مخطط نص الطلب
- رموز الاستجابة ومخططاتها
- أمثلة للطلبات والاستجابات

</Step>

<Step>
أقسام إضافية:
- معالجة الأخطاء
- تحديد المعدل
- تقسيم النتائج إلى صفحات

</Step>
</Steps>

اتبع القالب في `api-doc-template.md` والأمثلة في `api-examples.md`.

نصائح وأفضل الممارسات

  • ابدأ ببساطة: ابدأ بتعليمات أساسية وطوّرها بناءً على النتائج.
  • استخدم الملفات الداعمة: ابقِ SKILL.md موجزًا بنقل المحتوى التفصيلي إلى ملفات مصاحبة.
  • اختبر جيدًا: تحقق من أن المهارات تعمل كما هو متوقع قبل مشاركتها مع فريقك.
  • التحكم في الإصدار: أدرج مهارات المشروع في repository لضمان اتساق الفريق.
  • تسمية واضحة: استخدم أسماء مهارات وصفية تدل على غرضها.
  • مسؤولية واحدة: أنشئ مهارات مركزة لمهام محددة بدلًا من محاولة التعامل مع سير عمل متعددة غير مترابطة.
ما رأيك في هذا الموضوع؟