Ruby on Rails
AI-assisted summary of Agent-Proof Your Rails App: Your Codebase Is the Prompt - Kinsey Durham Grace — original source. Check the original for full context.
Source published:
Key ideas
- تتسع فجوة الثقة في وكلاء البرمجة حيث يستخدم 84% من المطورين الذكاء الاصطناعي لكتابة الأكواد بينما يثق 29% فقط بمخرجاته، بالتزامن مع قفز نسبة التعارضات فوق 41% عند تشغيل وكيلين معاً. (0:11)
- أثبت معيار مؤسسة Rails أن النماذج الرائدة تحل ما بين 73% إلى 92% من المهام الذرية، مما يؤكد أن إخفاقات الوكلاء لا ترجع لضعف قدرتهم البرمجية بل للمعرفة الضمنية غير المكتوبة في المستودع. (10:18)
- أظهرت القياسات المعمارية تفوق الأنظمة المتجانسة المعيارية على الخدمات المصغرة في بيئات الوكلاء بنتيجة 97.7 مقابل 70.7، مع انخفاض بنسبة 40% في عدد استدعاءات الأدوات اللازمة لإنجاز المهام. (20:43)
- تحويل التوجيهات النصية الهشة إلى قيود آلية في مسار التكامل المستمر (CI) يضمن فشل البناء حتمياً عند الانتهاك ويحفز التصحيح الذاتي دون استنزاف نافذة السياق بالتعليمات المتزاحمة. (18:57)
Detailed notes
## Background نُشر هذا العرض التقديمي عبر قناة Ruby on Rails على منصة يوتيوب في الأول من أكتوبر 2026، وهو يوثق جلسة المهندسة كينزي دورهام غريس في مؤتمر Rails World 2026 برعاية شركة Shopify. تستند كينزي إلى خبرتها السابقة في فريق منصة وكلاء البرمجة في GitHub Copilot لمناقشة أسباب تعثر طلبات السحب التي ينشئها وكلاء الذكاء الاصطناعي، وتقديم حلول معمارية وهندسية مدعومة بالأبحاث لجعل قواعد شفرات Rails أكثر جاهزية وموثوقية للتعامل مع الوكلاء.
## TL;DR توضح كينزي أن إخفاقات وكلاء البرمجة لا تعود لضعفهم في كتابة لغة Ruby، بل لفجوة التحقق وافتقارهم للذاكرة والسياق الضمني غير المكتوب. وتدعو إلى استبدال التوجيهات الهشة في ملفات النصوص بقيود حتمية وبوابات فحص صارمة في التكامل المستمر (CI)، إلى جانب تطبيق 'عقد الأدلة' لاشتراط إثبات صحة العمل قبل الدمج. كما تثبت من خلال دراسات معمارية تفوق الأنظمة المتجانسة المعيارية والتقطيع الرأسي وحواجز العزل الصارمة (مثل Packwerk وعزل قواعد البيانات) على الخدمات المصغرة والبرمجة الوصفية الخفية. وتختتم بأن جوهر فلسفة Rails القائم على 'الاتفاقية فوق التكوين' يمثل البيئة المثالية للوكلاء من خلال جعل السياق والقرارات قابلة للاكتشاف لمن يأتي بعدك، سواء كان مهندساً بشرياً أو وكيلاً مؤقتاً.
## Atmosphere & style يتسم الحديث بأسلوب عملي، واقعي، وممتع يجمع بين الصرامة الأكاديمية والخبرة الميدانية العميقة في بيئات الإنتاج الحقيقية. تنقل كينزي تجربتها بنبرة نقدية متوازنة وتواضع تقني بعيد عن المبالغات التسويقية للذكاء الاصطناعي، متخللةً طرحها بلمسات فكاهية ذكية حول 'كسل الوكلاء' ومفارقات مراجعة الكود. يُشعر الاستماع للمحاضرة المطور بالارتياح والتمكين؛ إذ يحول إحباطات التعامل مع أدوات الذكاء الاصطناعي إلى منهجية هندسية منضبطة تعيد الاعتبار لأسس الحرفية البرمجية الرصينة.
## Bulletin - [00:11](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=11s) تتسع فجوة الثقة في وكلاء البرمجة حيث يستخدم 84% من المطورين الذكاء الاصطناعي لكتابة الأكواد بينما يثق 29% فقط بمخرجاته، بالتزامن مع قفز نسبة التعارضات فوق 41% عند تشغيل وكيلين معاً. - [10:18](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=618s) أثبت معيار مؤسسة Rails أن النماذج الرائدة تحل ما بين 73% إلى 92% من المهام الذرية، مما يؤكد أن إخفاقات الوكلاء لا ترجع لضعف قدرتهم البرمجية بل للمعرفة الضمنية غير المكتوبة في المستودع. - [20:43](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1243s) أظهرت القياسات المعمارية تفوق الأنظمة المتجانسة المعيارية على الخدمات المصغرة في بيئات الوكلاء بنتيجة 97.7 مقابل 70.7، مع انخفاض بنسبة 40% في عدد استدعاءات الأدوات اللازمة لإنجاز المهام. - [18:57](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1137s) تحويل التوجيهات النصية الهشة إلى قيود آلية في مسار التكامل المستمر (CI) يضمن فشل البناء حتمياً عند الانتهاك ويحفز التصحيح الذاتي دون استنزاف نافذة السياق بالتعليمات المتزاحمة.
## Key takeaways - [00:11](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=11s) توليد الشفرة البرمجية أصبح زهيد التكلفة بينما باتت عمليات المراجعة والتحقق البشري عنق الزجاجة المكلف وغير القابل للتوسع. - [03:01](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=181s) يجب إلزام الوكيل بتقديم أدلة إثبات قاطعة كفشل الاختبار مسبقاً ثم نجاحه بعد التعديل، بدلاً من الاكتفاء بفحص المظهر الظاهري للشفرة. - [06:15](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=375s) التحول من دور 'الممتحن' الذي يكتفي بمراجعة الفوارق البرمجية لمرة واحدة إلى دور 'الموجه' الذي يراقب استدعاءات الأدوات ويوثق القواعد في الـ CI. - [08:24](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=504s) مخاطر التصحيح الذاتي البَعدي تكمن في وراثة الاختبار لنفس انحيازات الوكيل وأخطائه، مما يجعله يؤكد الخطأ مرتين بدلاً من اكتشافه. - [12:22](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=742s) فخ المعرفة الضمنية: تعجز النماذج عن تنفيذ مهام حساسة كحذف الحسابات إذا كانت القواعد المحاسبية والقانونية غائبة عن الكود ومحصورة في نقاشات خارجية. - [12:22](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=742s) يميل الوكلاء للالتفاف على اتفاقيات Rails وبناء حلول يدوية بديلة بنسبة 64% لتفضيلهم المسار الأقصر، مما يورث ديوناً تقنية مخصصة يصعب صيانتها. - [14:44](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=884s) دراسة سراب المستودع تثبت أن تعقيد مسارات التبعية والتشتت الهيكلي يخفضان قدرة النماذج على حل المشكلات من 66% إلى 49% ويرفعان الملفات المفتوحة لثلاثة أضعاف. - [16:56](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1016s) البرمجة الوصفية (Metaprogramming) وتوليد الدوال ديناميكياً يعميان أدوات بحث الوكيل، مما يدفعه لاختلاق تعريفات وهمية تدمر الثقة البرمجية. - [20:43](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1243s) البنية البرمجية هي أكبر قيد يحدد نطاق الملفات المتأثرة، والتقطيع الرأسي (Vertical Slicing) يجمع تفاصيل الميزة لمنع تشتت انتباه الوكيل. - [22:01](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1321s) فرض الحدود المعمارية وعزل بيانات الجداول باستخدام أدوات مثل Packwerk يمنع الترابط غير المنضبط ويسرع كشف الانتهاكات أثناء البناء. - [23:07](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1387s) النماذج البرمجية تُعد مراجع تصميم جيد لكنها محقق سيئ؛ والاندفاع الزائد في الإصلاح المعماري قد يولد مشكلات جديدة تفوق بكثير ما تم إصلاحه. - [25:16](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1516s) سلم الإنفاذ: نقل القواعد الهشة خطوة للأعلى نحو المولدات وقواعد التدقيق وفحوصات الـ CI يمنع الأخطاء بشكل حتمي وأكثر ديمومة من التوجيهات النصية. - [27:03](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1623s) خرائط الميزات تسجل النوايا والأفخاخ البرمجية المخفية مسبقاً، محذرة من أن التوثيق المضلل يهبط بدقة النماذج إلى النصف مقارنة بانعدامه. - [28:35](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1715s) إدارة البيئات متعددة الوكلاء بمشاركة الحالة وحجز الأصول قلصت المهام المكررة بنسبة 78%، مجسدة فلسفة اتفاقيات Rails في جعل كل شيء متوقعاً لمن يأتي بعدك.
## Detailed walkthrough ### [00:11](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=11s) مقدمة: فجوة الثقة في وكلاء البرمجة ومأزق المراجعة
تستهل كينزي دورهام غريس حديثها بالترحيب بالحضور واسترجاع خبرتها السابقة في منصة GitHub ضمن فريق Copilot لوكلاء البرمجة (Coding Agents)، مشيرةً إلى انتقالها لبدء مشروعها الخاص وتعمقها الواسع في الأبحاث الأكاديمية المتعلقة بالذكاء الاصطناعي. تصف كينزي عملها السابق في مراقبة سلوك الوكلاء البرمجيين أثناء تفاعلهم مع قواعد شفرات برمجية مختلفة بأنه "التجربة الأكثر تواضعاً وإدراكاً للواقع في مسيرتها المهنية"؛ حيث اتضح لها أن إخفاقات الوكلاء ونكوصهم عن إتمام المهام لا ينبع من ضعف في مهاراتهم البرمجية بذاتها، فالوكيل قادر تماماً على كتابة شفرة كود ممتازة بلغة Ruby، وإنما تكمن المعضلة في سياقات ومحددات بنيوية أخرى تتجاوز مجرد توليد الأكواد.
وتطرح كينزي تساؤلاً مباشراً على الحضور في القاعة لاستطلاع آرائهم حول مدى ثقتهم فيما يكتبه وكيل البرمجة، وصولاً إلى دمج تلك الشفرات دون تدقيق بشري. وبحسب استطلاع حالة المطورين لعام 2026 (2026 State of Devs Survey)، فإن 84% من المطورين يعتمدون على أدوات الذكاء الاصطناعي لكتابة الأكواد، ولكن 29% فقط منهم يثقون في مخرجاتها فعلياً، وهو ما يمثل انخفاضاً قدره 11% مقارنة بالعام السابق. وتؤكد أن عمليات المراجعة والتدقيق باتت هي عنق الزجاجة الجديد؛ فالفرق غارقة في مراجعة كتل الأكواد التي يكتبها مثلًا Claude، لدرجة أن دراسة تحليلية شملت أكثر من 33,000 طلب سحب (Pull Request) تم إنشاؤها عبر 2,800 مستودع أظهرت أن 80% منها فُتحت بالتزامن مع وكلاء آخرين، وعند عمل وكيلين في الوقت ذاته قفزت نسبة التعارضات (Conflicts) إلى أكثر من 41% في الشفرة المصدرية وحدها.
- 84% من المطورين يستخدمون الذكاء الاصطناعي لكتابة الشفرات البرمجية. - 29% فقط يثقون بما يكتبه الوكيل، بتراجع سنوي قدره 11%. - دراسة على 33,000+ طلب سحب عبر 2,800 مستودع رصدت تعارضات تفوق 41% عند تشغيل وكيلين متزامنين. - "توليد الشفرة رخيص للغاية، لكن التحقق منها باهظ التكلفة"، ومجرد التشدد في المراجعة البشرية حل غير قابل للتوسع.
---
[03:01](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=181s) التحقق الذاتي بدلاً من التخمين: دور بيئة Rails
تنتقل كينزي لمناقشة سلوكيات التخمين التي يلجأ إليها الوكيل الذكي؛ فهو يدعي اليقين التام بينما هو مخطئ، بل وقد يزعم فحصه لملف معين بينما تكشف سجلات استدعاء الأدوات (Tool calls) أنه لم يقم حتى بفتح ذلك الملف المصدري. ومن هنا، توقفت كينزي عن التساؤل السطحي المعتاد: "هل تبدو هذه الشفرة صحيحة ظاهرياً؟" وبدأت تطرح سؤالاً جوهرياً صارماً: "ما الذي أثبته الوكيل بالدليل القاطع قبل إعلانه عن اكتمال المهمة؟" تماماً كما يُعامل المطور المبتدئ أو مسؤولو ضمان الجودة (QA)؛ فإصلاح الخلل يقتضي بالضرورة فشل الاختبار قبل الإصلاح ونجاحه بعده، لا كتابة اختبار رجعي خادع يطابق ما فعله الوكيل للتو.
وتبرز قوة إطار عمل Ruby on Rails في هذا السياق؛ فبينما تجهد الفرق الهندسية الأخرى نفسها في بناء منظومات تحقق معقدة من الصفر، يوفر Rails أدوات مدمجة وجاهزة مثل `bin/rails test` واختبارات النظام (System tests) التي تحاكي سيناريوهات الاستخدام الحقيقية بدقة، إضافة إلى الـ Fixtures والمصانع (Factories) التي تتيح فحص ترحيل البيانات وقواعد البيانات مقابل بيانات واقعية. كما استشهدت باختبارات بيئات العزل (Linux Sandboxes) لقياس قدرة النماذج على تشغيل مستودع من الصفر، حيث لم تتجاوز نسبة نجاح أفضل النماذج 62%، وظهرت أنماط فشل تتضمن اختلاق إعدادات وهمية ومنافذ عشوائية، و45% من التغييرات فشلت في الصمود أمام سطر الأوامر.
```mermaid flowchart TD accTitle: دورة التحقق القائمة على الأدلة للوكيل البرمجي accDescr: رسم بياني يوضح خطوات التحقق الإلزامية التي يمر بها الوكيل لضمان جودة الكود البرمجي قبل الدمج.
subgraph Phase1["مرحلة الإثبات السلوكي"] A["فشل الاختبار مسبقاً (Red)"] --> B["تطبيق الشفرة البرمجية"] B --> C["نجاح الاختبار بعد الإصلاح (Green)"] end
subgraph Phase2["فحص البيئة المحلية"] C --> D["تشغيل بيئة Rails واختبارات النظام"] D --> E["محاكاة واجهة المستخدم وسير العمل"] end
subgraph Phase3["تقديم الأدلة (Evidence Contract)"] E --> F["سجل تتبع الأداء والتنفيذ"] F --> G["استيفاء متطلبات ملف التحقق (Markdown)"] end
G --> H["قبول طلب السحب والدمج"] ```
---
[06:15](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=375s) مهارات التحقق، وعقد الأدلة، والتحول من الفاحص إلى الموجّه
تشرح كينزي نموذجاً عملياً لصياغة "مهارة التحقق" (Verification Skill) في صورة ملف Markdown منظم يحتوي على أقسام محددة: التمهيد، الإعداد، وقائمة الأدلة الصريحة (Evidence checklist). يحتوي كل قسم على ثلاثة عناصر مرئية وقابلة للملاحظة بدقة: هل السجل موجود وصحيح؟ هل يُعرض المحتوى على عنوان الرابط العام (Public URL)؟ وهل تم إنشاء سجل مطابق في فهرس البحث؟ يعمل هذا الملف بمثابة "عقد لا يمكن للوكيل تجاوزه" أو إعلان اكتمال المهمة دون تقديم أدلة إثباته الثلاثة. يُحفظ هذا الملف داخل المستودع ليكون قابلاً للمراجعة والتدقيق كأي شفرة برمجية، مع التأكيد على عدم المبالغة في التحقق لكل شاردة وواردة لتفادي الهدر الزمني واستهلاك الرموز (Tokens).
وتنتقل كينزي إلى تشبيه فلسفي مهم؛ حيث تفرق بين تعاملنا مع الوكيل كـ "ممتحن" يتعامل مع طالب، مقابل تعاملنا معه كـ "موجه" (Mentor). فالفاحص يكتفي بالنظر إلى المخرج النهائي وفوارق الشفرة (Diff)، ويكتب تعليق مراجعة لمرة واحدة ينساه الوكيل في الجلسة التالية تماماً. أما الموجّه الحقيقي فيراقب استدعاءات الأدوات أثناء حدوثها، ويصحح الدالة والسلوك لا الناتج المجرد، ثم يوثق هذا التصحيح في مكان دائم غير بشري: قاعدة تدقيق (Lint rule)، أو خريطة ميزات، أو فحص في التكامل المستمر (CI)، أو مهارة مخصصة. فبما أن الوكيل ليس متدرباً بشرياً يمتلك ذاكرة طويلة الأمد، فإن أي حوارات تصحيحية عابرة لا تُترجم لقواعد في المستودع تعد هدراً صريحاً للوقت.
- مهارة التحقق تتكون من ملف توثيقي يحدد عناصر قابلة للرصد لا يمكن إقفال المهمة دونها. - أداة Pstack كإضافة مساعدة في التحقق التلقائي والضبط. - الممتحن يصحح الناتج في المراجعة (Diff)، بينما الموجّه يصحح دالة العمل (Tool calls) ويوثقها في منظومة الـ CI.
---
[08:24](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=504s) مسار بناء الثقة ومخاطر التصحيح الذاتي البَعدي
تستعرض كينزي المراحل الخمس المتدرجة التي ينبغي اتباعها للوصول إلى مرحلة الثقة بالوكيل البرمجي: تبدأ المرحلة الأولى بالإشراف الدقيق اللحظي على كل رمز وكل استدعاء أداة (وهي مرحلة مرهقة تجعل إنتاجيتك أقل من كتابة الكود بنفسك). تليها المرحلة الثانية بقراءة كل سطر تغييري في طلب السحب. ثم المرحلة الثالثة حيث يُترك ضبط الأسلوب والبنية لأدوات الـ CI للتركيز فقط على النية المعمارية. وتأتي القفزة الكبرى في المرحلة الرابعة عندما يبدأ المطور بقراءة "الأدلة المُثبتة أولاً" والاكتفاء بفحص عشوائي سريع للشفرة. وصولاً إلى المرحلة الخامسة التي يُدمج فيها النظام تلقائياً عند ظهور الإشارة الخضراء، وتقتصر مهمة المهندس على مراجعة ما أُنجز في الصباح.
وتختتم كينزي هذا الجزء بالإشارة إلى ورقة بحثية تحذر من فخ "التصحيح الذاتي عبر الاختبارات المُولّدة ذاتياً"؛ حيث أثبتت الدراسات أن النموذج إذا كتب اختباره بعد كتابة الشفرة، فإنه ينقل نفس التحيزات والمفاهيم الخاطئة إلى الاختبار، ليقوم بتأكيد خطئه وتزكية نفسه مرتين بدلاً من اكتشافه. والحل الفعال يكمن في المراقبة أثناء التنفيذ الفعلي ورصد الخطوات الوسيطة، مع القاعدة الذهبية: "اختبر أولاً، أو اختبر بالتتبع الحي، ولا تختبر أبداً بعد ذلك اعتماداً على ذاكرة النموذج".
- مراحل صعود الثقة: 1. الإشراف اللحظي على كل رمز واستدعاء أداة. 2. قراءة كل سطر من الفوارق البرمجية (Diff). 3. تفويض فحص الأسلوب للـ CI والتركيز على النية. 4. فحص سجل الأدلة أولاً مع مراجعة عشوائية للشفرة. 5. الدمج الآلي عند الإشارة الخضراء والمراجعة اللاحقة. - إخفاق التصحيح الذاتي البَعدي: يرث الاختبار عيوب الشفرة نفسها ويؤكد الخطأ مرتين.
[10:18](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=618s) المقاييس الحقيقية لجودة الأكواد ونتائج معيار مؤسسة Rails
تؤكد المتحدثة على ضرورة تجنب الانخداع بالسرعة السطحية والتركيز بدلاً من ذلك على المقاييس الهندسية الحقيقية: معدل عمليات الدمج السليمة، ومعدل التراجع خلال سبعة أيام (أي قياس عدد المرات التي يُنشر فيها كود ثم يُضطر الفريق للتراجع عنه لاحقاً)، ومعدل اكتشاف الأخطاء تلقائياً قبل وصول الكود للمراجعة البشرية، إضافة إلى زمن استجابة المراجعة. إذا بدأ متوسط وقت دمج طلبات السحب في الارتفاع، فهذا مؤشر صريح على أن الفريق يتحرك بسرعة مفرطة ويغفل عن مشاكل خفية تتطلب التمهل وإعادة التقييم. ومن هنا تنتقل للحديث حول كيفية تعديل بنية الشيفرة البرمجية لتتلاءم مع وكلاء الذكاء الاصطناعي، مستشهدة باختبار معياري أجرته مؤسسة Rails Foundation بعنوان "Agent on Rails" على تطبيق Writebook الواقعي عبر 21 مهمة Rails ذرية وثمانية نماذج رائدة وأكثر من 500 عملية تشغيل حتمية بدون مُحكِّم LLM.
أظهرت النتائج أن نموذج Claude Opus نجح في حل 92% من المهام، بينما تجاوزت النماذج الثلاثة الأخرى نسبة 84%، وحتى أسوأ النماذج أداءً حقق 73%. الخلاصة الحاسمة هي أن المهام البرمجية الذرية في Rails أصبحت مشكلة محلولة تقريباً بالنسبة لنماذج الواجهة (Frontier Models)، وبالتالي فإن كتابة الوكيل لكود رديء ليست ناجمة عن ضعف النموذج أو قلة حيلته البرمجية. وللتأكيد على أن المشكلة لا تكمن أيضاً في البنية البرمجية المحيطة بالوكيل، استشهدت بدراسة من جامعة كوينز اختبرت 35 إصداراً من نفس الوكيل مع تثبيت النموذج تماماً، وحملت ورقتهم عنواناً صريحاً: "لا تُلقِ اللوم على LLM"؛ إذ ظل معدل حل المشكلات ثابتاً حول 30.5% رغم تضاعف استهلاك الرموز (Tokens)، بل إن إصداراً مبكراً حقق نسبة 39% متفوقاً على إصدارات أحدث وأكثر تعقيداً هندسياً.
- تتبّع المقاييس الجوهرية: التراجع خلال 7 أيام، ومعدل كشف الأخطاء قبل المراجعة، وزمن إتمام الدمج. - معيار Rails Foundation شمل 21 مهمة على تطبيق Writebook بـ 500 تشغيل وتقييم حتمي صارم. - نماذج الفئة الأولى حلّت المهام الذرية بنسب مرتفعة (Opus 92%، وثلاثة نماذج تجاوزت 84%). - دراسة جامعة كوينز أثبتت أن تعقيد بنية الوكيل (Agent Harness) ضاعف استهلاك الرموز دون تحسين الأداء (استقر عند 30.5%).
---
[12:22](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=742s) فخ المعرفة الضمنية وسلوك الوكيل البرمجي في الالتفاف على الاتفاقيات
عند فحص معيار مؤسسة Rails بدقة، تبين أن المهمة الأكثر إخفاقاً للجميع كانت "حذف حساب المستخدم بشكل صحيح"؛ حيث نجحت 8 عمليات فقط من أصل 24، مقارنة بنماذج كانت تنجح بنسبة 90% في مهام أخرى. الصعوبة لم تكن برمجية بحتة، بل تعود إلى أربعة عوامل متشابكة: حذف المستخدم يؤثر على كل نموذج يرتبط به، والحل السليم يتطلب توزيع خيارات الحذف التابع (Cascading Deletes/Nullifications) عبر ملفات متفرقة، والأهم أنه لا يوجد أي توضيح لما يعنيه "بشكل صحيح" (هل هو حذف نهائي، أم تعمية هوية، أم احتفاظ بالفواتير لمدة 7 سنوات للأغراض المحاسبية والقانونية؟). هذه المفاهيم لم تُكتب صراحة في قاعدة الكود، بل ظلت مخزنة في رؤوس المطورين أو في محادثة منسية على Slack، وبالتالي استحال على الوكيل استنتاجها أو التحقق منها.
والأخطر من ذلك هو ما كشفه المعيار حول كيفية تعامل النماذج مع واجهات برمجة تطبيقات Rails الأصلية؛ فالوكلاء لا "يتذكرون" التطبيق ككيان متكامل، بل يعيدون اكتشافه في كل تشغيل عبر سطر أوامر bash وأوامر grep ملفاً تلو الآخر. ورغم أن 92% من عمليات التشغيل رصدت واجهة برمجة التطبيقات الرسمية، إلا أن 64% منها تجاهلت الواجهة بعد العثور عليها وكتبت تطبيقاً بديلاً يدوياً خاصاً بها. تعلق المتحدثة ساخرة بأن "البرنامج الخطير ليس الجاهل، بل هو الذي رأى اتفاقيتك، وفهمها، وقرر أن المسار الخاطئ يبدو أقصر". الوكلاء بطبيعتهم كسالى ويبحثون عن أقصر مسار لإنهاء المهمة، والكود اليدوي البديل يعمل غالباً، وهذا سر خطورته: فهو لا يقدم حلاً معطلاً ترفضه، بل يورثك ديناً تقنياً مخصصاً دون دعم من المصدر المفتوح أو تحديثات مستقبلية، مع إهدار ميزة تضمين مفاهيم Rails الأصلية (مثل `has_many`) مسبقاً في أوزان تدريب النموذج.
```mermaid flowchart TD accTitle: مسار اتخاذ القرار لدى الوكيل البرمجي accDescr: يوضح الرسم كيف يكتشف الوكيل واجهة برمجة التطبيقات الأصلية ثم يتجاهلها ويسلك المسار الأقصر الذي يولد ديناً تقنياً.
subgraph Discovery ["اكتشاف الكود عبر bash/grep"] A["فحص الكود سطرياً"] --> B{"هل عثر على واجهة Rails الأصلية؟"} end
subgraph Decision ["اتخاذ القرار السلوكي"] B -- "نعم (92%)" --> C{"تقييم مسار التنفيذ"} C -- "المسار الأقصر ظاهرياً (64%)" --> D["تجاهل اتفاقية Rails وبناء بديل يدوي"] C -- "الالتزام بالاتفاقية" --> E["استخدام واجهات Rails المعتمدة"] end
subgraph Impact ["الأثر الهندسي"] D --> F["كود يعمل ظاهرياً لكنه يولد التزاماً وصيانة دائمة"] E --> G["كود متوافق وموثوق ومدعوم بأوزان النموذج"] end ```
---
[14:44](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=884s) سحر Rails مقابل الإعلان الصريح وأزمة التمثيل في بيانات التدريب
تناقش المتحدثة المفارقة الكامنة في أطر العمل؛ فلو صُمم إطار عمل من الصفر لخدمة الوكلاء لكان شبيهاً جداً بـ Rails، إلا أن مشكلة Rails الكبرى تكمن في تفضيله لـ "السحر" وإخفاء الآليات، مثل استخدام الـ Concerns لحقن سلوك غير مكتوب صراحة داخل الفئة، أو وراثة الجدول الفردي (STI) لتحديد الأنواع ديناميكياً أثناء التشغيل. الفارق الجوهري هو ما إذا كان السلوك "مُعلناً صراحة" (Explicit) أم "سحرياً ضمنياً" (Magical)؛ فبينما يتيح Rails الأسلوبين للمطورين، فإن وكيل البرمجة لا يستطيع فهم سوى السلوك الصريح. وعلاوة على ذلك، أظهرت المعايير متعددة اللغات تفوق بايثون بنسبة 42% في إنتاجية الوكلاء، بينما غابت روبي تماماً عن لوحة المقارنة ولم يقسها أحد خارج مجتمع Rails، وهو ما يعود أساساً إلى كثافة تمثيل بايثون في بيانات تدريب النماذج على الإنترنت، ودفع مؤسسة Rails مشكورة لبناء منظومة تقييم مستقلة.
وتدعم ذلك دراسة معمارية لافتة بعنوان "سراب المستودع" (Repository Mirage)؛ حيث عمد الباحثون إلى أخذ مستودعات برمجية حقيقية وتغيير مواقع الأكواد دون تعديل سطر واحد من منطقها الوظيفي (تعديل هيكلي بحت). عبر ثمانية نماذج ذكاء اصطناعي رائدة، تراجعت نسبة نجاح حل المشكلات من 66% إلى 49%—أي أن الوكلاء فقدوا ربع كفاءتهم لمجرد أن الوصول إلى المعلومة أصبح أكثر تعقيداً. شملت التعديلات مسارات التبعية غير المباشرة مثل إحلال وسائط متعددة ومفوضات (Delegates) والتحميل التلقائي (Autoloading) محل الاستيراد المباشر، وتشتيت الإعدادات بين ملفات YAML والمُهيئات وقواعد البيانات؛ مما رفع متوسط عدد الملفات التي اضطر الوكيل لفتحها لإنجاز نفس المهمة من 4.77 إلى 13.24 ملفاً، مستنزفاً ميزانية انتباه الوكيل (Attention Budget) في التجول والتشتت بدلاً من الحل.
- انخفاض حل المشكلات من 66% إلى 49% في دراسة "سراب المستودع" بمجرد زيادة مسارات التشتت الهيكلي. - زيادة عدد الملفات المقروءة لكل مهمة بنحو ثلاثة أضعاف (من 4.77 إلى 13.24 ملفاً). - البرمجة الصريحة ضرورة للوكيل: السحر وحقن السلوكيات عبر الـ Concerns والوراثة الديناميكية يعميان الوكيل البرمجي. - غياب روبي عن معايير التقييم العالمية يفرض على مجتمعها قيادة جهود المعايرة والقياس ذاتياً.
---
[16:56](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1016s) أثر التسميات الدلالية وخطورة البرمجة الوصفية (Metaprogramming)
توضح المتحدثة كيف تؤثر التسميات الواضحة تأثيراً مباشراً على الفهم الدلالي للنماذج؛ فقد أظهرت تجربة بحثية قامت بحذف المعرّفات ذات المعنى واستبدالها بأسماء مبهمة مع الحفاظ على نفس المنطق البرمجي، انخفاض قدرة أحدث النماذج مثل GPT-5 على شرح وظيفة فئة معينة من 87% إلى 58%، بخسارة 29 نقطة لمجرد سوء التسمية. وتؤكد: "إذا كان المستخدم مضطراً لتشغيل تطبيقك لمعرفة ما يجري، فالوكيل يواجه المعاناة ذاتها"، مع فارق حاسم أن المطور البشري يمكنه فتح الطرفية وفحص الكود تجريبياً وسؤال زميله في المكتب أو عبر Slack، بينما يعمل الوكيل في بيئة معزولة تماماً: 59 دقيقة، وفرع برمجي واحد، وحاوية مؤقتة، وصفر من الذاكرة المؤسسية؛ فما هو غير معلن يصبح مستحيل الإثبات بالنسبة له.
تنتقل بعد ذلك إلى تفكيك أزمة البرمجة الوصفية (Metaprogramming) في بيئات الوكلاء. نظراً لأن الوكيل يعتمد غالباً على سطر الأوامر وأدوات البحث النصي البسيطة، فإن إنشاء دوال ديناميكية في روبي عبر سطور معدودة (مثل توليد قارئات طوابع زمنية لكل حالة عبر دورة برمجية أثناء التشغيل) يجعل الدالة غير موجودة كحروف نصية في الملف. عندما يبحث الوكيل عن الدالة ولا يجدها، فإنه يرفض الاعتراف بالعجز ويلجأ إلى أحد ثلاثة مسارات مضللة: اختلاق تعريف يبدو صحيحاً، أو كتابة نسخة خاصة به داخل نطاق عمله، أو تعديل كود آخر مشابه. والنتيجة هي "طلب سحب يبدو معقولاً ومقبولاً للوهلة الأولى عند المراجعة السريعة"، وهو تحديداً ما يدمر الثقة ويرهق المطورين في التدقيق اليدوي لكشف تلك الاختلاقات.
---
[18:57](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1137s) من التوجيهات الهشة إلى القيود الحتمية (CI Constraints)
تستعرض المتحدثة تجربة لورين تان (مهندسة الذكاء الاصطناعي في SpaceX ومؤلفة أداة Pystack)، التي تدير أسطولاً دائماً من وكلاء البرمجة في بيئة الإنتاج يدمجون الأكواد تلقائياً دون تدخل بشري مباشر. لكن هذا النجاح لم يأتِ مجاناً عبر كتابة أوامر بارعة (Prompts)، بل تطلب إنجاز أكثر من 600 طلب سحب لإعادة هيكلة بنية الكود التحتية وجعلها مهيأة لعمل الوكلاء؛ فالكل يرغب في الحصول على نتائج خيالية بأقل مجهود، بينما الثمن الفعلي يكمن في هندسة الكود وتطويعه. ومن هذا المنطلق، تعيد المتحدثة صياغة الفلسفة التشغيلية بالكامل للتمييز الحاسم بين "التوجيهات والتعليمات" (Instructions) و"القيود والضوابط الصارمة" (Constraints).
| وجه المقارنة | التعليمات والتوجيهات (Instructions) | القيود الحتمية (Constraints) | |:--- |:--- |:--- | | **آلية التطبيق** | كتابة نصوص في ملفات مثل `agents.md` | فحوصات CI مؤتمتة ومحددات تكامل صارمة (Linters/Rules) | | **استهلاك الرموز** | تنافس وتزاحم مئات آلاف الرموز في السياق | لا تستهلك أي رموز من نافذة سياق النموذج | | **سلوك النظام** | تدهور تدريجي في الامتثال مع امتلاء السياق | تطبيق حتمي صارم يفشل البناء فور مخالفة القواعد | | **كشف الانتهاكات** | مراجعة يدوية مرهقة عبر مقارنات تشمل عشرات الملفات | كشف فوري ذاتي وتصحيح تلقائي قبل إنشاء طلب السحب |
تشرح المتحدثة أن كتابة إرشادات مثل "استخدم دائماً طبقة الخدمة لإصدار الفواتير" داخل ملف `agents.md` كان الحل الشائع، لكنه يمثل مجرد نصوص إضافية تتزاحم مع 200,000 رمز داخل نافذة السياق، ومع امتلاء الذاكرة يتدهور امتثال الوكيل وتكتشف تجاوزه للتعليمات بعد فوات الأوان وسط مراجعة 40 ملفاً. في المقابل، فإن تحويل نفس القاعدة إلى فحص آلي في التكامل المستمر (CI) يرفض البناء عند التعديل المباشر، لا يستهلك أي رموز، ويجبر الوكيل على تشغيل الاختبارات، واكتشاف الخطأ حتمياً، وتصحيح نفسه ذاتياً قبل تقديم طلب السحب. تختتم بالتأكيد على أن "القيود الصحيحة لا تُملي على البرنامج ما يجب فعله، بل تُغير ما يراه ممكناً"، فالبرمجيات تحتاج إلى ضوابط وحواجز حماية حتمية لا إلى مجرد مقترحات هشة.
[20:43](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1243s) البنية كأكبر قيد: تفوق الأنظمة المتجانسة والتقطيع الرأسي
تؤكد كينزي دورهام جريس أن البنية البرمجية تُعد أكبر قيد على الإطلاق في بيئة العمل، لأنها تُحدد بشكل مباشر عدد الملفات التي سيتأثر بها أي تغيير برمجي، وهذا الرقم يتنبأ بدقة بكل ما سيحدث لاحقًا. وتطرقت إلى المقارنة الشائعة بين البنية المعيارية المتجانسة (Modular Monolith) وهندسة الخدمات المصغرة (Microservices)؛ حيث أظهرت دراسة معيارية قارنت تنفيذ نفس المهام البرمجية (مثل التوليد وإصلاح الأخطاء) عبر البنيتين تفوقًا حاسمًا للبنية المتجانسة. فقد سجلت البنية المتجانسة متوسط أداء بلغ 97.7، مقارنة بـ 70.7 فقط للخدمات المصغرة، والأهم من ذلك أن الوكلاء حققوا هذه النتيجة في النظام المتكامل باستخدام استدعاءات أدوات (Tool Calls) أقل بنسبة قاربت 40%.
تنتقل كينزي بعد ذلك لنقد الطريقة التقليدية التي ينظم بها إطار عمل Rails الكود البرمجي؛ إذ ينظمه بحسب نوع الطبقة التقنية (نماذج، وحدات تحكم، عروض) بدلاً من الميزة الوظيفية. وتشير إلى أنه "لم يسبق لأحد أن طلب منك تغيير جميع النماذج"، فالطبقة التقنية تمثل فئة، بينما الميزة الفعلية هي وحدة التغيير الحقيقية. عند التنظيم بحسب الطبقات، قد تتشتت ميزة برمجية واحدة عبر ستة مجلدات مختلفة لا يحمل أي منها اسم الميزة ذاتها. بينما يتيح التقطيع الرأسي (Vertical Slicing) تجميع كامل تفاصيل الميزة داخل مجلد واحد، مما يجعل البحث بأداة بسيطة مثل `grep` كافيًا للعثور على كل شيء. وكما استشهدت بمقولة جيريمي ميلر: أنت لا تفعل ذلك لجعل الكود أجمل، بل لتقليص نطاق الوصول إلى كل ما يرتبط بوظيفة معينة كالفواتير مثلاً.
- حققت البنية المتجانسة أداءً بلغ 97.7 مقابل 70.7 للخدمات المصغرة في اختبارات البرمجة للوكلاء. - استهلك الوكلاء في النظام المتجانس استدعاءات أدوات أقل بنسبة 40% مقارنة بالخدمات المصغرة. - تنظيم الملفات حسب الميزات (Feature-based / Vertical Slicing) يمنع تشتت سياق الوكيل عبر المجلدات التقنية المتعددة.
---
[22:01](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1321s) رسم الحدود المعمارية في Rails: من Packwerk إلى عزل البيانات
تستعرض كينزي ثلاث استراتيجيات عملية لرسم حدود واضحة داخل تطبيقات Rails لمنع الوكلاء من كسر العزل المعماري. تأتي البداية مع وحدات مساحة الاسم (Namespaces)، تليها أداة Packwerk التي طورتها شركة Shopify، والتي تصفها بأنها أداة رائعة لتحديد التبعيات ومستويات الخصوصية بين الحزم؛ وميزتها الجوهرية أن انتهاكات الحدود تفشل أثناء مرحلة البناء والتحقق وليس أثناء وقت التشغيل، مما يجعل تضمينها كبوابة فحص في مسار التكامل المستمر (CI Gate) أمرًا بالغ الأهمية. الطريقة الثالثة هي محركات Rails (Engines)، حيث تُفرض الحدود عبر أداة التحميل، وتمنح مساحة الاسم المعزولة مسارات ومساعدين وبادئات جداول خاصة بها، مما يجعل الانتهاكات تظهر فورًا أثناء وقت التشغيل بدلاً من انتظار المراجعة اليدوية.
```mermaid flowchart TD accTitle: Boundary Enforcement in Rails accDescr: Comparison between improper coupling via direct DB access and strict boundaries via public API calls.
subgraph Bad["النمط الخاطئ: ترابط غير منضبط"] SetupBad["إعداد النظام (Setup)"] -->|"وصول مباشر وتعديل"| BillingDB["جداول الفوترة (Billing Schema)"] end
subgraph Good["النمط السليم: حدود واضحة وواجهة محددة"] SetupGood["إعداد النظام (Setup)"] -->|"استدعاء نقطة اتصال واحدة"| BillingAPI["واجهة الفوترة (Billing Public API)"] BillingAPI -->|"ملكية داخلية خاصة"| BillingData["جداول الفوترة المستقلة"] end ```
وتشدد كينزي على تطبيق مبدأ عزل قواعد البيانات: "يجب أن يكون لكل نموذج جداوله الخاصة. لا أحد آخر يلمسها". في التصميم غير المنضبط، يصل إعداد النظام مباشرة إلى جداول الفوترة، مما يقيد فريق الفوترة ويمنعه من تعديل بنية الجداول داخليًا. أما في التصميم السليم، يمر الطلب بنقطة اتصال واحدة ومالك واحد، مما يسمح لفريق الفوترة بإعادة بناء الأجزاء الداخلية بحرية ودون أن يشعر أي نظام خارجي أو وكيل ذكاء اصطناعي بذلك. والمفتاح هنا هو التخلص من المفاتيح الخارجية (Foreign Keys) المباشرة بين الوحدات المختلفة، لأنها ترسخ الترابط بقوة داخل المخطط نفسه؛ فإذا وجد الوكيل أن الوصول المباشر مسموح وممارس في التطبيق، فسيتعلم سريعًا أن هذا السلوك طبيعي ويكرره على نطاق واسع في كل طلب سحب (PR) ينشئه.
---
[23:07](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1387s) قدرة الوكلاء على التحليل المعماري: تجربة scikit-learn وضبط النفس
تطرح كينزي تساؤلاً جوهريًا: ما الذي يمكن للوكيل فعله حقيقةً حيال البنية المعمارية؟ وتشير إلى دراسة اختبرت نفس النموذج ونفس الكود البرمجي تحت ثلاثة مستويات من التوجيه. عندما حُدد الخلل للنموذج بدقة وطُلب منه التأكيد فقط، كان أداؤه ممتازًا. وعند توجيهه إلى فئة بداية والطلب منه استخراج الفئات المرتبطة، كان أداؤه جيدًا. لكن بمجرد أن طُلب منه اكتشاف مشاكل الترابط المعماري ذاتيًا وبأسئلة مفتوحة، عجز عن العمل. وما زاد الطين بلة أنه بمجرد إدخال كود برمجى مشوش لا علاقة له بالمشكلة في نافذة السياق، فشل البرنامج تمامًا وحقق بالكاد ربع النتيجة التي حققها سابقًا؛ فالضوضاء في السياق تكلف أكثر بكثير من تكلفة مراجعة كل تلميح بشري. ومن هنا تستنتج أن: "النموذج مُراجع تصميم جيد، ولكنه مُحقق تصميم سيئ للغاية".
تؤكد كينزي هذه الفكرة بالرجوع إلى دراسة قام بها باحثون وضعوا خلالها 65 مشكلة تصميمية معقدة وحقيقية في مكتبة `scikit-learn`. لم ينجح أفضل برنامج سوى في حل 47% منها فقط، ولكن المفارقة الصادمة لم تكن في نسبة الحل بل في الآثار الجانبية. البرنامج الأكثر "فعالية وحماسًا" قام بإصلاح 31 مشكلة، لكنه أدخل في المقابل 140 مشكلة معمارية جديدة، أي بصافي عجز وتراجع قدره 109 مشكلات، وهو ما علقت عليه كينزي بذهول: "يا إلهي، هذا جنون!". وفي المقابل، قام برنامج أكثر تحفظًا بإصلاح 19 مشكلة مع إدخال 3 مشكلات جديدة فقط (بصافي إيجابي قدره 16).
- أظهر تحليل الخبراء أن 63% من المشكلات التي حددها البرنامج الأكثر فعالية كانت مجرد إنذارات خاطئة (False Positives)، ورغم خطئه في التشخيص فقد أصر على كتابة كود برمجى لإصلاحها. - أثبتت القياسات وجود علاقة طردية عكسية: كلما زادت كمية التعليمات البرمجية التي كتبها الوكيل، كلما تدهورت بنية النظام المعمارية أكثر في كل مرة. - محاولة تحسين النتائج بإعطاء تعليمات (Prompts) أكثر تفصيلاً وإرشادات أوضح لم تُحدث أي فرق يُذكر.
---
[25:16](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1516s) سلم الإنفاذ: كيف تمنع الوكلاء من ارتكاب الأخطاء؟
تبين كينزي أن الفكرة الأساسية لفرض القيود تنبع من حقيقة مستحيلة: "لا يمكنك حل هذه المشكلة بالاستعانة بالتعليمات البرمجية. كل ما يمكنك فعله هو جعل القيام بالشيء الخاطئ أكثر صعوبة في تطبيقاتك". وفي الوقت نفسه تحذر من المبالغة: وضع حدود مبكرة في غير موضعها يكلف أكثر من عدم وجود حدود إطلاقًا؛ فإذا كان المشروع جديدًا أو كانت النطاقات غير واضحة المعالم بعد، فلا داعي لفرضها، بل يجب تطبيقها حصريًا في الأماكن التي يفشل فيها الوكلاء فعليًا على أرض الواقع. ومن هنا تستعرض كينزي "سلم الإنفاذ" (Enforcement Ladder) وتدعو المهندسين لرفع مستوى القواعد الهشة خطوة واحدة للأعلى:
```mermaid flowchart TD accTitle: The Enforcement Ladder accDescr: Levels of rule enforcement for coding agents, from comments up to type and interface boundaries.
L1["تعليق أو توثيق (Comments / Docs) - قراءة غير مضمونة"] L2["أمر الوكيل (System Prompts) - يتنافس على نافذة السياق"] L3["الاتفاقيات المتسقة (Conventions) - يتعلم بالنمذجة عبر 40 وحدة تحكم"] L4["المولدات البرمجية (Generators) - المسار الأسرع لإنشاء الكود"] L5["قواعد التدقيق والفحص (Linters / CI) - فشل الفحص يمنع الدمج تمامًا"] L6["حدود الأنواع والواجهات (Type & Interface Boundaries) - قيود صارمة بنيوية"]
L1 --> L2 --> L3 --> L4 --> L5 --> L6 ```
يشرح السلم التدرج في الفعالية؛ في القاعدة توجد التعليقات والوثائق التي قد يتجاهلها الوكيل ببساطة. يعلوها أمر الوكيل (System Prompt)، ورغم تحسنه إلا أنه ليس مضمونًا ويتنافس مع بقية السياق؛ لذا تنصح كينزي بحصر أوامر الوكيل فيما هو "مفاجئ وغير تقليدي" في تطبيقك، مع افتراض أن النموذج يفهم بالفعل اتفاقيات Rails القياسية. تأتي بعد ذلك الاتفاقية المتسقة (Pattern Matching)؛ فإذا كانت 40 وحدة تحكم تتبع أسلوبًا معينًا وواحدة فقط تخالفه، سيتعلم الوكيل تلقائيًا النمط الصحيح من الأربعين مجانًا. تليه المولدات (Generators) التي تجعل توليد الكائنات السليمة أسرع من كتابتها يدويًا، مما يجبر الوكيل على اتخاذ المسار الأسرع دائمًا. وصولاً إلى قواعد التدقيق وفحوصات التكامل المستمر (CI Failures) التي تمنع دمج الكود نهائيًا، وأخيرًا حدود الأنواع والواجهات المعمارية الصارمة.
وتطلق كينزي تحديًا للحضور: اختيار القواعد الثلاث الأكثر انتهاكًا من قِبل وكلائهم — وهي نفس الملاحظات التي تتكرر مرارًا في مراجعات طلبات السحب — ونقل كل قاعدة منها درجة واحدة فقط لأعلى على سلم الإنفاذ؛ فهذا الاستثمار الذي يستغرق بضع ساعات فقط يحقق نتائج وقائية دائمة.
---
[27:03](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1623s) خرائط الميزات وتوثيق النوايا المفقودة
بالعودة إلى أدوات التحقيق في إضافات مثل PStack، تسلط كينزي الضوء على وظيفتين استقصائيتين: أمر `/how` الذي يحاكي ما يكتشفه المطور عادةً بتشغيل التطبيق والتفاعل المباشر معه ولكن بشكل مكتوب ينفذه الوكيل ذاتيًا، وأمر `/why` الذي يمثل القيمة الكبرى في رأيها. يقوم أمر `/why` بالاستعلام المتوازي في سجل التغييرات (Git History)، والتذاكر، والوثائق، ومحادثات الفريق لاستعادة النوايا والقرارات الكامنة وراء الكود، لأن "النية لم تكن موجودة في المستودع أبدًا"، بل تظل حبيسة نقاشات طلبات السحب لعام 2023 أو داخل ذاكرة مهندس بعينه.
تُعرّف كينزي "خريطة الميزات" (Feature Map) بأنها التدوين الصريح لإجابات هذين السؤالين لمرة واحدة بدلاً من إعادة استكشافهما في كل جلسة عمل. وتضرب مثلاً بـ "الأفخاخ البرمجية" (Gotchas) التي لا يمكن لأي قدر من القراءة البرمجية كشفها، بل تظل في رأس مهندس واحد وتظهر فقط مرتين سنويًا أثناء المراجعة عندما يقع فيها أحدهم. إن كتابة 10 أسطر توضيحية لهذه الأفخاخ يمكن أن توفر على الوكيل 15 استدعاء أداة استكشافية في كل جلسة عمل. لكنها تحذر بشدة: إذا كانت هذه الخريطة عرضة للتغيير، فيجب أتمتة تحديثها؛ إذ أظهرت التجارب أن تزويد النماذج بتوثيق مضلل أو تعليقات غير متطابقة أدى إلى هبوط دقة GPT-4 للنصف (من 43.5% إلى 22.1%)، مؤكدة أن: "التوثيق الدقيق شبه مجاني، بينما التوثيق المضلل سيكلفك الكثير".
---
[28:35](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1715s) مستقبل تعدد الوكلاء وفلسفة Rails في الاتفاقيات
تختتم كينزي حديثها بالنظر إلى وتيرة تطور الذكاء الاصطناعي المتسارعة، مؤكدة أن المستقبل القريب سيكون حتمًا بيئة "متعددة الوكلاء" (Multi-Agent). فالعمل الحالي المبني على افتراض وجود وكيل واحد لم يعد يمثل الواقع القادم. وتشير إلى مقولة لورين بأن التوازي البسيط يجعل الوكلاء يكتبون كودًا بسرعة أكبر، ولكن القاعدة الأساسية تظل: "اجعل وكيلك الواحد يعمل بموثوقية أولاً، امنحه السياق، واطلب منه الأدلة، ثم اتجه نحو التوازي".
وتستشهد بدراسة أطلقت 32 وكيلاً للعمل معًا على قاعدة بيانات ورمز برمجي واحد لقياس سلوكهم. في غياب التنسيق، كانت 78% من المهام المنفذة مكررة تمامًا؛ حيث كان الوكلاء يحلون نفس المشكلات دون علم بعضهم البعض وبلغت حالات التعارض 410 حالات. ولكن بمجرد إضافة آليات حجز الأصول ومشاركة حالة الإنجاز (Shared State)، اختفى العمل المكرر تمامًا وانخفضت حالات التعارض من 410 إلى 48 تعارضًا فقط. وأثبتت التجربة أن الحل لم يكن في انتظار نموذج ذكاء اصطناعي أذكى، بل في بناء بنية تحتية ومكان مشترك وواضح للتنسيق.
تربط كينزي هذا الواقع بجوهر مجتمع Ruby on Rails على مدار أكثر من 20 عامًا؛ فمبدأ "الاتفاقية فوق التكوين" (Convention over Configuration) لم يكن أبدًا مجرد وسيلة لزيادة الإنتاجية اللحظية، بل كان تجسيدًا لـ "الاهتمام بمن يأتي بعدك". إن وجود مكان متوقع ومحدد لكل شيء يضمن عدم الحاجة للسؤال المستمر: - أحيانًا يكون القادم موظفًا جديدًا في أسبوعه الأول. - أحيانًا يكون مهندس الطوارئ المناوب في الساعة الثانية صباحًا وهو يفتح ملفًا لم يره قط. - أحيانًا يكون وكيل ذكاء اصطناعي فاقدًا للذاكرة تمامًا، يقرأ المستودع بتمعن شديد ثم ينسى كل كلمة فيه بحلول الصباح. - وأحيانًا يكون أنت نفسك بعد 18 شهرًا محاولاً تذكر سبب كتابة الكود بتلك الطريقة.
وتلخص كينزي الرسالة الختامية: "اجعله قابلاً للعثور عليه... هذه هي الاستراتيجية؛ لقد كنت طوال هذا الوقت تكتب نافذة سياقية دون أن تدري من سيقرأها لاحقًا".
[30:46](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1846s) ختام العرض ومصادر المتابعة
اختتمت كينزي دورهام غريس حديثها بالتأكيد على المبدأ الأساسي في هندسة البرمجيات وهو مراعاة "من سيأتي بعدك دائمًا" عند كتابة الكود وبناء الأنظمة، سواء كان القادم مطورًا بشريًا أو وكيل ذكاء اصطناعي. ووجهت شكرها الجزيل للحضور في قاعة المؤتمر على حسن استماعهم واهتمامهم بمتابعة العرض، معربةً عن ترحيبها بالتواصل مع المطورين والمهندسين عبر منصتي لينكدإن وتويتر لمواصلة النقاش وتبادل الخبرات حول تطوير تطبيقات ريلز في عصر وكلاء الذكاء الاصطناعي.
عرضت المتحدثة في الشريحة الختامية قائمة بالدراسات والمراجع التي استندت إليها طوال حديثها، داعية الحاضرين إلى التقاط صورة للشاشة أو مسح رمز الاستجابة السريعة (QR code) للوصول المباشر إلى الأوراق البحثية والبيانات المذكورة. كما أشارت إلى تجربة Pstack، ولفتت الانتباه إلى تقرير وكلاء الذكاء الاصطناعي الصادر عن مؤسسة ريلز (Rails Foundation)، واصفة إياه بأنه يتضمن نتائج ورؤى مثيرة للاهتمام للغاية، قبل أن تختتم كلمتها بتوجيه الشكر النهائي للحضور.
- **قنوات التواصل:** الترحيب بمتابعة النقاش والتواصل المهني عبر لينكدإن وتويتر. - **المصادر والأبحاث:** توفير رمز استجابة سريعة (QR code) يتيح الوصول إلى الأوراق البحثية والمراجع التي استند إليها العرض. - **تقارير ومراجع إضافية:** الإشارة إلى تجربة Pstack وأهمية الاطلاع على تقرير مؤسسة Rails المتعلق بوكلاء الذكاء الاصطناعي وما يحمله من بيانات قيّمة للمجتمع التقني.
## Notable quotes > [00:11](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=11s) توليد الشفرة رخيص للغاية، لكن التحقق منها باهظ التكلفة — كينزي دورهام غريس
> [03:01](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=181s) ما الذي أثبته الوكيل بالدليل القاطع قبل إعلانه عن اكتمال المهمة؟ — كينزي دورهام غريس
> [08:24](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=504s) اختبر أولاً، أو اختبر بالتتبع الحي، ولا تختبر أبداً بعد ذلك اعتماداً على ذاكرة النموذج — كينزي دورهام غريس
> [12:22](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=742s) البرنامج الخطير ليس الجاهل، بل هو الذي رأى اتفاقيتك، وفهمها، وقرر أن المسار الخاطئ يبدو أقصر — كينزي دورهام غريس
> [16:56](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1016s) إذا كان المستخدم مضطراً لتشغيل تطبيقك لمعرفة ما يجري، فالوكيل يواجه المعاناة ذاتها — كينزي دورهام غريس
> [18:57](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1137s) القيود الصحيحة لا تُملي على البرنامج ما يجب فعله، بل تُغير ما يراه ممكناً — كينزي دورهام غريس
> [22:01](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1321s) يجب أن يكون لكل نموذج جداوله الخاصة. لا أحد آخر يلمسها — كينزي دورهام غريس
> [23:07](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1387s) النموذج مُراجع تصميم جيد، ولكنه مُحقق تصميم سيئ للغاية — كينزي دورهام غريس
> [25:16](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1516s) لا يمكنك حل هذه المشكلة بالاستعانة بالتعليمات البرمجية. كل ما يمكنك فعله هو جعل القيام بالشيء الخاطئ أكثر صعوبة في تطبيقاتك — كينزي دورهام غريس
> [27:03](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1623s) التوثيق الدقيق شبه مجاني، بينما التوثيق المضلل سيكلفك الكثير — كينزي دورهام غريس
> [28:35](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1715s) اجعل وكيلك الواحد يعمل بموثوقية أولاً، امنحه السياق، واطلب منه الأدلة، ثم اتجه نحو التوازي — كينزي دورهام غريس
> [28:35](https://www.youtube.com/watch?v=QMkZ2J24XGI&t=1715s) اجعله قابلاً للعثور عليه... هذه هي الاستراتيجية؛ لقد كنت طوال هذا الوقت تكتب نافذة سياقية دون أن تدري من سيقرأها لاحقًا — كينزي دورهام غريس
## Mentioned كينزي دورهام غريس, GitHub Copilot, Rails World 2026, Ruby on Rails, Shopify, Claude, Claude Opus, Rails Foundation, Writebook, Pstack, جامعة كوينز, GPT-4, GPT-5, لورين تان, SpaceX, Packwerk, جيريمي ميلر, scikit-learn
## Video description Coding agents can write good Ruby. So why do so many of their pull requests still fail? At Rails World 2026, Kinsey Durham Grace draws on her time on GitHub's Copilot coding agent platform team, where she watched agents work in real codebases every day. Her argument is that agents usually fail for reasons other than programming ability.
Kinsey looks at the gap between adoption and trust. She cites survey data showing 84% of developers use AI to write code but only 29% trust it. She also points to a study of more than 33,000 agent-authored PRs, which found conflict rates above 41% when two agents work at the same time. Because generation is cheap and verification is not, reviewing harder won't solve the problem. Instead, she shares research-backed changes you can make to your code and architecture so agents perform better and earn more trust, whichever agent you use.
***
Thank you Shopify for sponsoring the editing and post-production of these videos. Check out insights from the Engineering team at: https://shopify.engineering/
#RailsWorld #RubyOnRails #AI #CodingAgents #SoftwareArchitecture
[Source](https://www.youtube.com/watch?v=QMkZ2J24XGI)