अस्पष्ट निर्देशों के बजाय स्पष्ट मानदंड
'Flag X only when Y', 'be more precise' से बेहतर है।
अस्पष्ट निर्देशों के बजाय स्पष्ट मानदंड, CoddyKit पर Claude Architect का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Claude Architect सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Claude Architect पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
मूल विचार
जब क्लॉड किसी कार्य में अपेक्षानुसार प्रदर्शन नहीं करता, तो आर्किटेक्ट अक्सर be more precise या try harder जैसे अस्पष्ट सुधार सुझाते हैं। यह शायद ही कभी काम करता है।
विश्वसनीय तरीका है अस्पष्ट निर्देशों को स्पष्ट मानदंडों से बदलना: ऐसा ठोस नियम जो ठीक-ठीक बताता है कि कब कार्य करना है।
इन दो कोड-समीक्षा प्रॉम्प्ट की तुलना करें:
- अस्पष्ट: "टिप्पणियों के बारे में अधिक सटीक रहें।"
- स्पष्ट: "किसी टिप्पणी को तभी चिह्नित करें जब वह उस कोड का खंडन करती हो जिसका वह वर्णन करती है।"
दूसरा मॉडल को ऐसी जाँच योग्य सीमा देता है जिसे वह लगातार लागू कर सकता है।
अस्पष्ट निर्देश विफल क्यों होते हैं
"अधिक सटीक बनें" यह मानता है कि Claude पहले से जानता है कि आप सटीक से क्या मतलब रखते हैं। ऐसा नहीं है। वह अनुमान लगाएगा, और अलग-अलग बार अलग अनुमान लगाएगा।
अस्पष्ट निर्देश निर्णय-सीमा को मॉडल की व्याख्या में धकेल देते हैं, जहाँ वह संभाव्यतामूलक और असंगत होती है।
स्पष्ट मानदंड उस सीमा को वापस आपके विनिर्देशन में ले आते हैं, जहाँ वह हर बार स्थिर रहती है। यही वह प्रवृत्ति है जो महत्वपूर्ण नियमों के लिए हुक्स (नियतात्मक) को प्रॉम्प्ट मार्गदर्शन (~90% संभाव्यतामूलक) से अधिक सुरक्षित बनाती है — दाँव जितने बड़े हों, उतना ही ठोस रहें।
‘X को केवल Y होने पर फ़्लैग करें’ पैटर्न
समीक्षा और वर्गीकरण कार्यों के लिए एक शक्तिशाली टेम्पलेट है:
"X को केवल Y होने पर फ़्लैग करें।"
यह एक साथ दो काम करता है:
- यह लक्ष्य (X) बताता है — आप क्या खोज रहे हैं।
- यह ट्रिगर (केवल Y होने पर) की सीमा तय करता है — कार्रवाई को उचित ठहराने वाली सटीक शर्त।
केवल शब्द महत्वपूर्ण है: यह Claude को बताकर गलत-सकारात्मक परिणामों को रोकता है कि जो भी चीज़ Y की शर्त पूरी नहीं करती, उसे फ़्लैग न करें।
system = (
"You review pull-request diffs.\n"
"Flag a comment ONLY WHEN it contradicts the code it describes.\n"
"Do NOT flag style, tone, or outdated TODOs."
)
resp = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
system=system,
messages=[{"role": "user", "content": diff}],
)ठोस बातें अमूर्त बातों से बेहतर हैं
स्पष्ट मानदंड इसलिए काम करते हैं क्योंकि उन्हें परीक्षण योग्य बनाया जा सकता है। किसी भी दिए गए इनपुट के लिए आप (और Claude) हाँ या नहीं में उत्तर दे सकते हैं।
देखें कि एक अस्पष्ट निर्देश कैसे मानदंड में स्पष्ट होता जाता है:
- अस्पष्ट: "सुरक्षा संबंधी समस्याएँ पकड़ें।"
- बेहतर: "किसी फ़ंक्शन को केवल तब फ़्लैग करें जब वह उपयोगकर्ता के इनपुट को सीधे SQL स्ट्रिंग में इंटरपोलेट करे।"
- अस्पष्ट: "सारांश सुधारें।"
- बेहतर: "केवल 25 शब्दों से लंबे वाक्यों को फिर से लिखें; बाकी को अपरिवर्तित छोड़ दें।"
हर "बेहतर" संस्करण ऐसी शर्त बताता है जिसे कोई आर्किटेक्ट हाथ से सत्यापित कर सकता है।
नकारात्मक क्षेत्र को भी परिभाषित करें
स्पष्ट मानदंड तब सबसे अधिक प्रभावी होते हैं जब आप यह भी बताते हैं कि क्या नहीं करना है। सीमा के दो पक्ष होते हैं।
बहिष्करणों का नाम लेने से Claude का अत्यधिक फ़्लैग करना रुकता है — CI/CD समीक्षा में यही सबसे आम शिकायत है, जहाँ गलत-सकारात्मक परिणाम टूल पर भरोसा कम कर देते हैं।
दायरे में आने वाली शर्त और दायरे से बाहर के मामलों को साथ-साथ लिखें।
system = (
"Review changed files for bugs.\n"
"FLAG when: a variable is used before assignment, "
"a promise is not awaited, or an index can go out of bounds.\n"
"DO NOT FLAG: formatting, naming preferences, or missing comments.\n"
"If nothing meets the FLAG criteria, return an empty list."
)मानदंडों के साथ कुछ फ़्यू-शॉट उदाहरण दें
जब कोई शर्त वास्तव में अस्पष्ट हो, तो हर अस्पष्टता के लिए 2-4 लक्षित फ़्यू-शॉट उदाहरण जोड़ें। Claude उनसे सामान्यीकरण करता है — वह केवल उन्हें दोहराता नहीं है।
फ़्यू-शॉट उदाहरण संगति, सीमांत मामलों, आउटपुट प्रारूप और मतिभ्रम कम करने के लिए सबसे प्रभावी उपाय हैं। ऐसे उदाहरण चुनें जो सीमा पर बिल्कुल स्थित हों और जिनमें कम-से-कम एक नकारात्मक मामला हो (ऐसी चीज़ जो फ़्लैग करने योग्य लगे, लेकिन हो नहीं)।
system = (
"Flag a comment ONLY WHEN it contradicts the code.\n\n"
"Example 1 (FLAG): code returns x*2 but comment says 'adds two'.\n"
"Example 2 (FLAG): comment says 'sorted ascending' but code sorts desc.\n"
"Example 3 (NO FLAG): comment is terse but accurate.\n"
"Example 4 (NO FLAG): TODO note unrelated to current logic."
)निर्णय को संरचना में बाध्य करें
मानदंड तय करते हैं कि फ़्लैग करना है या नहीं; संरचित आउटपुट तय करता है कि उत्तर किस रूप में वापस आएगा। दोनों को मिलाने से शुरू से अंत तक अस्पष्टता दूर हो जाती है।
JSON Schema वाले टूल का उपयोग करें और tool_choice को any पर सेट करें, ताकि संरचित आउटपुट सुनिश्चित हो। आवश्यक reason फ़ील्ड Claude को आपके मानदंडों के आधार पर हर फ़्लैग का कारण बताने के लिए बाध्य करती है, जिससे कमज़ोर फ़्लैग हतोत्साहित होते हैं।
स्कीमा का नियम याद रखें: किसी फ़ील्ड को तभी आवश्यक चिह्नित करें जब वह हमेशा मौजूद हो — जो फ़ील्ड अनुपस्थित हो सकती है, उसे कभी आवश्यक न बनाएं, वरना मॉडल उसे गढ़ देगा।
tools = [{
"name": "report_findings",
"description": "Return comment contradictions found in the diff.",
"input_schema": {
"type": "object",
"properties": {
"findings": {"type": "array", "items": {
"type": "object",
"properties": {
"line": {"type": "integer"},
"reason": {"type": "string"}
},
"required": ["line", "reason"]
}}
},
"required": ["findings"]
}
}]
resp = client.messages.create(
model="claude-sonnet-4-5", max_tokens=1024,
system=system, tools=tools,
tool_choice={"type": "any"},
messages=[{"role": "user", "content": diff}],
)मानदंड CLAUDE.md में रहते हैं
Claude Code वर्कफ़्लो में स्पष्ट मानदंड किसी साझा, संस्करण-नियंत्रित स्थान पर होने चाहिए, ताकि हर बार और हर सहकर्मी एक ही नियमों का उपयोग करे।
उन्हें प्रोजेक्ट-स्तर की ./CLAUDE.md (VCS के माध्यम से साझा) में रखें, उपयोगकर्ता-स्तर की ~/.claude/CLAUDE.md (व्यक्तिगत, साझा नहीं — नए सहकर्मी उन्हें नहीं देख पाएँगे) में नहीं।
ऐसे मानदंडों के लिए जो फ़ाइलों के किसी उपसमुच्चय पर लागू होते हैं, YAML paths फ्रंटमैटर वाली .claude/rules/ फ़ाइल का उपयोग करें, ताकि वह केवल मिलती-जुलती फ़ाइलों को संपादित करते समय लोड हो — एक विशाल CLAUDE.md की तुलना में संदर्भ बचाते हुए।
---
paths:
- "src/**/*.sql"
---
# SQL Review Criteria
Flag a query ONLY WHEN user input is concatenated
into SQL instead of using parameterized placeholders.
Do NOT flag read-only queries with no user input.CI/CD समीक्षा में स्पष्ट मानदंड
पाइपलाइन में अस्पष्ट निर्देश की कीमत शोर है: गलत-सकारात्मक फ़्लैग, जो डेवलपरों को बॉट को नज़रअंदाज़ करना सिखा देते हैं।
समीक्षा को -p के साथ गैर-इंटरैक्टिव रूप से चलाएँ और --output-format json के साथ पार्स किए जा सकने वाले परिणाम निकालें। तीखे "केवल तब फ़्लैग करें" मानदंड ही गलत-सकारात्मक दर को इतना कम रखते हैं कि टूल पर भरोसा किया जा सके।
समीक्षा एक अलग-थलग सत्र में करें (जनरेशन संदर्भ की तुलना में कम पक्षपाती), और दोबारा चलाने पर पिछले परिणाम शामिल करें, ताकि बॉट केवल नई या अब तक ठीक न की गई समस्याओं की रिपोर्ट करे।
claude -p "Review the staged diff against the criteria in CLAUDE.md. \
Flag an issue ONLY WHEN it meets a listed FLAG condition. \
Report only new or still-unfixed issues from prior-results.json." \
--output-format json > review.jsonजब मानदंड पर्याप्त नहीं होते
स्पष्ट मानदंड संभाव्यतामूलक व्यवहार को कहीं अधिक विश्वसनीय बनाते हैं — लेकिन वे अब भी मार्गदर्शन हैं, लगभग 90% पालन, गारंटी नहीं।
जब किसी नियम के वित्तीय, कानूनी या सुरक्षा संबंधी परिणाम हों, तो केवल मानदंड पर्याप्त नहीं हैं। प्रवर्तन को किसी नियतात्मक तंत्र में स्थानांतरित करें:
- एक हुक (जैसे PostToolUse), जो हर बार कार्रवाई को 100% रोकता है।
- एक प्रोग्रामेटिक पूर्वशर्त (जैसे
get_customerसे सत्यापित ID मिलने तक रिफंड की अनुमति न देना)।
मानदंड मॉडल के निर्णय को अधिक स्पष्ट करते हैं; जहाँ चूक की गुंजाइश नहीं होती, हुक निर्णय को पूरी तरह प्रक्रिया से हटा देते हैं।
विनती नहीं, कसावट के साथ पुनरावृत्ति करें
जब परिणाम अब भी बदलते रहें, तो "कृपया अधिक सावधान रहें" जोड़ने की इच्छा रोकें। इसके बजाय, विशिष्ट विफलता खोजें और मानदंड को अधिक कड़ा करें।
- बहुत अधिक गलत-सकारात्मक परिणाम? "केवल तब" वाले खंड में बहिष्करण जोड़ें।
- वास्तविक मामले छूट रहे हैं? ठीक उसी सीमा पर एक फ़्यू-शॉट उदाहरण जोड़ें।
- प्रारूप असंगत है? आउटपुट को
tool_choiceवाले JSON Schema में ले जाएँ।
हर पुनरावृत्ति से नियम अधिक परीक्षण योग्य होना चाहिए, अधिक भावनात्मक नहीं। यही आर्किटेक्ट-स्तरीय प्रॉम्प्टिंग और आशावादी प्रॉम्प्टिंग के बीच का अंतर है।
त्वरित जाँच
Claude Code पर आधारित एक CI/CD समीक्षक बहुत अधिक कम-मूल्य वाली टिप्पणियाँ फ़्लैग कर रहा है और डेवलपर उसे नज़रअंदाज़ करना शुरू कर रहे हैं। CLAUDE.md में वर्तमान निर्देश है: "पूरी सावधानी बरतें और ऐसी हर चीज़ को फ़्लैग करें जो संभवतः समस्या हो सकती है।" सबसे अच्छा सुधार क्या है?
पुनरावलोकन
मुख्य बातें:
- स्पष्ट मानदंड अस्पष्ट निर्देशों से बेहतर होते हैं। "X को केवल Y होने पर फ़्लैग करें" वाक्य "अधिक सटीक बनें" से बेहतर है।
- केवल शब्द और स्पष्ट बहिष्करण नकारात्मक क्षेत्र को परिभाषित करते हैं और गलत-सकारात्मक परिणामों को समाप्त करते हैं।
- मानदंड परीक्षण योग्य होने चाहिए: किसी भी इनपुट के लिए उत्तर हाँ या नहीं हो।
- जब कोई शर्त अस्पष्ट हो, तो सीमा पर 2-4 फ़्यू-शॉट उदाहरण जोड़ें — मॉडल सामान्यीकरण करता है।
- JSON Schema + tool_choice 'any' से आउटपुट को निश्चित करें; केवल हमेशा मौजूद फ़ील्ड आवश्यक बनाएं।
- मानदंड साझा प्रोजेक्ट CLAUDE.md (या पथ-सीमित .claude/rules/) में रखें, व्यक्तिगत उपयोगकर्ता कॉन्फ़िगरेशन में नहीं।
- जब दाँव वित्तीय, कानूनी या सुरक्षा-संबंधी हों, तो प्रवर्तन हुक या पूर्वशर्त से करें — मानदंड लगभग 90% मार्गदर्शन हैं, गारंटी नहीं।
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 26
- पाठ
- 104
अक्सर पूछे जाने वाले प्रश्न
क्या “अस्पष्ट निर्देशों के बजाय स्पष्ट मानदंड” पाठ निःशुल्क है?
हाँ — Claude Architect अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “अस्पष्ट निर्देशों के बजाय स्पष्ट मानदंड” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Claude Architect पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“अस्पष्ट निर्देशों के बजाय स्पष्ट मानदंड” में मैं क्या सीखूँगा?
'Flag X only when Y', 'be more precise' से बेहतर है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Claude Architect का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Claude Architect शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Claude Architect शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“अस्पष्ट निर्देशों के बजाय स्पष्ट मानदंड” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Claude Architect पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Claude Architect पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- अस्पष्ट निर्देशों के बजाय स्पष्ट मानदंड
- श्रेणीगत उदाहरण
- उदाहरणों सहित गंभीरता के मानदंड
- झूठे सकारात्मक परिणाम घटाना