اگر امروز از Claude Code برای کدنویسی استفاده میکنید، تصور کنید تمام تنظیمات و حافظهٔ ابزار شما در یک جابجایی ساده، ناگهان اثر خود را از دست بدهد. این اتفاق زمانی رخ میدهد که شما بهجای بازسازی محیط، صرفاً فایلهای پیکربندی را کپی میکنید.
طبق گزارش منتشرشده در ۶ اوت ۲۰۲۶، جابجایی جریانهای کاری تولیدی از Claude Code به OpenCode حقیقتی تلخ را برملا میکند: عاملها بیش از آنکه به مدل وابسته باشند، به «پوشش» (Wrapper) یا همان نرمافزاری که مدل را احاطه کرده است، وابسته هستند. کپی کردن سادهٔ فایلها منجر به شکستهای خاموش و افت عملکرد میشود؛ زیرا دانش عامل در فایلها نیست، بلکه در نحوهٔ تفسیر ابزار از آن فایلهاست.
این تغییر مسیر در زمانی رخ میدهد که توسعهدهندگان با بحران «اقتصاد OAuth اشتراکی» دستوپنجه نرم میکنند. این تنش در ۹ ژانویه ۲۰۲۶ به اوج رسید؛ زمانی که Anthropic دسترسی ابزارهای شخص ثالث به OAuth اشتراکی Claude را محدود کرد. این محدودیتها در نهایت تا آوریل ۲۰۲۶ به قطع کامل دسترسی ختم شد. برای بسیاری از توسعهدهندگان، این اتفاق به معنای از دست رفتن یک روز کاری کامل و متوقف شدن پروژههای جاری بود. همانطور که در تحلیل قبلی ما دربارهی اصلاحات دور زدن دسترسی در نسخه ۲.۱۲۲ Claude Code اشاره کردیم، مرزهای امنیتی و مجوزها هستهٔ تجربهٔ کار با عاملها هستند. برای بسیاری، جذابیت یک محیط محلی (Local-first) که اولویت را به مجوزها میدهد، باعث شده توسعهدهندگان هزینهی دشوار بودنِ این مهاجرت را بپذیرند.
بستر شکست: شگافهای نامرئی
شکنندگی این تنظیمات اغلب برای ماهها پنهان میماند. در یک مورد واقعی، یک ساختار ساده شامل یک فایل CLAUDE.md در ریشه، یک فایل MEMORY.md برای ذخیره اطلاعات، یک پوشه حاوی اسناد مرجع و یک فایل CLAUDE.md دوم که به عنوان فایل قوانین (Rules file) عمل میکرد، در ابتدا بهطور کامل و بینقص کار میکرد. اما بهتدریج سیستم شروع به «نشتی» کرد.
بدون هیچ تغییری در فایلها، عامل شروع به ترکیب اشتباه زمینهها کرد. قوانین بهجای اینکه به عنوان دستورات اجرایی شناخته شوند، به شکل توصیههای کلی ظاهر شدند و حافظه تنها به عنوان یک منبع مرجع ساده دیده شد. نتیجه این بود که تعداد توکنها (Token) در هر جلسه بهشدت افزایش یافت زیرا مدل مجبور بود برای درک دستورات، حجم بیشتری از متن را پردازش کند. این افزایش هزینه با چالشهای ساختاری مدل مرتبط است؛ چنانکه هزینههای استنتاج در Claude Code به دلیل کفِ توکنی ۳۳ هزارتایی افزایش یافت و بهرهوری را تحت تأثیر قرار داد.
این تجربه ثابت کرد که ساختار از روز اول شکننده بوده و ترکها تنها پس از چند ماه نمایان شدند. انتقال به OpenCode نه یک کپی ساده از فایلها، بلکه بازتعریف کل محیط عملیاتی بود. این گذار نشان داد که مخربترین شکستها، خاموشترین آنها هستند؛ شکستهایی که هیچ پیام خطایی صادر نمیکنند اما به دلیل کاهش شدید بهرهوری، بیشترین هزینه را بر دوش کاربر میاندازند.
۵ نقطه شکست بحرانی
۱. گسست در دستورالعملها (Instruction Disconnect)
اولین و فوریترین شکست در اجرای قوانین رخ میدهد. در حالی که OpenCode ممکن است فایل CLAUDE.md را بارگذاری کند، اما برای تعریف قوانین رفتاری بهطور خاص به دنبال فایل AGENTS.md میگردد. هرچند در برخی موارد OpenCode در زمان اجرای دستور /init دادهها را از CLAUDE.md میخواند و AGENTS.md را از روی آن مقداردهی میکند، اما این همگامسازی هرگز تضمینشده نیست.
اگر شما صرفاً نام فایل را تغییر دهید یا آن را کپی کنید، احتمالاً متوجه خواهید شد که عامل دادهها را بارگذاری میکند اما از اجرای دستورالعملها سر باز میزند. این یک مشکل «ترجمه» است، نه یک مشکل کپی فایل. در واقع بارِ ترجمه و تطبیق دستورات بر دوش کاربر است، نه ابزار.
- بازسازی: قوانین را مجدداً در
AGENTS.mdتعریف کنید. آنها را کپی نکنید؛ زیرا برخی قوانین قدیمی بر اساس زمینههایی نوشته شده بودند که در پوشش (Harness) جدید دیگر کاربرد ندارند یا نقش متفاوتی ایفا میکنند. - تأیید: دستور
/initرا اجرا کنید و در یک جلسه جدید از عامل بپرسید: «قوانین من چیست؟». اگر مدل نتوانست آنها را بهطور دقیق نقل کند، یعنی بارگذاری نشدهاند. نکته حیاتی این است که «بارگذاری شدن» با «پیروی کردن» متفاوت است.
۲. تلهٔ پیکربندیهای پیشین (The Predecessor Config Trap)
مهاجرت ابزارها و سرورهای پروتکل زمینهٔ مدل (MCP) را نمیتوان به خودِ هوش مصنوعی سپرد. درخواست از OpenCode برای مهاجرت تنظیمات ابزار قبلی با شکست مواجه میشود؛ زیرا عامل جدید نمیتواند چیزی را که هرگز در اختیار نداشته است، فهرستبندی کند. او نمیداند کدام مهارتها برای جریان کار حیاتی بودند، کدام MCPها تنها یکبار استفاده و رها شدند، یا اینکه پیکربندیها دقیقاً در کجا قرار داشتند. او میتواند آنچه را که میبیند توصیف کند، اما نمیتواند بگوید چه چیزی «ناپدید شده است»، چون آن عناصر گمشده هرگز در جهانِ او وجود خارجی نداشتند.
توسعهدهندگان باید پیش از بستن ابزار قدیمی، تمام دستورات، مهارتها و سرورهای MCP را بهصورت دستی فهرست کنند. این یادداشتها باید در حالی نوشته شوند که ابزار قدیمی هنوز فعال است تا بتوان از آن سوال پرسید.
- بازسازی: ابتدا یک فهرست دستی تهیه کنید. این لیست باید به نقشه واقعی مهاجرت شما تبدیل شود. در غیر این صورت، شما صرفاً هر آنچه را که شانس زنده ماندن در جابجایی داشت، منتقل میکنید.
۳. افت کیفیت خاموش مهارتها (Silent Skill Degradation)
مهارتهایی که منتقل میشوند، اغلب بخش بزرگی از پیشگفتار (Frontmatter) خود را از دست میدهند. بر اساس مستندات OpenCode، این سیستم تنها فیلدهای زیر را در پیشگفتار یک مهارت میشناسد:
- نام (Name)
- توضیحات (Description)
- لایسنس (License)
- سازگاری (Compatibility)
- متادیتا (Metadata)
هر چیز دیگر — از جمله تخصیص مدلهای خاص، ابزارهای مجاز و نحوه مدیریت آرگومانها — بهطور خاموش نادیده گرفته میشود. علاوه بر این، برخلاف Claude Code که ممکن است مهارتها را بهطور خودکار اجرا کند، OpenCode مهارتها را تنها زمانی که عامل تصمیم بگیرد به آنها دسترسی پیدا کند، بهصورت «درخواست-محور» (On-demand) بارگذاری میکند.
از آنجا که هیچ خطای بلندی صادر نمیشود، مهارتها صرفاً «کمتر کار میکنند». این بدترین نوع شکست است؛ زیرا تا زمانی که شما به یک مهارت اعتماد کنید و آن مهارت بهطور خاموش کار اشتباهی را انجام دهد، متوجه مشکل نخواهید شد. در این زمینه، بهینهسازی مهارتها میتواند تفاوت چشمگیری در هزینهها ایجاد کند؛ برای مثال بنچمارکهای جدید نشان میدهند که مهارتهای Fonderie مصرف توکن Claude Code را ۶۶٪ کاهش دادند، که اهمیت بازسازی دقیق مهارتها را دوچندان میکند.
- بازسازی: فرض کنید هر مهارت منتقلشده تا زمانی که خلاف آن ثابت نشود، دچار افت کیفیت شده است. فقط مواردی را که واقعاً استفاده میکنید بازسازی کنید و بقیه را حذف کنید. مهارتهایی که از ابتدا نصب شوند، بدون درگیری با پیشگفتارهای قدیمی، از همان ابتدا درست کار میکنند.
۴. مالیات اصطکاک (The Friction Tax)
تغییر از حالتهای جابجایی خودکار در Claude Code به جابجایی دستی (Tab-toggling) بین حالتهای Plan (برنامهریزی) و Build (ساخت) در OpenCode، باعث یک سقوط مداوم و خفیف در بهرهوری میشود. این موضوع شامل تغییر کلیدهای میانبر (Keybinds) و تفاوت در رفتار اسکرول صفحه است. این یک باگ نرمافزاری نیست، بلکه یک «مالیات» بر حافظه عضلانی است که هرگز در جداول مقایسه ویژگیها ذکر نمیشود.
این دوره تطبیق و عادت به محیط جدید، معمولاً بهجای چند روز، دو تا سه هفته طول میکشد.
- بازسازی: برای منحنی یادگیری زمان بگذارید. در روز اول، سه کلید پرکاربرد خود در Claude Code را به معادلهایشان در OpenCode مپ کنید و خود را مجبور کنید تا بهجای تکرار عادتهای قدیمی، از سیستم جدید استفاده کنید.
۵. خلأ حافظه (The Memory Void)
از دست دادن حافظه خودکار یک شکاف بزرگ است. برخلاف Claude Code، مدل OpenCode فاقد حافظه بومی بینجلسهای (Cross-session memory) است؛ شکافی که در درخواست ویژگی شماره ۲۰۳۲۲ ثبت شده است. اگرچه فایل MEMORY.md به عنوان یک فایل فیزیکی در مهاجرت باقی میماند، اما هرگونه اتکا به اینکه عامل گفتگوهای هفته پیش را «به یاد آورد»، در روز اول جابجایی کاملاً محو میشود.
- بازسازی: برای عامل یک گزارش جلسه (Session Log) ایجاد کنید. در فایل
AGENTS.mdتحت عنوان## Session logدستور زیر را اضافه کنید: «در پایان هر جلسه، یک خلاصه کوتاه به فایلsession-log.mdاضافه کن: چه کارهایی انجام شد، چه مواردی باقی مانده و چه تصمیماتی گرفته شد».
این روش باعث میشود حافظه صریح، قابل جستجو (Greppable) و قابل انتقال به هر ابزار دیگری شود و بهطور مؤثر جایگزین حافظه خاموشی شود که در طول مهاجرت از دست رفته است.
دستاوردهای مهاجرت: چرا این دردسره ارزشش را دارد؟
با وجود این نقاط شکست، مزایای حرکت به سمت یک پوشش (Harness) محلی بسیار زیاد است:
- منطق اول-مجوز (Permission-First Logic): OpenCode روی سختافزار محلی و با استفاده از کلیدهای شخصی کاربر اجرا میشود. این ابزار پیش از خواندن پوشههای خارج از دایرکتوری فعلی، اجازه میگیرد. در حالی که در داخل دایرکتوری کاری اجازه دسترسی دارد اما بهطور پیشفرض دسترسی به فایلهای
.envرا رد میکند. این شفافیت، اعتماد کاربر را سریعتر از هر بنچمارکی بازمیگرداند. - آزادی در انتخاب ارائهدهنده (Provider Freedom): با استفاده از یک کلید API واحد از طریق OpenRouter، کاربران میتوانند دهها مدل مختلف را تنها با تغییر یک خط در پیکربندی جایگزین کنند. این کار نیاز به اشتراکهای متعدد یا مراحل ثبتنام مکرر را از بین میبرد و در واقع «سقف محدودیتی» را که در اکوسیستم انحصاری Anthropic بود، حذف میکند.
- پیشبینی هزینه (Cost Predictability): رهایی از اشتراکهای ماهیانه ثابت اجازه میدهد تا کاربران مستقیماً روی هزینه توکنها و خطاهای کش پرامپت (Prompt-cache misses) حساب کنند. این مدل جایگزین اشتراکی میشود که ممکن است همانطور که در آوریل ۲۰۲۶ اتفاق افتاد، ناگهان از کار بیفتد.
- بهروزرسانیهای امنیتی (Security Updates): تنظیمات محلی امکان وصلههای امنیتی حیاتی را فراهم میکنند. برای مثال، آسیبپذیریهای CVE 2026-22812 و 2026-22813 در این پوشش نرمافزاری اصلاح شدند که ریسک استفاده از یک سیستم قدیمی و آسیبپذیر را کاهش میدهد.
اثر پوشش (The Harness Effect)
برجستهترین یافته این است که «پوشش» — یعنی نرمافزاری که مدل را احاطه کرده است — بسیار بیشتر از آنچه تصور میشود اهمیت دارد. در یک بنچمارک سال ۲۰۲۶، OpenCode یک تسک را در ۷ دقیقه بدون هیچ اشتباهی به پایان رساند، در حالی که Claude Code با استفاده از مدل دقیقاً یکسان، ۱۴ دقیقه زمان برد و دو خطا داشت.
دیگر دادههای استخراجشده از SWE-bench نشاندهنده یک نوسان ۳.۶ نقطهای بین پوششهای مختلف است که مدلهای یکسانی را اجرا میکنند. برای خواننده، این بدان معناست که هوش مصنوعی شما توسط پیکربندیتان محدود شده است.
انتقال دادن یک مهارت (Porting) یک اشتباه است؛ بازسازی (Rebuilding) تنها راه تضمین برابری عملکرد است. عامل تنها به اندازه چیزی خوب است که برای او تعریف شده باشد. دانش را منتقل کنید، اما ابزارها را از نو بسازید.
توصیههای استراتژیک
اگر آزادی در انتخاب ارائهدهنده و کنترل مدل محلی برای شما ارزشمند است، این مهاجرت ارزش تلاش را دارد. اما کسانی که بهشدت در اکوسیستم Anthropic ادغام شدهاند و به هوکهای یکپارچه و حافظه خودکار وابسته هستند، ممکن است هزینههای انتقال را بسیار بالا بیابند. پراگماتیکترین روش، اجرای هر دو ابزار است: Claude Code برای فورانهای تعاملی سریع و OpenCode برای آزمایشهای مدلهای مختلف. چندین بررسیکننده این رویکرد ترکیبی را توصیه میکنند.
برای اجتناب از دامها، این چکلیست «بازسازی روز اول» را دنبال کنید:
- ابتدا AGENTS.md را بسازید: صبح اول خود را صرف فایلی کنید که وضعیت (State) را مدیریت میکند، نه خودِ فرآیند مهاجرت.
- ثبت جلسات (Session Logging) را فعال کنید: دستور ثبت تصمیمات هر جلسه را اضافه کنید تا دانش شما از میان شکافها گم نشود.
- بازسازی بهجای انتقال: سه مهارت اصلی که واقعاً استفاده میکنید را از نو بسازید و بقیه را حذف کنید تا از افت کیفیت خاموش جلوگیری شود.
- تنظیم دستی MCP: سرورهای MCP را بهصورت دستی تعریف کرده و پیش از اعتماد به آنها، نسخهها را بازبینی کنید.
- موضع آگاهانه: بهطور صریح تصمیم بگیرید کدام مدل را انتخاب کنید، کلیدها را کجا نگه دارید و اجازه دهید عامل کجاها را بخواند.
در نهایت، شکست در مهاجرت بهندرت مربوط به ابزارهاست و معمولاً به دلیل این است که دانش در جاهایی قرار دارد که ابزار جدید قادر به خواندن آنها نیست. راه حل، یک تکفایل است که وضعیت را مدیریت میکند و از روز اول نوشته شده است.
چکلیست حکم نهایی
مهاجرت کنید اگر:
- به دنبال آزادی در انتخاب ارائهدهنده یا استفاده از مدلهای محلی هستید.
- از اقتصاد OAuth اشتراکی آسیب دیدهاید.
- برای گردش کار «اول-مجوز» ارزش قائل هستید.
- حاضرید قوانین را بازتعریف کنید بهجای اینکه آنها را کپی کنید.
باقی بمانید اگر:
- بهطور حداکثری در اکوسیستم Claude سرمایهگذاری کردهاید (مهارتها، هوکها، حافظه خودکار).
- سرعت و صیقلخورده بودن ابزار را در لحظه اول میخواهید.
- با مدل اشتراک ماهیانه ثابت راحت هستید.
- توان تحمل دوره تطبیق دو تا سه هفتهای را ندارید.
از این اشتباهات رایج دوری کنید:
- کپی کردن فایلها بهجای بازتعریف قوانین: مهاجرت یعنی بازتعریف، نه کپی فایل.
- اعتماد به ادعاهای «جایگزینی مستقیم / برابری کامل»: برابری واقعی نیازمند پوششها، پلاگینها و کار دستی است.
- فرض بر این است که قوانین اجرا میشوند چون فایل بارگذاری شده است: بارگذاری شده به معنای پیروی کردن نیست. با یک پرسوجو (Query) تأیید کنید.
- درخواست از عامل جدید برای مهاجرت پیکربندی قدیمی: او نمیتواند چیزی را فهرست کند که هرگز نداشته است.
- نادیده گرفتن تغییر هزینه: مراقب مدلهای توکن-محور، خطاهای کش پرامپت و ریاضیات جدید اشتراکها باشید.
- نادیده گرفتن حسابرسی امنیتی: پوشش خود را بهروز نگه دارید تا در برابر CVEهای شناختهشده مانند 2026-22812/22813 محافظت شوید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو