سير عمل تنفيذي لمراجعة طلبات الدمج (Pull Requests) قبل دخولها الفرع الرئيسي، مبني كخطوات تشغيل قابلة للتطبيق لا كنص عام. يبدأ بفهم نية التغيير ونطاقه، ثم مراجعة الـ diff ملفًا ملفًا (المنطق، الحالات الحدية، معالجة الأخطاء، التوافق مع العقود القائمة)، ثم فحص الأمان والبيانات (المدخلات غير الموثوقة، الأسرار، الصلاحيات، الحقن، تسريب البيانات)، ثم فحص الاختبارات وتشغيلها، وينتهي بتصنيف الملاحظات حسب الخطورة (حرِج/مهم/تحسين) وربط كل ملاحظة بموقع «ملف:سطر» واقتراح إصلاح، ثم بوابة قرار دمج صريحة بثلاث نتائج. يتضمن نقاط توقف واضحة: إذا فشلت الاختبارات أو كان الـ PR ضخمًا يخلط أهدافًا غير مترابطة أو نقصت معلومة حاسمة. مناسب للمراجعين والمطوّرين وقادة الفرق الذين يريدون مراجعة متسقة لا تعتمد على الحدس، وقابل للتحويل إلى checklist داخل أدوات الوكيل مثل Claude Code وCursor وCodex.
تقرير مراجعة عربي منظّم: ملخص التغيير في ثلاثة أسطر، جدول ملاحظات (خطورة، ملف:سطر، المشكلة، الإصلاح المقترح)، قسم أمان، حالة الاختبارات، ثم قرار دمج واحد صريح «دمج/دمج بعد إصلاحات/حظر» مع سببه.
ملخص: يضيف الـ PR تحديث رمز الوصول (token refresh) في مسار تسجيل الدخول، ويعدّل 3 ملفات في طبقة المصادقة، ولا يغيّر قاعدة البيانات.
جدول الملاحظات:
- حرِج | auth/refresh.ts:42 | يُقبل رمز منتهي الصلاحية لأن التحقق من exp يقارن بالثواني مقابل الميلي ثانية | وحّد وحدة الزمن (استخدم Date.now()/1000) وأضف اختبارًا لرمز منتهٍ.
- مهم | auth/refresh.ts:70 | لا تُعالَج حالة فشل الشبكة عند تجديد الرمز فيبقى المستخدم في حلقة إعادة محاولة | أضف مهلة ومعالجة خطأ صريحة مع رسالة للمستخدم.
- تحسين | auth/session.ts:15 | تكرار منطق قراءة الكوكي في موضعين | استخرجه إلى دالة واحدة.
الأمان: لا أسرار مكشوفة، لكن يُسجَّل الرمز كاملًا في السطر auth/refresh.ts:55 — احذف الرمز من السجل.
الاختبارات: لا تغطي حالة الرمز المنتهي؛ تشغيل npm test ينجح حاليًا لكنه لا يثبت الإصلاح المطلوب.
قرار الدمج: حظر الدمج — بسبب الملاحظة الحرِجة في التحقق من انتهاء الصلاحية وتسجيل الرمز في السجل. أعد المراجعة بعد الإصلاح وإضافة الاختبار.