SPECMINE: A Large-Scale Corpus of Spec-Driven Development Artifacts
यह शोध पत्र SPECMINE को प्रस्तुत करता है, जो एक विशाल-स्तरीय कॉर्पस है जो सार्वजनिक GitHub रिपॉजिटरी से लगभग 570,000 स्पेसिफिकेशन फाइलों और 5,000 से अधिक संबद्ध पुल रिक्वेस्ट को एकत्रित करता है ताकि स्पेसिफिकेशन-ड्रिवन डेवलपमेंट आर्टिफ़ेक्ट्स और AI एजेंटों द्वारा कोड में उनके रूपांतरण के पहले व्यापक अध्ययन को सक्षम बनाया जा सके।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
सॉफ्टवेयर निर्माण की दुनिया में, एक प्रोग्राम के विचार और स्वयं प्रोग्राम के बीच लंबे समय से एक मौलिक तनाव रहा है। पारंपरिक रूप से, एक डेवलपर अपने मन में एक दृष्टि रखता था या नैपकिन पर कुछ नोट्स लिखता था, और फिर उस दृष्टि को कोड की पंक्तियों में अनुवाद करने में महीनों बिता देता था। कोड प्राथमिक आर्टिफैक्ट (artifact) था, वह चीज़ जिसे लिखा, समीक्षा की और बनाए रखा जाता था। हालाँकि, हाल ही में एक नई पद्धति उभरी है जहाँ क्रम उलट गया है। एक भी पंक्ति कोड लिखे जाने से पहले, एक डेवलपर, अक्सर एक आर्टिफिशियल इंटेलिजेंस टूल की मदद से, एक विस्तृत, संरचित विवरण तैयार करता है कि क्या बनाया जाना चाहिए। यह विवरण, जो सामान्य भाषा में लिखा जाता है, एक ब्लूप्रिंट (blueprint) के रूप में कार्य करता है। इसके बाद एक AI एजेंट इस ब्लूप्रिंट को पढ़ता है और वास्तविक सॉफ्टवेयर उत्पन्न करता है। इस बदलाव का अर्थ है कि परियोजना का सबसे महत्वपूर्ण दस्तावेज़ अब कोड नहीं, बल्कि स्वयं विनिर्देश (specification) है। ये विनिर्देश कैसे लिखे जाते हैं, वे कैसे बदलते हैं, और वे अंततः कार्यशील सॉफ्टवेयर में कैसे परिवर्तित होते हैं, इसे समझना अब उन सभी के लिए एक महत्वपूर्ण प्रश्न है जो अध्ययन कर रहे हैं कि तकनीक कैसे बनाई जाती है।
अब तक, किसी के पास इस नए परिदृश्य का कोई स्पष्ट मानचित्र नहीं था। जबकि डेवलपर्स को ये ब्लूप्रिंट लिखने में मदद करने के लिए दर्जनों उपकरण आए हैं, उनके द्वारा तैयार किए गए वास्तविक दस्तावेजों का बड़े पैमाने पर कभी अध्ययन नहीं किया गया। कारनेगी मेलन यूनिवर्सिटी के शोधकर्ता श्याम अग्रवाल और बोगदान वासिलेसकु ने SPECMINE बनाकर इसे बदल दिया है, जो इन विनिर्देश दस्तावेजों और उनके द्वारा उत्पन्न कोड का एक विशाल संग्रह है। उन्होंने सार्वजनिक GitHub प्रोजेक्ट्स से लगभग पाँच लाख विनिर्देश फ़ाइलें एकत्र कीं, जो 2025 और 2026 में इस पद्धति के जन्म के एक स्नैपशॉट को दर्शाती हैं। इस संग्रह में न केवल विनिर्देशों का टेक्स्ट शामिल है, बल्कि उनके संबंधित प्रोजेक्ट्स का पूर्ण इतिहास, उन्हें लिखने वाले लोग, और विनिर्देश अपडेट होने पर कोड में किए गए विशिष्ट परिवर्तन भी शामिल हैं। यह पहली बार है जब सॉफ्टवेयर समुदाय विस्तार से देख पा रहा है कि AI के युग में एक लिखित विवरण कैसे एक कार्यशील प्रोग्राम में परिवर्तित होता है।
शोधकर्ताओं ने इस संग्रह को दो मुख्य तरीकों से बनाया ताकि वे पूर्ण चित्र को पकड़ सकें। सबसे पहले, उन्होंने "spec.md" या "specs.md" नाम की फ़ाइलों को खोजा, जो अधिकांश नए उपकरणों द्वारा उपयोग किया जाने वाला मानक नाम है। इस खोज ने अकेले ही 73,000 से अधिक विभिन्न रिपॉजिटरी से 4,70,000 से अधिक फ़ाइलें बरामद कीं। इसके बाद उन्होंने AWS Kiro नामक एक विशिष्ट टूल के लिए एक दूसरा, अलग खोज जोड़ा, जो आवश्यकताओं, डिज़ाइन और कार्यों के लिए अलग-अलग फ़ाइलों के साथ एक अलग नामकरण परंपरा का उपयोग करता है। इसने 98,000 अन्य फ़ाइलें जोड़ दीं। इन खोजों को मिलाकर, उन्होंने एक व्यापक जनगणना बनाई जो वर्तमान में उपयोग किए जा रहे अधिकांश उपकरणों को कवर करती है। इस संग्रह की प्रत्येक फ़ाइल को उस प्रोजेक्ट के बारे में जानकारी के साथ टैग किया गया है, जैसे कि कितने लोगों ने प्रोजेक्ट को देखा है, यह कौन सी प्रोग्रामिंग भाषा का उपयोग करता है, और किस विशिष्ट टूल ने विनिर्देश उत्पन्न किया।
यह समझने के लिए कि ये लिखित योजनाएँ वास्तव में कोड तक कैसे ले जाती हैं, शोधकर्ताओं ने एक कदम आगे बढ़ाया। उन्होंने लोकप्रिय प्रोजेक्ट्स के एक छोटे, सावधानीपूर्वक चुने गए समूह पर ध्यान केंद्रित किया और कोड बदलने के हर अनुरोध को ट्रैक किया जिसमें एक विनिर्देश फ़ाइल शामिल थी। उन्होंने लगभग 6,000 ऐसे अनुरोध देखे, जिन्हें 'पुल रिक्वेस्ट' (pull requests) कहा जाता है, जहाँ एक डेवलपर या एक AI एजेंट ने ब्लूप्रिंट और कोड दोनों को एक साथ अपडेट किया। इसने उन्हें विचार और कार्यान्वयन के बीच सीधा संबंध देखने की अनुमति दी। कई मामलों में, विनिर्देश और कोड एक ही अपडेट में एक साथ बदले, जिससे पुष्टि हुई कि ब्लूप्रिंट का उपयोग वास्तविक समय में काम को संचालित करने के लिए किया जा रहा था। हालाँकि, शोधकर्ताओं ने यह भी नोट किया कि यह होने का एकमात्र तरीका नहीं है; कभी-कभी एक योजना पहले लिखी जाती है और कोड बाद में आता है, या कोड पहले लिखा जाता है और योजना बाद में जोड़ी जाती है। डेटा दिखाता है कि हालांकि समवर्ती परिवर्तन (simultaneous change) आम है, लेकिन यह संबंध जटिल है और एक प्रोजेक्ट से दूसरे प्रोजेक्ट में भिन्न होता है।
केवल फ़ाइलों को गिनने से परे, टीम ने इन दस्तावेजों की संरचना का विश्लेषण किया कि वे वास्तव में कैसे दिखते हैं। उन्होंने पाया कि विनिर्देश केवल यादृच्छिक नोट्स नहीं हैं; वे अक्सर विशिष्ट पैटर्न का पालन करते हैं, जैसे कि स्पष्ट शीर्षकों, सूचियों, या संरचित प्रारूपों का उपयोग करना जो उन्हें मनुष्यों और मशीनों दोनों के लिए पढ़ने में आसान बनाते हैं। शोधकर्ताओं ने इन दस्तावेजों के भीतर संदर्भों को ट्रैक करने के लिए एक प्रणाली भी बनाई। यदि कोई विनिर्देश किसी विशिष्ट फ़ाइल या किए जाने वाले कार्य का उल्लेख करता है, तो सिस्टम जाँचता है कि क्या वह फ़ाइल वास्तव में प्रोजेक्ट में मौजूद है या क्या वह कार्य कभी पूरा हुआ था। इसने कुछ प्रोजेक्ट्स में एक महत्वपूर्ण अंतर प्रकट किया: हजारों विनिर्देश ऐसे हैं जो उन फ़ाइलों या कार्यों का उल्लेख करते हैं जो वास्तव में कोड में कभी दिखाई नहीं दिए। यह सुझाव देता है कि जबकि विनिर्देश लिखने की प्रथा बढ़ रही है, उन विनिर्देशों को पूरी तरह से साकार करने का अनुशासन अभी भी विकसित हो रहा है।
यह संग्रह यह जानने का भी एक अवसर प्रदान करता है कि लेखन कौन कर रहा है। चूंकि डेटा में प्रत्येक परिवर्तन का इतिहास शामिल है, शोधकर्ता देख सकते हैं कि क्या विनिर्देश एक मानव द्वारा लिखा गया था, एक AI द्वारा उत्पन्न किया गया था, या दोनों का मिश्रण था। वे यह भी ट्रैक कर सकते हैं कि ये दस्तावेज़ कितनी बार अपडेट किए जाते हैं और छोड़े जाने से पहले वे कितने समय तक सक्रिय रहते हैं। विवरण का यह स्तर उन प्रश्नों को उत्तर देने की अनुमति देता है जो पहले असंभव थे, जैसे कि क्या एक अच्छी तरह से लिखा गया विनिर्देश अंतिम कोड में कम त्रुटियों की ओर ले जाता है, या क्या कुछ प्रकार के प्रोजेक्ट इस नए तरीके को अपनाने की अधिक संभावना रखते हैं। डेटा दिखाता है कि यह प्रथा तेजी से फैल रही है, अधिकांश फ़ाइलें पिछले दो वर्षों में ही दिखाई दी हैं, जो सॉफ्टवेयर विकास के एक विशिष्ट नए युग को चिह्नित करती हैं।
शोधकर्ताओं ने इस पूरे डेटासेट को सार्वजनिक रूप से उपलब्ध कराया है, जिसे इस तरह व्यवस्थित किया गया है कि कोई भी विचारों और कोड के बीच के संबंधों को एक्सप्लोर कर सके। उन्होंने विनिर्देशों का कच्चा टेक्स्ट (raw text), प्रोजेक्ट का इतिहास और दोनों के बीच के लिंक प्रदान किए हैं, बिना योगदानकर्ताओं और प्रोजेक्ट्स की पहचान छिपाए, क्योंकि सब कुछ सार्वजनिक स्रोतों से आता है। यह पारदर्शिता सुनिश्चित करती है कि अन्य वैज्ञानिक निष्कर्षों को सत्यापित कर सकें, नए प्रश्न पूछ सकें, और यह अध्ययन कर सकें कि यह प्रथा समय के साथ कैसे बदलती है। यह कार्य यह दावा नहीं करता कि यह नई पद्धति पूर्ण है या इसने सॉफ्टवेयर विकास की सभी समस्याओं को हल कर दिया है। इसके बजाय, यह साक्ष्य का पहला ठोस आधार प्रदान करता है, एक ऐसे क्षेत्र का बड़े पैमाने पर मानचित्र जो पहले अनछुआ था। यह दिखाता है कि जबकि विनिर्देश लिखने के उपकरण यहाँ हैं और काम की मात्रा बढ़ रही है, मनुष्य और मशीनें मिलकर उन शब्दों को सॉफ्टवेयर में कैसे बदलती हैं, इसे अभी भी एक-एक प्रोजेक्ट के माध्यम से समझा जा रहा है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।