Spec-Driven Development:From Code to Contract in the Age of AI Coding Assistants
यह शोध पत्र स्पेसिफिकेशन-ड्रिवन डेवलपमेंट (SDD) के लिए एक व्यापक मार्गदर्शिका प्रस्तुत करता है, जो इसके सिद्धांतों, स्पेसिफिकेशन की तीन स्तरों की कठोरता और सहायक उपकरणों को रेखांकित करता है ताकि यह प्रदर्शित किया जा सके कि कैसे स्पेसिफिकेशन को प्राथमिक आर्टिफैक्ट (artifact) के रूप में मानने से विविध सॉफ्टवेयर डोमेन में एआई कोडिंग असिस्टेंट का प्रभावी ढंग से लाभ उठाया जा सकता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक बहुत ही प्रतिभाशाली, अविश्वसनीय रूप से तेज़, लेकिन थोड़ी शाब्दिक अर्थ निकालने वाली (literal-minded) रोबोट शेफ को आपके लिए एक जटिल भोजन पकाने के लिए काम पर रख रहे हैं।
पुराना तरीका (कोड-फर्स्ट):
आप रोबोट के पास जाते हैं और कहते हैं, "मेरे लिए एक स्वादिष्ट रात का खाना बनाओ।"
रोबोट, खुश होकर आपकी बात मानने के लिए, तुरंत सब्जियां काटने और पैन गर्म करने लगता है। वह अनुमान लगाता है कि आपको पास्ता चाहिए। वह अनुमान लगाता है कि आपको यह तीखा चाहिए। वह अनुमान लगाता है कि आपको उस महंगे ट्रफल ऑयल का उपयोग करना चाहिए जिसका आपने उल्लेख भी नहीं किया था।
दस मिनट बाद, आपके पास एक प्लेट तीखा ट्रफल पास्ता है। आपको सलाद चाहिए था।
अब आपको रोबोट को रुकने के लिए कहना होगा, पास्ता फेंकना होगा और फिर से शुरू करना होगा। यही वह है जिसे पेपर "वाइब कोडिंग" (vibe coding) कहता है: अस्पष्ट प्रॉम्प्ट्स पर निर्भर रहना जहाँ AI को आपके इरादे का अनुमान लगाना पड़ता है। परिणाम अक्सर एक गड़बड़ होता है जिसे लगातार ठीक करने की आवश्यकता होती है।
नया तरीका (स्पेक-ड्रिवन डेवलपमेंट):
निर्देश चिल्लाने के बजाय, आप पहले एक रेसिपी कार्ड (स्पेसिफिकेशन/विवरण) लिखते हैं।
आप बिल्कुल स्पष्ट रूप से लिखते हैं: "मुझे एक सलाद चाहिए। पालक, टमाटर और फेटा चीज़ का उपयोग करें। मेवे (nuts) न डालें। ड्रेसिंग अलग से रखें। कमरे के तापमान पर परोसें।"
आप यह कार्ड रोबोट को सौंप देते हैं। रोबोट इसे पढ़ता है, अपनी समझ की जांच करता है, और फिर खाना बनाना शुरू करता है।
यदि रोबोट इसमें मेवे डालने की कोशिश करता है, तो वह रुक जाता है क्योंकि कार्ड कहता है "मेवे न डालें।" यदि वह इसे गर्म परोसने की कोशिश करता है, तो वह रुक जाता है।
इस परिदृश्य में, रेसिपी कार्ड ही बॉस है। भोजन (कोड) केवल उस रेसिपी का पालन करने का परिणाम है। यदि भोजन का स्वाद गलत है, तो आप शेफ को दोष नहीं देते; आप देखते हैं कि क्या रेसिपी स्पष्ट थी।
कठोरता के तीन स्तर
पेपर समझाता है कि आपको हमेशा 50 पन्नों का अनुबंध लिखने की आवश्यकता नहीं है। इस "रेसिपी कार्ड" दृष्टिकोण का उपयोग करने के तीन तरीके हैं, जो इस बात पर निर्भर करते हैं कि आप कितने गंभीर हैं:
स्पेक-फर्स्ट (द "स्केच"):
- यह क्या है: आप खाना बनाना शुरू करने से पहले रेसिपी लिखते हैं ताकि सभी इस बात पर सहमत हो सकें कि वे क्या बना रहे हैं।
- कब उपयोग करें: किसी नए विचार को आज़माने या एक बार के प्रोजेक्ट के लिए बेहतरीन है।
- कमी: एक बार जब भोजन बन जाता है, तो आप शायद रेसिपी कार्ड को फेंक दें। यदि आप बाद में रेसिपी बदलते हैं, तो कार्ड अपडेट नहीं हो सकता है। यह शुरुआत के लिए अच्छा है, लेकिन दीर्घकालिक रखरखाव के लिए नहीं।
स्पेक-एंकरड (द "लिविंग मेनू"):
- यह क्या है: रेसिपी कार्ड को चूल्हे के बगल में फ्रिज पर रखा जाता है। हर बार जब आप व्यंजन बदलते हैं (अधिक पनीर जोड़ते हैं, ड्रेसिंग बदलते हैं), तो आपको तुरंत कार्ड को अपडेट करना होगा।
- कब उपयोग करें: यह अधिकांश पेशेवर रसोई (प्रोडक्शन सॉफ्टवेयर) के लिए सबसे उपयुक्त है।
- जादू: रसोई में एक रोबोट इंस्पेक्टर होता है। यदि शेफ व्यंजन बदल देता है लेकिन कार्ड को अपडेट करना भूल जाता है, तो इंस्पेक्टर अलार्म बजा देता है। यह सुनिश्चित करता है कि मेनू (डॉक्यूमेंटेशन) हमेशा भोजन (सॉफ्टवेयर) से मेल खाए।
स्पेक-एज़-सोर्स (द "3D प्रिंटर"):
- यह क्या है: यह सबसे चरम संस्करण है। आप कभी भी सीधे भोजन को नहीं छूते। आप केवल रेसिपी कार्ड को संपादित करते हैं। एक मशीन फिर केवल उस कार्ड के आधार पर भोजन को स्वचालित रूप से प्रिंट करती है।
- कब उपयोग करें: इसका उपयोग कार के इंजन या मेडिकल डिवाइस जैसे उच्च-जोखिम वाले क्षेत्रों में किया जाता है, जहाँ एक गलती खतरनाक हो सकती है।
- नियम: यदि आप कार के ब्रेक बदलना चाहते हैं, तो आप हाथ में रिंच लेकर बोनट के नीचे नहीं पहुँचते। आप ब्लूप्रिंट बदलते हैं, और मशीन ब्रेक्स को पूरी तरह से फिर से बनाती है। आपको कभी भी मैन्युअल रूप से उत्पन्न भागों को संपादित करने की अनुमति नहीं है।
AI इसे क्यों आवश्यक बनाता है
पेपर का तर्क है कि AI कोडिंग असिस्टेंट उस प्रतिभाशाली लेकिन शाब्दिक अर्थ निकालने वाले रोबोट शेफ की तरह हैं। वे निर्देशों का पालन करने में अद्भुत हैं, लेकिन "मन पढ़ने" में खराब हैं।
- स्पेक के बिना: आप AI से "एक लॉगिन फीचर जोड़ें" कहते हैं। AI पासवर्ड के नियम, डेटाबेस का प्रकार और सुरक्षा स्तर का अनुमान लगाता है। वह अक्सर गलत हो जाता है।
- स्पेक के साथ: आप AI को एक स्पष्ट अनुबंध देते हैं: "लॉगिन के लिए 12-कैरेक्टर का पासवर्ड आवश्यक है, ईमेल का उपयोग करता है, और 3 असफल प्रयासों के बाद अकाउंट लॉक कर देता है।" AI नियमों का पूरी तरह से पालन करता है।
वर्कफ़्लो: एक चार-चरणीय नृत्य
पेपर इस प्रक्रिया के लिए एक सरल लय का सुझाव देता है:
- स्पेसिफाई (निर्दिष्ट करें): "क्या" लिखें। (रेसिपी)।
- प्लान (योजना बनाएं): "कैसे" लिखें। (खरीद सूची और किचन लेआउट)।
- इम्प्लीमेंट (कार्यान्वित करें): इसे बनाएँ। (खाना पकाना)।
- वैलिडेट (सत्यापित करें): इसकी जाँच करें। (स्वाद परीक्षण)। यदि स्वाद रेसिपी से मेल नहीं खाता है, तो आप खाना पकाने को ठीक करते हैं या रेसिपी को अपडेट करते हैं, लेकिन आप कभी भी विसंगति को अनदेखा नहीं करते हैं।
कब उपयोग करें (और कब न करें)
पेपर एक सरल निर्णय मार्गदर्शिका प्रदान करता है:
- इसका उपयोग करें जब: आप कुछ बड़ा बना रहे हों, एक टीम के साथ काम कर रहे हों, AI का उपयोग कर रहे हों, या कुछ ऐसा बना रहे हों जहाँ गलतियाँ महंगी हो सकती हैं (जैसे बैंकिंग या कारें)।
- इसका उपयोग न करें जब: आप एक त्वरित प्रोटोटाइप बना रहे हों जिसे फेंक दिया जाना है, या आप एक अकेले डेवलपर हैं जो एक साधारण टू-डू लिस्ट ऐप बना रहे हैं जहाँ आवश्यकताएं स्पष्ट हैं। उन मामलों में, विस्तृत रेसिपी लिखना समय की बर्बादी है।
मुख्य निष्कर्ष
दशकों से, सॉफ्टवेयर डेवलपर्स पहले कोड लिखते थे और बाद में "रेसिपी" (डॉक्यूमेंटेशन) लिखते थे, यदि वे लिखते भी थे तो। यह पेपर कहता है: स्क्रिप्ट को पलट दें।
स्पेसिफिकेशन को प्राथमिक चीज़ बनाएं जो आप बनाते हैं। कोड को उस स्पेसिफिकेशन के स्वचालित आउटपुट के रूप में मानें।
ऐसा करके, आप अनुमान लगाना बंद कर देते हैं, आप अपने AI टूल्स से लड़ना बंद कर देते हैं, और आप सुनिश्चित करते हैं कि आप जो बना रहे हैं वह बिल्कुल वही है जो आप बनाना चाहते थे। कोड स्पेसिफिकेशन की एक छाया बन जाता है, न कि इसके विपरीत।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।