| حرج | عزل بيانات الشركات يعتمد على ترويسة يرسلها المتصفح، وقواعد القاعدة (RLS) غير مكتوبة في أي مكان يُراجَع | إن كانت القاعدة تثق بالترويسة وحدها، يقرأ موظف شركة جوازات حجاج شركة منافسة | co.js، طلب الدمج 31 بلا نص SQL |
| حرج | أوامر القاعدة تُذكر بأرقامها فقط (38، 48 … 67) دون نصها | لا إعادة بناء بعد كارثة، ولا بيئة تجربة، ولا مراجعة. خطر 1447 نفسه: «شخص واحد يفهم النظام» | أوصاف طلبات الدمج 1–33 |
| حرج | شخص واحد كتب 89 من 91 تعديلاً، ويدمج طلباته بلا مراجعة، وكل دمج يصل الإنتاج فوراً للموقعين | غياب حازم أسبوعاً في أبريل يوقف المنصة لكل الشركات | git log، مراجعات الطلبات = 0 |
| حرج | لا ميدان ولا مشاعر ولا مغادرة | فيها وقعت أغلب حوادث 1447 | قائمة الأقسام في perms.js |
| عالٍ | فشل صامت: إذا فشل تحميل السكن أو النقل أو المرشدين يُصدَّر الكشف بأعمدة فارغة دون تحذير | عائلة «الكشف الفارغ بدل الفشل الصريح» من 1447 | op/pilgrims.js:63-70 |
| عالٍ | ملفات نسك لا تُحفظ كما وصلت، والأعمدة الجديدة تسقط بصمت | يخالف قاعدة «كل ملف يُحفظ كما وصل»، ولا مرجع عند نزاع مع نسك أو مورد | op/pilgrims.js (يُحفظ اسم الملف فقط) |
| عالٍ | اسم هوليداي إن مكتوب داخل طلبات عروض الطيران والتقارير | طلب عروض يخرج باسم شركة أخرى أمام شركات الطيران | ws/rfq.html:402، ws/index.html، ws/train.html |
| عالٍ | أقسام الموظفين والشؤون الإدارية مخفية من القائمة فقط في رابط إعمار، وجداولها على الأرجح بلا عمود شركة | تسرّب رواتب وهويات موظفين بين الشركات إن مُنحت صلاحية خطأً | gate.js:48-50 |
| عالٍ | حماية المتصفح (CSP) غائبة عن صفحة الدخول والموظفين والتوظيف، ومكتبة Excel قديمة فيها ثغرات | بيانات جوازات؛ نظام حماية البيانات الشخصية يطلب تدابير مناسبة | _headers، hr/ (xlsx 0.18.5) |
| عالٍ | لا نسخ احتياطي موثق ولا تجربة استعادة، وموسم التجربة 1447 داخل القاعدة الحية | ركيزة المتانة من ركائز 1448 | غير متحقق في Supabase |
| متوسط | قواعد تشغيل ثابتة في الكود: 48 لكل مرشد، مطارا جدة والمدينة فقط، بقايا Firebase وبريد شخصي في الإعدادات | شركة أخرى تحتاج إعداداتها دون تعديل برمجي | op/guides.js، op/transport.js:9-12، config.js |