// ملف الإعداد
config.yaml
توضع الامتدادات تحت extensions في ~/.config/goose/config.yaml. الأمر goose configure → Add Extension يكتب لك إدخالًا من النوع نفسه.
لمستخدمي Goose
ينجز Goose عمله عبر الامتدادات، وكل امتداد هو خادم MCP. Maguyva هي الامتداد الذي يفهرس قاعدة الكود لديك، فيسأل Goose عن أماكن الأشياء بدل سرد المجلدات.
خطة Free: 3 مستودعات, حتى 50 ألف سطر مُفهرَس من المستودع، بلا بطاقة.
استخدم .goosehints لطريقة العمل، وMaguyva لما يقوله الكود الآن. أربع حقائق خاصة بـGoose.
// ملف الإعداد
توضع الامتدادات تحت extensions في ~/.config/goose/config.yaml. الأمر goose configure → Add Extension يكتب لك إدخالًا من النوع نفسه.
// النقل
Maguyva امتداد من نوع streamable_http، لذا يتصل Goose بنقطة النهاية بنفسه: لا عملية محلية ولا Node.js. يوضع الرابط في uri لا في url.
// المفتاح
يرسل Goose خريطة headers مع كل طلب، لذا يوضع المفتاح في ترويسة Authorization. ويمكن لـGoose أيضًا ملؤها من متغير بيئة مذكور تحت env_keys.
// مرشّح الأدوات
يستطيع الامتداد كشف جزء من أدواته فقط: اسرد ما تريده تحت available_tools، أو اتركه فارغًا لكشفها جميعًا.
# .goosehints
- استخدم pnpm، لا npm.
- شغّل اختبارات التكامل قبل أن تعدّ التغيير منتهيًا.يحمّل Goose افتراضيًا AGENTS.md و.goosehints: التلميحات العامة من ~/.config/goose/.goosehints، وتلميحات المشروع من المستودع، والملفات المتداخلة أثناء العمل في المجلدات الفرعية. تحتاج التلميحات إلى امتداد Developer. إنها المكان الصحيح لـ:
التلميحات تصف المشروع. لكنها لا تجيب عن “ما الذي يعتمد على هذا؟”
ثلاث فجوات يملؤها Goose بأوامر الصدفة، ملفًا بعد ملف.
في مستودع غير مألوف، يتوجّه Goose بقوائم المجلدات وقراءة الملفات. وكل منها يستهلك سياقًا قبل أن تبدأ المهمة.
لا يستطيع البحث النصي التمييز بين استدعاء حقيقي وتعليق، أو mock، أو دالة بالاسم نفسه.
ملف تلميحات كُتب في الربع الماضي يصف بنية الربع الماضي. ويتبعه Goose على أي حال.
إدخال واحد في extensions يمنح Goose:
التلميحات تخبر 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.
ثلاث خطوات. خطة Free: 3 مستودعات, حتى 50 ألف سطر مُفهرَس من المستودع، بلا بطاقة.
// step 01
اختر واحدًا تعرفه جيدًا، لتتمكَّن من التحقق من الإجابات.
// step 02
~/.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
// step 03
استبدل mgv_xxxx بمفتاح API الخاص بك، وشغّل goose session، واطرح سؤالًا واحدًا تعرف إجابته مسبقًا. ملفات YAML حساسة للمسافات البادئة: استخدم المسافات لا علامات الجدولة.