একজন ডেভেলপার কয়েক মাস পুরনো Claude Code ওয়ার্কফ্লো OpenCode-এ সরিয়ে নিয়েছিলেন এবং দেখতে পান যে ফাইল হ্যান্ডলিং, রুল লোডিং, টুল ইনভেন্টরি, স্কিল মেটাডেটা এবং ক্রস-সেশন মেমরি—সবকিছুই অচল হয়ে পড়েছে। তিনি যে সমস্যাগুলো সমাধান করেছেন, তা এখন Claude-এর ইকোসিস্টেম থেকে ওপেন-সোর্স বিকল্পে স্থানান্তরিত হওয়ার জন্য যে কারো জন্য একটি ব্যবহারিক চেকলিস্ট হিসেবে কাজ করছে।

কেন এই মাইগ্রেশনটি গুরুত্বপূর্ণ ছিল

Claude Code ব্যবহারকারীরা একটি AI-চালিত কোডিং অ্যাসিস্ট্যান্টকে মসৃণভাবে চালানোর জন্য ফাইলের একটি tightly bundled সেট—যেমন রুলস (rules), স্কিল ডেফিনিশন (skill definitions) এবং মেমরি লগ (memory logs)-এর ওপর নির্ভর করেন। যখন লেখকের সেটআপ রুলস লোড করা বন্ধ করে দেয়, ফাইলগুলো এলোমেলো করে ফেলে এবং টোকেন ব্যবহারের পরিমাণ হঠাৎ বেড়ে যায়, তখন তার প্রতিদিনের কোডিং হেল্পারটি অনির্ভরযোগ্য হয়ে পড়ে। OpenCode "permission-first security", OpenRouter-এর মাধ্যমে model-agnostic অ্যাক্সেস এবং pay-as-you-go প্রাইসিংয়ের প্রতিশ্রুতি দেয়, যা একে আকর্ষণীয় করে তোলে। কিন্তু এই পরিবর্তনটি কেবল কপি-পেস্ট করার মতো সহজ নয়; আপনাকে OpenCode যে ফরম্যাট প্রত্যাশা করে সেই অনুযায়ী প্রতিটি কম্পোনেন্ট পুনরায় ঘোষণা (re-declare) করতে হবে।

কী কারণে এই সমস্যাগুলো তৈরি হলো

Claude Code CLAUDE.md নামক একটি ফাইল ব্যবহার করত, যা OpenCode উপেক্ষা করে এবং পরিবর্তে অতিরিক্ত মেটাডেটার জন্য AGENTS.md পড়ে। লেখক ধরে নিয়েছিলেন যে দুটি সিস্টেম একে অপরের পরিপূরক বা পরিবর্তনযোগ্য, যার ফলে বেশ কিছু মূল অংশ OpenCode-এর কাছে অদৃশ্য থেকে যায়।

সুনির্দিষ্ট ব্যর্থতা এবং সেগুলো সমাধানের উপায়

  • রুলস ফাইল উপেক্ষা করা হচ্ছে
    OpenCode কখনোই CLAUDE.md পড়ে না; এটি কেবল AGENTS.md পার্স (parse) করে। ফাইলটির নাম পরিবর্তন করা যথেষ্ট নয় কারণ বিষয়বস্তু নতুন ফরম্যাটে পুনরায় ঘোষণা করতে হবে।
    সমাধান: একটি নতুন AGENTS.md তৈরি করুন, রুল টেক্সটগুলো কপি করুন, একটি নতুন OpenCode সেশন শুরু করুন এবং এজেন্টকে জিজ্ঞাসা করুন “What are my rules?” যদি সে সেগুলো উদ্ধৃত করতে না পারে, তবে বুঝবেন রুলসগুলো লোড হয়নি।

  • টুলিং ইনভেন্টরি অনুপস্থিত
    মাইগ্রেশন কমান্ডটি, যা স্কিল এবং MCP (multi-cloud platform) সার্ভার কপি করার কথা ছিল, তা ব্যর্থ হয়েছে কারণ OpenCode সেই টুলগুলোর ইনভেন্টরি তৈরি করতে পারে না যা আগে থেকে রেজিস্টার করা হয়নি।
    সমাধান: Claude Code টুলগুলো যতক্ষণ সচল আছে, ততক্ষণ প্রতিটি স্কিল এবং কমান্ড ম্যানুয়ালি লিস্ট করুন। সিদ্ধান্ত নিন কোনগুলো OpenCode-এ পুনরায় তৈরি করবেন এবং কোনগুলো বাদ দেবেন।

  • স্কিল থেকে ফ্রন্ট-ম্যাটার (front-matter) মুছে গেছে
    পোর্ট করা স্কিল ফাইলগুলো তাদের বেশিরভাগ ফ্রন্ট-ম্যাটার হারিয়ে ফেলেছে, যার মধ্যে রয়েছে মডেল অ্যাসাইনমেন্ট এবং টুল হ্যান্ডলিং ডিরেক্টিভ। OpenCode কেবল হাতেগোনা কিছু ফিল্ডকে গুরুত্ব দেয়, তাই ইমপোর্ট করা স্কিলগুলো অপ্রত্যাশিতভাবে আচরণ করছিল।
    সমাধান: প্রতিটি ইমপোর্ট করা স্কিলকে ত্রুটিপূর্ণ হিসেবে গণ্য করুন। সবচেয়ে বেশি ব্যবহৃত তিনটি স্কিল একদম শুরু থেকে পুনরায় তৈরি করুন এবং নিশ্চিত করুন যে সেগুলোতে কেবল সমর্থিত ফিল্ডগুলো রয়েছে। অব্যবহৃত যেকোনো স্কিল ফাইল মুছে ফেলুন।

  • ক্রস-সেশন মেমরি নেই
    Claude Code একটি পারসিস্টেন্ট হিস্ট্রি বজায় রাখত যার ওপর লেখক কনটেক্সটের জন্য নির্ভর করতেন। OpenCode সেশনগুলোর মধ্যে মেমরি বজায় রাখে না, তাই পরিবর্তনের পরের দিনই অ্যাসিস্ট্যান্ট সবকিছু "ভুলে" যায়।
    সমাধান: AGENTS.md-এ একটি সুনির্দিষ্ট নির্দেশাবলী যোগ করুন: “At the end of every session, append a short summary to session-log.md covering what was done, what is pending, and decisions made.” এর ফলে সেশন লগটি ধারাবাহিকতার জন্য একমাত্র নির্ভরযোগ্য উৎস (single source of truth) হয়ে উঠবে।

ফলাফল: আপনি কী লাভ করবেন এবং কী হারাবেন

লাভসমূহ

  • Permission-first security: OpenCode কোনো কাজ করার আগে অনুমতি চায়, যা ভুলবশত কোড পরিবর্তন কমিয়ে দেয়।
  • Model freedom: একটি মাত্র API key ব্যবহার করে OpenRouter-এর মাধ্যমে ডজন ডজন মডেল আনলক করা যায়, যা আপনাকে কনফিগারেশন ফাইল পরিবর্তন না করেই পরীক্ষা-নিরীক্ষা করার সুযোগ দেয়।
  • Cost control: বিলিং ব্যবহারের ওপর ভিত্তি করে হয়, ফলে ফ্ল্যাট-রেট সাবস্ক্রিপশন এড়ানো যায় যা টোকেন ব্যবহারের পরিমাণ বেড়ে গেলে ব্যয়বহুল হয়ে উঠতে পারে।

ক্ষতিসমূহ

  • বিল্ট-ইন দীর্ঘমেয়াদী মেমরি না থাকায় আপনাকে ম্যানুয়ালি লগ মেইনটেইন করতে হবে।
  • সীমিত স্কিল মেটাডেটার কারণে আপনাকে আপনার বেশিরভাগ কাস্টম টুল পুনরায় তৈরি করতে হবে।

একটি ব্যবহারিক মাইগ্রেশন চেকলিস্ট

  1. প্রথমে AGENTS.md তৈরি করুন – অন্য কোনো ফাইল ইমপোর্ট করার আগে আপনার প্রয়োজনীয় প্রতিটি রুল ঘোষণা করুন।
  2. একটি session-log নির্দেশাবলী যোগ করুন – AGENTS.md-এর একদম উপরে “append summary” রুলটি যুক্ত করুন।
  3. শীর্ষ তিনটি স্কিল পুনরায় তৈরি করুন – কেবল সমর্থিত ফিল্ডগুলো কপি করুন; প্রতিটি স্কিল আলাদাভাবে পরীক্ষা করুন।
  4. ম্যানুয়ালি MCP পুনরায় ঘোষণা করুন – আপনার প্রয়োজনীয় প্রতিটি সার্ভার বা ক্লাউড এন্ডপয়েন্টের তালিকা তৈরি করুন।
  5. ভ্যালিডেট করুন – একটি নতুন OpenCode সেশন শুরু করুন এবং অ্যাসিস্ট্যান্টকে তার রুলস, স্কিল লিস্ট এবং মেমরি স্ট্যাটাস সম্পর্কে জিজ্ঞাসা করুন।

মূল কথা

Claude Code থেকে OpenCode-এ মাইগ্রেশন করা মানে কেবল ফাইল সরানো নয়, বরং অ্যাসিস্ট্যান্টকে চালিত করার জন্য প্রয়োজনীয় ডিক্লারেশন বা ঘোষণাগুলোকে নতুন করে সাজানো। এই প্রক্রিয়াটি আপনাকে মূল রুলসগুলোতে ফিরে যেতে, প্রয়োজনীয় স্কিলগুলো পুনরায় তৈরি করতে এবং একটি ম্যানুয়াল মেমরি লগ গ্রহণ করতে বাধ্য করে, তবে এটি আপনাকে আরও সস্তা এবং model-agnostic AI অ্যাসিস্ট্যান্সের সুযোগও করে দেয়। আপনি যদি সুবিধার বদলে নিয়ন্ত্রণের (control) বিনিময়ে মাইগ্রেশন করতে প্রস্তুত থাকেন, তবে উপরের চেকলিস্টটি অনুসরণ করুন এবং প্রতিটি ইমপোর্ট করা কম্পোনেন্টকে একটি নতুন শুরু হিসেবে বিবেচনা করুন।