/ الدليل / الملعب / drift
● مجتمع dadbodgeoff ⚡ فوري

drift

بواسطة dadbodgeoff · dadbodgeoff/drift

منح Claude ذاكرة طويلة الأجل لاتفاقيات قاعدة الأكواد الخاصة بك والقرارات السابقة — عبر كل جلسة، وليس فقط اليوم.

drift هو خادم MCP لذكاء قاعدة الأكواد. يقوم بفحص مستودعك، واستخراج الأنماط والاتفاقيات (التسمية، معالجة الأخطاء، الطبقات)، ويتذكر القرارات المعمارية عبر الجلسات بحيث تتوارث كل محادثة جديدة سياق فريقك. يعمل أيضاً بلا اتصال كـ CLI.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

drift.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "drift": {
      "command": "uvx",
      "args": [
        "drift"
      ],
      "_inferred": true
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "drift": {
      "command": "uvx",
      "args": [
        "drift"
      ],
      "_inferred": true
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "drift": {
      "command": "uvx",
      "args": [
        "drift"
      ],
      "_inferred": true
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "drift": {
      "command": "uvx",
      "args": [
        "drift"
      ],
      "_inferred": true
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "drift",
      "command": "uvx",
      "args": [
        "drift"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "drift": {
      "command": {
        "path": "uvx",
        "args": [
          "drift"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add drift -- uvx drift

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: drift

إضافة مساعد ذكي إلى اتفاقيات قاعدة الأكواد الخاصة بك

👤 قادة التكنولوجيا المرهقون من تذكير Claude بـ 'لا، نحن لا نستخدم الفئات هنا' ⏱ ~20 min beginner

متى تستخدمه: الجلسة الأولى في مستودع جديد، أو بعد إعادة هيكلة كبيرة غيرت الاتفاقيات.

المتطلبات الأساسية
  • drift مثبت — uvx drift أو التثبيت عالمياً
الخطوات
  1. تشغيل الفحص الأولي
    شغل drift scan على هذا المستودع. أخبرني بالأنماط التي اكتشفتها حول معالجة الأخطاء، وبنية الوحدات، والتسمية.✓ تم النسخ
    → ملخص اتفاقية ملموس مع أمثلة
  2. تسجيل القرارات التي تريد الحفاظ عليها
    سجل قرارات الفريق هذه: نستخدم Result<T,E> وليس الاستثناءات، وحدة تحكم واحدة لكل مجلد ميزة، snake_case لأسماء الملفات. صنفها بـ 'conventions'.✓ تم النسخ
    → تأكيد؛ يمكن الاستعلام عن الإدخالات لاحقاً
  3. التحقق من التقاط الجلسات المستقبلية لها
    في جلسة جديدة: ما الاتفاقيات التي يتبعها هذا المستودع؟✓ تم النسخ
    → Claude يستشهد بالقرارات التي سجلتها

النتيجة: كل جلسة ذكاء اصطناعي مستقبلية تبدأ مع تحميل اتفاقيات فريقك — تصحيحات أقل، محادثات أكثر إنتاجية.

المزالق
  • يتم استنتاج الأنماط من الكود الموجود، بما في ذلك الكود السيء — راجع الفحص الأولي وحذف أي 'اتفاقيات' هي في الواقع ديون تقنية تحاول الهروب منها
  • ذاكرة القرارات تنجرف عن الواقع إذا نسيت تحديثها — تعامل مع إدخالات الذاكرة مثل المستندات — راجعها كل ربع سنة
اجمعها مع: filesystem · github

فرض اتفاقيات الفريق أثناء مراجعة PR

👤 مراجعو الكود ⏱ ~10 min intermediate

متى تستخدمه: قبل الموافقة على PR، تحقق من أنه لم ينتهك أنماط الفريق بصمت.

الخطوات
  1. تحميل diff خاص بـ PR
    حمل diff الخاص بـ PR #213 وقارنه مقابل الاتفاقيات التي سجلها drift.✓ تم النسخ
    → قائمة بمطابقات الاتفاقيات والانحرافات
  2. صياغة تعليقات المراجعة للانحرافات
    لكل انحراف، صيغ تعليق مراجعة مهذب يستشهد بالاتفاقية.✓ تم النسخ
    → نص التعليق لكل نتيجة

النتيجة: مراجعات PR متسقة دون الحاجة لأن يتذكر المراجع كل قاعدة غير مكتوبة.

المزالق
  • قد تكون الأنماط الجديدة مقصودة — لا تكن عقائدياً — اسمح للمؤلف بالتجاوز بقرار 'نمط جديد' يتم تسجيله لـ PRs المستقبلية
اجمعها مع: github

الحفاظ على سجل خفيف الوزن لقرارات المعمارية

👤 أي فريق ينسى باستمرار لماذا تم اتخاذ الخيارات ⏱ ~5 min beginner

متى تستخدمه: بدلاً من مجلد ADR رسمي لا يحدثه أحد.

الخطوات
  1. تسجيل قرار عند اتخاذه
    سجل القرار: اخترنا Postgres بدلاً من DynamoDB بسبب احتياجات الاستعلام المرتجلة. التاريخ: اليوم. الوسوم: db, architecture.✓ تم النسخ
    → إدخال محفوظ برقم معرّف
  2. الاستعلام لاحقاً عند عودة السؤال
    لماذا اخترنا Postgres؟✓ تم النسخ
    → القرار المخزن يظهر

النتيجة: ذاكرة المؤسسة التي تستمر عبر تغيير الموظفين.

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

drift + filesystem

drift يعرف الاتفاقيات، filesystem يقوم بالتعديلات

باستخدام الاتفاقيات التي سجلها drift، أعد هيكلة src/api/users.ts لتطابقها. استخدم filesystem لتطبيق التعديلات.✓ تم النسخ
drift + github

مراجعة PRs الواردة مقابل الاتفاقيات المسجلة

أحضر PR #88، تحقق منه مقابل اتفاقيات drift، صيغ تعليقات مراجعة لأي انحراف.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
scan_codebase path: str الجلسة الأولى، أو بعد إعادة هيكلة كبيرة مجاني؛ محدود بـ CPU
list_conventions tag?: str تحميل السياق في بداية الجلسة مجاني
record_decision title: str, body: str, tags?: str[] عندما يتفق الفريق على شيء غير واضح مجاني
query_memory query: str عندما يجب على Claude استدعاء السياق السابق مجاني (embeddings محلية)
detect_pattern area: str Ad-hoc 'كيف نفعل X عادة هنا؟' مجاني

التكلفة والحدود

تكلفة التشغيل

حصة API
لا يوجد — محلي بالكامل
الرموز لكل استدعاء
ملخصات الاتفاقيات: ~1k tokens. يمكن لتفريغات الفحص الكامل أن تكون 10k+
التكلفة المالية
مجاني ومفتوح المصدر
نصيحة
حمل ملخص الاتفاقيات في بداية الجلسة، وليس الفحص الكامل. الفحص الكامل فقط في إعادة الهيكلة.

الأمان

الصلاحيات والأسرار ونطاق الأثر

تخزين بيانات الاعتماد: SQLite محلي أو نظام الملفات فقط
نقل البيانات الخارجي: لا يوجد بشكل افتراضي — يعمل بدون اتصال بالكامل

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

الفحص يتعطل على مستودع monorepo كبير

استبعد المجلدات المُنتجة والموردين عبر .driftignore (نفس بناء الجملة مثل .gitignore).

تحقق: drift scan --dry-run
استعلام الذاكرة لا يعيد شيء ذا صلة

أعد بناء مؤشر embeddings المحلي؛ القرارات الجديدة لا تظهر حتى يتم فهرستها.

تحقق: drift reindex
Claude لا يستخدم الاتفاقيات المسجلة

تأكد من أن MCP مدرج أولاً في تكوين العميل الخاص بك بحيث يتم تحميل سياقه في بداية كل جلسة.

تحقق: claude mcp list

البدائل

drift مقابل البدائل

البديلمتى تستخدمهاالمقايضة
MARM-Systemsتريد ذاكرة عامة عبر الجلسات وليست خاصة بالكودأقل وعياً بالكود؛ ملاحظات أكثر عمومية
llm-context.pyتريد تجميع كود يقوده القواعد بدلاً من الذاكرةلا توجد طبقة استمرار
ملفات ADRs عادية في المستودعتفضل docs-as-codeيجب على الذكاء الاصطناعي قراءتها كل جلسة — تكلفة tokens أعلى

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills