تصور کنید یک برنامهنویس هستید که برای نظم بخشیدن به پروژه، صدها قانون را در فایل تنظیمات مینویسد، اما مدل با خوشرویی تمام، حیاتیترین آنها را نادیده میگیرد. اگر فکر میکنید هرچه دستورات بیشتر و دقیقتر باشند نتیجه بهتر است، باید بدانید که در دنیای عاملهای هوش مصنوعی، حجم زیاد داده به معنای دقت بیشتر نیست، بلکه به معنای ایجاد نویز است. یک فایل ۳۰۰ خطی CLAUDE.md در ظاهر راهنمایی بیشتر به نظر میرسد، اما در واقع یک «کسری بودجه» ایجاد میکند که Claude Code را مجبور میکند حیاتیترین قوانین شما را به عنوان نویز پسزمینه 처리 کند.
این تنش در یک گزارش فنی منتشر شده در ۲۷ ژوئن ۲۰۲۶ برجسته شد. این تحلیل فاش کرد که مدلهای پیشرو (Frontier Models) با یک سقف سخت در پیروی از دستورات مواجهاند؛ بهطوری که وقتی تعداد قوانین از یک حد مشخص فراتر رود، یک کاهش مستمر در میزان پایبندی به کل مجموعه دستورات رخ میدهد. در نتیجه، اضافه کردن یک قانون واحد به CLAUDE.md در ابتدا مؤثر است، اما اضافه کردن چهل قانون دیگر اغلب منجر به این میشود که مدل با خوشرویی کامل، بحرانیترین دستوراتی را که از روز اول در فایل بودهاند، نادیده بگیرد.
این مشکل بازتابی از یک چالش گستردهتر در قابلیت اطمینان عاملهای هوش مصنوعی (Agentic Reliability) است. با تکیه بر پوششهای قبلی ما در مورد اینکه چگونه توسعهدهندگانی مانند «کونو کریستو» (Conno Christou) از Claude برای مسدود کردن خطاهای پزشکی حیاتی استفاده کردند، مشخص میشود که مسئله اصلی هوش مدل نیست، بلکه نحوه مدیریت «سهمیه توجه» (Attention Allowance) است که بسیار محدود است. در یک محیط کدنویسی عملی، این بدان معنای است که قوانین پروژه شما برای تصاحب تکهای محدود از قدرت پردازشی مدل با هم رقابت میکنند. غریزه مشترک توسعهدهندگان این است که با استفاده از حروف بزرگ یا علامت تعجب، قوانین را «بلندتر» فریاد بزنند، اما راهکار واقعی تقریباً همیشه نوشتنِ کمتر است.
بودجه دستورات
به نقل از گزارش dev.to، مدلهای پیشرو بهطور قابلاعتمادی میتوانند همزمان حدود ۱۵۰ تا ۲۰۰ دستور را دنبال کنند. این افت کیفیت بهصورت ناگهانی یا سقوط از پرتگاه رخ نمیدهد، بلکه مانند یک «مالیات تدریجی» عمل میکند؛ یعنی هر خط جدید در فایل تنظیمات، احتمال اجرای هر یک از قوانین دیگر را کاهش میدهد.
این بودجه حتی از آنچه تصور میکنید کمتر است. دلیل آن این است که پرامپت سیستمی (System Prompt) داخلیِ خودِ Claude Code — که مانند دستورالعملهای پایه و اجباری یک کارمند جدید است — بخش بزرگی از این سهمیه را پیش از آنکه مدل حتی فایل شخصی شما را بخواند، اشغال کرده است. بنابراین، یک فایل ۳۰۰ خطی CLAUDE.md، مجموعهای از ۳۰۰ قانون اجراشده نیست؛ بلکه احتمالاً ۱۵۰ مورد اول بهخوبی اجرا میشوند و باقی موارد را مدل صرفاً بهعنوان «اتمسفر یا پسزمینه» در نظر میگیرد. تغییر مدل ذهنی مورد نیاز این است که با CLAUDE.md نه به عنوان یک لیست آرزوها، بلکه به عنوان یک «بودجه محدود» برخورد کنید. این رویکرد با تحلیل ما در مورد اینکه چرا هر خط از فایل CLAUDE.md باید مانع یک خطای مشخص شود همسو است تا از اتلاف ظرفیت مدل جلوگیری شود.
قوانین توصیفی در برابر قطعی
همه قوانین یکسان نیستند. گزارش مذکور دستورات را به دو دسته متمایز تقسیم میکند:
- توصیفی (Advisory): اینها شامل ترجیحات سبک کدنویسی، قراردادهای نامگذاری و درخواستهایی مانند «قبل از بازنویسی، توضیح بده» هستند. نرخ موفقیت اینها حدود ۸۰٪ است. این دستورات برای متون نثر مناسب هستند زیرا هزینه یک خطا در آنها پایین است.
- قطعی (Deterministic): اینها حفاظهای امنیتی حیاتی هستند، مانند «هرگز رمزهای عبور (Secrets) را کامیت نکن»، «هرگز به فایل production.env دست نزن» یا «همیشه پیش از اعلام پایان کار، مجموعه تستها را اجرا کن». در این دسته، موفقیت باید ۱۰۰٪ باشد.
سازوکار قلاب (Hook)
برای قوانینی که تحمل نرخ خطای ۱ مورد از هر ۵ مورد (۲۰٪) را ندارند، متن ساده ابزار اشتباهی است، فارغ از اینکه با چه شدت یا تأکیدی نوشته شده باشد. راهکار، استفاده از یک «قلاب» (Hook) است؛ یک دستور شل (Shell Command) که در نقطهای ثابت و مشخص از چرخه حیات برنامه بهطور خودکار اجرا میشود. قلاب از مدل همکاری یا توجه نمیخواهد؛ بلکه بهطور قطعی شلیک میشود و اجرا میگردد.
تفاوت گذار از حالت توصیفی به قطعی را در مثال زیر ببینید:
- نسخه توصیفی (۸۰٪ موفقیت): نوشتن این خط در CLAUDE.md: «هرگز فایلهای .env یا هر چیزی زیر پوشه .git/ را ویرایش نکن. هرگز رمزهای عبور را کامیت نکن».
- نسخه قلابی (۱۰۰٪ موفقیت): تعریف یک قلاب
PreToolUseکه از طریق یک پیکربندی JSON، هرگونه تلاش برای نوشتن در مسیرهای حفاظتشده را پیش از وقوع مسدود میکند:
{
"hooks": {
"PreToolUse": [{
"matcher": "Edit|Write",
"hooks": [{
"type": "command",
"command": "node -e \"const p=process.env.CLAUDE_TOOL_INPUT_FILE_PATH||''; if(/(^|\\)\\.env|(^|\\)\\.git\\/|secrets/i.test(p)){console.error('Blocked: protected path '+p);process.exit(2)}\""
}]
}]
}
}
اگر این دستور کد خروج ۲ را برگرداند، به Claude Code اعلام میشود که عملیات رد شده است. علت مسدود شدن به مدل بازگردانده میشود و مدل را مجبور میکند به جای شکست بیصدا، خود را با محدودیت تطبیق دهد. با انتقال این قانون به یک قلاب، شما یک خط از بودجه توجه را پس میگیرید و یک قانون «باید-اتفاق-بیفتد» را از ۸۰٪ به ۱۰۰٪ کارایی ارتقا میدهید.
استراتژی افشای تدریجی
برای سبک نگه داشتن «مسیر گرم» (Hot Path)، توسعهدهندگان باید جزئیات مربوط به تسکهای خاص را به فایلهای مرجع منتقل کنند. این کار اجازه میدهد راهنماییهای جامع را حفظ کنید بدون اینکه در هر نوبت (Turn)، بودجه جهانی مدل را هزینه کنید.
بهجای لیست کردن تمام قراردادهای API در فایل اصلی، از یک CLAUDE.md سبک با اشارهگرها استفاده کنید:
- پیش از اعلام پایان هر تسک،
npm testرا اجرا کن. - قراردادهای API در فایل
docs/api-guidelines.mdقرار دارد؛ پیش از دست زدن به پوشه routes/، آن را بخوان. - برای مهاجرتهای دیتابیس (DB migrations): دقیقاً از
docs/migrations.mdپیروی کن.
این روش تضمین میکند که جزئیات دقیق فقط زمانی وارد پنجره متنی (Context Window) — مانند میز کاری کوچکی که فقط چند برگه جا دارد — شوند که مدل واقعاً در حال انجام یک تسک مرتبط باشد. این کار بودجه اصلی دستورات را برای ۹۰٪ از کارهایی که آن جزئیات در آنها بیرابط است، حفظ میکند.
قانون تعمیمپذیری
دستورات خشک و لخت اغلب در هنگام تغییر بستر (Context Shift) شکست میخورند. قوانین مؤثر باید شامل یک «دلیل» باشند تا مدل بتواند از روی یک محدودیت زیربنایی استدلال کند و قانون را تعمیم دهد.
- قانون شکننده: «از Tab استفاده کن، نه Space». (این قانون دقیقاً یکبار و بهصورت تحتاللفظی اعمال میشود).
- قانون تعمیمیافته: «از Tab استفاده کن، نه Space؛ زیرا لینتر ما Space را رد میکند و بیلد شکست میخورد».
دلایل، اضافات متنی یا Padding نیستند؛ بلکه مکانیزمی هستند که مانع از آن میشوند که یک قانون در لحظهای که بستر گفتگو ذرهای تغییر میکند، بهطور بیصدا حذف یا فراموش شود.
ممیزی ۲۰ دقیقهای
برای بهینهسازی قابلیت اطمینان، این راهنما یک ممیزی بیرحمانه از فایل CLAUDE.md شما را پیشنهاد میکند:
- تعداد خطوط را بشمارید: اگر از حدود ۱۵۰ خط فراتر رفتهاید، همین موضوع دلیل اکثر موارد نادیده گرفته شدن شما توسط مدل است.
- تست ۵ دلاری: تکتک خطوط را بررسی کنید و بپرسید: «آیا ۵ دلار شرط میبندم که این قانون هر بار که موضوع مرتبط باشد، اجرا شود؟» اگر پاسخ این است که «داشتنش خوب است» اما شرط نمیبندید، آن را حذف کنید یا به یک فایل مرجع منتقل نمایید.
- ارتقای قوانین: قوانین «باید-اتفاق-بیفتد» (مانند رمزها، دستورات مخرب، تست پیش از پایان) را شناسایی کرده و آنها را به قلابها تبدیل کنید.
- افزودن استدلال: اگر نمیتوانید توضیح دهید چرا یک قانون وجود دارد، پس به آن قانون نیازی ندارید.
این تغییر رویکرد، CLAUDE.md را از یک لیست آرزوها به یک هسته با پایبندی بالا تبدیل میکند. با کاهش اندازه فایل، شما بهطور متناقضی توانایی مدل را برای پیروی از قوانینی که واقعاً اهمیت دارند، افزایش میدهید.
این چرخش فنی نشان میدهد که آینده توسعه AI نه در نوشتن پرامپتهای بهتر، بلکه در ساخت حفاظهای قطعی (Deterministic Guardrails) به دور مدلهای احتمالی (Probabilistic Models) نهفته است. پیروزی در این است که بودجه توجه را صرف «استدلال» کنید و برای «اجرا و الزام» از کد استفاده نمایید.
همین امروز فایلهای قوانین پروژه خود را ممیزی کنید تا ببینید آیا از آستانه ۲۰۰ خط عبور کردهاید یا خیر. میتوانید با پیادهسازی یک قلاب PreToolUse برای محافظت از متغیرهای محیطی خود، الگوهای قابلیت اطمینان بیشتری را کشف کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو