00:00:00إذا كنت تتابع القناة، فلا بد أنك على دراية بأنواع سير العمل المختلفة لهندسة السياق التي غطيناها هنا.
00:00:05حسناً، أصدرت جوجل واحدة أخرى.
00:00:07أتمنى لو أستطيع القول بأنها أفضل من سير العمل الأخرى.
00:00:10لكن الحقيقة هي أنها ليست كذلك.
00:00:11وهناك العديد من المشاكل في هذا الأمر.
00:00:13حتى لو جادلت بأنها أفضل لنظام جيميناي البيئي، فهي لا تزال غير جيدة.
00:00:17قبل أن نتعمق في سبب عدم الحاجة لإصدار هذا، دعونا نأخذ استراحة سريعة للحديث عن Automata.
00:00:22بعد تعليم الملايين من الناس كيفية البناء باستخدام الذكاء الاصطناعي، بدأنا في تطبيق سير العمل هذه بأنفسنا.
00:00:28اكتشفنا أننا نستطيع بناء منتجات أفضل بشكل أسرع من أي وقت مضى.
00:00:31نحن نساعد في إحياء أفكارك، سواء كانت تطبيقات أو مواقع ويب.
00:00:34ربما شاهدت مقاطع الفيديو الخاصة بنا وفكرت: لدي فكرة رائعة لكن ليس لدي فريق تقني لبنائها.
00:00:39وهذا بالضبط هو المكان الذي نتدخل فيه..
00:00:42فكر بنا كشريك تقني مساعد لك.
00:00:44نحن نطبق نفس سير العمل التي علمناها للملايين مباشرة على مشروعك، محولين المفاهيم إلى حلول عملية حقيقية دون صداع التوظيف أو إدارة فريق تطوير.
00:00:54هل أنت مستعد لتحويل فكرتك إلى واقع بسرعة؟ تواصل معنا على hello@automata.dev..
00:00:59الآن قبل أن أشرح السبب وراء كون هذه مجرد محاولة ضعيفة أخرى في سير عمل هندسة السياق، دعونا أولاً نتعمق في كيفية عمل Conductor فعلياً.
00:01:07هذا هو المقال وسأضع رابطاً له في الوصف أدناه.
00:01:10في النهاية، ستحصل على أمر لتثبيت هذا كإضافة في Gemini CLI.
00:01:13بالنسبة لأولئك منكم الذين لا يعرفون، الإضافات هي مجموعات من الأوامر وMCPs والقواعد الأخرى التي يتم تجميعها معاً وتحويلها إلى حزمة يمكن للناس استضافتها ومشاركتها مع الآخرين.
00:01:24كلود لديه أيضاً شيء مشابه يسمى الإضافات.
00:01:26لبدء سير العمل فعلياً، تستخدم الأمر ويتم التثبيت.
00:01:29بعد التثبيت، يمكنك استخدام أوامر الشرطة المائلة في Conductor.
00:01:33ستحصل على هذه الأوامر الخمسة التي تتحكم فعلياً في Conductor وكيفية استخدامك لسير العمل.
00:01:38الآن الأمر الأول الذي ستستخدمه هو أمر الإعداد..
00:01:41ما يفعله هذا الأمر هو أولاً التحقق مما إذا كانت ملفات Conductor الموجودة مثل حالة الإعداد والملفات الأخرى التي تخبره إذا كان المشروع قد تم تهيئته بالفعل متاحة أم لا.
00:01:51بدلاً من القصص، يقوم بإنشاء هذه الملفات المسماة مسارات ويكمل كل واحدة تلو الأخرى.
00:01:56بعد ذلك، قام بتهيئة مستودع GitHub جديد وسأل عما يجب بناؤه.
00:02:00لاختباره، قمت بإنشاء مشروع بسيط لكنني أردت اختبار ما إذا كانت البنية التي صنعها ستكون جيدة بالفعل.
00:02:06لذلك فقط لاختبار ما إذا كان سيوصي بالأشياء التي أحتاجها فعلاً، أخبرته أنه يجب أن يكون جاهزاً للإنتاج وقابلاً للتوسع لعدد أكبر من المستخدمين.
00:02:15بعد ذلك، أنشأ ملف product.md الذي يحتوي على المفهوم الفعلي لما أردت بناءه.
00:02:20لتحسينه وصياغته فعلياً، بدأ بطرح الأسئلة عليّ وفي النهاية، لأن الأسئلة لم تكن تؤدي إلى أي مكان وكانت بسيطة للغاية، طلبت منه توليد كل شيء تلقائياً.
00:02:30بعد أن وافق وحفظ دليل المنتج، أراد إنشاء ملف آخر وهو إرشادات المنتج التي كانت تركز بشكل أساسي على تنسيق المنتج وبعض مبادئ التصميم.
00:02:38كما وافق على ذلك وحفظ إرشادات المنتج أيضاً.
00:02:41بعد ذلك، حدد مجموعة التكنولوجيا وهذا أحد الأسباب التي جعلت سير العمل غير جيد.
00:02:46لقد أخطأ في مجموعة التقنيات التي كان يعرضها عليّ لأنه كان يعرف ما هو مشروعي بالكامل ولم يوصِ حقاً بما هو مناسب.
00:02:53بعد أن صححت ذلك، وافق أيضاً على مجموعة التقنيات وحدّث ملف MD هذا أيضاً.
00:02:58لديه أيضاً هذه الملفات المسماة أدلة أسلوب الكود.
00:03:01إذا دخلت إلى المجلد الفعلي، فهذه هي اللغات الوحيدة التي لديه وإذا اعتقد أننا سنستخدم أياً منها في المشروع، فإنه يضيفها إلى أدلة أسلوب الكود الخاصة بمشروعنا الحالي أثناء التهيئة.
00:03:12سير العمل الافتراضي الذي يستخدمه جيد جداً بالفعل.
00:03:16افتراضياً، يتضمن تغطية اختبار كود بنسبة 80٪ وبينما كان يقوم بإعداد الأشياء وكتابة المكونات الأساسية، كان يتأكد من كتابة الاختبارات أيضاً وبعد إكمال المهام، كان يختبرها أيضاً.
00:03:27في الوقت نفسه، كان يلتزم بالتغييرات بعد كل مهمة ويستخدم أيضاً ملاحظات git حتى نتمكن فعلياً من تتبع أين أو متى حدث خطأ ما.
00:03:35بعد إكمال الإعداد الأولي، أنشأ بعض متطلبات المنتج عالية المستوى حتى نتمكن من البدء في المسار الأولي.
00:03:41هذا هو المسار الأول الذي كان يحاول تنفيذه..
00:03:45مرة أخرى، كان هذا واسعاً جداً ويحتاج إلى تقسيمه إلى مسارات أصغر.
00:03:49كان هذا كثيراً جداً للقيام به في مسار واحد وكانت هناك احتمالات كثيرة للخطأ إذا كان يفعل الكثير في نفس الوقت.
00:03:56لذا بعد إكمال ذلك، يمكنك بدء عملك بتشغيل أمر التنفيذ وفي مجلد المسارات، لديك مسارات مختلفة ينفذها واحداً تلو الآخر.
00:04:03كل مسار لديه ملفان، plan.md وspec.md.
00:04:05يحتوي spec.md على الهدف والتفاصيل التقنية المستخرجة من مجموعة التقنيات والمعلومات التي أدخلناها في البداية.
00:04:12يحتوي plan.md فعلياً على المهام التي يحتاج إلى تنفيذها واحدة تلو الأخرى.
00:04:16عندما تستخدم أمر التنفيذ فعلياً، فإنه ينظر إلى tracks.md وبشكل أساسي ينظر إلى كل مسار حيث بناءً على الحالة، يعرف فعلياً ما يجب فعله.
00:04:25لذا إذا كان فارغاً، فهو لم يبدأ.
00:04:27هذا يعني أنه قيد التنفيذ وهذا يعني أن المسار قد اكتمل.
00:04:30وكما ترى، هذا المسار الحالي قيد التنفيذ.
00:04:32أما بالنسبة للأوامر الأخرى، فإن أمر الحالة يعطيك تقرير حالة عما يجري حالياً وأي المسارات يتم اتباعها وأيها غير مكتملة.
00:04:40إذا استخدمت أمر المسار الجديد، فسيطرح عليك الأسئلة المختلفة مرة أخرى للمهمة الجديدة.
00:04:45قمت أيضاً بتطبيقه في مستودع موجود مسبقاً وسار الأمر بنفس الطريقة تقريباً.
00:04:50كان مختلفاً قليلاً لأنه كان ينظر إلى الملفات الموجودة ويطرح عليّ أسئلة توضيحية فقط ولم يطلب مساراً جديداً..
00:04:57كان عليّ تنفيذ مسار جديد بنفسي كميزة جديدة.
00:05:00ثم هناك الرجوع، ميزة ذكية أخرى تخفف فعلياً أي ضرر وتدرك git.
00:05:04لذا فهو يستخدم git للمساعدة إذا أخطأ الوكيل في أي مكان.
00:05:07الآن، حالياً إدارة الملفات والبنية ليست سيئة للغاية.
00:05:10الطريقة التي ينفذ بها الميزات الجديدة أو المهام الموجودة في المسارات ثم يتتبعها جيدة فعلاً.
00:05:16لكن الطريقة التي كُتبت بها التعليمات أو كيفية كتابة ملفات الأوامر هذه تحتاج إلى عمل لأنها لا تدير حلقة السياق بشكل صحيح حيث يجب التحقق من كل شيء.
00:05:25وإذا كان هناك تغيير، فكيف يحتاج إلى تغيير ذلك.
00:05:28لأنه حتى خلال هذه العملية الأولية، كانت هناك الكثير من الأخطاء.
00:05:32الخطأ الأول هو أنه أثناء طلب إنشاء كل وثيقة، لم يفكك فكرتي بشكل صحيح.
00:05:36وكان عليّ إرشاده خلال الكثير من الأمور.
00:05:39عندما اعتقدت أنه كافٍ، تركته يولد بقية المحتوى تلقائياً.
00:05:42ومرة أخرى، كما ذكرت من قبل، أثناء تحديد مجموعة التكنولوجيا، فاته أيضاً الكثير من الأشياء.
00:05:48كان الخيار B جيداً.
00:05:49لكن نظراً لأنني أخبرته أنني أريد تطبيقاً قابلاً للتوسع بالكامل مع عدد كبير من المستخدمين، فاته الكثير من الأشياء التي كان عليّ توضيحها وإخباره صراحة أنه يحتاجها أيضاً ثم عدّل الخطة.
00:06:00عندما تم إنشاء المسار الأولي، دخلت فعلياً ونظرت إلى الخطة والمواصفات التي أنشأها وكان مخطط قاعدة البيانات غير مكتمل تماماً.
00:06:08لقد فاته الكثير من الأشياء التي كانت حاسمة لإعداد التطبيق وكان عليّ إرشاده مرة أخرى وتوجيهه في الاتجاه الصحيح.
00:06:15الآن، جيميناي هو في الواقع نموذج جيد حقاً.
00:06:17لذلك يجب أن أشك في أن الأوامر التي تم تنفيذها هي ما يجعله يتصرف بهذه الطريقة..
00:06:23والسبب الأكبر الذي أعتقد بسببه أنه على الرغم من أن الإعداد نفسه جيد فعلياً، إلا أن هناك الكثير من المشاكل في أوامر السلاش الرئيسية وخاصة ملف workflow.MD، لأنه أفسد جزءاً كبيراً حقاً بعد أن أخبرته أنني أريد تغيير NPM.
00:06:36وبدلاً من ذلك، أردت استخدام PNPM لأنني نسيت ذكر ذلك في وقت سابق.
00:06:40ولسبب ما، حاول عمل نسخة احتياطية أولاً..
00:06:43وأثناء القيام بذلك، ذكر أنه بحاجة إلى إزالة الملفات التي تم إنشاؤها باستخدام NPM.
00:06:48لكنه انتهى به الأمر بإزالة مجلد conductor بالكامل، والذي كان يحتوي على جميع ملفات التخطيط.
00:06:53بعد حذف ذلك، كان يبحث باستمرار عن المجلد.
00:06:55وعندما لم يتمكن من العثور عليه، قال إنه سيعيد بناء مجلد conductor باستخدام السياق الخاص به وكل ما كان لديه في ذاكرته..
00:07:02لذا في الأساس، كان عليه إعادة كتابة كل شيء على عكس ما يجب أن يفعله سير عمل السياق العادي، حيث يجب أن يؤثر التغيير فقط على ملفات السياق الرئيسية والملفات المتعلقة بتلك المهمة المحددة، وهو ما يفعله Be Mad للعمل بكفاءة.
00:07:14الآن، لو لم أطلب منه تغيير شيء بشكل مفاجئ، ربما كان سيسير الأمر بشكل جيد.
00:07:19لكن مع ذلك، عندما كان يقوم بتهيئة جميع المهام، وطلبت منه البدء في تنفيذ المسار الأول، بدأ في تهيئة المشروع والخدمات الأساسية الأخرى التي احتجتها.
00:07:27الآن عندما جاء الأمر إلى تكوين متغيرات البيئة لاتصال Supabase، لسبب ما، قام تلقائياً بوضع علامة على المهمة كمكتملة بينما كان يضع بوضوح مفتاحاً وهمياً هناك.
00:07:36لم يطلب مني حتى إعداد مشروع Supabase أو تزويده بمفتاح فعلي.
00:07:39وحاول تلقائياً دفع مخطط قاعدة البيانات.
00:07:41نظراً لعدم وجود مفتاح فعلي، فشل الأمر.
00:07:44ثم طلب مني التحقق مرة أخرى من السلسلة.
00:07:46لذا حتى المهام لا يتم تحديثها بشكل صحيح، ولم يكن يتبعها بشكل صحيح حقاً.
00:07:50بصراحة، لن أستخدم هذا الآن لتطوير المواصفات من البداية إلى النهاية.
00:07:54Be Mad هو خيار أفضل بكثير.
00:07:55وبالنسبة للمشاريع الصغيرة، ما زلت أصنع ملفات السياق الخاصة بي.
00:07:59هذا يقودنا إلى نهاية هذا الفيديو.
00:08:01إذا كنت ترغب في دعم القناة ومساعدتنا في الاستمرار في صنع مقاطع فيديو مثل هذه، يمكنك القيام بذلك باستخدام زر Super Thanks أدناه.
00:08:08كالعادة، شكراً لك على المشاهدة وسأراك في الفيديو التالي..