Skip to content

Skills ​

हर OpenSpec स्किल: arguments, यह क्या बनाती है, और क्या प्रतिक्रिया देती है।

स्किल्स दो सेटों में आती हैं:

  • Core: डिफ़ॉल्ट रूप से installed, मुख्य planning loop।
  • Optional: केवल तब installed जब आप इन्हें जोड़ते हैं, Profiles के माध्यम से।

हर स्किल ऐसे project की अपेक्षा करती है जो पहले से OpenSpec का उपयोग करता हो। कुछ भी लिखने वाले अपने पहले step से पहले, स्किल resolved root की जाँच करती है। जब कोई root मौजूद न हो तो क्या होता है, यह इस पर निर्भर करता है कि स्किल तक कैसे पहुँचा गया:

  • Auto-selected: आपके agent ने स्किल स्वयं चुनी, बिना आपके OpenSpec का नाम लिए। यह OpenSpec छोड़ देता है और आपके अनुरोध का सामान्य रूप से उत्तर देता है, जैसे OpenSpec installed न होने पर देता।
  • Explicit OpenSpec request: आपने OpenSpec का नाम लिया, स्किल का नाम लिया, या उसका command चलाया। यह लिखने से पहले रुक जाता है और पूछता है कि आगे कैसे बढ़ें: यहाँ openspec init चलाएँ, --store <id> के साथ किसी store को target करें, या OpenSpec के बिना जारी रखें। यह आपके उत्तर की प्रतीक्षा करता है।

Commands हमेशा दूसरा मामला होते हैं। जिस project का openspec/config.yaml ऐसा store नाम देता है जिसे यह मशीन resolve नहीं कर सकती (registered नहीं, या malformed store: line), उसे uninitialized नहीं माना जाता: स्किल रुक जाती है और store error उसके fix के साथ दिखाती है। किसी भी स्थिति में कोई स्किल स्वयं openspec/ directory नहीं बनाती। नीचे दी गई entries बताती हैं कि root मौजूद होने पर प्रत्येक स्किल क्या करती है।

स्किलकार्यप्रकार
openspec-exploreकिसी idea को change proposal बनने से पहले उस पर सोच-विचार करेंCore
openspec-proposeएक ही step में सभी planning artifacts के साथ change proposal बनाएँCore
openspec-apply-changechange proposal के tasks को implement करेंCore
openspec-update-changechange proposal की plan में संशोधन करेंCore
openspec-sync-specschange proposal के spec updates को specs/ में merge करेंCore
openspec-archive-changeपूर्ण हो चुके change proposal को archive में ले जाएँCore
openspec-new-changechange proposal को खाली scaffold के रूप में शुरू करेंOptional
openspec-continue-changeअगला planning artifact बनाएँ, एक बार में एकOptional
openspec-ff-changeimplementation को आवश्यक हर artifact के साथ change proposal एक ही pass में बनाएँOptional
openspec-verify-changeजाँचें कि implementation plan से मेल खाता हैOptional
openspec-bulk-archive-changeकई change proposals को एक साथ archive करेंOptional
openspec-onboardएक वास्तविक change proposal को शुरू से अंत तक करके workflow सीखेंOptional

नीचे दी गई प्रत्येक entry उस स्किल का नाम लेती है जो अगला step संभालती है। जब आपका profile उस स्किल को शामिल नहीं करता, तो installed files उसका नाम कभी नहीं लेतीं: handoff समतुल्य openspec command बन जाता है, या आपसे एक सामान्य अनुरोध, और जो पंक्ति केवल किसी अनुपस्थित स्किल की ओर इंगित करने के लिए होती है वह लिखी ही नहीं जाती। इसलिए आपके पास जो स्किल्स हैं वे हमेशा उन्हीं स्किल्स को hand off करती हैं जो आपके पास हैं। आपको कौन-सा set मिलता है, यह Profiles पर निर्भर है।

openspec-explore ​

किसी विचार को परिवर्तन प्रस्ताव बनने से पहले उस पर विचार करें।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सएक विषय: कोई विचार, समस्या, तुलना, या संदर्भ में एक्सप्लोर करने के लिए किसी मौजूदा परिवर्तन प्रस्ताव का नाम। कुछ भी न दिए जाने पर यह explore मोड में प्रवेश करता है।
बनाता हैडिफ़ॉल्ट रूप से कुछ नहीं। यह केवल पढ़ता और जाँचता है। अनुरोध पर यह अंतर्दृष्टियाँ कैप्चर करता है: openspec/changes/<name>/ के अंतर्गत एक नया परिवर्तन प्रस्ताव, या किसी मौजूदा परिवर्तन प्रस्ताव के प्रस्ताव आर्टिफैक्ट, डिज़ाइन, स्पेक्स या कार्यों में अपडेट। कभी भी कोड नहीं।
प्रतिक्रियाबिना किसी अनिवार्य आउटपुट वाली खुली बातचीत। जब सोच स्पष्ट हो जाती है, तो यह समस्या, दृष्टिकोण, खुले प्रश्नों और अगले चरणों का सारांश देता है, और उन्हें कैप्चर करने का प्रस्ताव देता है। निर्णय आपका है। इम्प्लीमेंटेशन यहाँ कभी शुरू नहीं होता।

openspec-propose ​

एक परिवर्तन प्रस्ताव बनाएँ और उसके सभी प्लानिंग आर्टिफैक्ट एक ही चरण में जनरेट करें।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सएक kebab-case नाम (add-dark-mode) या एक सामान्य विवरण। यदि आप दोनों में से कुछ भी नहीं देते हैं तो पूछता है।
बनाता हैopenspec/changes/<name>/ जिसमें स्कीमा द्वारा परिभाषित हर आर्टिफैक्ट हो, निर्भरता क्रम में (spec-driven: प्रस्ताव, स्पेक डेल्टा, डिज़ाइन, कार्य)। कभी भी कोड नहीं।
प्रतिक्रियाबनाए गए आर्टिफैक्ट, समीक्षा के लिए तैयार, और अगला चरण। यहीं रुकता है; इम्प्लीमेंटेशन openspec-apply-change की प्रतीक्षा करता है।

openspec-apply-change ​

किसी परिवर्तन प्रस्ताव के कार्यों को इम्प्लीमेंट करें, सूची में काम करते हुए जब तक पूरा न हो या कोई अवरोध न आए।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सएक परिवर्तन प्रस्ताव का नाम (add-auth), वैकल्पिक। यदि लक्ष्य अस्पष्ट है तो यह सक्रिय परिवर्तन प्रस्तावों की सूची दिखाता है और आपसे चयन करने के लिए कहता है।
बनाता हैकोड: आपकी प्रोजेक्ट फ़ाइलों में प्रत्येक कार्य के लिए आवश्यक न्यूनतम परिवर्तन। परिवर्तन प्रस्ताव में यह प्रत्येक पूर्ण हुए कार्य को (- [ ] से - [x]) उस ट्रैक की गई फ़ाइल में चिह्नित करता है जिसे sourcePath और one-based line द्वारा पहचाना जाता है। एक स्कीमा कार्यों को कई फ़ाइलों में ट्रैक कर सकता है।
प्रतिक्रियाप्रत्येक कार्य के अनुसार प्रगति, फिर समग्र गणना (N/M कार्य पूर्ण)। सभी पूर्ण: openspec-archive-change का सुझाव देता है। गायब आर्टिफैक्ट के कारण अवरुद्ध: openspec-continue-change पर इंगित करता है, या जब वह स्किल इंस्टॉल न हो तो openspec status और openspec instructions पर (कोर प्रोफ़ाइल इसे बाहर रखती है)। अस्पष्ट कार्य या त्रुटियाँ: रुकता है और पूछता है।

openspec-update-change ​

किसी परिवर्तन प्रस्ताव के मौजूदा प्लानिंग आर्टिफैक्ट को संशोधित करें और उन्हें एक-दूसरे के साथ सुसंगत रखें।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सएक परिवर्तन प्रस्ताव का नाम, वैकल्पिक, साथ में वांछित संशोधन। कोई संशोधन न बताए जाने पर यह सुसंगति समीक्षा चलाता है: आर्टिफैक्ट को विरोधाभास, कमियों और दोहराव के लिए एक-दूसरे के विरुद्ध जाँचा जाता है।
बनाता हैपहले से मौजूद आर्टिफैक्ट फ़ाइलों को संपादित करता है। एक अपवाद: ग्लोब के रूप में लिखे गए आर्टिफैक्ट के लिए, जैसे specs/**/*.md, जिसमें पहले से कम से कम एक फ़ाइल है, आपके द्वारा पथ की पुष्टि करने पर यह एक गायब सहयोगी फ़ाइल जोड़ सकता है। जिस आर्टिफैक्ट में अभी कोई फ़ाइल नहीं है, वह openspec-continue-change का काम है। उस स्किल के बिना (कोर प्रोफ़ाइल इसे बाहर रखती है), यह इसके बजाय openspec status और openspec instructions पर इंगित करता है। कभी भी कोड नहीं।
प्रतिक्रियाहर प्रस्तावित संशोधन दिखाता है और आपके द्वारा पुष्टि करने के बाद ही उसे लिखता है, एक बार में एक आर्टिफैक्ट। अंत में बताता है कि क्या संशोधित हुआ और अगला चरण क्या है; इम्प्लीमेंटेशन openspec-apply-change की प्रतीक्षा करता है।

openspec-sync-specs ​

किसी परिवर्तन प्रस्ताव के स्पेक अपडेट को आर्काइव किए बिना specs/ में मर्ज करें।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सएक परिवर्तन प्रस्ताव का नाम, वैकल्पिक। आप उसके डेल्टा स्पेक्स का एक उपसमूह भी नामित कर सकते हैं, और केवल वही सिंक होंगे।
बनाता हैहर डेल्टा स्पेक के लिए openspec/specs/<capability-path>/spec.md को संपादित या बनाता है, जोड़ी गई, संशोधित, हटाई गई और नाम बदली गई आवश्यकताओं को मुख्य स्पेक में मर्ज करता है। कभी भी कोड नहीं।
प्रतिक्रियाअपडेट किए गए स्पेक्स के वैलिडेट होने के बाद, जोड़ी गई, संशोधित, हटाई गई या नाम बदली गई आवश्यकताओं का क्षमता-वार सारांश। परिवर्तन प्रस्ताव सक्रिय रहता है; आर्काइव करना openspec-archive-change की प्रतीक्षा करता है।

openspec-archive-change ​

किसी पूर्ण हो चुके परिवर्तन प्रस्ताव को आर्काइव में ले जाएँ।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सएक परिवर्तन प्रस्ताव का नाम, वैकल्पिक।
बनाता हैपरिवर्तन प्रस्ताव फ़ोल्डर को openspec/changes/archive/YYYY-MM-DD-<name>/ में ले जाता है (यदि नाम पहले से किसी तारीख से शुरू होता है तो कोई तारीख नहीं जोड़ी जाती)। आपकी स्वीकृति से यह पहले बाकी डेल्टा स्पेक्स को सिंक करता है। जब openspec-sync-specs इंस्टॉल हो, तो यह वही वर्कफ़्लो चलाता है। अन्यथा, यह स्वयं डेल्टा स्पेक्स को मुख्य स्पेक्स में मर्ज करता है। कभी भी कोड नहीं।
प्रतिक्रियाअधूरे आर्टिफैक्ट या कार्यों के साथ आर्काइव करने से पहले चेतावनी देता है और पूछता है, और जब डेल्टा स्पेक्स मौजूद हों तो पूछता है कि सिंक करना है या नहीं। अंत में सारांश देता है: नाम, स्कीमा, आर्काइव स्थान, स्पेक सिंक स्थिति और कोई भी चेतावनियाँ।

openspec-new-change ​

किसी परिवर्तन प्रस्ताव को खाली स्कैफ़ोल्ड के रूप में शुरू करें।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सएक kebab-case नाम (add-user-auth) या एक सामान्य विवरण, साथ में स्कीमा नाम केवल गैर-डिफ़ॉल्ट वर्कफ़्लो के लिए। यदि आप दोनों में से कुछ भी न दें तो पूछता है कि आप क्या बनाना चाहते हैं।
बनाता हैopenspec/changes/<name>/ को खाली स्कैफ़ोल्ड के रूप में: अभी कोई आर्टिफैक्ट नहीं, कभी भी कोड नहीं।
प्रतिक्रियास्कैफ़ोल्ड का नाम और स्थान, वर्कफ़्लो का आर्टिफैक्ट क्रम, स्थिति (0/N पूर्ण), और पहले आर्टिफैक्ट का टेम्पलेट। आर्टिफैक्ट ड्राफ़्ट तैयार करना openspec-continue-change की प्रतीक्षा करता है।

openspec-continue-change ​

किसी परिवर्तन प्रस्ताव में अगला प्लानिंग आर्टिफैक्ट बनाएँ, एक बार में एक।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सएक परिवर्तन प्रस्ताव का नाम, वैकल्पिक। यदि फिर भी अस्पष्ट हो तो यह आपसे सबसे हाल में संशोधित में से चुनने के लिए कहता है।
बनाता हैस्कीमा के क्रम में अगला तैयार आर्टिफैक्ट, जो परिवर्तन प्रस्ताव फ़ोल्डर में लिखा जाता है। प्रति रन एक आर्टिफैक्ट, कभी भी कोड नहीं।
प्रतिक्रियाबनाया गया आर्टिफैक्ट, प्रगति (M में से N पूर्ण), और उससे कौन-से आर्टिफैक्ट अनलॉक हुए। जब प्लानिंग पूरी हो जाती है तो यह बताता है; इम्प्लीमेंटेशन openspec-apply-change पर चला जाता है।

openspec-ff-change ​

एक परिवर्तन प्रस्ताव और इम्प्लीमेंटेशन के लिए आवश्यक हर प्लानिंग आर्टिफैक्ट एक ही बार में बनाएँ।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सएक kebab-case नाम या एक सामान्य विवरण। यदि आप दोनों में से कुछ भी न दें तो पूछता है। यदि नामित परिवर्तन प्रस्ताव पहले से मौजूद है तो यह उसे जारी रखने का सुझाव देता है।
बनाता हैopenspec/changes/<name>/ और इम्प्लीमेंटेशन के लिए आवश्यक हर प्लानिंग आर्टिफैक्ट, निर्भरता क्रम में (spec-driven: प्रस्ताव, स्पेक्स, डिज़ाइन, कार्य), केवल छोड़े गए या सशर्त के रूप में चिह्नित आर्टिफैक्ट को छोड़कर। कभी भी कोड नहीं।
प्रतिक्रियापरिवर्तन प्रस्ताव का नाम और स्थान, बनाया गया प्रत्येक आर्टिफैक्ट, और छोड़ा गया कोई भी सशर्त आर्टिफैक्ट तथा उसका कारण। यहीं रुकता है; इम्प्लीमेंटेशन openspec-apply-change की प्रतीक्षा करता है।

openspec-verify-change ​

जाँचें कि इम्प्लीमेंटेशन परिवर्तन प्रस्ताव के आर्टिफैक्ट से मेल खाता है।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सएक परिवर्तन प्रस्ताव का नाम, वैकल्पिक। अस्पष्ट होने पर यह पूछता है, ऐसे परिवर्तन प्रस्तावों की सूची दिखाते हुए जिनमें कार्य आर्टिफैक्ट है।
बनाता हैकुछ नहीं। यह परिवर्तन प्रस्ताव के आर्टिफैक्ट और कोडबेस पढ़ता है। सत्यापन केवल रिपोर्ट है।
प्रतिक्रियाएक रिपोर्ट: Completeness, Correctness और Coherence के लिए स्कोरकार्ड, फिर सिफ़ारिशों के साथ CRITICAL, WARNING और SUGGESTION समस्याएँ, और अंत में आर्काइव-तैयारी का आकलन। यह कुछ नहीं बदलता और आर्काइव नहीं करता।

openspec-bulk-archive-change ​

एक साथ कई परिवर्तन प्रस्ताव आर्काइव करें।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सकोई नहीं। यह सक्रिय परिवर्तन प्रस्तावों की सूची दिखाता है और आपसे कोई भी संख्या चुनने के लिए कहता है, सभी के लिए एक विकल्प के साथ। यदि कोई भी सक्रिय नहीं है तो यह बताता है और रुक जाता है।
बनाता हैप्रत्येक आर्काइव किए गए परिवर्तन प्रस्ताव के लिए openspec/changes/archive/YYYY-MM-DD-<name>/ (पहले से तारीख वाले नाम अपना उपसर्ग बनाए रखते हैं)। प्रत्येक के स्पेक डेल्टा पहले openspec-sync-specs के माध्यम से सिंक होते हैं। कभी भी कोड नहीं।
प्रतिक्रियाप्रत्येक परिवर्तन प्रस्ताव के लिए एक स्थिति तालिका और पूरे बैच के लिए एक पुष्टि, फिर आर्काइव किए गए, छोड़े गए और विफल का सारांश, साथ में स्पेक सिंक परिणाम। जब दो परिवर्तन प्रस्ताव एक ही स्पेक को प्रभावित करते हैं तो यह कोडबेस जाँचता है और इम्प्लीमेंट किए गए डेल्टा को सबसे पुराने से पहले सिंक करता है।

openspec-onboard ​

एक वास्तविक परिवर्तन प्रस्ताव को शुरू से अंत तक करके वर्कफ़्लो सीखें।

कॉन्ट्रैक्टविवरण
आर्ग्युमेंट्सकोई नहीं। यह आपके कोडबेस को छोटे स्टार्टर कार्यों के लिए स्कैन करता है और आपसे एक चुनने या अपना विवरण देने के लिए कहता है।
बनाता हैचुने गए कार्य के लिए एक वास्तविक परिवर्तन प्रस्ताव, एक बार में एक आर्टिफैक्ट, फिर इम्प्लीमेंटेशन की पुष्टि करने पर वास्तविक कोड। अंत में परिवर्तन प्रस्ताव आर्काइव करता है।
प्रतिक्रियापूरे चक्र का वर्णनात्मक वॉकथ्रू, आपके इनपुट के लिए विरामों के साथ: एक्सप्लोर करें, बनाएँ, हर आर्टिफैक्ट तैयार करें, इम्प्लीमेंट करें, आर्काइव करें। अंत में सारांश और openspec-propose का संकेत देता है। इसमें लगभग 15 से 20 मिनट लगते हैं।