// المحرِّر
Devin Desktop
حيث تعملان أنت وDevin Local فعليًا.
لمستخدمي Devin Desktop
Devin Desktop (Windsurf IDE) هو المحرِّر وDevin Local هو الوكيل. في المستودع الموحّد، ما يزال الوكيل يحتاج إلى خريطة توضّح أي ملف يهم. يفهرس Maguyva قاعدة الكود لديك ويعيدها عبر MCP (دلاليًا، وAST، ورسم بيانيًا، ونصيًا)، لذا يعيد سؤال «أين تحدث المصادقة» تدفق المصادقة الفعلي، لا سبعة بدائل وهمية للاختبار.
خطة Free: 3 مستودعات, حتى 50 ألف سطر مُفهرَس من المستودع، بلا بطاقة.
Devin Desktop يحرِّر ما تشير إليه. Maguyva يخبر Devin Local بالملف الذي يجب الإشارة إليه. أربع قطع. لكل واحدة مهمتها.
// المحرِّر
حيث تعملان أنت وDevin Local فعليًا.
// السياق اليدوي
السياق اليدوي يفوز، إلى أن يكبر المستودع.
// قاعدة الكود
حقائق تلقائية عن قاعدة الكود عبر MCP.
// من يدفع
الوكلاء لا يدفعون مقابل مقاعد. اطّلع على الأسعار
بيئة التطوير ليست هي المشكلة. Devin Local، والإكمال التلقائي عبر Tab، والتحرير متعدد الملفات، و.devin/rules/ كلها ممتازة، وأنت بالفعل تستخدمها من أجل:
.devin/rules/ لأعراف المستودع وضوابط الأسلوب.@ لسحب ملف محدَّد إلى السياق.واصل فعل ذلك. لا شيء منه يختفي.
لكن في مستودع موحّد حقيقي (TypeScript بتبعيات مساحة العمل، وخدمات Python، وحزم مختلطة) ينهار سياق الوكيل بمجرد أن لا يكون الملف المعني على رادار Devin Local أصلًا.
أربعة إصلاحات يدوية، مقترنة بنمط تعطّلها. اليسار = ما تفعله اليوم. اليمين = أين يتعطّل.
// the fix
تُشير بـ@ إلى الملفات الثلاثة التي تظن أنها مهمة. يحرِّر Devin Local بدقة داخلها.
// where it breaks
يعمل هذا حين تعرف مسبقًا أي الملفات معنيّة. الغاية الكاملة من أدوات السياق هي إظهار الملفات التي لم تكن تعرف أن تشير إليها.
// the fix
تلصق 200 سطر من حزمة أخرى في Devin Local لتمنحه سياقًا كافيًا.
// where it breaks
المقتطف الذي ألصقته الساعة 9 صباحًا لا يعكس عملية rebase التي أنجزها زميلك الساعة 11 صباحًا. Devin Local يحرِّر على نسخة وهمية من الحزمة.
// the fix
تكتب ملف .devin/rules/ أو وثيقة معمارية بصيغة markdown. تكون صحيحة اليوم.
// where it breaks
أي شيء تكتبه يدويًا ينحرف عن الواقع. الكود هو مصدر الحقيقة. وثيقة تشرح طبقة قائمة الانتظار تكون صحيحة لأسبوع، ثم خاطئة إلى الأبد.
// the fix
تضيف .devin/rules/ للتسمية والـlint وأوامر البناء. ممتاز للسلوك.
// where it breaks
.devin/rules/ هو المكان الصحيح لـ“شغِّل دائمًا pnpm tsc -b قبل تسجيل الإيداعات”. إنه ليس فهرسًا قابلًا للاستعلام عن كل رمز وملف وموقع استدعاء في مستودعك الموحّد.
ليست بديلًا عن Devin Desktop. طبقة سياق المستودع التي تتصل بدعم MCP في Devin Local.
.devin/rules/ تواصل أداء مهمتها. إشارات @ تواصل أداء مهمتها. Maguyva يسدّ الثغرة التي لا تسدّانها. Devin Local يحرِّر الملف الذي تشير إليه.
Maguyva يخبر الوكيل بالملف الذي يجب الإشارة إليه.
عابر للحزم، وعابر للغات. مؤسَّس على الرسم البياني الفعلي للاستدعاءات، لا على grep الخاصة بـDevin Local.
// workflow 01
devin> أين تحدث المصادقة في هذا المستودع الموحّد؟ graph::query("authentication flow") packages/web/src/auth/session.ts:42 طبقة وسيطة packages/api/src/auth/jwt.ts:88 التحقق من الرمز packages/shared/src/auth/types.ts:12 AuthContext packages/admin/src/auth/admin-only.ts:31 فحص صلاحيات RBAC → 4 نقاط دخول عبر 4 حزم، مرتَّبة حسب كثافة مواقع الاستدعاء. [exit 0]
لم تُشِر إلى ملف. لم تلصق مقتطفًا. لدى Devin Local الملفات الأربعة المهمة، بالترتيب الصحيح، ويمكنه إجراء تعديل مؤسَّس.
// workflow 02
devin> كيف تتعامل 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
devin> ما الذي يستدعي QueueDispatcher.publish عبر المستودع الموحّد؟ graph::callers(QueueDispatcher.publish) 3 في packages/billing/* 1 في packages/audit/* 1 في packages/notifications/* 1 في services/python-worker/* ← عابر للغات عبر واجهة gRPC (stub) [exit 0]
عابر للحزم، وعابر للغات عندما يكون لديك مستودع متعدد اللغات، تظهر مواقع الاستدعاء ضمن السياق. الفرق مؤسَّس على مستوردين حقيقيين، لا على grep الخاصة بـDevin Local.
ثلاث خطوات. خطة Free: 3 مستودعات, حتى 50 ألف سطر مُفهرَس من المستودع، بلا بطاقة.
// step 01
اختر المستودع الموحّد الذي شعرت فيه بأكبر معاناة من نقص السياق.
// step 02
~/.config/devin/mcp_config.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
}
}
}
} // step 03
لا تبدأ بشركتك بأكملها. ابدأ بمستودع واحد وسؤال واحد يمكن التحقق منه، مثل «ما الذي يستدعي formatInvoice عبر الحزم؟»