مهارات Cursor، الأوامر، والقواعد: ما الفرق؟
لدى Cursor ثلاث ميزات متداخلة لكن متميزة تحيّر الكثير من المستخدمين: المهارات، الأوامر، والقواعد. سألت سلسلة المنتدى التي ضمت 11 رداً نفس السؤال بطرق مختلفة -- "أي منها أستخدم لأي شيء؟" يرسم هذا الدليل حدوداً واضحة بينها ويُظهر لك متى تستخدم كل منها.
التعريفات
لنبدأ بما تكونه كل ميزة فعلاً.
ما هي القواعد؟
تُخبر القواعد ذكاء Cursor الاصطناعي كيف يتصرف عند توليد أو تعديل الكود. تحدد معايير البرمجة، الاتفاقيات، القيود، والتفضيلات.
القواعد تعريفية -- تُعلن ما يجب أن يكون صحيحاً، ويتبع الذكاء الاصطناعي ذلك.
Always use TypeScript strict mode.
Prefer named exports over default exports.
Use functional components with hooks, not class components.
تُطبّق القواعد تلقائياً على كل تفاعل ذكاء اصطناعي في المشروع حيث تُكوّن. لا تستدعيها يدوياً.
أين تعيش القواعد:
- القواعد العامة: Settings > General > Rules for AI
- قواعد المشروع: ملف
.cursorrulesفي جذر المشروع - القواعد المحددة النطاق: ملفات
.mdcفي مجلد.cursor/rules/
ما هي الأوامر؟
الأوامر موجهات مُعرفة مسبقاً تستدعيها يدوياً لتنفيذ إجراءات محددة. إنها اختصارات للمهام الشائعة.
الأوامر أمرية -- تُطلقها لفعل شيء محدد الآن.
You type: "/explain"
Result: AI explains the selected code
You type:
"/fix"
Result: AI fixes errors in the selected code
الأوامر إجراءات صريحة من المستخدم. الذكاء الاصطناعي لا يستخدمها إلا إذا أخبرته بذلك.
أين تعيش الأوامر:
- الأوامر المدمجة:
/explain،/fix،/doc،/test، إلخ - الأوامر المخصصة: مُعرفة من المستخدم في الإعدادات
ما هي المهارات؟
المهارات قدرات سياقية يمكن لذكاء Cursor الاصطناعي الاستعانة بها عند الحاجة. تمثل معرفة مجال أو قدرات متخصصة يمكن للذكاء الاصطناعي تطبيقها على طلباتك.
المهارات تكيّفية -- يقرر الذكاء الاصطناعي متى يستخدمها بناءً على موجهك.
User: "Set up a Next.js project with TypeScript, Tailwind, and Prisma"
The AI uses its "Next.js project scaffolding" skill to:
- Run the correct initialization commands
- Configure Tailwind properly
- Set up Prisma with the right schema location
- Configure TypeScript paths
لا تستدعي المهارات صراحة. يتعرف الذكاء الاصطناعي على متى تنطبق مهارة ويستخدمها تلقائياً.
من أين تأتي المهارات:
- مدمجة في تدريب ذكاء Cursor الاصطناعي
- تُتعلم من قاعدة كودك مع الوقت
- تُضاف عبر خوادم MCP (Model Context Protocol)
مقارنة جنباً إلى جنب
| الجانب | القواعد | الأوامر | المهارات |
|---|---|---|---|
| الغرض | تحديد معايير السلوك | تنفيذ إجراءات محددة | تطبيق معرفة مجال |
| متى تُطبّق | تلقائياً، دائماً | عند الاستدعاء اليدوي | عندما يكتشف الذكاء الاصطناعي الصلة |
| التحكم المستخدم | اضبط مرة، تطبق دائماً | تُطلق عند الطلب | ضمني، الذكاء الاصطناعي يقرر |
| التنسيق | نص / JSON / .mdc | أوامر slash (/fix) | قدرة ذكاء اصطناعي داخلية |
| النطاق | عام أو خاص بالمشروع | عالمي | يعتمد على السياق |
| مثال | "Use semicolons" | /explain selection | "Knows how to scaffold React apps" |
متى تستخدم كل منها
استخدم القواعد عندما
تريد تغيير كيفية كتابة الذكاء الاصطناعي للكود باستمرار عبر مشروعك.
حالات استخدام قواعد جيدة:
- فرض أسلوب برمجة (tabs مقابل spaces، اتفاقيات التسمية)
- تحديد تفضيلات المكدس التقني (React مقابل Vue، Prisma مقابل Drizzle)
- تحديد قيود معمارية (لا استيرادات دائرية، هيكل مجلد محدد)
- تحديد أسلوب الرد ("be concise"، "always add comments")
{
"techStack": ["Next.js 14", "TypeScript", "Tailwind CSS"],
"rules": [
"Use server components by default",
"Add 'use client' only when interactivity is needed",
"All API routes go in app/api/",
"Use Prisma for all database operations"
]
}
القواعد هي "دستور" مشروعك. اكتبها مرة وتوجه كل تفاعل ذكاء اصطناعي.
استخدم الأوامر عندما
تريد تنفيذ إجراء محدد الآن على كود محدد أو السياق الحالي.
حالات استخدام أوامر جيدة:
- شرح كود غير مألوف (
/explain) - إصلاح خطأ محدد (
/fix) - توليد توثيق (
/doc) - كتابة اختبارات لدالة (
/test) - إعادة بناء كتلة محددة (
/refactor)
1. حدد الدالة التي تريد توثيقها
2. اكتب /doc في الدردشة
3. يولد الذكاء الاصطناعي تعليقات JSDoc لتلك الدالة
مرجع الأوامر المدمجة:
| الأمر | ما يفعله | متى تستخدمه |
|---|---|---|
/explain | يشرح الكود المحدد | قراءة كود غير مألوف |
/fix | يُصلح أخطاء في الكود المحدد | عند وجود خلل أو خطأ |
/doc | يولد توثيقاً | إضافة JSDoc/docstrings |
/test | يولد اختبارات وحدة | كتابة تغطية اختبارية |
/refactor | يقترح إعادة بناء | تحسين هيكل الكود |
/commit | يولد رسالة commit | قبل إجراء تغييرات |
يمكن دمج الأوامر. يمكنك تحديد كود، كتابة /doc، ثم المتابعة بـ /test لتوليد التوثيق والاختبارات لنفس الدالة.
استخدم المهارات عندما
المهارات ليست شيئاً تستخدمه مباشرة -- بل شيء يستفيد منه الذكاء الاصطناعي. لكن يمكنك تمكين أو تكوين المهارات عبر خوادم MCP والسياق المشروع.
تكوينات مهارات جيدة:
- إضافة خادم MCP للوعي بمخطط قاعدة البيانات
- تمكين قدرة البحث في الويب
- الاتصال بـ APIs التوثيق
- إعداد معرفة خاصة بالمستودع
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"]
}
}
}
عند توصيل هذه الخوادم MCP، يكتسب الذكاء الاصطناعي "مهارة" الاستعلام عن قاعدة بياناتك أو مشاكل GitHub مباشرة.
دمجها: مثال عملي
تأتي القوة الحقيقية من استخدام الثلاثة معاً. إليك كيف يبدو سير عمل حقيقي:
السيناريو: إضافة نقطة نهاية API جديدة
الإعداد (القواعد):
يحتوي ملف .cursorrules الخاص بك على:
Tech stack: Next.js 14 App Router, TypeScript, Prisma, Zod
API conventions:
- All routes in app/api/[resource]/route.ts
- Use Zod for input validation
- Return consistent error format: { error: string, code: string }
- Use Prisma transactions for multi-table operations
التنفيذ (الأوامر):
تحدد ملف route موجود وتكتب:
/test
يولد الذكاء الاصطناعي اختبارات لل route الموجود بناءً على قواعدك.
ثم تكتب:
Create a new POST endpoint for /api/orders that accepts
{ items: Array<{ productId: string, quantity: number }>,
customerEmail: string } and creates an order with
order items in a transaction.
مساعدة الذكاء الاصطناعي (المهارات):
يقوم الذكاء الاصطناعي تلقائياً بـ:
- تطبيق القواعد -- يضع الملف في
app/api/orders/route.ts، يستخدم تحقق Zod، يلف في معاملة Prisma - يستخدم مهارته لاتفاقيات توجيه Next.js App Router
- يستخدم مهارته لصيغة معاملة Prisma
- يولد الكود مع اتباع جميع القيود
import { NextRequest, NextResponse } from 'next/server';
import { z } from 'zod';
import { prisma } from '@/lib/db';
const orderSchema = z.object({
items: z.array(z.object({
productId: z.string().uuid(),
quantity: z.number().int().positive()
})).min(1),
customerEmail: z.string().email()
});
export async function POST(request: NextRequest) {
try {
const body = await request.json();
const validated = orderSchema.parse(body);
const order = await prisma.$transaction(async (tx) => {
const newOrder = await tx.order.create({
data: {
customerEmail: validated.customerEmail,
status: 'PENDING'
}
});
await tx.orderItem.createMany({
data: validated.items.map(item => ({
orderId: newOrder.id,
productId: item.productId,
quantity: item.quantity
}))
});
return newOrder;
});
return NextResponse.json(order, { status: 201 });
} catch (error) {
if (error instanceof z.ZodError) {
return NextResponse.json(
{ error: 'Invalid input', code: 'VALIDATION_ERROR' },
{ status: 400 }
);
}
return NextResponse.json(
{ error: 'Internal server error', code: 'INTERNAL_ERROR' },
{ status: 500 }
);
}
}
لاحظ كيف يتبع الكود كل قاعدة حددتها، دون الحاجة لتكرارها في الموجه. هذه هي قوة دمج الثلاث آليات.
الالتباسات الشائعة والتوضيحات
"هل يمكنني تحويل القواعد إلى أوامر؟"
ليس مباشرة. القواعد قيود سلبية؛ الأوامر إجراءات نشطة. ومع ذلك، يمكنك كتابة أوامر مخصصة تشير إلى قواعدك:
"/lint" -- أمر مخصص يطلب من الذكاء الاصطناعي التحقق
مما إذا كان الكود المحدد يتبع جميع قواعد المشروع
"هل تتجاوز المهارات القواعد؟"
لا. القواعد دائماً تأتي أولاً. إذا اقترحت مهارة مقاربة تنتهك قاعدة، يجب أن يتبع الذكاء الاصطناعي القاعدة. إذا رأيت الذكاء الاصطناعي يتجاهل القواعد، قد تكون قواعدك غامضة أو متعارضة.
"أي منها يجب إعداده أولاً؟"
- القواعد أولاً -- حدد اتفاقيات مشروعك
- الأوامر ثانياً -- تعلم المدمجة، أضف مخصصة حسب الحاجة
- المهارات أخيراً -- أضف خوادم MCP أو سياقاً بمجرد معرفة الثغرات
"هل يمكنني استخدام عدة منها في آن واحد؟"
بالتأكيد. في الواقع، يجب أن تفعل ذلك. القواعد تضع الأساس، الأوامر تُطلق الإجراءات، والمهارات تملأ فجوات المعرفة. صُممت للعمل معاً.
الأوامر المخصصة: الذهاب أبعد
يمكنك تعريف أوامر مخصصة في إعدادات Cursor لسير عمل خاص بمشروعك.
{
"cursor.customCommands": [
{
"name": "api-check",
"description": "Check if API route follows project conventions",
"prompt": "Review this API route file and check: 1) Is it in the correct location? 2) Does it use Zod validation? 3) Does it use Prisma transactions for multi-table ops? 4) Does it return the standard error format? List any violations."
},
{
"name": "add-logging",
"description": "Add structured logging to a function",
"prompt": "Add structured logging to this function using the project's logger from @/lib/logger. Log entry parameters, exit results, and any errors caught."
}
]
}
استخدمها بكتابة /api-check أو /add-logging في الدردشة.
الملخص
| الميزة | فكّر فيها كـ | إجراؤك | إجراء الذكاء الاصطناعي |
|---|---|---|---|
| القواعد | دستور المشروع | اكتبها مرة | يتبع تلقائياً |
| الأوامر | أدوات قوة | استدعِ عند الحاجة | ينفذ مهمة محددة |
| المهارات | خبرة مجال | اضبط/عزّز | يطبق عند الصلة |
أبسط نموذج ذهني:
- القواعد = "Always do it this way"
- الأوامر = "Do this specific thing now"
- المهارات = "I know how to do this kind of thing"
أعدد قواعدك أولاً ليعرف الذكاء الاصطناعي معاييرك. تعلم الأوامر المدمجة لتسريع المهام الشائعة. أضف مهارات عبر خوادم MCP عندما تحتاج الذكاء الاصطناعي لفهم الأنظمة الخارجية. عند استخدامها معاً، تجعل Cursor أقوى بكثير من أي ميزة منفردة.