كيف بنيت أول workflow لـ Dark Factory

في المنشور السابق كتبت عن OpenSecondBrain — طبقة الذاكرة التي يعتمد عليها وكلاء الذكاء الاصطناعي. الذاكرة نصف القصة فقط. النصف الآخر هو العملية نفسها: من يفعل ماذا، ومن يراجع من، وما الذي يُعدّ “منجزًا”، وكيف يبدأ كل هذا بجملة واحدة في الدردشة.

اليوم أطلقت أول نسخة عاملة: workflow باسم new-project. أُحضِر فكرة إلى Telegram، وعند النهاية أحصل على مشروع متكامل بوثائق وتصميم وخطة وصفحة عامة حقيقية.

كيف يبدو الأمر من الخارج

أُحضِر فكرة. مثلاً: “أحتاج صفحة هبوط مؤلفة من صفحة واحدة لاستوديوي الصغير”.

ثم أُجيب على جولات قصيرة من الأسئلة المُركّزة. أولًا، العصف الذهني نفسه: من الجمهور، وما الذي يجب إبرازه، وأي ستاك أُفضّل، وكيف ينبغي أن يكون الإحساس. بعد ذلك، على امتداد كل مرحلة، عدة جلسات قصيرة أخرى من 4–5 أسئلة: كل ما يفتقده مؤلف الوثيقة الحالية حتى لا يضطر إلى الاختلاق.

كل ما تبقى تفعله المصنع. في هذا الوقت يمكنني الانشغال بشؤوني الخاصة.

لوحة kanban ببطاقات حية

أكثر الأجزاء وضوحًا في كل هذا هو لوحة kanban. حين أقول “نعم” على الخطة النهائية، يُنشئ المنسّق 13 بطاقة عليها دفعةً واحدة، بطاقة لكل مرحلة عمل. من هناك يحدث كل شيء أمام عيني.

تتحرك البطاقات وحدها. تضيء الأولى، تظهر عليها علامة running، وأعلم أن أحد الـ subagents قد التقطها. بعد دقائق قليلة تنزلق البطاقة إلى done وتضيء التالية. بين كل مرحلتين منتجتين توجد دائمًا بطاقة مراجعة، ويجب أن يأخذها subagent مختلف: من كتب الوثيقة لا يراجع عمله أبدًا.

أحيانًا تفشل المراجعة. عندها تنتقل بطاقة المراجعة إلى blocked، وتظهر بجانبها fix-task جديدة للمؤلف نفسه، وينتظر كامل الجزء التالي بصمت. حين يُصلح المؤلف ويُغلق fix-task، تستيقظ المراجعة وتقرأ القطعة من جديد. قد تمر. قد تُعيدها. حدّ أقصى جولتان، ثم تتصاعد إليّ.

في النهاية أنظر إلى اللوحة كأنها تتبع طرد: الآن يجمّعون، الآن يغلّفون، الآن يشحنون. باستثناء أنه ليس ساعي بريد — بل عدّة subagents يعملون في الوقت نفسه على أجزاء مختلفة من مشروعي.

ما الذي يخرج في النهاية

في نهاية العملية لديّ:

تنفيذ الميزة نفسها مهمة workflow آخر، التالي. هدف هذا الأول هو إيصال الفكرة إلى حالة “كل شيء موصوف، وكل شيء متّفق عليه، وللمشروع عنوانه الخاص”. بعد ذلك يمكن استئجار المصنع للتطوير الحقيقي.

ما كان صعبًا

أجريت عدّة جولات تصحيح. في كل مرة كان يطفو على السطح خطأ مضحك خاص بها: subagent يحاول ترتيب مجلد العمل الخاص به فيقتل جلسة shell الخاصة به؛ أو يبدأ بتنفيذ الميزة في منتصف مرحلة، رغم أن التنفيذ ليس جزءًا من هذا الـ workflow ويخصّ التالي. بين الجولات كنت أُصحّح المهارة (skill) وأُعيد التشغيل. بحالته الحالية، تسير الدورة نظيفةً من البداية إلى النهاية.

على الطريق، نَمَت الذاكرة أيضًا

في المنشور السابق وعدت بأن OpenSecondBrain هو النصف الآخر من القصة. منذ ذلك الحين نضج هذا النصف كثيرًا، وللمصنع نفسه هذا مهم.

التغيير الرئيس: صار لدى OpenSecondBrain طبقة “ذاكرة رصد”. في السابق كنت أكتب فيه يدويًا، كأنه يوميات. الآن يلتقط الـ subagents تفضيلاتي أثناء العمل (أمور مثل “تُكتب الـ commits بصيغة الأمر” أو “لا تستخدم اختصارات داخلية دون شرح”)، ويُلقون الملاحظات في صندوق وارد، ومرّة يوميًا يُشغّل وكيل Hermes أمر dream — تمريرة في الخلفية تُرقّي الملاحظات المتكرّرة إلى قواعد. تُحمَّل هذه القواعد تلقائيًا في بداية كل جلسة لاحقة، ولم أعد أُكرّر نفسي عشرين مرّة.

إضافة إلى ذلك: بحث نصّي كامل عبر قاعدة معرفة OpenSecondBrain بأكملها، ونسخ احتياطي وعودة إلى الوراء قبل كل تمريرة dream، وطبقة منفصلة تسجّل كل عملية مدفوعة (ما الذي دُفع، ولماذا، وبماذا يرتبط)، وحماية مفروضة آليًّا تمنع وكيلًا من الكتابة فوق قواعد وكيل آخر بالخطأ. كل هذا هو ما يجعل المصنع ممكنًا: حين يكتب subagent ملف DESIGN.md، فإنه يرى بالفعل تفضيلاتي المتراكمة بشأن التايبوغرافي والواجهة. ذكرتها مرّة واحدة في الدردشة، فثبّتها OpenSecondBrain، وهي الآن تسافر مع كل مشروع جديد دون تذكيرات.

ما التالي

new-project ليس سوى bootstrap. التالي سيكون new-feature — workflow يأخذ مشروعًا قائمًا مع وثائقه ويُوصل الميزة التالية إلى الإنتاج. والثالث، bugfix: فرز، إعادة إنتاج، إصلاح، تحقّق، شحن. هذه الكتيبات الثلاثة معًا تشكّل نسختي من Dark Factory لشخص واحد: أُحضِر فكرة أو تقرير خلل، وتخرج ميزة تعمل.

الوصول إلى المصنع الكامل ما زال أمامنا. لكن أول قطعة جاهزة وتسير باستقرار.

نشر كل هذا كمصدر مفتوح ما زال مبكرًا: في هذه المرحلة هو أقرب إلى البحث منه إلى منتج جاهز. حالما تعمل عملية بناء المشاريع كاملةً بشكل موثوق، سأفتح كل شيء. تابعوني على X.