00:00:00قام الرئيس التنفيذي لشركة YCombinator ببناء مجموعة أدواته الخاصة لكود Claude تسمى GStack، وهو سره
00:00:06لإنجاز ما يقرب من مائة طلب سحب (PRs) في سبعة أيام، والتي تتضمن تسعة سير عمل متخصصة،
00:00:13ووضع تصفح خفي باستخدام Playwright، وتكامل Greptile، واختبار جودة يدرك الفروق (diff-aware QA) والكثير
00:00:18غير ذلك الكثير.
00:00:19لكن تغريدة غاري الأخيرة حول مستقبل البرمجة أثارت استياء الكثير من المطورين
00:00:24حقاً.
00:00:25فماذا يعني ذلك لمستقبل GStack؟
00:00:28اشتركوا ولنكتشف ذلك.
00:00:33يشغل غاري تان منصب الرئيس التنفيذي لـ YCombinator منذ عام 2023، وقبل ذلك شارك في تأسيس شركة
00:00:39رأس مال استثماري في عام 2011.
00:00:42لذا فهو يمتلك خبرة واسعة عندما يتعلق الأمر بمراجعة العروض التقديمية ومعرفة ما
00:00:46يجعل أي تقنية جديدة فريدة من نوعها.
00:00:49وقد وضع كل تلك المعرفة في مجموعة أدوات Claude الخاصة به، والتي يمكنك
00:00:53ملاحظتها من خلال الأسماء التي أطلقها على الكثير من سير العمل لديه.
00:00:57في الواقع، دعونا نجرّب GStack.
00:00:59لكي يعمل GStack، ستحتاج إلى تثبيت Claude Code بالإضافة إلى BUN، ولكن بمجرد
00:01:03تثبيته بشكل صحيح على Claude Code عن طريق إدخال هذا النص تحديداً أو من
00:01:08خلال تحميل المهارات فقط، يجب أن تضاف هذه المعلومات إلى ملف Claude MD الخاص بك.
00:01:12ملفي كان فارغاً.
00:01:13لهذا السبب هذا هو الشيء الوحيد هنا، ولكن إذا كان لديك بعض النصوص، فسيتم إضافتها
00:01:17إليها.
00:01:18كما أنه يضع جميع المهارات ذات الصلة في دليل المهارات إذا كنت ترغب في مشاركتها مع
00:01:21زملائك في الفريق ثم يقوم بتثبيت Playwright مع المتصفح المناسب.
00:01:25الآن سأستخدم GStack لإضافة ميزة إلى تطبيق React Vite هذا لمنح
00:01:30المستخدم القدرة على تحميل صورة لتغريدة بعنوان URL محدد.
00:01:34ربما رأيتموني أضيف هذه الميزة في فيديو سابق.
00:01:37سأضع رابطاً له في الوصف إذا كنتم تريدون رؤية النتائج، ولكن
00:01:41سنرى ما إذا كان بإمكان GStack أداء المهمة بشكل أفضل.
00:01:44أولاً، سأحتاج للبدء في وضع التخطيط، ثم استخدام مهارة مراجعة الرئيس التنفيذي للخطط وتزويد GStack
00:01:49ببعض المعلومات حول الميزة.
00:01:51الآن سأقول: أضف ميزة تأخذ لقطة شاشة لتغريدة من رابط URL يقدمه
00:01:56المستخدم.
00:01:57أريد أيضاً أن يتمكن المستخدم من تخصيص الصورة وتحميلها وأريد من Claude احترام
00:02:02التنسيق والأنماط الموجودة حالياً.
00:02:03بعد الضغط على Enter، يتحقق GStack أولاً مما إذا كانت هناك أي تحديثات لتلك المهارة ثم
00:02:08يتحقق من سجل git قبل المتابعة.
00:02:10الآن، يعيد هذا الوضع التفكير في المشكلة من منظور المؤسس أو الرئيس التنفيذي ويحاول التفكير
00:02:16في أفضل نسخة ممكنة مما نحاول بناءه ويتحدى الافتراضات
00:02:20حول النطاق والقيمة.
00:02:21بمجرد الانتهاء من ذلك، يتيح لنا اختيار مدى رغبتنا في تحدي
00:02:26النطاق الأصلي.
00:02:27وهنا سأختار توسيع النطاق لأنه يحتوي على أكبر عدد من الميزات.
00:02:30ثم يتيح لنا اختيار قرار معماري حاسم.
00:02:33سأختار الموصى به لأنه الأسهل.
00:02:36وبعد ذلك يطرح بضعة أسئلة أخرى، والتي سأختار فيها مرة أخرى
00:02:39النهج الموصى به.
00:02:40والآن بعد أن انتهى، وضع خطة ضخمة تظهر وضع النطاق المختار
00:02:44وكل ما سيفعله ضمن هذا النطاق.
00:02:47وقد كتب أيضاً بعض الأشياء الخارجة عن نطاق هذه الميزة.
00:02:50وبالأسفل هنا لدينا خطة التنفيذ، التي تحتوي على مخطط معماري وقرارات
00:02:55رئيسية وخطوات مختلفة.
00:02:57هذه خطة مفصلة بشكل مذهل تشبه شيئاً قد أحصل عليه من Superpowers لو سلكت
00:03:01نفس الطريق.
00:03:02ملاحظة، هناك أيضاً مهارة مراجعة هندسة الخطط في GStack، والتي تحول Claude إلى
00:03:07مدير هندسي أو قائد تقني لوضع مخططات معمارية، وتحديد المجموعة
00:03:12التقنية، وتحديد الحالات الاستثنائية وما إلى ذلك.
00:03:15ولكن يبدو أن مهارة مراجعة الرئيس التنفيذي للخطط قد سبقت وقامت ببعض من ذلك بالفعل.
00:03:20لذا سننتقل مباشرة إلى التنفيذ.
00:03:22والآن بعد الانتهاء، يمكننا تشغيل أمر المراجعة لمراجعة الحالات الاستثنائية المفقودة،
00:03:27والعثور على الأخطاء التي قد تتخطى الفحص المستمر (CI) وبشكل أساسي رصد أي مشاكل قبل وصولها للإنتاج.
00:03:32مرة أخرى، يتحقق ذلك من وجود تحديثات جديدة داخل السكربت، ويتحقق من الفروقات (diff).
00:03:36والآن يتحقق من اكتمال المهمة قبل إعطائنا ملخصاً يفيد
00:03:40بأنه لم يتم العثور على أي مشاكل.
00:03:41والآن يمكننا تشغيل أمر الشحن (ship)، الذي يتزامن مع الفرع الرئيسي، ويجري الاختبارات
00:03:46ويحل أي مراجعات من Greptile إن وجدت.
00:03:49وهنا يمكننا أن نرى أنه قام بإنشاء طلب سحب (pull request) دون حتى أن أطلب منه ذلك.
00:03:54وفي هذه المرحلة يمكننا تشغيل أمر QA، الذي سيختبر فقط التغييرات التي
00:03:58أجريناها بناءً على الفروقات.
00:03:59وهنا نرى أنه بدأ تشغيل الخادم محلياً، وهو يتصفح الموقع لاختبار
00:04:05الميزات التي تم تنفيذها للتو باستخدام لقطات الشاشة وغير ذلك الكثير.
00:04:09لقد وجد بعض أخطاء 500 من لقطات الشاشة ووجد خطأ في معالجة JSON، والذي
00:04:15يبدو أنه قام بإصلاحه.
00:04:16ها هو ذا.
00:04:17لقد تحقق ودفع الإصلاح.
00:04:20والآن كتب تقريراً نهائياً بالمشاكل التي قام بحلها.
00:04:24هذا رائع جداً.
00:04:25حسناً.
00:04:26الآن انتهى الأمر.
00:04:27دعونا نجرب الميزة.
00:04:28والآن لدينا صفحة لقطة الشاشة.
00:04:30لنأخذ تغريدة من Tana.
00:04:32هذه مثلاً، وسأقوم بلصقها هنا.
00:04:34ليست التغريدة الأكثر إثارة، لكنها مجرد اختبار لمعرفة ما إذا كان هذا يعمل.
00:04:37ويا للهول، هذا مذهل حقاً.
00:04:40لدينا التغريدة هنا.
00:04:42يمكننا الاختيار بين الإضاءة وهو يلتقطها مرة أخرى.
00:04:44أوه، واو.
00:04:45حسناً.
00:04:46لدينا الوضع الفاتح والداكن.
00:04:47سنرى ما إذا كان قد قام بتخزينها مؤقتاً.
00:04:49لقد فعل ذلك، رائع جداً.
00:04:51يمكنني إخفاء الإجراءات وها نحن ذا.
00:04:53يمكنني إظهار وإخفاء الصور ويمكنني تغيير الخلفية.
00:04:58هذا رائع جداً.
00:04:59لدينا LinkedIn، ولدينا Twitter، والمدونة، وتدرج أرجواني، ويمكننا حتى تخصيصه
00:05:03أو تغيير زاوية التدرج.
00:05:07واو.
00:05:08هذا نظام متكامل تماماً ويمكننا تغيير نسبة العرض إلى الارتفاع.
00:05:11لدينا 9:16، 16:9، 1:1 وهكذا.
00:05:16دعونا الآن نقوم بتحميل الصورة فعلياً.
00:05:18وها هي ذي.
00:05:19إذا نقرت الآن على هذا، لقد رأيتم جميع علامات التبويب الخاصة بي.
00:05:22لدينا الصورة هنا.
00:05:23سأفتحها للمعاينة.
00:05:24وهذا هو.
00:05:25هذه هي الصورة التي التقطتها للتو بالميزة التي بنيتها بـ GStack، وهو أمر
00:05:29مثير للإعجاب للغاية، ولكن هناك المزيد مما يمكننا فعله لأننا إذا عدنا إلى طلب السحب،
00:05:34سنرى أن Greptile لديه ملخص، حيث وجد بعض استنفاد الموارد من الخادم، وحالة سباق،
00:05:40وعدم وجود انتهاء صلاحية لذاكرة التخزين المؤقت، وما إلى ذلك.
00:05:42وبدلاً من أن أطلب من Claude النظر في المشاكل وحلها، سنقوم فقط
00:05:47بتشغيل أمر المراجعة.
00:05:49لقد وجد جميع التعليقات.
00:05:50وقد أعطاني بعض الخيارات بالأسفل هنا حول كيفية إصلاحها، وسأقوم بمراجعتها.
00:05:53والآن قام بإصلاح جميع المشاكل.
00:05:55حسناً، باستثناء واحدة كانت نتيجة إيجابية خاطئة وقام بدفع الكود، ويبدو Greptile سعيداً.
00:06:00بصفتي شخصاً يستخدم Superpowers بانتظام، يمكنني بالفعل رؤية فائدة GStack، حتى
00:06:05وإن كانت بعض جوانبه معقدة للغاية.
00:06:08ولكن ماذا عن تعليق غاري على تويتر بأن Markdown هو الكود الجديد؟
00:06:13حسناً، يمكنني أن أفهم وجهة نظره نوعاً ما.
00:06:15لا أعتقد أنه يقول إن شخصاً حاصلاً على درجة في علوم الكمبيوتر قد أضاع وقته لمجرد
00:06:20أنك تستطيع كتابة Markdown وسيقوم هو بكتابة الكود.
00:06:22أعتقد أن الأمر يتعلق أكثر بالتعليمات لأن النماذج الأحدث أصبحت أفضل في
00:06:27اتباع تعليمات Markdown، ففي السابق كان يلزمني وجود ربط (hook) في Claude code
00:06:32فقط للتأكد من استخدامه لـ Bun في التثبيت بدلاً من استخدام NPM.
00:06:36ولكن الآن يمكنني وضعه في ملف Claude MD ومع نموذج جيد مثل Opus، فإنه يميل للالتزام بنسبة 90
00:06:42إلى 95% من الوقت.
00:06:44لذا أعتقد أن ما يحاول قوله هو أنه إذا كان لديك ملف Markdown مفصل بما يكفي ومنظم جيداً،
00:06:49فيمكن للنموذج إنشاء برنامج جيد بناءً على تلك التعليمات.
00:06:55لكن هذا لا يعني أن GStack هو مجرد مجموعة من تعليمات Markdown.
00:06:59كل مهارة لها دليلها الخاص، وحتى القدرة على ترقية GStack.
00:07:03وإذا ركزنا على مهارة التصفح، نرى أن هناك ملف قالب وملف
00:07:08المهارة الفعلي.
00:07:09وهذا ليس له علاقة بقوالب Go، بغض النظر عما تقوله صفحة GitHub.
00:07:14طريقة عمل هذا هي إذا ذهبنا إلى السكربتات ثم ذهبنا إلى genskill، فإن ملف TypeScript
00:07:20سيقرأ ملفات القوالب ويستبدل أي عناصر نائبة بداخلها بنصوص Markdown فعلية.
00:07:26لكنني لن أركز على كل مهارة على حدة لأنها مفصلة للغاية.
00:07:30ولكن ما سأركز عليه هو أن مهارة التصفح تحتوي على ما هو أكثر من مجرد ملف مهارة Markdown لأن
00:07:35لدينا دليل اختبار هنا ولدينا أيضاً دليل المصدر الذي يحتوي على
00:07:40التنفيذ الفعلي لإدارة المتصفح وما إلى ذلك.
00:07:42لذا يمكننا أن نرى بالفعل أن الأوامر هنا متداخلة إلى حد ما.
00:07:46ولكن إذا ألقينا نظرة على سجل التغييرات، فهذا يظهر بعض الميزات المثيرة للاهتمام مثل
00:07:49إمكانية المراقبة الشاملة، وحفظ التقييمات التراكمية وما إلى ذلك، والتي تُستخدم لتطوير
00:07:55التطبيق.
00:07:56وهو يشارك المراجعات بصيغة قائمة مهام.
00:07:58ويدعم لقطات شاشة للعناصر وقص المناطق، ناهيك عن جميع عمليات التكامل مع
00:08:03Greptile وحقيقة أنه بُني مع وضع Conductor في الاعتبار.
00:08:07لذا فإن السؤال الذي يطرح نفسه هو، هل سأستخدم GStack شخصياً؟
00:08:11سأقول في الواقع إنني سأجربه لمدة 30 يوماً.
00:08:15لذا سأقوم بحذف إضافة Superpowers وأجعل GStack أداتي البرمجية الرئيسية لإعداد
00:08:21الميزات وإصلاح الأخطاء وأرى كيف ستسير الأمور.
00:08:23من يدري؟
00:08:24ربما أقوم باستنساخ أداة Vercel مفتوحة المصدر التالية وأبدأ بعض الجدال الآخر على تويتر.