
بقلم: نور | محررة الأبحاث والدراسات · صوت تحريري بإشراف بشري
كود يكتبه الذكاء الاصطناعي لكنه لا يفعل ما طلبته منه — هذا ليس مشكلة نادرة، بل هو السيناريو الافتراضي في عالم “vibe coding”. باحثون من جامعات عدة قدّموا في ورقة بحثية نُشرت على arXiv في 2 يوليو 2026 إطاراً اسمه Verifiable Literate Programming (VLP)، يهدف إلى حل هذه المعضلة من جذورها: لا بتحسين النموذج، بل بإعادة تصميم طريقة مراجعة الكود كلياً.
المشكلة التي يعالجها VLP واضحة وموثّقة. حين يولّد LLM كوداً بناءً على تعليمات بالغة الطبيعية، تظهر الأخطاء من مصدرين: إما متطلبات غير مكتملة من المستخدم في الأصل، أو انحرافات دلالية دقيقة بين ما فهمه النموذج وما قصده المستخدم. أساليب التحقق الموجودة اليوم تقع في أحد فخّين: إما الاعتماد على اختبارات مولّدة تلقائياً بواسطة LLM آخر — وهذا يعيد تكرار نفس الغموض — أو إشراك المستخدم فقط في مراجعة الـ prompts واختبارات جزئية، مما يُغفل حالات حافة كثيرة وتفاصيل تنفيذية حرجة. دراسة الأخطاء التي أجراها فريق البحث أثبتت أن التغذية الراجعة التفصيلية من الإنسان ضرورة لا خيار.
الحل الذي يقترحه VLP يقوم على طبقة وسيطة لم تكن موجودة من قبل: توثيق بلغة طبيعية دقيقة وغير ملتبسة، يُولَّد تلقائياً من الكود المكتوب، ويعمل كجسر قابل للقراءة بين الـ prompt الأصلي والكود المنفَّذ. المستخدم لا يقرأ كوداً، بل يقرأ توصيفاً منطقياً لما يفعله الكود خطوةً بخطوة، ثم يُشير إلى أي تباين بين ما يراه وما يريده.
الإطار يعمل عبر ثلاث تقنيات متكاملة:
- لغة توثيقية من النوع Literate بصياغة غير ملتبسة: VLP لا يستخدم لغة طبيعية حرّة تقبل التفسير المتعدد، بل لغة توثيق ذات قواعد صارمة وترجمة شبه حتمية من الكود إلى التوثيق. هذا يعني أن التوثيق يعكس الكود الفعلي بدقة، لا ما يتمناه النموذج أنه كتبه.
- كشف التناقضات بدقة عبر LLM: تُستخدم روابط تتبع (trace links) بين الـ prompt الأصلي وسطور التوثيق، فيُحدّد النموذج تلقائياً السطور المشبوهة التي قد تحتوي على تناقض مع النية الأصلية للمستخدم. النتيجة: المراجع البشري لا يقرأ كل شيء، بل يُركّز جهده على نقاط الخطر المحتملة تحديداً.
- وحدة تحقق رسمي (Formal Verification): بعد أن يُصادق المستخدم على التوثيق، يستخدمه VLP لاشتقاق فحوصات على استخدام الـ API وخصائص رسمية (formal properties)، ثم يتحقق منها بمقارنتها بالكود الفعلي عبر تقنية model checking. هذه الخطوة تحوّل موافقة الإنسان على التوثيق إلى ضمانة قابلة للتحقق الآلي.
النتائج التي رصدها الفريق لافتة: VLP يرفع معدل pass@1 من نطاق 28.7%–73.2% إلى 65.4%–93.5% (وفقاً للورقة البحثية على arXiv)، مع جهد بشري معقول. الفجوة الأضيق في الطرف العلوي (من 73.2% إلى 93.5%) مقبولة، لكن القفز من 28.7% إلى 65.4% في أسوأ الحالات هو الأكثر إثارة للاهتمام، لأنه يعني أن الإطار يُفيد تحديداً في السيناريوهات التي يكون فيها الكود الأصلي بعيداً جداً عن الصواب.
ما يميّز VLP عن مقاربات سابقة هو الإصرار على إشراك الإنسان في حلقة كاملة، لا في نقطة واحدة. المستخدم لا يكتب الـ prompt ثم ينتظر نتيجة — بل يشارك في مرحلة المراجعة بأسلوب منظّم يُقلّل من العبء المعرفي بدلاً من زيادته. والأهم أن هذا لا يستلزم خبرة برمجية عميقة: التوثيق قابل للقراءة من المستخدمين في جميع مستويات البرمجة، بما فيهم غير المبرمجين الذين يعتمدون على vibe coding بشكل كامل.
السؤال الذي لا تجيب عنه الورقة بشكل مباشر هو التكلفة الزمنية الفعلية لمرحلة مراجعة التوثيق في مشاريع واسعة النطاق. “جهد معقول” وصف يحتاج إلى معايرة في بيئات إنتاجية حقيقية. كذلك، الاعتماد على model checking يفرض قيوداً على أنواع الخصائص التي يمكن التحقق منها رسمياً — وهي قيود معروفة في مجال التحقق الرسمي عموماً. مع ذلك، VLP يقدّم اتجاهاً واضحاً: بدلاً من محاولة جعل LLMs معصومة من الخطأ، اجعل عملية اكتشاف خطئها ممنهجة وقابلة للأتمتة الجزئية. هذا تحوّل في التفكير يستحق المتابعة، خاصةً لمن يبني أدوات مراجعة كود أو بيئات تطوير مدعومة بالذكاء الاصطناعي.







