একজন ডেভেলপার লক্ষ্য করেছেন যে একটি লুকানো npx লুকআপ (lookup) প্রতিবার Claude Code-এর প্রতিটি টার্নে (turn) প্রায় ১০ সেকেন্ড সময় বাড়িয়ে দিচ্ছিল, এবং সেই লুকআপের পরিবর্তে গ্লোবাল ইনস্টল (global install) ব্যবহার করার ফলে প্রতিটি ইন্টারঅ্যাকশন থেকে ছয় সেকেন্ড সময় সাশ্রয় হয়েছে।

কেন এই ল্যাটেন্সি (latency) গুরুত্বপূর্ণ ছিল

Claude Code ডজন ডজন কম্পোনেন্ট সম্বলিত একটি মনোরিপো (monorepo) নেভিগেট করে, সিম্বল ইনডেক্স করে, Postgres-এ ট্রান্সক্রিপ্ট সংরক্ষণ করে এবং এরর রিপোর্ট পাঠায়। ওয়ার্কফ্লোটি মসৃণ মনে হয় যতক্ষণ না মডেলের রেসপন্স বা উত্তর দিতে দেরি হতে শুরু করে। এরপর একটি হেলথ চেক (health check) বেশ কিছু অদক্ষতা এবং একটি ব্যয়বহুল নেটওয়ার্ক কল প্রকাশ করে।

হেলথ চেক যা উন্মোচন করেছে

  • ডুপ্লিকেট ইনস্টলেশন (Duplicate installations) – একটি নেটিভ লঞ্চার এবং একটি পুরনো npm-global ভার্সন একসাথে ছিল। পুরনো কপিটি সরিয়ে ফেলার ফলে একটি অপ্রয়োজনীয় পাথ লুকআপ (path lookup) দূর হয়েছে।
  • ত্রুটিপূর্ণ এজেন্ট ফাইল (Broken agent file) – কোনো ডেসক্রিপশন নেই এমন একটি ফাইল একটি বৈধ ফাইলের নামের সাথে মিলে যাচ্ছিল, যার ফলে Claude Code সেটি উপেক্ষা করছিল। ত্রুটিপূর্ণ এন্ট্রিটি মুছে ফেলার ফলে বিভ্রান্তি দূর হয়েছে।
  • অব্যবহৃত এক্সটেনশন (Unused extensions) – একটি প্লাগইন এবং একটি MCP server যা কখনোই ব্যবহৃত হচ্ছিল না, সেগুলো ডিজেবল করা হয়েছে, যা রানটাইম ফুটপ্রিন্ট (runtime footprint) কমিয়ে দিয়েছে।
  • অতিরিক্ত বড় “CLAUDE.md” ফাইল – এই ফাইলগুলোতে কোডে ইতিমধ্যে থাকা তথ্য (যেমন: build commands) বারবার দেওয়া ছিল, যা মডেলের কাছে পাঠানো পেলোড (payload)-এর আকার বাড়িয়ে দিচ্ছিল। এগুলো কমিয়ে শুধুমাত্র প্রয়োজনীয় কনটেক্সট রাখা হয়েছে।

এই পরিচ্ছন্নতাগুলো সাহায্য করেছে, তবে সবচেয়ে বড় সাফল্য এসেছে Stop hook থেকে যা প্রতিটি মডেল রেসপন্সের পরে চলে।

লুকানো npx ট্যাক্স (tax)

Stop hookটি ছয়টি আলাদা কমান্ড কার্যকর করে, যার প্রতিটির শুরুতে npx -y থাকে। -y ফ্ল্যাগটি npx-কে কমান্ড চালানোর আগে npm registry-তে নতুন কোনো ভার্সন আছে কি না তা পরীক্ষা করতে বাধ্য করে, যা একটি নেটওয়ার্ক রিকোয়েস্ট ট্রিগার করে। প্রতিটি লুকআপ গড়ে ১.৬ সেকেন্ড সময় নিচ্ছিল, তাই ছয়টি কলের কারণে প্রতিটি টার্নে প্রায় ১০ সেকেন্ড যোগ হচ্ছিল। বাস্তবে, হুকের সামগ্রিক ল্যাটেন্সি ছিল ১২ সেকেন্ড, এবং নেটওয়ার্কে সমস্যা হলে মাঝে মাঝে এটি ১১৩ সেকেন্ড পর্যন্ত বেড়ে যেত।

সহজ সমাধান

npx কলের পরিবর্তে গ্লোবালি ইনস্টল করা একটি বাইনারি (binary) ব্যবহার করার ফলে रजिस्ट्री লুকআপ দূর হয়েছে:

  • আগে: npx -y @invariance/gps → প্রতি কলে ১.৬ সেকেন্ড
  • পরে: gps (গ্লোবালি ইনস্টল করা) → প্রতি কলে ০.৭ সেকেন্ড

এই পরিবর্তনের ফলে Stop hook-এর রানটাইম প্রতি টার্নে প্রায় ৬ সেকেন্ড কমে গেছে এবং রিমোট চেকের কারণে হওয়া বিশাল স্পাইকগুলো (spikes) দূর হয়েছে।

পরবর্তীতে যা খেয়াল রাখতে হবে

  • Hook timing – ব্যবহারকারীদের সমস্যা হওয়ার আগেই ল্যাটেন্সি শনাক্ত করতে যেকোনো কাস্টম হুক মনিটর (instrument) করুন।
  • Dependency hygiene – নিয়মিতভাবে ডুপ্লিকেট ইনস্টলেশন এবং অব্যবহৃত এক্সটেনশনগুলো ছেঁটে ফেলুন।
  • Configuration files – “CLAUDE.md” ফাইলটি হালকা রাখুন; শুধুমাত্র সেই তথ্যগুলো রাখুন যা মডেল নিজে থেকে অনুমান করতে পারে না।

শিক্ষাটি সহজ: অটোমেশন অনেক সময় ব্যয়বহুল জটিলতা লুকিয়ে রাখতে পারে। একটি দ্রুত হেলথ চেক সেই লুকানো নেটওয়ার্ক কলগুলোকে প্রকাশ করতে পারে যা একটি মসৃণ AI অ্যাসিস্ট্যান্টকে ধীরগতির করে তোলে।

মূল কথা (Takeaway): যখন Claude Code ধীরগতির মনে হবে, তখন হুকগুলোর সময় পরীক্ষা করুন এবং যেকোনো npx লুকআপ দূর করুন; একটি গ্লোবাল ইনস্টল প্রতি টার্নে কয়েক সেকেন্ড সময় বাঁচিয়ে আপনার ডেভেলপমেন্ট ফ্লো মসৃণ রাখতে পারে।