कर्सर नियम सेट करना ताकि AI आपकी कोडबेस शैली को तोड़ना बंद कर दे
.कर्सर/नियम सेटअप जो मैं एक टीम रेपो पर उपयोग करता हूं: एक वैश्विक फ़ाइल, एक प्रति-निर्देशिका फ़ाइल, और तीन नियम जिन्होंने मेरे 90% स्टाइल-फ़िक्स कमिट को हटा दिया।
कर्सर के साथ मेरा पहला महीना, प्रत्येक एजेंट संपादन ने काम किया और अभी भी गलत लगा - टैब जहां मेरा रेपो रिक्त स्थान का उपयोग करता है, नामित लोगों के कोडबेस में डिफ़ॉल्ट निर्यात, उस शैली में लिखे गए परीक्षण जिसे हमारा सीआई अस्वीकार करता है। सुधार बेहतर संकेत नहीं दे रहा था। यह नियम फ़ाइलें थीं, जिन्हें ठीक से सेट किया गया था।
कर्सर आपके रेपो में .cursor/rules से नियम पढ़ता है। गैर-परक्राम्य को कवर करने वाली एक परियोजना-स्तरीय नियम फ़ाइल से प्रारंभ करें: पैकेज प्रबंधक, आयात आदेश, नामकरण परंपराएं, और आपके कोडबेस द्वारा उपयोग किए जाने वाले दो या तीन पैटर्न जो सामान्य डिफ़ॉल्ट से भिन्न होते हैं। इसे लगभग 50 पंक्तियों के नीचे रखें - एक नियम फ़ाइल जिसे कोई भी बनाए नहीं रखता वह शोर बन जाती है जिसे मॉडल अनदेखा करना सीख जाता है।
कम मूल्यांकित विशेषता प्रति-निर्देशिका नियम है। हमारी घटक निर्देशिका को एक नियम मिलता है: केवल फ़ंक्शन घटक, प्रॉप्स इनलाइन टाइप किया गया, कोई डिफ़ॉल्ट निर्यात नहीं। हमारी सर्वर निर्देशिका को एक और मिलता है: कोई क्लाइंट-साइड आयात नहीं, प्रत्येक हैंडलर इनपुट को मान्य करता है। इस विभाजन ने वैश्विक फ़ाइल में मेरे द्वारा लिखी गई किसी भी चीज़ की तुलना में आउटपुट गुणवत्ता के लिए अधिक काम किया, क्योंकि मॉडल केवल उन नियमों को देखता है जो उन फ़ाइलों पर लागू होते हैं जिन्हें वह छू रहा है।
तीन नियमों ने शुद्ध पुनरावृत्ति के माध्यम से अपना स्थान अर्जित किया। पहला: 'संपादन के बाद, मौजूदा लिंट कमांड चलाएँ और आपके द्वारा प्रस्तुत सभी त्रुटियों को ठीक करें।' दूसरा: 'जिस फ़ाइल को आप संपादित कर रहे हैं उसकी आयात शैली से मेल करें, न कि उस शैली से जिसे आप पसंद करते हैं।' तीसरा: 'यदि किसी बदलाव के लिए नई निर्भरता की आवश्यकता है, तो इंस्टॉल करने के बजाय रुकें और पूछें।' वह आखिरी वाला तब आया जब मुझे एक के बाद एक पांच नए पैकेज मिले जिनमें से एक की जरूरत थी।
मैंने क्या करना बंद कर दिया: प्रत्येक चैट संदेश में स्टाइल निर्देशों को दोहराना। नियमों के साथ, मेरे संकेत इरादे का वर्णन करते हैं - क्या बनाना है, क्या नहीं करना है - और नियम फ़ाइल घर की शैली को संभालती है। प्रॉम्प्ट छोटा हो गया और आउटपुट अधिक सुसंगत हो गया, जो कि पूरा खेल है।
एक रखरखाव आदत: जब एजेंट बार-बार एक ही गलती करता है, तो उसे चैट में डांटने के बजाय एक नियम जोड़ें। बातचीत के साथ चैट सुधार ख़त्म हो जाते हैं; नियम फ़ाइलें कंपाउंड. मेरी नियम फ़ाइल प्रति सप्ताह लगभग दो पंक्तियों तक बढ़ गई है, और प्रत्येक पंक्ति के पीछे एक बग फिक्स है।
अक्सर पूछे जाने वाले प्रश्नों:
प्रश्न: क्या नियम फ़ाइलें कर्सर को धीमा कर देती हैं?
उत्तर: ध्यान देने लायक नहीं. उन्हें आपके संकेत के साथ-साथ संदर्भ में शामिल किया जाता है। वास्तविक लागत एक फूली हुई नियम फ़ाइल है जो ध्यान को कम कर रही है, यही कारण है कि मैं अपने नियमों को सीमित कर देता हूं और उन नियमों को हटा देता हूं जो कोडबेस से आगे निकल गए हैं।
प्रश्न: क्या नियमों को रेपो के लिए प्रतिबद्ध किया जाना चाहिए?
उ: हाँ, यदि आप चाहते हैं कि पूरी टीम को लाभ हो - तो उनके साथ लिंटर कॉन्फ़िगरेशन की तरह व्यवहार करें। प्रोजेक्ट फ़ाइल के बजाय उपयोगकर्ता-स्तरीय नियमों में व्यक्तिगत प्राथमिकताएँ रखें।
प्रश्न: नियम एक अच्छा सिस्टम प्रॉम्प्ट लिखने से किस प्रकार भिन्न हैं?
उ: नियम अपने दायरे में प्रत्येक अनुरोध पर स्वचालित रूप से लागू होते हैं, सभी सत्रों में बने रहते हैं, और कोड के साथ संस्करणित होते हैं। आपके दिमाग में मौजूद एक सिस्टम प्रॉम्प्ट आपके अलावा किसी और को लाभ नहीं पहुंचाता है और हर बार जब आप कोई नई चैट शुरू करते हैं तो वह गायब हो जाता है।
