تصور کنید یک تیم مهندسی با ابزارهایی کار میکند که هر کدام دستورالعملهای متفاوتی را میخوانند و در نتیجه، کد تولید شده توسط هوش مصنوعی در محیط عملیاتی بهطور خاموش شکست میخورد. این دقیقاً همان کابوسی است که Shopify را به لبهٔ حذف یکی از پیشرفتهترین ابزارهای کدنویسی AI کشانده است.
در ۲۵ اوت ۲۰۲۶، توبی لوتکه (Tobi Lütke)، مدیرعامل Shopify، در پستی اعلام کرد که در فکر ممنوع کردن Claude Code در شرکتش است، مگر اینکه این ابزار رویکرد خود را تغییر دهد و فایلهای AGENTS.md و .agents/skills را اولویت قرار دهد. لوتکه از پدیدهای به نام «دوگانگی ذهنی» (Split Brain) سخن گفت؛ وضعیتی که در آن عاملهای هوش مصنوعی (AI Agents) بهدلیل خواندن فایلهای دستورالعمل قدیمی یا ناقص در یک مونو-ریپو (Monorepo) عظیم، گویی دچار «لوبوتومی» شده و عملکردشان مختل میشود.
این بحران زمانی رخ میدهد که اعضای مختلف یک تیم از ابزارهای متفاوتی استفاده کنند که هر کدام فایلهای پیکربندی متفاوتی را ترجیح میدهند. این تضاد منجر به شکستهای خاموش در کدهای محیط عملیاتی (Production) میشود. طبق گفته لوتکه، راهکار فعلی Shopify برای پر کردن این شکاف، استفاده از اتوماسیونهای جانبی است که او آن را «مالیات پیچیدگی احمقانه» مینامد.
این درگیری در حالی رخ میدهد که کل صنعت در تلاش است تا استانداردی برای نحوه دریافت دستورالعملهای خاص هر پروژه توسط عاملهای AI ایجاد کند. در حال حاضر، توسعهدهندگان به فایلهای زمینهای مانند CLAUDE.md یا AGENTS.md متکی هستند تا به عامل بگویند تستها را چگونه اجرا کند یا کد را با چه فرمتی بنویسد. برای یک توسعهدهنده، این وضعیت مانند داشتن سه دفترچه راهنمای متفاوت برای یک ماشین واحد است؛ اگر یکی از دفترچهها بهروز شود اما بقیه بهروز نشوند، اپراتور در نهایت مرتکب یک اشتباه حیاتی خواهد شد. این چالشهای امنیتی و عملیاتی در مدیریت دستورالعملها، یادآور نگرانیاتی است که در مورد تبدیل مستندات وبسایتها به درگاههای نفوذ برای عاملهای AI مطرح شده بود.
وضعیت پیکربندی مخازن کد
به نقل از مطالعهای در فوریه ۲۰۲۶ (arXiv 2602.14690) که ۲۹۲۶ مخزن گیتهاب را تحلیل کرده، این پراکندگی یک مشکل سیستمی است. این پژوهش نشان داد که فایلهای زمینه مکانیسم غالب برای پیکربندی عاملها هستند، اما بهندرت یکپارچه میشوند. در بررسی ۴۸۶۰ فایل زمینه در ۲۶۳۴ مخزن، نتایج تکاندهنده بود و فقدان همگرایی را آشکار کرد:
- فایل CLAUDE.md در ۴۵.۴٪ مخازن وجود داشت.
- فایل AGENTS.md در ۴۰.۶٪ مخازن دیده شد.
- فایل copilot-instructions.md در ۳۵.۱٪ مخازن یافت شد.
از آنجا که مجموع این درصدها بیش از ۱۰۰٪ است، بسیاری از مخازن چندین فایل را همزمان دارند که قرار است یکسان باشند، اما بهمرور زمان از هم فاصله میگیرند (Drift). برای مثال، ابزار Cursor فایل .cursorrules را به نفع AGENTS.md کنار گذاشت. علاوه بر این، مخازنی که در ابتدا با copilot-instructions.md شروع کرده بودند، غالباً بعدها CLAUDE.md یا AGENTS.md را اضافه کردند، حتی با وجود اینکه Copilot قادر به خواندن همه آنهاست. تیمها به سمت یک فایل واحد همگرا نمیشوند، بلکه صرفاً در حال انباشتن فایلها هستند.
اثر تکثیری ماشینهای محلی
علاوه بر مخزن کد، محور دوم پراکندگی در ماشینهای محلی توسعهدهندگان است. هر برنامهنویس نسخهای از این فایلها را دارد که با نسخههای سطح کاربر در دایرکتوریهایی مثل ~/.claude، ~/.codex یا ~/.cursor تکمیل میشود.
همچنین استاندارد مهارتهای عامل (Agent Skills) لایههای جدیدی را در .agents/skills یا .claude/skills معرفی کرده است. اگرچه فرمت SKILL.md که توسط Claude Code و GitHub Copilot پیادهسازی شده و توسط Gemini CLI و Cursor پذیرفته شده، گامی مثبت است، اما فقط «فرمت» را استاندارد میکند. یک فایل قابل انتقال همچنان یک «فایل» است که کپی میشود و هر کپی، یک نقطه شکست بالقوه است.
مکانیسم انحراف (Drift)
شکست رخ داده در Shopify از یک الگوی مهندسی پیشبینیپذیر پیروی میکند که حتی بدون وجود دو شرکت مختلف هم رخ میدهد:
۱. یک قانون یکبار در یک فایل و یک دایرکتوری نوشته میشود.
۲. شخصی آن را کپی میکند چون ابزارش نام فایل متفاوتی را میخواند، زیر-دایرکتوریاش به آن نیاز دارد، یا لپتاپش به آن نیازمند است.
۳. شخصی یکی از نسخهها را ویرایش میکند؛ مثلاً یک دستور Build تغییر میکند، یک مسیر (Path) جابهجا میشود یا یک قانون تست برای یک تیم خاص تسهیل میشود.
۴. هیچ سیستمی خبر نمیدهد که نسخهها با هم متفاوت شدهاند.
عاملی که نسخه قدیمی را میخواند، دقیقاً همان کاری را میکند که به او گفته شده، اما چون دستورالعمل قدیمی است، نتیجه غلط خواهد بود. گام چهارم هسته اصلی مشکل است. در حالی که گامهای ۱ تا ۳ در مهندسی عادی هستند، فقدان دید نسبت به انحراف دادهها، «دوگانگی ذهنی» را ایجاد میکند.
تلاشهای استانداردسازی مانند بنیاد هوش مصنوعی عاملمحور (Agentic AI Foundation) که Shopify عضو طلایی آن است، و استاندارد Agent Skills، به فرمت میپردازند اما به نحوه انتشار (Propagation) خیر. شرکت Anthropic پیش از این درخواستی برای پشتیبانی بازگشتی (Recursive) از AGENTS.md را با عنوان «برنامهریزی نشده» بسته بود، هرچند بعدها اعلام کرد که AGENTS.md را راحتتر میکند. حتی اگر فردا تمام ابزارها بهطور بومی AGENTS.md را بخوانند، عمل کپی کردن آن فایل در یک مونو-ریپو باز هم ریسک انحراف را ایجاد میکند. در آن صورت، شما صرفاً «دوگانگی ذهنی» را در داخل یک نام فایل واحد خواهید داشت.
عملیاتی کردن دستورالعملهای عامل
این تغییر دیدگاه، معیار «آمادگی برای AI» در سازمانها را تغییر میدهد. مسئله دیگر این نیست که فرمت کدام شرکت برنده شود، بلکه نبود یک لایه عملیاتی برای دستورالعملهای عامل است. در حالی که کدها سیستم کنترل نسخه (Version Control) دارند و اسرار (Secrets) در Vaultها نگهداری میشوند، دستورالعملهای عامل در حال حاضر با کپی-پیست مدیریت میشوند.
برای حل این مشکل، دو تمرین فنی فوری پیشنهاد میشود:
- منبع واحد حقیقت (Single Source of Truth): توقف ویرایش دستی نسخهها. استفاده از اسکریپتهای تولیدکننده یا Symlinkها (مثلاً AGENTS.md -> CLAUDE.md) تا انسانها هرگز فایلهای ابزار-محور را مستقیماً ویرایش نکنند. اگر تغییری لازم است، انسان منبع اصلی (مانند یک فایل YAML یا Markdown) را ویرایش کرده و تمام اهداف را مجدداً تولید میکند.
- تشخیص انحراف (Drift Detection): پیادهسازی بررسیهای CI و اسکنهای زمانبندی شده که هش (Hash) هر فایل زمینه و SKILL.md را در کل درخت دایرکتوری چک کند. با گروهبندی فایلهایی که قرار است یکسان باشند، سیستم میتواند هر موردی را که منحرف شده است با یک Diff دقیق گزارش دهد.
در همین راستا، نویسندگان ابزار متنباز agent-drift را منتشر کردهاند؛ ابزار کوچکی که درخت دایرکتوریها را اسکن میکند تا گزارش دهد کدام نسخههای یک سند دچار تفکیک شدهاند. هدف این است که انحراف به یک «رویداد گزارششده» تبدیل شود، نه یک غافلگیری که توسط عاملی که کد خراب ارسال کرده، کشف شود. این نیاز به ابزارهای نظارتی دقیقتر، با بحثهای اخیر پیرامون تغییر رویکرد در دیباگینگ عاملها و جایگزینی Log Stream با Run Card برای درک بهتر رفتار سیستمهای خودکار همسو است.
هدف نهایی این است که با دستورالعملهای عامل مانند داراییهای مشترک و نسخهبندیشده برخورد شود؛ لایهای که در untactit در حال ساخت است: کتابخانهای از مهارتها، حافظه و فایلهای دستورالعمل که تغییرات در آن توسط یک شخص تأیید شده و سپس بدون ویرایش دستی به تمام ابزارها و ماشینهای متصل منتقل میشود. با تضمین اینکه انتشار (Propagation) بدون دخالت انسان (Zero-touch) باشد، مسئله نام فایل به یک جزئیات سازگاری تبدیل میشود که توسط یک Generator مدیریت میشود، نه دلیلی برای اینکه یک مدیرعامل تهدید به ممنوع کردن یک ابزار کند.
گام بعدی شما
- اگر در پروژههای تیمی از چندین ابزار AI (مثل Cursor و Claude Code) استفاده میکنید، فوراً بررسی کنید آیا فایلهای دستورالعمل شما (مانند .cursorrules و CLAUDE.md) با هم همراستا هستند یا خیر.
- برای جلوگیری از تکرار دستی، از Symlink برای متصل کردن فایلهای مختلف به یک منبع واحد استفاده کنید.
- ابزار agent-drift را در خط لوله CI/CD خود بگنجانید تا از همزمانی دستورالعملها در تمام دایرکتوریها مطمئن شوید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو