تخطَّ إلى المحتوى

لمستخدمي Goose

‏Goose يعمل بالامتدادات. أضف امتدادًا يعرف مستودعك.

ينجز Goose عمله عبر الامتدادات، وكل امتداد هو خادم MCP. Maguyva هي الامتداد الذي يفهرس قاعدة الكود لديك، فيسأل Goose عن أماكن الأشياء بدل سرد المجلدات.

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

استخدم ‎.goosehints لطريقة العمل، وMaguyva لما يقوله الكود الآن.

ما يجب معرفته عن Goose

أربع حقائق خاصة بـGoose.

‏// ملف الإعداد

config.yaml

توضع الامتدادات تحت extensions في ~/.config/goose/config.yaml. الأمر goose configure → Add Extension يكتب لك إدخالًا من النوع نفسه.

‏// النقل

امتداد بعيد

Maguyva امتداد من نوع streamable_http، لذا يتصل Goose بنقطة النهاية بنفسه: لا عملية محلية ولا Node.js. يوضع الرابط في uri لا في url.

‏// المفتاح

headers

يرسل Goose خريطة headers مع كل طلب، لذا يوضع المفتاح في ترويسة Authorization. ويمكن لـGoose أيضًا ملؤها من متغير بيئة مذكور تحت env_keys.

‏// مرشّح الأدوات

available_tools

يستطيع الامتداد كشف جزء من أدواته فقط: اسرد ما تريده تحت available_tools، أو اتركه فارغًا لكشفها جميعًا.

تلميحات Goose اتفاق عمل. استخدمها.

# .goosehints
- استخدم pnpm، لا npm.
- شغّل اختبارات التكامل قبل أن تعدّ التغيير منتهيًا.

يحمّل Goose افتراضيًا AGENTS.md و.goosehints: التلميحات العامة من ~/.config/goose/.goosehints، وتلميحات المشروع من المستودع، والملفات المتداخلة أثناء العمل في المجلدات الفرعية. تحتاج التلميحات إلى امتداد Developer. إنها المكان الصحيح لـ:

  • خيارات الأدوات والأوامر.
  • الأعراف التي ينبغي أن يتبعها Goose.
  • أماكن التوثيق.

التلميحات تصف المشروع. لكنها لا تجيب عن “ما الذي يعتمد على هذا؟”

حين لا تكفي التلميحات والصدفة

ثلاث فجوات يملؤها Goose بأوامر الصدفة، ملفًا بعد ملف.

‏// القائمة ليست خريطة

في مستودع غير مألوف، يتوجّه Goose بقوائم المجلدات وقراءة الملفات. وكل منها يستهلك سياقًا قبل أن تبدأ المهمة.

‏// grep يجد السلاسل لا المستدعين

لا يستطيع البحث النصي التمييز بين استدعاء حقيقي وتعليق، أو mock، أو دالة بالاسم نفسه.

‏// التلميحات تنحرف

ملف تلميحات كُتب في الربع الماضي يصف بنية الربع الماضي. ويتبعه Goose على أي حال.

Maguyva كامتداد لـGoose

إدخال واحد في extensions يمنح Goose:

  • 11 أداة على مستودعك المفهرس بحث دلالي وهيكلي (AST) وبالرسم البياني ونصي، إضافة إلى البحث عن الرموز والعناصر المعتمدة واسترجاع الملفات.
  • إجابات مع مسارات الملفات وأرقام الأسطر عبر أكثر من 285 لغة.
  • أدوات للقراءة فقط تستعلم أدوات Maguyva من الفهرس. لا تعدّل أيٌّ منها ملفاتك.

التلميحات تخبر Goose كيف يعمل.

Maguyva تمنح Goose خريطة للكود.

سيرا عمل

الخريطة أولًا، ثم دع Goose يعمل.

// workflow 01

تتبّع خللًا حتى مصدره

goose> لماذا تنتهي بعض عمليات التصدير بصفر صفوف؟

semantic_search("export job empty result")
  src/export/runner.ts:118   flushBatch()
  src/export/filters.ts:40   applyTenantFilter()

→ يقرأ Goose ملفين، لا حزمة export كاملة.
[exit 0]

تضيّق النتائج المرتّبة نطاق البحث قبل أن يفتح Goose الصدفة.

// workflow 02

افحص العناصر المعتمدة قبل إعادة الهيكلة

goose> قسّم الفئة Notifier إلى بريد إلكتروني وSMS

dependency_search("Notifier", dependents)
  11 مرجعًا عبر 5 حزم

→ تغطي الخطة المراجع الأحد عشر كلها قبل التعديل الأول.
[exit 0]

يحصل Goose على قائمة العناصر المعتمدة كاملة في استدعاء واحد بدل سلسلة من أوامر grep.

الإعداد في Goose

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

  1. // step 01

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

    اختر واحدًا تعرفه جيدًا، لتتمكَّن من التحقق من الإجابات.

  2. // step 02

    أضف Maguyva إلى extensions في config.yaml

    ~/.config/goose/config.yaml

    extensions:
      maguyva:
        name: maguyva
        type: streamable_http
        uri: https://maguyva.tools/mcp
        enabled: true
        headers:
          Authorization: Bearer mgv_xxxx
        timeout: 300
    
  3. // step 03

    استبدل العنصر النائب وابدأ جلسة

    استبدل mgv_xxxx بمفتاح API الخاص بك، وشغّل goose session، واطرح سؤالًا واحدًا تعرف إجابته مسبقًا. ملفات YAML حساسة للمسافات البادئة: استخدم المسافات لا علامات الجدولة.