SPECMINE: A Large-Scale Corpus of Spec-Driven Development Artifacts
تقدم هذه الورقة SPECMINE، وهو متن لغوي واسع النطاق يجمع ما يقرب من 570,000 ملف مواصفات وأكثر من 5,000 طلب سحب مرتبط بها من مستودعات GitHub العامة لتمكين أول دراسة شاملة لمصنفات التطوير القائم على المواصفات وتحولها إلى كود برمجي بواسطة وكلاء الذكاء الاصطناعي.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
في عالم إنشاء البرمجيات، لطالما كان هناك توتر جوهري بين فكرة البرنامج والبرنامج نفسه. تقليديًا، كان المطور يحمل رؤية في ذهنه أو يدون ملاحظات على منديل ورقي، ثم يقضي شهورًا في ترجمة تلك الرؤية إلى أسطر من الكود البرمجي. كان الكود هو الأثر الأساسي، الشيء الذي يُكتب ويُراجع ويُصان. ومع ذلك، برزت مؤخرًا ممارسة جديدة يتم فيها قلب الترتيب. فقبل كتابة سطر واحد من الكود، يقوم المطور، غالبًا بمساعدة أداة ذكاء اصطناعي، بصياغة وصف مفصل ومنظم لما يجب بناؤه. هذا الوصف، المكتوب بلغة طبيعية، يعمل بمثابة مخطط توجيهي. ثم يقوم وكيل ذكاء اصطناعي بقراءة هذا المخطط وتوليد البرمجيات الفعلية. يعني هذا التحول أن المستند الأكثر أهمية في المشروع لم يعد الكود، بل المواصفات نفسها. لذا أصبح فهم كيفية كتابة هذه المواصفات، وكيفية تغيرها، وكيف تتحول في النهاية إلى برمجيات تعمل، سؤالاً حاسمًا لأي شخص يدرس كيفية صنع التكنولوجيا.
حتى الآن، لم يكن لدى أحد خريطة واضحة لهذا المشهد الجديد. وبينما ظهرت عشرات الأدوات لمساعدة المطورين في كتابة هذه المخططات، لم تُدرس المستندات الفعلية التي تنتجها على نطاق واسع أبدًا. وقد غير الباحثان شيام أغاروال وبوغدان فاسيليسكو من جامعة كارنيجي ميلون ذلك عبر إنشاء SPECMINE، وهو مجموعة ضخمة من مستندات المواصفات هذه والكود الذي تنتجه. لقد جمعا ما يقرب من نصف مليون ملف مواصفات من مشاريع عامة على GitHub، مما يوثق لقطة لهذه الممارسة وهي تولد في عامي 2025 و2026. ولا تشمل هذه المجموعة نص المواصفات فحسب، بل تشمل أيضًا التاريخ الكامل للمشاريع التي تنتمي إليها، والأشخاص الذين كتبوها، والتغييرات المحددة التي أُجريت على الكود عند تحديث المواصفات. إنها المرة الأولى التي يتمكن فيها مجتمع البرمجيات من رؤية، بالتفصيل، كيف يتحول الوصف المكتوب إلى برنامج يعمل في عصر الذكاء الاصطناعي.
بنى الباحثون هذه المجموعة بطريقتين رئيسيتين لضمان التقاط الصورة الكاملة. أولاً، بحثوا عن ملفات تسمى "spec.md" أو "specs.md"، وهو الاسم القياسي الذي تستخدمه معظم الأدوات الجديدة. هذا البحث وحده استعاد أكثر من 470,000 ملف من أكثر من 73,000 مستودع مختلف. ثم أضافوا بحثًا ثانيًا منفصلاً لأداة محددة تسمى AWS Kiro، والتي تستخدم اصطلاح تسمية مختلفًا يعتمد على ملفات منفصلة للمتطلبات والتصميم والمهام. أضاف هذا 98,000 ملف آخر. ومن خلال دمج عمليات البحث هذه، أنشأوا تعدادًا واسع النطاق يغطي الغالبية العظمى من الأدوات المستخدمة حاليًا. كل ملف في هذه المجموعة مُوسم بمعلومات حول المشروع الذي جاء منه، مثل عدد الأشخاص الذين تابعوا المشروع، ولغة البرمجة التي يستخدمها، والأداة المحددة التي أنشأت المواصفات.
لفهم كيف تؤدي هذه الخطط المكتوبة فعليًا إلى الكود، ذهب الباحثون خطوة أبعد. فقد ركزوا على مجموعة أصغر ومختارة بعناية من المشاريع الشهيرة وتتبعوا كل طلب لتغيير الكود تضمن ملف مواصفات. وجدوا ما يقرب من 6,000 طلب من هذه الطلبات، المعروفة باسم "طلبات السحب" (pull requests)، حيث قام مطور أو وكيل ذكاء اصطناعي بتحديث المخطط والكود في وقت واحد. سمح لهم ذلك برؤية الرابط المباشر بين الفكرة والتنفيذ. وفي كثير من الحالات، تغيرت المواصفات والكود معًا في تحديث واحد، مما يؤكد أن المخطط كان يُستخدم لقيادة العمل في الوقت الفعلي. ومع ذلك، لاحظ الباحثون أيضًا أن هذه ليست الطريقة الوحيدة التي يحدث بها ذلك؛ فأحيانًا يُكتب المخطط أولًا ثم يأتي الكود لاحقًا، أو يُكتب الكود أولًا ثم تُضاف المواصفات بعد ذلك. وتظهر البيانات أنه بينما يكون التغيير المتزامن شائعًا، فإن العلاقة معقدة وتختلف من مشروع لآخر.
بعيدًا عن مجرد عد الملفات، حلل الفريق بنية هذه المستندات لمعرفة شكلها الفعلي. ووجدوا أن المواصفات ليست مجرد ملاحظات عشوائية؛ فهي غالبًا ما تتبع أنماطًا محددة، مثل استخدام عناوين واضحة، أو قوائم، أو تنسيقات مهيكلة تجعلها سهلة القراءة لكل من البشر والآلات. كما بنى الباحثون نظامًا لتتبع الإشارات داخل هذه المستندات. فإذا ذكرت المواصفات ملفًا معينًا أو مهمة يجب القيام بها، يتحقق النظام مما إذا كان ذلك الملف موجودًا بالفعل في المشروع أو ما إذا كانت المهمة قد اكتملت بالفعل. وقد كشف هذا عن فجوة كبيرة في بعض المشاريع: فهناك آلاف المواصفات التي تذكر ملفات أو مهام لم تظهر أبدًا في الكود. وهذا يشير إلى أنه بينما تتزايد ممارسة كتابة المواصفات، فإن انضباط ضمان تحقيق تلك المواصفات بالكامل لا يزال في طور التطور.
تقدم المجموعة أيضًا نافذة على من يقوم بالكتابة. ولأن البيانات تتضمن تاريخ كل تغيير، يمكن للباحثين معرفة ما إذا كانت المواصفات قد كُتبت بواسطة إنسان، أو تم إنشاؤها بواسطة ذكاء اصطناعي، أو مزيج من كليهما. يمكنهم تتبع عدد مرات تحديث هذه المستندات ومدة بقائها نشطة قبل التخلي عنها. هذا المستوى من التفاصيل يسمح بطرح أسئلة كان من المستحيل الإجابة عليها سابقًا، مثل ما إذا كانت المواصفات الجيدة الكتابة تؤدي إلى أخطاء أقل في الكود النهائي، أو ما إذا كانت أنواع معينة من المشاريع أكثر عرضة لتبني هذه الطريقة الجديدة في العمل. وتظهر البيانات أن الممارسة تنتشر بسرعة، حيث ظهرت الغالبية العظمى من هذه الملفات في العامين الماضيين فقط، مما يمثل حقبة جديدة متميزة في تطوير البرمجيات.
أتاح الباحثون هذه المجموعة من البيانات بالكامل للجمهور، منظمة بطريقة تسمت لأي شخص استكشاف الروابط بين الأفكار والكود. لقد قدموا النص الخام للمواصفات، وتاريخ المشاريع، والروابط بينهما، وكل ذلك دون إخفاء هويات المساهمين أو المشاريع، بما أن كل شيء يأتي من مصادر عامة. تعني هذه الشفافية أن علماء آخرين يمكنهم التحقق من النتائج، وطرح أسئلة جديدة، ودراسة كيفية تغير هذه الممارسة بمرور الوقت. لا يدعي هذا العمل أن هذه الطريقة الجديدة مثالية أو أنها حلت جميع مشكلات تطوير البرمجيات، بل إنها توفر أول أساس صلب من الأدلة، وخريطة واسعة النطاق لمنطقة كانت غير مستكشفة سابقًا. وهي توضح أنه بينما تتوفر الأدوات لكتابة المواصفات وهنا حجم العمل المتزايد، فإن الطريقة التي يتعاون بها البشر والآلات لتحويل تلك الكلمات إلى برمجيات لا تزال قيد التبلور، مشروعًا تلو الآخر.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.