Skill یک راهنمای Markdown است که Agent میتواند آن را پیدا کرده و در صورت نیاز اجرا کند.
Skillها کاربردهای مختلفی دارند، از جمله:
- Workflowهای پروژه: مانند
/article، چکلیست Deploy یا Release Notes
- فرآیندهای مربوط به ابزارها: مانند Figma MCP، اسکریپتهای CLI یا APIهای داخلی
- استانداردهای تیم: مانند قوانین Commit، Code Review و بررسیهای امنیتی
Skillها معمولاً در یکی از این مسیرها قرار میگیرند:
در این حالت Skill داخل خود پروژه قرار دارد و همراه Repository با سایر اعضای تیم به اشتراک گذاشته میشود.
یا در Personal Cursor Skills Directory قرار میگیرند که در پروژههای مختلف برای خود شما قابل استفاده هستند.
هر Skill به یک YAML Frontmatter در ابتدای فایل و مجموعهای از دستورالعملها نیاز دارد.
برای مثال:
در ادامه اجزای اصلی را بررسی میکنیم.
نام Skill یک شناسه کوتاه و با فرمت kebab-case است.
بهتر است نام آن پایدار و مشخص باشد، چون ممکن است فایلها یا مستندات دیگر پروژه به آن ارجاع دهند.
یا:
description در واقع نقش Trigger یا محرک Skill را دارد.
Cursor از این توضیحات استفاده میکند تا تشخیص دهد چه زمانی باید Skill موردنظر را فعال کند.
بنابراین Description باید مشخص کند:
- این Skill چه کاری انجام میدهد؟
- چه زمانی باید استفاده شود؟
- کاربر معمولاً چه عبارتها یا Commandهایی را وارد میکند؟
این توضیح بسیار بهتر از یک عبارت کلی مانند «کمک به Release پروژه» است.
ابتدا پوشه مربوط به Skill را ایجاد کنید:
ساختار پروژه شما در این مرحله چیزی شبیه این خواهد بود:
حالا داخل پوشه Skill یک فایل به نام SKILL.md ایجاد کنید.
محتوای اولیه میتواند به شکل زیر باشد:
در این مثال، Skill به Cursor میگوید قبل از آمادهسازی Release چه مراحلی باید انجام شود.
یکی از مهمترین بخشهای یک Skill، Description آن است.
این توضیح بیش از حد کلی است و اطلاعات کافی برای تشخیص زمان استفاده از Skill به Cursor نمیدهد.
در این نسخه مشخص شده:
- Skill چه کاری انجام میدهد.
- چه زمانی باید فعال شود.
- چه عباراتی میتوانند باعث فعال شدن آن شوند.
قوانین Skill باید Actionable باشند؛ یعنی Agent بتواند بر اساس آنها یک اقدام مشخص انجام دهد.
بهجای جملات کلی، از فعل و Constraint استفاده کنید.
مثلاً:
- «همیشه Draft ایجاد کن و هرگز Publish نکن.»
- «قبل از اجرای CLI، فایل
workflow.md را بخوان.»
- «اگر Duplicate Detection هشدار داد، متوقف شو و از کاربر سؤال کن.»
از متنهای انگیزشی یا توضیحات غیرضروری خودداری کنید.
Agent به Procedure و Constraint نیاز دارد، نه جملات انگیزشی.
بهتر است فایل SKILL.md بیش از حد طولانی نشود.
اگر دستورالعملها و جزئیات پروژه زیاد هستند، آنها را در فایلهای جداگانه قرار دهید.
سپس داخل SKILL.md مشخص کنید Agent در هر مرحله باید کدام فایل را باز کند.
این ساختار باعث میشود Skill اصلی کوتاه، قابل نگهداری و قابل فهم باقی بماند.
چند الگوی کاربردی وجود دارد که میتوانند کیفیت Skillهای شما را بهتر کنند.
یک جدول برای مشخص کردن Commandهای مختلف ایجاد کنید.
Commandکاربرد/articleایجاد پیشنویس مقاله/promptایجاد محتوای Prompt/tutorialایجاد آموزش/publish-nowانتشار محتوا
قوانینی را که تحت هیچ شرایطی نباید نقض شوند، بهصورت واضح و شمارهگذاریشده بنویسید.
مسیر اصلی انجام کار را کوتاه و مرحلهبهمرحله مشخص کنید.
مشخص کنید اگر مشکلی اتفاق افتاد Agent چه کاری باید انجام دهد.
مشخص کنید Agent در پایان کار دقیقاً چه اطلاعاتی را باید به کاربر نمایش دهد.
این کار باعث میشود خروجی Skillها همیشه قابل پیشبینی و یکدست باشد.
اگر Description مبهم باشد، ممکن است Skill در زمان مناسب فعال نشود.
فایل SKILL.md نباید تبدیل به یک Wiki چندصدصفحهای شود.
دستورالعملهای مرتبط را در فایلهای جداگانه نگهداری کنید.
در حالی که جای دیگری نوشتهاید:
این تضاد باعث رفتار غیرقابل پیشبینی Agent میشود.
اگر انتظار دارید Skill با عباراتی مثل:
فعال شود، بهتر است این عبارات را در Description مشخص کنید.
Skill نباید صرفاً به این دلیل که Agent یک روش را بهتر میداند، معماری جدیدی برای پروژه ایجاد کند.
اولویت باید همیشه دنبال کردن ساختار و معماری موجود Repository باشد.
بعد از ساخت Skill، آن را آزمایش کنید.
بهتر است تست را در یک Session جدید انجام دهید.
قبل از اجرای Workflow، مطمئن شوید Cursor Skill مربوطه را پیدا کرده و دستورالعملهای آن را دنبال میکند.
Description را دقیقتر کنید و Triggerهای واقعی که کاربران استفاده میکنند به آن اضافه کنید.