// الاتفاق
AGENTS.md
كيف ينبغي أن يتصرَّف Codex في هذا المستودع.
لمستخدمي Codex CLI
AGENTS.md يضع اتفاق العمل. MCP يتيح لـCodex الوصول إلى الأدوات. Maguyva هو خادم MCP الذي يمنح Codex خريطة قابلة للاستعلام عن مستودعك، لذا لا يكون التعديل الأول تخمينًا لبنية الملفات.
خطة Free: 3 مستودعات, حتى 50 ألف سطر مُفهرَس من المستودع، بلا بطاقة.
AGENTS.md هو الاتفاق. MCP هو القناة. Maguyva هو الخريطة. أربع أفكار. لكل واحدة مهمتها.
// الاتفاق
كيف ينبغي أن يتصرَّف Codex في هذا المستودع.
// النقل
كيف يصل Codex إلى الأدوات والسياق الخارجيَّين.
// قاعدة الكود
خادم MCP الذي يُرجع حقائق مؤسَّسة عن المستودع.
// من يدفع
الوكلاء لا يدفعون مقابل مقاعد. اطّلع على الأسعار
التعليمات الدائمة مكانها AGENTS.md. إنه المكان الصحيح لـ:
اجعله موجزًا. حدِّد نطاقه. أودعه في Git.
لكن AGENTS.md لم يُصمَّم قط ليكون فهرسًا قابلًا للاستعلام عن كل رمز وملف وموقع استدعاء في مستودعك.
أربعة أنماط فشل، واحد لكل بطاقة.
إخبار Codex كيف يعمل لا يخبره بما هو موجود. التعديل الأول على حزمة غير مألوفة هو تخمين لمسارات الملفات وأسماء الدوال. لا يمكن لـAGENTS.md سرد كل رمز، ولن ترغب في ذلك أصلًا.
قسم في AGENTS.md يصف بنية قائمة الانتظار لديك يكون صحيحًا إلى أن يُدخِل أحدهم مستهلِكًا جديدًا. الكود الآن هو مصدر الحقيقة، والوثيقة قديمة بثقة زائفة. يقرأ Codex الوثيقة الخاطئة.
«ما الذي يشير إلى هذه الفئة؟» سؤال لا يمكن الإجابة عنه من ملف markdown. إما أن يبحث Codex بـgrep ويدعو أن ينجح عبر المستودع الموحّد، أو يطلب منك لصق مواقع الاستدعاء في المحادثة.
حشو AGENTS.md إلى أن “يعرف Codex ما يكفي” يستهلك رموزًا (tokens) كان ينبغي أن تُنفَق على الاستدلال. بعد بضع كيلوبايتات، تستبدل جودة الإجابة بحجم سياق جامد.
مستخدمو Codex يفكِّرون بهذا الشكل بالفعل. ينبغي أن توضِّح الصفحة ذلك.
AGENTS.md
الاتفاقات
كيف يتصرَّف Codex
MCP
القناة
كيف يصل
Maguyva
حقائق قاعدة الكود
ما يراه
AGENTS.md يخبر Codex كيف يعمل.
Maguyva يمنح Codex ما يعمل انطلاقًا منه.
خاص بـCodex. مؤسَّس على الرسم البياني الفعلي للاستدعاءات، لا على grep الخاصة بـCodex.
// workflow 01
codex> أعد تسمية PaymentClient → BillingClient graph::callers(PaymentClient) 12 مرجعًا عبر 7 حزم graph::importers(src/payments/client.ts) 9 جهات استيراد graph::extends(PaymentClient) 2 من الأصناف الفرعية (RetryClient, MockClient) → يقترح Codex عملية ترحيل من 21 تعديلًا مع قائمة الملفات مضمَّنة. [exit 0]
يطلب Codex من Maguyva العناصر المعتمدة قبل أن يبدأ التحرير. تعود قائمة الترحيل مؤسَّسة على الرسم البياني الفعلي، لا على تذكُّر Codex.
// workflow 02
codex> كيف تتعامل normalizePhoneNumber مع E.164؟ semantic::query("normalize phone E.164") src/util/phone.ts:88 normalizePhoneNumber() ← التنفيذ الحقيقي test/util/phone.spec.ts:14 jest.mock(...) ← بديل وهمي [exit 0]
الأسماء تكذب. المحاكيات تحجب الكود الحقيقي. يُرتِّب Maguyva التنفيذ الحقيقي فوق محاكي الاختبار.
// workflow 03
codex> ما الذي يستدعي QueueDispatcher.publish؟ graph::callers(QueueDispatcher.publish) 3 في src/billing/* 1 في src/audit/* 1 في src/notifications/* [exit 0]
تظهر مواقع الاستدعاء العابرة للحزم ضمن السياق. الفرق مؤسَّس على مستوردين حقيقيين، لا على grep الخاصة بـCodex.
ثلاث خطوات. خطة Free: 3 مستودعات, حتى 50 ألف سطر مُفهرَس من المستودع، بلا بطاقة.
// step 01
اختر واحدًا تعرفه جيدًا، لتتمكَّن من التحقق من الإجابات.
// step 02
export MAGUYVA_API_KEY=mgv_xxxx
codex mcp add maguyva --url https://maguyva.tools/mcp --bearer-token-env-var MAGUYVA_API_KEY ~/.codex/config.toml
[mcp_servers.maguyva]
url = "https://maguyva.tools/mcp"
bearer_token_env_var = "MAGUYVA_API_KEY" // step 03
لا تبدأ بشركتك بأكملها. ابدأ بمستودع واحد وسؤال واحد يمكن التحقق منه.