मैंने पहले लिखा है कि क्लॉड 5 मॉडल की नवीनतम पीढ़ी को सबसे अच्छे तरीके से कैसे प्रॉम्प्ट किया जाए और उनके साथ पुनरावृत्तीय रूप से काम करके यह पता लगाया जाए कि आप क्या बनाना चाहते हैं।
लेकिन जब आप क्लॉड को एक संदेश भेजते हैं, तो प्रॉम्प्ट उस संदर्भ का केवल एक छोटा सा हिस्सा होता है जो उसे मिलता है। आपका अधिकांश संदर्भ आपके सिस्टम प्रॉम्प्ट, स्किल्स, CLAUDE.md फ़ाइलों, मेमोरी और अन्य स्रोतों से इकट्ठा होता है। हम इसे कॉन्टेक्स्ट इंजीनियरिंग कहते हैं, और इसका उन परिणामों पर बड़ा प्रभाव पड़ता है जो आप क्लॉड कोड का उपयोग करते समय या अपने स्वयं के एजेंट बनाते समय जनरेट करते हैं।
एक प्रॉम्प्ट के विपरीत, कॉन्टेक्स्ट का उपयोग आम तौर पर कई अनुरोधों में किया जाता है, इसलिए यह उतना विशिष्ट नहीं हो सकता। आप क्लॉड के लिए ये सामान्य प्रॉम्प्ट और मार्गदर्शन कैसे बनाते हैं, खासकर जब आप नहीं जानते कि उपयोगकर्ता का प्रॉम्प्ट क्या हो सकता है?
यह आश्चर्यजनक रूप से कठिन हो सकता है क्योंकि क्लॉड की अपनी क्षमताएं विकसित होती रहती हैं। हाल ही में, हमने क्लॉड मॉडल की नवीनतम पीढ़ी को प्रॉम्प्ट करने के तरीके में एक बड़ी छलांग देखी। हमने क्लॉड ओपस 5 और क्लॉड फ़ेबल 5 जैसे मॉडलों के लिए क्लॉड कोड के सिस्टम प्रॉम्प्ट का 80% से अधिक हटा दिया, और हमारे कोडिंग मूल्यांकनों पर कोई मापने योग्य नुकसान नहीं हुआ।
यहाँ हमने इस नई श्रेणी के मॉडलों को प्रॉम्प्ट करने के बारे में क्या सीखा है, और आप इसका उपयोग अपनी कॉन्टेक्स्ट इंजीनियरिंग को अपडेट करने के लिए कैसे कर सकते हैं। हमने इन सर्वोत्तम प्रथाओं को claude doctor में डाला है, अपनी स्किल्स और CLAUDE.md फ़ाइलों को सही आकार देने के लिए क्लॉड कोड में /doctor कमांड का उपयोग करें।
क्लॉड को आज़ाद करना
कुल मिलाकर, हमने पाया कि हम क्लॉड कोड को अत्यधिक प्रतिबंधित कर रहे थे, अपने सिस्टम प्रॉम्प्ट के माध्यम से और अपनी CLAUDE.md फ़ाइलों और स्किल्स में भी।
उदाहरण के लिए, जब हम क्लॉड कोड के अपने आंतरिक उपयोग की ट्रांसक्रिप्ट पढ़ते हैं, तो हम एक ही अनुरोध में कई परस्पर विरोधी संदेश देखते हैं जैसे "उचित रूप से दस्तावेज़ीकरण छोड़ें," या "टिप्पणियाँ न जोड़ें" क्योंकि हमारे सिस्टम प्रॉम्प्ट, स्किल्स और उपयोगकर्ता अनुरोध एक-दूसरे से टकराते हैं।

आम तौर पर, क्लॉड सही उत्तर तक पहुँचने के लिए उपयोगकर्ता के इरादे की व्याख्या कर सकता है, लेकिन क्लॉड को यह तय करने से पहले इन ओवरलैपिंग और परस्पर विरोधी संदेशों के बारे में अधिक ध्यान से सोचना होगा।
और जबकि ये प्रतिबंध एक बार सबसे खराब स्थितियों से बचने के लिए आवश्यक थे, तब से हमने पाया है कि हम उनमें से कई को हटा सकते हैं और मॉडल को आसपास के संदर्भ और निर्णय का उपयोग करने दे सकते हैं।
इसके अतिरिक्त, क्लॉड कोड के पास अब कई और टूल हैं। क्लॉड पहले मेमोरी, जानकारी और मार्गदर्शन के स्रोत के रूप में CLAUDE.md पर निर्भर करता था। अब हमारे पास मेमोरी, आर्टिफैक्ट और स्किल्स हैं, जिनका उपयोग क्लॉड सत्रों में संदर्भ लोड करने और साझा करने के नए तरीके बनाने के लिए कर सकता है।
तब और अब
कई पिछली कॉन्टेक्स्ट इंजीनियरिंग सर्वोत्तम प्रथाएँ थीं जो मिथक बन गई थीं। इनमें शामिल हैं:

**
तब: क्लॉड को नियम दें
अब: क्लॉड को निर्णय का उपयोग करने दें
**जब हमने पहली बार क्लॉड कोड लॉन्च किया, तो हमें यह सुनिश्चित करने की आवश्यकता थी कि क्लॉड सबसे खराब स्थितियों से बचे, जैसे फ़ाइलों को हटाना। इसका मतलब था कि हम विशेष रूप से मजबूत मार्गदर्शन देंगे जो हमेशा सच नहीं हो सकता है। उदाहरण के लिए, सिस्टम प्रॉम्प्ट में हम कहते थे:
कोड में: कोई टिप्पणी न लिखने का डिफ़ॉल्ट रखें। कभी भी मल्टी-पैराग्राफ डॉकस्ट्रिंग या मल्टी-लाइन कमेंट ब्लॉक न लिखें — अधिकतम एक छोटी लाइन। जब तक उपयोगकर्ता न कहे, प्लानिंग, निर्णय या विश्लेषण दस्तावेज़ न बनाएं — मध्यवर्ती फ़ाइलों से नहीं, बल्कि बातचीत के संदर्भ से काम करें।
लेकिन कुछ प्रॉम्प्ट के लिए, यह मार्गदर्शन गलत होगा। दस्तावेज़ीकरण के मामले में, उपयोगकर्ता की अपनी प्राथमिकताएँ हो सकती हैं, या बहुत जटिल कोड के विशिष्ट भागों को मल्टी-लाइन कमेंट ब्लॉक की आवश्यकता हो सकती है।
फिर भी, पुराने मॉडलों के लिए इन सुरक्षा उपायों के बिना, क्लॉड द्वारा लिखी गई टिप्पणियाँ कई मामलों में गलत होंगी और हमें इस व्यापार-बंद को स्वीकार करना होगा। लेकिन नए मॉडलों में बेहतर निर्णय है और वे स्पष्ट नियमों के बिना इन निर्णयों को अच्छी तरह से संभाल सकते हैं।
नए सिस्टम प्रॉम्प्ट में हम कहते हैं: ऐसा कोड लिखें जो आसपास के कोड जैसा पढ़ा जाए: उसकी टिप्पणी घनत्व, नामकरण और मुहावरे से मेल खाए।
**तब: क्लॉड को उदाहरण दें
अब: इंटरफ़ेस डिज़ाइन करें
**टूल उपयोग के लिए सबसे महत्वपूर्ण नियम क्लॉड को उनका उपयोग करने के उदाहरण देना था। अपने नवीनतम मॉडलों के साथ, हमने पाया है कि उदाहरण देना वास्तव में उन्हें एक निश्चित अन्वेषण स्थान तक सीमित करता है।

उदाहरणों का उपयोग करने के बजाय, अपने टूल, स्क्रिप्ट और फ़ाइलों के डिज़ाइन के बारे में अधिक सोचें — क्लॉड के पास कौन से पैरामीटर हैं और वे अधिक अभिव्यंजक कैसे हो सकते हैं?
उदाहरण के लिए, टूडू टूल उदाहरण में, केवल स्टेटस को पेंडिंग, इन_प्रोग्रेस और कम्प्लीटेड के बीच एक एनुमरेशन के रूप में सूचीबद्ध करना, क्लॉड को इसका उपयोग करने के बारे में संकेत देता है। एक आइटम को इन_प्रोग्रेस रखने का निर्देश हमारे अनुरोधित व्यवहार को परिभाषित करने में मदद करता है।
**तब: सब कुछ सामने रखें
अब: प्रोग्रेसिव डिस्क्लोज़र का उपयोग करें**
क्योंकि क्लॉड कोड कोडिंग पर केंद्रित था, हमारे सिस्टम प्रॉम्प्ट में कोड समीक्षा और सत्यापन करने के बारे में विस्तृत जानकारी शामिल थी। ये हमेशा आवश्यक नहीं थे, लेकिन जब आवश्यक होते थे, तो यह महत्वपूर्ण जानकारी होती थी।
तब से, क्लॉड कोड प्रोग्रेसिव डिस्क्लोज़र का उपयोग करने में बहुत सक्षम हो गया है — सही समय पर सही संदर्भ लोड करना। उदाहरण के लिए, हमने सत्यापन और कोड समीक्षा को उनकी अपनी स्किल्स में स्थानांतरित कर दिया जिन्हें क्लॉड कोड चुनिंदा रूप से कॉल कर सकता था।
लेकिन प्रोग्रेसिव डिस्क्लोज़र केवल स्किल्स के लिए नहीं है, हम इसका उपयोग टूल के लिए भी करते हैं। हमारे कुछ टूल 'डिफ़र्ड लोडिंग' हैं, जिसका अर्थ है कि एजेंट को उनका उपयोग करने से पहले ToolSearch का उपयोग करके उनकी पूर्ण परिभाषाओं को खोजना होगा। यह हमें अधिक टूल (जैसे हमारे टास्क टूल) रखने की अनुमति देता है जो आवश्यक होने तक संदर्भ नहीं लेते हैं।
यही बात आपकी अपनी CLAUDE.md और Skill.md फ़ाइलों पर भी लागू की जा सकती है। एक आम मिथक यह है कि आप इन्हें हर उस ज्ञात प्रथा के लिए एक केंद्रीय भंडार बनाना चाहते हैं जिसका आप सामना कर सकते हैं, क्योंकि क्लॉड अन्यथा इसे नहीं ढूंढ पाएगा। इसके बजाय, फ़ाइलों का एक ऐसा ट्री रखने पर विचार करें जिसे सही समय पर लोड किया जा सके।
**तब: खुद को दोहराएं
अब: सरल टूल विवरण**
पहले के क्लॉड मॉडल को कभी-कभी दोहराए गए निर्देशों की आवश्यकता हो सकती थी या वे अपने कॉन्टेक्स्ट विंडो के अंत में निर्देशों को शुरुआत की तुलना में अधिक सुनने की संभावना रखते थे। इसका मतलब था कि हमारे सिस्टम प्रॉम्प्ट में कभी-कभी मुख्य सिस्टम प्रॉम्प्ट में टूल के संदर्भ और टूल विवरण में निर्देश दोनों होते थे।
हमने पाया कि हम इन दोहराए गए उदाहरणों को हटा सकते हैं और सिस्टम प्रॉम्प्ट के बजाय टूल विवरण में टूल का उपयोग करने के निर्देश डाल सकते हैं।
**तब: CLAUDE.md फ़ाइलों में मेमोरी
अब: ऑटो-मेमोरी**
हम उपयोगकर्ताओं को प्रोत्साहित करते थे कि वे चीजों को क्लॉड की मेमोरी में सेव करें, अपने CLAUDE.md में स्वचालित रूप से लिखने के लिए # हॉटकी का उपयोग करके। इसके बजाय, क्लॉड अब स्वचालित रूप से उन मेमोरी को सेव करता है जो काम और आपके लिए प्रासंगिक हैं।
**तब: सरल स्पेक्स
अब: समृद्ध संदर्भ**
प्लान मोड में, क्लॉड कोड योजनाओं वाली मार्कडाउन फ़ाइलों पर बहुत अधिक निर्भर करता था। इन फ़ाइलों को योजनाओं के रूप में संग्रहीत करने से क्लॉड को जरूरत पड़ने पर उन्हें संदर्भित करने में मदद मिलती थी। एक और समान सर्वोत्तम प्रथा लंबी परियोजनाओं पर काम करते समय क्लॉड को संदर्भित करने के लिए कोडबेस में स्पेक्स को संग्रहीत करना था।
लेकिन हमने पाया है कि क्लॉड तेजी से जटिल संदर्भों को संभाल सकता है। सरल मार्कडाउन फ़ाइलों के बजाय, क्लॉड हमारी नई आर्टिफैक्ट सुविधा द्वारा बनाए गए HTML आर्टिफैक्ट को संदर्भित कर सकता है।
आप क्लॉड को कोड के रूप में संदर्भ भी दे सकते हैं। एक स्पेक एक विस्तृत टेस्ट सूट भी हो सकता है, या एक अलग कोडबेस में एक फ़ंक्शन जिसे क्लॉड पोर्ट कर सकता है।
रूब्रिक संदर्भ का एक और रूप हैं। रूब्रिक क्लॉड को डायनामिक वर्कफ़्लो का उपयोग करके और उन रूब्रिक के साथ वेरिफ़ायर एजेंटों को स्पिन अप करके किसी विशेष क्षेत्र में आपके स्वाद को सत्यापित करने का प्रयास करने की अनुमति देते हैं (जैसे, एक अच्छा API डिज़ाइन कैसा दिखता है)।
इसे अपने संदर्भ में लागू करना
यह सब एक साथ लाते हुए, जब आप अपना संदर्भ तैयार करते हैं तो यह कैसा दिखता है?

**सिस्टम प्रॉम्प्ट
**एक सिस्टम प्रॉम्प्ट उत्पाद संदर्भ से काफी हद तक जुड़ा होता है। यह क्लॉड को बताता है कि यह किस उत्पाद में काम कर रहा है और यह क्या कर रहा है। क्लॉड कोड के लिए, आप शायद इसे कभी भी संशोधित नहीं करेंगे, लेकिन यदि आप अपना स्वयं का एजेंट हार्नेस बना रहे हैं, तो यह वह जगह है जहाँ आपको बहुत समय बिताना चाहिए।
**CLAUDE.md
**अपनी CLAUDE.md को हल्का रखें और संक्षेप में बताएं कि आपका रिपो किस लिए है, लेकिन अधिकांश टोकन कोडबेस के अंदर के गॉचा पर खर्च करें। उदाहरण के लिए, आप टाइप्स को एक मोनोलिथिक फ़ाइल में और कहीं नहीं रखने के लिए अपने कोड को व्यवस्थित कर सकते हैं। फ़ाइल सिस्टम या अपने रिपो को देखकर क्लॉड को जो 'स्पष्ट' चीजें पता होनी चाहिए, उन्हें बताने से बचें।
अधिक विवरण के लिए प्रोग्रेसिव डिस्क्लोज़र का उपयोग करें, उदाहरण के लिए यदि आपके पास अपने काम को सत्यापित करने के बारे में कई अनोखे निर्देश हैं, तो एक वेरिफिकेशन स्किल बनाएं और इसे अपनी CLAUDE.md से संदर्भित करें।
**स्किल्स
**स्किल्स को हल्के गाइड के रूप में सोचें जो क्लॉड को जरूरत पड़ने पर जानकारी खोजने देता है। उन्हें अत्यधिक प्रतिबंधित बनाने से बचें, केवल अत्यधिक महत्वपूर्ण क्षेत्रों को छोड़कर।
लंबी स्किल्स के लिए, जितना संभव हो प्रोग्रेसिव डिस्क्लोज़र का उपयोग करने का प्रयास करें — इसे कई फ़ाइलों में विभाजित करें और उन्हें अलग करें।
यह सबसे अच्छा है जब स्किल्स विशेष राय, ज्ञान या सर्वोत्तम प्रथाओं को एनकोड करती हैं जो आपके, आपकी टीम या उत्पाद के लिए विशिष्ट हैं।
**संदर्भ
**आप फ़ाइलों को संदर्भ के रूप में शामिल करने के लिए उनका @ उल्लेख कर सकते हैं। संदर्भ क्लॉड को वर्तमान योजना के बारे में गहन जानकारी देखने की अनुमति देते हैं।
यह स्पेक फ़ाइलों, मॉकअप या पूरे कोडबेस में भी हो सकता है। आम तौर पर आपको उन फ़ाइलों को प्राथमिकता देनी चाहिए जो कोड में हैं क्योंकि यह क्लॉड को एक ऐसी भाषा में स्पष्ट, उच्च-निष्ठा वाले निर्देश प्रदान करती है जिसे वह अच्छी तरह से जानता है। उदाहरण के लिए, एक डिज़ाइन का HTML मॉकअप आम तौर पर डिज़ाइन के विवरण या स्क्रीनशॉट की तुलना में बेहतर परिणाम देगा।
सरलीकरण का प्रयास करें
अपने सिस्टम प्रॉम्प्ट, स्किल्स और CLAUDE.md फ़ाइलों में, आपको हमारी तरह ही सरलीकरण की आवश्यकता हो सकती है। हमने claude doctor नामक एक नया कमांड जारी किया है, जो आपको इसे स्वचालित रूप से करने में भी मदद करेगा। विशेष रूप से अधिक उन्नत मॉडलों को प्रॉम्प्ट करने के बारे में अधिक जानकारी के लिए, हमारी फ़ेबल फील्ड गाइड देखें।





