আমি কীভাবে Dark Factory-এর প্রথম workflow তৈরি করেছি
আগের পোস্টে আমি OpenSecondBrain নিয়ে লিখেছিলাম — সেই মেমোরি স্তর যেটার ওপর AI এজেন্টরা নির্ভর করে। মেমোরি গল্পের অর্ধেক মাত্র। বাকি অর্ধেক হলো প্রক্রিয়াটাই: কে কী করে, কে কাকে রিভিউ করে, কোনটাকে “শেষ” ধরা হয়, আর এই সব কিছু চ্যাটে একটামাত্র বাক্যে কীভাবে শুরু হয়।
আজ প্রথম কার্যকর সংস্করণ চালু করলাম: new-project workflow। আমি Telegram-এ একটা ভাবনা নিয়ে আসি, আর শেষে পেয়ে যাই ডকুমেন্ট, ডিজাইন, প্ল্যান আর একটা বাস্তব পাবলিক পেজসমেত পুরোপুরি গড়ে তোলা একটা প্রকল্প।
বাইরে থেকে এটা দেখতে কেমন
আমি একটা ভাবনা নিয়ে আসি। যেমন: “আমার ছোট স্টুডিওর জন্য একটা এক-পাতার ল্যান্ডিং দরকার।”
তারপর আমি সংক্ষিপ্ত, নির্দিষ্ট কিছু প্রশ্নের রাউন্ডে উত্তর দিই। প্রথমে ব্রেইনস্টর্ম নিজেই: শ্রোতা কারা, কী জোর দিতে হবে, কোন স্ট্যাক আমি পছন্দ করি, অনুভূতি কেমন হওয়া উচিত। তারপর প্রতিটা পর্যায়ে আরও কয়েকটা ছোট সেশন, প্রতিটা ৪–৫টা প্রশ্নের: চলমান ডকুমেন্টের লেখকের যা যা ঘাটতি, যাতে তাকে আন্দাজে লিখতে না হয়।
বাকি সব ফ্যাক্টরি করে। ইতিমধ্যে আমি নিজের কাজে মন দিতে পারি।
জীবন্ত কার্ডসমৃদ্ধ একটা কানবান
এই সব কিছুর সবচেয়ে দৃশ্যমান অংশ কানবান বোর্ড। চূড়ান্ত পরিকল্পনায় আমি যখন “হ্যাঁ” বলি, অর্কেস্ট্রেটর এক প্রস্থেই বোর্ডে ১৩টা কার্ড তৈরি করে — কাজের প্রতিটা পর্যায়ের জন্য একটা করে। তারপর সব কিছু আমার চোখের সামনে ঘটে।
কার্ডগুলো নিজে নিজেই চলে। প্রথমটা জ্বলে ওঠে, তাতে running চিহ্ন বসে, আর আমি জানি যে কোনও একটা subagent ওটা তুলে নিয়েছে। কয়েক মিনিট পরে কার্ডটা done-এ গড়িয়ে যায় এবং পরেরটা জ্বলে ওঠে। প্রতিটা উৎপাদক পর্যায়ের মধ্যে সবসময় একটা রিভিউ-কার্ড থাকে, আর সেটা ভিন্ন একটা subagent-কেই নিতে হয়: যে ডকুমেন্ট লিখেছে সে কখনও নিজের কাজ রিভিউ করে না।
কখনো কখনো রিভিউ পাশ হয় না। তখন রিভিউ-কার্ড blocked-এ চলে যায়, তার পাশে সেই একই লেখকের জন্য একটা নতুন fix-task হাজির হয়, এবং পুরো ডাউনস্ট্রিম চুপচাপ অপেক্ষা করে। লেখক ঠিকঠাক করে fix-task বন্ধ করলে রিভিউ জেগে ওঠে এবং আর্টিফ্যাক্টটা আবার পড়ে। পাস করতে পারে। আবার ফেরত পাঠাতে পারে। সর্বোচ্চ দু’রাউন্ড, তারপর বিষয়টা আমার কাছে এসকেলেট হয়।
শেষমেশ আমি বোর্ডের দিকে প্রায় একটা পার্সেল-ট্র্যাকারের মতো তাকিয়ে থাকি: এখন অ্যাসেম্বল হচ্ছে, এখন প্যাক হচ্ছে, এখন পাঠানো হচ্ছে। শুধু এটা কোনও কুরিয়ার নয় — এটা একসঙ্গে কয়েকটা subagent, যারা আমার প্রকল্পের আলাদা আলাদা অংশে কাজ করছে।
শেষে কী বের হয়
প্রক্রিয়ার শেষে আমার কাছে থাকে:
- ভাবনার মূল ধারণাটা ধরে রাখা একটা সুসংগঠিত
about.md; - কার্যকরী ও অ-কার্যকরী চাহিদা সমেত
specs.md; - প্রযুক্তিগত রূপরেখাসহ
architecture.md; - MVP পর্যন্ত পর্যায়ভিত্তিক রোডম্যাপসহ
plan.md; - ভিজ্যুয়াল আইডেন্টিটি, টোকেন, টাইপোগ্রাফি ও মূল স্ক্রিনসহ
DESIGN.md; - এই সব ফাইল ধারণকারী প্রকল্পের নিজস্ব GitHub রিপোজিটরি;
<slug>.techmeat.devসাবডোমেইনে ডিপ্লয় করা একটা পাবলিক পেজ, যেটা এই মুহূর্তেabout.md-এর প্রতিচ্ছবি হিসেবে যতটা সম্ভব সরলতম HTML পরিবেশন করছে। এটা একটা প্রতিশ্রুতি যে প্রকল্পটা আছে এবং অ্যাক্সেসযোগ্য।
আসল ফিচারের বাস্তবায়ন অন্য একটা workflow-এর কাজ, যেটা পরে আসবে। এই প্রথমটির লক্ষ্য একটাই: ভাবনাটাকে এমন অবস্থায় নিয়ে যাওয়া যে “সব বর্ণিত, সব মীমাংসিত, প্রকল্পের নিজস্ব ঠিকানা আছে”। তারপর আসল ডেভেলপমেন্টের জন্য ফ্যাক্টরিকে কাজে লাগানো যায়।
কোনটা কঠিন ছিল
কয়েক রাউন্ড ডিবাগ-রান চালিয়েছি। প্রতিবার নিজস্ব মজাদার একটা বাগ বেরিয়ে আসত: কোনও একটা subagent নিজের কাজের ডিরেক্টরি গুছাতে গিয়ে নিজের shell সেশনই মেরে ফেলত; কিংবা পর্যায়ের মাঝখানেই ফিচারের বাস্তবায়ন শুরু করে দিত, যদিও বাস্তবায়ন এই workflow-এর অংশ নয় এবং পরের workflow-এর কাজ। রানের ফাঁকে ফাঁকে স্কিল প্যাচ করতাম আর আবার শুরু করতাম। বর্তমান অবস্থায় চক্রটা শুরু থেকে শেষ পর্যন্ত পরিষ্কারভাবে চলে।
পথে পথে মেমোরিও বড় হয়েছে
আগের পোস্টে আমি প্রতিশ্রুতি দিয়েছিলাম যে OpenSecondBrain গল্পের অন্য অর্ধেক। তারপর থেকে সেই অর্ধেক বেশ পরিণত হয়েছে, আর ফ্যাক্টরির জন্য সেটা গুরুত্বপূর্ণ।
প্রধান পরিবর্তন: OpenSecondBrain-এ এখন “পর্যবেক্ষণমূলক মেমোরি”-র একটা স্তর যুক্ত হয়েছে। আগে আমি ওখানে ডায়েরির মতো হাতে লিখতাম। এখন subagent-রা চলতে চলতে আমার পছন্দ ধরে নেয় (যেমন “কমিটগুলো আদেশসূচক রূপে লেখা হয়” বা “প্রসঙ্গ ছাড়া অভ্যন্তরীণ সংক্ষিপ্ত রূপ ব্যবহার করো না”), নোটগুলো একটা ইনবক্সে ফেলে রাখে, আর দিনে একবার Hermes এজেন্ট dream চালায় — একটা ব্যাকগ্রাউন্ড পাস যা পুনরাবৃত্ত পর্যবেক্ষণগুলোকে নিয়মে পরিণত করে। এই নিয়মগুলো প্রতিটা পরবর্তী সেশনের শুরুতে স্বয়ংক্রিয়ভাবে লোড হয়ে যায়, আর আমাকে আর বিশ বার একই কথা বলতে হয় না।
এর সঙ্গে আরও: পুরো OpenSecondBrain জ্ঞানভাণ্ডারের ওপরে ফুল-টেক্সট সার্চ, প্রতিটা dream পাসের আগে ব্যাকআপ ও রোলব্যাক, প্রতিটা পেইড অপারেশন রেকর্ড করার আলাদা স্তর (কী জন্য পেমেন্ট হলো, কেন, কিসের সঙ্গে যুক্ত), এবং মেশিন-প্রয়োগকৃত সুরক্ষা যাতে এক এজেন্ট ভুল করে অন্যের নিয়মগুলো ওভাররাইট করে না ফেলে। এই সব মিলেই ফ্যাক্টরি সম্ভব হয়: যখন কোনও subagent DESIGN.md লেখে, সে ইতিমধ্যেই টাইপোগ্রাফি ও ইন্টারফেস নিয়ে আমার জমে থাকা পছন্দগুলো দেখতে পায়। আমি একদিন চ্যাটে কথায় কথায় বলেছিলাম, OpenSecondBrain সেটা ধরে রেখেছে, আর এখন কোনও স্মরণ-করানো ছাড়াই সেগুলো প্রতিটা নতুন প্রকল্পে চলে যায়।
এরপর কী
new-project শুধু bootstrap। এরপর আসবে new-feature — একটা workflow যা বিদ্যমান একটা প্রকল্পকে তার ডকুমেন্টসহ তুলে নিয়ে পরবর্তী ফিচারটা প্রোডাকশন পর্যন্ত পৌঁছে দেবে। আর তৃতীয়টা, bugfix: ট্রিয়াজ, রিপ্রো, ফিক্স, যাচাই, শিপ। এই তিনটে playbook মিলিয়েই একজন মানুষের জন্য আমার Dark Factory সংস্করণ: আমি একটা ভাবনা বা একটা বাগ-রিপোর্ট নিয়ে আসি, আর বেরিয়ে আসে একটা চালু ফিচার।
পুরো ফ্যাক্টরি পর্যন্ত পথ এখনো বাকি। কিন্তু প্রথম অংশটা গড়া হয়ে গেছে এবং স্থিতিশীলভাবে চলছে।
এই সব এখনই ওপেন সোর্স হিসেবে প্রকাশ করা একটু আগে আগে হয়ে যাবে: এই পর্যায়ে এটা তৈরি পণ্যের চেয়ে বেশি গবেষণা। প্রকল্প-নির্মাণের পুরো প্রক্রিয়া যেদিন নির্ভরযোগ্যভাবে চলবে, সেদিন সব খুলে দেব। আমাকে X-এ ফলো করুন।