<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>مدونة Maguyva</title><description>تحليلات تقنية معمّقة عن ذكاء الكود عبر MCP، ومعمارية وكلاء الذكاء الاصطناعي، ودروس مستفادة من بناء منصة بحث كود متعددة اللغات.</description><link>https://maguyva.ai/ar/blog</link><language>ar</language><atom:link href="https://maguyva.ai/ar/rss.xml" rel="self" type="application/rss+xml"/><item><title>السياق الذي يسافر معك</title><link>https://maguyva.ai/ar/blog/context-that-travels</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/context-that-travels</guid><description>فهرسة Cursor ممتازة داخل Cursor. Maguyva هي خريطة MCP مستضافة يمكن لنفس الوكيل استعلامها من محرر أو CLI أو CI آخر.</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;فهرسة Cursor ممتازة داخل Cursor. إكمال التبويب، والتحرير المضمّن، والمحادثة، والوكيل داخل تلك النافذة يعتمدون جميعًا بالفعل على فهرس المشروع الذي يشغّله Cursor لمساحة العمل المفتوحة. إذا كان Cursor هو السطح الوحيد الذي تكتب فيه، وكان ذلك الفهرس يجد الملفات الصحيحة بالفعل، فابقَ هناك. هذه حالة صادقة من ‘ابقَ حيث أنت’، وتستحق أن تكون الجملة الأولى في هذه الصفحة.&lt;/p&gt;
&lt;p&gt;هذا المقال يتناول النصف الآخر من الأسبوع المعتاد. نفس المستودع مفتوح أيضًا في Claude Code، ويُستعلم منه عبر Codex CLI، ويُراجَع على جهاز ثانٍ، أو يُستعلم منه بواسطة وكيل يعمل في CI. السؤال ليس ‘أي فهرس أفضل’. السؤال هو ما إذا كانت الخريطة التي يثق بها الوكيل في نافذة واحدة هي نفس الخريطة التي سيثق بها في النافذة التالية.&lt;/p&gt;
&lt;p&gt;Maguyva هي تلك الخريطة التي تسافر معك. إنها طبقة سياق قاعدة كود MCP عن بُعد. يستعلمها الوكيل بنفس الطريقة التي يستعلم بها أي أداة MCP أخرى. تعود النتائج كمسارات مقتبسة مع أرقام الأسطر. يظل Cursor هو المحرر. السياق هو ما يتحرك.&lt;/p&gt;
&lt;h2 id=&quot;لماذا-وُجدت-فهرسة-cursor&quot;&gt;لماذا وُجدت فهرسة Cursor&lt;/h2&gt;
&lt;p&gt;توجد الفهرسة المدمجة في Cursor حتى تتمكن المحادثة والوكلاء والبحث داخل المحرر من جلب الكود ذي الصلة بدلًا من الاعتماد فقط على ما يناسب نافذة السياق الخام للنموذج. هذا هو التصميم الصحيح لـ IDE. هذا الفهرس أصلي لـ Cursor. إنه ليس خادم MCP ولا يمكن الوصول إليه من عملاء آخرين.&lt;/p&gt;
&lt;p&gt;إليك كيف يعمل، كما هو موصوف في وثائق Cursor العامة وشروحات Cursor نفسها وقت كتابة هذا المقال: مسار البحث الأساسي لم يعد فهرس تضمينات سحابي. ذكر فريق Cursor في منتدى مجتمعهم أن البحث الدلالي/القائم على التضمينات المخصص يجري التقليل منه لصالح الاسترجاع القائم على grep، لأن النماذج الحالية أصبحت جيدة بما فيه الكفاية لاستكشاف الشجرة الحية بنفسها. بدلًا من ذلك هناك Instant Grep، وهو فهرس بحث محلي مبني من مقاطع نصية متتالية وقوائم مقلوبة ومرشحات بلوم، مخزّن في جداول بحث مُخطَّطة على الذاكرة، بحيث تُحل الاستعلامات على جهاز المطور نفسه بدلًا من الخادم.&lt;/p&gt;
&lt;p&gt;يعيش الفهرس نفسه في دليل &lt;code&gt;.git/cursor/&lt;/code&gt; الخاص بالمستودع نفسه، مُثبَّت على إيداع git محدد؛ التغييرات منذ ذلك الإيداع تُطبَّق فوقه بدلًا من إثارة مسح جديد، ولا يُعاد بناء الفهرس إلا عندما تنحرف الحالة المحلية بشكل كبير عمّا بُني عليه. ولأنه يقع داخل &lt;code&gt;.git&lt;/code&gt;، فإنه لا يُتتبَّع أبدًا ولا يُدفَع أبدًا — احذف ذلك المجلد، ويختفي الفهرس. يُحترَم &lt;code&gt;.gitignore&lt;/code&gt; في بنائه، لأن المحتوى المُتتبَّع فقط هو المؤهل، ويُطبَّق &lt;code&gt;.cursorignore&lt;/code&gt; في مسار القراءة. لم تعد هناك خطوة تضمين من جانب الخادم أو قاعدة بيانات متجهات عن بُعد في ذلك المسار. وصفت الوثائق القديمة تصميمًا بمساعدة السحابة — تشفير القطع، والمزامنة عبر أشجار Merkle، وإعادة استخدام الفهرس بين أعضاء الفريق — وقد قال فريق Cursor نفسه منذ ذلك الحين إن ذلك التصميم يجري التقليل منه، لذا لم يعد هذا المقال يصفه على أنه حالي.&lt;/p&gt;
&lt;p&gt;ما يبرز داخل المحرر هو الوكيل الفرعي للاستكشاف Explore الخاص بـ Cursor. يمكنه إطلاق عدة عمليات بحث متوازية في نافذة سياقه الخاصة على نموذج أسرع، وإرجاع النتائج ذات الصلة فقط، حتى لا تنتفخ المحادثة الرئيسية بنتائج البحث. هذه قوة حقيقية داخل المحرر. حافظ عليها.&lt;/p&gt;
&lt;p&gt;مساحات العمل متعددة الجذور مدعومة: سياق كل مجلد مفتوح متاح للـ Agent. بعض الميزات المعتمدة على git، مثل أشجار عمل git، مُعطَّلة في إعدادات متعددة الجذور، ولا يدعم Cloud Agents مساحات العمل متعددة الجذور على الإطلاق.&lt;/p&gt;
&lt;p&gt;لا شيء من هذا سبب لترك Cursor. إنه وصف دقيق لخريطة جيدة جدًا في المكان الذي تعيش فيه.&lt;/p&gt;
&lt;h2 id=&quot;ماذا-يعني-السفر-معك-فعليًا&quot;&gt;ماذا يعني ‘السفر معك’ فعليًا&lt;/h2&gt;
&lt;p&gt;تسافر الخريطة معك عندما يعيد نفس السؤال نفس نوع الإجابة، مع اقتباسات يمكنك فتحها، من أكثر من عميل واحد.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;في Cursor: ‘أين يُعرَّف &lt;code&gt;parseConfig&lt;/code&gt;، ومن يستدعيه؟’&lt;/li&gt;
&lt;li&gt;في Claude Code، على نفس المستودع: نفس السؤال.&lt;/li&gt;
&lt;li&gt;في Codex CLI، على جهاز مراجعة لم يفتح نافذة Cursor قط: نفس السؤال.&lt;/li&gt;
&lt;li&gt;في وكيل CI يتحدث MCP: نفس السؤال، مقابل نفس اللقطة المستضافة.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;إذا كان كل سطح يبني فهرسه الخاص والمنفصل، فأنت لا تملك خريطة واحدة. لديك عدة ذاكرات مؤقتة تتباعد. قد يكون فهرس المحرر محدّثًا للشجرة الموجودة على القرص. قد تتأخر جلسة CLI بيوم واحد. قد ترى مهمة CI نسخة مسحوبة مختلفة من الشيفرة. وسيظل الوكيل يبدو واثقًا مع ذلك.&lt;/p&gt;
&lt;p&gt;لم تُصمَّم فهرسة Cursor لحل ذلك. ولأنها تعيش داخل المحرر، فإن السياق الذي تبنيه مخصص لذلك المحرر. القراء الذين يحتاجون أيضًا إلى CLI أو خط أنابيب CI أو محرر مختلف يحتاجون إلى أداة منفصلة لتلك الأسطح. هذه حقيقة نطاق، وليست عيبًا. Maguyva هي تلك الأداة المنفصلة.&lt;/p&gt;
&lt;p&gt;عدد اللغات المنشور لفهرسة Cursor غير مذكور في المحتوى القابل للاستخدام لهذا المقال. تنشر Maguyva دعمًا لأكثر من 279 لغة وتقنية قائمة على النص. لا يُكرَّر تسعير Cursor هنا أيضًا؛ راجع صفحة تسعيرهم. تفرض Maguyva رسومًا لكل مساحة عمل، وليس لكل مقعد، بخطط منشورة عند $0 و$19 و$49 و$149 حسب التغطية المفهرسة وحجم مساحة العمل.&lt;/p&gt;
&lt;h2 id=&quot;خريطة-مستضافة-واحدة-لكل-عميل-mcp&quot;&gt;خريطة مستضافة واحدة، لكل عميل MCP&lt;/h2&gt;
&lt;p&gt;Maguyva هي خادم MCP عن بُعد. تربط GitHub، وتختار مستودعًا، ويبني خط الأنابيب السحابي الرموز، وحواف الرسم البياني، والخريطة المقتبسة. تضيف مفتاح API إلى تكوين MCP للعميل الذي تستخدمه بالفعل. لدى Maguyva أدلة إعداد لـ 24 عميل MCP موثّق — بما في ذلك Cursor — ويمكنها التحدث إلى أي عميل آخر متوافق مع MCP يدعم التكوين القياسي.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://maguyva.ai/ar/for-cursor&quot;&gt;صفحة إعداد Cursor&lt;/a&gt; هي مسار خاص بالمحرر إذا كان هذا هو مكان عملك. نفس الخادم يستجيب لـ Claude Code وVS Code وWindsurf وCodex CLI والباقي. أنت لا تغيّر المحرر. أنت تمنح كل وكيل نفس سطح الأدوات: 11 أداة MCP موجهة للعملاء عبر البحث والرموز وتحليل التبعيات واسترجاع الملفات وسياق المستودع وسير عمل الأدوات المساعدة الحتمية. يجتمع البحث الدلالي والبنيوي والرسم البياني والنصي في نتيجة واحدة مُصنَّفة.&lt;/p&gt;
&lt;p&gt;تلك هي فائدة قابلية النقل. الاقتباس الذي تتحقق منه في Cursor صباح اليوم له نفس الشكل الذي سيعيده Codex CLI الليلة. مسار الملف ورقم السطر. افتحه. إذا كان خاطئًا، سترى ذلك. إذا كان صحيحًا، فإن التغيير التالي لديه مكان يستقر فيه. المُدَّعى هو تغييرات أقل هلوسة، وليس وعدًا بأن كل تغيير سيكون صحيحًا.&lt;/p&gt;
&lt;p&gt;حداثة البيانات منشورة. اللقطات مختومة بالوقت، حتى يعرف الوكيل أي نسخة من الشجرة يقرأ. معدل إعادة البناء يومي في الخطة المجانية وكل ساعة في الخطط المدفوعة. القيد الصادق هو العمل المحلي غير المتزامن: التغييرات الموجودة فقط في شجرة العمل ليست بعد في الخريطة المستضافة. هذا القيد مستقل عن العميل الذي تستخدمه للاستعلام، وهذه هي النقطة الحقيقية. الانحراف بين العملاء لم يعد قيدًا خفيًا ثانيًا.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://maguyva.ai/ar/docs&quot;&gt;الوثائق&lt;/a&gt; تعطي نفس حلقة التفعيل لكل عميل: فهرس مستودع تعرفه بالفعل، اربط العميل، اطرح سؤالًا واحدًا يمكنك التحقق منه. افعل ذلك مرة واحدة في Cursor. افعله مرة أخرى من CLI الذي تستخدمه فعليًا يوم المراجعة. إذا اقتبست كلتا الإجابتين نفس المعالج، فإن الخريطة قد سافرت معك بالفعل.&lt;/p&gt;
&lt;h2 id=&quot;كيف-تتعايش-الخريطتان-معًا&quot;&gt;كيف تتعايش الخريطتان معًا&lt;/h2&gt;
&lt;p&gt;استخدم كليهما. هذا ليس بديلًا بمعنى صفحة المقارنة.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;اترك فهرسة Cursor مفعّلة للمشروع الموجود على القرص. دع Explore وInstant Grep والوكيل داخل المحرر يستخدمونها. تلك الحلقة أصلية وسريعة.&lt;/li&gt;
&lt;li&gt;أضف Maguyva كخادم MCP في Cursor حتى تتمكن نفس الجلسة أيضًا من استعلام خريطة مساحة العمل المستضافة. Cursor عميل Maguyva موثّق. أنت لا تختار فهرسًا واحدًا وتحذف الآخر.&lt;/li&gt;
&lt;li&gt;أضف نفس خادم Maguyva إلى Claude Code أو Codex CLI أو أي عميل MCP آخر يلمس المستودع. نموذج مفتاح API واحد. مساحة عمل واحدة.&lt;/li&gt;
&lt;li&gt;إذا كان وكيل CI متوافقًا مع MCP، وجّهه إلى نفس الخادم. سيقرأ نفس اللقطة المختومة بالوقت التي يقرأها الحاسوب المحمول.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;يظل فهرس المحرر أفضل أداة لـ ‘ما هو موجود على القرص في هذه النافذة، الآن’. الخريطة المستضافة هي أفضل أداة لـ ‘كيف تبدو مساحة العمل هذه لكل وكيل سيلمسها اليوم’. هاتان الجملتان لا تتنافسان.&lt;/p&gt;
&lt;p&gt;حصص مساحة العمل منشورة في &lt;a href=&quot;https://maguyva.ai/ar/pricing&quot;&gt;صفحة التسعير&lt;/a&gt;: المستودعات، والأسطر المفهرسة، والمستخدمون، تُفرض رسومها لكل مساحة عمل. يشترك الوكلاء والبشر في نفس عدد المستخدمين. ابدأ مجانًا بمستودع يمكنك تقييمه بالفعل. رقّي مساحة العمل فقط بعد أن تصمد الاقتباسات أمام التماس مع تلك الشجرة.&lt;/p&gt;
&lt;h2 id=&quot;ما-لا-تدّعيه-هذه-الصفحة&quot;&gt;ما لا تدّعيه هذه الصفحة&lt;/h2&gt;
&lt;p&gt;هي لا تدّعي أن فهرسة Cursor ضعيفة أو غير مكتملة أو سبب لتغيير المحرر. الجملة الأولى من هذا المقال تنص على العكس.&lt;/p&gt;
&lt;p&gt;هي لا تدّعي أن Maguyva تحل محل Instant Grep أو الوكيل الفرعي للاستكشاف. تلك ميزات Cursor. تبقى في Cursor.&lt;/p&gt;
&lt;p&gt;هي لا تختلق أعداد لغات أو أرقام كمون أو توفير رموز لأي منتج. الأرقام غير المعروفة تبقى غير منشورة.&lt;/p&gt;
&lt;p&gt;هي لا تتظاهر بأن العمل المحلي غير المدفوع بعد موجود في الخريطة المستضافة. اللقطة المختومة بالوقت تجعل ذلك القيد مرئيًا. هي لا تلغيه.&lt;/p&gt;
&lt;p&gt;الاختبار عادي. فهرس مستودع تعرفه بالفعل. اطرح سؤالًا واحدًا يمكنك التحقق منه، أولًا في Cursor ثم في عميل MCP ثانٍ. السياق الذي يسافر معك هو نفس الاقتباس في كلا المكانين.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// same map, wherever you opened it.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>Ecosystem</category><category>MCP</category><category>Portability</category></item><item><title>الخريطة أولًا، المراجعة ثانيًا</title><link>https://maguyva.ai/ar/blog/map-first-review-second</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/map-first-review-second</guid><description>أسّس وكيل البرمجة الخاص بك على خريطة المستودع قبل أن يكتب. ثم دع Greptile يراجع طلب السحب بعد ذلك. زوج متكامل، وليس بديلًا.</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;توجد مهمتان مختلفتان على جانبي طلب السحب. قبل أن يكتب الوكيل، يحتاج إلى خريطة للشجرة التي يوشك على تغييرها. بعد أن يفتح الوكيل طلب السحب، يحتاج شيء إلى قراءة ذلك التغيير مقابل بقية النظام وترك تعليق قابل للتنفيذ من قبل الإنسان.&lt;/p&gt;
&lt;p&gt;تبدو هاتان المهمتان متشابهتين من بعيد لأن كلتيهما تتضمنان ‘فهم قاعدة الكود’. إنهما ليستا نفس المنتج. واحدة تجيب عن ‘أين ينبغي أن يستقر هذا التغيير؟’. الأخرى تجيب عن ‘ما الذي يكسره هذا التغيير الذي سيفوّته مدقق شيفرة يعمل سطرًا بسطر؟’. خلطهما ينتج مسودة أولى أسوأ ومراجعة أكثر ضجيجًا.&lt;/p&gt;
&lt;p&gt;هذا المقال دليل سير عمل مزدوج. Maguyva هي الخريطة التي يستعلمها الوكيل أولًا. Greptile هو وكيل المراجعة الذي يعلّق على طلب السحب بعد ذلك. هذا الزوج متكامل بحكم التصميم: لا تراجع Maguyva طلبات السحب، ولا يحل Greptile محل طبقة السياق التي يستخدمها الوكيل لكتابته.&lt;/p&gt;
&lt;h2 id=&quot;لماذا-هذا-التقسيم-مفيد&quot;&gt;لماذا هذا التقسيم مفيد&lt;/h2&gt;
&lt;p&gt;وكيل البرمجة الذي يبدأ بتحيز التدريب بالإضافة إلى بعض الملفات المُلصَقة سيخترع مسارًا معقولًا ويحرّره. هذا فشل من نوع ‘الملف الخاطئ’، وهو مشكلة استرجاع. Maguyva هي طبقة سياق قاعدة كود MCP عن بُعد: يجتمع الاسترجاع الدلالي والبنيوي (AST) والرسم البياني/التبعيات والنصي في نتيجة واحدة مُصنَّفة، بالإضافة إلى البحث عن الرموز واسترجاع الملفات. الإجابات المدعّمة بالأدلة تعود كـ &lt;code&gt;path/file.ext:line&lt;/code&gt;، حتى تتمكن من رفض الخطأ قبل أن توجد الرقعة. المُدَّعى بسيط عمدًا: تغييرات أقل هلوسة. لا يزال بإمكان النموذج التخمين. فقط الخطوة الأولى لم تعد تخمينًا.&lt;/p&gt;
&lt;p&gt;Greptile هو وكيل مراجعة كود مدعوم بالذكاء الاصطناعي. بكلماتهم، يراجع تلقائيًا كل طلب سحب بفهم كامل لقاعدة الكود، ويضع نفسه مقابل أدوات تدقيق الشيفرة التقليدية التي تفحص الملفات بشكل منفصل بدلًا من النظام بأكمله. يتكون الإعداد من تثبيت تطبيق GitHub أو GitLab واختيار مستودع. لا يوجد فهرس محلي عليك تشغيله. الاستضافة عبر Greptile Cloud (يذكرون امتثال SOC 2 Type II، مع تقرير متاح عند الطلب)، مع خيار استضافة ذاتية معروض للمؤسسات.&lt;/p&gt;
&lt;p&gt;تدفقهم المرقّم بأنفسهم هو: الاتصال وبناء رسم بياني للتبعيات لكل دالة وفئة وتبعية؛ عند كل طلب سحب، تحليل التغيير باستخدام ذلك الرسم البياني الكامل للمستودع ونشر النتائج كتعليقات على طلب السحب مع إصلاحات مقترحة، في حوالي ثلاث دقائق؛ يمكن لكل تعليق تسليم المشكلة إلى وكيل البرمجة الذي يستخدمه الفريق بالفعل. يذكرون أيضًا أنهم يقرؤون تعليقات طلبات السحب البشرية السابقة بمرور الوقت لتعلّم معايير كود الفريق وتقليل الاقتراحات المزعجة. نظام التعلم الخاص بهم، بحسبهم، يستغرق 2-3 أسابيع للتكيّف.&lt;/p&gt;
&lt;p&gt;هذه مراجعة، وليست صياغة. قوة Greptile هي سياق الرسم البياني الكامل للمستودع مقابل تغيير استقر بالفعل في طلب سحب، متبوعًا بحلقة مغلقة ترسل النتائج إلى Claude Code أو Codex أو Conductor أو Cursor أو Devin. قوة Maguyva هي الخريطة المُصنَّفة التي يستعلمها الوكيل قبل كتابة التغيير. استخدم كليهما. لا تطلب من أحدهما القيام بعمل الآخر.&lt;/p&gt;
&lt;p&gt;لا يوجد تكامل منتج من طرف أول بين Maguyva وGreptile مذكور. لست بحاجة إليه أيضًا. تتحدث Maguyva إلى الوكلاء عبر MCP. يتحدث Greptile إلى GitHub أو GitLab عبر تطبيقه الخاص. يلتقيان عند طلب السحب. لا سكريبت لاصق، ولا cron يغذّي أداة إلى أخرى. لا يحتاج هذا الزوج إلى bash لأن كل منتج يجلس بالفعل على السطح الذي يخصه.&lt;/p&gt;
&lt;h2 id=&quot;ما-ليس-هذا&quot;&gt;ما ليس هذا&lt;/h2&gt;
&lt;p&gt;هذا ليس تشهيرًا بـ Greptile. هذه ليست صفحة ‘استبدل مراجعك’. أُطلق Greptile على Hacker News في 5 مارس 2024 كشركة Y Combinator W24، وكان ذلك الموضوع طريقة تعرّف بها كثيرون على هذا المنتج لأول مرة. إذا كانت تلك هي الطريقة التي اكتشفتهم بها، استمر باستخدامهم. هذه الصفحة هي النصف الثاني المفقود من تلك الحلقة: تأسيس الوكيل أولًا حتى يكون طلب السحب الذي يراه Greptile مستهدفًا بالفعل للملفات الصحيحة.&lt;/p&gt;
&lt;p&gt;تتصدر مواد Greptile التسويقية بادّعاءات سرعة المراجعة واكتشاف الأخطاء. اعتبر ذلك ادّعاء Greptile الخاص، وليس رقمًا مُتحقَّقًا منه بشكل مستقل. لا يكرره هذا المقال كحقيقة.&lt;/p&gt;
&lt;p&gt;تغطية اللغات هي نفس النوع من الصدق. يؤطر Greptile الدعم على أنه يغطي جميع لغات البرمجة بدلًا من قائمة مُدرَجة؛ الرقم الدقيق غير مذكور. تنشر Maguyva دعمًا لأكثر من 279 لغة وتقنية قائمة على النص، مع تفصيل تقني (AST مدعوم بواسطة محلل نحوي مقابل نص فقط) على الموقع عندما يكون السؤال تقنيًا. هذان منتجان مختلفان يدّعيان أشياء مختلفة. لا تخلط بينهما.&lt;/p&gt;
&lt;p&gt;تسعير Greptile غير مذكور في المحتوى القابل للاستخدام لهذا المقال. الخطط المدفوعة موجودة؛ راجع صفحة تسعيرهم. تفرض Maguyva رسومًا لكل مساحة عمل، وليس لكل مقعد. الخطط تبدأ مجانًا. &lt;a href=&quot;https://maguyva.ai/ar/pricing&quot;&gt;صفحة التسعير&lt;/a&gt; تسرد المستويات المنشورة إذا كنت بحاجة إلى أرقام مساحة العمل.&lt;/p&gt;
&lt;h2 id=&quot;سير-العمل&quot;&gt;سير العمل&lt;/h2&gt;
&lt;p&gt;ثلاث مراحل مُسمّاة. نفّذها بهذا الترتيب. لا تتخطَّ أيًا منها في أول مرة تجرّب فيها هذا الزوج.&lt;/p&gt;
&lt;h3 id=&quot;1-سياق-maguyva&quot;&gt;1. سياق Maguyva&lt;/h3&gt;
&lt;p&gt;فهرس مستودعًا واحدًا تعرفه بالفعل. اربط عميل MCP الذي تكتب فيه بالفعل — Claude Code أو Cursor أو Codex CLI أو VS Code أو Windsurf أو أي عميل آخر متوافق مع MCP. لدى Maguyva أدلة إعداد لـ 24 عميل MCP موثّق ويمكنها التحدث إلى عملاء آخرين يدعمون تكوين MCP القياسي.&lt;/p&gt;
&lt;p&gt;اطرح سؤالًا واحدًا يمكنك تقييمه قبل أن يكتب أي أحد سطرًا واحدًا. ‘أين تُعالَج مهلة انتهاء الجلسة، ومن يستدعيها؟’ خطوة أولى أفضل من ‘أصلح المصادقة’. طالب بالاقتباسات. افتح نتيجة &lt;code&gt;file.ext:line&lt;/code&gt;. تتبّع الرمز. تحقق من التبعيات التي أنت على وشك لمسها.&lt;/p&gt;
&lt;p&gt;تكشف Maguyva عن 11 أداة MCP موجهة للعملاء عبر البحث والرموز وتحليل التبعيات واسترجاع الملفات وسياق المستودع وسير عمل الأدوات المساعدة الحتمية. تجتمع أربعة أنماط استرجاع في نتيجة واحدة مُصنَّفة؛ &lt;code&gt;find_symbol&lt;/code&gt; أداة منفصلة عندما تعرف الاسم بالفعل. تصف &lt;a href=&quot;https://maguyva.ai/ar/docs&quot;&gt;الوثائق&lt;/a&gt; أقصر مسار: ابدأ مجانًا، فهرس مستودعًا تعرفه بالفعل، اربط العميل، ثم اطرح سؤالًا واحدًا يمكنك التحقق منه.&lt;/p&gt;
&lt;p&gt;اللقطات مختومة بالوقت، حتى يتمكن الوكيل من معرفة أي نسخة من الشجرة يقرأ. القيد الصادق هو العمل المحلي غير المتزامن. إذا كان التغيير موجودًا فقط في شجرة العمل ولم يُدفَع بعد، فإن الخريطة المستضافة لا تحتوي عليه بعد. لا تزال ملفات التعليمات (&lt;code&gt;CLAUDE.md&lt;/code&gt;، &lt;code&gt;AGENTS.md&lt;/code&gt;) لها مكان هنا، للأعراف وما ينبغي عدم لمسه. إنها ليست خريطة حية. استخدمها للسلوك. استخدم Maguyva للحقائق.&lt;/p&gt;
&lt;p&gt;لا تدع الوكيل يفتح طلب سحب قبل أن يصمد الاقتباس أمام التماس مع المستودع. تلك البوابة هي الغرض الكامل من هذه المرحلة.&lt;/p&gt;
&lt;h3 id=&quot;2-طلب-سحب-الوكيل&quot;&gt;2. طلب سحب الوكيل&lt;/h3&gt;
&lt;p&gt;نفس الوكيل يكتب الآن التغيير في العميل الذي تدفع مقابله بالفعل. Maguyva ليست محررًا ولا مراجعًا. لا يزال الوكيل ينتج التغيير. لا تزال تفتح طلب سحب على GitHub أو GitLab كما كنت تفعل بالفعل.&lt;/p&gt;
&lt;p&gt;ما ينبغي أن يختلف هو الملف الأول. يجب أن يسمّي طلب السحب المعالج الفعلي الذي ينفّذ ذلك السلوك، والمستدعين الذين سينكسرون، والاختبارات التي ستفشل إذا كان التغيير خاطئًا. إذا تُخطّيت المرحلة 1، ستهدر المرحلة 3 تعليقها على تغيير استقر في الحزمة الخاطئة. لا يزال بإمكان Greptile العثور على مشاكل منهجية. لا ينبغي أن يضطر أيضًا للتعافي من مسار مُهلوَس.&lt;/p&gt;
&lt;p&gt;أبقِ طلب السحب صغيرًا. الملف الأول المدعوم بالأدلة ليس ترخيصًا لإعادة كتابة وحدة. يعمل هذا الزوج المتكامل عندما يقوم الوكيل بعمل واحد مع الخريطة، ثم يطلب من المراجع القيام بعمل آخر على تغيير محدود.&lt;/p&gt;
&lt;h3 id=&quot;3-مراجعة-greptile&quot;&gt;3. مراجعة Greptile&lt;/h3&gt;
&lt;p&gt;Greptile متصل بالفعل بالمستودع عبر تطبيق GitHub أو GitLab. عند طلب سحب جديد، يحلّل التغيير باستخدام الرسم البياني الكامل للمستودع الذي بناه، وينشر النتائج كتعليقات مع إصلاحات مقترحة. تضع موادهم الخاصة هذه الخطوة عند حوالي ثلاث دقائق.&lt;/p&gt;
&lt;p&gt;اقرأ التعليقات كما تقرأ زميل فريق منتبه: افتح الموقع المقتبس، قرر ما إذا كانت النتيجة صحيحة، ثم تصرّف. حيثما يقدّم Greptile ‘Fix with your Agent’، يرسل المشكلة — مسار الملف، رقم السطر، الكود المقترح — إلى Claude Code أو Codex أو Conductor أو Cursor أو Devin. يرسل ‘Fix All’ جميع المشكلات في تلك المراجعة دفعة واحدة. يوفرون أيضًا Greptile MCP وإضافة Claude Code لذلك التسليم. Maguyva غير موجودة في تلك القائمة المستهدفة المُسمّاة؛ هذا الغياب ليس مشكلة. أنجزت Maguyva عملها بالفعل في المرحلة 1. وكيل البرمجة الذي كتب طلب السحب هو الطرف الذي ينبغي أن يحصل على حمولة الإصلاح.&lt;/p&gt;
&lt;p&gt;توقّع ضجيجًا في الأسابيع 2-3 الأولى بينما يتكيّف نظام تعلّم Greptile مع التعليقات التي يتركها فريقك فعليًا. هذا هو الجدول الزمني الذي يذكرونه، وليس عيبًا في الزوج. تبقى المراجعة البشرية في تلك الحلقة. Greptile خطوة أولى تلقائية، وليس زر دمج.&lt;/p&gt;
&lt;p&gt;إذا أشار تعليق Greptile إلى ملف لم يستعلمه الوكيل قط في المرحلة 1، فهذه إشارة مفيدة. إما أن الخريطة فوّتت مستدعيًا، أو تخطّى الوكيل اقتباسًا. أصلح المسودة وفقًا للتعليق. لا تعطّل المراجع.&lt;/p&gt;
&lt;h2 id=&quot;كيف-تحافظ-على-صدق-هذا-التكامل&quot;&gt;كيف تحافظ على صدق هذا التكامل&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Maguyva دائمًا أولًا. مراجعة طلب سحب بملف خاطئ لا تزال مراجعة ملف خاطئ.&lt;/li&gt;
&lt;li&gt;Greptile دائمًا بعد ذلك. مسودة مُقتبَسة جيدًا لا تزال تحتاج إلى قراءة تغيير على مستوى النظام بأكمله.&lt;/li&gt;
&lt;li&gt;لا تطلب من Maguyva نشر تعليقات طلبات السحب. إنها لا تفعل ذلك.&lt;/li&gt;
&lt;li&gt;لا تطلب من Greptile أن يكون طبقة الاسترجاع الأولى للوكيل بينما لا يزال يختار المسار. هذا ليس عملًا مصممًا لتطبيق GitHub أو GitLab الخاص بهما.&lt;/li&gt;
&lt;li&gt;لا تخترع خط أنابيب bash ‘يزامن’ الاثنين. طلب السحب هو تلك الواجهة.&lt;/li&gt;
&lt;li&gt;تحقق من كلا الجانبين بشكل منفصل. فهرس مستودعًا تعرفه بالفعل. اطرح سؤالًا واحدًا يمكنك التحقق منه. ثم افتح طلب سحب صغير واقرأ ما يعلّق عليه Greptile فعليًا.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;تصبح هذه الحلقة عادية بمجرد تسميتها. الخريطة أولًا. طلب سحب الوكيل. المراجعة بعد ذلك. يبقى كل منتج على جانب طلب السحب الذي يتخصص فيه.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// map first. review second. in that order.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>Ecosystem</category><category>Workflow</category><category>Code Review</category></item><item><title>منح وكلاء الذكاء الاصطناعي سياق مستودع كبير بدون فهرس محلي</title><link>https://maguyva.ai/ar/blog/large-repo-context-without-a-local-indexer</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/large-repo-context-without-a-local-indexer</guid><description>كيف تمنح وكلاء البرمجة خريطة قابلة للاستعلام لمستودع كبير من السحابة، دون تشغيل فهرس محلي على حاسوبك المحمول.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;المستودعات الكبيرة لا تناسب نافذة السياق، وإذا سبق لك أن وجّهت فهرسًا مبنيًا على الحاسوب المحمول نحو مستودع موحّد حقيقي، فأنت تعرف أنه لا يناسبه بشكل مريح هناك أيضًا — تقفز ذاكرة الوصول العشوائي، ويستغرق الفهرسة الأولى ساعة، ويبدأ وكيلك مع ذلك الجلسة التالية بتخمين الملفات المهمة.&lt;/p&gt;
&lt;p&gt;الإجابة المعتادة هي تشغيل فهرس بجانب المحرر، وبالنسبة لمستودع يناسب جهازًا واحدًا بشكل مريح، هذه إجابة جيدة. إذا كان مستودعك الموحّد يُفهرَس بسرعة بالفعل في Cursor وكان ذلك هو المكان الوحيد الذي تحتاج فيه إلى الخريطة، فلا شيء يضيفه هذا المقال — تخطَّه.&lt;/p&gt;
&lt;p&gt;هذا المقال يتناول الحالة الأخرى — عندما يحتاج وكيل إلى خريطة قابلة للاقتباس لمستودع كبير، ولا تريد تشغيل فهرس محلي للحصول عليها.&lt;/p&gt;
&lt;h2 id=&quot;متى-يصبح-الفهرس-المحلي-الأداة-الخاطئة&quot;&gt;متى يصبح الفهرس المحلي الأداة الخاطئة&lt;/h2&gt;
&lt;p&gt;يفترض الفهرس المحلي أن الكود يعيش على نفس الجهاز الذي يستعلمه، وعلى نطاق مستودع موحّد حقيقي، يتوتر ذلك الافتراض حتى داخل محرر واحد. المستودع ببساطة أكبر مما تريد إبقاءه ‘ساخنًا’ على الحاسوب المحمول: تعمل في حزمة واحدة بينما يقع نطاق التأثير على بُعد ثلاثة أدلة، والفهرسة الباردة الأولى لشجرة مكوّنة من مليوني سطر ليست شيئًا تريد المرور به مرتين — سواء على جهازك الخاص، أو على عامل CI الذي لم يستنسخ تلك الشجرة من قبل. أو ينبغي أن يتمكن زميل الفريق من استعلام نفس الخريطة التي تستعلمها، دون انتظار جهازه الخاص ليكافح مع نفس الفهرس.&lt;/p&gt;
&lt;p&gt;لا شيء من هذا سبب للتخلص من فهرس محرر جيد. إنه سبب لامتلاك خريطة مستضافة أيضًا يمكن لأي من وكلائك استعلامها عبر MCP.&lt;/p&gt;
&lt;p&gt;ومشكلة النطاق تلك أعمق من ‘الكثير من الملفات للصق’. على شجرة كبيرة، السؤال المثير للاهتمام نادرًا ما يكون ‘أرني هذا الملف’ — إنه أي ملف، أي رمز، من يستدعي، أي اختبار. الوكيل الذي يبدأ بسرد &lt;code&gt;src/&lt;/code&gt; وقراءة أول ثلاث نتائج سيفوّت بسعادة المعالج في &lt;code&gt;apps/api&lt;/code&gt; والعميل المُولَّد في &lt;code&gt;packages/sdk&lt;/code&gt;. ما تحتاجه هو استرجاع مبني من الشجرة بأكملها، ثم مُصنَّف، ثم مقتبس.&lt;/p&gt;
&lt;h2 id=&quot;ماذا-يعني-سياق-مستودع-كبير-فعليًا&quot;&gt;ماذا يعني ‘سياق مستودع كبير’ فعليًا&lt;/h2&gt;
&lt;p&gt;إلقاء الملفات في الطلب ليس سياقًا — إنه نسخ أصغر وأسوأ للشجرة. ما يحتاجه وكيلك فعليًا هو طرح سؤال والحصول على إجابة مقتبسة تعود إليه: أين يُعرَّف هذا الرمز ومن يستدعيه، وما الذي يعتمد على الوحدة التي سأغيّرها، وأي ملفات اختبار تغطي هذا السلوك، وكيف تبدو تلك الشجرة &lt;em&gt;الآن&lt;/em&gt;، وليس الربع الماضي.&lt;/p&gt;
&lt;p&gt;يجب أن تأتي تلك الإجابات من فهرس مبني من مستودعك، وليس من ذاكرة النموذج عن مستودع شخص آخر، ويجب أن يعيش ذلك الفهرس في مكان ما خارج نافذة سياق الوكيل. لهذه المشكلة، ينبغي أن يعيش أيضًا في مكان ما خارج حاسوبك المحمول.&lt;/p&gt;
&lt;p&gt;شيء آخر لا تستطيع ملفات التعليمات فعله لك: &lt;code&gt;CLAUDE.md&lt;/code&gt; و&lt;code&gt;AGENTS.md&lt;/code&gt; هما المكانان الصحيحان للأعراف والسلوك، لكنهما ليسا خريطة حية ومُصنَّفة وقابلة للاستعلام لشجرة مكوّنة من مليوني سطر. استخدم القواعد للسلوك؛ استخدم ذكاء المستودع للحقائق.&lt;/p&gt;
&lt;h2 id=&quot;نبني-الخريطة-في-السحابة-وأنت-تستعلمها-من-أي-عميل&quot;&gt;نبني الخريطة في السحابة، وأنت تستعلمها من أي عميل&lt;/h2&gt;
&lt;p&gt;Maguyva هي طبقة سياق قاعدة كود MCP عن بُعد. تربط GitHub، وتختار مستودعك، ويمكنك أن تبتعد بينما يحلّل خط الأنابيب السحابي الشجرة، ويبني الرموز وحواف الرسم البياني، ويحافظ على خريطة مُصنَّفة — دون الحاجة أبدًا إلى فهرس محلي.&lt;/p&gt;
&lt;p&gt;عندما تدفع كودًا، تُحلَّل الملفات المتغيرة تدريجيًا، وتُعاد بناء طبقات الرسم البياني والتصنيف وفق جدول: يوميًا في الخطة المجانية، وكل ساعة في الخطط المدفوعة. كل لقطة مختومة بالوقت، حتى يتمكن وكيلك من معرفة أي نسخة من الشجرة يقرأ. القيد الصادق هنا هو العمل المحلي غير المتزامن — التغييرات الموجودة فقط في شجرة عملك، والتي لم تُدفَع أبدًا، ليست بعد في الخريطة المستضافة.&lt;/p&gt;
&lt;p&gt;ثم تربط أي عميل تستخدمه بالفعل بإضافة مفتاح API إلى تكوين MCP الخاص به. توجد أدلة إعداد لـ 24 عميل MCP موثّق، ويمكن لأي عميل آخر متوافق مع MCP يدعم التكوين القياسي أن يتصل أيضًا. إذا كان Cursor هو المكان الذي تعيش فيه، فإن &lt;a href=&quot;https://maguyva.ai/ar/for-cursor&quot;&gt;صفحة Cursor&lt;/a&gt; ترسم ذلك المسار؛ نفس الخادم يستجيب لـ Claude Code وVS Code وWindsurf وCodex CLI والباقي.&lt;/p&gt;
&lt;p&gt;أنت لا تغيّر المحرر. أنت تمنح وكيلك سطح أدوات — 11 أداة MCP عبر البحث والرموز وتحليل التبعيات واسترجاع الملفات وسياق المستودع — مع تغطية لأكثر من 279 لغة وتقنية قائمة على النص، مما يعني أكثر مما اعتقدت لمستودع موحّد توقف منذ زمن طويل عن كونه لغة واحدة.&lt;/p&gt;
&lt;p&gt;تعود الإجابات مدعّمة بالأدلة، كمسارات ملفات مع أرقام أسطر. يجتمع البحث الدلالي والبنيوي والرسم البياني والنصي في نتيجة واحدة مُصنَّفة، حتى لا يعطيك سؤال مثل ‘ما الذي يعتمد على parseConfig’ كومة من grep أو اقتباسًا دلاليًا واحدًا فقط، بل الأماكن القليلة التي تهم فعلًا.&lt;/p&gt;
&lt;h2 id=&quot;دليل-ملموس&quot;&gt;دليل ملموس&lt;/h2&gt;
&lt;p&gt;لا تبدأ بفهرسة الشركة بأكملها. هذا هو المسار الذي ينجح:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;اختر مستودعًا واحدًا تعرفه جيدًا بالفعل — حزمة يمكنك تقييمها يدويًا أكثر قيمة من أكبر شجرة تملكها.&lt;/li&gt;
&lt;li&gt;ابدأ مجانًا: 3 مستودعات، و50 ألف سطر مفهرس، وجميع الأدوات الـ11، ودون حصة استعلام شهرية. إذا كان مستودعك التمثيلي أكبر، فإن &lt;a href=&quot;https://maguyva.ai/ar/pricing&quot;&gt;صفحة التسعير&lt;/a&gt; تسرد مستويات مساحة العمل ($0، $19، $49، $149) حسب التغطية المفهرسة — وليس عدد المقاعد.&lt;/li&gt;
&lt;li&gt;اربط GitHub وانتظر اكتمال الفهرسة الأولى. أنت لا تُجمّع أي شيء محليًا.&lt;/li&gt;
&lt;li&gt;اربط عميل MCP الخاص بك — بضعة أسطر تكوين. Maguyva خادم MCP عن بُعد، لذا لا يوجد إضافة ولا امتداد ولا محرر ثانٍ يجب تبنّيه.&lt;/li&gt;
&lt;li&gt;اطرح سؤالًا واحدًا يمكنك التحقق منه. ‘ما الذي يعتمد على parseConfig؟’ أو ‘أين تُعالَج مهلة انتهاء جلسة تسجيل الدخول؟’ ثم افتح نتيجة &lt;code&gt;file.ext:line&lt;/code&gt; المقتبسة وتحقق منها مقابل الشجرة أمامك.&lt;/li&gt;
&lt;li&gt;فقط بعد أن تصمد الاقتباسات أمام التماس مع تلك الشجرة، تسمح للوكيل بالتحرير.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;إذا ناسب المستودع الأول جيدًا وكانت شجرتك كبيرة، رقّي مساحة العمل لتناسب أسطرك المفهرسة ومعدل إعادة البناء. يشترك البشر والوكلاء في نفس عدد المستخدمين — تفرض Maguyva رسومًا لكل مساحة عمل، وليس لكل مقعد — لذا إضافة وكيل ثالث إلى الحلقة لا تكلفك شيئًا إضافيًا.&lt;/p&gt;
&lt;p&gt;اختبار التفعيل هو نفسه الذي توصي به &lt;a href=&quot;https://maguyva.ai/ar/docs&quot;&gt;الوثائق&lt;/a&gt; لأي تشغيل أول: فهرس مستودع تعرفه بالفعل، اطرح سؤالًا واحدًا يمكنك التحقق منه. المستودع الكبير لا يغيّر ذلك الاختبار؛ يجعل فقط الملف الأول الخاطئ أكثر تكلفة.&lt;/p&gt;
&lt;h2 id=&quot;ما-تراقبه-بعد-الاتصال&quot;&gt;ما تراقبه بعد الاتصال&lt;/h2&gt;
&lt;p&gt;راقب ثلاثة أشياء. الحداثة: تُعاد بناء الخطط المدفوعة كل ساعة، والخطة المجانية يوميًا، والعمل المحلي غير المدفوع لن يكون في الخريطة — هذه هي المقايضة التي تقبلها. النطاق: فهرس مجموعة تمثيلية من المستودعات، وليس كل نسخة متفرعة مؤرشفة؛ صُمّم المستوى المجاني عمدًا ليكون صغيرًا بما يكفي لمعرفة ما إذا كانت الإجابات تستحق الاحتفاظ بها. والتحقق: خريطة مستودع كبير لا تستطيع اقتباس المسارات وأرقام الأسطر ليست سوى محرك تخمين أبطأ، لذا اجعل وكيلك يُظهر المواقع قبل إرسال الرقعة.&lt;/p&gt;
&lt;p&gt;ثم شغّل نفس الاختبار الذي كنت ستشغّله على مستودع صغير. فهرس مستودع تعرفه بالفعل. اطرح سؤالًا واحدًا يمكنك التحقق منه. إذا كانت الخريطة صحيحة، يتوقف وكيلك عن البدء من شجرة باردة.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// no laptop got hot building this map.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>AI Agents</category><category>MCP</category><category>Indexing</category><category>Monorepos</category></item><item><title>لماذا يهلوس وكلاء البرمجة بالذكاء الاصطناعي بمسارات الملفات</title><link>https://maguyva.ai/ar/blog/why-ai-coding-agents-hallucinate-file-paths</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/why-ai-coding-agents-hallucinate-file-paths</guid><description>يخترع وكلاء البرمجة بالذكاء الاصطناعي مسارات ملفات عندما لا يمتلكون خريطة حقيقية للمستودع. إليك سبب حدوث ذلك، وكيف تؤدي خريطة مدعومة بالأدلة إلى تغييرات أقل هلوسة.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;العلامة ليست جسم دالة خاطئ. إنها تغيير واثق على ملف غير موجود، أو على ملف موجود لكنه ليس الملف الذي ينفّذ ذلك السلوك.&lt;/p&gt;
&lt;p&gt;طلبت إصلاح انتهاء صلاحية الجلسة. يفتح الوكيل &lt;code&gt;src/auth/session.ts&lt;/code&gt;. المسار معقول. إنه خاطئ أيضًا. المعالج الفعلي يعيش في &lt;code&gt;apps/api/src/middleware/expiry.ts&lt;/code&gt;، الذي أُعيدت تسميته منذ عمليتي إعادة هيكلة. الوكيل لا يكذب عليك. إنه يكمل سلسلة نصية بشكل مسار بناءً على تحيز التدريب بالإضافة إلى أي شيء موجود بالفعل في نافذة السياق.&lt;/p&gt;
&lt;p&gt;هذا نمط فشل شائع على المستودعات الحقيقية. يستطيع النموذج كتابة الكود. خطؤه هو اختيار المكان الخاطئ لكتابته.&lt;/p&gt;
&lt;h2 id=&quot;لماذا-يخترع-الوكلاء-المسارات&quot;&gt;لماذا يخترع الوكلاء المسارات&lt;/h2&gt;
&lt;p&gt;وكلاء البرمجة هم نماذج تنبؤ بالرمز التالي مزودة بأدوات. عندما تقول ‘أصلح انتهاء صلاحية الجلسة’، يجب أن يسمّي ملفًا قبل أن يتمكن من قراءة أو تصحيح أي شيء. إذا لم يكن لديه بعد خريطة مدعومة بالأدلة، فإنه يبني المسار من:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;أعراف التسمية التي رآها في مستودعات أخرى. &lt;code&gt;src/auth/session.ts&lt;/code&gt; شكل شائع.&lt;/li&gt;
&lt;li&gt;الملفات الموجودة بالفعل في المحادثة، والتي قد تكون الملف الذي ألصقته الأسبوع الماضي، وليس الذي يهم الآن.&lt;/li&gt;
&lt;li&gt;قائمة دليل شغّلها بالصدفة، غير مكتملة على شجرة كبيرة.&lt;/li&gt;
&lt;li&gt;ملفات التعليمات. &lt;code&gt;CLAUDE.md&lt;/code&gt; و&lt;code&gt;AGENTS.md&lt;/code&gt; تخبر الوكيل كيف يتصرف. إنها ليست فهرسًا حيًا للرموز أو المستدعين أو المسارات الحالية.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ما من مصدر من هذه هو خريطة هذا المستودع، اليوم. يملأ النموذج الفجوة بنفس الطريقة التي يملأ بها أي فجوة: باستمرارية عالية الاحتمال. غالبًا ما تبدو تلك الاستمرارية كمسار حقيقي. أحيانًا يكون الملف موجودًا ويقع في الحي الصحيح. أحيانًا يكون موجودًا على فرع دُمج الشهر الماضي. أحيانًا لم يكن موجودًا أبدًا.&lt;/p&gt;
&lt;p&gt;لا ينقذك grep هنا إذا لم يبحث الوكيل عن السلسلة النصية الصحيحة من الأساس. يخمّن الوكيل مسارًا، ثم يقرأ ما يعيده ذلك المسار، ثم يحرّره. الخطوة الخاطئة الأولى هي المسار، وليست الرقعة.&lt;/p&gt;
&lt;p&gt;قراءة الملفات أيضًا ليست نفس الشيء مثل العثور على الملف الصحيح. يمكن لـ Claude Code وCursor وCodex وأدوات مماثلة فتح أي شيء تشير إليه. السؤال هو ما إذا كانت تجد بشكل موثوق الملف الصحيح، والرمز المهم، والتبعيات، والاختبارات، ونطاق التأثير قبل التحرير. الوصول إلى الملفات دون خريطة لا يزال يبدأ بالتخمين.&lt;/p&gt;
&lt;h2 id=&quot;تحرير-الملف-الخاطئ-مشكلة-استرجاع&quot;&gt;تحرير الملف الخاطئ مشكلة استرجاع&lt;/h2&gt;
&lt;p&gt;فكّر في المسار المُخترَع كخطأ استرجاع، وليس عيبًا في الشخصية.&lt;/p&gt;
&lt;p&gt;إذا كان على الوكيل إعادة &lt;code&gt;path/file.ext:line&lt;/code&gt; قبل السماح له بالتحرير، سيحدث شيئان. أولًا، يمكنك فتح الاقتباس ورفض العمل في عشر ثوانٍ. ثانيًا، يجب على الوكيل أن يستعلم شيئًا يعرف تلك الشجرة فعليًا.&lt;/p&gt;
&lt;p&gt;هذا هو عمل طبقة سياق قاعدة الكود. البحث الدلالي وحده غير كافٍ. اقتباس ‘يبدو كانتهاء صلاحية الجلسة’ لا يزال يمكن أن يستقر في حزمة مهجورة. تحتاج أيضًا إلى النص الدقيق عندما تعرف السلسلة النصية، والبحث عن الرموز عندما تعرف الاسم، والبحث البنيوي عندما تعرف الشكل، والرسم البياني للتبعيات عندما تحتاج إلى المستدعين ونطاق التأثير.&lt;/p&gt;
&lt;p&gt;Maguyva هي تلك الطبقة لوكلاء البرمجة المتوافقين مع MCP. إنها ليست محررًا. تبقى Claude Code وCursor وCodex CLI وVS Code وWindsurf وعملاء MCP الآخرون في مكانهم. يستعلم الوكيل الخريطة المُصنَّفة قبل لمس سطر واحد.&lt;/p&gt;
&lt;p&gt;المُدَّعى بسيط عمدًا: تغييرات أقل هلوسة. لا تنزع Maguyva قدرة التخمين من النموذج. إنها تحوّل الخطوة الأولى الافتراضية من ‘اخترع مسارًا معقولًا’ إلى ‘اطلب موقعًا مُصنَّفًا ومقتبسًا’.&lt;/p&gt;
&lt;h2 id=&quot;كيف-تبدو-الإجابة-المدعومة-بالأدلة&quot;&gt;كيف تبدو الإجابة المدعومة بالأدلة&lt;/h2&gt;
&lt;p&gt;الإجابة المفيدة على ‘أين تُعالَج مهلة انتهاء الجلسة’ ليست فقرة واحدة. إنها قائمة مواقع قصيرة:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;apps/api/src/middleware/expiry.ts:48&lt;/code&gt; - المعالج&lt;/li&gt;
&lt;li&gt;&lt;code&gt;apps/web/src/lib/auth-client.ts:112&lt;/code&gt; - المستدعي&lt;/li&gt;
&lt;li&gt;&lt;code&gt;apps/api/tests/expiry.test.ts:20&lt;/code&gt; - الاختبار الذي سيفشل إذا كان التغيير خاطئًا&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;يمكنك فتح هذه الأسطر. إذا كانت خاطئة، تتوقف. إذا كانت صحيحة، يمكن للوكيل التحرير. التحقق هو صلب الأمر، وليس شعارًا.&lt;/p&gt;
&lt;p&gt;تكشف Maguyva عن 11 أداة MCP موجهة للعملاء عبر البحث والرموز وتحليل التبعيات واسترجاع الملفات وسياق المستودع وسير عمل الأدوات المساعدة الحتمية. تجتمع أربعة أنماط استرجاع (دلالي، وبنيوي، ورسم بياني/تبعيات، ونصي) في نتيجة واحدة مُصنَّفة؛ البحث عن الرموز أداة MCP منفصلة (&lt;code&gt;find_symbol&lt;/code&gt;). تعود الإجابات المدعومة بالأدلة بمسارات ملفات وأرقام أسطر، حتى تتمكن من تقييمها مقابل الشجرة أمامك.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://maguyva.ai/ar/docs&quot;&gt;الوثائق&lt;/a&gt; تصف أقصر مسار: ابدأ مجانًا، فهرس مستودعًا تعرفه بالفعل، اربط العميل، ثم اطرح سؤالًا واحدًا يمكنك التحقق منه.&lt;/p&gt;
&lt;h2 id=&quot;الحلقة-التي-تغيّر-التغيير-الأول&quot;&gt;الحلقة التي تغيّر التغيير الأول&lt;/h2&gt;
&lt;p&gt;لست بحاجة إلى دين سير عمل جديد. تحتاج إلى خطوة إضافية واحدة قبل الكتابة الأولى.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;اطرح سؤالًا واحدًا يمكنك تقييمه بالفعل. ‘أي كود يعالج تسجيل الدخول وانتهاء صلاحية الجلسة؟’ أفضل من ‘أصلح المصادقة’.&lt;/li&gt;
&lt;li&gt;طالب بالاقتباسات. مسار الملف ورقم السطر، وليس ملخصًا لـ ‘وحدة المصادقة’.&lt;/li&gt;
&lt;li&gt;افتح الملف المقتبس. تتبّع الرمز. تحقق من التبعيات التي أنت على وشك لمسها.&lt;/li&gt;
&lt;li&gt;لا تدع الوكيل يصحّح إلا بعد ذلك.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;إذا لم تُعد الخطوة 2 أي شيء مفيد، فليس للوكيل الحق في الارتجال على المسار. يبحث مرة أخرى، أو تُريه أنت. تلك البوابة الواحدة هي ما ينتج تغييرات أقل هلوسة. النموذج هو نفس النموذج. الخريطة هي ما يتغير.&lt;/p&gt;
&lt;p&gt;لا تزال ملفات التعليمات مهمة. حافظ عليها. استخدمها للأعراف وقواعد المراجعة وما ينبغي عدم لمسه. لا تطلب منها أن تكون فهرسًا. &lt;code&gt;CLAUDE.md&lt;/code&gt; الذي يسرد ثلاثة أدلة مهمة سيصبح قديمًا بعد أسبوع من تقسيم حزمة. الخريطة القابلة للاستعلام تُحدَّث عند تحديث المستودع.&lt;/p&gt;
&lt;p&gt;فشل ذو صلة هو الملف شبه الصحيح: يفتح الوكيل &lt;code&gt;auth.ts&lt;/code&gt; بينما يعيش السلوك في &lt;code&gt;auth-client.ts&lt;/code&gt;، أو يصحّح ملفًا مُولَّدًا بدلًا من المصدر، أو يحرّر نسخة في &lt;code&gt;packages/legacy&lt;/code&gt; لأن الاسم يتطابق. لا تجعل الاقتباسات هذه الأخطاء مستحيلة. إنها تجعلها مرئية قبل استقرار التغيير.&lt;/p&gt;
&lt;h2 id=&quot;ما-لن-تُصلحه-الخريطة-لك&quot;&gt;ما لن تُصلحه الخريطة لك&lt;/h2&gt;
&lt;p&gt;كن صادقًا حول ما تحصل عليه. لن تجعل خريطة مدعومة بالأدلة كل تغيير صحيحًا — لا يزال بإمكان وكيلك كتابة رقعة سيئة على الملف الصحيح تمامًا. إذا كانت قاعدة الكود الخاصة بك تعتمد على التوجيه الديناميكي للاستدعاءات، أو الانعكاس، أو الترقيع أثناء التشغيل، فسيعيد بعض البحث عن الرموز نتائج أقل مما تريد، لأن هذا ما تفعله عدم المباشرة في وقت التشغيل بأي فهرس ثابت. وإذا كنت تتوقع نسبة مئوية — ‘انخفضت المسارات المُهلوَسة بنسبة X%’ — فلن تجدها هنا، لأنه لا يمكن لأحد قياس هذا الرقم بصدق لمستودعك سواك أنت.&lt;/p&gt;
&lt;p&gt;ما يمكنك توقعه أضيق وأكثر فائدة: يتوقف الوكيل عن بدء تغييره بمسار مُخمَّن. تلك الخطوة الأولى تصبح مدعومة بالأدلة في خريطة حقيقية، ومن هناك تأتي التغييرات الأقل هلوسة. كل شيء بعد الاقتباس — قراءة التغيير، تقييم الرقعة — لا يزال عملك، كما كان دائمًا.&lt;/p&gt;
&lt;p&gt;هذا الاختبار لا يكاد يكلفك شيئًا: فهرس مستودعًا تعرفه بالفعل واطرح سؤالًا واحدًا يمكنك التحقق منه. ابدأ بالمسار الذي أحرقك سابقًا. إذا كان الاقتباس خاطئًا، سترى ذلك فورًا. إذا كان صحيحًا، فإن تغيير وكيلك التالي لديه مكان أفضل للاستقرار فيه.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// it doesn&apos;t know the file. it knows how to find it.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>AI Agents</category><category>Hallucination</category><category>Retrieval</category><category>MCP</category></item><item><title>لماذا رقّينا بحث الكود إلى voyage-4-large</title><link>https://maguyva.ai/ar/blog/upgrading-code-search-to-voyage-4-large</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/upgrading-code-search-to-voyage-4-large</guid><description>انتقلنا بتضميناتنا للكود إلى voyage-4-large — الذي يتصدر حاليًا لوحة صدارة RTEB العامة لاسترجاع الكود. النسخة الصادقة: المقايضة التي نقبلها، وما نُفهرِسه فعليًا، ولماذا ندفع مقابل تضمينات متميزة.</description><pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;تعكس أرقام المعايير القياسية في هذا المنشور لوحات صدارة RTEB وقت النشر (يونيو 2026). تتحرك لوحات الصدارة؛ تعامل مع الترتيب كلقطة آنية، لا حقيقة دائمة.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;جودة البحث الدلالي لا تتجاوز جودة التضمينات التي تحته.&lt;/p&gt;
&lt;p&gt;عندما يسأل وكيل Maguyva “أين نتعامل مع إعادة المحاولة”، فهو لا يبحث حرفيًا (grep) عن كلمة “retry”. إنه يطلب &lt;em&gt;المعنى&lt;/em&gt; — حلقة التراجع (backoff)، وقاطع الدارة (circuit breaker)، والشيء الذي يُغلِّف استدعاءً غير مستقر. يجيب عن هذا السؤال نموذج متجهي يحوِّل الكود إلى نقطة في الفضاء ويجد الجيران. اختر نموذجًا أفضل، ويصبح كل استعلام دلالي في المنتج أكثر دقة بصمت.&lt;/p&gt;
&lt;p&gt;لذا غيَّرنا نموذجنا. اعتبارًا من يونيو 2026، تعمل تضمينات كود Maguyva على &lt;strong&gt;&lt;code&gt;voyage-4-large&lt;/code&gt;&lt;/strong&gt;، لتحل محل &lt;code&gt;voyage-code-3&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;المعيار-القياسي&quot;&gt;المعيار القياسي&lt;/h2&gt;
&lt;p&gt;لم نتخذ هذا القرار بالحدس. يُرتِّب &lt;a href=&quot;https://embedding-benchmark-rteb.hf.space/code&quot;&gt;معيار تضمين الاسترجاع العام (RTEB)&lt;/a&gt; نماذج التضمين وفق مهام استرجاع حقيقية، وفي لوحة صدارة &lt;strong&gt;الكود&lt;/strong&gt; الخاصة به يحتل &lt;code&gt;voyage-4-large&lt;/code&gt; &lt;strong&gt;المرتبة الأولى إجمالًا (90.86)&lt;/strong&gt; — متقدمًا على &lt;code&gt;gemini-embedding-2-preview&lt;/code&gt; (90.26)، والأهم، متقدمًا على النموذج الذي كنا نستخدمه بالفعل، &lt;code&gt;voyage-code-3&lt;/code&gt; (89.73، المرتبة الثالثة).&lt;/p&gt;
&lt;p&gt;تلك فجوة مطلقة صغيرة. لكنها فجوة في الاتجاه الصحيح، على معيار قياسي عام، في المهمة الدقيقة التي تهمنا: استرجاع الكود بالمعنى.&lt;/p&gt;
&lt;h2 id=&quot;المقايضة-التي-نقبلها-التكميم-الثنائي-binary-quantization&quot;&gt;المقايضة التي نقبلها: التكميم الثنائي (Binary Quantization)&lt;/h2&gt;
&lt;p&gt;إليك الجزء الذي تُغفِله معظم منشورات “رقَّينا نموذجنا”.&lt;/p&gt;
&lt;p&gt;لا يخزِّن Maguyva متجهات كاملة الدقة. نخزِّن تضمينات &lt;strong&gt;مُكمَّمة ثنائيًا&lt;/strong&gt;: يُختزَل كل متجه بـ2048 بُعدًا إلى توقيع بـ2048 بت — &lt;strong&gt;256 بايت لكل متجه&lt;/strong&gt;. يُجرى البحث في تلك التواقيع بمسافة هامينغ (Hamming)، وتُفهرَس وتُقسَّم لكل مستأجر.&lt;/p&gt;
&lt;p&gt;تلك مقايضة مقصودة. يتخلى التكميم الثنائي عن بعض دقة الاسترجاع مقابل تخزين أصغر بشكل كبير وحساب مسافة سريع ورخيص دون قاعدة بيانات متجهات منفصلة تُدار. لمنتج يُفهرِس مستودعات كاملة لكل مساحة عمل، تهم تلك الاقتصاديات أكثر من انتزاع الكسر الأخير من نقطة معيار قياسي.&lt;/p&gt;
&lt;p&gt;يتناسب &lt;code&gt;voyage-4-large&lt;/code&gt; مع هذا التصميم دون فرض ترحيل لطبقة التخزين: إنه يُنتج مخرَجًا بـ2048 بُعدًا، مثل &lt;code&gt;voyage-code-3&lt;/code&gt; تمامًا، لذا لم تتغير أعمدة &lt;code&gt;bit(2048)&lt;/code&gt; لدينا ومسار بحث هامينغ. تحسَّن النموذج؛ وبقي المخطط (schema) في مكانه.&lt;/p&gt;
&lt;h2 id=&quot;الكود-كان-مجرد-البداية&quot;&gt;الكود كان مجرد البداية&lt;/h2&gt;
&lt;p&gt;Maguyva أداة ذكاء كود. لكننا أيضًا أول مستخدميه، ونوجِّهه نحو شيء آخر: ملفات markdown التي تعيش في مستودعاتنا جنبًا إلى جنب مع الكود. سجلات القرارات المعمارية، وأدلة التشغيل، والعقود، ووثائق المالية والسياسات — كلها تحت التحكم في الإصدار في Git، وكلها خلف خادم MCP نفسه، فهرس دلالي فوق &lt;em&gt;الوثائق&lt;/em&gt;، لا المصدر فقط.&lt;/p&gt;
&lt;p&gt;هذا بالضبط سبب أهمية اتساع voyage-4-large. في العائلة نفسها من لوحات صدارة RTEB، إنه &lt;strong&gt;الأول في المالية، والأول في الرعاية الصحية، والأول في استرجاع النصوص إجمالًا&lt;/strong&gt; — متقدمًا على Gemini Embedding من Google، وEmbed v4 من Cohere، وtext-embedding-3-large من OpenAI. (Voyage شريك مؤسِّس لـRTEB، لذا نقرأ هذا كإشارة عامة قوية أكثر من كونه حكمًا محايدًا تمامًا — لكنه يُقاس رأسًا لرأس مقابل كل نموذج تجاري رئيسي، على مجموعات اختبار خاصة محجوبة.) الفهرس نفسه الذي يجد الدالة الصحيحة لوكيل يجد البند الصحيح في عقد أو السطر الصحيح في سياسة — وفي تلك المجالات، voyage-4-large ليس حلًا وسطًا، إنه الرائد.&lt;/p&gt;
&lt;h2 id=&quot;لماذا-ندفع-مقابل-تضمينات-متميزة&quot;&gt;لماذا ندفع مقابل تضمينات متميزة&lt;/h2&gt;
&lt;p&gt;توجد طريقة أرخص للبحث، والكثير منها مجاني. البحث المعجمي — BM25 وأقرانه — يطابق الكلمات المفتاحية، ويعمل محليًا، ولا يكلِّف شيئًا. تمنح نماذج التضمين مفتوحة المصدر مثل BGE وNomic وembeddinggemma استرجاعًا دلاليًا &lt;em&gt;لائقًا&lt;/em&gt; فعلًا، ويمكنك استضافتها ذاتيًا بثمن وحدة معالجة رسومية (GPU). يستخدم Maguyva الجانب المجاني أيضًا: يدمج كل استعلام البحث النصي، وAST، والرسم البياني، والدلالي. ما لا نُقصِّر فيه هو الطبقة الدلالية.&lt;/p&gt;
&lt;p&gt;ندفع لكل رمز مقابل تضمينات متميزة — &lt;code&gt;voyage-4-large&lt;/code&gt; — بدلًا من استضافة نموذج مجاني ذاتيًا، لسببين. أولًا، لا يستطيع البحث بالكلمات المفتاحية وحده الإجابة عن “أين نتعامل مع إعادة المحاولة” عندما يقول الكود &lt;code&gt;backoff&lt;/code&gt; و&lt;code&gt;circuit breaker&lt;/code&gt; ولا يذكر كلمة “retry” أبدًا — المعنى هو بيت القصيد من التضمين، وفي المجالات التي نخدمها تتخلَّف النماذج المفتوحة عن المتميزة: بفارق نحو نقطتين في النصوص العامة، وأبعد من ذلك في مجالات متخصصة مثل الكود والعقود والمالية. ثانيًا، في تجربتنا تُشكِّل جودة الاسترجاع الإجابة النهائية أكثر مما يفعله النموذج في الطرف الآخر — وكيل قوي يُعطى سياقًا خاطئًا لا يزال يجيب خطأً، ولا يرى أبدًا الوثيقة التي لم تُمنَح له قط.&lt;/p&gt;
&lt;p&gt;إذًا التضمينات المتميزة فاتورة لكل رمز تتوسَّع مع كل مستودع ووثيقة نُفهرِسها — وندفعها عن قصد. مقابل النتيجة التي يحصل عليها مستخدمونا، الدالة الصحيحة أو البند الصحيح، نعتقد أن تلك المقايضة تستحق العناء.&lt;/p&gt;
&lt;h2 id=&quot;الجزء-الصادق&quot;&gt;الجزء الصادق&lt;/h2&gt;
&lt;p&gt;لا يزال توثيق Voyage نفسه يصف &lt;code&gt;voyage-code-3&lt;/code&gt; بأنه النموذج المُحسَّن للكود. فلماذا الانتقال إذًا؟&lt;/p&gt;
&lt;p&gt;لأننا قرأنا المعيار القياسي العام، لا جدول نماذج البائع فقط، ووضع المعيار &lt;code&gt;voyage-4-large&lt;/code&gt; في القمة لاسترجاع الكود. كان هذا قرارًا استشرافيًا: أخذ النموذج الأحدث والأقوى عمومًا والتحقق منه مقابل لوحة صدارة عامة على المهام التي تهم. نحن مرتاحون لاتخاذ ذلك الرهان لأن الأدلة واسعة — voyage-4-large لا يفوز على الكود فقط، بل يتصدر في المالية، والرعاية الصحية، والاسترجاع الإجمالي أيضًا.&lt;/p&gt;
&lt;h2 id=&quot;الأرضية-الصامتة&quot;&gt;الأرضية الصامتة&lt;/h2&gt;
&lt;p&gt;كل أداة نعرضها — البحث الدلالي، وجمع سياق المهام، والأسئلة والأجوبة المرتكزة على الأدلة — تنتهي عند الاسترجاع. عندما يتحسَّن المسترجِع، يحصل الوكيل في الطرف الآخر على أدلة أفضل، ويسلك مسارات خاطئة أقل، ويُرسِّخ إجاباته في الكود الصحيح — أو البند الصحيح، أو السياسة الصحيحة. نموذج تضمين أكثر دقة ليس ميزة برَّاقة. إنه الأرضية تحت كل شيء آخر، وقد رفعناها للتو. لن تلاحظ. تلك هي الفكرة.&lt;/p&gt;
</content:encoded><category>Embeddings</category><category>Search</category><category>Architecture</category></item><item><title>التحسين الذاتي المتكرر للغات: صقل ذكاء الكود عبر نحو 280 لغة</title><link>https://maguyva.ai/ar/blog/autonomous-quality-loops-language-grind</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/autonomous-quality-loops-language-grind</guid><description>ندعم ذكاء الكود لنحو 280 لغة. لا يستطيع أي إنسان تدقيق ذلك يدويًا. لذا بنينا حلقة تحسين ذاتي متكرر للغات — فحص عيّني، وحكَم LLM، وإصلاح شيء واحد، وإعادة تحقق — ونُشغِّلها بأسطول من الوكلاء المعزولين حتى يصبح الاستخلاص صحيحًا فعلًا، لا مجرد «أخضر».</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;تعكس الأرقام في هذا المنشور حالة النظام وقت النشر (مايو 2026). راجع &lt;a href=&quot;https://maguyva.ai/ar/team&quot;&gt;صفحة فريقنا&lt;/a&gt; للأرقام الحالية.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;يستخلص Maguyva الرموز، والمراجع، ورسمًا بيانيًا للتبعيات من كود المصدر في نحو 280 لغة. كل لغة هي معالِج tree-sitter مخصَّص — استعلامات، وأساليب استدلال، وحالات حدّية — ويمكن أن يكون كل معالِج خاطئًا بطريقة دقيقة خاصة به. استدعاء دالة يُصدَر كقراءة. دالة تُنسَب إلى النطاق المحيط الخطأ. علاقة غير موجودة أصلًا.&lt;/p&gt;
&lt;p&gt;لا يمكنك تدقيق ذلك يدويًا. لا يستطيع أي فريق قراءة مخرَجات الاستخلاص عبر 280 مجموعة من القواعد النحوية واكتشاف الحواف السيئة. لذا فإن السؤال المثير للاهتمام ليس “هل استخلاصنا صحيح” — إنه “كيف &lt;em&gt;تكتشف&lt;/em&gt; أنه خاطئ، بهذا الاتساع، دون إنسان في كل حلقة”. إجابتنا هي التحسين الذاتي المتكرر للغات: حلقة جودة يقودها وكلاء اللغات، وLLM يعمل حكَمًا، وقاعدة واحدة نستمر في إعادة تعلّمها: الأخضر (green) ليس مرادفًا للصحيح.&lt;/p&gt;
&lt;h2 id=&quot;الأخضر-ليس-صحيحًا&quot;&gt;الأخضر ليس صحيحًا&lt;/h2&gt;
&lt;p&gt;لكل لغة مجموعة تجهيزات اختبار (fixtures)، وتُقيِّمها بوابة إصدار عبر خمسة أبعاد — الدقة، والسلامة البنيوية، والاكتمال، والجودة، والأداء. لا تصبح اللغة &lt;strong&gt;خضراء (GREEN)&lt;/strong&gt; إلا عندما تكون الدقة (precision) ≥ 0.95، والاستدعاء (recall) ≥ 0.99، وF1 ≥ 0.97 على تجهيزاتها، مع 20 حافة (edge) متوقَّعة على الأقل للثقة الإحصائية. دون ذلك تكون صفراء (YELLOW) أو حمراء (RED)، ولا تُطلَق.&lt;/p&gt;
&lt;p&gt;تلك البوابة ضرورية لكنها غير كافية. يستند التحقق إلى تجهيزات &lt;em&gt;كتبناها نحن&lt;/em&gt;. إنها تُرمِّز الحالات التي فكرنا فيها بالفعل. يمكن لمعالِج أن يكون مثاليًا على تجهيزاته ومع ذلك يُشوِّه نمطًا لا يظهر إلا في كود حقيقي — اصطلاح ماكرو، أو دالة مقيَّدة بنوع عام، أو ميزة لغة لم يكتب أحد لها تجهيزة. الأخضر يعني أن التجهيزات نجحت. لا يعني أن مستودعًا حقيقيًا يُستخلَص بنظافة. لذا يجب أن تترك الحلقة التجهيزات وراءها وتفحص الكود المستخدم فعليًا.&lt;/p&gt;
&lt;h2 id=&quot;الحلقة-الداخلية-فحص-عيّني-حكم-إصلاح-إثبات&quot;&gt;الحلقة الداخلية: فحص عيّني، حكم، إصلاح، إثبات&lt;/h2&gt;
&lt;p&gt;تُشغَّل الحلقة الأساسية للغة واحدة في كل مرة:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ┌──────────────────────────────────────────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  1. corpus run ── clone real-world repos, extract relationships   │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  2. spot-check 100 edges (seed 42, then seed 123 to cross-check)  │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  3. LLM judge classifies every sampled edge:                      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        CORRECT · FALSE_POSITIVE · TYPE_ERROR ·                    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        SCOPE_ERROR · METADATA_ERROR                               │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  4. fix ONE thing — handler .py, .scm query, or config           │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  5. re-validate — F1 + re-classify + manifest diff (no regressions)│&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   better? ──no──► revert, try a different fix ────────────────────┤&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │ yes                                                       │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                           │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  6. promote the fix into fixtures (a permanent regression guard) ──┘&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;بضعة أشياء تجعل هذا ينجح بدلًا من أن يتخبط.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;الحكَم هو الوكيل، لا استدعاء واجهة برمجية (API).&lt;/strong&gt; عندما نقول “LLM كحكَم”، نعني أن وكيل اللغة نفسه يقرأ كل حافة (edge) مأخوذة كعيّنة مقابل المصدر الحقيقي ويصنِّفها وفق معيار ثابت من خمس فئات: هل هذه الحافة صحيحة، أم إيجابية كاذبة، أم العلاقة الصحيحة بنوع خاطئ، أم مرتبطة بنطاق خاطئ، أم تحمل بيانات وصفية خاطئة؟ ذلك المعيار هو اللعبة كلها — “معدل خطأ 23%” لا معنى له حتى تعرف ما إذا كانت تلك عيوبًا حقيقية أم سوء عدّ من الحكَم.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;أصلِح شيئًا واحدًا، ثم أثبِته.&lt;/strong&gt; كل تكرار يغيِّر أصلًا واحدًا قابلًا للتحرير بالضبط، ثم يُعاد تشغيله مقابل منظومة اختبار ثابتة، ويُحتفَظ بالتغيير فقط إذا تحسَّن F1 وبدت نتائج إعادة التصنيف أفضل. إن لم يفعل، يتم التراجع عنه. لا دفعة من التعديلات التخمينية، ولا “من المفترض أن يكون أفضل”. يكسب التغيير مكانه أو يزول. وعندما يثبت إصلاح، يُرقَّى إلى مجموعة التجهيزات — كي لا تستطيع العلة التي أصلحها العودة بصمت أبدًا. خطوة الترقية تلك هي ما يجعل الحلقة &lt;em&gt;تُحسّن نفسها اعتمادًا على نتائجها السابقة&lt;/em&gt;، لا مجرد تكرار للعمل ذاته: كل تمريرة تُصلِّب المرجع الذي تتحقق مقابله التمريرة التالية.&lt;/p&gt;
&lt;h2 id=&quot;الدرس-الذي-نستمر-في-إعادة-تعلّمه-المقاييس-تُبالغ-في-الإبلاغ&quot;&gt;الدرس الذي نستمر في إعادة تعلّمه: المقاييس تُبالغ في الإبلاغ&lt;/h2&gt;
&lt;p&gt;إليك الفخ، وقد وقعنا فيه مباشرة. المقاييس الثانوية لمجموعة الكود — عدد المرات التي لا يكون فيها لهدف مستخلَص رمز قابل للحل، وعدد الرموز التي تبدو “يتيمة”، وما شابه — تُبالغ بشدة في الإبلاغ عن المشكلات. إنها في الغالب &lt;em&gt;نتائج طبيعية لأنماط البرمجة&lt;/em&gt;، لا أخطاء.&lt;/p&gt;
&lt;p&gt;أوضح مثال: أظهرت &lt;code&gt;llvm&lt;/code&gt; ذات مرة معدل “مصدر بلا رمز” بنسبة 73% ووُصِمت بالكارثية. تعمّقنا في الأمر. كانت الدقة الحقيقية &lt;strong&gt;98.5%&lt;/strong&gt;. كانت “الرموز المفقودة” في معظمها مراجع خارجية مشروعة — استدعاءات إلى المكتبة القياسية، وإلى الأطر، وإلى كود يعيش خارج المستودع. كان المقياس يقيس خاصية للغة، لا عيبًا في المعالِج. لغات مثل Zig وCOBOL وOdin تُظهر معدلات “يُتم” بنسبة 65–70% وهي صحيحة تمامًا؛ لم يكن لدى COBOL أي أخطاء حقيقية.&lt;/p&gt;
&lt;p&gt;لو تركنا تلك الأرقام تقود العمل، لكنا أمضينا أسابيع في “إصلاح” معالِجات كانت صحيحة بالفعل، وتجاهلنا اللغات ذات الأخطاء الحقيقية الهادئة. الخلاصة صريحة: المقاييس الإجمالية إشارة فرز أولي تقريبية في أفضل الأحوال. &lt;strong&gt;الإشارة الحقيقية للجودة هي الفحص العيّني مع تصنيف الحواف&lt;/strong&gt; — النظر في حواف فعلية في مستودعات فعلية والحكم عليها واحدة تلو الأخرى. البيانات فوق الحدس، لكن فقط بمجرد أن تعرف أي البيانات يقول الحقيقة.&lt;/p&gt;
&lt;h2 id=&quot;الحلقة-الخارجية-أسطول-لا-ماراثون&quot;&gt;الحلقة الخارجية: أسطول، لا ماراثون&lt;/h2&gt;
&lt;p&gt;لغة واحدة في كل مرة ستستغرق وقتًا لا نهائيًا عبر 280 لغة، لذا تُغلَّف الحلقة الداخلية بحلقة خارجية تُشغِّل عددًا كبيرًا بالتوازي.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   pick a wave of near-GREEN / high-error languages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   fan out 10–15 agents, each ISOLATED in its own git worktree,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   each grinding ONE language, committing to its own branch&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   orchestrator integrates serially: file-scoped apply, then&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   `manifest diff` — any cross-language regression blocks the batch&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   gated push (reviewed and confirmed) ──► rotate to the next wave&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يعمل كل وكيل في شجرة عمل (worktree) قابلة للتخلص منها كي لا يتداخلوا مع بعضهم. يُدمِج المنسِّق إصلاحاتهم واحدًا تلو الآخر، مع إخضاع كل إصلاح لفحص انحدار يشمل المانفست كاملًا: تغيير يساعد لغته الخاصة لكنه يكسر بصمت ثلاث لغات أخرى لا يُدمَج. يخضع التكامل لبوابات تحقق وتأكيد قبل دفع أي شيء — تقرر بوابة الانحدار ما هو &lt;em&gt;آمن&lt;/em&gt;، ويقرر إنسان دائمًا ما &lt;em&gt;يُطلَق&lt;/em&gt;. ثم يدور المجمع (pool) إلى المجموعة التالية من اللغات ويتكرر كل شيء مجددًا.&lt;/p&gt;
&lt;h2 id=&quot;ما-لا-يزال-غير-كامل&quot;&gt;ما لا يزال غير كامل&lt;/h2&gt;
&lt;p&gt;يمكن أن يكون الحكَم مخطئًا، وللخطأ اتجاه: وكيل يعمل بسياق قليل جدًا &lt;em&gt;يُبالغ في الإبلاغ&lt;/em&gt;. في دفعة واحدة، صُنِّفت ثماني لغات بخطأ 5–20%؛ وعند الفحص، كانت واحدة فقط علة حقيقية خاصة باللغة — البقية كانت أخطاء حكَم ناتجة عن إغفال دلالات اللغة نفسها (سطر مصدر واحد يُصدر شرعيًا عدة حواف، وربط معاملات نُمذِج كإسنادات، ولغات مرجع-لكل-معرِّف). لهذا نأخذ عينات ببذرتين (seeds) ونقارن نتائج الفحص، ولهذا يُعامَل الاختلاف بين الحكَم والتجهيزات كأكثر إشارة &lt;em&gt;مثيرة للاهتمام&lt;/em&gt;، لا حكمًا نهائيًا — أحيانًا تكون التجهيزة نفسها هي المخطئة.&lt;/p&gt;
&lt;p&gt;نحن صادقون أيضًا بشأن الهدف. الهدف هو صفر أخطاء حقيقية، تمامًا — لكن “الصفر” اتجاه نصقل نحوه، لغةً تلو أخرى، لا مربعًا يُعلَّم عليه. يوجد دائمًا مستودع آخر باصطلاح آخر.&lt;/p&gt;
&lt;h2 id=&quot;مُكتسَب-لا-مُدَّعى&quot;&gt;مُكتسَب، لا مُدَّعى&lt;/h2&gt;
&lt;p&gt;كل ما يفعله Maguyva من أجل وكيل — إيجاد رمز، وتتبّع تبعية، والإجابة عن سؤال بكود مُستشهَد به — يرتكز على صحة الاستخلاص الذي تحته. عبر 280 لغة، لا يمكن أن يُدَّعى “الصحيح”؛ يجب أن يُكتسَب باستمرار مقابل كود حقيقي. الحلقة هي كيف نكتسبه: دورة مستقلة من الفحص العيّني والإصلاح تعامل مقاييسها الخاصة بريبة، وتُثبِت كل تغيير، وتحوِّل كل إصلاح إلى حارس ضد الانحدار التالي. إنه ليس عملًا برّاقًا. إنه العمل الذي يتيح لنا أن نقول “ندعم لغتك” ونعنيه فعلًا. الأخضر سهل. الصحيح مُكتسَب.&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Languages</category><category>Agents</category></item><item><title>البحث المدمَج متعدد الأنماط: اختيار المسترجِع الصحيح لكل استعلام</title><link>https://maguyva.ai/ar/blog/multi-modal-fusion-search</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/multi-modal-fusion-search</guid><description>استعلام مثل &quot;أين يُعرَّف parseConfig&quot; يحتاج إلى بحث مختلف عن &quot;كيف تعمل المصادقة&quot;. يصنِّف Maguyva النية، ويُرجِّح أربعة أنماط استرجاع تبعًا لذلك، ثم يدمج النتائج عبر Reciprocal Rank Fusion الموزون.</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;ملاحظة عن التصميم التاريخي: تصف هذه المقالة من أبريل 2026 تصميم التوجيه آنذاك، لا السلوك الافتراضي الحالي. يعالج تصحيح سبتمبر أدناه ادعاءً متعلقًا بالقياس فقط. للاطلاع على التوجيه الحالي والإعدادات المسبقة والتحكم الصريح في أنماط البحث، راجع &lt;a href=&quot;https://maguyva.ai/ar/docs/how-it-works&quot;&gt;آلية العمل&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;استعلام البحث ليس شيئًا واحدًا.&lt;/p&gt;
&lt;p&gt;“أين يُعرَّف &lt;code&gt;parseConfig&lt;/code&gt;” يريد رمزًا دقيقًا — موقعًا واحدًا محدَّدًا، بسرعة. “كيف تعمل المصادقة” يريد المعنى — مجموعة أجزاء الكود ذات الصلة التي تشرح مفهومًا. “ما الذي ينكسر إذا غيّرت هذه الدالة” يريد الرسم البياني للتبعيات. “ابحث عن السلسلة &lt;code&gt;ECONNREFUSED&lt;/code&gt;” يريد مطابقة حرفية، لا شيء ذكيًا.&lt;/p&gt;
&lt;p&gt;grep ممتاز للمطابقات الحرفية ومفيد لبعض عمليات البحث عن المراجع، لكنه ليس رسمًا بيانيًا للتبعيات ولا يفهم المعنى. تُغطِّي التضمينات الجانب الدلالي، لكنها الأداة الخطأ للسلاسل الدقيقة وتحليل التأثير. تختار معظم أدوات بحث الكود محركًا واحدًا وتُلزم كل استعلام بذلك الاختيار. Maguyva لا يختار. إنه يستنتج نوع السؤال الذي طرحته، ثم يمزج أربعة مسترجِعات بالنسبة التي يستحقها ذلك السؤال.&lt;/p&gt;
&lt;h2 id=&quot;أربعة-أنماط&quot;&gt;أربعة أنماط&lt;/h2&gt;
&lt;p&gt;تحت الغطاء، توجد أربع طرق مستقلة لإيجاد الكود:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;الدلالي (semantic)&lt;/strong&gt; — بحث متجهي عبر تضمينات Voyage الثنائية (binary)؛ يجد الكود بالمعنى.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;النصي (text)&lt;/strong&gt; — مطابقة المقاطع الثلاثية (trigram)؛ يجد السلاسل الحرفية، وسلاسل الأخطاء، والمعرِّفات الدقيقة.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;البنيوي (structural)&lt;/strong&gt; — استعلامات AST؛ يجد التعريفات، والتوقيعات، وبُنى اللغة.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;الرسم البياني (graph)&lt;/strong&gt; — رسم بياني للتبعيات؛ يجد الدوال المُستدعِية، والدوال المُستدعاة، ونطاق التأثير.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;كل واحد قوي في فئة مختلفة من الأسئلة. الحيلة هي تحديد مقدار الثقة التي تُمنَح لكل واحد بالنسبة إلى الاستعلام الذي أمامك.&lt;/p&gt;
&lt;h2 id=&quot;تصنيف-النية&quot;&gt;تصنيف النية&lt;/h2&gt;
&lt;p&gt;قبل تشغيل أي استرجاع، يُصنِّف مُصنِّف خفيف الوزن الاستعلام إلى واحدة من ست نوايا، بدرجة ثقة. إنه قليل التكلفة عمدًا — أساليب استدلال مرتَّبة، وتفوز أول مطابقة — لأنه يعمل على المسار الساخن ولا يضيف سوى ميلي ثانية أو اثنتين:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;يبدأ بـ&lt;code&gt;def &lt;/code&gt;، &lt;code&gt;class &lt;/code&gt;، &lt;code&gt;func &lt;/code&gt;، &lt;code&gt;import &lt;/code&gt;… → &lt;strong&gt;find_definition&lt;/strong&gt; (ثقة 0.95)&lt;/li&gt;
&lt;li&gt;“who calls” (من يستدعي)، “usages of” (استخدامات لـ)، “references to” (مراجع إلى) → &lt;strong&gt;find_references&lt;/strong&gt; (0.90)&lt;/li&gt;
&lt;li&gt;“impact” (التأثير)، “blast radius” (نطاق التأثير)، “what depends on” (ما الذي يعتمد على) → &lt;strong&gt;impact_analysis&lt;/strong&gt; (0.90)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&quot;string&quot;&lt;/code&gt; مقتبَس أو رمز خطأ مثل &lt;code&gt;traceback&lt;/code&gt; → &lt;strong&gt;exact_match&lt;/strong&gt; (0.85–0.90)&lt;/li&gt;
&lt;li&gt;معرِّف &lt;code&gt;CamelCase&lt;/code&gt; أو &lt;code&gt;snake_case&lt;/code&gt; → &lt;strong&gt;find_definition&lt;/strong&gt; (0.60–0.80)&lt;/li&gt;
&lt;li&gt;“how” (كيف)، “why” (لماذا)، “explain” (اشرح)، “architecture” (البنية المعمارية) → &lt;strong&gt;understand_code&lt;/strong&gt; (0.75)&lt;/li&gt;
&lt;li&gt;لا شيء يطابق → &lt;strong&gt;understand_code&lt;/strong&gt;، ثقة منخفضة (0.40)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;تحمل كل نية مجموعة أوزان عبر الأنماط الأربعة. هذه هي الأرقام الحقيقية:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;النية&lt;/th&gt;
&lt;th&gt;الدلالي&lt;/th&gt;
&lt;th&gt;النصي&lt;/th&gt;
&lt;th&gt;البنيوي (AST)&lt;/th&gt;
&lt;th&gt;الرسم البياني&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;find_definition&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;find_references&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.5&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;understand_code&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;find_similar&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.3&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;impact_analysis&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.7&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;exact_match&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.9&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;إذًا “أين يُعرَّف &lt;code&gt;parseConfig&lt;/code&gt;” يعتمد بشدة على AST (0.6). “كيف تعمل المصادقة” يعتمد على المتجهات الدلالية (0.5). “ما الذي يعتمد على هذا” هو تقريبًا كله رسم بياني (0.7). “ابحث عن &lt;code&gt;ECONNREFUSED&lt;/code&gt;” هو تقريبًا كله مطابقة المقاطع الثلاثية (0.9)، مع إيقاف نموذج التضمين تمامًا — لأن التشابه الدلالي هو بالضبط الأداة الخطأ لسلسلة حرفية دقيقة.&lt;/p&gt;
&lt;h2 id=&quot;المسار-السريع-والمسار-المدمَج&quot;&gt;المسار السريع، والمسار المدمَج&lt;/h2&gt;
&lt;p&gt;عندما يكون المصنِّف واثقًا — درجة ≥ 0.85 — ويكون الاستعلام عاديًا، يتخطى Maguyva الدمج تمامًا ويوجِّه مباشرة إلى النمط المهيمِن الواحد. “أين يُعرَّف X” لا يحتاج إلى أربعة مسترجِعات؛ إنه يحتاج إلى فهرس AST، الآن. يُبلَّغ عن هذا المسار المباشر باسم &lt;code&gt;fusion_strategy: &quot;direct&quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;يمر كل ما هو غامض عبر الدمج. تعمل الأنماط الأربعة (أو الثلاثة، في الإعداد الافتراضي) بالتوازي، ويُعيد كل واحد قائمته المُرتَّبة الخاصة، وندمجها معًا.&lt;/p&gt;
&lt;h2 id=&quot;دمج-الرتب-التبادلي-الموزون-weighted-reciprocal-rank-fusion&quot;&gt;دمج الرتب التبادلي الموزون (Weighted Reciprocal Rank Fusion)&lt;/h2&gt;
&lt;p&gt;دمج مسترجِعات متغايرة أصعب مما يبدو: تشابه جيب تمام بقيمة 0.82، ودرجة مطابقة مقاطع ثلاثية بقيمة 137، ومركزية رسم بياني بقيمة 0.004 ليست على المقياس نفسه، لذا لا يمكنك ببساطة جمعها. يتفادى دمج الرتب التبادلي (RRF) المشكلة بتجاهل الدرجات الخام والاحتفاظ فقط بـ&lt;strong&gt;الرتبة&lt;/strong&gt; التي منحها كل محرك. مساهمة نتيجة من نمط واحد هي:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;contribution = weight × 1 / (k + rank + 1)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;حيث &lt;code&gt;rank&lt;/code&gt; هي موضعها في قائمة ذلك النمط و&lt;code&gt;k&lt;/code&gt; ثابت تنعيم. تُجمَع المساهمات عبر الأنماط لأي نتيجة وجدها أكثر من محرك — يطفو الاتفاق بين المسترجِعات طبيعيًا إلى القمة. نستخدم &lt;strong&gt;k = 40&lt;/strong&gt; في الإعداد الافتراضي و60 في &lt;code&gt;thorough&lt;/code&gt; (&lt;code&gt;quick&lt;/code&gt; يعمل دلاليًا فقط، لذا لا يتدخل الدمج هناك أبدًا). استقر عمل RRF الأصلي على k = 60 للاسترجاع العام؛ نحن نفترض قيمة افتراضية تمنح الرتب الأولى أفضلية أكبر قليلًا، مما يمنح الاتفاق الأعلى رتبة بين الأنماط وزنًا أكبر قليلًا — ولا نوصي بضبطها يدويًا.&lt;/p&gt;
&lt;p&gt;فوق ذلك، تحمل النتائج &lt;strong&gt;تعزيزًا لأهمية الرسم البياني&lt;/strong&gt;. يجب أن تتفوق عقدة محورية — دالة تعتمد عليها قاعدة الكود بأكملها — على عقدة طرفية قليلة الاستخدام حتى عند التساوي في الأهمية النصية، لذا نضرب كل مساهمة في:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;boost = min(1 + 0.3 × ln(1 + centrality), 1.5)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;تأتي المركزية من مقاييس PageRank/الدرجة المحسوبة مسبقًا لخط الأنابيب، ويُقيَّد التعزيز عند 1.5× كي لا تستطيع دالة شائعة أن تدفن تمامًا دالة غامضة أكثر صلة. أخيرًا، نُخفِّض رتبة النتائج من مسارات مكتبات الأطراف الخارجية (vendor)، والبناء (build)، والأرشيف، ونزيل التكرار مع الاحتفاظ بأفضل جزء لكل ملف.&lt;/p&gt;
&lt;h2 id=&quot;ما-لا-يزال-غير-كامل&quot;&gt;ما لا يزال غير كامل&lt;/h2&gt;
&lt;p&gt;مصنّف النوايا مجموعة من التعبيرات النمطية، وليس نموذجًا مدرّبًا. يعالج أنماط الاستعلام الشائعة بقواعد استدلالية، ويعود الاستعلام الملتبس إلى &lt;code&gt;understand_code&lt;/code&gt; ومزيج يميل إلى البحث الدلالي. وصفت نسخة سابقة من هذه المقالة انخفاض معدل الاستعلامات بلا نتائج من نحو 15% إلى أقل من 5% بأنه تحقق بالفعل. لكن مقترح ديسمبر 2025 كان يسرد في الواقع خط أساس تقديريًا وهدفًا؛ ولم تُقدّم مجموعة استعلامات أو سجل قياس يدعمان ذلك. نسحب الادعاء بتحقيق هذا التحسن؛ راجع &lt;a href=&quot;https://maguyva.ai/evidence/search-quality.md&quot;&gt;أدلة المصدر والتصحيح&lt;/a&gt;. لم نستبدل المصنّف بنموذج مدرّب لأن النسخة قليلة التكلفة سريعة وكافية لدورها المقصود في التوجيه، ولأن مصنّفًا مخطئًا وواثقًا أسوأ من رجوع صريح إلى الخيار الافتراضي. الأوزان نفسها افتراضات أولية اختيرت يدويًا، وليست متعلَّمة من بيانات نقرات لا نجمعها.&lt;/p&gt;
&lt;h2 id=&quot;اطرح-سؤالك-ودع-النظام-يختار-الأداة&quot;&gt;اطرح سؤالك ودع النظام يختار الأداة&lt;/h2&gt;
&lt;p&gt;لا ينبغي أن يحتاج الوكيل إلى معرفة ما إذا كان يلجأ إلى grep أو التضمينات أو رسم الاستدعاء البياني — بل ينبغي أن يطرح سؤاله بعبارات بسيطة ويحصل على الإجابة الصحيحة. الدمج متعدد الأنماط هو ما يتيح لـ&lt;code&gt;find_symbol&lt;/code&gt;، والبحث الدلالي، وتحليل التبعيات أن تتاح عبر واجهة استعلام واحدة: يقرأ النظام شكل السؤال ويُجمِّع بصمت المسترجِع الصحيح له. النموذج الذي يُقيِّم التضمينات مهم، لكن معرفة &lt;em&gt;متى لا&lt;/em&gt; تُستخدَم مهمة أيضًا. اختيار الأداة الصحيحة لكل استعلام نوع خاص به من الجودة، وهو نوع نُفضِّل تولّيه بأنفسنا بدلًا من تحميله على المُستدعِي.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// you bring the question. it brings the tools.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>Search</category><category>Architecture</category></item><item><title>مراقبة الوكلاء (Observability): الخطافات (Hooks) وAlloy وGrafana</title><link>https://maguyva.ai/ar/blog/agent-observability-hooks-alloy-grafana</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/agent-observability-hooks-alloy-grafana</guid><description>ربطنا Claude Code وCodex بمكدس Grafana واحد باستخدام OpenTelemetry وAlloy، ثم استخدمنا التتبعات (traces) والسجلات لإيجاد مشكلات سلوك الوكلاء وإصلاحها من مصدرها.</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;تفشل أنظمة الوكلاء بطرق غريبة.&lt;/p&gt;
&lt;p&gt;أحيانًا تكون المشكلة في النموذج. أحيانًا تكون المشكلة في الأداة. أحيانًا يكون خادم MCP لديك سليمًا تمامًا، لكن الوكيل اختار المتخصص الخطأ، أو أمضى نصف الجلسة في عمل عبر مفسّر الأوامر (shell) لم تتوقعه، أو أنفق المال بصمت في حلقة بدت مثمرة من الخارج.&lt;/p&gt;
&lt;p&gt;إذا لم تستطع رؤية الفرق، فأنت لا تُشغِّل نظام وكلاء فعليًا. أنت تخمِّن.&lt;/p&gt;
&lt;p&gt;لذا بنينا مكدس مراقبة (observability) لسير عملنا الخاص: Claude Code وCodex وأحداث خطافات (hooks) Claude وأحداث إشعارات (notify) Codex وOpenTelemetry الأصلي وGrafana Alloy وGrafana Cloud في الطرف الآخر.&lt;/p&gt;
&lt;p&gt;الجزء المثير للاهتمام ليس “لقد صنعنا لوحة معلومات (dashboard)”. الجزء المثير للاهتمام هو أننا اضطررنا إلى تقسيم القياس عن بُعد إلى تدفقين مختلفين لأن أي مصدر منفرد لم يعطنا الصورة الكاملة.&lt;/p&gt;
&lt;h2 id=&quot;المشكلة-بيانات-القياس-عن-بُعد-للوكلاء-مجزَّأة&quot;&gt;المشكلة: بيانات القياس عن بُعد للوكلاء مجزَّأة&lt;/h2&gt;
&lt;p&gt;يُصدر وكلاء البرمجة الحديثون بالفعل بعض بيانات القياس عن بُعد. هذا يساعد، لكنه غير كافٍ.&lt;/p&gt;
&lt;p&gt;يُجيد OTEL الأصلي الإجابة عن أسئلة مثل:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;كم عدد الطلبات التي أرسلناها؟&lt;/li&gt;
&lt;li&gt;كم كلفت الجلسة؟&lt;/li&gt;
&lt;li&gt;أين توجد مقاطع التتبع (spans) والتتبعات (traces)؟&lt;/li&gt;
&lt;li&gt;هل ارتفع الكمون؟&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;لكنه أسوأ بكثير في الإجابة عن أسئلة مثل:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;أي خادم MCP اعتمد عليه الوكيل؟&lt;/li&gt;
&lt;li&gt;هل حدث هذا الفشل في &lt;code&gt;Bash&lt;/code&gt;، أم في أداة ملفات مدمجة، أم في استدعاء MCP؟&lt;/li&gt;
&lt;li&gt;أي مهارة (skill) فُعِّلت فعليًا؟&lt;/li&gt;
&lt;li&gt;أي نوع من الوكلاء الفرعيين أُرسِل؟&lt;/li&gt;
&lt;li&gt;هل كانت الجلسة تقوم بعمل مفيد، أم مجرد تخبط؟&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;هذا الصنف الثاني من الأسئلة أقرب إلى الخطافات (hooks) منه إلى التتبعات (traces).&lt;/p&gt;
&lt;p&gt;لكن العكس صحيح أيضًا: بعض أهم أسئلة الأداء أقرب إلى التتبعات منها إلى الخطافات.&lt;/p&gt;
&lt;p&gt;إذا أردت معرفة أين تراكم الكمون فعليًا، وأي مقاطع التتبع كانت بطيئة، أو ما إذا كانت الجلسة قد استهلكت الوقت في استدعاءات النموذج مقابل تنفيذ الأدوات، فأنت بحاجة إلى بيانات التتبع بقدر حاجتك إلى الأحداث الدلالية.&lt;/p&gt;
&lt;h2 id=&quot;البنية-التي-انتهينا-إليها&quot;&gt;البنية التي انتهينا إليها&lt;/h2&gt;
&lt;p&gt;نُشغِّل مسارَي قياس عن بُعد جنبًا إلى جنب.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Claude Code&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  native OTEL -&amp;gt; Alloy -&amp;gt; Grafana Cloud&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  hooks        -&amp;gt; send_event.py -&amp;gt; Grafana Cloud Loki&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Codex&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  native OTEL -&amp;gt; Alloy -&amp;gt; Grafana Cloud&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  notify hook -&amp;gt; codex_notify.py -&amp;gt; shared Loki schema&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا الانقسام مقصود.&lt;/p&gt;
&lt;p&gt;وهو أيضًا غير متماثل. يمنحنا Claude Code واجهة لخطافات دورة الحياة أغنى بكثير. يمنحنا Codex OTEL أصليًا بالإضافة إلى واجهة إشعارات (notify)، لذا نُطبِّع أحداث إتمام الأدوار الأقل تفصيلًا في مخطط السجل نفسه بدلًا من التظاهر بأن كلا وقتَي التشغيل يعرضان الضوابط ذاتها.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OTEL الأصلي&lt;/strong&gt; يمنحنا التدفق الأساسي: السجلات والتتبعات من وقت التشغيل نفسه، بالإضافة إلى المقاييس حيث يُصدرها وقت التشغيل فعليًا.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;أحداث الخطافات والإشعارات&lt;/strong&gt; تمنحنا الطبقة الدلالية: أشياء مثل &lt;code&gt;PreToolUse&lt;/code&gt; و&lt;code&gt;PostToolUse&lt;/code&gt; و&lt;code&gt;PostToolUseFailure&lt;/code&gt; و&lt;code&gt;UserPromptSubmit&lt;/code&gt; و&lt;code&gt;SubagentStop&lt;/code&gt; و&lt;code&gt;SkillActivated&lt;/code&gt;، والبيانات الوصفية المصنَّفة التي نهتم بها فعليًا عند تصحيح سلوك الوكيل. يسهم Claude Code هنا بتدفق الأحداث الأغنى. ويسهم Codex بتدفق مُطبَّع أقل تفصيلًا لكنه لا يزال مفيدًا.&lt;/p&gt;
&lt;h2 id=&quot;لماذا-توجد-الخطافات-hooks-أساسًا&quot;&gt;لماذا توجد الخطافات (Hooks) أساسًا&lt;/h2&gt;
&lt;p&gt;يُثري خط أنابيب الخطافات لدينا الأحداث قبل وصولها إلى Loki.&lt;/p&gt;
&lt;p&gt;بدلًا من الاكتفاء بالقول “عملت أداة ما”، نصنِّف الحدث في حقول مثل:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tool_type&lt;/code&gt;: مدمجة (builtin)، وMCP، ومهارة (skill)، ووكيل (agent)، وbash&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mcp_server&lt;/code&gt;: أي خلفية MCP تعاملت مع الاستدعاء&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bash_cli&lt;/code&gt;: عائلة أوامر مفسّر الأوامر&lt;/li&gt;
&lt;li&gt;&lt;code&gt;subagent_type&lt;/code&gt;: أي نوع من المتخصصين أُرسِل&lt;/li&gt;
&lt;li&gt;&lt;code&gt;agent_tool&lt;/code&gt;: ما إذا كان المصدر Claude Code أم Codex&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;هذا يعني أننا نستطيع طرح أسئلة مهمة تشغيليًا:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{service_name=&quot;claude-code-hooks&quot;} | agent_tool=&quot;codex-cli&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{service_name=&quot;claude-code-hooks&quot;} | tool_type=&quot;mcp&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{service_name=&quot;claude-code-hooks&quot;} | json | bash_cli=&quot;git&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;تلك ليست حقولًا زائدة عن الحاجة. إنها الفرق بين “شعرتُ بأن الوكيل بطيء” و“أمضى الوكيل الدقائق العشر الأخيرة في عمليات git تعتمد بكثافة على مفسّر الأوامر (shell) مع معدل فشل أدوات مرتفع”.&lt;/p&gt;
&lt;p&gt;ثمة تفصيل تنفيذي يبدو أغرب مما هو عليه: لا يزال تدفق Loki المشترك يستخدم &lt;code&gt;service_name=&quot;claude-code-hooks&quot;&lt;/code&gt; كتصنيف حتى عندما يأتي الحدث من Codex. الانقسام الحقيقي بين وقتَي التشغيل يحدث عند &lt;code&gt;agent_tool&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;لماذا-تقع-alloy-في-المنتصف&quot;&gt;لماذا تقع Alloy في المنتصف&lt;/h2&gt;
&lt;p&gt;Grafana Alloy ليست مجرد مُعيد توجيه في هذا الإعداد. إنها نقطة تطبيق السياسة.&lt;/p&gt;
&lt;p&gt;نوجِّه تدفق OTEL الأصلي من Claude Code وCodex إلى بروكسي محلي لـAlloy عند &lt;code&gt;localhost:4318&lt;/code&gt;، ثم نترك Alloy تنظِّف الحمولة (payload) قبل إعادة توجيهها إلى Grafana Cloud.&lt;/p&gt;
&lt;p&gt;هذا مهم لأن القياس عن بُعد الخام للوكلاء مليء بحقول كثيرة القيم المتميزة مفيدة للتحليل لكنها فظيعة كتصنيفات مفهرَسة:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;session_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prompt_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;عدد الرموز (tokens)&lt;/li&gt;
&lt;li&gt;المدد الزمنية&lt;/li&gt;
&lt;li&gt;كتل معاملات الأدوات&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;إذا فهرست كل شيء، تحصل على انفجار تصنيفات ويوم سيء.&lt;/p&gt;
&lt;p&gt;لذا تقوم Alloy بثلاثة أشياء من أجلنا:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;تُبقي مجموعة صغيرة جدًا من التصنيفات قليلة القيم المتميزة مفهرَسة.&lt;/li&gt;
&lt;li&gt;تنقل الحقول الصاخبة لكن المفيدة إلى بيانات وصفية منظَّمة.&lt;/li&gt;
&lt;li&gt;تُسقِط الضجيج الخالص كليًا.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;الفكرة المهمة بسيطة: &lt;strong&gt;راقِب أكثر، وفهرِس أقل&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;لماذا-يتجاوز-تدفق-الخطافات-alloy&quot;&gt;لماذا يتجاوز تدفق الخطافات Alloy&lt;/h2&gt;
&lt;p&gt;تدفق الخطافات مُهيَّأ لـLoki بالفعل.&lt;/p&gt;
&lt;p&gt;بحلول الوقت الذي يدفع فيه &lt;code&gt;send_event.py&lt;/code&gt; حدثًا، نكون قد قررنا بالفعل أي الحقول تستحق المعاملة كتصنيف وأيها ينتمي إلى جسم JSON المنظَّم. يذهب ذلك التدفق مباشرة إلى بوابة OTLP الخاصة بـGrafana Cloud بدلًا من المرور مجددًا عبر Alloy.&lt;/p&gt;
&lt;p&gt;لذا يمتلك النظام تقسيمًا واضحًا للعمل:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Alloy&lt;/strong&gt; تُروِّض تدفق OTEL الأصلي الخام.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;إثراء الخطافات&lt;/strong&gt; يجعل الأحداث الدلالية قابلة للاستعلام.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;هذا يُبقي البنية أبسط من محاولة إجبار كل شيء عبر مسار واحد.&lt;/p&gt;
&lt;h2 id=&quot;ما-تُظهره-لوحة-المعلومات-فعليًا&quot;&gt;ما تُظهره لوحة المعلومات فعليًا&lt;/h2&gt;
&lt;p&gt;لقطة الشاشة أدناه من إحدى لوحات معلومات المراقبة خلف سير عمل وكلائنا. إنها ليست معيارًا (benchmark)، والأرقام مجرد شريحة زمنية آنية. الهدف هو شكل البيانات: سجل النشاط، واستدعاءات الأدوات، والإخفاقات، والمطالبات، والتصنيفات حسب الوكيل، والأدوات المدمجة، واستخدام MCP، وأوامر مفسّر الأوامر، والمهارات.&lt;/p&gt;
&lt;p&gt;الجزء المفيد هو أن لوحة المعلومات هذه تعيش على مكدس Grafana نفسه مع بقية بيانات القياس عن بُعد للوكلاء. يمكننا التصفية حسب الوكيل المصدر وعائلة الأداة والنظر عبر أوقات التشغيل دون ابتكار قصة مراقبة مختلفة لكل نظام.&lt;/p&gt;
&lt;figure class=&quot;feature-figure feature-figure--wide&quot;&gt;
  &lt;a
    href=&quot;https://maguyva.ai/blog/agent-observability-dashboard.png&quot;
    target=&quot;_blank&quot;
    rel=&quot;noreferrer&quot;
    aria-label=&quot;فتح لقطة شاشة لوحة المراقبة بالدقة الكاملة&quot;
  &gt;
    &lt;img
      src=&quot;https://maguyva.ai/blog/agent-observability-dashboard.png&quot;
      alt=&quot;لوحة معلومات Grafana تُظهر سجل نشاط، وأعداد استدعاءات الأدوات، والإخفاقات، والمطالبات، وتصنيفات حسب الوكلاء، والأدوات المدمجة، واستخدام MCP، وأوامر سطر الأوامر، والمهارات لسير عمل وكيل.&quot;
    /&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;
    إحدى لوحات المعلومات الحية خلف سير عمل وكلائنا. لقطة الشاشة هذه مجرد شريحة واحدة من مكدس Grafana مشترك يتلقى أيضًا قياسًا عن بُعد من أوقات تشغيل وأنظمة وكلائنا الأخرى. انقر على الصورة للحصول على النسخة كاملة الدقة.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;لماذا-تهم-التتبعات-traces-أكثر-مما-تبدو-للوهلة-الأولى&quot;&gt;لماذا تهم التتبعات (Traces) أكثر مما تبدو للوهلة الأولى&lt;/h2&gt;
&lt;p&gt;تخبرنا السجلات بفئة العمل الذي حدث. تخبرنا التتبعات بكيفية تكشُّف العمل عبر الزمن.&lt;/p&gt;
&lt;p&gt;هذا الفرق مهم في أنظمة الوكلاء لأن “بطيء” وصف عام أكثر من اللازم ليكون مفيدًا.&lt;/p&gt;
&lt;p&gt;يمكن للتتبع أن يخبرنا ما إذا كان الألم قادمًا من:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;كمون النموذج&lt;/li&gt;
&lt;li&gt;زمن تنفيذ الأداة&lt;/li&gt;
&lt;li&gt;محاولات إعادة متكررة&lt;/li&gt;
&lt;li&gt;تفاعل واحد مكلف بشكل خاص مع MCP&lt;/li&gt;
&lt;li&gt;ذيل طويل من عمليات صغيرة بدت غير ضارة عند عزلها&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;عمليًا نستخدم تدفق الخطافات وتتبعات Tempo معًا.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;سجلات الخطافات&lt;/strong&gt; تجيب: أي نوع من الأشياء حدث؟&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;التتبعات&lt;/strong&gt; تجيب: أين ذهب الوقت؟&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;هذا المزيج هو ما يحوِّل المراقبة من لوحة معلومات إلى تفسير.&lt;/p&gt;
&lt;h2 id=&quot;أين-يقع-codex&quot;&gt;أين يقع Codex&lt;/h2&gt;
&lt;p&gt;Codex جزء من المكدس نفسه، لكنه ليس مطابقًا لـClaude Code.&lt;/p&gt;
&lt;p&gt;بالنسبة إلى Codex نربط قطعتين:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OTEL الأصلي من Codex إلى Alloy&lt;/li&gt;
&lt;li&gt;خطاف ويب (webhook) إشعارات إلى &lt;code&gt;codex_notify.py&lt;/code&gt;، الذي يُحوِّل إتمامات الأدوار إلى مخطط Loki نفسه الذي نستخدمه لأحداث الخطافات&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;هذا يمنحنا تصفية موحَّدة مثل &lt;code&gt;agent_tool=&quot;codex-cli&quot;&lt;/code&gt; داخل تدفق السجل نفسه.&lt;/p&gt;
&lt;p&gt;التحفظ الصادق: حمولة إشعارات Codex أقل تفصيلًا حاليًا من حمولة خطافات Claude Code لأنها ليست نوع واجهة التكامل نفسه. في إعدادنا اليوم، يمكن تطبيع إتمامات أدوار Codex في المخطط المشترك، لكن الاستخلاص الغني أداةً بأداة لا يزال أفضل في تدفق OTEL الأصلي منه في جسر الإشعارات.&lt;/p&gt;
&lt;p&gt;هذا ليس سببًا لتجنّب هذا المنشور. إنه بيت القصيد من المنشور. تُبنى أنظمة المراقبة الحقيقية من إشارات غير مثالية.&lt;/p&gt;
&lt;h2 id=&quot;grafana-عبر-mcp-يغيِّر-قواعد-اللعبة&quot;&gt;Grafana عبر MCP يغيِّر قواعد اللعبة&lt;/h2&gt;
&lt;p&gt;التحوّل الأكبر هو أن Grafana ليست مجرد مكان يزوره البشر في متصفح.&lt;/p&gt;
&lt;p&gt;في هذا المستودع نعرض Grafana أيضًا عبر MCP. هذا يعني أن الوكيل يستطيع الاستعلام عن Loki وPrometheus وTempo مباشرة بدلًا من الانتظار حتى يفحص إنسان لوحات المعلومات يدويًا أولًا.&lt;/p&gt;
&lt;p&gt;هذا يحوِّل المراقبة إلى مُدخَل نشِط في سير العمل.&lt;/p&gt;
&lt;p&gt;يستطيع الوكيل أن يسأل:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;أي عائلات أدوات فشلت أكثر في الساعة الأخيرة؟&lt;/li&gt;
&lt;li&gt;أي خادم MCP هيمن على جلسة ما؟&lt;/li&gt;
&lt;li&gt;هل قلَّلت التغييرات الأخيرة من إخفاقات الأدوات، أم أنها فقط نقلت العمل إلى مسارات أكثر اعتمادًا على مفسّر الأوامر (shell) بالأخطاء نفسها؟&lt;/li&gt;
&lt;li&gt;أي التتبعات تُظهر أعلى كمون أو محاولات إعادة متكررة؟&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;بمجرد أن يتوفر لك ذلك، تكون قريبًا جدًا من حلقة تحسين ذاتي.&lt;/p&gt;
&lt;h2 id=&quot;من-لوحة-المعلومات-إلى-حلقة-التغذية-الراجعة&quot;&gt;من لوحة المعلومات إلى حلقة التغذية الراجعة&lt;/h2&gt;
&lt;p&gt;هذا هو الجزء الذي نجده الأكثر إثارة للاهتمام.&lt;/p&gt;
&lt;p&gt;بمجرد أن يصبح مكدس المراقبة قابلًا للاستعلام من طبقة الوكيل، يتوقف القياس عن بُعد عن كونه وسيلة سلبية لإعداد التقارير ويصبح إشارة تحكّم.&lt;/p&gt;
&lt;p&gt;تبدو الحلقة كما يلي:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;يُصدر نشاط الوكيل تتبعات ومقاييس وسجلات خطافات مُثراة.&lt;/li&gt;
&lt;li&gt;تخزِّن Grafana الأدلة في Loki وTempo وPrometheus حيث توجد المقاييس.&lt;/li&gt;
&lt;li&gt;يستعلم الوكلاء عن تلك الأدلة عبر Grafana MCP.&lt;/li&gt;
&lt;li&gt;يحدِّد النظام مزيج الأدوات السيئ، والمهارات الهشة، والتوجيه الضعيف، أو سير العمل كثير الاعتماد على مفسّر الأوامر الذي يستمر في إنتاج أخطاء يمكن تجنّبها.&lt;/li&gt;
&lt;li&gt;يُعدِّل الوكلاء أو المشغِّلون المطالبات، أو إعدادات الوكيل، أو أوصاف المهارات، أو قواعد التوجيه، أو صلاحية الوصول إلى الأدوات.&lt;/li&gt;
&lt;li&gt;تُنتج الجلسة التالية نمطًا جديدًا من بيانات القياس عن بُعد، وتتكرر الدورة.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;هكذا تنتقل من “لوحة معلومات مثيرة للاهتمام” إلى “نظام تحسين قابل للقياس”.&lt;/p&gt;
&lt;p&gt;الهدف ليس تعظيم فئة أداة واحدة. الهدف هو الوصول إلى المزيج الصحيح من سطر الأوامر، والأدوات المدمجة، واستدعاءات MCP، والمهارات للعمل الذي يُنجَز فعليًا.&lt;/p&gt;
&lt;h2 id=&quot;ما-الذي-يتيح-لنا-هذا-الإجابة-عنه&quot;&gt;ما الذي يتيح لنا هذا الإجابة عنه&lt;/h2&gt;
&lt;p&gt;بمجرد أن يستقر وقتا التشغيل كلاهما على مكدس Grafana نفسه، نستطيع الإجابة عن أسئلة تشغيلية أسرع بكثير:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;هل تتركّز الإخفاقات في عائلة أداة واحدة؟&lt;/li&gt;
&lt;li&gt;هل يخلق سير العمل كثير الاعتماد على مفسّر الأوامر أخطاء يمكن تجنّبها حيث كان ينبغي وجود أداة أعلى مستوى؟&lt;/li&gt;
&lt;li&gt;أي خوادم MCP تحمل عبء العمل؟&lt;/li&gt;
&lt;li&gt;هل ندفع مقابل نشاط وكيل لا يُنتج تقدمًا ذا معنى؟&lt;/li&gt;
&lt;li&gt;هل جلسة ما غير صحية بسبب النموذج، أو الأدوات، أو طبقة التنسيق؟&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;هذا مفيد بشكل خاص في سير عمل متعدد الوكلاء، حيث لا تخبرك عبارة “كان الوكيل مشغولًا” بأي شيء تقريبًا.&lt;/p&gt;
&lt;p&gt;إذا استمر إرسال متخصص واحد وأنتج معدلات فشل مرتفعة، فتلك مشكلة توجيه أو صياغة مطالبة.&lt;/p&gt;
&lt;p&gt;إذا هيمن خادم MCP واحد على كل الاستدعاءات، فقد تكون تلك بنية جيدة أو علامة على أن كل شيء آخر عبء ميت.&lt;/p&gt;
&lt;p&gt;إذا ارتفعت إخفاقات الأدوات بينما بقيت التكلفة عالية، فلديك مشكلة تشغيلية، لا مشكلة جودة.&lt;/p&gt;
&lt;p&gt;إذا استمر العمل عبر مفسّر الأوامر في الفشل بطرق متوقَّعة يمكن تجنّبها حيث كان ينبغي وجود أداة أعلى مستوى، فتلك إشارة منتج.&lt;/p&gt;
&lt;p&gt;إذا نشِطت مهارة واحدة باستمرار دون أن تحسِّن النتائج، فتلك إشارة مطالبة أو توجيه.&lt;/p&gt;
&lt;h2 id=&quot;الدرس-الحقيقي&quot;&gt;الدرس الحقيقي&lt;/h2&gt;
&lt;p&gt;الدرس الأعمق هنا هو أن مراقبة الوكلاء تحتاج إلى &lt;strong&gt;قياس عن بُعد لوقت التشغيل&lt;/strong&gt; و&lt;strong&gt;قياس عن بُعد لسير العمل&lt;/strong&gt; معًا.&lt;/p&gt;
&lt;p&gt;تخبرك بيانات القياس عن بُعد لوقت التشغيل بما فعله النظام.&lt;/p&gt;
&lt;p&gt;تخبرك بيانات القياس عن بُعد لسير العمل بما ظن الوكيل أنه يفعله.&lt;/p&gt;
&lt;p&gt;نحتاج إلى كليهما.&lt;/p&gt;
&lt;p&gt;إذا احتفظت فقط بالتتبعات والعدَّادات، تفوتك الطبقة الدلالية. وإذا احتفظت فقط بأحداث الخطافات، يفوتك الكمون، ومقاطع التتبع، والصورة الأوسع لوقت التشغيل.&lt;/p&gt;
&lt;p&gt;وإذا احتفظت بكليهما لكن لم تُغذِّهما أبدًا مرة أخرى إلى طبقة الوكيل، فلديك مراقبة، لا تكيّف.&lt;/p&gt;
&lt;p&gt;هذا المزيج هو ما يجعل النظام قابلًا للتفسير بما يكفي للتشغيل، وقابلًا للضبط بما يكفي للتحسين.&lt;/p&gt;
&lt;h2 id=&quot;ما-لا-يزال-غير-كامل&quot;&gt;ما لا يزال غير كامل&lt;/h2&gt;
&lt;p&gt;لا تزال هناك جوانب تحتاج إلى صقل.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;لا يتضمن كل حدث خطاف بيانات المدة والرموز التي نرغب فيها.&lt;/li&gt;
&lt;li&gt;لا تزال بعض أفضل طرق عرض التوقيت تأتي من تتبعات Tempo، لا من سجلات الخطافات.&lt;/li&gt;
&lt;li&gt;Codex اليوم أقل ثراءً دلاليًا من Claude Code في تدفق الأحداث المُثرى.&lt;/li&gt;
&lt;li&gt;لقطة شاشة لوحة المعلومات واجهة عمليات حية، لا قطعة تسويقية مصقولة.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;تلك النقطة الأخيرة مقصودة. نفضِّل عرض لوحة الأجهزة الحقيقية على التظاهر بأن أنظمة الوكلاء تُفسِّر نفسها بطريقة سحرية.&lt;/p&gt;
&lt;h2 id=&quot;لماذا-يهم-هذا-بالنسبة-إلى-maguyva&quot;&gt;لماذا يهم هذا بالنسبة إلى Maguyva&lt;/h2&gt;
&lt;p&gt;Maguyva يدور حول منح الوكلاء ذكاء كود أفضل. لكن بمجرد أن يبدأ الوكلاء فعليًا بأداء عمل مفيد، تظهر حاجة جديدة على الفور: تحتاج إلى رؤية كيف يتصرفون.&lt;/p&gt;
&lt;p&gt;تصبح جودة البحث، وجودة التوجيه، واختيار الأدوات، وكفاءة السياق كلها مشكلات قابلة للمراقبة.&lt;/p&gt;
&lt;p&gt;لهذا نعتقد أن الأمر يستحق الكتابة عنه. مكدس الوكلاء المستقبلي ليس مجرد مطالبات وأدوات. إنه مطالبات، وأدوات، وطبقة جمع القياسات التي تخبرك ما إذا كان كل شيء يعمل.&lt;/p&gt;
&lt;p&gt;إذا كنت تبني سير عمل جاد للوكلاء، فالمراقبة ليست بنية تحتية اختيارية. إنها جزء من المنتج.&lt;/p&gt;
</content:encoded><category>Observability</category><category>Grafana</category><category>OpenTelemetry</category><category>Architecture</category></item><item><title>تعدين الحلقة: كيف تتحول التغييرات إلى ذاكرة مؤسسية</title><link>https://maguyva.ai/ar/blog/mining-workflow-closing-the-loop</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/mining-workflow-closing-the-loop</guid><description>تتحول إيداعات Git إلى مدخلات سجل تغييرات منظَّمة وسجلات قرارات معمارية، ثم تُغذّي وكلاء الذكاء الاصطناعي كذاكرة مؤسسية قابلة للاستعلام.</description><pubDate>Tue, 03 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;تعكس الأرقام في هذا المنشور حالة النظام وقت النشر (فبراير 2026). راجع &lt;a href=&quot;https://maguyva.ai/ar/team&quot;&gt;صفحة فريقنا&lt;/a&gt; للأرقام الحالية.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;يواجه كل فريق هندسي التحدي نفسه: تحدث التغييرات باستمرار، لكن &lt;em&gt;السبب&lt;/em&gt; وراء تلك التغييرات يختفي. بعد ستة أشهر، يسأل أحدهم “لماذا اعتمدنا DuckDB لمراحل خط الأنابيب (pipeline)؟” والجواب يعيش فقط في رأس من اتخذ ذلك القرار — إن كان لا يزال موجودًا.&lt;/p&gt;
&lt;p&gt;بنينا سير عمل تعدين (mining) يُغلِق هذه الحلقة. تتدفق التغييرات عبر إيداعات (commits) Git، وتُعالَج بخط أنابيب التعدين لدينا، وتصبح مدخلات سجل تغييرات منظَّمة وسجلات قرارات معمارية، ثم تُغذّي وكلاء الذكاء الاصطناعي لدينا مرة أخرى عبر استعلامات سطر الأوامر (CLI). النتيجة: ذاكرة مؤسسية يستطيع كل من البشر والذكاء الاصطناعي الوصول إليها.&lt;/p&gt;
&lt;h2 id=&quot;المشكلة-القرارات-تتبخَّر&quot;&gt;المشكلة: القرارات تتبخَّر&lt;/h2&gt;
&lt;p&gt;تأمَّل سيناريو نموذجيًا. يُنشئ مطوِّر إيداعًا (commit):&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;feat(canonical): add DuckDB runtime for pipeline stages&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يمثِّل هذا الإيداع خيارًا معماريًا مهمًا. قيَّم الفريق الخيارات، ونظر في المقايضات، واستقر على DuckDB لأسباب محدَّدة. لكن كل ذلك السياق يعيش في:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;سلسلة محادثات في Slack (على الأرجح مُحذوفة)&lt;/li&gt;
&lt;li&gt;ذاكرة أحدهم (تتلاشى بالتأكيد)&lt;/li&gt;
&lt;li&gt;تعليق في الكود (ربما، إن كنت محظوظًا)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;بعد ثلاثة أشهر، يسأل عضو فريق جديد: “هل ينبغي أن أستخدم DuckDB أم SQLite لهذه المرحلة الجديدة؟” بدون ذاكرة مؤسسية، إما أن يعيد اختراع العجلة أو يتخذ خيارات غير متسقة.&lt;/p&gt;
&lt;h2 id=&quot;الحلقة-من-الإيداعات-إلى-السياق&quot;&gt;الحلقة: من الإيداعات إلى السياق&lt;/h2&gt;
&lt;p&gt;يُحوِّل سير عمل التعدين لدينا تاريخ git إلى معرفة قابلة للاستعلام:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Git Commits&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  mine sync          │  ← Build index from git history&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  mine candidates    │  ← Surface commits for review&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  Classification     │  ← Human or LLM assessment&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  (changelog or ADR) │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ├──────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼                      ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────┐    ┌───────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ Changelog   │    │ Decisions     │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ Ledger      │    │ Registry      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ (JSONL)     │    │ (YAML files)  │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────┘    └───────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │                      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼                      ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────┐    ┌───────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ CHANGELOG.md│    │ orkestra CLI  │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ per package │    │ queries       │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────┘    └───────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │                      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    └──────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;              │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;              ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      ┌───────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      │ AI Agents     │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      │ (via CLI)     │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      └───────────────┘&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;البصيرة الأساسية: يتدفق كل من سجلات التغييرات والقرارات المعمارية من تاريخ git نفسه، وتُعالَج عبر خط أنابيب موحَّد. هذا يضمن ألا يُغفَل شيء.&lt;/p&gt;
&lt;h2 id=&quot;كيف-يعمل-التعدين&quot;&gt;كيف يعمل التعدين&lt;/h2&gt;
&lt;h3 id=&quot;الخطوة-1-مزامنة-الفهرس&quot;&gt;الخطوة 1: مزامنة الفهرس&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يفحص هذا الأمر تاريخ git ويبني فهرسًا لكل الإيداعات. يستخلص إشارات منظَّمة من كل إيداع:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;نوع الإيداع وفق اصطلاح Conventional Commits (&lt;code&gt;feat&lt;/code&gt;، &lt;code&gt;fix&lt;/code&gt;، &lt;code&gt;chore&lt;/code&gt;، &lt;code&gt;docs&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;النطاق (أي حزمة أو منطقة)&lt;/li&gt;
&lt;li&gt;علامات التغيير الجذري (breaking change)&lt;/li&gt;
&lt;li&gt;الملفات المعدَّلة ومقاييس التعقيد&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;الخطوة-2-فحص-حالة-التغطية&quot;&gt;الخطوة 2: فحص حالة التغطية&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; status&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;إليك كيف تبدو حالتنا الحالية:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Mining Status&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;=============&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Decisions&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;---------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  Coverage:        100.0%&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Processed:     15637  (of 15637)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Extracted:       476&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Skipped:       15161&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Changelog&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;---------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  Coverage:        100.0%&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Processed:     15637  (of 15637)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Released:       6799&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Skipped:        8838&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;15,637 إيداعًا (commits) مُعالَجًا. أصبح 476 منها قرارات معمارية. أصبح 6,799 منها مدخلات سجل تغييرات. كل إيداع مُصنَّف.&lt;/p&gt;
&lt;h3 id=&quot;الخطوة-3-الحصول-على-مرشَّحين-للمراجعة&quot;&gt;الخطوة 3: الحصول على مرشَّحين للمراجعة&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; candidates&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --limit&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 50&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --full&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يُظهِر الإيداعات التي لم تُعالَج بعد، مع سياق كامل للتصنيف:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;90571786d99166c0039ca2e80e4d9cd96184bd85&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;date&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-26&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;subject&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;feat(canonical): add DuckDB runtime for pipeline stages&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;signals&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;commit_type&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;feat&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;scope&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;canonical&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;breaking&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;is_releasable_type&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;domains_affected&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;pipeline&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;data-architecture&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;body&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Establishes DuckDB as canonical in-process analytical database...&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;files_changed&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/canonical/pipelines/stages/duckdb_runtime.py&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;stats&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;files&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;insertions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;450&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;deletions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;120&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;تساعد الإشارات في توجيه التصنيف: يشير &lt;code&gt;is_releasable_type: true&lt;/code&gt; إلى أن هذا ينبغي أن يظهر في سجل التغييرات. عدد الإدراجات الكبير وملفات البنية التحتية تشير إلى أنه قد يكون قرارًا معماريًا أيضًا.&lt;/p&gt;
&lt;h3 id=&quot;الخطوة-4-تصنيف-الإيداعات&quot;&gt;الخطوة 4: تصنيف الإيداعات&lt;/h3&gt;
&lt;p&gt;يتفرَّع مساران هنا: مدخلات سجل التغييرات والقرارات المعمارية.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;لمدخلات سجل التغييرات:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; classify&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; abc123&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --changelog&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; added&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يُسجِّل أن الإيداع &lt;code&gt;abc123&lt;/code&gt; ينبغي أن يظهر في سجل التغييرات تحت فئة “مُضاف” (Added).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;للقرارات المعمارية:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;أولًا، احصل على معرِّف قرار حقيقي:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --domain&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; pipeline&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --dry-run&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Returns: DEC-PL-143&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ثم صنِّف باستخدام معرِّف القرار:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; classify&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; abc123&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --decision&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; DEC-PL-143&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يربط الإيداع بسجل قرار سيُنشَأ أو يُحدَّث.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;للمعالجة بالدفعات (وهو ما نفعله فعليًا):&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Generate classifications file with LLM assistance&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; commit&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --input&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; classifications.jsonl&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يدعم تنسيق JSONL كلا المجالين في تمريرة واحدة:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;jsonl&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;abc123&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;changelog&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;action&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;release&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;category&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;added&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;summary&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Add DuckDB runtime for pipeline stages&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;abc123&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;decisions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;action&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;extract&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;decision_id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;DEC-PL-142&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;def456&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;changelog&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;action&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;skip&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;reason&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Chore: dependency update&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;الخطوة-5-توليد-المخرجات&quot;&gt;الخطوة 5: توليد المخرجات&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; changelog&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; render&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --package&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;pk&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;g&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يُولِّد ملفات &lt;code&gt;CHANGELOG.md&lt;/code&gt; لكل حزمة من السجل (ledger). سجلات التغييرات نواتج مُشتقَّة — احذفها وستتولَّد من جديد بشكل مثالي من السجل المصدر.&lt;/p&gt;
&lt;h2 id=&quot;بنية-سجل-القرار&quot;&gt;بنية سجل القرار&lt;/h2&gt;
&lt;p&gt;تصبح القرارات المُستخلَصة ملفات YAML ببيانات وصفية غنية:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;DEC-PL-142&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Adopt DuckDB as Canonical Processing Runtime for Pipeline Stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;domain&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;pipeline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;active&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;created&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;2026-01-26&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;summary&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  Establishes DuckDB as the canonical in-process analytical database for pipeline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  stage transformations. Provides a shared runtime module that resolves settings&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  from pipeline defaults with stage-level overrides.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;context&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  Pipeline stages performing data transformations each independently configured&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  DuckDB connections. This led to inconsistent settings, duplicated configuration&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  code, and no way to tune DuckDB globally for a pipeline run.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;DuckDB provides efficient in-process OLAP with zero configuration deployment&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Centralized runtime module eliminates duplicated DuckDB setup across stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Hierarchical settings enable global tuning with stage-level overrides&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Memory limits and thread counts can be adjusted per-pipeline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;impact&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  positive&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Consistent DuckDB configuration across all pipeline stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Single point of control for memory/thread tuning&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Reduced code duplication in conversion and export stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  negative&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Adds dependency on shared runtime module&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Stages must adopt new configuration pattern&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;source_commits&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;sha&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;90571786d99166c0039ca2e80e4d9cd96184bd85&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    message&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;feat(canonical): add DuckDB runtime for pipeline stages&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;2026-01-26&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    role&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;primary&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;files&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/canonical/pipelines/stages/duckdb_runtime.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/canonical/pipelines/runner.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/canonical/pipelines/stages/convert_hdx_admin_boundaries_to_geoparquet.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;related&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;DEC-DA-014&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # Data architecture decisions that influenced this&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يرتبط كل قرار مرة أخرى بإيداعاته المصدر. يحدِّد كل قرار الملفات التي يؤثر فيها. العلاقات بين القرارات صريحة.&lt;/p&gt;
&lt;h2 id=&quot;تكامل-سطر-الأوامر-الاستعلام-عن-الذاكرة-المؤسسية&quot;&gt;تكامل سطر الأوامر: الاستعلام عن الذاكرة المؤسسية&lt;/h2&gt;
&lt;p&gt;هنا تُغلَق الحلقة. يستطيع الوكلاء الاستعلام عن القرارات عبر سطر الأوامر:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Search by topic&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --query&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;retry&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يُعيد قرارات حول منطق إعادة المحاولة، ومعالجة الأخطاء، وأنماط الاستعادة.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Get full details on a specific decision&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; DEC-PL-142&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يُعيد سجل القرار الكامل بسياقه، ومبرِّراته، وأثره.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# List recent decisions for context&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --limit&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 15&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يُظهِر الخيارات المعمارية التي اتُّخذت مؤخرًا.&lt;/p&gt;
&lt;h3 id=&quot;كيف-يستخدم-الوكلاء-هذا&quot;&gt;كيف يستخدم الوكلاء هذا&lt;/h3&gt;
&lt;p&gt;تتضمن التعليمات الأساسية لمنسِّقنا:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;markdown&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8;font-weight:bold&quot;&gt;**Essential CLI commands:**&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; `orkestra registry decisions search &quot;X&quot;`&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; — Find architectural decisions&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;عندما يُطلَب من وكيل تنفيذ شيء متعلق بـDuckDB، يمكنه أولًا التحقق من:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --query&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;DuckDB&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;واكتشاف DEC-PL-142، والتعلُّم:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;لماذا اخترنا DuckDB (context)&lt;/li&gt;
&lt;li&gt;كيفية استخدامه بشكل صحيح (agent_guidance)&lt;/li&gt;
&lt;li&gt;أي الملفات يجب النظر إليها (files)&lt;/li&gt;
&lt;li&gt;أي القرارات ذات الصلة موجودة (related)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;لا يعيد الوكيل اختراع العجلة. إنه يبني على أنماط راسخة.&lt;/p&gt;
&lt;h2 id=&quot;اختبار-الأسئلة-الثلاثة&quot;&gt;اختبار الأسئلة الثلاثة&lt;/h2&gt;
&lt;p&gt;لا يستحق كل إيداع سجل قرار. نستخدم اختبار الأسئلة الثلاثة للفرز:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;هل كان اتخاذه صعبًا؟&lt;/strong&gt; هل تطلَّب تحليلًا كبيرًا، أو تقييم مقايضات، أو نقاشًا؟&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;هل تغييره مكلف؟&lt;/strong&gt; هل سيتطلب عكس هذا القرار إعادة عمل كبيرة؟&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;هل له أثر على مستوى النظام كله؟&lt;/strong&gt; هل يؤثر في حزم متعددة أو يُرسي أنماطًا سيتبعها آخرون؟&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;إذا أجاب إيداع بـ“نعم” على واحد على الأقل من هذه الأسئلة، فهو مرشَّح لاستخلاص قرار. معدلنا المعتاد: 1-4 قرارات لكل 100 إيداع (نحو 1-4%).&lt;/p&gt;
&lt;p&gt;بالنسبة إلى مدخلات سجل التغييرات، العتبة أقل: يُسجَّل أي تغيير يراه المستخدم (ميزات، إصلاحات، تحسينات). عادةً ما تُتخطَّى المهام الداخلية، وتحديثات التوثيق، وإعادة الهيكلة. معدلنا المعتاد: 30-50 مدخلة سجل تغييرات لكل 100 إيداع.&lt;/p&gt;
&lt;h2 id=&quot;تخزين-البيانات-سجلات-إلحاق-فقط-append-only&quot;&gt;تخزين البيانات: سجلات إلحاق فقط (Append-Only)&lt;/h2&gt;
&lt;p&gt;يستخدم نظام التعدين سجلات JSONL بإلحاق فقط لتشغيل خالٍ من التعارض بين وكلاء متعددين:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;packages/orchestration/ai_assets/reference/changelog/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── commits_processed.jsonl  # Classification ledger (both domains)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── release_notes.jsonl      # Changelog entries&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── commits_index.yaml       # Derived index (gitignored)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;packages/orchestration/ai_assets/reference/decisions/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── registry.yaml            # Decision index&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── records/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ├── DEC-AD-001.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ├── DEC-AD-002.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    └── ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;تنسيق JSONL مع &lt;code&gt;merge=union&lt;/code&gt; في &lt;code&gt;.gitattributes&lt;/code&gt; يعني أن وكلاء متعددين يستطيعون تصنيف الإيداعات في آنٍ واحد دون تعارضات دمج. كل سطر مستقل.&lt;/p&gt;
&lt;h2 id=&quot;بوابات-التحقق&quot;&gt;بوابات التحقق&lt;/h2&gt;
&lt;p&gt;قبل أي جلسة تعدين، نُشغِّل التحقق:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; validate&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --quick&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يفحص هذا:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;صحة تنسيق SHA&lt;/li&gt;
&lt;li&gt;امتثال تنسيق معرِّف القرار&lt;/li&gt;
&lt;li&gt;عدم وجود مدخلات مكرَّرة لنفس SHA&lt;/li&gt;
&lt;li&gt;وجود القرارات المُشار إليها فعليًا&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;بعد التصنيف، نتحقق مجددًا قبل إيداع التغييرات.&lt;/p&gt;
&lt;h2 id=&quot;لماذا-يهم-هذا&quot;&gt;لماذا يهم هذا&lt;/h2&gt;
&lt;p&gt;تحلّ حلقة التغذية الراجعة التي بنيناها عدة مشكلات:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;لأعضاء الفريق الجدد:&lt;/strong&gt; بدلًا من سؤال “لماذا فعلنا X؟”، يستطيعون البحث في سجل القرارات. السياق محفوظ.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;لوكلاء الذكاء الاصطناعي:&lt;/strong&gt; لا يعملون في فراغ. يستطيعون الاستعلام عن المعرفة المؤسسية قبل تقديم التوصيات. عندما يُطلَب منهم إضافة مرحلة خط أنابيب جديدة، يستطيعون اكتشاف نمط DuckDB واتّباعه.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;للاتساق المعماري:&lt;/strong&gt; القرارات صريحة وقابلة للبحث. عندما يقترح أحدهم نهجًا يناقض قرارًا قائمًا، يستطيع النظام إظهار التعارض.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;لتوليد سجل التغييرات:&lt;/strong&gt; ملاحظات الإصدار ليست هرولة في اللحظة الأخيرة. إنها نتاج ثانوي لتصنيف مستمر أثناء التطوير.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;للتهيئة:&lt;/strong&gt; يرث الوكلاء الجدد السياق الكامل لقاعدة الكود. لا يرون الكود فقط — بل يرون القرارات التي شكَّلته.&lt;/p&gt;
&lt;h2 id=&quot;الحالة-الراهنة&quot;&gt;الحالة الراهنة&lt;/h2&gt;
&lt;p&gt;اعتبارًا من اليوم:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;15,637 إيداعًا&lt;/strong&gt; عولِجت عبر خط الأنابيب&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;476 قرارًا معماريًا&lt;/strong&gt; استُخلِصت ووُثِّقت&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6,799 مدخلة سجل تغييرات&lt;/strong&gt; سُجِّلت&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;تغطية 100%&lt;/strong&gt; عبر كلا المجالين&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;كل إيداع منذ أن بدأنا صُنِّف. الذاكرة المؤسسية كاملة وقابلة للاستعلام.&lt;/p&gt;
&lt;h2 id=&quot;البدء&quot;&gt;البدء&lt;/h2&gt;
&lt;p&gt;إذا أردت تنفيذ شيء مماثل:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ابدأ بإيداعات تتبع اصطلاح conventional commits.&lt;/strong&gt; يعمل خط أنابيب التعدين بشكل أفضل عندما تحمل الإيداعات بادئات منظَّمة (&lt;code&gt;feat:&lt;/code&gt;، &lt;code&gt;fix:&lt;/code&gt;، &lt;code&gt;chore:&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;حدِّد مجالاتك.&lt;/strong&gt; نستخدم مجالات مثل &lt;code&gt;pipeline&lt;/code&gt;، &lt;code&gt;agent-design&lt;/code&gt;، &lt;code&gt;observability&lt;/code&gt;، &lt;code&gt;data-modeling&lt;/code&gt;. تنظِّم هذه المجالات القرارات حسب التخصص.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ابنِ عادة التصنيف.&lt;/strong&gt; يعمل التعدين عندما تصنِّف الفرق الإيداعات بانتظام. تساعد المعالجة بالدفعات بمساعدة LLM على التوسّع.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;اجعل القرارات قابلة للاستعلام.&lt;/strong&gt; تتراكم القيمة عندما يستطيع الوكلاء البحث في القرارات عبر سطر الأوامر. صمِّم مخرجك ليكون قابلًا للاستهلاك آليًا.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;أغلِق الحلقة.&lt;/strong&gt; ينبغي أن تؤثر القرارات في العمل المستقبلي. أدرِج مراجع القرارات في تعليمات الوكيل وقوائم مراجعة الكود.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;الهدف ليس توثيقًا مثاليًا. إنه جعل &lt;em&gt;السبب&lt;/em&gt; وراء التغييرات متاحًا لكل من البشر والذكاء الاصطناعي، اليوم وبعد ستة أشهر من الآن. عندما تصبح التغييرات ذاكرة مؤسسية، تبني الفرق على أنماط راسخة بدلًا من إعادة اختراعها.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;سير عمل التعدين جزء من محرك التنسيق لدينا، وتحديدًا وحدة محرك السياق في حزمة التنسيق لدينا.&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Workflows</category></item><item><title>تعدين المهارات: من 3,500 مرشَّح إلى 466 قدرة</title><link>https://maguyva.ai/ar/blog/skill-mining-3500-and-counting</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/skill-mining-3500-and-counting</guid><description>غربلنا 3,500 مرشَّح للمهارات واعتمدنا 466 منها. حلقة تعدين واستيعاب منهجية لبناء مكتبة مهارات متماسكة لوكلاء الذكاء الاصطناعي على نطاق واسع.</description><pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;تعكس الأرقام في هذا المنشور حالة النظام وقت النشر (يناير 2026). راجع &lt;a href=&quot;https://maguyva.ai/ar/team&quot;&gt;صفحة فريقنا&lt;/a&gt; للأرقام الحالية.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;مشكلة-الـ3500-مهارة&quot;&gt;مشكلة الـ3,500 مهارة&lt;/h2&gt;
&lt;p&gt;عندما بدأنا بناء نظام تنسيق وكلاء، واجهنا تحديًا مثيرًا للاهتمام: توجد آلاف المهارات المحتملة متناثرة عبر منظومة الذكاء الاصطناعي. مستودعات GitHub، وتوثيق البائعين، ومشاريع المجتمع، والأنماط الداخلية - المهارات موجودة في كل مكان. لكن أيها مهم؟ أيها يعمل؟ وكيف تحافظ على مكتبة مهارات متماسكة يستطيع الوكلاء استخدامها فعليًا؟&lt;/p&gt;
&lt;p&gt;إجابتنا: حلقة تعدين واستيعاب منهجية.&lt;/p&gt;
&lt;h2 id=&quot;الأرقام-اليوم&quot;&gt;الأرقام اليوم&lt;/h2&gt;
&lt;p&gt;بعد نحو ثلاثة أشهر فقط من إطلاق Anthropic لـAgent Skills في 16 أكتوبر 2025، إليك أين كنا عندما نُشِر هذا المنشور في 27 يناير 2026:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;المقياس&lt;/th&gt;
&lt;th&gt;العدد&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;المرشَّحون المحدَّدون&lt;/td&gt;
&lt;td&gt;أكثر من 3,500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;المهارات المُعتمَدة&lt;/td&gt;
&lt;td&gt;466&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;مهارات البائعين&lt;/td&gt;
&lt;td&gt;373&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;المهارات الداخلية&lt;/td&gt;
&lt;td&gt;93&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;البائعون النشِطون&lt;/td&gt;
&lt;td&gt;أكثر من 25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;متوسط الرموز لكل مهارة&lt;/td&gt;
&lt;td&gt;2,834&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;الأدوات المُشار إليها&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;الوسوم الفريدة&lt;/td&gt;
&lt;td&gt;635&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;راجعنا أكثر من 3,500 مرشَّح للمهارات. اعتمدنا 466 منها. ذلك معدل اعتماد 13% - وتلك الانتقائية مقصودة.&lt;/p&gt;
&lt;h2 id=&quot;نظام-طبقات-المعرفة&quot;&gt;نظام طبقات المعرفة&lt;/h2&gt;
&lt;p&gt;لم تُخلَق كل المهارات متساوية. ننظِّمها في خمس طبقات معرفة (K0-K4)، تمثِّل كل واحدة نطاق تطبيق مختلفًا:&lt;/p&gt;
&lt;h3 id=&quot;k0-الأساسيات-عالمية&quot;&gt;K0: الأساسيات (عالمية)&lt;/h3&gt;
&lt;p&gt;مهارات ينبغي أن يمتلكها كل وكيل. تمثِّل هذه قدرات “المفكِّر الجيد” التي تعمل في أي مكان.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;foundations/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── test-first-discipline       # TDD: Red-Green-Refactor&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── evidence-based-completion   # Verify before claiming done&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── systematic-debugging        # Root cause methodology&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── structured-planning         # Break work into tasks&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── context-budget-awareness    # Manage token consumption&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;مهارات K0 قابلة للنقل إلى أي مشروع، أي مجال، أي مكدس تقني. تُرمِّز أنماطًا معرفية عالمية.&lt;/p&gt;
&lt;h3 id=&quot;k1-الهويات-التخصص&quot;&gt;K1: الهويات (التخصص)&lt;/h3&gt;
&lt;p&gt;مهارات “المهندس الجيد” أو “الباحث الجيد” التي تُطبَّق عبر المشاريع ضمن تخصص واحد.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;identities/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── research-workflows          # Multi-source research&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── web-extraction-playbook     # Content extraction&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── code-review                 # PR review patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── cli-interface-standards     # CLI design patterns&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;k2-المجالات-خبرة-الموضوع&quot;&gt;K2: المجالات (خبرة الموضوع)&lt;/h3&gt;
&lt;p&gt;مهارات “خبير قواعد البيانات الجيد” أو “مهندس الأمان الجيد” القابلة للنقل ضمن مجال واحد.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;domains/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── schema-migration-workflow   # Safe migration patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── rpc-validation-checklist    # RPC health checks&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── auth-validation-checklist   # JWT/OAuth patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── secrets-audit-checklist     # Credential scanning&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;k3-المكدسات-التقنية-stacks&quot;&gt;K3: المكدسات التقنية (Stacks)&lt;/h3&gt;
&lt;p&gt;مهارات “مستخدم Supabase الجيد” أو “مطوِّر Cloudflare الجيد” لمكدسات تقنية محدَّدة.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;stacks/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── maguyva-quickstart          # Our semantic search patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── cloudflare-deployment       # Workers/Pages deployment&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── mcp-tool-best-practices     # MCP tool selection&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;k4-المشروع-المؤسسة&quot;&gt;K4: المشروع (المؤسسة)&lt;/h3&gt;
&lt;p&gt;مهارات خاصة بمؤسستنا وسير عملنا.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;project/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── agent-creation-workflow     # How we build agents&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── skill-authoring-workflow    # How we write skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── mining-session-workflow     # This very process&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── vendor-skill-evaluation     # Evaluation rubrics&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;حلقة-التعدين&quot;&gt;حلقة التعدين&lt;/h2&gt;
&lt;h3 id=&quot;المرحلة-1-الاكتشاف&quot;&gt;المرحلة 1: الاكتشاف&lt;/h3&gt;
&lt;p&gt;تأتي المهارات من كل مكان:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;مستودعات البائعين&lt;/strong&gt;: تنشر AWS، وAnthropic، وCloudflare، وSupabase، ومساهمو المجتمع مجموعات مهارات. نتتبَّع أكثر من 25 جذر بائع.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;مشاريع المجتمع&lt;/strong&gt;: GitHub مليء بقوالب Claude Code، وأنماط الوكلاء، وتعريفات سير العمل.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;الأنماط الداخلية&lt;/strong&gt;: بينما يحل فريقنا المشكلات، تظهر أنماط. تُصاغ هذه رسميًا في مهارات.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;تعدين التوثيق&lt;/strong&gt;: غالبًا ما يحتوي التوثيق التقني على مهارات ضمنية - إجراءات، وقوائم مراجعة، وأشجار قرار.&lt;/p&gt;
&lt;p&gt;الاكتشاف مستمر. نستخدم قائمة انتظار مهارات لتتبُّع المرشَّحين قبل التقييم الرسمي.&lt;/p&gt;
&lt;h3 id=&quot;المرحلة-2-التقييم&quot;&gt;المرحلة 2: التقييم&lt;/h3&gt;
&lt;p&gt;يمر كل مرشَّح بالمعيار نفسه:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;adoption_criteria&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;fills_real_gap&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;      # We lack this capability&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;well_structured&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Progressive disclosure&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;actively_maintained&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt; # Commits in last 6 months&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;portable&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;            # Not hyper-specific&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;tested&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;              # Evidence of usage&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يجب أن تنجح جميع المعايير الخمسة للمنتج. لهذا يُرفَض 87% من المرشَّحين.&lt;/p&gt;
&lt;p&gt;ثم يمر كل مرشَّح بمراجعة ثقة منفصلة. لا نعامل مستودع بائع رسمي، ومشرف مجتمع معروف جيدًا، ومستودع GitHub عشوائي كمصادر حقيقة متكافئة.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;trust_review&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  vendor_credibility&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;ownership_verified&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;       # Official vendor, known maintainer, or internal source&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;maintenance_signal&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;       # Recent commits, issue response, release history&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adoption_signal&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Evidence of real use, stars alone are not enough&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;provenance_clear&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;         # We can trace where the skill came from&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  prompt_injection_scan&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;hidden_instruction_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt; # Buried &quot;ignore previous instructions&quot; patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;exfiltration_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;       # Prompts that try to leak files, secrets, or context&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;authority_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Claims of priority over system or developer rules&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  script_audit&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;inspect_scripts&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Read shell/python/js helpers before adoption&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;network_and_exec_review&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # curl|bash, remote downloads, subprocess execution&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;file_and_secret_review&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;   # Env vars, credential access, broad file writes&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;destructive_action_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt; # rm, reset, overwrite, or unsafe automation&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يحصل البائعون الموثوقون على مراجعة مصدر أخف، لكن دون إعفائهم من التدقيق. المصادر غير الموثوقة أو المجهولة تخضع لتدقيق يدوي أعمق، ولا نُنفِّذ النصوص البرمجية المُجمَّعة معها حتى تُقرَأ، ويُحدَّد نطاقها، وتُصنَّف بأنها آمنة.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;تحليل الفجوات&lt;/strong&gt;: قبل الاعتماد، نبحث في سجلنا:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; skills&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;&amp;lt;capability&amp;gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;إذا كنا نمتلكها بالفعل، لا نحتاج إليها. إذا كان لدينا شيء قريب، قد ندمج بدلًا من أن نعتمد.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;تقييم العمق والمعايير&lt;/strong&gt;: نُقيِّم أيضًا مدى استفادة المهارة المرشَّحة من جميع إمكانات نموذج مهارات الوكلاء. لا يزال &lt;code&gt;SKILL.md&lt;/code&gt; منفردًا مفيدًا، لكن المهارات الأعمق أكثر قيمة عندما تفصل التعليمات عن المراجع، والنصوص البرمجية، والأصول بالطريقة التي يشجِّعها &lt;code&gt;agentskills.io&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;skill_depth&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_1&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;SKILL.md only&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;                     # Single instruction file&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;SKILL.md + strong description&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Clear triggers and scope&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_3&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adds references/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;                  # Load docs only when needed&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_4&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adds atomic scripts/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;              # Small, reviewable helpers&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_5&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adds assets/examples/templates&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;    # Full progressive disclosure&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;depth_signals&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;standards_adherence&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;        # Structure aligns with agentskills.io conventions&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;reference_quality&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Curated references, not giant context dumps&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;script_atomicity&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;           # Focused helpers, not opaque monoliths&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;tool_boundary_clarity&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;      # Clear limits on what the skill can execute&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;community_signal&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;           # Stars/forks/users help, but only as a weak boost&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يمكن أن ترفع نجوم GitHub درجة المصداقية قليلًا، لكنها لا تُنقِذ أبدًا مهارة سطحية أو غير آمنة. مستودع بنجوم كثيرة مع &lt;code&gt;SKILL.md&lt;/code&gt; غامض واحد ونصوص برمجية معتمة يحصل على درجة أقل من مستودع أصغر بوصف دقيق، و&lt;code&gt;references/&lt;/code&gt; مُنسَّق، وأدوات مساعدة صغيرة تؤدي كل منها مهمة محددة تستفيد فعليًا من كامل قدرة المهارة.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;التحليل البنيوي&lt;/strong&gt;: نفحص جودة المهارة:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;wc&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -l&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vendor/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;rep&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skil&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/SKILL.md&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # Size check&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;ls&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vendor/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;rep&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skil&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/scripts/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Supporting files&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;ls&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vendor/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;rep&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skil&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/references/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # Bundled docs&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;إذا تضمَّن المرشَّح نصوصًا برمجية، تصبح تلك المراجعة أكثر صرامة. المهارة الجيدة ليست مفيدة فقط؛ يجب أن تكون واضحة، ومحدودة، وآمنة لتُسلَّم إلى وكيل. مرشِّح السلامة هذا وحده يستبعد شريحة ذات معنى من مرشَّحين مثيرين للاهتمام لولا ذلك.&lt;/p&gt;
&lt;h3 id=&quot;المرحلة-3-الاستيعاب&quot;&gt;المرحلة 3: الاستيعاب&lt;/h3&gt;
&lt;p&gt;عندما تجتاز مهارة التقييم، تدخل السجل. لكن المهارات لا تُعتمَد أبدًا دون تغيير. تُعدَّل لتناسب نظامنا.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;التعديلات عند الاعتماد&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;تطبيع البيانات الوصفية&lt;/strong&gt;: تحصل كل مهارة على مخطط frontmatter الخاص بنا&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;تعيين طبقة K&lt;/strong&gt;: تُوضَع المهارات في طبقة المعرفة المناسبة&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;إثراء الوسوم&lt;/strong&gt;: تُضاف وسوم للاكتشاف&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;تصريح الأدوات&lt;/strong&gt;: يُعلَن عن الأدوات المسموح بها صراحةً&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;مواءمة الأقسام&lt;/strong&gt;: تُعاد هيكلة المحتوى ليطابق قالبنا&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;مهارة YAML نموذجية بعد الاستيعاب:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;metadata&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  identifier&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor-skill-evaluation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  name&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor-skill-evaluation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  description&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Systematic evaluation of vendor skills for adoption.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  layer&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;K4&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  semantic_folder&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;project&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  source&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;core&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_updated&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;2026-01-17&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;frontmatter&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;agents&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;meta&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skill-adoption&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  allowed_tools&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Bash&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Read&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Write&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Edit&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Grep&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Glob&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Task&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;المرحلة-4-تعيين-النطاق&quot;&gt;المرحلة 4: تعيين النطاق&lt;/h3&gt;
&lt;p&gt;تُعيَّن المهارات إلى نطاقات - فئات تُحدِّد أي الوكلاء يُحمِّل أي المهارات:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;scopes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  database&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    primary_skills&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;domains/schema-migration-workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;domains/rpc-validation-checklist&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/supabase/supabase-database&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/supabase/supabase-auth&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  research&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    primary_skills&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;identities/research-workflows&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;identities/web-extraction-playbook&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;identities/dataset-discovery-quickstart&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يُصرِّح الوكلاء عن نطاقاتهم، وتُعيَّن المهارات تلقائيًا:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Agent definition&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;scopes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;database&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;research&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Gets: all database skills + all research skills + universal skills&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;المرحلة-5-التجسيد&quot;&gt;المرحلة 5: التجسيد&lt;/h3&gt;
&lt;p&gt;لا تعيش المهارات كـYAML في الإنتاج. تُصيَّر إلى ملفات SKILL.md التي يستطيع Claude Code تحميلها:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يقوم هذا الأمر بما يلي:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;يقرأ كل تعريفات YAML للمهارات&lt;/li&gt;
&lt;li&gt;يُصيِّرها عبر قوالب Jinja&lt;/li&gt;
&lt;li&gt;يكتب ملفات SKILL.md إلى &lt;code&gt;.claude/skills/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ينظِّم حسب طبقة K (foundations/، identities/، domains/، stacks/، project/)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;بنية المخرَج النهائية:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;.claude/skills/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── foundations/     # K0: Universal&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── identities/      # K1: Discipline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── domains/         # K2: Subject&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── stacks/          # K3: Technology&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── project/         # K4: Organization&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── vendor/          # External skills&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;نمط-النطاق-الكامن-dormant&quot;&gt;نمط النطاق الكامن (Dormant)&lt;/h2&gt;
&lt;p&gt;أحد أقوى أنماطنا هو مهارات “مُعتمَدة لكن غير محمَّلة”. نسمّي هذه النطاقات الكامنة.&lt;/p&gt;
&lt;p&gt;تأمَّل مهارات الحوسبة العلمية من مستودع k-dense-scientific. اعتمدنا أكثر من 120 مهارة تغطي المعلوماتية الحيوية، والكيمياء، والحوسبة الكمومية، والمعلوماتية السريرية. لكن معظم وكلائنا لا يحتاجون إلى الالتحام الجزيئي أو تحليل التعبير الجيني.&lt;/p&gt;
&lt;p&gt;بدلًا من تحميل كل الـ120 مهارة في كل وكيل (مما يُضخِّم نوافذ السياق)، نحن:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;نعتمد&lt;/strong&gt; المهارات بنطاق محدَّد (مثل &lt;code&gt;bioinformatics&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;نُبقيها &lt;strong&gt;كامنة&lt;/strong&gt; - مُسجَّلة لكن غير محمَّلة&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;نُفعِّلها&lt;/strong&gt; فقط عندما يُصرِّح وكيل عن ذلك النطاق&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# In scopes.yaml - dormant scope&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;bioinformatics&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  description&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Bioinformatics and genomics&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  primary_skills&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: []  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Empty - skills exist but aren&apos;t loaded&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# When an agent needs bioinformatics:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Agent YAML&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;scopes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;research&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;bioinformatics&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Now loads bioinformatics skills&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يتيح لنا هذا النمط امتلاك 466 مهارة في السجل بينما يُحمِّل الوكلاء عادةً 40-60 مهارة ذات صلة فقط.&lt;/p&gt;
&lt;h2 id=&quot;أنواع-المهارات&quot;&gt;أنواع المهارات&lt;/h2&gt;
&lt;p&gt;تأتي المهارات في ثلاثة أنماط معرفية:&lt;/p&gt;
&lt;h3 id=&quot;سير-عمل-workflow&quot;&gt;سير عمل (Workflow)&lt;/h3&gt;
&lt;p&gt;خطوات إجرائية مرتَّبة: “1. افعل X، 2. ثم Y، 3. أخيرًا Z”&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Examples: schema-migration-workflow, mining-session-workflow&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;انضباط-discipline&quot;&gt;انضباط (Discipline)&lt;/h3&gt;
&lt;p&gt;ضوابط سلوكية: “افعل X دائمًا”، “لا تفعل Y أبدًا”، “فضِّل Z”&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;discipline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Examples: test-first-discipline, evidence-based-completion&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;قائمة-مراجعة-checklist&quot;&gt;قائمة مراجعة (Checklist)&lt;/h3&gt;
&lt;p&gt;معايير تحقق: “أكِّد X”، “تحقَّق من Y”، “افحص Z”&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;checklist&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Examples: auth-validation-checklist, secrets-audit-checklist&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;بوابات-الجودة&quot;&gt;بوابات الجودة&lt;/h2&gt;
&lt;p&gt;يجب أن تجتاز كل مهارة التحقق قبل إطلاقها:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;validation&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  file_exists&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;           # Skill file at declared path&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  frontmatter_valid&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Frontmatter parses correctly&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  sections_complete&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Expected sections present&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  tools_registered&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;      # Declared tools exist in registry&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يجب أن تكون الأوصاف بين 50-400 حرف مع عبارات تفعيل (“استخدم عندما…”، “عندما تحتاج إلى…”) كي يعرف Claude Code متى يقترحها.&lt;/p&gt;
&lt;p&gt;نتحقق باستمرار:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; validate&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --show-warnings&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;منظومة-المزوِّدين&quot;&gt;منظومة المزوِّدين&lt;/h2&gt;
&lt;p&gt;نحصل على مهارات المزوِّدين البالغ عددها 373 من:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;المزوِّد&lt;/th&gt;
&lt;th&gt;المهارات&lt;/th&gt;
&lt;th&gt;المجال&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AWS Agent&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;خدمات سحابية&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;توليد المستندات&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloudflare&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;الحوسبة الطرفية (edge)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supabase&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;قواعد البيانات&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;k-dense&lt;/td&gt;
&lt;td&gt;أكثر من 100&lt;/td&gt;
&lt;td&gt;الحوسبة العلمية&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;silvainfm&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;علم البيانات&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java Developer Kit&lt;/td&gt;
&lt;td&gt;أكثر من 45&lt;/td&gt;
&lt;td&gt;Spring/Java&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;أتمتة المتصفح&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;يُصرَّح كل جذر بائع في metadata.yaml:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;vendor_roots&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/aws-agent-skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    provider&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;aws&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/k-dense-scientific/scientific-skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    provider&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;k-dense&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/supabase-skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    provider&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;supabase&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;عندما يعمل &lt;code&gt;orkestra sync&lt;/code&gt;، تُربَط مهارات البائعين بروابط رمزية إلى &lt;code&gt;.claude/skills/vendor/&lt;/code&gt; بمساحة اسم مزوِّدها.&lt;/p&gt;
&lt;h2 id=&quot;ما-تعلمناه&quot;&gt;ما تعلمناه&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;الانتقائية تُؤتي ثمارها.&lt;/strong&gt; من المُغري اعتماد كل ما يبدو مفيدًا. لكن كل مهارة تكلِّف رموزًا. بمتوسط 2,834 رمزًا لكل مهارة، يضر التضخم بسرعة. معدل اعتمادنا البالغ 13% يُبقي الوكلاء رشيقين.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;البنية تُمكِّن الاكتشاف.&lt;/strong&gt; نظام طبقات K ليس مجرد تنظيم - إنه يتعلق بقابلية النقل. يمكن إعادة استخدام مهارات K0 في أي مكان. مهارات K4 خاصة بالمشروع عمدًا. هذا الوضوح يساعد كلًا من البشر والوكلاء على إيجاد ما يحتاجونه.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;النطاقات الكامنة تتوسَّع.&lt;/strong&gt; يمكنك اعتماد مئات المهارات دون تحميلها كلها. تتيح لك النطاقات بناء سجل شامل مع إبقاء نوافذ سياق الوكيل الفردية قابلة للإدارة.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;التعديل عند الاعتماد ضروري.&lt;/strong&gt; نادرًا ما تناسب مهارات البائعين الخام نظامك. عملية الاستيعاب - إضافة بيانات وصفية، وتعيين طبقات، وإثراء الوسوم - تجعل المهارات الخارجية تعمل داخليًا.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;التعدين مستمر.&lt;/strong&gt; يستمر رقم الـ3,500 في النمو. تظهر مستودعات بائعين جديدة. تنبثق أنماط مجتمعية. تترسخ إجراءات العمل الداخلية. الحلقة لا تتوقف أبدًا.&lt;/p&gt;
&lt;h2 id=&quot;ما-التالي&quot;&gt;ما التالي&lt;/h2&gt;
&lt;p&gt;نعمل على عدة تحسينات:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;اكتشاف الفجوات آليًا&lt;/strong&gt;: تنبيه عندما يمكن معالجة إخفاقات وكيل شائعة بمهارة غير مُعتمَدة&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;سير عمل تقادم المهارات&lt;/strong&gt;: عملية رسمية لسحب المهارات التي حلَّت محلها أخرى أو لم تعد تُستخدَم&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;تبعيات عبر المهارات&lt;/strong&gt;: تصريح صريح لمتطلبات المهارة المسبقة&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;تحليلات الاستخدام&lt;/strong&gt;: تتبُّع أي المهارات يستدعيها الوكلاء فعليًا مقابل مجرد تحميلها&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;حلقة تعدين المهارات بنية تحتية. إنها ليست برّاقة. لكنها ما يجعل 41 وكيلًا يعمل بتماسك مع 466 قدرة مع البقاء ضمن حدود السياق.&lt;/p&gt;
&lt;p&gt;تلك هي قصة كيف يصبح 3,500 هو 466. ليس بتجاهل 3,000 - بل بتقييمها منهجيًا واعتماد ما ينجح فقط.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;تريد رؤية نظام المهارات في العمل؟ راجع &lt;code&gt;uv run orkestra skills list&lt;/code&gt; لاستكشاف سجلنا الحالي.&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Skills</category></item><item><title>الإفصاح التدريجي: نوافذ سطر الأوامر (CLI) إلى أنظمة الوكلاء</title><link>https://maguyva.ai/ar/blog/progressive-disclosure-cli-into-agents</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/progressive-disclosure-cli-into-agents</guid><description>أنظمة الوكلاء معتِمة افتراضيًا. يمنح الإفصاح التدريجي المشغِّلين طرق عرض متعددة الطبقات عبر سطر الأوامر، من فحوصات الحالة السريعة إلى تفاصيل الوكيل الداخلية وتتبعات القرارات.</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;تعكس الأرقام في هذا المنشور حالة النظام وقت النشر (يناير 2026). راجع &lt;a href=&quot;https://maguyva.ai/ar/team&quot;&gt;صفحة فريقنا&lt;/a&gt; للأرقام الحالية.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;أنظمة الوكلاء معتِمة بالتصميم. تتخذ قرارات، وتستدعي أدوات، وتنسِّق العمل عبر عشرات المتخصصين. لكن عندما يسوء شيء ما — أو عندما تريد ببساطة أن تفهم ما يحدث — أين تنظر؟&lt;/p&gt;
&lt;p&gt;الجواب هو الإفصاح التدريجي: واجهة متعددة الطبقات تكشف بالضبط عن قدر التعقيد الذي تحتاجه، بالضبط عندما تحتاجه.&lt;/p&gt;
&lt;h2 id=&quot;مشكلة-العتامة&quot;&gt;مشكلة العتامة&lt;/h2&gt;
&lt;p&gt;قد يمتلك نظام تنسيق وكلاء حديث:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;أكثر من 40 وكيلًا متخصصًا، لكل منهم قدرات مميزة&lt;/li&gt;
&lt;li&gt;أكثر من 700 مهارة تمتد عبر الأتمتة الداخلية وتكاملات البائعين&lt;/li&gt;
&lt;li&gt;أكثر من 470 قرارًا معماريًا يُشكِّل السلوك&lt;/li&gt;
&lt;li&gt;عشرات خوادم أدوات MCP التي توفِّر قدرات خارجية&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;هذا التعقيد مقصود. يحتاج الوكلاء إلى وصول لسياق غني — معرفة المجال، وذكاء الكود، ومخططات قواعد البيانات — لاتخاذ قرارات جيدة. لكن ذلك الغنى نفسه يخلق مشكلة رؤية.&lt;/p&gt;
&lt;p&gt;كيف تعرف أي وكيل يتعامل مع ترحيلات قاعدة البيانات؟ ما القرارات التي شكَّلت سلوك ترتيب نظام البحث؟ أي الأدوات يستطيع مستشار البنية المعمارية الوصول إليها؟&lt;/p&gt;
&lt;p&gt;دون وصول منظَّم، يُترَك لك قراءة كود المصدر أو الأمل في أن يكون التوثيق حديثًا.&lt;/p&gt;
&lt;h2 id=&quot;الإفصاح-التدريجي-كبنية&quot;&gt;الإفصاح التدريجي كبنية&lt;/h2&gt;
&lt;p&gt;الإفصاح التدريجي ليس مجرد نمط واجهة مستخدم. إنه مبدأ معماري: نظِّم المعلومات في طبقات، كل واحدة أعمق من سابقتها، كي يستطيع المستخدمون التوقف عند المستوى الذي يجيب عن سؤالهم.&lt;/p&gt;
&lt;p&gt;بالنسبة إلى أنظمة الوكلاء، يُترجَم هذا إلى أوامر سطر أوامر بأعماق متزايدة:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;المستوى&lt;/th&gt;
&lt;th&gt;الأمر&lt;/th&gt;
&lt;th&gt;السؤال المُجاب عنه&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra system status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;هل كل شيء سليم؟&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra agents list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;من هم الوكلاء المتاحون؟&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra agents info &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ماذا يفعل هذا الوكيل؟&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra decisions search&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;لماذا يعمل بهذه الطريقة؟&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;أدوات Maguyva MCP&lt;/td&gt;
&lt;td&gt;أرِني الكود.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;يجيب كل مستوى عن سؤال متابعة طبيعي. نادرًا ما تحتاج إلى القفز مباشرة إلى المستوى 5.&lt;/p&gt;
&lt;h2 id=&quot;المستوى-1-سلامة-النظام&quot;&gt;المستوى 1: سلامة النظام&lt;/h2&gt;
&lt;p&gt;السؤال الأول هو دائمًا: هل كل شيء يعمل؟&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; system&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; status&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;agents&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;40&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;skills_internal&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;466&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;skills_vendor&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;240&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;skills_total&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;706&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;commands&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;17&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;أمر واحد. أربعة أرقام. كافٍ لمعرفة أن النظام مُهيَّأ وأن السجلات تحتوي على بيانات.&lt;/p&gt;
&lt;p&gt;إذا انخفض عدد الوكلاء بشكل غير متوقَّع أو فشلت المهارات في التحميل، تراه هنا أولًا. لا حاجة للغوص في السجلات.&lt;/p&gt;
&lt;h2 id=&quot;المستوى-2-جرد-الوكلاء&quot;&gt;المستوى 2: جرد الوكلاء&lt;/h2&gt;
&lt;p&gt;بمجرد أن تعرف أن النظام سليم، السؤال التالي هو: ما المتاح؟&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يُعيد بيانات منظَّمة — أسماء الوكلاء، وأوصافهم، وتفضيلات النموذج، وتغطية المجال. المخرَج JSON افتراضيًا، مما يسهِّل تمريره عبر أنبوب إلى &lt;code&gt;jq&lt;/code&gt; للتصفية:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; jq&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &apos;.agents[] | select(.model == &quot;opus&quot;) | .name&apos;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;تريد وكلاء يتعاملون مع عمل قاعدة البيانات؟ أمر البحث يُضيِّق النطاق:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;database&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يفحص الأسماء، والأوصاف، والقدرات. تجد المتخصص الصحيح دون قراءة 40 تعريف وكيل.&lt;/p&gt;
&lt;h2 id=&quot;المستوى-3-الغوص-العميق-في-الوكيل&quot;&gt;المستوى 3: الغوص العميق في الوكيل&lt;/h2&gt;
&lt;p&gt;وجدت وكيلًا يبدو ذا صلة؟ يكشف أمر &lt;code&gt;info&lt;/code&gt; كل شيء:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; architecture-advisor&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يتضمَّن المخرَج:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;البيانات الوصفية&lt;/strong&gt;: الاسم، والفئة، وتفضيل النموذج، والوصف&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;المجالات&lt;/strong&gt;: أي مجالات معرفة يغطيها هذا الوكيل&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;الهوية&lt;/strong&gt;: سمات الشخصية (architect، strategist، knowledge-architect)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;أدلة الأدوات&lt;/strong&gt;: أي توثيق أدوات يُحقَن في السياق&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;الأدوات&lt;/strong&gt;: القائمة الكاملة لأدوات MCP المتاحة لهذا الوكيل&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;إليك عيّنة مما تراه:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;jsonc&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;metadata&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;name&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;architecture-advisor&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;model&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;opus&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;description&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Strategic decision-making and architectural guidance...&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;domains&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;product&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;development/architecture&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;meta/strategy&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;tools&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;mcp_tools&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &quot;mcp__maguyva__intelligent_search&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &quot;mcp__maguyva__analyze_dependencies&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &quot;mcp__supabase__execute_sql&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FDAEB7;font-style:italic&quot;&gt;      ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يخبرك بالضبط بما يستطيع الوكيل فعله. لا حاجة إلى كود المصدر.&lt;/p&gt;
&lt;h2 id=&quot;المستوى-4-علم-آثار-القرارات&quot;&gt;المستوى 4: علم آثار القرارات&lt;/h2&gt;
&lt;p&gt;يتصرف الوكلاء وفق قرارات موثَّقة. عندما تحتاج إلى فهم &lt;em&gt;لماذا&lt;/em&gt; يعمل شيء ما بطريقة معينة، سجل القرارات هو مصدر الحقيقة.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;agent&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يُعيد القرارات المعمارية المطابقة:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;results&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;DEC-SR-049&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;title&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;AI-Agent-First Defaults with Graph Intelligence&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;search&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;status&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;active&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;لكل قرار سجل منشأ كامل — متى اتُّخذ، ولماذا، وأي مقايضات جرى النظر فيها، وأي إيداعات (commits) نفَّذته:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; DEC-SR-049&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;DEC-SR-049&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;title&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;AI-Agent-First Defaults with Graph Intelligence&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;summary&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Changes default values for search tools to AI-agent-optimal behavior...&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;rationale&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;AI agents work better with pre-ranked, importance-weighted results&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;Graph metrics already computed by pipeline - leverage them&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;Community context helps agents understand feature scope in single query&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;source_commits&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;156a880d05eae295669ef7c194b039023f245511&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;message&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;feat(maguyva): enable boost_by_importance...&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا توثيق معماري يبقى حديثًا لأنه مُعدَّن من الإيداعات، لا مُصانًا يدويًا.&lt;/p&gt;
&lt;h2 id=&quot;المستوى-5-ذكاء-الكود-المباشر&quot;&gt;المستوى 5: ذكاء الكود المباشر&lt;/h2&gt;
&lt;p&gt;عندما تحتاج إلى رؤية التنفيذ الفعلي — لا بيانات وصفية عنه — توفِّر أدوات MCP الخاصة بـMaguyva وصولًا مباشرًا.&lt;/p&gt;
&lt;p&gt;من داخل جلسة وكيل:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mcp__maguyva__intelligent_search&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  query: &quot;agent context loading&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يوجِّه تلقائيًا عبر البحث الدلالي والنصي وAST لإيجاد الكود ذي الصلة. لرموز محدَّدة:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mcp__maguyva__find_symbol&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  symbol_name: &quot;load_agent_context&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;لتحليل التبعيات:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mcp__maguyva__analyze_dependencies&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  target: &quot;packages/orchestration/core/agents.py&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذه ليست مجرد بدائل لـgrep. إنها واعية بالرسم البياني، ومفهرَسة دلاليًا، ومتكاملة مع ذكاء الكود نفسه الذي يُشغِّل الوكلاء أنفسهم.&lt;/p&gt;
&lt;h2 id=&quot;بحث-موحَّد-عبر-السجلات&quot;&gt;بحث موحَّد عبر السجلات&lt;/h2&gt;
&lt;p&gt;أحيانًا لا تعرف أي سجل يحمل الإجابة. البحث الموحَّد يمتد عبر كل شيء:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;database&quot;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --summary&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;query&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;database&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;total&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;254&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;counts&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;agents&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;40&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;skills&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;59&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;decisions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;476&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;truths&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;packages&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;254 تطابقًا عبر خمسة سجلات. يخبرك الملخَّص أين تتعمَّق. أزِل &lt;code&gt;--summary&lt;/code&gt; للنتائج التفصيلية، أو أضِف &lt;code&gt;--limit 5&lt;/code&gt; لإبقاء المخرَج قابلًا للإدارة.&lt;/p&gt;
&lt;h2 id=&quot;لماذا-يهم-هذا&quot;&gt;لماذا يهم هذا&lt;/h2&gt;
&lt;p&gt;الإفصاح التدريجي لا يتعلق فقط بالراحة. إنه يُغيِّر كيفية تفاعلك مع الأنظمة المعقدة.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;يصبح التصحيح ممكنًا عمليًا.&lt;/strong&gt; عندما يتخذ وكيل قرارًا غير متوقَّع، لا تبحث عبر السجلات بـgrep. تتحقق من الأدوات التي يستطيع الوصول إليها (&lt;code&gt;agents info&lt;/code&gt;)، والقرارات التي تُشكِّل سلوكه (&lt;code&gt;decisions search&lt;/code&gt;)، وتتبَّع التنفيذ إن لزم (&lt;code&gt;intelligent_search&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;تتسارع التهيئة الأولية.&lt;/strong&gt; لا يحتاج أعضاء الفريق الجدد إلى قراءة قاعدة الكود بأكملها. يبدؤون بـ&lt;code&gt;system status&lt;/code&gt;، ويستكشفون بـ&lt;code&gt;agents list&lt;/code&gt;، ويتعمَّقون فقط عندما يصادفون شيئًا لا يفهمونه.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;يبقى التوثيق حديثًا.&lt;/strong&gt; لأن سطر الأوامر يقرأ من السجلات نفسها التي تُهيِّئ الوكلاء، المخرَج دقيق دائمًا. لا يوجد انحراف بين ما يقوله التوثيق وما يفعله النظام.&lt;/p&gt;
&lt;h2 id=&quot;سطر-الأوامر-كواجهة&quot;&gt;سطر الأوامر كواجهة&lt;/h2&gt;
&lt;p&gt;كان بإمكاننا بناء لوحة معلومات على الويب. كان بإمكاننا كتابة توثيق مطوَّل. بدلًا من ذلك، بنينا سطر أوامر يقرأ من مصدر الحقيقة.&lt;/p&gt;
&lt;p&gt;لسطر الأوامر مزايا:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;قابل للتركيب&lt;/strong&gt;: وجِّه المخرَج عبر &lt;code&gt;jq&lt;/code&gt;، وادمجه مع السكربتات&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;قابل للبرمجة&lt;/strong&gt;: أتمِت الفحوصات، وولِّد التقارير&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;سريع&lt;/strong&gt;: لا تحميل صفحات، ولا تدفقات مصادقة&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;دقيق&lt;/strong&gt;: يقرأ الإعداد الفعلي، لا تمثيلًا مُخزَّنًا مؤقتًا&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;بالنسبة إلى الأنظمة التي تهم فيها الصحة أكثر من الجمالية، يفوز سطر الأوامر.&lt;/p&gt;
&lt;h2 id=&quot;بناء-إفصاحك-التدريجي-الخاص&quot;&gt;بناء إفصاحك التدريجي الخاص&lt;/h2&gt;
&lt;p&gt;إذا كنت تبني أنظمة وكلاء، فكِّر في كيفية فحص المستخدمين لها:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;ابدأ بفحوصات السلامة.&lt;/strong&gt; أمر واحد يخبرك ما إذا كانت الأمور تعمل.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;وفِّر طرق عرض الجرد.&lt;/strong&gt; اسرد ما هو موجود قبل شرح ما يفعله.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;مكِّن الاستعلامات الموجَّهة.&lt;/strong&gt; البحث يتفوق على التصفح على نطاق واسع.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;اعرض المصدر.&lt;/strong&gt; دَع المستخدمين يتتبَّعون القرارات إلى أصولها.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;اتصل بذكاء الكود.&lt;/strong&gt; في النهاية، يحتاج المستخدمون إلى رؤية التنفيذ.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;تجيب كل طبقة عن سؤال متابعة. ابنِها وفق مدى تكرار استخدامها — يتوقف معظم المستخدمين عند الطبقة 2 أو 3. المستخدمون المتقدِّمون فقط يصلون إلى الطبقة 5.&lt;/p&gt;
&lt;p&gt;الهدف ليس كشف كل شيء. إنه كشف بالضبط ما هو ضروري، بالضبط عندما يكون ضروريًا. هذا هو الإفصاح التدريجي مُطبَّقًا على بنية الوكلاء.&lt;/p&gt;
</content:encoded><category>Architecture</category><category>CLI</category><category>Tooling</category></item><item><title>الحقائق الأساسية (Ground Truths): ترسيخ وكلاء الذكاء الاصطناعي في الواقع</title><link>https://maguyva.ai/ar/blog/ground-truths-anchoring-ai-to-reality</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/ground-truths-anchoring-ai-to-reality</guid><description>يهلوس وكلاء الذكاء الاصطناعي بثقة. الحقائق الأساسية (Ground Truths) هي وقائع خاضعة لإدارة الإصدارات ومحدَّدة النطاق تُرسِّخ سلوك الوكيل في الواقع. إليك كيف بنيناها وكيف نفرضها.</description><pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;تعكس الأرقام في هذا المنشور حالة النظام وقت النشر (يناير 2026). راجع &lt;a href=&quot;https://maguyva.ai/ar/team&quot;&gt;صفحة فريقنا&lt;/a&gt; للأرقام الحالية.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;وكلاء الذكاء الاصطناعي قادرون بشكل ملحوظ. يستطيعون الاستدلال، والتوليف، والتوليد. لكن لديهم ضعفًا جوهريًا: إنهم يختلقون الأشياء. ليس بخبث، بل بثقة. قد يخترع الوكيل معاملات API غير موجودة، أو يشير إلى إعدادات لم تُعرَّف قط، أو يطبِّق أنماطًا من بيانات تدريبه تناقض بنيتك المعمارية الفعلية.&lt;/p&gt;
&lt;p&gt;التخفيف المعتاد هو “امنح الوكيل سياقًا أكثر”. لكن السياق يمكن أن يكون متناقضًا. يبتعد التوثيق عن التنفيذ. التعليقات تكذب. حتى الكود يمكن أن يُضلِّل عندما يُقرَأ دون فهم القصد.&lt;/p&gt;
&lt;p&gt;احتجنا إلى شيء أكثر صراحة. شيء لا يمكن تجاهله أو إساءة تفسيره. شيء يُرسِّخ الوكلاء في واقع قابل للتحقّق.&lt;/p&gt;
&lt;p&gt;نسمّيها الحقائق الأساسية (Ground Truths).&lt;/p&gt;
&lt;h2 id=&quot;ما-هي-الحقيقة-الأساسية&quot;&gt;ما هي الحقيقة الأساسية؟&lt;/h2&gt;
&lt;p&gt;الحقيقة الأساسية هي عبارة واقعية صريحة وخاضعة لإدارة الإصدارات يجب أن يحترمها الوكلاء. إنها ليست توثيقًا. إنها ليست تعليقًا. إنها كيان من الدرجة الأولى في النظام يحتوي على:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;معرِّف فريد&lt;/strong&gt; (مثل &lt;code&gt;GT-MAG-015&lt;/code&gt; أو &lt;code&gt;GT-MAG-036&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;حالة دورة حياة&lt;/strong&gt; (current، أو tentative، أو deprecated)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;نطاق&lt;/strong&gt; (على مستوى المنصة، أو خاص بالحزمة، أو محصور بمجال)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;دليل&lt;/strong&gt; (مسارات ملفات، أو روابط، أو مراجع تُثبِت العبارة)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;توجيه للوكيل&lt;/strong&gt; (تعليمات صريحة بما يجب فعله وما يجب تجنّبه)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;إليك مثالًا من منصة ذكاء الكود Maguyva لدينا:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-015&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  scope&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;package&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Fuzzy symbol matching is opt-in via `find_similar=true`.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Default behavior returns empty results for non-existent symbols;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    `exact_match=true` enforces strict matching and disables all fuzzy fallbacks.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Deterministic defaults prevent agents from receiving misleading results.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Typos should fail explicitly rather than silently returning unrelated symbols.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  evidence&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/maguyva/server/src/maguyva/services/code_analysis_service.py&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/maguyva/server/docs/quick_reference/parameters.md&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_verified&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-25&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;product&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;ai_first&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;principle&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا ليس نثرًا. إنه عقد. عندما يصادف الوكيل هذه الحقيقة الأساسية، فإنه يعرف:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;السلوك الافتراضي حتمي (نتائج فارغة، لا تخمينات قائمة على التشابه)&lt;/li&gt;
&lt;li&gt;توجد معاملات محدَّدة (&lt;code&gt;find_similar&lt;/code&gt;، &lt;code&gt;exact_match&lt;/code&gt;) بسلوكيات مُعرَّفة&lt;/li&gt;
&lt;li&gt;الدليل موجود في ملفات محدَّدة يمكن التحقق منها&lt;/li&gt;
&lt;li&gt;جرى التحقق من العبارة في تاريخ محدَّد&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;تشريح-سجل-الحقائق-الأساسية&quot;&gt;تشريح سجل الحقائق الأساسية&lt;/h2&gt;
&lt;p&gt;تعيش الحقائق الأساسية في سجلات YAML تحت &lt;code&gt;ai_assets/reference/ground_truths.yaml&lt;/code&gt;. يمكن أن تمتلك كل حزمة أو مجال سجله الخاص. البنية هي:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;metadata&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Maguyva Ground Truths&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  summary&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Foundational constraints and principles that guide Maguyva.&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_updated&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-26&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  owner&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;maguyva&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  render&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    include_statuses&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;tentative&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    show_deprecated&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    groups&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Product Principles&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;        tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;product&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;principle&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;brand&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Architecture &amp;amp; Boundaries&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;        tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;architecture&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;boundaries&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;cqrs&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;statements&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-001&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    scope&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;package&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Maguyva is read-only with respect to user repositories...&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يتضمن السجل بيانات وصفية عن المجموعة نفسها، وإعداد العرض لتوليد التوثيق، والعبارات نفسها. تتبع كل عبارة مخططًا صارمًا يُتحقَّق منه بنماذج Pydantic:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; GroundTruthStatement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;BaseModel&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    status: GTStatus  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# current, tentative, deprecated&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    source: GTSource &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # claude-code, orkestra, discipline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    scope: GTScope  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# platform, package, domain&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    statement: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    rationale: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    evidence: list[&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    last_verified: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    tags: list[&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    agent_guidance: AgentGuidance &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;كيف-يصل-الوكلاء-إلى-الحقائق-الأساسية&quot;&gt;كيف يصل الوكلاء إلى الحقائق الأساسية&lt;/h2&gt;
&lt;p&gt;تُعرَض الحقائق الأساسية عبر قنوات متعددة:&lt;/p&gt;
&lt;h3 id=&quot;1-التوثيق-المُصيَّر&quot;&gt;1. التوثيق المُصيَّر&lt;/h3&gt;
&lt;p&gt;يحوِّل أمر &lt;code&gt;orkestra sync&lt;/code&gt; سجلات YAML إلى markdown قابل للقراءة:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يُولِّد ملفات &lt;code&gt;GROUND_TRUTHS.md&lt;/code&gt; تُدرَج ضمن سياق الوكيل. يُجمِّع المخرَج المُصيَّر العبارات حسب الحالة والفئة:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;markdown&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF;font-weight:bold&quot;&gt;## Current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF;font-weight:bold&quot;&gt;### Product Principles&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Maguyva is read-only with respect to user repositories... (GT-MAG-001)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Design tool responses for AI agents first... (GT-MAG-009)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF;font-weight:bold&quot;&gt;### Architecture &amp;amp; Boundaries&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Pipeline and Maguyva boundaries are intentional... (GT-MAG-006)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;2-بحث-سطر-الأوامر-cli&quot;&gt;2. بحث سطر الأوامر (CLI)&lt;/h3&gt;
&lt;p&gt;يستطيع الوكلاء ذوو وصول إلى مفسّر الأوامر (shell) البحث عن الحقائق الأساسية برمجيًا:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; truths&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;embedding&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; truths&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --tag&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; security&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; truths&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --status&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; current&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;تُقيِّم دالة البحث التطابقات عبر حقول متعددة بأهمية نسبية موزونة:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; truth_fields&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(gt: GroundTruthStatement) -&amp;gt; list[FieldSpec]:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;6&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[gt.id]),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;statement&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[gt.statement]),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;rationale&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[gt.rationale] &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; gt.rationale &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; []),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;tags&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;gt.tags &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; []),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;evidence&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;gt.evidence &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; []),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;3-تركيب-السياق&quot;&gt;3. تركيب السياق&lt;/h3&gt;
&lt;p&gt;عندما تُصيَّر تعريفات الوكلاء من YAML، يمكن لسياقهم أن يشير إلى سجلات الحقائق الأساسية:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;context_composition&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  domain_knowledge&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/maguyva/ai_assets/reference/ground_truths.yaml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يضمن تحميل الحقائق الأساسية ذات الصلة قبل أن يبدأ الوكيل العمل.&lt;/p&gt;
&lt;h2 id=&quot;فئات-الحقائق-الأساسية&quot;&gt;فئات الحقائق الأساسية&lt;/h2&gt;
&lt;p&gt;عند النظر عبر سجلاتنا، تتجمَّع الحقائق الأساسية في عدة أنماط:&lt;/p&gt;
&lt;h3 id=&quot;مبادئ-المنتج&quot;&gt;مبادئ المنتج&lt;/h3&gt;
&lt;p&gt;قيود على ما هو عليه المنتج وما ليس عليه:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Maguyva is read-only with respect to user repositories; the only non-rebuildable asset is the paid embeddings cache.” (GT-MAG-001)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;حدود-البنية-المعمارية&quot;&gt;حدود البنية المعمارية&lt;/h3&gt;
&lt;p&gt;أين تعيش المسؤوليات ولماذا:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Pipeline and Maguyva boundaries are intentional: pipeline is reusable, Maguyva holds code-specific logic, and CQRS separates stage writes from server reads.” (GT-MAG-006)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;قواعد-مكافحة-الهلوسة&quot;&gt;قواعد مكافحة الهلوسة&lt;/h3&gt;
&lt;p&gt;توجيهات إلزامية صريحة تُبقي عقود الأدوات حتمية بدلًا من مُستنتَجة:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Fuzzy symbol matching is opt-in via &lt;code&gt;find_similar=true&lt;/code&gt;. Default behavior returns empty results for non-existent symbols; &lt;code&gt;exact_match=true&lt;/code&gt; enforces strict matching and disables all fuzzy fallbacks.” (GT-MAG-015)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;بوابات-الجودة&quot;&gt;بوابات الجودة&lt;/h3&gt;
&lt;p&gt;معايير يجب الحفاظ عليها:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Changes to shared infrastructure (post_filters.py, relationship extractors, shared handlers) MUST be validated against ALL supported languages via full manifest generation before commit. A single-language validation is insufficient for shared code.” (GT-MAG-036)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;أنماط-الكود&quot;&gt;أنماط الكود&lt;/h3&gt;
&lt;p&gt;متطلبات التنفيذ:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Use &lt;code&gt;asyncio.to_thread()&lt;/code&gt; for CPU-bound work in async contexts; the deprecated &lt;code&gt;loop.run_in_executor()&lt;/code&gt; pattern should not be used in new code.” (GT-MAG-018)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;دورة-حياة-الحقيقة-الأساسية&quot;&gt;دورة حياة الحقيقة الأساسية&lt;/h2&gt;
&lt;p&gt;الحقائق الأساسية ليست ثابتة. تتطور عبر دورة حياة مُعرَّفة:&lt;/p&gt;
&lt;h3 id=&quot;مبدئية-tentative&quot;&gt;مبدئية (Tentative)&lt;/h3&gt;
&lt;p&gt;حقيقة مقترَحة قيد التقييم. تُسجَّل العبارة لكنها قد تتغيّر:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-044&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;tentative&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    get_file with include_metadata=false may still return metadata in the&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    response because middleware may re-inject it for AI agent disambiguation.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;حالية-current&quot;&gt;حالية (Current)&lt;/h3&gt;
&lt;p&gt;حقيقة مُتحقَّق منها يجب أن يحترمها الوكلاء. جرى التحقق من الدليل:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-017&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_verified&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-26&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  evidence&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/maguyva/server/src/maguyva/services/supabase.py&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;مُتقادِمة-deprecated&quot;&gt;مُتقادِمة (Deprecated)&lt;/h3&gt;
&lt;p&gt;حقيقة لم تعد تنطبق. تُبقى للمرجعية التاريخية مع إشارة إلى ما حلّ محلها:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-099&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;deprecated&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  superseded_by&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-015&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  notes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Replaced when we moved to explicit matching behavior&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;لماذا-لا-يكفي-التوثيق-فقط&quot;&gt;لماذا لا يكفي التوثيق فقط؟&lt;/h2&gt;
&lt;p&gt;يخدم التوثيق غرضًا مختلفًا. إنه يشرح. إنه يعلِّم. يمكن أن يكون غامضًا، ويمكن أن يستخدم مؤهِّلات مثل “عمومًا” أو “عادةً”.&lt;/p&gt;
&lt;p&gt;لا يمكن أن تكون الحقائق الأساسية غامضة. إنها تأكيدات. إما أن تنطبق أو لا تنطبق.&lt;/p&gt;
&lt;p&gt;تأمَّل الفرق:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;التوثيق:&lt;/strong&gt; “تُعيد الواجهة البرمجية (API) عمومًا نتائج فارغة عندما لا يُعثَر على رمز، رغم أن المطابقة التقريبية قد تكون مُفعَّلة في بعض الإعدادات.”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;الحقيقة الأساسية:&lt;/strong&gt; “السلوك الافتراضي يُعيد نتائج فارغة للرموز غير الموجودة؛ &lt;code&gt;exact_match=true&lt;/code&gt; يفرض المطابقة الصارمة ويُعطِّل كل بدائل المطابقة التقريبية.”&lt;/p&gt;
&lt;p&gt;الأول مفيد للبشر الذين يتعلمون النظام. الثاني قابل للتنفيذ للوكلاء الذين يتخذون القرارات.&lt;/p&gt;
&lt;h2 id=&quot;توجيه-الوكيل-افعل-وتجنّب&quot;&gt;توجيه الوكيل: افعل وتجنّب&lt;/h2&gt;
&lt;p&gt;تتضمن بعض الحقائق الأساسية توجيهًا صريحًا للوكيل:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-022&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Accuracy fixes must happen at extraction time via production code,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    never via validator filters.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  agent_guidance&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    do&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Fix extraction bugs in YAML config, handlers, or tree-sitter queries&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Add test cases at the layer where the fix lives&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    avoid&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Adding validator filters to mask production bugs&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Creating test-only workarounds for extraction issues&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يُزيل الغموض. الوكيل الذي يقرأ هذا يعرف ليس فقط ما هو صحيح، بل الإجراءات التي تستلزمها تلك الحقيقة.&lt;/p&gt;
&lt;h2 id=&quot;التحقق-والصيانة&quot;&gt;التحقق والصيانة&lt;/h2&gt;
&lt;p&gt;تتطلب الحقائق الأساسية صيانة. نتتبَّع:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;last_verified&lt;/strong&gt;: متى أكَّد أحدهم أن العبارة لا تزال صحيحة&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;evidence&lt;/strong&gt;: الملفات التي تُثبِت العبارة (يمكن التحقق من وجودها)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;source&lt;/strong&gt;: من أين نشأت الحقيقة (فحص سطر الأوامر، مراجعة معمارية، تعلُّم بعد حادثة)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;حقيقة أساسية بتواريخ تحقق قديمة أو روابط دليل معطَّلة هي إشارة للتحقيق. إما أن الحقيقة لا تزال صالحة وتحتاج إعادة تحقق، أو أن الواقع تغيَّر وتحتاج الحقيقة إلى تحديث.&lt;/p&gt;
&lt;h2 id=&quot;أمثلة-حقيقية-من-الإنتاج&quot;&gt;أمثلة حقيقية من الإنتاج&lt;/h2&gt;
&lt;h3 id=&quot;حدود-الأمان&quot;&gt;حدود الأمان&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-014&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Maguyva queries are search patterns, not executable code.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    SQL injection prevention is handled by PostgREST parameterization;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    application-layer SQL keyword blocking must never be added.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Blocking SQL keywords breaks legitimate code search. Users search FOR&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    code containing patterns like &apos;DROP TABLE&apos;, they don&apos;t execute them.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;تمنع هذه الحقيقة الأساسية فئة من “تحسينات الأمان” المضلَّلة التي كانت ستُعطِّل المنتج.&lt;/p&gt;
&lt;h3 id=&quot;دقة-وقت-الاستخلاص&quot;&gt;دقة وقت الاستخلاص&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-022&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Accuracy fixes must happen at extraction time via production code&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    (YAML config, handlers, queries), never via validator filters.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Validator filters only run during tests. They can hide extractor bugs&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    while production responses remain wrong.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;جاء هذا من تجربة مؤلمة. كان الوكلاء يرقِّعون حزم اللغات الفاشلة بإضافة مرشِّحات خاصة بالمُتحقِّق فقط تجعل نتائج منظومة الاختبار تبدو أفضل، بينما لا يزال مُستخلِص Maguyva الحي يُصدر الحواف الخاطئة. تفرض القاعدة إعادة الإصلاحات إلى المسار الحقيقي: إعداد YAML، أو الاستعلامات، أو المعالِجات.&lt;/p&gt;
&lt;h3 id=&quot;التصفية-متعددة-الطبقات&quot;&gt;التصفية متعددة الطبقات&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-023&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Language engine uses three-tier filtering: external_method_patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    (builtins/stdlib), allowlists (legitimate idioms), and expected_call_targets&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    (validation-time deduplication). Each tier serves a distinct purpose.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Conflating filter purposes leads to either over-filtering (missing real&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    relationships) or under-filtering (noise).&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا يمنع الوكلاء من إضافة مرشِّحات في المكان الخطأ، وهو خطأ شائع تسبَّب في تراجعات في الدقة.&lt;/p&gt;
&lt;h2 id=&quot;التكامل-مع-نظام-التنسيق&quot;&gt;التكامل مع نظام التنسيق&lt;/h2&gt;
&lt;p&gt;الحقائق الأساسية طبقة واحدة من نظام سياق أوسع:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;القرارات المعمارية (ADRs)&lt;/strong&gt; - تُسجِّل لماذا اخترنا النهج A بدلًا من B&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;الحقائق الأساسية&lt;/strong&gt; - تنص على ما هو صحيح قطعيًا الآن&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;أنماط المجال&lt;/strong&gt; - تصف كيفية فعل الأشياء بشكل صحيح&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;الأنماط المضادة&lt;/strong&gt; - تصف ما يجب تجنّبه ولماذا&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;الوكيل الذي يعمل في النظام لديه وصول إلى الأربعة جميعًا. توفِّر الحقائق الأساسية المرساة الواقعية، بينما تشرح القرارات التاريخ، وتوجِّه الأنماط التنفيذ، وتحذِّر الأنماط المضادة من المزالق.&lt;/p&gt;
&lt;h2 id=&quot;قياس-الأثر&quot;&gt;قياس الأثر&lt;/h2&gt;
&lt;p&gt;منذ تقديم الحقائق الأساسية، لاحظنا:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;دورات أقل من “أصلِح الإصلاح المُهلوَس”&lt;/li&gt;
&lt;li&gt;اتخاذ قرارات أكثر ثقة من الوكلاء عندما تكون الوقائع واضحة&lt;/li&gt;
&lt;li&gt;مراجعات طلبات سحب (PR) أفضل لأن التوقعات صريحة&lt;/li&gt;
&lt;li&gt;وقت تهيئة أقصر للوكلاء الجدد (والبشر أيضًا)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;يُؤتي الاستثمار في صيانة الحقائق الأساسية ثماره بتقليل التصحيح وتوضيح حدود النظام.&lt;/p&gt;
&lt;h2 id=&quot;البدء&quot;&gt;البدء&lt;/h2&gt;
&lt;p&gt;لإضافة حقيقة أساسية إلى نظامك:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;أنشئ &lt;code&gt;ground_truths.yaml&lt;/code&gt; في دليل &lt;code&gt;ai_assets/reference/&lt;/code&gt; الخاص بحزمتك&lt;/li&gt;
&lt;li&gt;عرِّف البيانات الوصفية وإعداد العرض&lt;/li&gt;
&lt;li&gt;أضِف العبارات وفق المخطط&lt;/li&gt;
&lt;li&gt;شغِّل &lt;code&gt;uv run orkestra sync&lt;/code&gt; لتوليد التوثيق&lt;/li&gt;
&lt;li&gt;أدرِج السجل ضمن تركيب سياق الوكيل&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ابدأ بالوقائع التي تسبِّب أكبر قدر من الالتباس، أو القيود التي تُنتهَك أكثر من غيرها. تلك هي حقائقك الأساسية الأعلى قيمة.&lt;/p&gt;
&lt;h2 id=&quot;الخاتمة&quot;&gt;الخاتمة&lt;/h2&gt;
&lt;p&gt;سيهلوس وكلاء الذكاء الاصطناعي. تلك طبيعتهم. لكن يمكننا خلق بيئات تُقيَّد فيها الهلوسة، حيث تكون وقائع معينة غير قابلة للتفاوض، وحيث يستطيع الوكلاء التحقق من افتراضاتهم مقابل واقع مُتحقَّق منه.&lt;/p&gt;
&lt;p&gt;الحقائق الأساسية ليست حلًا كاملًا. تتطلب صيانة. يمكن أن تصبح قديمة. تضيف عبئًا إضافيًا إلى عملية التطوير.&lt;/p&gt;
&lt;p&gt;لكنها توفِّر شيئًا قيّمًا: مفردات مشتركة من الوقائع يمكن للبشر والوكلاء أن يثقوا بها. في عالم يشارك فيه الوكلاء بشكل متزايد في تطوير البرمجيات، يصبح ذلك الأساس المشترك ضروريًا.&lt;/p&gt;
&lt;p&gt;البديل هو دورات لا نهاية لها من الوكلاء الذين يرتكبون أخطاء بثقة والبشر الذين يصحِّحونها. تكسر الحقائق الأساسية تلك الدورة بجعل التصحيحات صريحة ودائمة.&lt;/p&gt;
&lt;p&gt;وكلاؤك يستحقون معرفة ما هو صحيح. أخبِرهم.&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Grounding</category></item><item><title>Orkestra: تنسيق وكلاء الذكاء الاصطناعي على نطاق واسع</title><link>https://maguyva.ai/ar/blog/orkestra-agent-orchestration</link><guid isPermaLink="true">https://maguyva.ai/ar/blog/orkestra-agent-orchestration</guid><description>يوجِّه منسِّق واحد العمل إلى وكلاء ذكاء اصطناعي متخصصين، لكل منهم مهارات وذاكرة مميزة. كيف ينسِّق Orkestra 46 وكيلًا و466 مهارة في الإنتاج.</description><pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;تعكس الأرقام في هذا المنشور حالة النظام وقت النشر (يناير 2026). راجع &lt;a href=&quot;https://maguyva.ai/ar/team&quot;&gt;صفحة فريقنا&lt;/a&gt; للأرقام الحالية.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;عندما بدأنا البناء باستخدام Claude Code، واجهنا مشكلة يواجهها في النهاية كل فريق يستخدم مساعدي البرمجة بالذكاء الاصطناعي: لا يستطيع وكيل واحد أن يفعل كل شيء بإتقان.&lt;/p&gt;
&lt;p&gt;يمكنك أن تطلب من وكيل أن يكون متخصص قواعد بيانات. أو مدقِّق أمان. أو مهندس واجهة أمامية. لكن في اللحظة التي تطلب منه أن يكون الثلاثة معًا، تتراجع الجودة. يتشتت السياق. تتعارض التعليمات. يصبح الوكيل غير متخصص، ومتوسط الأداء في كل شيء.&lt;/p&gt;
&lt;p&gt;لذا بنينا Orkestra.&lt;/p&gt;
&lt;h2 id=&quot;ما-هو-orkestra&quot;&gt;ما هو Orkestra؟&lt;/h2&gt;
&lt;p&gt;Orkestra نظام تنسيق وكلاء لـClaude Code وأدوات البرمجة المماثلة بالذكاء الاصطناعي. ينسِّق وكلاء متخصصين متعددين، لكل منهم خبرة مميزة، تحت منسِّق واحد يوجِّه العمل إلى المتخصص الصحيح.&lt;/p&gt;
&lt;p&gt;تخيَّله كوكالة توظيف لوكلاء الذكاء الاصطناعي. يتلقى المنسِّق مهمة، ويحدِّد أي متخصص ينبغي أن يتولاها، ويُفوِّض إليه بالسياق الصحيح. عندما ينتهي العمل، تتدفق النتائج مرة أخرى إلى المنسِّق للتوليف.&lt;/p&gt;
&lt;p&gt;تحكي الأرقام القصة:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;المكوِّن&lt;/th&gt;
&lt;th&gt;العدد&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;الوكلاء المتخصصون&lt;/td&gt;
&lt;td&gt;46&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;المهارات القابلة لإعادة الاستخدام&lt;/td&gt;
&lt;td&gt;466&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;أنماط الهوية الأصلية&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;العقليات (Mindsets)&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;أساليب التواصل&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;مجالات المعرفة&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;نظام-الشخصية-dd-للوكلاء&quot;&gt;نظام الشخصية: D&amp;amp;D للوكلاء&lt;/h2&gt;
&lt;p&gt;البصيرة الأساسية وراء Orkestra هي أن سلوك الوكيل ينبثق من ثلاثة عناصر أولية قابلة للتركيب:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;الهوية (Identity)&lt;/strong&gt; تُحدِّد &lt;em&gt;ماهية&lt;/em&gt; الوكيل. المعماري (architect) يصمِّم بنى الأنظمة. مصحِّح الأخطاء (debugger) يتتبَّع الإخفاقات إلى أسبابها الجذرية. الحارس (guardian) يفرض الامتثال وحدود الأمان. لدينا 27 نمطًا أصليًا للهوية يمكن مزجها.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;العقلية (Mindset)&lt;/strong&gt; تُحدِّد &lt;em&gt;كيفية&lt;/em&gt; تفكير الوكيل. العقلية التحليلية تُرسِّخ التأكيدات في الأدلة وتُقدِّر عدم اليقين كميًا. العقلية المتشكِّكة تُشكِّك في الافتراضات وتبحث عن أدلة نقض. العقلية الاستكشافية تتبنّى الغموض وتُجرِّب مناهج متعددة.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;الأسلوب (Style)&lt;/strong&gt; يُحدِّد &lt;em&gt;كيفية&lt;/em&gt; تواصل الوكيل. الأسلوب التقني يتضمَّن قيمًا دقيقة ويشير إلى ملفات محدَّدة. الأسلوب الموجَز يحذف الحشو ويبدأ بالإجابة. الأسلوب الدبلوماسي يوازن بين الصراحة واللباقة.&lt;/p&gt;
&lt;p&gt;يجمع الوكيل بين هذه العناصر الأولية:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# architecture-advisor.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;identity&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;knowledge-architect&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;architect&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;strategist&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;mindset&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;analytical&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;concise&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;هذا التركيب يُنشئ وكيلًا يصمِّم الأنظمة (architect)، ويربط المعرفة عبر المجالات (knowledge-architect)، ويضع التوجه الاستراتيجي (strategist)، ويفكِّر بالأدلة والبيانات (analytical)، ويتواصل دون حشو (concise).&lt;/p&gt;
&lt;p&gt;القوة تكمن في الانفجار التوافقي. 27 هوية × 11 عقلية × 10 أساليب يُنتج نحو 3,000 شخصية وكيل ممكنة. لكنك تُعرِّف فقط التوليفات المهمة لعملك.&lt;/p&gt;
&lt;h2 id=&quot;المهارات-وحدات-قدرة-قابلة-لإعادة-الاستخدام&quot;&gt;المهارات: وحدات قدرة قابلة لإعادة الاستخدام&lt;/h2&gt;
&lt;p&gt;المهارات هي المعرفة وسير العمل التي يستطيع الوكلاء استدعاءها. تتبع نظامًا متدرِّجًا حسب النطاق:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;الطبقة&lt;/th&gt;
&lt;th&gt;الاسم&lt;/th&gt;
&lt;th&gt;النطاق&lt;/th&gt;
&lt;th&gt;مثال&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;K0&lt;/td&gt;
&lt;td&gt;الأساسيات&lt;/td&gt;
&lt;td&gt;منهجية عالمية&lt;/td&gt;
&lt;td&gt;انضباط الاختبار أولًا، الإنجاز القائم على الأدلة&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K1&lt;/td&gt;
&lt;td&gt;الهويات&lt;/td&gt;
&lt;td&gt;سير عمل قائم على الدور&lt;/td&gt;
&lt;td&gt;معايير واجهة سطر الأوامر، دليل الأداء&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K2&lt;/td&gt;
&lt;td&gt;المجالات&lt;/td&gt;
&lt;td&gt;معرفة خاصة بالمجال&lt;/td&gt;
&lt;td&gt;أنماط ترحيل قواعد البيانات، التحقق من المصادقة&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K3&lt;/td&gt;
&lt;td&gt;المكدسات (Stacks)&lt;/td&gt;
&lt;td&gt;خاص بالتقنية&lt;/td&gt;
&lt;td&gt;نشر Cloudflare، عمليات Supabase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K4&lt;/td&gt;
&lt;td&gt;المشروع&lt;/td&gt;
&lt;td&gt;خاص بقاعدة الكود هذه فقط&lt;/td&gt;
&lt;td&gt;سير عمل وأعراف خاصة بالمشروع&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;تُحمَّل المهارات عند الحاجة. يرى الوكيل أسماء المهارات وأوصافها عند بدء التشغيل، لكن محتوى المهارة الكامل لا يُحمَّل إلا عند تفعيله. هذا يُبقي السياق خفيفًا مع جعل مئات المهارات قابلة للاكتشاف.&lt;/p&gt;
&lt;p&gt;تتضمن كل مهارة:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;شروط تفعيل واضحة (“استخدم عند ترحيل مخططات قاعدة البيانات”)&lt;/li&gt;
&lt;li&gt;توجيهًا خطوة بخطوة&lt;/li&gt;
&lt;li&gt;الأدوات المسموح بها لسير العمل&lt;/li&gt;
&lt;li&gt;معايير النجاح ومسارات التعافي من الفشل&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;تُغطِّي الـ466 مهارة في سجلنا كل شيء من عزل شجرة عمل git إلى سير عمل البحث على الويب إلى التحقق من صحة النشر.&lt;/p&gt;
&lt;h2 id=&quot;لماذا-يهم-التنسيق&quot;&gt;لماذا يهم التنسيق&lt;/h2&gt;
&lt;p&gt;تصطدم بنى الوكيل الواحد بالجدران بسرعة:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;تشتت السياق.&lt;/strong&gt; نافذة سياق بـ200 ألف رمز تبدو كبيرة حتى تُحمِّل مخططات قواعد البيانات، وتوثيق API، وتجهيزات الاختبار، ومعرفة المجال. يستطيع المتخصصون العمل بسياق موجَّه.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;تعارضات التعليمات.&lt;/strong&gt; أن تطلب من وكيل “كن دقيقًا لكن سريعًا” و“تحقق من كل شيء لكن لا تُفرِط في الهندسة” يخلق توترًا. يحلّ المتخصصون هذا بامتلاك نطاق واضح.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;عمق الخبرة.&lt;/strong&gt; يعرف الوكيل العام القليل عن كل شيء. الوكيل المتخصص، المُركَّب بالهوية والمهارات الصحيحة، يعرف مجاله بعمق.&lt;/p&gt;
&lt;p&gt;يُنفِّذ Orkestra تنسيقًا مسطَّحًا: منسِّق واحد ينسِّق متخصصين متعددين. لا يستطيع المتخصصون توليد متخصصين فرعيين. هذا يمنع انفجار التعقيد مع تمكين العمل المتوازي.&lt;/p&gt;
&lt;p&gt;يمتلك المنسِّق وصولًا إلى سعة فعلية تبلغ 2.2 مليون رمز: نافذته الخاصة البالغة 200 ألف رمز بالإضافة إلى 10 وكلاء فرعيين متزامنين بـ200 ألف رمز لكل منهم. يُنجَز العمل الذي كان سيُنهك وكيلًا واحدًا بسهولة عند توزيعه على الأسطول.&lt;/p&gt;
&lt;h2 id=&quot;خط-أنابيب-التصيير&quot;&gt;خط أنابيب التصيير&lt;/h2&gt;
&lt;p&gt;تعيش تعريفات الوكلاء في YAML. يقرأ Claude Code Markdown. يسدّ Orkestra هذه الفجوة بخط أنابيب تصيير حتمي:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;YAML Registries → Jinja Templates → .claude/agents/*.md&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;يحرِّر المشغِّلون مصدر YAML. شغِّل &lt;code&gt;orkestra sync&lt;/code&gt;. يظهر Markdown المُصيَّر في &lt;code&gt;.claude/agents/&lt;/code&gt;. يلتقط Claude Code التغييرات.&lt;/p&gt;
&lt;p&gt;يخدم هذا الفصل جمهورين مختلفين:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;مصدر YAML&lt;/strong&gt; يتضمَّن بيانات وصفية لدورة الحياة، وعلامات، وقواعد تحقق، وملاحظات تقادم للأدوات&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Markdown المُصيَّر&lt;/strong&gt; يتضمَّن فقط ما يحتاجه النموذج: الوصف، والأدوات، والمهارات، والتوجيه السلوكي&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;يُركِّب خط الأنابيب الهويات، والعقليات، والأساليب، والمهارات في مطالبة واحدة متماسكة. يحصل وكيل architect-analytical-concise على مطالبة نظام مختلفة تمامًا عن وكيل debugger-skeptical-technical، حتى إن تشاركا بعض المهارات الأساسية.&lt;/p&gt;
&lt;h2 id=&quot;معرفة-المجال-نمط-الملفات-الأربعة&quot;&gt;معرفة المجال: نمط الملفات الأربعة&lt;/h2&gt;
&lt;p&gt;يتبع كل مجال معرفة بنية متسقة:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;domain-name/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  decisions.md      # Key choices, rationale, consequences&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  patterns.md       # Step-by-step guidance and examples&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  anti-patterns.md  # Failure modes and remediation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  evolution.md      # Dated log of changes&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;تخدم هذه البنية تحميل سياق الوكيل. يُحمِّل وكيل يعمل على المصادقة &lt;code&gt;authentication/patterns.md&lt;/code&gt; للتوجيه و&lt;code&gt;authentication/anti-patterns.md&lt;/code&gt; لتجنّب المزالق المعروفة. الملفات مُحجَّمة لتحميل سياق كفء: مركَّزة بما يكفي لتكون مفيدة، وشاملة بما يكفي لتكون موثوقة.&lt;/p&gt;
&lt;p&gt;نحافظ على 21 مجالًا رئيسيًا تتضمَّن التحليلات، والمصادقة، وعلوم البيانات، والبنية التحتية، والتعلم الآلي، والأداء، والأمان، وغيرها. يمكن أن يمتلك كل مجال مجالات فرعية لتفصيل أدق.&lt;/p&gt;
&lt;h2 id=&quot;القيم-نظام-التشغيل&quot;&gt;القيم: نظام التشغيل&lt;/h2&gt;
&lt;p&gt;يتشارك جميع الوكلاء طبقة أساسية من القيم تُحدِّد كيفية عملهم:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;البساطة أولًا.&lt;/strong&gt; استخدم أبسط حل يعمل. أضِف تعقيدًا فقط عندما يكون مُبرَّرًا.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;أصلِح الأسباب الجذرية.&lt;/strong&gt; لا ترقِّع أبدًا حول الإخفاقات. إذا فشل خط أنابيب، صحِّح خط الأنابيب. إذا فشل اختبار، أصلِح الكود أو الاختبار.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;قائم على الأدلة.&lt;/strong&gt; صنِّف الادعاءات كـ“مُتحقَّق منها” (بمعايير قياسية) أو “مُقدَّرة” (بافتراضات). اكتشاف نمط لا يساوي تأكيد مشكلة.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;اقتصاديات السياق.&lt;/strong&gt; تكلِّف أدوات MCP 0.1% من السياق. تكلِّف قراءات الملفات 2% لكل واحدة. طبِّق خبرة المجال قبل استكشاف الكود.&lt;/p&gt;
&lt;p&gt;تنتشر هذه القيم إلى كل متخصص عبر خط أنابيب التصيير. لا يستطيع وكيل تجاوزها بالتركيب.&lt;/p&gt;
&lt;h2 id=&quot;سطر-الأوامر-مستوى-التحكّم&quot;&gt;سطر الأوامر: مستوى التحكّم&lt;/h2&gt;
&lt;p&gt;يأتي Orkestra مع سطر أوامر لإدارة نظام الوكلاء البيئي:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Discovery&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;database&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; database-architect&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Validation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; validate&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --show-warnings&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Rendering&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --dry-run&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; skills&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; skills&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; schema-migration-workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Decisions&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;authentication&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;سطر الأوامر هو مصدر الحقيقة للوكلاء المتاحين، والمهارات التي يمتلكونها، وما إذا كان النظام سليمًا. يُشغِّل التحقق قبل المزامنة لاكتشاف المشكلات مبكرًا.&lt;/p&gt;
&lt;h2 id=&quot;اعتبارات-المصدر-المفتوح&quot;&gt;اعتبارات المصدر المفتوح&lt;/h2&gt;
&lt;p&gt;بنينا Orkestra لحل مشكلتنا الخاصة: تنسيق وكلاء الذكاء الاصطناعي على نطاق واسع لقاعدة كود معقدة. الأنماط التي اكتشفناها ليست خاصة بمجالنا.&lt;/p&gt;
&lt;p&gt;يُطبَّق نظام تركيب الشخصية (الهوية + العقلية + الأسلوب) على أي فريق يُعرِّف شخصيات الوكلاء.&lt;/p&gt;
&lt;p&gt;يوفِّر نظام طبقات المهارات (K0-K4) نموذجًا ذهنيًا لتنظيم القدرات القابلة لإعادة الاستخدام حسب النطاق.&lt;/p&gt;
&lt;p&gt;يفصل نمط خط أنابيب التصيير (مصدر YAML + قوالب + نواتج مُولَّدة) الاهتمامات بين الأدوات واستهلاك النموذج.&lt;/p&gt;
&lt;p&gt;يتجنب نموذج التنسيق المسطَّح (منسِّق واحد، متخصصون كثيرون) التعقيد مع تمكين التوازي.&lt;/p&gt;
&lt;p&gt;ما إذا كان Orkestra سيصبح مفتوح المصدر يعتمد على ما إذا كانت هذه الأنماط ذات قيمة لآخرين يبنون باستخدام Claude Code. إذا كنت تصطدم بالجدران التي وصفناها، فقد تساعدك هذه البنية.&lt;/p&gt;
&lt;h2 id=&quot;ما-تعلمناه&quot;&gt;ما تعلمناه&lt;/h2&gt;
&lt;p&gt;علَّمنا بناء Orkestra أن التنسيق لا يدور حول جعل الوكلاء أذكى. إنه يدور حول جعلهم أكثر تركيزًا.&lt;/p&gt;
&lt;p&gt;وكيل واحد بتعليمات مثالية لا يزال ينفد سياقه. وكيل واحد بكل المهارات لا يزال يرتبك بشأن أيها يُطبِّق. وكيل واحد يحاول أن يكون كل شيء يُنتج نتائج متوسطة في كل مكان.&lt;/p&gt;
&lt;p&gt;أربعون متخصصًا، كل منهم ممتاز في مجاله، ينسِّقهم منسِّق يعرف متى يُفوِّض: هكذا نُنجز العمل ونُطلقه.&lt;/p&gt;
&lt;p&gt;الأرقام أقل أهمية من البنية. قد تحتاج إلى خمسة وكلاء أو خمسين. المبدأ يبقى: التركيب فوق القدرة، والتخصص فوق التعميم، والتنسيق فوق البطولات الفردية.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;يُشغِّل Orkestra نظام الوكلاء البيئي خلف Maguyva، منصة ذكاء الكود لدينا. تريد معرفة المزيد؟ تواصل مع الفريق.&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Open Source</category></item></channel></rss>