الدليل العملي
من مستودع بلا توثيق إلى مجموعة اختبارات موثِّقة
حوّل كودًا لا يفهمه أحد إلى اختبارات تقول ما يُفترض أن يفعله، وهذا توثيق يفشل حين يكذب.
5 مراحل تشغيلات غير مراقَبة عدة خلال أسبوع Claude Code · واجهة Gemini البرمجية مكتمل
كل مرحلة تسمّي ما يدخلها وما تفعله ولماذا تقع هنا وما يخرج منها، والسلسلة تقول أين تنكسر.
لم يشغّل benchr هذه القدرات بنفسه. كل مرحلة تشير إلى سجل يصف ما يوثّقه مزوّد، مقروءًا في التاريخ المذكور.
- تبدأ بـ
- المستودع كله في ملف واحد، وعدد توكناته، والأسئلة التي تريد أجوبتها، سؤالًا واحدًا في كل تمريرة
- لماذا هذه المرحلة
- احسب التوكنات قبل التمريرة الأولى. نافذة المليون على نماذج Gemini الموثّقة سقفٌ لما يمكن إرساله، لا وعدٌ باسترجاع صالح عبرها كلها؛ فالسجل يذكر حجم النافذة، ويذكر منفصلًا أن الاسترجاع الصالح عبر النافذة كلها مسألة أخرى، لا عتبة منشورة لها في أي نموذج بعينه. والمستودع الذي لا يتّسع تُرسم خريطته مجلّدًا فرعيًا في كل تمريرة، وتجمع الخرائط بنفسك.
- افعل هذا
- اسأل سؤالًا واحدًا في كل تمريرة لرسم الوحدات ونقاط الدخول والسطح غير المختبَر.
- تنتهي بـ
- خريطة لما هو موجود ولما هو بلا اختبارات
- تبدأ بـ
- وحدة واحدة من الخريطة، وأمر الاختبار بنصّه
- لماذا هذه المرحلة
- هذه المرحلة قائمة على سطرين في ملف القواعد: أمر الاختبار كما يُشغَّل تمامًا، أمرًا لا وصفًا، وقائمة الملفات التي لا تُمسّ. فإن سقطت الثانية صار أمام وكيلٍ طُلبت منه مجموعة خضراء طريقان إلى الأخضر: أن يكتب اختبارات تنجح، أو أن يعدّل الوحدة حتى تنجح اختباراته، وليس في الطلب ما يفرّق بينهما. والملف يذكر الحدّ ولا يفرضه؛ فالضابط هو الفرع والبوابة لا الملف.
- افعل هذا
- اكتب اختبارات توصيف تسجّل السلوك الحالي قبل تغيير أي شيء.
- تنتهي بـ
- مجموعة خضراء تثبّت سلوك اليوم
- 03
الإعطاب المتعمَّد
عملك أنت- تبدأ بـ
- المجموعة الخضراء، والوحدة التي يؤلمك الخطأ فيها أكثر من غيرها
- لماذا هذه المرحلة
- المجموعة خرجت من الكود نفسه، فهي توافقه بحكم نشأتها، ولم يمرّ عليها لون غير الأخضر. وموضع هذه المرحلة غير قابل للتفاوض: فشكل اختبار لا يمسك شيئًا هو الشكل الذي تغلّفه في المرحلة التالية عُرفًا للتشغيلات اللاحقة. وهي كذلك ما لا تنوب عنك فيه بقية السلسلة: الخريطة تعدّ الوحدات ولا ترتّبها، فاختيار أثقلها عليك قرارك أنت، والحكم بأن الاختبار الأحمر سمّى السلوك الذي انكسر أم اكتفى بالاحمرار حكمُك لا رمزُ خروج.
- افعل هذا
- غيّر سلوك الوحدة بيدك: اقلب شرطًا، أو احذف حقلًا، أو أعِد وحدة قياس خاطئة. ثم شغّل الاختبارات وانظر هل تفشل، وهل تسمّي رسالة الإخفاق ذلك السلوك، ثم أعد الكود إلى ما كان. وكرّرها في المواضع التي يؤلمك الخطأ فيها أكثر.
- تنتهي بـ
- قائمة بالتغييرات التي مرّت دون أن تمسكها المجموعة
- تبدأ بـ
- الاختبارات التي أمسكت تغييرًا فعلًا، وما تتبعه من تسمية وترتيب وتهيئة
- لماذا هذه المرحلة
- ما يوضع داخل المهارة هو ما يقرّر صمودها. وكل ما هو حتمي — أمر الاختبار، وترتيب التهيئة، وفحص التسمية — موضعه سكربت مرفق لا نثر: السكربت يعمل عبر bash فلا يدخل كوده نافذة السياق بل مخرجاته وحدها، والسكربت لا ينحرف كما ينحرف العُرف المكتوب نثرًا.
- افعل هذا
- غلّف أعراف الاختبار في المستودع مهارةً كي تتبعها كل تشغيلة لاحقة.
- تنتهي بـ
- مهارة تحمّلها وكلاء الفريق كلهم
- تبدأ بـ
- المهارة، وملف CLAUDE.md في جذر المستودع، والوحدات التي ما زالت بلا اختبارات في الخريطة
- لماذا هذه المرحلة
- التعليمة المجدولة الواحدة ليست طلبًا واحدًا؛ فهي تتمدّد إلى قراءة وتخطيط وتعديل وتشغيل اختبارات وقراءة إخفاق وتعديل من جديد، والحدّ يعدّ هذه النداءات لا تعليمتك. لذلك يقع داخل الحلقة لا بين الوحدات، ويأخذ معه كل ما لم تلتزمه التشغيلة بعد. والالتزام بين الوحدات هو ما يقرّر أن تكلّفك المقاطعة وحدةً واحدة أو كل ما جرى منذ آخر التزام.
- افعل هذا
- جدوِل التشغيل وحدةً وحدة وراجع كل فرع على حدة.
- تنتهي بـ
- فرع واحد قابل للمراجعة لكل وحدة
ما الذي يخطئ هنا