> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wolffi.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# التأليف الذاتي للمهارات

> كيف يؤلّف وولفيش مهاراته بنفسه — يكتب قدراته ويختبرها ويعدّلها ويحذفها أثناء التشغيل انطلاقًا من طلبٍ بلغةٍ عادية

أسرع طريقة لإضافة قدرة ليست أن تكتبها — بل أن **تطلب من وولفيش أن يكتبها لنفسه**. فقدرة [`skills`](/ar/capabilities/built-in-capabilities) المدمجة تمنحه أدوات تأليف قدراته وتحميلها و**اختبارها** وتعديلها وحذفها أثناء التشغيل. تصف أنت القدرة بلغةٍ عادية، فيُنتج وولفيش مهارةً عاملة ويتحقّق منها قبل أن يسلّمك إياها — دون نظام ملفات، ودون شيفرة، ودون إعادة تشغيل.

<Note>
  هذه الصفحة هي مسار **دَعْ وولفيش يفعلها**. وإن فضّلت بناء قدرة بيدك في نظام الملفات، فانظر [إنشاء القدرات](/ar/capabilities/creating-capabilities).
</Note>

## متى يؤلّف مهارةً لنفسه

يُرقّي وولفيش العمل إلى قدرةٍ قابلة لإعادة الاستخدام حين يكون **متكرّرًا ومركّبًا ويستحقّ الاحتفاظ به** — طلبُ «افعل هذا في كل مرة»، أو رقصةٌ متعدّدة الخطوات رأيتَه يكرّرها بيده، أو أداةٌ حقيقية لا يملكها بعد. ويختار أصغر شكلٍ يفي بالغرض:

* **مهارة نقية** — إجراءٌ مكتوب يتّبعه بأدواتٍ يملكها أصلًا،
* **مهارة بإضافة** — أداةٌ جديدة حقيقية تسندها JavaScript،
* **إضافة بتبعيات** — حين تحتاج الأداة إلى حزمة npm أو نصٍّ مرفق (ولو بلغةٍ أخرى، كعاملٍ بلغة Python).

أمّا العمل الذي لا يتكرّر فيؤدّيه مباشرة — فالمهارة إنّما هي لقدرةٍ سيعيد استخدامها.

## الأدوات التي يستعملها

التأليف الذاتي تُشغّله قدرة `skills`. وأنت لا تنادي هذه الأدوات بنفسك أبدًا؛ وولفيش هو من ينادي، نيابةً عنك:

| الأداة                           | ما تفعله                                                                   |
| -------------------------------- | -------------------------------------------------------------------------- |
| `skill_list`                     | سرد كل مهارة — الاسم والوصف وحالة التفعيل/الرسمية وعدد الأدوات             |
| `skill_search`                   | البحث في المهارات بكلمة مفتاحية عبر الاسم والوصف والمحفّزات وأسماء الأدوات |
| `skill_read_source`              | قراءة ملف `SKILL.md` للمهارة وشيفرة إضافتها — لتعلّم النمط أو قبل التعديل  |
| `skill_create`                   | تأليف مهارة نقية جديدة تمامًا أو قدرة بإضافة                               |
| `skill_reload`                   | إعادة مسح مساحة العمل ليسري مفعول مهارةٍ جديدة أو معدَّلة                  |
| `skill_enable` / `skill_disable` | تشغيل أي مهارة أو إطفاؤها (قابل للتراجع)                                   |
| `skill_delete`                   | إزالة مهارةٍ أنشأها إزالةً دائمة (المهارات الرسمية والمدمجة محميّة)        |

انظر [القدرات المضمَّنة ← skills](/ar/capabilities/built-in-capabilities) للمرجع الكامل.

## كيف يبني *ويتحقّق* — في دورٍ واحد

لا يكتب وولفيش الملفات ويتمنّى. فلأنّ الأداة المُنشأة حديثًا تصير قابلة للنداء في خطوته التالية مباشرة، يُغلق الحلقة بنفسه قبل أن يخبرك أنّه انتهى:

<Steps>
  <Step title="الإنشاء">
    تكتب `skill_create` ملفَّ `SKILL.md` مع `plugin/index.mjs`، وتتحقّق منهما، وتعيد التحميل — كلّه مفحوصٌ قبل أن يحطّ شيء على القرص.
  </Step>

  <Step title="الاختبار">
    ينادي الأداة الجديدة بمُدخَلٍ واقعيّ ويقرأ النتيجة الفعلية.
  </Step>

  <Step title="التعديل عند اللزوم">
    إن كان المخرَج خاطئًا، يرقّع الإضافة بـ`file_write` ثم يستدعي `skill_reload` — فتعمل الشيفرة المعدَّلة في النداء التالي.
  </Step>

  <Step title="التحقّق ثم الخلاصة">
    يعيد الاختبار حتى تعمل الأداة حقًّا، ثم يبلّغك بما صنعه وبأنّه أكّده بتشغيله.
  </Step>
</Steps>

وهو **متسامح عمدًا في طريقة كتابة الإضافة** — يقبل الأعراف الشائعة (موزِّع `execute` *أو* معالِجًا لكل أداة، وعدّة أشكال للإرجاع) ويشتقّ لك صيغة `SKILL.md` المعيارية. فلستَ مضطرًّا إلى معرفة الصيغة بالضبط؛ ومحاولةٌ معقولة تصير مهارةً عاملة بدل أن تصير خطأً.

## مثال كامل: بناء مهارة وتشغيلها وحذفها في دورٍ واحد

تستطيع قيادة الدورة كلّها من رسالة واحدة. انسخ هذا الطلب وألصقه في المحادثة — فهو يجعل وولفيش يُنشئ مهارة `coinflip` صغيرة، ويستعملها، ويعدّلها، ويبدّل حالتها، ويزيلها، فيمرّ على كل جزءٍ من التأليف الذاتي من طرفه إلى طرفه:

```text طلب دورة حياة رمي العملة theme={null}
نادِ skill_reload أولًا. ثم في دورٍ واحد: نفّذ skill_search "coinflip" وskill_list للتأكّد من أنّها غير موجودة؛ وأنشئ مهارة coinflip فيها أداة coinflip_do تُعيد "heads" أو "tails"؛ ونادِ coinflip_do لتُثبت أنّها تعمل في الدور نفسه؛ ثم skill_read_source، وعدّلها لتسمح بـ"edge" أيضًا (اكتب بـfile_write في مسار المجلد المطبوع، ثم skill_reload)، ونادِ coinflip_do من جديد؛ ثم skill_disable ثم skill_enable؛ وأخيرًا skill_delete وskill_list للتأكّد من أنّها اختفت.
```

وما يفعله وولفيش، خطوةً خطوة:

| # | الإجراء                                                            | النتيجة                    |
| - | ------------------------------------------------------------------ | -------------------------- |
| 1 | `skill_reload`                                                     | حُمِّلت 28 مهارة           |
| 2 | `skill_search "coinflip"` + `skill_list`                           | يؤكّد أنّها غير موجودة     |
| 3 | `skill_create` (SKILL.md + الإضافة)                                | أُنشئت — أداة واحدة        |
| 4 | `coinflip_do`                                                      | 🪙 heads                   |
| 5 | `skill_read_source` ← `file_write` (إضافة "edge") ← `skill_reload` | رُقِّعت وأُعيد تحميلها     |
| 6 | `coinflip_do`                                                      | 🪙 tails                   |
| 7 | `skill_disable` ← `skill_enable`                                   | أُطفئت ثم أُعيد تشغيلها    |
| 8 | `skill_delete` ← `skill_list`                                      | اختفت — عودةً إلى 28 مهارة |

<Tip>
  في الاستعمال الفعليّ ستقول ببساطة *«اصنع لنفسك أداةً لرمي العملة»* وتقف عند ذلك — فوولفيش يكتبها ويختبرها في دورٍ واحد. أمّا طلب دورة الحياة أعلاه فهو **لمشاهدة الآلة كلّها دفعةً واحدة**.
</Tip>

## طلبات التأليف الذاتي اليومية

نادرًا ما تُفصّل الخطوات. وأوضح الطلبات ما سمّى **محفّزًا متكرّرًا** و**النتيجة** التي تريدها:

* *«من الآن فصاعدًا، كلّما أرسلتُ لك ملف CSV، نظّفه وردّ عليّ بجدول ملخّص.»*
* *«اصنع لنفسك مهارةً تنشر اجتماعنا اليوميّ على Slack.»*
* *«أنت تكرّر تغيير المقاس ووضع العلامة المائية بيدك — حوّلها إلى أداةٍ قابلة لإعادة الاستخدام.»*
* *«علّم نفسك تتبّع الطرود انطلاقًا من رقم التتبّع.»*

ولإدارة ما بناه، اسأله وحسب: *«اسرد مهاراتك»*، *«أطفئ المتصفّح»*، *«احذف مهارة coinflip تلك.»*

<Tip>
  كن محدّدًا في **المحفّز** («كلّما…»، «في كل مرة…») وفي **النتيجة**. فوولفيش يبني مهاراتٍ قابلة لإعادة الاستخدام، لا أعمالًا لمرّة واحدة — وللمهمّة المفردة يؤدّي العمل مباشرة بدل أن يُنشئ مهارة.
</Tip>
