Agent Match
مُختبَر · تكامل مستمر ناجح · غير منشور، لا مستخدمين · مستودع خاص
الملخص
يرتّب Agent Match وكلاء التأجير المرخّصين لعقار واحد محدد، مستندًا إلى أدلة تستطيع المنصة التحقق منها: حالة الترخيص، وتاريخ العروض قرب العقار، ومدى الثقة في ربط كل عرض بالوكيل. وأكثر ما يُستفاد منه هندسيًا هو ما يرفض فعله. فهو لا يدمج وكيلَين على أساس تطابق في الاسم، ولا يعرض درجة دون بيانات كافية خلفها، ولا يحتسب بيانات لا يملك حق استخدامها.
المشكلة والمستفيدون
يرى المالكون الذين يبحثون عن وكيل تأجير إعلانات وتقييمات بالنجوم وادعاءات ذاتية في الغالب. يطرح Agent Match سؤالًا أضيق: أي الوكلاء المرخّصين لديهم نشاط تأجير يمكن التحقق منه قرب هذا العقار، وإلى أي حد يمكن الوثوق بهذا الدليل؟
المالكون الذين لديهم عقار للإيجار في ستاتن آيلاند ويريدون وكيلًا مرخّصًا؛ والوكلاء الذين يستطيعون المطالبة بملفهم الشخصي وإدارته؛ والمشرفون الذين يراجعون مطابقات الهوية غير المؤكدة. لا نسخة مستضافة ولا مستخدمين.
دوري
عمل فردي. امتلكت تعريف المنتج، ونموذج الأدلة، وقرارات مصادر البيانات وحقوقها، ومراجعة كل تغيير. كان التنفيذ بمساعدة الذكاء الاصطناعي تحت توجيهي عبر 59 إيداعًا بين 2026-07-30 و2026-09-07، مع تسجيل نتائج الاختبارات وفحص الأنواع والبناء في أثناء العمل.
البنية
2 · التقييم على تلك المجموعة المحدودة←PostgreSQL 17 + PostGISPrisma 6 · 20 ترحيلة
المخطط مرسوم من الشيفرة. محرّك التقييم حزمة منفصلة لا تعتمد على قاعدة بيانات ولا على إطار عمل، لذا تُختبَر كل قاعدة فيه اختبار وحدة كدالة خالصة. ويملك تطبيق الويب الحفظ ويحوّل الدرجات إلى مستويات الأدلة الثلاثة التي يراها المالك.


القرارات والمفاضلات
- لا دمج لشخصَين على أساس الاسم أبدًا. تُوزَن إشارات الهوية في إعداد واحد: رقم الترخيص أو معرّف مرتبط مسبقًا يسجّل 100، والبريد الإلكتروني المُتحقَّق منه 90، والهاتف 85، أما الاسم المطابق تمامًا فـ 30 فقط والوساطة المشتركة 25. يحتاج الربط التلقائي إلى 85 والمراجعة إلى 40، فالاسم وحده لا يبلغ أيًّا منهما؛ وأي مرشحَين يفصل بينهما 10 نقاط أو أقل يذهبان دائمًا إلى المراجعة. والتكلفة حقيقية ومقبولة: في الاستيراد الفعلي في أغسطس 2026 سجّلت المطابقات المعقولة نحو 65 وبقيت في طابور المراجعة، فلا يوجد عرض حتى الآن له وكيل أكّده إنسان.
- قول «بيانات موثقة محدودة» بدل عرض رقم. تُقلَّص الدرجات نحو قيمة أولية حيادية بحسب حجم العينة، فلا تستطيع عمليتا تأجير محظوظتان أن تتفوقا على سجل طويل، ولا يحصل وكيل بثقة منخفضة جدًا ودون أدلة محلية على أي درجة أصلًا. وتُجمَّع النتائج في أداء تأجير مُتحقَّق منه، ونشاط محلي مُتحقَّق منه، ووكلاء مرخّصين قريبين، وهو ما أصلح أيضًا خطأً سابقًا كان يمنع الإصدار حين كانت التصفية الأمينة تعيد صفر نتائج. وعُثر خلال الاختبار على خطأ ذي صلة وأُصلح: كانت صفحة الملف الشخصي تختلق درجة أداء لوكلاء بلا عمليات تأجير مكتملة.
- نقل الجغرافيا إلى قاعدة البيانات، ثم قياس مخطّط الاستعلامات. يعمل البحث عن المرشحين كاستعلام مسافة في PostGIS بدل تحميل كل العروض. ووفق ملاحظات المشروع نفسه من يوليو 2026 (الإيداع c8277ff)، أظهر EXPLAIN ANALYZE أن المخطّط توقّع نحو صف مطابق واحد بينما كانت كل الصفوف تقريبًا مطابقة، فاختار ربطًا بحلقات متداخلة: 1.8 ثانية و15.6 مليون زوج من الصفوف. وتعطيل الحلقات المتداخلة لتلك المعاملة وحدها أنتج ربطًا بالتجزئة في 25 مللي ثانية. والمفاضلة هنا تلميح للمخطّط، أُبقي أضيق ما يمكن ووُثّق.
- وضع حقوق البيانات في الشيفرة. لكل مصدر سياسة استخدام صريحة. وتكامل MLS (المحوّل ومهام المزامنة وقواعد الهوية وواجهات المشرفين) مكتمل لكنه محجوز ببوابتَين، علم ميزة وأهلية التقييم، فحتى علم مُعدّ خطأً لا يستطيع احتساب بيانات لا يملك المشروع اتفاقية لاستخدامها.
نتائج مُتحقَّق منها
| المقياس | النتيجة | الدليل |
|---|---|---|
| اختبارات الوحدة للحزم | 181 ناجحًا (محوّلات البيانات 63، والهوية 77، والتقييم 41) | تشغيل التكامل المستمر 34135525138، main aa62fd6، 2026-09-07؛ وأُعيد التشغيل على نسخة جديدة في 2026-10-24 |
| اختبارات تطبيق الويب على قاعدة اختبار PostGIS معزولة | 116 ناجحًا في 16 ملفًا | تشغيل التكامل المستمر نفسه وإعادة تشغيل محلية. معظمها يستعلم قاعدة البيانات؛ وقليل منها يغطي دوالًا مساعدة خالصة مثل سلامة إعادة التوجيه |
| اختبارات المتصفح الشاملة (Playwright، تاريخية) | 64 ناجحًا: 32 اختبارًا على Chromium لسطح المكتب والجوال | تشغيل التكامل المستمر 34135525138 فقط (2026-09-07)، على قاعدة البذرة الاصطناعية. لم يُعَد تشغيلها منذ ذلك |
| التكامل المستمر على main | فاشل منذ 2026-08-03 ← ناجح | الإيداع 7a150cf: كانت صفحات المشرفين تدور بين /admin و/login للمسجّلين من غير المشرفين. وكان اختبار شامل موجود يصف السلوك المقصود أصلًا |
| الاستعلام الجغرافي الأساسي (تاريخي) | 1.8 ثانية ← 25 مللي ثانية | مسجّل في وثائق التقييم في المشروع مع الإيداع c8277ff (2026-07-30): EXPLAIN ANALYZE قبل وبعد على مجموعة البيانات الاصطناعية. لم يُعَد إنتاجه لهذه الصفحة |
| مجموعة البيانات التجريبية الاصطناعية | 104 وكلاء، و3,954 عرضًا، وبذرة حتمية | تشغيل محلي 2026-10-24؛ أسماء خيالية، وعناوين example.com، وأرقام محجوزة من النطاق 555-01xx |
القيود والعمل المتبقي
- غير منشور، لا مستخدمين. لم يُشغَّل مسار Docker Compose قط؛ واستخدم التطوير PostgreSQL 17 + PostGIS مهيّأة يدويًا.
- كان الاستيراد الفعلي في أغسطس 2026 (2,279 وكيلًا مرخّصًا، و4,399 عرضًا، و360 وساطة من سجلات الترخيص العامة وواجهة برمجية للعروض) في قاعدة بيانات محلية فُقدت لاحقًا. وتلك الأرقام من سجلات المشروع نفسه ولا يمكن إعادة التحقق منها؛ واستعادتها تعني إعادة تشغيل عمليات الاستيراد بمفتاح للواجهة البرمجية للعروض.
- لا يوجد عرض له هوية وكيل أكّدها إنسان حتى الآن. فالسجلات الحقيقية لا تشترك إلا في الاسم والوساطة والرمز البريدي، وهذا بحكم التصميم لا يكفي للربط التلقائي.
- اكتُشف في أثناء إعداد هذه الصفحة: تقيّم بطاقة النتائج الوكيل من العروض داخل نصف قطر البحث، بينما يستخدم الملف الشخصي تاريخ الوكيل كاملًا. وكلاهما يستخدم تسمية «أداء التأجير المُتحقَّق منه»، فقد يعرض الوكيل الواحد رقمَين مختلفَين في موضعَين. لم يُصلَح بعد.
- محوّل MLS مبني على معيار البيانات المنشور لكنه لم يرَ استجابة حقيقية قط. ويبقى معطّلًا حتى توجد اتفاقية بيانات.
- يُعاد حساب الإحصاءات من العروض الخام عند كل طلب؛ والجداول المحسوبة مسبقًا موجودة لكنها غير موصولة. ومن المفتوح أيضًا: CAPTCHA عند التسجيل، ومراقبة الأخطاء، وأدوات دمج الوكلاء المكرّرين، وحلّ الأسماء البديلة للوساطات، وتخزين الكائنات للصور، والتحقق من الهاتف.