Log in to leave a comment
No posts yet
Claude Code शक्तिशाली है। टर्मिनल कमांड को सीधे चलाने और फ़ाइल सिस्टम को नियंत्रित करने की स्वायत्तता डेवलपर्स को मुक्ति का अनुभव देती है। Stripe के 1,300 इंजीनियरों द्वारा मात्र 4 दिनों में 10,000 लाइनों के माइग्रेशन को पूरा करने का डेटा इस टूल की विनाशकारी शक्ति को अच्छी तरह दर्शाता है। लेकिन एक एजेंट को अपने कंप्यूटर की पूरी चाबियाँ सौंप देना एक अलग बात है। बिना अनुमति नियंत्रण वाला एजेंट एक सुविधाजनक उपकरण नहीं, बल्कि किसी भी समय होने वाली सुरक्षा दुर्घटना का बीज है।
यदि आप सीधे अपने लोकल OS पर Claude Code इंस्टॉल करते हैं, तो आपको नोड वर्ज़न के उलझने या लाइब्रेरी टकराव जैसी कष्टप्रद स्थितियों का सामना करना पड़ेगा। Ramp या Wiz जैसी सुरक्षा कंपनियों द्वारा इंसिडेंट जांच के समय को 80% तक कम करने का रहस्य वातावरण के मानकीकरण में निहित है। मैं node:20-slim इमेज का उपयोग करके एक पूरी तरह से अलग कंटेनर में एजेंट चलाने का तरीका पसंद करता हूँ। यह होस्ट सिस्टम को साफ़ रखते हुए केवल एजेंट को सीमित रखता है।
एक .devcontainer फ़ोल्डर बनाएँ और Dockerfile में एक गैर-रूट (non-root) खाता परिभाषित करें। रूट अधिकारों के बिना, एजेंट गलती से भी सिस्टम बाइनरी को छू नहीं पाएगा। यहाँ devcontainer.json के माध्यम से साझा मेमोरी (shared memory) को लगभग 2GB तक पर्याप्त रूप से सेट करने पर, Playwright आधारित ब्राउज़र परीक्षण भी बिना मेमोरी की कमी के सुचारू रूप से चलते हैं। अब आपको इस बात की चिंता करने की ज़रूरत नहीं है कि एजेंट की वजह से आपके कंप्यूटर की सेटिंग्स खराब हो जाएँगी।
एजेंट का संदर्भ (context) जितना जटिल होगा, उसके गलतियाँ करने की संभावना उतनी ही अधिक होगी। Anthropic के शोध परिणाम भी इसका समर्थन करते हैं। यदि पूरा फ़ाइल सिस्टम खुला छोड़ दिया जाता है, तो जोखिम है कि एजेंट .env फ़ाइल में मौजूद API कीज़ को पढ़कर बाहर भेज सकता है या अनपेक्षित फ़ाइलों में संशोधन कर सकता है। इसलिए मैं हर प्रोजेक्ट के लिए एक श्वेतसूची (whitelist) बनाता हूँ।
सबसे पहले .claudeignore में node_modules, dist, .env को पंजीकृत करें। उसके बाद .claude/settings.json में permissions.deny फ़ील्ड का उपयोग करके महत्वपूर्ण कॉन्फ़िगरेशन फ़ाइलों को लॉक कर दें। कोड संशोधन की अनुमति देना लेकिन Bash कमांड चलाने से पहले अनिवार्य रूप से मेरी स्वीकृति लेना (acceptEdits मोड) सबसे उचित समझौता है। एजेंट की गतिविधि के दायरे को src और tests तक सीमित करने से कोड संशोधन की सटीकता बढ़ती है और डेटा लीक को पूरी तरह रोका जा सकता है।
Google Workspace को जोड़ने से उत्पादकता बढ़ती है, लेकिन यह डर बना रहता है कि कहीं एचआर (HR) जानकारी या वित्तीय विवरण मॉडल प्रशिक्षण लॉग में न चले जाएँ। ऐसे मामलों में, न्यूनतम अधिकार के सिद्धांत (Principle of Least Privilege) का कड़ाई से पालन किया जाना चाहिए। गूगल क्लाउड कंसोल में OAuth स्कोप को Drive.readonly तक सीमित करना और केवल विशिष्ट फ़ोल्डरों तक पहुँच प्रदान करना इसकी शुरुआत है।
मैं सिस्टम प्रॉम्प्ट में रेगुलर एक्सप्रेशन (Regex) प्रीसेट डालने का तरीका अपनाता हूँ। [ID_REDACTED] जैसे पैटर्न का उपयोग करके संवेदनशील जानकारी जैसे पहचान संख्या या फोन नंबर का पता चलते ही उन्हें तुरंत बदलने के लिए बाध्य करें। MCP स्तर पर डेटा को रोककर फ़िल्टर करने वाली एक और सैंडबॉक्स परत जोड़ें। इस तरह, आप दस्तावेज़ सारांश या शेड्यूल प्रबंधन सुविधाओं का मन की शांति के साथ उपयोग कर सकते हैं, जबकि गोपनीय डेटा के बाहर जाने की संभावना लगभग पूरी तरह से समाप्त हो जाती है।
कभी-कभी एजेंट द्वारा लिखा गया कोड तार्किक रूप से तो सही होता है, लेकिन वह स्क्रीन लेआउट को बिगाड़ देता है। ऐसी स्थिति में, Playwright का उपयोग करके विजुअल रिग्रेशन टेस्टिंग ही समाधान है। पिक्सेल-दर-पिक्सेल तुलना करते समय maxDiffPixelRatio थ्रेशोल्ड को 0.05 पर सेट करके देखें। यह सूक्ष्म रेंडरिंग अंतर के कारण होने वाली गलत त्रुटियों को छोड़ने और वास्तविक लेआउट ब्रेकडाउन को सटीक रूप से पकड़ने का मानदंड है।
सेल्फ-हीलिंग वर्कफ़्लो बनाना भी एक तरीका है। यदि परीक्षण विफल हो जाता है, तो संशोधन को रोलबैक करने के लिए एक स्क्रिप्ट लिखें जो स्वचालित रूप से git checkout . चलाए। यदि आप इस स्क्रिप्ट को Claude Code के कार्य पूर्णता हुक (completion hook) में पंजीकृत करते हैं, तो एजेंट हर बार काम पूरा करने पर UI की अखंडता की पुष्टि करेगा। इससे ब्राउज़र को मैन्युअल रूप से रिफ्रेश करके जाँचने में लगने वाले मानवीय समय को 80% से अधिक बचाया जा सकता है।
ऐसी स्किल जो केवल आप ही अच्छी तरह से उपयोग कर सकते हैं, वह व्यर्थ है। पूरी टीम की उत्पादकता बढ़ाने के लिए, प्रमाणित स्किल्स को एक साझा रिपॉजिटरी में प्रबंधित किया जाना चाहिए। जिन टीमों ने मात्र 20 घंटों में 50,000 लाइनों की लाइब्रेरी को रूपांतरित किया, उन सभी में एक बात समान थी—उनके पास एक अच्छी तरह से संरचित स्किल रिपॉजिटरी थी।
प्रोजेक्ट रूट की .claude/skills/ निर्देशिका में प्रत्येक स्किल के निष्पादन निर्देश वाली SKILL.md फ़ाइल बनाएँ। कोड रिव्यू या UI डिबगिंग जैसे दोहराए जाने वाले कार्यों को स्किल के रूप में परिभाषित करें और उन्हें Git के माध्यम से प्रबंधित करें। यदि आप इसमें CI/CD पाइपलाइन जोड़कर ऐसी गवर्नेंस स्थापित करते हैं जो कम गुणवत्ता स्कोर वाले स्किल्स को मर्ज होने से रोकती है, तो यह सोने पर सुहागा होगा। एक ऐसा वातावरण जहाँ एक नया कर्मचारी भी अनुभवी इंजीनियरों के अनुभव वाली स्किल्स को तुरंत कॉल करके उपयोग कर सके, वही वास्तविक टीम सहयोग है।