Skip to content

Agent Skills: Claude को ऑन-डिमांड विशेष कौशल के एक सेट से लैस करें

📚 श्रृंखला नेविगेशन: पिछला लेख 25 मेमोरी सिस्टम "तथ्यों को निष्क्रिय रूप से याद रखने" के बारे में बात करता है—प्रोजेक्ट की प्राथमिकताओं और सम्मेलनों को CLAUDE.md में लिखें ताकि Claude को हर बार पूछने से रोका जा सके। यह लेख दिशा बदलता है और "सक्रिय रूप से क्षमताओं को समाहित करने" के बारे में बात करता है: परिचालन चरणों के पूरे सेट को Agent Skills में पैकेज करना, ताकि जब उनका उपयोग किया जाए, तो Claude अपनी क्षमताओं के संबंधित सेट को स्वयं कॉल कर सके।

"क्या Skill केवल एक slash कमांड का दूसरा नाम नहीं है? मैं /deploy टाइप करता हूँ और यह डिप्लॉयमेंट चलाता है। पुरानी .claude/commands/deploy.md से क्या अंतर है?"

"अंतर बहुत बड़ा है। slash कमांड तभी चलती है जब आप सक्रिय रूप से इसे कॉल करते हैं; Skill को आपको कॉल करने की आवश्यकता नहीं है—Claude देखता है कि यह काम मेल खाता है, और यह इसे अपने आप कॉल करता है। इसके अलावा, यह आमतौर पर आपकी बातचीत में केवल एक वाक्य की जगह लेता है, और जब इसका उपयोग किया जाता है तभी यह पूरा पाठ प्रदर्शित करता है।"

"……इसे खुद कॉल करें? क्या यह गड़बड़ नहीं होगा? मुझे कैसे पता चलेगा कि यह कब काम करेगा?"

यह एक बहुत ही सामान्य गलतफहमी है, और जब मैंने पहली बार शुरू किया था तो मैंने खुद ऐसा सोचा था—मैंने मौजूदा commit.md कमांड को .claude/skills/ में भर दिया, और यह पहले की तरह ही चला। मुझे यह भी आश्चर्य हुआ कि "क्या यह सिर्फ एक फ़ोल्डर नहीं बदल गया है?" बाद में मुझे एहसास हुआ कि समस्या यहाँ फंसी हुई थी: Skill को slash कमांड का अवतार मानना। वास्तव में, अधिकारियों ने लंबे समय से कस्टम कमांड को Skills सिस्टम में मिला दिया है—आपकी .claude/commands/ फाइलें अभी भी काम कर सकती हैं, लेकिन Skill में तीन और चीजें हैं: यह सहायक फाइलें ला सकता है, Claude द्वारा आवश्यकतानुसार स्वचालित रूप से ट्रिगर किया जा सकता है, और आमतौर पर बहुत कम संदर्भ लेता है।

आधिकारिक मूल शब्द: "कस्टम कमांड को skills में मिला दिया गया है। .claude/commands/deploy.md में फ़ाइल और .claude/skills/deploy/SKILL.md में skill दोनों /deploy बनाते हैं और उसी तरह काम करते हैं।"

इस लेख में, मैं विस्तार से बताऊंगा कि वास्तव में Skill क्या है, यह संदर्भ को बढ़ाए बिना "खुद को कॉल" क्यों कर सकता है, यह कहाँ से आता है, और इसे कैसे ट्रिगर किया जाता है।

इस लेख को पढ़ने के बाद, आप प्राप्त करेंगे:

  • वास्तव में Skill क्या है—कैसे एक SKILL.md और कुछ सहायक संसाधन Claude की "विशेष क्षमता" बन जाते हैं
  • यह "ऑन-डिमांड लोडिंग" (प्रगतिशील प्रकटीकरण) कैसे करता है: क्यों यह आमतौर पर केवल एक वाक्य लेता है और आवश्यकता पड़ने पर ही विस्तारित होता है। संदर्भ को बचाने का रहस्य यहीं है
  • Skill, slash कमांड और Subagent के बीच क्या अंतर है, इसे स्पष्ट रूप से बताने के लिए एक तालिका (पूर्ण निर्णय 30वें लेख पर छोड़ दिया गया है)
  • Skill कहाँ से आते हैं (इन-बिल्ट, प्लगइन्स द्वारा लाए गए, स्वयं लिखे गए), और वे किस निर्देशिका में रखे गए हैं जो यह निर्धारित करता है कि उनका उपयोग कौन कर सकता है
  • कैसे ट्रिगर करें (description के माध्यम से स्वचालित मिलान, कमांड को याद रखने की कोई आवश्यकता नहीं है), और कैसे जांचें कि वर्तमान में कौन से उपलब्ध हैं

01 पहले समझें: वास्तव में Skill क्या है

आइए पहले निष्कर्ष देते हैं: एक Skill, संक्षेप में, SKILL.md नामक एक निर्देश फ़ाइल है, साथ ही कुछ वैकल्पिक सहायक फ़ाइलें, जिन्हें एक "विशेष क्षमता" में पैक किया जाता है और Claude को सौंपा जाता है

सादृश्य: फ़ोन में शॉर्टकट। आप iPhone "शॉर्टकट" में एक "गो होम मोड" प्रोग्राम करते हैं—लाइट चालू करें, एयर कंडीशनर समायोजित करें, संगीत चलाएं। इसे प्रोग्राम करने के बाद, आपको इसे मैन्युअल रूप से कदम दर कदम करने की आवश्यकता नहीं है। बस "गो होम मोड" चिल्लाएं, और यह स्वचालित रूप से आपके द्वारा व्यवस्थित क्रम में चलेगा। Skill भी यही काम करता है: आप एक निश्चित प्रक्रिया (जैसे "अप्रतिबद्ध परिवर्तनों को संक्षेप में प्रस्तुत करना और जोखिमों को चिह्नित करना") को SKILL.md में लिखते हैं, और फिर यह प्रक्रिया एक ऐसी क्रिया बन जाती है जिसे Claude किसी भी समय कॉल कर सकता है, आपको हर बार चरणों को फिर से टाइप करने की आवश्यकता नहीं है।

SKILL.md कैसा दिखता है? इसमें केवल दो भाग हैं, और आधिकारिक दस्तावेज़ इसे बहुत स्पष्ट रूप से समझाता है (यह उदाहरण ~/.claude/skills/summarize-changes/SKILL.md में संग्रहीत है, और निर्देशिका का नाम summarize-changes वह कमांड नाम है जिसे आप भविष्य में टाइप करेंगे):

yaml
---
description: अप्रतिबद्ध परिवर्तनों को संक्षेप में प्रस्तुत करें और जोखिमों को चिह्नित करें। उपयोग तब करें जब उपयोगकर्ता पूछे कि क्या बदला है, एक प्रतिबद्ध संदेश चाहता है, या मुझे diff की समीक्षा करने के लिए कहता है।
---

## वर्तमान परिवर्तन

!`git diff HEAD`

## विवरण

ऊपर दिए गए परिवर्तनों को दो या तीन बुलेट बिंदुओं में संक्षेप में प्रस्तुत करें, और फिर आपके द्वारा देखे गए किसी भी जोखिम को सूचीबद्ध करें, जैसे छूटी हुई त्रुटि हैंडलिंग, हार्ड-कोडित मान, या परीक्षण जिन्हें अद्यतन करने की आवश्यकता है। यदि diff खाली है, तो बस कहें कि कोई अप्रतिबद्ध परिवर्तन नहीं हैं।

शीर्ष पर --- द्वारा तैयार किया गया भाग YAML frontmatter (अग्रिम मेटाडेटा, फ़ाइल की शुरुआत में दो --- के बीच लिखा गया कॉन्फ़िगरेशन क्षेत्र) कहलाता है। यह Claude को बताता है कि यह Skill क्या करता है और इसका उपयोग कब किया जाना चाहिए; नीचे दिया गया मार्कडाउन टेक्स्ट वह निर्देश है जिसका Claude वास्तव में इसे कॉल करते समय पालन करेगा।

बीच की रेखा पर ध्यान दें !`git diff HEAD`—यह एक बहुत ही चतुर डिज़ाइन है जिसे डायनामिक कॉन्टेक्स्ट इंजेक्शन कहा जाता है: Claude Code पहले इस कमांड को चलाएगा, इसके आउटपुट से इस लाइन को बदल देगा, और फिर Claude Skill की सामग्री को देखेगा। तो जो Claude को मिलता है वह "diff चलाने के लिए जाना" नहीं है, बल्कि आपके वर्तमान वास्तविक परिवर्तन हैं जो पहले ही भरे जा चुके हैं। यह प्रीप्रोसेसिंग है, Claude द्वारा स्वयं निष्पादित नहीं किया गया है।

एक Skill केवल एक SKILL.md फ़ाइल नहीं है, यह एक निर्देशिका है। आधिकारिक मानक उपस्थिति इस प्रकार है:

text
my-skill/
├── SKILL.md           # मुख्य विवरण (आवश्यक)
├── template.md        # Claude को भरने के लिए टेम्पलेट
├── examples/
│   └── sample.md      # इसे दिखाने के लिए नमूना आउटपुट
└── scripts/
    └── validate.sh    # स्क्रिप्ट जो यह निष्पादित कर सकता है

केवल SKILL.md की आवश्यकता है, और बाकी वैकल्पिक हैं। यह वह जगह है जहां पुराने स्लैश कमांड की तुलना में Skill बेहतर है: यह टेम्पलेट, उदाहरण और स्क्रिप्ट ला सकता है—स्क्रिप्ट किसी भी भाषा में हो सकती है, Claude ऑर्केस्ट्रेशन के लिए जिम्मेदार है, और स्क्रिप्ट भारी काम करती है।

तीन वास्तविक परिदृश्य, आप तुरंत सोच सकते हैं कि Skill क्या कर सकता है:

  • हर बार जब आप Claude को कोड सबमिट करने के लिए कहते हैं, तो आपको उसे "पहले परीक्षण चलाने, फिर एक चीनी commit लिखने, और उपसर्ग के रूप में feat का उपयोग करने" का निर्देश देना होगा—इसे एक commit Skill में लिखें, और भविष्य में यह एक वाक्य के साथ किया जाएगा।
  • टीम API लेखन के एक सेट (RESTful नामकरण, एकीकृत त्रुटि प्रारूप, अनिवार्य सत्यापन) पर सहमत हुई—इसे api-conventions Skill के रूप में लिखें, और जो कोई भी इंटरफ़ेस लिखता है वह स्वचालित रूप से इस सेट का पालन करेगा।
  • आप कोडबेस का एक विज़ुअल स्ट्रक्चर आरेख उत्पन्न करना चाहते हैं—आधिकारिक codebase-visualizer Skill एक पायथन स्क्रिप्ट के साथ बंडल किया गया है, जो चलने के बाद सीधे ब्राउज़र में एक इंटरैक्टिव ट्री आरेख खोलता है।

💡 एक वाक्य का सारांश: Skill क्षमताओं का एक सेट है जिसे एक पैकेज में बंडल किया गया है: "SKILL.md (कब उपयोग करना है और कैसे करना है) + वैकल्पिक सहायक फ़ाइलें"—इसे एक बार लिखें, और Claude इसे बाद में आसानी से कॉल कर सकता है, और यह टेम्पलेट और स्क्रिप्ट को भी बंडल कर सकता है


02 जीवन रेखा: प्रगतिशील प्रकटीकरण, संदर्भ को बचाने का रहस्य

यह पूरे लेख का सबसे महत्वपूर्ण भाग है जिसे अच्छी तरह से समझा जाना चाहिए। Skill बिना आपके संदर्भ को बढ़ाए बहुत सी चीजों में कैसे भर सकता है? इसका उत्तर केवल एक शब्द है: प्रगतिशील प्रकटीकरण (progressive disclosure, जिसका अर्थ है "मांग पर धीरे-धीरे प्रकट होना", जब यह प्रासंगिक न हो तो पूर्ण पाठ लोड नहीं करना)।

पहले बात करते हैं कि यह क्यों महत्वपूर्ण है। जैसा कि पहले 19 संदर्भ प्रबंधन में उल्लेख किया गया है, Claude का "कार्यक्षेत्र" केवल उतना ही बड़ा है, और इसमें जो भी शब्द आप भरते हैं वह बजट खर्च कर रहा है और इसके सोचने की जगह को निचोड़ रहा है। यदि प्रत्येक Skill का पूर्ण पाठ प्रत्येक सत्र की शुरुआत में पूरी तरह से लोड किया जाता है, और आप दस Skill स्थापित करते हैं, तो आपके कार्यक्षेत्र का आधा हिस्सा बेकार हो जाएगा।

सादृश्य: एक रेस्तरां का मेनू और पिछली रसोई। आप बैठते हैं, और वेटर पहले आपको एक मेनू देता है—प्रत्येक व्यंजन में केवल एक पंक्ति का नाम और एक संक्षिप्त परिचय होता है, ताकि आप एक नज़र में जान सकें कि वहाँ क्या है। आप "कुंग पाओ चिकन" ऑर्डर करते हैं, और विस्तृत पकाने की विधि के साथ विस्तृत नुस्खा चरणों से भरा हुआ खोजा जाएगा और उसका पालन किया जाएगा। जिन व्यंजनों को आपने ऑर्डर नहीं किया है, उनका नुस्खा हमेशा दराज में रखा जाता है, आपकी मेज पर एक इंच भी जगह नहीं लेता है। Skill इसी तरह काम करता है:

  • सामान्य समय में: Claude केवल प्रत्येक Skill (मेनू पर डिश का नाम) का एक वाक्य description देख सकता है।
  • जब प्रासंगिक हो: जब आपके द्वारा पूछी गई बात एक निश्चित description से मेल खाती है, तो उस Skill का संपूर्ण पाठ लोड किया जाता है (संबंधित नुस्खा खोजा जाता है)।

आधिकारिक दस्तावेज़ इस नियम को बहुत स्पष्ट रूप से बताता है:

नियमित वार्तालाप में, skill विवरण संदर्भ में लोड किए जाते हैं ताकि Claude को पता चले कि क्या उपलब्ध है, लेकिन संपूर्ण skill सामग्री केवल कॉल किए जाने पर ही लोड की जाती है

तो आप आत्मविश्वास से Skill के मुख्य भाग में लंबी संदर्भ सामग्री और विस्तृत चेकलिस्ट लिख सकते हैं—इसका उपयोग करने से पहले, इसमें लगभग कोई खर्च नहीं होता है। यही कारण है कि अधिकारी सलाह देते हैं "सामग्री को Skill बनाएं बजाय इसके कि इसे पूरा CLAUDE.md में भर दें": CLAUDE.md सत्र की शुरुआत से अंत तक पूरी तरह से रहता है, जबकि Skill का पाठ केवल आवश्यकता पड़ने पर ही आता है।

Skill प्रगतिशील प्रकटीकरण: सामान्य रूप से केवल एक वाक्य description लेता है, और आवश्यकता पड़ने पर पूर्ण पाठ लोड करता है

यह चित्र "प्रगतिशील प्रकटीकरण" के दो चरणों को स्पष्ट रूप से खींचता है: बाईं ओर सामान्य सत्र स्थिति है—तीन Skill संदर्भ में प्रत्येक केवल एक वाक्य description लेते हैं, और कार्यक्षेत्र अभी भी बहुत खाली है; दाईं ओर, एक description आपके प्रश्न से टकराने के बाद, केवल उस एक Skill का संपूर्ण पाठ लोड होता है, और अन्य दो अभी भी केवल एक पंक्ति हैं। आप एक नज़र में देख सकते हैं कि यह कहाँ "बचत" करता है।

हालाँकि, विचार करने के लिए एक संबंधित लागत है, अन्यथा आप एक जाल में पड़ जाएंगे: एक बार Skill लोड हो जाने के बाद, इसका पाठ पूरे सत्र में वहीं रहेगा—Claude इसे बाद के प्रत्येक दौर में फिर से नहीं पढ़ेगा। आधिकारिक मूल शब्द:

जब आप या Claude किसी skill को कॉल करते हैं, तो प्रस्तुत SKILL.md सामग्री वार्तालाप में एक संदेश के रूप में प्रवेश करती है और सत्र के शेष भाग के लिए वहीं रहती है

इसका दो अर्थ है: पहला, Skill के पाठ में प्रत्येक पंक्ति एक दोहराया गया token लागत है, इसमें पानी न डालें। अधिकारी सलाह देते हैं कि SKILL.md को 500 पंक्तियों के भीतर रखा जाए, और लंबे संदर्भों को आवश्यकतानुसार लोड करने के लिए अलग-अलग फ़ाइलों में विभाजित किया जाए; दूसरा, "स्थायी निर्देश" लिखें "एक बार के चरणों" के बजाय—क्योंकि यह हमेशा वहां रहता है, इसे "संपूर्ण कार्य के लिए लागू मार्गदर्शन" के रूप में लिखा जाना चाहिए, न कि "पहला कदम X करना है" जो एक बार उपयोग करने के बाद समाप्त हो जाता है।

यहाँ एक संबंधित छोटा गड्ढा है जिसमें मैं खुद गिर गया था: मैंने एक Skill लिखा, और पहले कुछ दौरों में मैंने इसका पालन किया, लेकिन बाद में मुझे ऐसा लगा कि "ऐसा लगता है कि यह निर्देशों के इस सेट को भूल गया है"। मेरी पहली प्रतिक्रिया यह थी कि लोडिंग विफल हो गई, और मैंने Claude को बार-बार यह सोचकर पुनः आरंभ किया कि यह इसे फिर से पढ़ेगा। मैंने आधिकारिक दस्तावेज़ों को देखा और महसूस किया—सामग्री आमतौर पर अभी भी वहीं है, लेकिन मॉडल ने अन्य उपकरणों को चुनने के लिए मुड़ लिया है। इसका समाधान description और निर्देशों को स्पष्ट बनाना है, ताकि यह लोडिंग तंत्र पर संदेह करने के बजाय इस Skill के प्रति पक्षपाती बना रहे।

💡 एक वाक्य का सारांश: प्रगतिशील प्रकटीकरण = आमतौर पर केवल एक वाक्य description प्रकट करता है, और आवश्यकता पड़ने पर पूर्ण पाठ का विस्तार करता है, इसलिए चाहे आप कितने भी Skill इंस्टॉल कर लें, यह संदर्भ को नहीं बढ़ाएगा; लेकिन विस्तार के बाद यह पूरी प्रक्रिया के दौरान बना रहेगा, इसलिए पाठ संक्षिप्त होना चाहिए और एक स्थायी निर्देश के रूप में लिखा जाना चाहिए


03 Skill, slash कमांड, Subagent: वास्तव में क्या अंतर है

शुरुआत में बहस का मूल यही खंड है। बहुत से लोग इन तीनों को एक साथ मिला देते हैं, लेकिन वास्तव में उनकी स्थिति बिल्कुल अलग है। यहाँ मैं पहले उन बिंदुओं को तोड़ूँगा जो भ्रमित करने में सबसे आसान हैं। संपूर्ण "किसे चुनना है" निर्णय तालिका 30वें लेख पर छोड़ दी गई है, यह खंड केवल "उनमें अंतर करने" के लिए काम करता है।

आइए पहले तीन शब्दों को संरेखित करें:

  • slash कमांड: आपके द्वारा /xxx टाइप करके सक्रिय रूप से ट्रिगर किया गया एक ऑपरेशन।
  • Skill: पैक की गई क्षमताओं का एक सेट, आप इसे सक्रिय रूप से कॉल कर सकते हैं, और Claude आवश्यकतानुसार इसे स्वचालित रूप से भी कॉल कर सकता है
  • Subagent (उप-एजेंट): एक स्वतंत्र संदर्भ वाला उप-सहायक। मुख्य वार्तालाप इसे एक कार्य सौंपता है, और यह काम खत्म करने के बाद परिणाम वापस लाता है (हमने इसके बारे में 23 Subagents में विस्तार से बात की थी)।

यहाँ एक प्रमुख संज्ञान है, जो विशेष रूप से शुरुआत में गलतफहमी को तोड़ता है: slash कमांड और Skill विरोधी रिश्ते नहीं हैं, slash कमांड वास्तव में Skill को कॉल करने का एक तरीका है। अधिकारियों ने कस्टम कमांड को Skills में मिला दिया है—यदि आप एक commit Skill बनाते हैं, तो इसे स्वाभाविक रूप से /commit का उपयोग करके कॉल किया जा सकता है। वास्तविक अंतर "इसे क्या कहा जाता है" में नहीं है, बल्कि कौन इसे आरंभ कर सकता है और क्या यह संदर्भ लेता है में है:

आयामslash कमांड (पुराना .claude/commands/)SkillSubagent
कौन आरंभ कर सकता हैकेवल आप (ट्रिगर करने के लिए / टाइप करें)आप + Claude दोनों कर सकते हैं (स्वचालित रूप से ट्रिगर किया जा सकता है)मुख्य वार्तालाप सौंपता है
यह किस संदर्भ में चलता हैवर्तमान वार्तालाप मेंवर्तमान वार्तालाप में (डिफ़ॉल्ट)स्वतंत्र उप-संदर्भ
क्या यह आमतौर पर संदर्भ लेता है——केवल एक वाक्य description लेता हैनहीं लेता (मांग पर शुरू होता है)
क्या यह सहायक फाइलें ला सकता हैनहींहाँ (टेम्पलेट / स्क्रिप्ट / उदाहरण)अपनी स्वयं की परिभाषा पर निर्भर करता है
के लिए सबसे उपयुक्तनिश्चित संचालन जब आप मैन्युअल रूप से समय को नियंत्रित करना चाहते हैंविशेष क्षमताएं जिनका Claude को आवश्यकतानुसार उपयोग करने देना चाहिएअलग से स्वतंत्र, भारी उप-कार्यों को चलाना

इस तालिका को समझने के बाद, शुरुआत में विवाद सुलझ गया है: "slash कमांड" की वह समझ Skill का मैन्युअल ट्रिगरिंग गियर है; यह महसूस नहीं हुआ कि वही Skill Claude को इसे स्वचालित रूप से ट्रिगर करने की भी अनुमति दे सकता है

तो क्या "स्वचालित ट्रिगरिंग" गड़बड़ होगी? नहीं, क्योंकि आप ठीक से नियंत्रित कर सकते हैं कि किसे इसे कॉल करने का अधिकार है। अधिकारी दो frontmatter स्विच देते हैं:

  • disable-model-invocation: true: केवल आप इसे कॉल कर सकते हैं। उन कार्यों के लिए उपयोग किया जाता है जिनके दुष्प्रभाव होते हैं और जहां आप समय को स्वयं नियंत्रित करना चाहते हैं—जैसे /deploy, /commit, या Slack संदेश भेजना। आप निश्चित रूप से नहीं चाहते कि Claude "देखें कि आपका कोड लिखा हुआ दिखता है" और अपना दावा करे और इसे तैनात करे।
  • user-invocable: false: केवल Claude इसे कॉल कर सकता है। "पृष्ठभूमि ज्ञान" प्रकार के Skill के लिए उपयोग किया जाता है—जैसे legacy-system-context जो बताता है कि पुरानी प्रणाली कैसे चलती है। जब Claude को इसका उपयोग करना हो तो उसे बस जानना होगा, लेकिन /legacy-system-context आपके लिए एक सार्थक कमांड नहीं है।

इसलिए "गड़बड़" नियंत्रण में है: यदि आप डरते हैं कि यह स्वचालित रूप से कार्य करेगा, तो इसे शुद्ध रूप से मैन्युअल रूप से लॉक करने के लिए disable-model-invocation: true का उपयोग करें; यह वही चाल है जो ऊपर गलतफहमी में इस्तेमाल की जानी चाहिए।

💡 एक वाक्य का सारांश: slash कमांड Skill का मैन्युअल ट्रिगर गियर है, और Subagent एक स्वतंत्र संदर्भ के साथ एक उप-सहायक है—तीनों की स्थिति अलग है; यदि आप डरते हैं कि Skill स्वचालित रूप से गड़बड़ करेगा, तो इसे लॉक करने के लिए disable-model-invocation: true का उपयोग करें ताकि केवल आप इसे कॉल कर सकें


04 Skill कहाँ से आते हैं: इन-बिल्ट, प्लगइन्स द्वारा लाए गए, स्वयं लिखे गए

यह जानने के बाद कि यह क्या है, Skill कहाँ से आते हैं? तीन स्रोत, निकट से दूर तक।

स्रोत एक: इन-बिल्ट (बंडल्ड) Skill—आउट-ऑफ़-द-बॉक्स उपलब्ध, हर सत्र में हमेशा मौजूद। Claude Code बंडल्ड Skill के एक बैच के साथ आता है जिसे आपको इंस्टॉल करने की आवश्यकता नहीं है। अधिकारियों द्वारा सूचीबद्ध लोगों में /code-review (कोड समीक्षा), /debug (डिबगिंग), /batch (बैच प्रोसेसिंग), /loop (लूप में चलाना), /claude-api (Claude API संदर्भ) आदि शामिल हैं। "चलने और सत्यापित करने" के लिए तीन सहायक भी हैं: /run (यह देखने के लिए अपना ऐप शुरू करें और चलाएं कि क्या बदलाव काम करते हैं), /verify (पुष्टि करने के लिए निर्माण करें और चलाएं कि परिवर्तन अपेक्षित रूप से काम करते हैं), /run-skill-generator (पहले दो को यह सिखाएं कि आपके प्रोजेक्ट को कैसे बनाना और शुरू करना है)। आप एक / टाइप करके मेनू में इन्हें देख सकते हैं।

ध्यान दें: बंडल्ड Skill और /help और /compact जैसे इन-बिल्ट कमांड एक ही बात नहीं हैं। इन-बिल्ट कमांड सीधे निश्चित तर्क निष्पादित करते हैं; बंडल्ड Skill प्रॉम्प्ट-आधारित हैं—Claude को विस्तृत निर्देश दें, और इसे अपने उपकरणों का उपयोग करके उन्हें व्यवस्थित करने और पूरा करने दें। कॉल करने का तरीका वही है, दोनों / प्लस नाम टाइप करते हैं।

स्रोत दो: प्लगइन्स के साथ संलग्न—एक प्लगइन इंस्टॉल करें, और Skill इसके साथ आएगा। जैसा कि पहले 24 प्लगइन्स में उल्लेख किया गया है, प्लगइन्स एक्सटेंशन के एक समूह को पैकेज कर सकते हैं। Skill उन चीजों में से एक है जो एक प्लगइन ला सकता है: प्लगइन में एक skills/ निर्देशिका बनाएं, और जहां प्लगइन सक्षम है वहां ये Skill उपलब्ध होंगे। प्लगइन Skill प्लगइन नाम:skill नाम के नेमस्पेस का उपयोग करते हैं (जैसे /my-plugin:review), इसलिए वे कभी भी आपके अपने Skill के साथ नाम में नहीं टकराएंगे

स्रोत तीन: स्वयं लिखें—यह Skill का मुख्य क्षेत्र है। निर्देशों के उस सेट, चेकलिस्ट, और बहु-चरणीय प्रक्रिया जिसे आप बार-बार चिपकाते हैं, उसे SKILL.md में लिखें, और यह आपकी विशेष क्षमता बन जाएगा। अधिकारियों द्वारा दिया गया निर्णय मानक बहुत व्यावहारिक है:

जब आप लगातार चैट में समान निर्देशों, चेकलिस्टों या बहु-चरणीय प्रक्रियाओं को पेस्ट कर रहे हों, या जब CLAUDE.md का कोई हिस्सा तथ्यों के बजाय एक प्रक्रिया के रूप में विकसित हो गया हो, तो एक skill बनाएं

यह वाक्य Skill और CLAUDE.md के बीच श्रम के विभाजन को इंगित करता है, जो पिछले लेख से पूरी तरह मेल खाता है: CLAUDE.md "तथ्य" रखता है (इस परियोजना में किस प्रौद्योगिकी स्टैक का उपयोग किया जाता है, क्या सम्मेलन हैं), और Skill "प्रक्रियाएं" रखता है (यह बात कितने चरणों में की जाती है)। यदि आप पाते हैं कि आप CLAUDE.md में "पहला कदम... दूसरा कदम..." लिख रहे हैं, तो उस हिस्से को Skill में ले जाना चाहिए।

नीचे दी गई तालिका आपको सही जगह खोजने में मदद करेगी:

आपकी स्थिति❌ ऐसा फिर न करें✅ Skill का प्रयोग करें
हर कमिट के लिए एक ही प्रक्रिया का आग्रह करेंहर बार चरणों को मैन्युअल रूप से टाइप करेंएक commit Skill लिखें, और इसे एक वाक्य के साथ कॉल करें
टीम में एक निश्चित API लेखन शैली हैइसे CLAUDE.md में भर दें जो पूरे संदर्भ को ले लेता हैइसे एक Skill के रूप में लिखें और आवश्यकता पड़ने पर इसे लोड करें
किसी प्रकार की दृश्य रिपोर्ट चाहते हैंहर बार बताएं कि आपको किस तरह का ग्राफ चाहिएएक जनरेशन स्क्रिप्ट को एक Skill में बंडल करें

💡 एक वाक्य का सारांश: Skill के तीन स्रोत—इन-बिल्ट बंडल्ड (आउट-ऑफ़-द-बॉक्स), प्लगइन्स द्वारा लाए गए (आप जो इंस्टॉल करते हैं वह लाएं), स्वयं लिखें (मुख्य क्षेत्र); यह तय करने के लिए केवल एक नियम है कि क्या इसे स्वयं लिखना है: क्या आप बार-बार एक ही सेट के चरणों को चिपका रहे हैं


05 इसे कहाँ रखा जाए यह निर्धारित करता है कि कौन इसका उपयोग कर सकता है + कैसे ट्रिगर करें, कैसे जांचें

अंतिम भाग सबसे व्यावहारिक तीन चीजों के बारे में है: आप जो Skill खुद लिखते हैं उन्हें कहां रखें, उन्हें कैसे ट्रिगर किया जाता है, और यह कैसे देखें कि वर्तमान में आपके पास क्या है।

इसे किस निर्देशिका में रखा गया है यह निर्धारित करता है कि कौन इसका उपयोग कर सकता है

यह आधिकारिक स्थान तालिका है। गलत स्थान पर रखना = जिन लोगों को इसका उपयोग करना चाहिए वे इसका उपयोग नहीं कर सकते। बस इसका पालन करें:

दायराकहाँ रखेंकौन उपयोग कर सकता है
व्यक्तिगत~/.claude/skills/<skill-name>/SKILL.mdआपके सभी प्रोजेक्ट
प्रोजेक्ट.claude/skills/<skill-name>/SKILL.mdकेवल यह वर्तमान प्रोजेक्ट
प्लगइन<plugin>/skills/<skill-name>/SKILL.mdवे स्थान जहाँ प्लगइन सक्षम है
एंटरप्राइज़होस्टिंग सेटिंग्स देखेंसंगठन में सभी

तर्क बहुत सीधा है: केवल आपके उपयोग के लिए, और जो सभी परियोजनाओं में सामान्य है (जैसे आपकी व्यक्तिगत commit आदतें), उन्हें व्यक्तिगत स्तर ~/.claude/skills/ में रखें; इस परियोजना के लिए अनन्य, और जो आप चाहते हैं कि टीम उपयोग करे (जैसे इस परियोजना की परिनियोजन प्रक्रिया), उन्हें परियोजना स्तर .claude/skills/ में रखें और उन्हें रिपॉजिटरी में सबमिट करें।

समान नाम होने पर कौन जीतता है? आधिकारिक तौर पर निर्धारित प्राथमिकता एंटरप्राइज़ > व्यक्तिगत > प्रोजेक्ट है (क्योंकि प्लगइन्स नेमस्पेस के साथ आते हैं, वे नाम हथियाने में भाग नहीं लेते हैं)। हाइलाइट करने लायक एक सुरक्षा युक्ति भी है: प्रोजेक्ट-स्तरीय Skill को रिपॉजिटरी में चेक किए जाने के बाद, जब दूसरे इसे नीचे खींचते हैं तो उन्हें पहले "वर्कस्पेस ट्रस्ट" डायलॉग बॉक्स पास करना होगा—क्योंकि Skill में allowed-tools खुद को टूल के एक बैच को अधिकृत कर सकता है, रिपॉजिटरी पर भरोसा करने से पहले, यह देखने के लिए प्रोजेक्ट में Skill को देखें कि क्या लिखा गया है, किसी अज्ञात Skill द्वारा गुप्त रूप से अनुमतियों को न खोलें।

कैसे ट्रिगर करें: description के माध्यम से स्वचालित मिलान, कमांड को याद रखने की कोई आवश्यकता नहीं है

यह Skill के बारे में सबसे अच्छी बात है: आपको /कुछ कुछ याद रखने की आवश्यकता नहीं है, बस सामान्य मानवीय भाषा बोलें। Claude यह जांचने के लिए आपके शब्दों का उपयोग करेगा कि क्या वे प्रत्येक Skill के description से मेल खाते हैं, और यदि वे मेल खाते हैं, तो यह स्वचालित रूप से उस Skill को कॉल करेगा।

अनुभाग 01 में summarize-changes Skill को उदाहरण के रूप में लें, इसके description में कहा गया है "उपयोग करें जब उपयोगकर्ता पूछता है कि क्या बदला गया है...", इसलिए दोनों तरीके इसे ट्रिगर कर सकते हैं:

text
मैंने क्या बदला?
text
/summarize-changes

पहला है Claude को इसे स्वचालित रूप से कॉल करने दें (आपने Skill के नाम का उल्लेख भी नहीं किया, और यह अपने आप मेल खाता है); दूसरा है सीधे नाम पुकारना। पहले वाले को दैनिक उपयोग के लिए अधिक अनुशंसित किया जाता है—बस अपनी आवश्यकताओं को बताएं, और ट्रिगरिंग को इस पर छोड़ दें। यह आपको यह भी बताता है कि Skill लिखते समय description कितना महत्वपूर्ण है: description में ऐसे कीवर्ड होने चाहिए जो उपयोगकर्ता स्वाभाविक रूप से कहेगा, ताकि यह सटीक रूप से मेल खा सके। अधिकारियों के लिए "Skill ट्रिगर नहीं हो रहा है" का समस्या निवारण करने का पहला नियम इसकी जांच करना है:

जांचें कि क्या विवरण में ऐसे कीवर्ड हैं जो उपयोगकर्ता स्वाभाविक रूप से कहेंगे।

कैसे जांचें: वर्तमान में कौन से Skill उपलब्ध हैं

एक गुच्छा स्थापित किया, एक गुच्छा इन-बिल्ट है, आप कैसे जानते हैं कि आपके पास अभी क्या है? सबसे सीधा तरीका एक वाक्य में पूछना है:

text
वर्तमान में कौन से Skill उपलब्ध हैं?

यह आपको वर्तमान में उपलब्ध सभी Skill सूचीबद्ध करेगा। यह आधिकारिक तौर पर अनुशंसित समस्या निवारण क्रियाओं में से एक भी है—पहले पुष्टि करें कि क्या यह वास्तव में सूची में है, और फिर ट्रिगर करने के बारे में बात करें। इसके अलावा, कमांड मेनू लाने के लिए / टाइप करने से आपको वह भी दिखाई देगा जिसे आप मैन्युअल रूप से कॉल कर सकते हैं, और /doctor आपको यह जांचने में मदद कर सकता है कि क्या "Skill विवरण बहुत अधिक इंस्टॉल होने के कारण छोटा कर दिया गया है" (यदि बहुत सारे Skill इंस्टॉल हैं, तो विवरण को कैरेक्टर बजट बचाने के लिए संकुचित किया जाएगा, जो मिलान के लिए उपयोग किए जाने वाले कीवर्ड को काट सकता है)।

💡 एक वाक्य का सारांश: व्यक्तिगत स्तर को ~/.claude/skills/ में रखा गया है, और प्रोजेक्ट स्तर को .claude/skills/ में रखा गया है; समान नाम होने पर प्राथमिकता: एंटरप्राइज़ > व्यक्तिगत > प्रोजेक्ट; ट्रिगरिंग description के स्वचालित मिलान पर निर्भर करती है, कमांड को याद रखने की कोई आवश्यकता नहीं है; एक वाक्य What skills are available? जांच सकता है कि वर्तमान में क्या उपलब्ध है


06 करो: 5 मिनट में "स्वचालित ट्रिगरिंग" और "प्रगतिशील प्रकटीकरण" को स्पष्ट रूप से देखें

सिर्फ देखना और अभ्यास न करना याद नहीं रखा जाएगा। निम्नलिखित न्यूनतम ऑपरेशन, किसी भी जटिल स्क्रिप्ट को लिखे बिना, आपको अपनी आंखों से दो चीजें देखने देगा: कैसे एक Skill स्वचालित रूप से एक वाक्य से ट्रिगर होता है, और यह आमतौर पर केवल एक पंक्ति कैसे लेता है। पूरी प्रक्रिया एक खाली निर्देशिका में चलाई जा सकती है।

चरण 1: व्यक्तिगत स्तर Skill निर्देशिका बनाएं (Mac / Linux)

bash
mkdir -p ~/.claude/skills/explain-self

Windows उपयोगकर्ता: बस C:\Users\आपका उपयोगकर्ता नाम\.claude\skills\ के तहत एक नया explain-self फ़ोल्डर बनाएँ।

अपेक्षा: ~/.claude/skills/ के तहत एक नई explain-self खाली निर्देशिका जोड़ी गई है।

चरण 2: एक सरलतम SKILL.md लिखें

अपने पसंदीदा संपादक का उपयोग करके, निम्न सामग्री को ~/.claude/skills/explain-self/SKILL.md में सहेजें:

yaml
---
description: एक शांत कैफे चैट शैली में कोड के एक टुकड़े या एक त्रुटि संदेश की व्याख्या करें। उपयोग तब करें जब उपयोगकर्ता "इस कोड का क्या मतलब है", "यह त्रुटि क्या है", या "मुझे इसे पढ़ने में मदद करें" कहता है।
---

## विवरण

उपयोगकर्ता द्वारा दिए गए कोड या त्रुटि संदेश को सबसे बोलचाल और आरामदायक तरीके से समझाएं, जैसे कि किसी कैफे में किसी मित्र के साथ बातचीत कर रहे हों, और अकादमिक स्वर का उपयोग न करें। आवश्यकताएं:
1. सबसे पहले एक वाक्य में समझाएं कि कोड का यह टुकड़ा समग्र रूप से क्या कर रहा है।
2. फिर कुछ प्रमुख पंक्तियां चुनें और उन्हें एक-एक करके सरल शब्दों में समझाएं।
3. अंत में, उल्लेख करें: क्या ऐसा कुछ है जो अजीब लगता है या एक संभावित नुकसान हो सकता है।

शब्दजाल का ढेर न लगाएं, यदि संभव हो तो जीवन सादृश्य का उपयोग करें।

हाइलाइट: उस description लाइन को जानबूझकर उन चीजों से भरा गया है जो उपयोगकर्ता कह सकता है—"इस कोड का क्या अर्थ है", "यह त्रुटि क्या है"। यह वह "हेडर टैग" है जिसका उल्लेख धारा 02 में किया गया है, यह वास्तविक भाषण के जितना करीब होगा, ट्रिगरिंग उतनी ही सटीक होगी

अपेक्षा: explain-self निर्देशिका में एक SKILL.md है।

चरण 3: Claude प्रारंभ करें और पुष्टि करें कि यह इस Skill को पहचानता है

bash
claude

अंदर जाने के बाद टाइप करें:

text
वर्तमान में कौन से Skill उपलब्ध हैं?

अपेक्षा: लौटाई गई उपलब्ध Skill सूची में, आप explain-self देख सकते हैं, और उसके बगल में आपके द्वारा लिखा गया विवरण है। इसे सूची में देखना = Skill सही ढंग से लोड किया गया है। (यह कदम प्रगतिशील प्रकटीकरण की भी पुष्टि करता है: इस समय संदर्भ में केवल एक वाक्य description है, और निर्देशों की कुछ पंक्तियां अभी तक लोड नहीं हुई हैं।)

चरण 4: इसका नाम न पुकारें, इसे ट्रिगर करने के लिए "मानवीय शब्दों" का उपयोग करें

जानबूझकर /explain-self टाइप न करें, बल्कि कुछ ऐसा कहें जो description से मेल खाता हो:

text
इस कोड का क्या अर्थ है: print(sum([1,2,3]) / len([1,2,3]))

अपेक्षा: Claude स्वचालित रूप से आपकी बात को explain-self के description के साथ मिलाएगा, स्वचालित रूप से इस Skill को कॉल करेगा (आप इसके प्रतिक्रिया में Skill के ट्रिगर होने का संकेत देख सकते हैं), और फिर आपके द्वारा लिखे गए तीन चरणों का पालन करें—पहले एक वाक्य में समग्र बात (इन तीन संख्याओं की औसत गणना करना) बताएं, फिर इसे पैराग्राफ दर पैराग्राफ तोड़ें, और कम शब्दजाल का उपयोग करें—समझाने के लिए। इसने आपके कमांड की प्रतीक्षा किए बिना संबंधित क्षमता को कॉल किया, जो कि स्वचालित ट्रिगरिंग है।

चरण 5: "नाम द्वारा कॉल करने" की तुलना करें

मैन्युअल गियर को फिर से आज़माएं, सीधे टाइप करें:

text
/explain-self यह त्रुटि क्या है: ZeroDivisionError: division by zero

अपेक्षा: इस Skill को समान रूप से ट्रिगर करें, और प्रभाव चरण 4 के समान ही है—अंतर केवल इतना है कि इस बार आपने इसे सक्रिय रूप से पुकारा। दो रास्ते एक ही क्षमता की ओर ले जाते हैं, जो केवल धारा 03 तालिका में "आप + Claude दोनों इसे आरंभ कर सकते हैं" की पुष्टि करता है।

इन पांच चरणों को चलाने के बाद, आपने व्यक्तिगत रूप से Skill के बारे में दो सबसे मुख्य बातें सत्यापित की हैं—"विवरण मिलान स्वचालित ट्रिगरिंग" और "सामान्य रूप से केवल एक वाक्य विवरण लेना"

💡 एक वाक्य का सारांश: ~/.claude/skills/explain-self/SKILL.md बनाएँ, लोडिंग की पुष्टि करने के लिए What skills are available? का उपयोग करें, और फिर इसे एक बार ट्रिगर करने के लिए "मानवीय शब्दों" और /नाम का उपयोग करें—स्वचालित ट्रिगरिंग और मैन्युअल ट्रिगरिंग दोनों को अपनी आंखों से एक ही क्षमता की ओर ले जाते हुए देखना दस दस्तावेज़ों को याद रखने से अधिक वास्तविक है


07 सारांश

इस लेख ने Agent Skills को "यह क्या है" से लेकर "इसका उपयोग कैसे करें" तक सुव्यवस्थित किया है—यह Claude को एक खाली स्लेट से एक विशेष क्षमता के साथ बदल देता है जिसे आवश्यकतानुसार ऑन-डिमांड कॉल किया जा सकता है

समीक्षा के लिए मुख्य बिंदुओं को एक साथ बांधें:

आप क्या पता लगाना चाहते हैंउत्तरमुख्य बिंदु
Skill क्या हैSKILL.md + वैकल्पिक सहायक फाइलें एक में पैक की गईंfrontmatter बताता है कि कब उपयोग करना है, और पाठ बताता है कि कैसे करना है
यह संदर्भ को क्यों नहीं बढ़ाता हैप्रगतिशील प्रकटीकरणआम तौर पर केवल एक वाक्य का विवरण दिखाता है, आवश्यकता पड़ने पर पूर्ण पाठ का विस्तार करता है
slash / Subagent के साथ क्या अंतर हैअलग स्थितिslash एक मैनुअल गियर है, Subagent एक स्वतंत्र संदर्भ है (निर्णय तालिका के लिए लेख 30 देखें)
Skill कहाँ से आता हैइन-बिल्ट / प्लगइन्स द्वारा लाया गया / खुद लिखा गयाबार-बार एक ही सेट के चरणों को चिपकाना = इसे स्वयं लिखने का समय
कहाँ रखें, कैसे ट्रिगर करें, कैसे जांचेंनिर्देशिका दायरा निर्धारित करती हैdescription स्वचालित मिलान; वर्तमान में कौन से Skill उपलब्ध हैं? जांच

अब आपको सक्षम होना चाहिए: स्पष्ट रूप से बताएं कि Skill किस चीज से बना है और "प्रगतिशील प्रकटीकरण" के माध्यम से संदर्भ को बचाने का सिद्धांत; स्पष्ट रूप से Skill, slash कमांड और Subagent की स्थिति में अंतर करें; Skill के तीन स्रोत और उन्हें किस निर्देशिका में रखा गया है यह निर्धारित करता है कि उनका उपयोग कौन कर सकता है; और समझें कि इसे ट्रिगर करना description के स्वचालित मिलान पर निर्भर करता है, कमांड को याद रखने की कोई आवश्यकता नहीं है। "मांग पर विशेष क्षमताओं को कॉल करने" की यह क्षमता Claude को "सामान्य सहायक" से "विशेषज्ञ जो आपके काम को समझता है" में ट्यून करने का महत्वपूर्ण कदम है।


अगला लेख 27 "Skills उपयोग उदाहरण"—यह लेख पूरी तरह से अवधारणाओं और तंत्रों के बारे में है, और अगला लेख वास्तविक बात है: आपको खरोंच से एक वास्तव में उपयोगी Skill स्थापित करने, इसे स्वयं ट्रिगर करने और इसे काम पूरा करते देखने के लिए ले जाता है। इसके बारे में सोचें, आपके दैनिक जीवन में ऐसा कौन सा काम है जो आप Claude को बार-बार दोहराने के लिए कहते हैं? अगले लेख में, हम इस प्रकार के काम पर प्रहार करेंगे और इसे एक ऐसी क्षमता में समाहित करेंगे जिसे एक वाक्य में कहा जा सकता है।


अनुशंसित पठन