// الاتفاق
AGENTS.md
كيف ينبغي أن يتصرَّف Codex في هذا المستودع.
لمستخدمي Codex CLI
AGENTS.md يضع اتفاق العمل. MCP يتيح لـCodex الوصول إلى الأدوات. Maguyva هي خادم MCP الذي يمنح Codex خريطة قابلة للاستعلام عن مستودعك، لذا لا يكون التعديل الأول تخمينًا لبنية الملفات.
خطة Free: 3 مستودعات, حتى 50 ألف سطر مُفهرَس من المستودع، بلا بطاقة.
AGENTS.md هو الاتفاق. MCP هو القناة. Maguyva هي الخريطة.أربع أفكار. لكل واحدة مهمتها.
// الاتفاق
كيف ينبغي أن يتصرَّف Codex في هذا المستودع.
// النقل
كيف يصل Codex إلى الأدوات والسياق الخارجيَّين.
// قاعدة الكود
خادم MCP الذي يُرجع حقائق مؤسَّسة عن المستودع.
// من يدفع
الوكلاء لا يدفعون مقابل مقاعد. اطّلع على الأسعار
التعليمات الدائمة مكانها AGENTS.md. إنه المكان الصحيح لـ:
اجعله موجزًا. حدِّد نطاقه. التزم به.
لكن 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 references across 7 packages graph::importers(src/payments/client.ts) 9 importers graph::extends(PaymentClient) 2 subclasses (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
# equivalent ~/.codex/config.toml
[mcp_servers.maguyva]
url = "https://maguyva.tools/mcp"
bearer_token_env_var = "MAGUYVA_API_KEY"// step 03
لا تبدأ بشركتك بأكملها. ابدأ بمستودع واحد وسؤال واحد يمكن التحقق منه.