একটি কোডিং এজেন্ট আপনার রিপোজিটরিতে কোনো নিজস্ব মতামত নিয়ে প্রবেশ করে না। এটি যা ইতিমধ্যে সেখানে আছে তা পড়ে, লজিকগুলো গ্রহণ করে এবং বিদ্যমান কাঠামো অনুসরণ করে। যদি আপনার ডেটা অ্যাক্সেস লেয়ার এলোমেলো raw SQL এবং ডুপ্লিকেট কুয়েরির একটি জট পাকানো অবস্থা হয়, তবে এজেন্ট সানন্দে সেখানে আরও একটি জট যোগ করবে। যদি আপনার টেস্ট কভারেজ কম হয়, তবে এটি পাতলা বা দুর্বল টেস্ট তৈরি করবে। এটি অলসতা বা অযোগ্যতা নয়; এটি হলো প্যাটার্ন ম্যাচিং যা ঠিক যেভাবে কাজ করার কথা সেভাবেই কাজ করছে।
আপনার কল্পনা এবং এজেন্টের তৈরি করা কাজের মধ্যে ব্যবধান কমাতে আরও জোরালো প্রম্পট বা আরও স্মার্ট মডেলের প্রয়োজন নেই, বরং প্রয়োজন কনটেক্সট এবং সীমাবদ্ধতা (constraints)। আপনি যে পরিবেশে কাজ করছেন তা ইঞ্জিনিয়ারিং করার মাধ্যমে আপনি টুলটিকে সঠিক পথে আনতে পারেন। এখানে তা করার ছয়টি ব্যবহারিক উপায় দেওয়া হলো।
Refactor for Imitation
ল্যাঙ্গুয়েজ মডেলগুলো মৌখিক নির্দেশনার চেয়ে উদাহরণ থেকে অনেক ভালো শিখতে পারে। আপনি যদি Claude-কে পাঁচটি ভিন্ন মডিউল দেখান যেখানে প্রতিটি মডিউল নিজস্ব বিশৃঙ্খল পদ্ধতিতে ডেটা অ্যাক্সেস হ্যান্ডেল করছে, তবে আপনি তাকে আসলে কোন প্যাটার্নটি চান তা অনুমান করতে বলছেন। এর ফলে সাধারণত সবগুলোর একটি মাঝারি মানের মিশ্রণ তৈরি হয়।
পরিবর্তে, তাকে একটি পরিষ্কার রেফারেন্স দিন। এমন একটি মডিউল বেছে নিন যা আপনার আদর্শ কাঠামো প্রকাশ করে। অপ্রয়োজনীয় কোড সরিয়ে ফেলুন যাতে আর্কিটেকচারটি স্পষ্ট হয়। যখন আপনি নতুন কোনো ফিচারের জন্য বলবেন, সরাসরি সেই ফাইলটি রেফারেন্স হিসেবে দিন: "Follow the pattern in /src/orders/repository.py।" একটি সুগঠিত উদাহরণ এক অনুচ্ছেদ বিমূর্ত নিয়মের চেয়ে বেশি কার্যকর, কারণ কোড কোনো ব্যাখ্যার সুযোগ রাখে না। যদি আপনার রিপোজিটরিতে কোনো পরিষ্কার উদাহরণ না থাকে, তবে একটি লিখে ফেলুন। একটি সংক্ষিপ্ত রেফারেন্স ইমপ্লিমেন্টেশন হলো একবারের বিনিয়োগ যা প্রতিটি পরবর্তী রিকোয়েস্টে কাজে লাগবে। এজেন্ট সেই কাঠামো, এরর হ্যান্ডলিং স্টাইল এবং separation of concerns ক্লোন করবে কারণ এটিই একমাত্র ব্লুপ্রিন্ট যা আপনি দৃশ্যমান করেছেন।
Use Plan Mode First
কোনো ফাইল তৈরি বা পরিবর্তন করার আগে Claude-কে একটি প্ল্যান বা পরিকল্পনা প্রস্তাব করতে বলুন। এটিকে সুনির্দিষ্ট করুন: কোন ফাইলগুলো পরিবর্তন হবে, কোন ফাংশনগুলো যোগ করা হবে, কোন ডিপেন্ডেন্সিগুলো ইমপোর্ট করা হবে এবং নতুন অংশগুলো বিদ্যমান গ্রাফের সাথে কীভাবে মানিয়ে যাবে।
এই ধাপটি একটি ফ্রি কন্ট্রাডিকশন ডিটেক্টর (contradiction detector) হিসেবে কাজ করে। যদি Claude-এর প্ল্যান অ্যাপ্লিকেশনের ডিপ্লয়মেন্ট পাইপলাইনের ভেতরে ডেটাবেস মাইগ্রেশন যোগ করার প্রস্তাব দেয়, অথচ আপনার টিম আলাদাভাবে মাইগ্রেশন চালায়, তবে আপনি কোড রিভিউয়ের সময় নয় বরং কয়েক সেকেন্ডের মধ্যেই এই অমিলটি ধরতে পারবেন। যদি এটি কোনো ডেপ্রিকেটেড (deprecated) ইউটিলিটি পুনরায় ব্যবহার করার পরিকল্পনা করে, তবে ফিচারটি অর্ধেক লেখা হওয়ার আগেই আপনি তাকে নির্দেশ দিতে পারেন। প্ল্যানটি মডেলটিকে আপনার আর্কিটেকচার সম্পর্কে তার ধারণাগুলো প্রকাশ করতে বাধ্য করে। একজন জুনিয়র ডেভেলপারের ডিজাইন ডক-এর মতো আপনিও এটিকে চ্যালেঞ্জ করুন। এতে মাত্র কয়েক মিনিট সময় লাগে কিন্তু নিয়মিতভাবে এক ঘণ্টার মতো ভুল কোড ঠিক করার ঝামেলা থেকে বাঁচায়।
Provide Full Context Early
বেশিরভাগ অ্যালাইনমেন্ট ব্যর্থতা এজেন্ট কাজ বুঝতে না পারার কারণে ঘটে না, বরং ভুল কনস্ট্রেইন্ট বা সীমাবদ্ধতার জন্য অপ্টিমাইজ করার কারণে ঘটে। একটি সমাধান প্রযুক্তিগতভাবে নিখুঁত হতে পারে, কিন্তু যদি এটি বাজেট, ল্যাটেন্সি রিকোয়ারমেন্ট বা কমপ্লায়েন্স বা নিয়মকানুন লঙ্ঘন করে যা আপনি উল্লেখ করতে ভুলে গেছেন, তবে সেটি ব্যবহার অনুপযোগী হয়ে পড়বে।
প্রথম প্রম্পটেই আপনার সীমাবদ্ধতাগুলো বলে দিন। যদি আপনার এন্ডপয়েন্টটি ৯৯তম পার্সেন্টাইলে ২০০ মিলিসেকেন্ডের নিচে থাকতে হয়, তবে তা স্পষ্টভাবে বলুন। আপনি যদি HIPAA, GDPR বা কোনো নির্দিষ্ট অভ্যন্তরীণ অডিট নিয়মের অধীনে কাজ করেন, তবে তা স্পষ্ট করুন। যদি আপনার ইনফ্রাস্ট্রাকচার খরচ সংবেদনশীল হয় এবং আপনি অতিরিক্ত কোনো ম্যানেজড ক্যাশ ক্লাস্টার তৈরি করতে না পারেন, তবে খরচের সীমাটি পরিষ্কার করে দিন। Claude Code এমন কোনো ট্রেড-অফ নিয়ে আলোচনা করতে পারে না যা সম্পর্কে সে জানে না। আপনি যত দ্রুত এই সীমানাগুলো নির্ধারণ করে দেবেন, এজেন্ট তত বেশি সেগুলোকে সমাধানের মূলে অন্তর্ভুক্ত করবে, পরিবর্তে পরে প্যাচ করার মতো afterthought হিসেবে বিবেচনা করবে না।
Encode Memory
একই সংশোধন বারবার করা আপনার সময় এবং কনটেক্সট উইন্ডোর অপচয়। যখন আপনি নিজেকে Claude-কে কোনো নির্দিষ্ট লাইব্রেরি এড়িয়ে চলতে, একটি নির্দিষ্ট র্যাপার (wrapper) ব্যবহার করতে বা একটি নির্দিষ্ট নেমিং কনভেনশন অনুসরণ করতে একাধিকবার বলতে দেখেন, তখন থামুন। সেই সংশোধনটিকে প্রজেক্ট মেমরিতে রূপান্তর করুন।
আপনার রিপোজিটরির রুট ডিরেক্টরিতে একটি CLAUDE.md ফাইল তৈরি করুন। এটি হলো আপনার হাউজ ম্যানুয়াল। এটি গুরুত্বপূর্ণ নিয়মগুলো দিয়ে পূর্ণ করুন: unittest-এর পরিবর্তে pytest ব্যবহার করুন; সমস্ত আউটবাউন্ড HTTP কল অবশ্যই /lib/http-এর সার্কিট-ব্রেকারের মাধ্যমে রুট করতে হবে; কখনোই সরাসরি লেগাসি utils.py ফাইল থেকে ইমপোর্ট করবেন না; হ্যান্ডলারের কাছে পৌঁছানোর আগে সর্বদা স্কিমা লেয়ার দিয়ে ইনপুট ভ্যালিডেট করুন। যখন Claude Code আপনার প্রজেক্ট লোড করে, এটি স্বয়ংক্রিয়ভাবে এই ফাইলটি পড়ে নেয়। সময়ের সাথে সাথে, CLAUDE.md আপনার অন্যতম শক্তিশালী অ্যাসেট হয়ে উঠবে কারণ এটি প্রতিবার নতুন করে টাইপ না করেই আপনার স্ট্যান্ডার্ড বা মানদণ্ড বজায় রাখতে সাহায্য করে। যেসব সংশোধন একসময় সাময়িক প্রম্পট ছিল, সেগুলো এখন কোডবেসের স্থায়ী অংশ হয়ে উঠবে।
Mechanize Rules with Hooks
ডকুমেন্টেশন সাহায্য করে, কিন্তু ডকুমেন্টেশন এড়িয়ে যাওয়া হতে পারে। যখন কোনো নিয়ম অত্যন্ত গুরুত্বপূর্ণ হয়, তখন সেটিকে কেবল পরামর্শ থেকে প্রয়োগযোগ্য নিয়মে রূপান্তর করুন। কঠোর নিয়মগুলো যাতে ভাঙা অসম্ভব হয়, সেজন্য hooks, pre-commit checks, CI gates, অথবা কাস্টম validation scripts ব্যবহার করুন।
যদি প্রতিটি নতুন মডিউলের জন্য সংশ্লিষ্ট unit tests থাকা বাধ্যতামূলক হয়, তবে শুধু CLAUDE.md-এ তা উল্লেখ করলেই হবে না। একটি coverage gate কনফিগার করুন যা /src-এর কোনো ফাইল যদি কোনো ম্যাচিং টেস্ট ছাড়াই যুক্ত হয়, তবে build fail করে দেবে। যদি আপনার সিকিউরিটি পলিসি সিক্রেট কমিট করা নিষিদ্ধ করে, তবে এমন একটি স্ক্যানার চালান যা push ব্লক করে দেবে। যদি আপনার টিমের নির্দিষ্ট import ordering বা lint rules প্রয়োজন হয়, তবে pre-commit hook দিয়ে সেই সমাধানটি অটোমেট করুন। এই মেকানিজমগুলো Claude-এর আউটপুটকেও ঠিক একইভাবে শনাক্ত করে যেভাবে আপনার করা ভুলগুলো শনাক্ত করে। এগুলো মানুষের ভুল বা model drift-এর সম্ভাবনা দূর করে এবং "দয়া করে মনে রাখবেন" এর পরিবর্তে "এভাবে এগিয়ে যাওয়া সম্ভব নয়" নিশ্চিত করে। যে নিয়ম প্রয়োগ করা হয় না, তা কেবল একটি পরামর্শ মাত্র।
স্বতন্ত্র রিভিউয়ার ব্যবহার করুন
সেলফ-রিভিউ বা নিজে নিজে যাচাই করা নির্ভরযোগ্য নয়। যখন Claude নিজের কাজ নিজেই পরীক্ষা করে, তখন এটি প্রায়ই নিজের ধারণাগুলোকেই নিশ্চিত করে ফেলে, কারণ ধারণাগুলো সে নিজেই তৈরি করেছিল। এর সমাধান হলো নতুন দৃষ্টিভঙ্গি আনা, এমনকি সেই দৃষ্টিভঙ্গি যদি একই মডেলের হয় যা ভিন্ন কোনো নির্দেশনায় কাজ করছে।
নির্দিষ্ট এবং সুনির্দিষ্ট লক্ষ্য নিয়ে আলাদা রিভিউয়ার এজেন্ট তৈরি করুন। একজনকে কঠোরভাবে সিকিউরিটি অডিট করতে বলুন: সেখানে কি injection risks, উন্মুক্ত internal endpoints, অথবা unsafe deserializations আছে? অন্য একজনকে test coverage এবং edge cases মূল্যায়ন করতে বলুন। তৃতীয় একজন যাচাই করতে পারে যে পরিবর্তনটি CLAUDE.md-এ সংজ্ঞায়িত নিয়মগুলো মেনে চলছে কি না। এই রিভিউয়ারদের জন্য জটিল কাস্টম মডেলের প্রয়োজন নেই। তাদের শুধু মূল জেনারেশন ধাপ থেকে স্বতন্ত্র থাকলেই চলবে। কোডটি দেখার জন্য অন্য কাউকে—বা অন্য কিছুকে—অনুরোধ করার যে প্রক্রিয়া, তা এমন সব ধারণা বা অনুমান ধরে ফেলে যা কোড তৈরির সময় খুব স্বাভাবিক মনে হয়েছিল। প্রোডাকশনে একটি বাগ পৌঁছে যাওয়ার ক্ষতির তুলনায় অতিরিক্ত টোকেন খরচ খুবই নগণ্য।
দ্য লুপ (The Loop)
অ্যালাইনমেন্ট কোনো শেষ করা প্রজেক্ট নয়। এটি একটি লুপ যা আপনাকে বজায় রাখতে হয়। প্রতিবার যখন আপনি Claude-এর আউটপুট সংশোধন করেন, তখন নিজেকে প্রশ্ন করুন যে সেই সংশোধনটি আপনার CLAUDE.md-এ একটি নতুন এন্ট্রি বা আপনার টুলের একটি নতুন গেট হতে পারে কি না। যদি আপনাকে একই সংশোধন দুবার করতে হয়, তবে বুঝে নিন আপনার সিস্টেমে একটি ঘাটতি রয়েছে। এটি স্থায়ীভাবে সমাধান করুন।
কয়েক সপ্তাহ ধরে এই অভ্যাসটি ক্রমাগত কাজ করতে থাকে। এজেন্ট তখন অনুমান করা বন্ধ করে দেয় এবং আপনার তৈরি করা নির্দিষ্ট পথ অনুসরণ করতে শুরু করে। কোডবেসটি এমনভাবে কাজ করতে শুরু করে যেন এটি নিজেই নিজেকে কোড করছে, কারণ এখানে সীমাবদ্ধতাগুলো স্পষ্ট, উদাহরণগুলো পরিচ্ছন্ন এবং নিয়মগুলো যান্ত্রিক। আপনার কাজ তখন সংশোধন করা থেকে কিউরেট করার দিকে পরিবর্তিত হয়।
উৎস: https://dev.to/az365ai/how-to-align-claude-code-with-your-codebase-6-techniques-2026-3k28
ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi
