पाठ 10 / 26

Scripts: Skill के भीतर निश्चित काम

सटीक, दोहराने योग्य तर्क कोड में रखें और 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 को यह चलाने को कहेगी।

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 नहीं। सिर्फ़ विफलता नहीं, सुधार छापें।

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

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

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