// المحرِّر
Cursor
حيث تكتب الكود فعليًا.
لمستخدمي Cursor
Cursor هو المحرِّر. في المستودع الأحادي، ما يزال الوكيل يحتاج إلى خريطة توضّح أي ملف يهم. تفهرس Maguyva قاعدة الكود لديك وتعيدها عبر MCP (دلاليًا، وAST، ورسم بيانيًا، ونصيًا)، لذا يعيد سؤال «أين تحدث المصادقة» تدفق المصادقة الفعلي، لا سبع نسخ اختبارية وهمية.
خطة Free: 3 مستودعات, حتى 50 ألف سطر مُفهرَس من المستودع، بلا بطاقة.
Cursor يحرِّر ما تشير إليه. Maguyva تخبر الوكيل بالملف الذي يجب الإشارة إليه.أربع قطع. لكل واحدة مهمتها.
// المحرِّر
حيث تكتب الكود فعليًا.
// السياق اليدوي
السياق اليدوي يفوز، إلى أن يكبر المستودع.
// قاعدة الكود
حقائق تلقائية عن قاعدة الكود عبر MCP.
// من يدفع
الوكلاء لا يدفعون مقابل مقاعد. اطّلع على الأسعار
بيئة التطوير ليست هي المشكلة. الإكمال التلقائي عبر Tab في Cursor، وedit-with-AI، والتحرير متعدد الملفات، و.cursor/rules كلها ممتازة، وأنت بالفعل تستخدمها من أجل:
.cursor/rules لأعراف المستودع وضوابط الأسلوب.@ لسحب ملف محدَّد إلى السياق.واصل فعل ذلك. لا شيء منه يختفي.
لكن في مستودع أحادي حقيقي (TypeScript بتبعيات مساحة العمل، وخدمات Python، وحزم مختلطة) ينهار سياق الوكيل بمجرد أن يخرج الملف المعني عن رادارك بالفعل.
أربعة إصلاحات يدوية، مقترنة بنمط تعطّلها. اليسار = ما تفعله اليوم. اليمين = أين يتعطّل.
// the fix
تُشير بـ@ إلى الملفات الثلاثة التي تظن أنها مهمة. يحرِّر Cursor بدقة داخلها.
// where it breaks
يعمل التثبيت حين تعرف مسبقًا أي الملفات معنيّة. الغاية الكاملة من أدوات السياق هي إظهار الملفات التي لم تكن تعرف أن تثبِّتها.
// the fix
تلصق 200 سطر من حزمة أخرى في المحادثة لتمنح الوكيل سياقًا كافيًا.
// where it breaks
المقتطف الذي ألصقته الساعة 9 صباحًا لا يعكس عملية rebase التي أنجزها زميلك الساعة 11 صباحًا. الوكيل يحرِّر على نسخة وهمية من الحزمة.
// the fix
تكتب ملف .cursor/rules أو وثيقة معمارية بصيغة markdown. تكون صحيحة اليوم.
// where it breaks
أي شيء تكتبه يدويًا ينحرف عن الواقع. الكود هو مصدر الحقيقة. وثيقة تشرح طبقة قائمة الانتظار تكون صحيحة لأسبوع، ثم خاطئة إلى الأبد.
// the fix
تضيف .cursor/rules للتسمية والـlint وأوامر البناء. ممتاز للسلوك.
// where it breaks
.cursor/rules هو المكان الصحيح لـ“شغِّل دائمًا pnpm tsc -b قبل الالتزامات”. إنه ليس فهرسًا قابلًا للاستعلام عن كل رمز وملف وموقع استدعاء في مستودعك الأحادي.
ليست بديلًا عن Cursor. طبقة سياق المستودع التي تتصل بدعم MCP في Cursor.
.cursor/rules تواصل أداء مهمتها. إشارات @ تواصل أداء مهمتها. Maguyva تسدّ الثغرة التي لا تسدّها هي.Cursor يحرِّر الملف الذي تشير إليه.
Maguyva تخبر الوكيل بالملف الذي يجب الإشارة إليه.
عابر للحزم، وعابر للغات. مؤسَّس على الرسم البياني الفعلي للاستدعاءات، لا على grep الخاصة بـCursor.
// workflow 01
cursor> أين تحدث المصادقة في هذا المستودع الأحادي؟ graph::query("authentication flow") packages/web/src/auth/session.ts:42 middleware packages/api/src/auth/jwt.ts:88 token verify packages/shared/src/auth/types.ts:12 AuthContext packages/admin/src/auth/admin-only.ts:31 rbac gate → 4 نقاط دخول عبر 4 حزم، مرتَّبة حسب كثافة مواقع الاستدعاء. [exit 0]
لم تثبِّت ملفًا. لم تلصق مقتطفًا. لدى الوكيل الملفات الأربعة المهمة، بالترتيب الصحيح، ويمكنه إجراء تعديل مؤسَّس.
// workflow 02
cursor> كيف تتعامل normalizePhoneNumber مع E.164؟ semantic::query("normalize phone E.164") packages/shared/util/phone.ts:88 normalizePhoneNumber() ← التنفيذ الحقيقي packages/api/test/phone.spec.ts:14 jest.mock(...) ← بديل اختباري [exit 0]
الأسماء تكذب. المحاكيات تحجب الكود الحقيقي. تُرتِّب Maguyva التنفيذ الحقيقي فوق محاكي الاختبار، عبر كل حزمة.
// workflow 03
cursor> ما الذي يستدعي QueueDispatcher.publish عبر المستودع الأحادي؟ graph::callers(QueueDispatcher.publish) 3 في packages/billing/* 1 في packages/audit/* 1 في packages/notifications/* 1 في services/python-worker/* ← عابر للغات عبر بديل gRPC [exit 0]
عابر للحزم، وعابر للغات عندما يكون لديك مستودع متعدد اللغات، تظهر مواقع الاستدعاء ضمن السياق. الفرق مؤسَّس على مستوردين حقيقيين، لا على grep الخاصة بـCursor.
ثلاث خطوات. خطة Free: 3 مستودعات, حتى 50 ألف سطر مُفهرَس من المستودع، بلا بطاقة.
// step 01
اختر المستودع الأحادي الذي شعرت فيه بأكبر ألم في السياق.
// step 02
// ~/.cursor/mcp.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
لا تبدأ بشركتك بأكملها. ابدأ بمستودع واحد وسؤال واحد يمكن التحقق منه، مثل «ما الذي يستدعي formatInvoice عبر الحزم؟»