1. AI प्रोजेक्ट की पूरी संरचना क्यों भूल जाता है
बड़े प्रोजेक्ट्स में Claude जैसे AI एजेंट का भटक जाना आपकी गलती नहीं है। मॉडल 'लॉस्ट इन द मिडिल' (Lost in the Middle) घटना से ग्रस्त होते हैं, जहाँ वे केवल बातचीत की शुरुआत और अंत पर ध्यान केंद्रित करते हैं। विशेष रूप से जब कॉन्टेक्स्ट विंडो 60% से अधिक हो जाती है, तो प्रतिक्रिया की गुणवत्ता काफी गिर जाती है। यदि सिस्टम निर्देश फ़ाइल बहुत लंबी है, तो AI महत्वपूर्ण लॉजिक के बजाय केवल कॉन्फ़िगरेशन फ़ाइलों को पढ़ने में ही अपने टोकन खत्म कर देता है।
इसे रोकने के लिए, आपको AI का ध्यान भटकने से बचाना होगा।
- सिस्टम निर्देशों (CLAUDE.md) को 200 लाइनों से कम रखें।
- यदि बातचीत लंबी हो जाती है, तो इतिहास को व्यवस्थित करने के लिए /compact कमांड का उपयोग करें।
- पूरे प्रोजेक्ट को स्कैन करने के बजाय, कार्य का दायरा सीधे निर्दिष्ट करें, जैसे कि किसी विशिष्ट फ़ाइल की 45-80 लाइनें।
2. कोडबेस डाइट और स्कीमा डिज़ाइन
AI को पूरा सोर्स कोड देना अक्षम है। इसके बजाय, पहले इंटरफ़ेस को मानकीकृत करें। API के लिए OpenAPI और डेटा मॉडल के लिए Zod या Pydantic का उपयोग करके अलग स्कीमा फ़ाइलें बनाएँ। ऐसा करने से, AI को पूरे लॉजिक के बारे में चिंता करने की ज़रूरत नहीं होती और वह केवल दिए गए विनिर्देशों के भीतर कोड उत्पन्न करता है। मेरे परीक्षणों के अनुसार, इस तरह स्कीमा प्रदान करने से उन मामलों में 60% तक की कमी आई है जहाँ AI गलत कोड लिखता है और बार-बार सुधार के अनुरोध करने पड़ते हैं।
- मॉड्यूल के आधार पर .json या .yaml स्कीमा बनाएँ।
- मुख्य संरचना वाली 100 लाइनों से कम की ai-context.md फ़ाइल को प्रोजेक्ट रूट में रखें।
- पूरे प्रोजेक्ट को सर्च करने के बजाय, grep कमांड का उपयोग करके केवल आवश्यक लाइनों को एक्सट्रैक्ट करें।
3. टेस्ट सैंडबॉक्स के साथ AI कोड को सत्यापित करना
AI द्वारा लिखा गया कोड देखने में तो ठीक लगता है, लेकिन अक्सर इसमें कई बग्स होते हैं। Husky या pre-commit फ्रेमवर्क का उपयोग करें ताकि जो कोड क्वालिटी गेट को पार न कर सके, उसे मर्ज होने से रोका जा सके।
- व्याकरण और टाइप त्रुटियों को रोकने के लिए Pre-commit हुक में eslint और tsc --noEmit शामिल करें।
- कोड संशोधित करने से ठीक पहले सुरक्षा स्कैन करने के लिए एक PreToolUse हुक सेट करें ताकि API कुंजी लीक होने से बच सके।
- जब मुख्य एजेंट कोड लिखे, तो सब-एजेंट से उस कोड के लिए फेल होने वाले टेस्ट (failing tests) लिखने के लिए कहें। जब तक टेस्ट सफल (Green) न हो जाए, तब तक लूप चलाएँ, इससे बग्स को जल्दी पकड़ा जा सकता है।
