# Devin Desktop يحرِّر الملف. Maguyva يرى المستودع.

Canonical source: https://maguyva.ai/ar/for-windsurf

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

‏Devin Desktop (Windsurf IDE) هو المحرِّر وDevin Local هو الوكيل. في المستودع الموحّد، ما يزال الوكيل يحتاج إلى خريطة توضّح أي ملف يهم. يفهرس Maguyva قاعدة الكود لديك ويعيدها عبر MCP (دلاليًا، وAST، ورسم بيانيًا، ونصيًا)، لذا يعيد سؤال «أين تحدث المصادقة» تدفق المصادقة الفعلي، لا سبعة بدائل وهمية للاختبار.

> Devin Desktop يحرِّر ما تشير إليه. Maguyva يخبر Devin Local بالملف الذي يجب الإشارة إليه.

## ما تقوم به كل طبقة

أربع قطع. لكل واحدة مهمتها.

### Devin Desktop

حيث تعملان أنت وDevin Local فعليًا.

### إشارات @ + ‏.devin/rules/

السياق اليدوي يفوز، إلى أن يكبر المستودع.

### Maguyva

حقائق تلقائية عن قاعدة الكود عبر MCP.

### مساحات عمل، لا مقاعد

الوكلاء لا يدفعون مقابل مقاعد. [اطّلع على الأسعار](https://maguyva.ai/ar/pricing)

## Devin Desktop هو المحرِّر. استخدمه.

بيئة التطوير ليست هي المشكلة. Devin Local، والإكمال التلقائي عبر Tab، والتحرير متعدد الملفات، و`.devin/rules/` كلها ممتازة، وأنت بالفعل تستخدمها من أجل:

- الاقتراحات المضمَّنة وتحريرات Devin Local في الملف المفتوح.
- التحرير متعدد الملفات حين يكون التغيير محليًا.
- `.devin/rules/` لأعراف المستودع وضوابط الأسلوب.
- إشارات `@` لسحب ملف محدَّد إلى السياق.

واصل فعل ذلك. لا شيء منه يختفي.

لكن في مستودع موحّد حقيقي (TypeScript بتبعيات مساحة العمل، وخدمات Python، وحزم مختلطة) ينهار سياق الوكيل بمجرد أن لا يكون الملف المعني على رادار Devin Local أصلًا.

## إصلاحات يدوية جرّبتها من قبل، وأين تتعطّل

أربعة إصلاحات يدوية، مقترنة بنمط تعطّلها. اليسار = ما تفعله اليوم. اليمين = أين يتعطّل.

### ‏// أشِر إلى الملفات

تُشير بـ`@` إلى الملفات الثلاثة التي تظن أنها مهمة. يحرِّر Devin Local بدقة داخلها.

### ‏// الإشارة تخمين

يعمل هذا حين تعرف مسبقًا أي الملفات معنيّة. الغاية الكاملة من أدوات السياق هي إظهار الملفات التي لم تكن تعرف أن تشير إليها.

### ‏// الصق المقتطفات

تلصق 200 سطر من حزمة أخرى في Devin Local لتمنحه سياقًا كافيًا.

### ‏// الكود المُلصَق يصبح قديمًا

المقتطف الذي ألصقته الساعة 9 صباحًا لا يعكس عملية rebase التي أنجزها زميلك الساعة 11 صباحًا. Devin Local يحرِّر على نسخة وهمية من الحزمة.

### ‏// اكتب وثيقة سياق

تكتب ملف `.devin/rules/` أو وثيقة معمارية بصيغة markdown. تكون صحيحة اليوم.

### ‏// الوثائق تنحرف أسرع من الكود

أي شيء تكتبه يدويًا ينحرف عن الواقع. الكود هو مصدر الحقيقة. وثيقة تشرح طبقة قائمة الانتظار تكون صحيحة لأسبوع، ثم خاطئة إلى الأبد.

### ‏// أبقِ ملفات القواعد

تضيف `.devin/rules/` للتسمية والـlint وأوامر البناء. ممتاز للسلوك.

### ‏// القواعد ≠ الفهرس

‏`.devin/rules/` هو المكان الصحيح لـ“شغِّل دائمًا pnpm tsc -b قبل تسجيل الإيداعات”. إنه ليس فهرسًا قابلًا للاستعلام عن كل رمز وملف وموقع استدعاء في مستودعك الموحّد.

## Maguyva هو الطبقة الأساسية

ليست بديلًا عن Devin Desktop. طبقة سياق المستودع التي تتصل بدعم MCP في Devin Local.

- **دلالي + AST + رسم بياني + نصي**: بحث بالمعنى، أو البنية، أو التبعية، أو النص الحرفي. كل نتيجة تُرجع مسار ملف ورقم سطر.
- **عابر للحزم افتراضيًا**: مواقع الاستدعاء والمستوردون عبر كل حزمة في المستودع الموحّد، لا الحزمة التي يفتحها Devin Local فقط.
- **واعٍ بالفرع**: يرى Maguyva نسخة الكود التي يحرِّرها Devin Local.
- **مكمِّلة لا منافِسة**: ‏`.devin/rules/` تواصل أداء مهمتها. إشارات `@` تواصل أداء مهمتها. Maguyva يسدّ الثغرة التي لا تسدّانها.

> Devin Local يحرِّر الملف الذي تشير إليه.
> Maguyva يخبر الوكيل *بالملف الذي يجب الإشارة إليه.*

## ثلاثة تدفقات عمل في المستودع الموحّد

عابر للحزم، وعابر للغات. مؤسَّس على الرسم البياني الفعلي للاستدعاءات، لا على grep الخاصة بـDevin Local.

### 01. إيجاد تدفق المصادقة عبر الحزم، بلا الإشارة إلى أي شيء

```text
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 الملفات الأربعة المهمة، بالترتيب الصحيح، ويمكنه إجراء تعديل مؤسَّس.

### 02. إيجاد التنفيذ الحقيقي، لا البديل الوهمي

```text
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 التنفيذ الحقيقي فوق محاكي الاختبار، عبر كل حزمة.

### 03. تحقّق من نطاق التأثير قبل إعادة الهيكلة

```text
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.

## الإعداد مع Devin Desktop

ثلاث خطوات. خطة Free: 3 مستودعات, حتى 50 ألف سطر مُفهرَس من المستودع، بلا بطاقة.

### 01. افهرس مستودعًا على maguyva.ai

اختر المستودع الموحّد الذي شعرت فيه بأكبر معاناة من نقص السياق.

### 02. أضف Maguyva كخادم MCP في Devin Desktop

`~/.config/devin/mcp_config.json`

```json
{
  "mcpServers": {
    "maguyva": {
      "url": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
      }
    }
  }
}
```

### 03. اطرح سؤالًا واحدًا تعرف إجابته مسبقًا

لا تبدأ بشركتك بأكملها. ابدأ بمستودع واحد وسؤال واحد يمكن التحقق منه، مثل «ما الذي يستدعي `formatInvoice` عبر الحزم؟»

## افهرس مستودعًا واحدًا تعرفه جيدًا.

اختبر سؤالًا واحدًا يمكنك التحقق من إجابته.
