আপনি ভাবার আগেই বলে নেওয়া আপত্তি
“Skills অফিশিয়াল, আর সেগুলো তো আগে থেকেই আমার নিজের ফাইল”
সব দিক থেকেই সত্যি, আর আমরা এড়িয়ে যাব না। Skill হলো একটি ফোল্ডার, যার ভেতরে একটি SKILL.md থাকে: front matter-এর দুই লাইন — একটি নাম আর একটি বিবরণ — তারপর লেখা। এটি markdown, আপনার নিজের, git-এ থাকে, আর কাল মত বদলালে আপনি এটি সঙ্গে নিয়ে যেতে পারেন। কেউ আপনাকে কিছুতে আটকে রাখেনি।
কার্যপদ্ধতিটিও ভালোভাবে গড়া। Skill-এর দরকার না পড়া পর্যন্ত শুধু তার বিবরণ মেমোরিতে থাকে — প্রায় একশো শব্দ; মূল অংশ লোড হয় যখন AI ঠিক করে সেটি প্রাসঙ্গিক, আর সহায়ক ফাইল লোড হয় কেবল তখন, যখন সে সত্যিই সেগুলো খোলে। একে বলা হয় প্রোগ্রেসিভ ডিসক্লোজার, আর AI-কে একশোটি দক্ষতা দেওয়ার এটাই সঠিক উপায়, প্রতিটি বাক্যে সবগুলোর দাম না দিয়ে।
তাই না: এই পাতা বলতে আসেনি যে Skills খারাপভাবে বানানো। এটি আছে কারণ সেই কার্যপদ্ধতি, যা একটি সক্ষমতার জন্য গুণ, একটি পরিচয়ের জন্য সেটাই ত্রুটি।
মূল কথা হলো সেটি কখন প্রসঙ্গে ঢোকে
Skill ঢোকে যখন দরকার হয়। এটাই তার সমস্ত সৌন্দর্য: কারণ না থাকলে সে জায়গা নেয় না, আর AI বিবরণ পড়ে কারণটা চিনে নেয়। “আমাদের নিয়ম মেনে একটি প্রেজেন্টেশন সাজানো”-র মতো কাজের জন্য একদম মানানসই, যা মঙ্গলবার লাগে আর বৃহস্পতিবার লাগে না।
পরিচয় এভাবে কাজ করে না। আপনি কে, সেটা এমন কোনো দক্ষতা নয় যা বিষয় চাইলে চালু হয়: এটা সেই জিনিস যা আপনি মুখ খোলার আগেই সেখানে আছে, এবং প্রশ্নটা আপনি কীভাবে পড়বেন তা ঠিক করে দেয়। যা শুধু ডাকলে হাজির হয়, সেটা চরিত্র নয়, সেটা একটা ম্যানুয়াল।
রান্না জানা আর ক্ষুধার্ত হওয়ার মধ্যে যে তফাত, এটাও সেই একই তফাত। প্রথমটা দরকারের সময় বের করা হয়; দ্বিতীয়টা আপনাকে চালায় তখনও, যখন আপনি খাবারের কথা ভাবছেন না।
আর এমন একটা জিনিস আছে যা Skill-এ নেই
SKILL.md-তে এই অংশটা আবার লিখবে না কথাটা লেখার কোনো উপায় নেই। এটা কোনো ভুল নয়: Skill এমন জিনিস যা আপনি AI-কে দেন যাতে সে ব্যবহার করে, আর সেখানে রক্ষা করার মতো কিছু নেই।
অন্যদিকে, Reminder-এর ওপারে এমন কেউ আছে যে পড়ে, বোঝে এবং আবার লিখতেও পারে — তাই প্রতিটি ব্লক ঘোষণা করে তার কতটা আপনার: শুধু আপনি যে নিয়মগুলো বদলাতে পারেন সেগুলো থেকে শুরু করে AI যে নোটগুলো না জিজ্ঞেস করেই হালনাগাদ করে সেগুলো পর্যন্ত। এটাই ম্যানুয়াল আর সংবিধানের তফাত, আর এই কারণেই Reminder গদ্য নয়, তার একটা কাঠামো আছে।
দুটি কলামে
| | Skill | Reminder |
|---|
| কীসের উত্তর দেয় | একটা কাজ কীভাবে করা হয় | যে করছে সে কে |
| কখন প্রসঙ্গে ঢোকে | যখন AI একে প্রাসঙ্গিক মনে করে | সবসময়, প্রথম লাইন থেকে |
| এতে কী থাকে | একটা পদ্ধতি, কিছু উদাহরণ, কিছু স্ক্রিপ্ট | কোর, মডিউল, স্মৃতি, অনুমতি |
| কে একে আবার লিখতে পারে | আপনি, কথোপকথনের বাইরে | অঞ্চলের ওপর নির্ভর করে: এটা ফাইলের ভেতরেই ঘোষিত থাকে |
| আপনি একে সরিয়ে নিলে | AI সেই কাজটা কীভাবে করতে হয় তা আর জানে না | AI আর “কেউ” থাকে না |
| যা মনে রাখে | কিছুই না: আগামীকাল আজকের মতোই | সেটা কেমন গেল: মডিউলের সংশ্লিষ্ট স্মৃতিতে |
যেখানে দুটো একসঙ্গে বসে, যা প্রায় সবসময়ই হয়
এটা “হয় এটা, নয় ওটা” নয়, আর এটাকে সেভাবে বানানোর কোনো লাভও নেই। যে ভাগাভাগিটা কাজ করে সেটা পরিষ্কার: সক্ষমতার জন্য Skills, পরিচয়ের জন্য Reminder। একই কথোপকথন, কোনো সংঘাত নেই — কারণ দুটো একই জায়গা নিয়ে প্রতিযোগিতা করছে না।
কোডিং এজেন্টদের ক্ষেত্রে এই একই ভাগাভাগির ইতিমধ্যে একটা ঠিকানা আছে: এজেন্ট চালু হওয়ার সময় যে ফাইল পড়ে — CLAUDE.md, AGENTS.md — সেখানেই পরিচয় যায়, আর Skills থেকে যায় সেই পদ্ধতিগুলো হিসেবে যা সেই পরিচয় চালাতে জানে।
আর সীমানাটা দেখতে যতটা মনে হয় তার চেয়ে অনেক বেশি ভেদ্য। আপনার কাছে আগে থেকেই থাকা একটা Skill প্রায় লাইন ধরে ধরে একটা মডিউলে রূপান্তরিত হয়: নতুন করে কিছু উদ্ভাবন করার নেই, কারণ দুটো রূপই একই চারটে প্রশ্নের উত্তর দেয়।
- বিবরণ: এটা কী করে, আর কখন ব্যবহার করতে হবে
→- ### FUNCTION · ### TRIGGER
- নির্দেশনা, অনুসরণ করার ধাপগুলো
→- ### ROUTINE
- যা করা যাবে না, সীমাগুলো
→- ### LIMITI
- ইনপুট আর আউটপুটের উদাহরণ
→- ### ESEMPIO
উল্টো দিকেও এটা খাটে, আর এটাই চমকপ্রদ অংশ। একটা SKILL.md-তে বাধ্যতামূলক শুধু front matter-এর দুটো লাইন — একটা নাম আর একটা বিবরণ। তার নিচে আপনি স্বাধীন: মূল অংশের কাঠামো কেউ বেঁধে দেয়নি। Skills আলগা গদ্যে লেখা হওয়ার প্রবণতা একটা ছড়িয়ে পড়া অভ্যাস, নিয়ম নয় — আর Anthropic-এর নিজস্ব নির্দেশিকাই ক্রমিক ধাপ, আউটপুট টেমপ্লেট আর উদাহরণের সুপারিশ করে, যা ঠিক সেই আকার যা একটা মডিউলের আগে থেকেই আছে। এটা আবার না লিখেই front matter-এর নিচে বসে যায়।
শুধু একটা জিনিস ওপারে যায় না, এবং সেটা বলে রাখা ভালো। মডিউলের ভেতরে এই অংশটা আপনি আবার লিখবেন না ঘোষণা করা লাইনটার একটা জায়গা আছে, এবং অ্যাপ সেটা বলবৎ করে; SKILL.md-র ভেতরে সেই লাইনটার বসার জায়গা নেই, আর তাকে রক্ষা করার জন্য মাঝখানে কোনো অ্যাপও নেই — অঞ্চলের চিহ্নগুলো সেখানে শুধু টেক্সট হয়ে থাকে, কেউ সেগুলো প্রয়োগ করে না। একটা সক্ষমতার অনুবাদ দিব্যি কাজ করে। পরিচয়ের অনুবাদ করে না: আর এই পাতা শুধু এটুকুই বলছে।
তৃতীয় পথ: অনুবাদ নয়, জোড়কলম করুন
একটা Skill-কে মডিউলে অনুবাদ করা একটা পথ। অন্য পথ হলো একেবারেই অনুবাদ না করা। একটা SKILL.md-র মূল অংশ markdown, এবং মডিউল তাকে হুবহু যেমন আছে তেমনই ধারণ করে, এমন একটা লাইনের নিচে যা ঘোষণা করে ওই টুকরোটা কার: Standard-এ এর নাম ### SUB-MODULE:, আর তার নিচে যায় Skill-এর পুরো লেখা — তার কাজ, তার ধাপ, তার উদাহরণ। কিছুই আবার লেখা হয় না। আপনি শুধু ঘোষণা করেন সেটা কার, আর কোথায় বসেছে।
## MODULE 07: ...
### FUNCTION
### SUB-MODULE: SKILL_A
#### FUNCTION
#### ROUTINE
### SUB-MODULE: SKILL_B
#### FUNCTION
#### ROUTINE
[P4]
### ASSOCIATED MEMORY
[/P4]
মডিউল তার চারপাশে যা যোগ করে, সেগুলো এমন দুটো জিনিস যার জন্য SKILL.md-র কোনো জায়গা নেই। প্রথমটা অনুমতি অঞ্চল: জোড়কলম করা লেখাটা এমন একটা ব্লকের ভেতরে বসে যা ঘোষণা করে কে তাকে আবার লিখতে পারে, আর সেই প্রত্যাখ্যান করে অ্যাপ, মডেল নয়। দ্বিতীয়টা ### ASSOCIATED MEMORY, যে অংশে জমা হয় আপনি সেটা ব্যবহার করতে করতে যা শেখেন — যে ওই ধাপগুলো আপনার জন্য অন্য ক্রমে যায়; যে আপনার ফাইলের সঙ্গে ওই একটা ধাপ টেকে না; যে আপনি আউটপুট ছোট চান। Skill জানে কাজটা কীভাবে করতে হয়। মডিউল মনে রাখে সেটা কেমন গেল।
আর একটা মডিউলে একের বেশিও ধরে। যদি তিনটে Skills একই কাজে লাগে — একটা PDF পড়া, তা থেকে একটা টেবিল বের করা, তার সারাংশ লেখা — তাহলে আপনি তাদের একই মডিউলে জোড়কলম করতে পারেন, প্রতিটা ### SUB-MODULE:-এর নিচে একটা করে। তখন থেকে তারা আর একটা একটা করে জ্বলে ওঠে না: মডিউল যখন ঢোকে তখন তারা একসঙ্গে প্রসঙ্গে ঢোকে, আর একে অপরকে দেখতে পায়। এটা আপনার পছন্দ, আর এটাই সেই মুহূর্ত যখন আপনি ক্রমান্বয়ে প্রকাশ করা বন্ধ করেন।
দামটা খোলাখুলি বলা আছে: ওই মডিউল যতবার সক্রিয় হয়, ততবার আপনি তিনটের দামই দেন, যেদিন শুধু একটা দরকার ছিল সেদিনও। আপনি যা কেনেন তা হলো তারা একে অপরের বিরোধিতা করা বন্ধ করে — তিনটের বদলে একটা সংশ্লিষ্ট স্মৃতি, একই বাক্য তিন জায়গায় লেখার বদলে একবার লেখা একটা নিয়ম, আর কোনো কাজ আধখেঁচড়া থাকে না কারণ AI একটাকে লোড করেছিল আর অন্যটাকে করেনি। কাজ একটা হলে মডিউল একটা। কাজ তিনটে হলে তাদের আলাদা রাখুন আর দরকারে জ্বলতে দিন: ঠিক এই ক্ষেত্রেই একা একটা Skill এর চেয়ে ভালো কাজ করে।
একটা জিনিস আজ আপনাকে হাতে করতে হয়, আর আগে থেকে জেনে রাখা ভালো: জোড়কলম মানে কপি আর পেস্ট, এবং সেই মুহূর্ত থেকে কপিটা আপনার। যদি Skill-এর লেখক নতুন সংস্করণ প্রকাশ করেন, সেটা আনবেন কি না তা আপনি ঠিক করেন — লেখাটা আপনার ফাইলের ভেতরে খোলা পড়ে আছে, আর একটা ফাইল যেভাবে হালনাগাদ হয় সেভাবেই হয়। বাকি সবকিছুর মতো এটাও একই চুক্তি: আপনার নিচে এমন কিছু সরে না যা আপনি দেখতে পান না।
এক লাইনে
Skill হলো এমন কিছু যা আপনার AI করতে জানে। Reminder হলো সেটা করার সময় সে কে। দুটোই রাখুন: তারা একে অপরের পায়ে পা দেয় না, কারণ তারা একই জায়গায় নেই।