TL;DR
- 177 लाइन की CLAUDE.md, 3 skills और 1 hook वाले असली repo में सब कुछ हटाने पर सिर्फ़ एक नियम टूटा, एक ही स्थिति में: बिल्कुल नई file पर i18n नियम। बाकी हर convention बची रही, क्योंकि आसपास का code उसे पहले से सिखा रहा था।
- जिन tasks में output एक जैसा था, वहाँ इस file ने पढ़े गए tokens का 4 से 14% खर्च किया, यानी हर दस डॉलर में करीब एक डॉलर। 32% बचत का headline आँकड़ा उस एक task से तय होता है जहाँ file ने model से ज़्यादा काम करवाया।
- Skills और hook का कोई मापने लायक खर्च नहीं था: skills सिर्फ़ invoke होने पर load होती हैं और कोई invoke नहीं हुई, hook बस एक वाक्य inject करता है।
- 82 लाइन के architecture overview से architecture वाले सवाल पर कुछ नहीं मिला: छह जवाब, सब सही, file के साथ भी और बिना भी।
- Anthropic के अपने शब्दों में "delete" का मतलब ablate करके progressive disclosure में ले जाना है, मिटा देना नहीं। जो नियम code नहीं सिखा सकता उन्हें रखें, बाकी rules files और skills में ले जाएँ, और जिन पर समझौता नहीं हो सकता उन्हें hooks बना दें।
- हर config के दो reps एक न्यूनतम सीमा हैं, फ़ैसला नहीं: प्रति task 15% से कम का अंतर run-to-run noise के भीतर है।
मापन क्या कहते हैं
जिस talk पर सब प्रतिक्रिया दे रहे हैं वह दो बातें कहता है, और दूसरी छूट जाती है। Boris Cherny मंच पर पुष्टि करते हैं कि Claude Code ने अपना 80% system prompt हटा दिया, और तरीका बताते हैं: पूरा system prompt हटाओ, फिर हर लाइन का असर मापने के लिए उसे एक-एक लाइन करके वापस लाओ s2. "every 6 months" वाला अंश 00:06:58 से 00:07:05 पर है, और शब्द "really do recommend" हैं, "strongly recommend" नहीं s1. उनके नाम से फैली दो बातें talk में नहीं हैं: "context, goals and a definition of done" (15:22 पर सबसे करीबी असली वाक्य "describe the task, the guardrails, the exit criteria" है) और "64 agents"। वे "eleven days" कहते हैं और agents की गिनती पूछने पर "I'm not sure" s2. 64 का आँकड़ा Bun rewrite वाली पोस्ट का है: "64 Claudes running for 11 days", API pricing पर करीब $165,000, 9 अरब uncached input tokens, 69 करोड़ output tokens और 72 अरब cached input token reads s14.
इन सबको मापने लायक बनाने वाली व्यवस्था loading है। CLAUDE.md और rules files हर turn inject होती हैं; skills सिर्फ़ invoke होने पर load होती हैं। memory docs में वह आकार-निर्देश भी है जिसे सब दोहराते हैं: "target under 200 lines per CLAUDE.md file. Longer files consume more context and reduce adherence." s4. Anthropic की लिखित सलाह repo की केंद्रीय CLAUDE.md को मिथक बताती है और progressive disclosure तथा auto-memory की ओर इशारा करती है s3.
हमारे अध्ययन से पहले का एकमात्र controlled study AGENTS.md पर ETH का paper है: 12 repos के 138 issues, और "providing context files does not generally improve task success rates, while increasing inference cost by over 20% on average"। Developers की commit की हुई files औसतन LLM से बनी files से 7% बेहतर रहीं, और जो निर्देश खास tools का नाम लेते हैं वे मदद करते हैं s5.
Files में क्या होता है और उन्हें कैसे पढ़ा जाता है, इस पर दो data points। 28,721 repositories और 165,063 files में median instruction file में 50 content items हैं, जिनमें 12 असली directives हैं; लेखक के अनुसार file का सिर्फ़ 27% वह काम कर रहा है जो आप सोचते हैं s8. दो सचमुच टकराते निर्देशों वाले controlled experiment में, एक नियम को file के ऊपर से नीचे ले जाने पर model के उसे मानने की दर करीब 90 points बदल जाती है, लगभग कभी नहीं से लगभग हमेशा तक s9. यही प्रकाशक वह रेखा खींचता है जिसे हमारा experiment मानता है: ablation का मतलब deletion नहीं है, और hooks enforcement हैं, model upgrade के साथ expire नहीं होते s7.
दो अनौपचारिक अनुमान हमारे नतीजे से मेल खाए। 1,000 लाइन की CLAUDE.md की तुलना ~20 लाइन के छोटे संस्करण से, उन्हीं GitHub issues पर उसी model के साथ: architecture टिका रहा, house rules टूटे s6. एक commenter, जिसने सब कुछ progressive disclosure में ले जाया, बताता है कि auto-loaded context प्रति session ~35k से घटकर ~4.5k tokens रह गया, बिना कोई ज्ञान हटाए s11. Skill ablations को score करने के लिए tool है: caliper का --ablate skills और MCP servers को कवर करता है और उसका compare success rate, tokens और wall time बताता है; CLAUDE.md की अदला-बदली हाथ से ही करनी पड़ती है s16.
मापन
Protocol: एक private Expo / React Native repo (1,021 tracked files), 177 लाइन की CLAUDE.md, 7,243 अक्षर, करीब 1,800 tokens, 3 skills, 4 slash commands, 1 PreToolUse hook। हर run में model claude-opus-5 पर fix, Claude Code 2.1.278, headless claude -p, --max-turns 40, user config directory खाली, कोई MCP नहीं, हर run से पहले fresh clone reset। पाँच रोज़मर्रा के tasks (नया component, component edit, साझा helpers का refactor, store field persist करना, data path समझाना), एक बार में एक हिस्से का ablation। 44 runs, API pricing पर $38.97, 92 मिनट agent wall time। Scoring: जोड़ी गई लाइनों पर repo के अपने house rules, tsc --noEmit, eslint, जवाब हाथ से grade किए गए।
गुणवत्ता, क्या टूटा:
| config | edit runs | house-rule violations | tsc नई errors | eslint errors |
|---|---|---|---|---|
| A पूरा | 8 | 0 | 0 | 0 |
| B CLAUDE.md नहीं | 8 | 1 (नया heading hardcoded, .content.ts नहीं) |
0 | 0 |
| C skills नहीं | 4 | 0 | 0 | 0 |
| D hook नहीं | 4 | 0 | 0 | 0 |
| E कुछ नहीं | 8 | 2 (heading दो बार hardcoded, .content.ts नहीं) |
0 | 0 |
प्रति run लागत, config के runs का औसत (tokens = cache reads, यानी हर turn दोबारा पढ़ा गया context):
| config | runs | $ / run | turns / run | पढ़े गए tokens / run |
|---|---|---|---|---|
| A पूरा | 10 | 0.95 | 25.6 | 829k |
| B CLAUDE.md नहीं | 10 | 0.74 | 21.9 | 568k |
| C skills नहीं | 5 | 0.96 | 28.2 | 819k |
| D hook नहीं | 5 | 0.96 | 27.8 | 851k |
| E कुछ नहीं | 10 | 0.85 | 25.7 | 655k |
प्रति task, A से B (हर एक के 2 runs का औसत):
| task | A $ | B $ | लागत | पढ़े गए tokens |
|---|---|---|---|---|
| T1 नया component | 1.72 | 0.96 | -44% | -61% |
| T2 component edit | 1.49 | 1.26 | -15% | -15% |
| T3 refactor | 0.64 | 0.63 | -1% | -5% |
| T4 store | 0.57 | 0.53 | -6% | -4% |
| T5 सवाल | 0.34 | 0.31 | -9% | -14% |
| सभी 10 runs | 9.51 | 7.40 | -22% | -32% |
तालिकाओं को पढ़ते हुए। CLAUDE.md के बिना, नए component के 4 में से 3 runs ने heading को सादे string के रूप में लिखा; file के साथ 4 में से 4 ने EN और FR वाली .content.ts बनाई। Edit task में हर config ने, E ने भी, नया string .content.ts में रखा: पास की files में convention मौजूद थी। बाकी सब कुछ सभी 44 runs में टिका रहा: 0 relative imports, types file के छह edits में interface नहीं type, हर diff में design tokens, 0 hex colours, कोई barrel file नहीं। एक निर्देश जिसे कोई नहीं मान सका: file कहती है theme को @design-tokens से import करो, जो ऐसा alias है जो tsconfig.json में है ही नहीं; किसी config के किसी run ने इसे नहीं इस्तेमाल किया, हर session में 1,800 tokens बेकार पढ़े गए। T1 की बचत सस्ते run के कम काम करने से है। Run-to-run variance ज़्यादातर config effects से बड़ी है: पूरे config के साथ T1 की लागत पहले $2.11 फिर $1.33 रही। 333 MB code graph मौजूद रखकर किया गया control पूरे config के आँकड़ों पर ही उतरा (T1 पर $1.59 बनाम $1.72, T5 पर $0.38 बनाम $0.34): graph block और hook ने कुछ भी मापने लायक नहीं बदला।
सोमवार को यह करें
- अपनी CLAUDE.md गिनें: लाइनें, अक्षर, और असली directives (Always, Never, Use, Prefer) वाली लाइनों की संख्या। बाकी वह context है जिसे model हर turn दोबारा पढ़ता है।
- हर section से एक convention चुनें और देखें कि पास की कोई file उसे पहले से दिखाती है या नहीं। अगर folder की तीन files नियम मानती हैं, तो वह लाइन हटाने की उम्मीदवार है।
- वह एक नियम खोजें जो code बिल्कुल नई file पर नहीं सिखा सकता (i18n, telemetry, licence headers, ज़रूरी registration step)। उसे रखें, एक लाइन में लिखें और ऊपर के पास रखें।
- आपकी file में नाम लिया गया हर import path और command आज़माएँ। मरा हुआ alias या बदला हुआ script ऐसा निर्देश है जिसे कोई नहीं मान सकता।
- लंबे architecture overviews और setup walkthroughs को rules file या ज़रूरत पर load होने वाली skill में ले जाएँ, फिर पहले और बाद का auto-loaded context मिलाएँ।
- अपने दो-तीन non-negotiables को hook या lint rule बना दें। Enforcement इस पर निर्भर नहीं करता कि model कोई अनुच्छेद पढ़े।
- अपने दो सबसे आम tasks को pinned model पर file के साथ दो बार और बिना file के दो बार चलाएँ, और tokens तथा diff पढ़ें। दो reps बताते हैं कहाँ देखना है, क्या निष्कर्ष निकालना है यह नहीं।
आगे पढ़ें
- Talk खुद, soundbite के बजाय तरीके के लिए: हटाओ, फिर एक-एक लाइन वापस लाओ s2.
- Paper के पूरे नतीजे, जिसमें यह निष्कर्ष भी है कि developers की commit की हुई files generated files से 7% बेहतर हैं और tools का नाम लेना मदद करता है s5.
- नियम की स्थिति एक variable के रूप में: ~90 points का अंतर और model टकराते निर्देशों को चुपचाप कैसे सुलझाता है s9.
- 30k repos में instruction file की बनावट: 50 items, 12 directives, और बाकी 38 क्या हैं s8.
- अच्छी CLAUDE.md लिखने की HumanLayer guide और वह thread जो उससे बहस करता है s10.
- "MUST use agent, ignored 80% of the time" thread: जहाँ prose विफल होता है वहाँ hooks के पक्ष में तर्क s12.
- "Claude Code now ignores everything" thread, model drift को instruction conflicts से अलग करने में काम का s13.
- caliper, skill और MCP ablations को success rate, tokens और wall time से score करने के लिए s16.
Sources
- Boris Cherny: We Cut 80% of Claude Code's Prompt, Y Combinator. क्यों पढ़ें: मूल उद्धरण, उस चेतावनी के साथ जिसे clips काट देते हैं।
- Transcript of the talk, Y Combinator. क्यों पढ़ें: खोजने लायक text, यह जाँचने के लिए कि क्या कहा गया और क्या नहीं।
- The new rules of context engineering for Claude 5 generation models, Anthropic. क्यों पढ़ें: सलाह का लिखित रूप, केंद्रीय file के बजाय progressive disclosure।
- Memory docs: CLAUDE.md and rules files, Claude Code docs. क्यों पढ़ें: हर turn क्या load होता है, ज़रूरत पर क्या, और 200 लाइन का निर्देश।
- Evaluating AGENTS.md, arXiv. क्यों पढ़ें: इससे पहले context files का एकमात्र controlled मापन।
- Should you delete your CLAUDE.md every 6 months?, Modern Creator. क्यों पढ़ें: 1,000 बनाम 20 लाइन की अनौपचारिक तुलना, जिसका टूटने का पैटर्न हमारे जैसा है।
- Opus 5: delete your CLAUDE.md?, reporails. क्यों पढ़ें: ablation बनाम deletion, और hooks model upgrade के बाद भी क्यों टिकते हैं।
- The State of AI Instruction Quality: 30k-repo analysis, reporails. क्यों पढ़ें: median instruction file में असल में क्या होता है।
- Opus 5: the cost of instruction conflicts, reporails. क्यों पढ़ें: नियम की स्थिति पर एक controlled experiment।
- Writing a good CLAUDE.md, HN thread, Hacker News. क्यों पढ़ें: practitioners की बहस कि file में क्या होना चाहिए।
- Anthropic says keep CLAUDE.md under 200 lines, r/ClaudeCode. क्यों पढ़ें: ~35k से ~4.5k वाला पहले/बाद का comment।
- CLAUDE.md says MUST use agent, Claude ignores it, r/ClaudeCode. क्यों पढ़ें: एक ठोस मामला जहाँ prose निर्देश विफल होते हैं।
- Claude Code now ignores everything, r/ClaudeCode. क्यों पढ़ें: "कुछ बदल गया" वाले एहसास के पीछे की लक्षण रिपोर्टें।
- Rewriting Bun in Rust, Simon Willison. क्यों पढ़ें: 64 agents और $165,000 के आँकड़े कहाँ से आते हैं।
- caliper, GitHub. क्यों पढ़ें: skill और MCP ablations के लिए scoring harness।
FAQ
क्या मुझे अपनी CLAUDE.md हटा देनी चाहिए?
आँख मूँदकर नहीं। हमारे repo में एकमात्र नुकसान नई files पर एक नियम का था; जो कुछ code पहले से दिखाता था वह file के बिना भी टिका रहा। एक बार में एक section का ablation करें और वही रखें जो output बदलता है।
अगर file की लागत सिर्फ़ 4 से 14% थी तो उसने 32% tokens क्यों बचाए?
क्योंकि कुल आँकड़ा नए component वाले task से तय होता है, जहाँ file ने model से दो भाषाओं में दूसरी file लिखवाई। सस्ते run ने कम काम किया। जिन tasks में output एक जैसा था, वहाँ बचत 4 से 14% थी।
क्या skills और hooks हर turn tokens खर्च करते हैं?
Skills सिर्फ़ invoke होने पर load होती हैं, इसलिए invoke न की गई skill का कोई खर्च नहीं; hook एक वाक्य inject करता है। दोनों हटाने से हमारे runs में कोई आँकड़ा नहीं बदला। हर turn दोबारा पढ़ी जाने वाली चीज़ें rules files और CLAUDE.md हैं।
क्या हर configuration के दो runs काफ़ी हैं?
नहीं। दो reps असर की जगह बताते हैं, उसका आकार नहीं। हमारे पूरे config की उसी task पर लागत $2.11 फिर $1.33 रही, इसलिए प्रति task 15% से कम का अंतर noise के भीतर है।
AIDive