# Scripts: Skill के भीतर निश्चित काम — Claude Code Skills और SKILL.md

Source: https://www.geekswithgeeks.com/hi/claude-code-skills/f-scripts

> सटीक, दोहराने योग्य तर्क कोड में रखें और Claude को उसे बुलाने दें।

## कोड को वह करने दें जिसमें वह अच्छा है

मॉडल विवेक और भाषा में उत्कृष्ट हैं, और सटीक अंकगणित, parsing और दोहराव वाली जाँचों में अविश्वसनीय। Skill ऐसी **scripts** (Python, Node, shell) बाँध सकती है जो ये चरण निश्चित रूप से करती हैं: format validate करना, API बुलाना, log parse करना, संख्या निकालना, screenshot लेना। Claude script **चलाता** है और उसका **आउटपुट** पढ़ता है; script का source context में आने की ज़रूरत नहीं। Scripts agent पाठक के लिए डिज़ाइन करें: **स्पष्ट arguments** लें, **संक्षिप्त, संरचित आउटपुट** (JSON या छोटी labelled पंक्तियाँ) छापें, **सार्थक exit codes** उपयोग करें, ऐसे **सहायक error संदेश** लिखें जो बताएँ समस्या कैसे ठीक करें, interactive prompts से बचें, और जहाँ संभव हो **idempotent** रहें। SKILL.md में सटीक command लिखें, skill folder के सापेक्ष path सहित, और बताएँ आउटपुट का अर्थ क्या है।

## Skill द्वारा बुलाई जा सकने वाली script, चलाकर

मैंने यह सादे Python 3 (सिर्फ़ standard library) से चलाया। Function commit संदेश को टीम format से जाँचकर समस्याओं की सूची वाला संरचित JSON लौटाता है। वैध संदेश ok true लौटाते हैं; ग़ायब type और बड़े अक्षर से शुरू सार हर एक विशिष्ट समस्या देते हैं। Skill, format की अंदाज़ी जाँच की जगह Claude को यह चलाने को कहेगी।

```python
import json, re, sys

def check_commit_message(msg):
    """Deterministic helper a skill can call instead of asking the model to eyeball the format."""
    first = msg.splitlines()[0] if msg.strip() else ""
    problems = []
    m = re.match(r"^(feat|fix|docs|refactor|test|chore)(\([a-z0-9-]+\))?: (.+)$", first)
    if not m: problems.append("first line must look like 'type(scope): summary'")
    elif len(first) > 72: problems.append(f"first line is {len(first)} characters (max 72)")
    elif m.group(3)[0].isupper(): problems.append("summary should start lowercase")
    return {"ok": not problems, "problems": problems}

for msg in ("fix(cart): round discount to paise", "Fixed the bug", "feat: Add pagination"):
    print(json.dumps(check_commit_message(msg)))

```

Output:

```
{"ok": true, "problems": []}
{"ok": false, "problems": ["first line must look like 'type(scope): summary'"]}
{"ok": false, "problems": ["summary should start lowercase"]}
```

## ऐसे errors लौटाएँ जिन पर Claude कार्य कर सके

"--repo ग़ायब: repository को owner/name के रूप में दें" मदद करता है; सादा stack trace नहीं। सिर्फ़ विफलता नहीं, सुधार छापें।

**Quiz:** Skill की script आपको क्या देती है जो मुक्त-रूप मॉडल आउटपुट नहीं देता?

- [x] निश्चित, दोहराने योग्य परिणाम और context-मुक्त तर्क
- [ ] बेहतर रचनात्मक लेखन
- [ ] बड़ी context window
- [ ] सभी कार्रवाइयों का स्वतः अनुमोदन

*Answer:* निश्चित, दोहराने योग्य परिणाम और context-मुक्त तर्क. कोड अनुमेय है और चलाने पर उसका source context नहीं खाता।
