पहले अन्वेषण करें
/opsx:explore आपका विचार भागीदार है। जब भी आपके पास कोई समस्या हो लेकिन अभी तक कोई योजना न बनी हो, तो इसका सहारा लें। यह आपकी कोडबेस की जांच करता है, आपके साथ विकल्पों पर विचार करता है, और इससे पहले कि कोई एक आर्टिफैक्ट या कोड की लाइन बनाई जाए, यह स्पष्ट करता है कि आप वास्तव में क्या चाहते हैं। जब तस्वीर स्पष्ट हो जाती है, तो यह /opsx:propose को सौंप देता है।
यदि आप इन दस्तावेज़ों से एक आदत लेते हैं, तो यह लें: जब आप सुनिश्चित नहीं हैं, तो प्रस्तावित करने से पहले अन्वेषण करें।
यह क्यों मायने रखता है। AI कोडिंग सहायक उत्सुक होते हैं। अस्पष्ट रूप से पूछें और वे आत्मविश्वास से कुछ बना देंगे, लेकिन शायद वह चीज़ नहीं जो आपको चाहिए थी। एक्सप्लोर इसका इलाज है। यह एक ऐसा जोखिम-मुक्त संवाद है जहाँ आप और AI मिलकर सही कदम तय करते हैं, ताकि जब आप प्रस्तावित करें, तो आप सही चीज़ का प्रस्ताव दे रहे हों।
कब अन्वेषण करें
एक्सप्लोर अक्सर लोगों की अपेक्षा से अधिक बार पहला सही कदम होता है। इसका उपयोग तब करें जब इनमें से कोई भी बात सत्य हो:
- आपको समस्या पता है लेकिन समाधान नहीं। ("पेज धीमे लगते हैं।" "Auth एक गड़बड़ी है।" "हमें लगातार डुप्लिकेट ऑर्डर मिल रहे हैं।")
- आप दृष्टिकोणों के बीच चयन कर रहे हैं और चाहते हैं कि ट्रेडऑफ (tradeoffs) आपके वास्तविक कोड के मुकाबले बताए जाएं।
- आप किसी कोडबेस में नए हैं और इससे पहले कि आप इसे बदलें, यह समझना चाहते हैं कि कोई चीज़ कैसे काम करती है।
- आवश्यकताएं अस्पष्ट हैं और आप प्रतिबद्ध होने से पहले उन्हें स्पष्ट करना चाहते हैं।
- आपको संदेह है कि काम जितना दिखता है उससे अधिक बड़ा या छोटा है और आप ईमानदारी से इसका दायरा (scope) निर्धारित करना चाहते हैं।
एक्सप्लोर को तब छोड़ दें जब आप पहले से ही ठीक-ठीक जानते हों कि आप क्या चाहते हैं और कैसे। उस स्थिति में सीधे /opsx:propose पर जाएँ।
यह क्या करता है (और क्या नहीं करता है)
एक्सप्लोर एक संवाद है, जनरेटर नहीं।
यह करता है:
- वास्तविक प्रश्नों का उत्तर देने के लिए आपकी कोडबेस को पढ़ता और खोजता है।
- विकल्पों की तुलना करता है और प्रत्येक के ट्रेडऑफ बताते हैं।
- डिज़ाइन को समझने योग्य बनाने के लिए आरेख (diagrams) बनाता है।
- एक अस्पष्ट विचार को एक ठोस, निर्माण योग्य दायरे में संकीर्ण करने में मदद करता है।
- जब आप तैयार हों तो
/opsx:proposeपर संक्रमण करता है।
यह नहीं करता:
- कोई परिवर्तन फ़ोल्डर बनाता है।
- कोई आर्टिफैक्ट (जैसे प्रस्ताव, स्पेसिफिकेशन्स, डिज़ाइन या कार्य) नहीं लिखता।
- कोड नहीं लिखता या संशोधित नहीं करता।
यही बात है। अन्वेषण करने में आपको कुछ भी खर्च नहीं होता और आप किसी चीज़ के लिए प्रतिबद्ध नहीं होते। आप तीन मृत अंत (dead ends) का पता लगा सकते हैं, हर एक से कुछ सीख सकते हैं, और तभी उस रास्ते का प्रस्ताव दे सकते हैं जो बचा रहा हो।
यह पहले से ही स्थापित है
अच्छी खबर: /opsx:explore डिफ़ॉल्ट कोर प्रोफ़ाइल में आता है, ठीक propose, apply, sync, और archive के साथ। आपको कुछ भी सक्षम करने की आवश्यकता नहीं है। यदि OpenSpec आपके प्रोजेक्ट में सेट अप है, तो एक्सप्लोर आपके AI चैट में तैयार है। (सभी /opsx:* कमांड्स की तरह, आप इसे टर्मिनल में नहीं, बल्कि अपने सहायक की चैट में टाइप करते हैं। How Commands Work देखें।)
एक पूर्ण उदाहरण
देखें कि कैसे एक अस्पष्ट चिंता एक तेज, निर्माण योग्य परिवर्तन में बदल जाती है।
text
You: /opsx:explore
AI: What would you like to explore?
You: Our checkout sometimes creates duplicate orders. I don't know why
and I don't know how to fix it safely.
AI: Let me dig into the checkout path...
[reads the order service, the payment webhook handler, and the
client submit logic]
Here's what I found. There are two ways a duplicate can happen:
1. The client can submit twice (double-click, retry on slow network).
Nothing debounces it.
2. The payment webhook can fire more than once, and the handler
creates an order each time. There's no idempotency key.
Cause #2 is the dangerous one: it can charge and fulfill twice.
Three ways to fix it, roughly in order of robustness:
- Idempotency key on the order-creation endpoint (handles both causes)
- Dedup on the webhook by payment-intent id (handles #2 only)
- Client-side debounce (handles #1 only, papers over the real bug)
Given your code already stores the payment-intent id, the
idempotency-key approach is a small change with the biggest payoff.
Want me to scope that?
You: Yes, let's do the idempotency key.
You: /opsx:propose add-order-idempotency-key
AI: Created openspec/changes/add-order-idempotency-key/, with a proposal
and delta spec grounded in what we just found. Ready for implementation.ध्यान दें कि क्या हुआ। शुरुआती बिंदु "कुछ गलत है और मैं इसे छूने से डरता हूँ" था। बीस सेकंड के अन्वेषण ने इसे एक नामित मूल कारण, तीन रैंक वाले विकल्प, मौजूदा कोड से जुड़ा एक सुझाव और एक सटीक परिवर्तन में बदल दिया। इसके बाद का प्रस्ताव इसलिए तेज है क्योंकि पहले विचार किया गया था।
प्रस्तावित करने को सौंपना
एक्सप्लोर किसी चीज़ में आर्काइव नहीं करता है। जब आप तैयार हों, तो आप बस एक परिवर्तन शुरू करते हैं, और AI आपके संवाद से संदर्भ को आर्टिफैक्ट्स में ले जाता है।
text
explore ──► propose ──► apply ──► archive
(think) (agree) (build) (record)आप इसे सामान्य भाषा में कह सकते हैं ("आइए इसे एक परिवर्तन में बदल दें") या सीधे /opsx:propose <name> चला सकते हैं। किसी भी तरह से, आपके द्वारा किया गया अन्वेषण प्रस्ताव की नींव बन जाता है, न कि फेंकने योग्य चैट।
यदि आप विस्तारित कमांड सेट का उपयोग करते हैं, तो एक्सप्लोर चरण-दर-चरण आर्टिफैक्ट निर्माण के लिए /opsx:new को सौंप सकता है। Workflows देखें।
एक अच्छे अन्वेषण के लिए सुझाव
- समाधान नहीं, बल्कि समस्या लाएँ। "Logins feel slow" AI को जांच करने की जगह देता है। "Add a Redis cache" आपको उस उत्तर के लिए पहले से ही प्रतिबद्ध कर देता है जिसका आपने अभी तक परीक्षण नहीं किया है।
- जोर से ट्रेडऑफ के बारे में पूछें। "प्रत्येक विकल्प के क्या नुकसान हैं?" आपको अधिक ईमानदार तुलना दिलाता है।
- पहले इसे पढ़ने दें। सर्वश्रेष्ठ अन्वेषण AI द्वारा वास्तव में आपके कोड को देखने से शुरू होते हैं, न कि अनुमान लगाने से। यदि यह मदद करता है तो इसे प्रासंगिक क्षेत्र पर इंगित करें।
- हार मानना ठीक है। यदि अन्वेषण से पता चलता है कि विचार इसके लायक नहीं है, तो वह एक जीत है। आपने कम लागत पर सीख लिया।
- परिवर्तन के दौरान फिर से अन्वेषण करें।
/opsx:applyके दौरान अटक गए हैं? आप पीछे हटकर एक उप-समस्या का अन्वेषण कर सकते हैं, और फिर वापस आ सकते हैं।
ईमानदार ट्रेडऑफ
आपको क्या मिलता है: एक्सप्लोर सबसे सस्ती संभव क्षण में गलत मोड़ों को पकड़ता है, इससे पहले कि कोई आर्टिफैक्ट मौजूद हो। यह विशेष रूप से अपरिचित कोड में शक्तिशाली है, जहाँ सिस्टम को पढ़ने और सारांशित करने की AI की क्षमता आपको एक दोपहर की खुदाई (spelunking) से बचाती है।
इसमें क्या खर्च होता है: थोड़ी धैर्य। एक्सप्लोर एक संवाद है, इसलिए यह /opsx:propose चलाने और उम्मीद करने से धीमा है। उस काम के लिए जिसे आप पहले से ही वास्तव में समझते हैं, वह अतिरिक्त कदम शुद्ध ओवरहेड है, और आपको इसे छोड़ देना चाहिए।
सामान्य नियम यह है: कार्य जितना अस्पष्ट होगा, एक्सप्लोर उतना अधिक फायदेमंद होगा। कार्य जितना स्पष्ट होगा, उतना अधिक आप सीधे प्रस्ताव पर जा सकते हैं।
आगे कहाँ जाएँ
- Commands:
/opsx:explore: सटीक संदर्भ - Workflows: दैनिक लूप के हिस्से के रूप में एक्सप्लोर
- Examples & Recipes: एक पूर्ण वॉकथ्रू में एक्सप्लोर
- Getting Started: शुरुआती गाइड, जिसमें अन्वेषण शामिल है