बड़े पैमाने के लेगेसी प्रोजेक्ट्स पर काम करने वाले इंजीनियर हर दिन 2 घंटे कोड के ढेर को खंगालने में बिताते हैं। grep के साथ स्ट्रिंग सर्च करने का तरीका अब अपनी सीमा तक पहुँच चुका है। भले ही आप AI एजेंटों को अपनाना चाहते हों, लेकिन वास्तविकता यह है कि यह समझ पाना मुश्किल होता है कि उन्हें वर्कफ़्लो में कैसे शामिल किया जाए। यह लेख उन विशिष्ट तकनीकी प्रक्रियाओं को कवर करता है जो एजेंटों को केवल एक चैटिंग बॉट के बजाय उत्पादकता बढ़ाने वाले टूल के रूप में स्थापित करती हैं।
शोर (Noise) को पहले हटाएँ
यदि आप एजेंट को पूरा कोडबेस दे देते हैं, तो कॉन्टेक्स्ट दूषित हो जाएगा। अनावश्यक डेटा सीखने से यह गलत उत्तर देगा और केवल टोकन लागत बर्बाद होगी। इंडेक्सिंग के दायरे को सीमित करने मात्र से ही प्रतिक्रिया की गति में स्पष्ट सुधार महसूस होगा।
निम्नलिखित 3 बातों को तुरंत लागू करें:
- प्रोजेक्ट रूट में एक
.cursorignoreफ़ाइल बनाएँ।/dist,/build,/target,node_modulesजैसे विशाल बिल्ड आर्टिफैक्ट्स को पूरी तरह से बाहर रखें। - Protobuf स्टब्स या स्वचालित रूप से जेनरेट की गई
*.gen.tsफ़ाइलों को भी बाहर रखें। यह एजेंट को ऐसा कोड बनाने से रोकेगा जो बैकवर्ड कम्पैटिबिलिटी (backward compatibility) की उपेक्षा करता है। - मर्कल ट्री (Merkle tree) आधारित सिंक्रोनाइज़ेशन टूल का उपयोग करें। हर बार पूरे इंडेक्स को फिर से बनाने के बजाय, केवल संशोधित फ़ाइलों के हैश मान को अपडेट करें, जिससे इंडेक्सिंग की गति 3 गुना से अधिक बढ़ जाएगी।
सिंटैक्स ट्री के साथ निर्भरता (Dependency) को ट्रैक करें
टेक्स्ट-आधारित खोज जटिल इनहेरिटेंस संबंधों को कभी नहीं ढूँढ पाएगी। आपको ast-grep जैसे टूल के साथ कोड के सिंटैक्स ट्री (AST) का विश्लेषण करना होगा। इसे प्रॉम्प्ट में शामिल करने से आप साधारण खोज की तुलना में कहीं अधिक सटीक प्रश्न पूछ सकते हैं।
- विश्लेषण करने के लिए सिंटैक्स पैटर्न को परिभाषित करें। उदाहरण के लिए,
ast-grepसिंटैक्स का उपयोग करके उन एसिंक्रोनस फ़ंक्शन पैटर्न को लिखें जिनमें त्रुटि प्रबंधन (error handling) की कमी है। - एजेंट को
@codebaseटूल के साथ यह पैटर्न दें। इस दौरान ऐसे निर्देश जोड़ें जो इसे बाहरी लाइब्रेरी को अनदेखा करने और केवल आंतरिक मॉड्यूल के बीच इनहेरिटेंस संबंधों को खोजने के लिए सीमित करें। - परिणामों को Mermaid डायग्राम के रूप में आउटपुट करने के लिए कहें। जटिल कॉल फ़्लो को विज़ुअलाइज़ करने से समस्या समाधान का समय लगभग 40% कम हो सकता है।
संशोधनों को परीक्षणों से सत्यापित करें
AI द्वारा सुझाया गया संशोधन आधा गलत होता है। यदि आप इसे बिना सोचे-समझे मर्ज करते हैं, तो तकनीकी ऋण (technical debt) बढ़ता जाएगा। CI पाइपलाइन में टेस्ट इम्पैक्ट एनालिसिस (TIA) को शामिल करके सत्यापन लूप को स्वचालित करें।
- एक ऐसी स्क्रिप्ट लिखें जो केवल परिवर्तित कोड से संबंधित टेस्ट चलाए, जैसे Jest का
--findRelatedTests। - एजेंट को निर्देश दें। एक लूप सेट करें जहाँ यदि कोई टेस्ट विफल होता है, तो एजेंट त्रुटि लॉग का विश्लेषण करे और स्वयं कोड को ठीक करे।
- CI चरण में
CodeQLजैसे टूल शामिल करें। यह उन सुरक्षा खामियों को भी स्वचालित रूप से फ़िल्टर कर देगा जिन्हें मनुष्य आसानी से नहीं देख पाते।
इस लूप को बनाने से सिंटैक्स वैलिडेशन की सटीकता में नाटकीय रूप से सुधार हो सकता है। मौजूदा टूलचेन को पूरी तरह से त्यागने की आवश्यकता नहीं है। साधारण खोज के लिए ripgrep अभी भी एजेंटों से 10 गुना अधिक तेज़ है। टूल की विशेषताओं के आधार पर भूमिकाओं को अलग करना ही एक सीनियर इंजीनियर का वास्तविक कार्य है।
