क्लॉड कोड लिखता है, एक टेस्ट फेल हो जाता है, और वह एरर आपको वापस सौंप देता है ताकि आप उसे संभालें।
एक सेल्फ-फिक्सिंग एजेंट ऐसा नहीं करता: वह अपनी असफलता को पढ़ता है, कारण को ठीक करता है, और तब तक दोबारा चलाता है जब तक सब हरा न हो जाए।
इसे एक बार सेट करें और आप अपने एजेंट के बिना भुगतान वाले डीबगर बनना बंद कर देंगे।
यहाँ वह पूरी सेटअप है जिसकी आपको ज़रूरत है 👇
गहराई में जाने से पहले, मैं अपने Telegram चैनल पर AI और वाइब कोडिंग के बारे में रोज़ाना नोट्स साझा करता हूँ: https://t.me/zodchixquant🧠

एक बार पर्याप्त क्यों नहीं है
डिफ़ॉल्ट रूप से, क्लॉड एक कार्य को एक बार चलाता है। एक टेस्ट फेल होता है, वह एरर की रिपोर्ट करता है और इंतज़ार करता है। आप उसे पढ़ते हैं, वापस पेस्ट करते हैं, उसे फिर से प्रयास करने के लिए कहते हैं। आप डीबगिंग कर रहे हैं, वह सिर्फ़ टाइप कर रहा है।
एक सेल्फ-फिक्सिंग एजेंट इसे उलट देता है। वह अपनी असफलता को पढ़ता है, यह पता लगाता है कि यह किस तरह का बग है, उस कारण को ठीक करता है, और फिर से चलाता है, जैसे कोई डीबगर सोचता है। आप केवल तभी हस्तक्षेप करते हैं जब वह पास हो जाता है या वास्तव में अटक जाता है।
फ़ाइल 1: फिक्स कमांड
यह वह लूप है जिसे आप वास्तव में चलाते हैं। इसे .claude/commands/fix.md में डालें:
1---2description: कार्य चलाएँ और सभी टेस्ट पास होने तक सेल्फ-फिक्स करें3argument-hint: <कार्य>4allowed-tools: Read, Write, Edit, Glob, Grep, Bash5model: sonnet6---78कार्य: $ARGUMENTS910लूप:111. कार्य को लागू करें।122. टेस्ट सूट चलाएँ: `npm test` (या pytest, cargo test)।133. यदि सभी टेस्ट पास: रुकें और मुझे परिणाम दिखाएँ।144. यदि कोई टेस्ट फेल: एरर प्रकार को वर्गीकृत करें, मूल कारण बताएँ,15 उस कारण को ठीक करें, फिर चरण 2 पर वापस जाएँ।165. अधिकतम 5 प्रयास। प्रत्येक चक्र में प्रयास संख्या घोषित करें।1718वर्गीकृत-फिर-फिक्स क्रम ही पूरा बिंदु है। निदान पहले,19संपादन बाद में, हर चक्र में। कभी भी किसी टेस्ट को कमजोर न करें ताकि वह पास हो, कोड को ठीक करें।
आप /fix users endpoint में पेजिनेशन जोड़ें टाइप करते हैं और एजेंट लिखता है, टेस्ट करता है, और तब तक खुद को ठीक करता है जब तक सूट हरा न हो जाए।
फ़ाइल 2: ऑटो-चेक हुक
कमांड मांग पर काम करता है। हुक हर संपादन पर सेल्फ-चेकिंग को स्वचालित बनाता है।
.claude/settings.json में जोड़ें:
1{2 "hooks": {3 "PostToolUse": [4 {5 "matcher": "Write|Edit",6 "hooks": [7 { "type": "command", "command": "npm test --silent 2>&1 | tail -5 || echo 'TESTS FAILING, fix before continuing'" }8 ]9 }10 ]11 }12}
अब हर बार जब क्लॉड एक फ़ाइल को संपादित करता है, टेस्ट चलते हैं और परिणाम वापस उसके दृश्य में आ जाता है।
एक विफलता तुरंत दिखाई देती है, इसलिए एजेंट इसे उसी प्रवाह में ठीक करता है, बजाय आगे बढ़ने और टूटे हुए कोड के ऊपर और परिवर्तन जोड़ने के।
फ़ाइल 3: इसे एरर पढ़ना सिखाएँ
यह वह फ़ाइल है जो एक वास्तविक डीबगर को अनुमान लगाने वाले से अलग करती है। अधिकांश एजेंट "टेस्ट फेल" देखते हैं और बेतरतीब ढंग से संपादित करना शुरू कर देते हैं।
एक अच्छा एजेंट पहले एरर प्रकार पढ़ता है, क्योंकि प्रत्येक प्रकार एक अलग कारण की ओर इशारा करता है। इसे CLAUDE.md में डालें:
1## इसे ठीक करने से पहले विफलता को कैसे पढ़ें23हमेशा पहले एरर प्रकार का नाम बताएँ। प्रत्येक का अर्थ अलग होता है:45- **Assertion failure (अपेक्षित X, मिला Y)**: तर्क गलत है।6 एसर्शन से वापस उस स्थान तक जाएँ जहाँ मान बनाया गया था।7 गणना को ठीक करें, टेस्ट की अपेक्षा को नहीं।89- **Type error / undefined is not a function**: आकार बेमेल।10 कुछ null है, या गलत प्रकार इस लाइन तक पहुँचा।11 वहाँ खोजें कि वह मान कहाँ उत्पन्न होता है, वहाँ गार्ड या सही करें।1213- **Timeout / hang**: कोई await गायब है, या कोई प्रॉमिस कभी हल नहीं होता।14 बिना await के async कॉल देखें, या ऐसी स्थिति जो कभी पलटती नहीं।1516- **Import / module not found**: पथ या निर्भरता की समस्या, तर्क की नहीं।17 पथ ठीक करें या इंस्टॉल करें, कोड को न छुएँ जो इसका उपयोग करता है।1819- **Flaky (कभी-कभी पास)** : साझा स्थिति या समय, कभी यादृच्छिक नहीं।20 ऑर्डर-निर्भर टेस्ट या अनमॉक्ड समय/नेटवर्क देखें।2122नियम: संपादन से पहले प्रकार और एक-वाक्य का मूल कारण ज़ोर से बताएँ।23यदि आप कारण का नाम नहीं बता सकते, तो आप अनुमान लगा रहे हैं। रुकें।
एक type error और एक assertion failure को विपरीत कदमों की आवश्यकता होती है: एक ऊपर की ओर डेटा-आकार की समस्या है, दूसरा उसी स्थान पर गलत तर्क है। पहले वर्गीकृत करें और एजेंट सही चीज़ ठीक करता है।
इसे छोड़ें और यह तब तक बेतरतीब ढंग से संपादित करेगा जब तक लाल गायब नहीं हो जाता, जो कि आपको एक हरा सूट देने का तरीका है जो चुपचाप टूटा हुआ है।
आप वास्तव में क्या देखते हैं
आप एक पंक्ति टाइप करते हैं:
1/fix date formatter गलत टाइमज़ोन लौटाता है
फिर यह अपने आप काम करता है:
1प्रयास 12 टेस्ट चलाए → फेल3 प्रकार: एसर्शन (अपेक्षित 5, मिला 11)4 कारण: क्वेरी पर पेज का आकार लागू नहीं किया गया5 LIMIT क्लॉज़ ठीक किया67प्रयास 28 टेस्ट चलाए → फेल9 प्रकार: type error (offset अपरिभाषित है)10 कारण: पेज 1 कोई offset नहीं भेजता, गलत डिफ़ॉल्ट11 offset = (page-1)*size जोड़ा1213प्रयास 314 टेस्ट चलाए → सब हरा (7/7)15163 प्रयासों में ठीक हुआ। अंतर की समीक्षा करें?
आपने कभी कोई एरर वापस पेस्ट नहीं किया। इसने अपनी असफलताओं को पढ़ा, प्रत्येक कारण का नाम दिया, और तब तक ठीक किया जब तक सूट पास नहीं हो गया।
सामान्य गलतियाँ
निदान से पहले ठीक करना। सबसे बड़ी गलती। एक एजेंट जो एरर प्रकार का नाम बताए बिना संपादित करता है, वह अनुमान लगा रहा है, और अनुमान लाल को भाग्य से हरा करता है, ठीक करके नहीं। पहले-वर्गीकृत नियम ही पूरी सुरक्षा है।
हर एरर को एक जैसा मानना। एक timeout और assertion failure में कुछ भी समान नहीं है, लेकिन एरर-प्रकार मार्गदर्शिका के बिना एक एजेंट दोनों को "कुछ गलत है" मानता है और निकटतम लाइन को संपादित करता है। आपके आधे फिक्स गलत फ़ाइल में पहुँचते हैं।
लक्षण को पैच करना। एक थ्रोइंग कॉल को try/catch में लपेटने से टेस्ट पास हो जाता है और बग बना रहता है। प्रोटोकॉल इसी कारण से एरर को चुप कराने से मना करता है।
इसे टेस्ट को कमजोर करने देना। एक एजेंट जिसे टेस्ट संपादित करने की अनुमति है, वह अंततः हरा पाने के लिए फेल होने वाले टेस्ट को हटा देगा। एक पासिंग सूट जो कुछ साबित नहीं करता, सबसे बुरा परिणाम है, इसलिए यह नियम अनिवार्य है।
5-मिनट का सेटअप
2 मिनट: .claude/commands/fix.md बनाएँ।
1 मिनट: settings.json में PostToolUse हुक जोड़ें।
1 मिनट: CLAUDE.md में सेल्फ-डीबग प्रोटोकॉल जोड़ें।
1 मिनट: एक ज्ञात बग पर /fix चलाएँ और देखें कि यह कारण पर कैसे काम करता है, प्रयास दर प्रयास।
आप वह इंसान बनना बंद कर देते हैं जो एरर को रिले करता है। एजेंट अपना लाल पढ़ता है और तब तक ठीक करता है जब तक वह हरा न हो जाए। यह होशियार नहीं हुआ, इसने बस समस्या को आपको वापस सौंपना बंद कर दिया।
पढ़ने के लिए धन्यवाद!
मैं अपने Telegram चैनल पर AI, फ़ाइनेंस और वाइब कोडिंग के बारे में रोज़ाना नोट्स साझा करता हूँ: https://t.me/zodchixquant






