اكتشف الاختصارات التي يتخذها الوكلاء قبل وصول العمل إليك.
اختبار تم تخطيه للحصول على نتيجة إيجابية، خطأ تم إخفاؤه، محتوى مؤقت تم تركه، أو فحص نوع تم تجاهله. يقوم anti-slop بفحص كل تغيير يقوم به الوكيل للبحث عن هذه الحالات ويرسله إلى وكيل المطور مع كل نتيجة.
- اختبار تم تخطيهsrc/checkout/coupon.test.ts:88
it.skip('rejects an expired coupon', …) - خطأ تم ابتلاعهsrc/checkout/apply-coupon.ts:41
} catch {}
- تم إصلاحهاختبار تم تخطيهAnti-slop
- تم إصلاحهخطأ تم ابتلاعهAnti-slop
عرض المهمة هو إعادة تصور لبوابة Coroid. المهمة والملفات والنتائج الموجودة فيه هي للتوضيح فقط.
- قواعد
- ١٠٦
- مجموعات
- ١٣
- قواعد تحظر التغيير بشكل افتراضي
- ٤٤
- نتائج موجودة تحظر التغيير
- ٠
ما الذي يبحث عنه النظام
القواعد تنقسم إلى مجموعات. كل قاعدة إما تحظر، أو تنصح، أو تسجل فقط، ويمكن للمالك تغيير ذلك على مستوى المنظمة أو المشروع.
- اختبارات
- اختبارات مركزة أو مخطاة، اختبارات محذوفة، تأكيدات تم إزالتها أو إضعافها، اختبارات لا يمكن أن تفشل، ومحاولات إعادة تشغيل تخفي اختبارًا غير مستقر.
.only.skipexpect(true).toBe(true)
- عمليات كتم
- تعطيلات تنبيهات جديدة، أخطاء نوعية تم تجاهلها، تحويلات إلى أي نوع، وكتلة كود مستبعدة من التغطية.
@ts-ignoreas anyeslint-disable
- بناء وCI
- خطوات اختبار تمت إزالتها أو سُمح لها بالفشل، تخفيض عتبات التغطية، تشغيلات اختبار تمر دون اختبارات، خطوط اتصال تم تخطيها، ومخرجات بناء تم إلحاقها.
continue-on-error: true--passWithNoTests
- أدلة اختبار
- تشغيلة اختبار لم تقم بتشغيل شيء، عدد اختبارات أقل من آخر تشغيلة ناجحة، تشغيلة جزئية تم الإبلاغ عنها ككاملة، ونتائج مخزنة تم تمريرها كتشغيلة جديدة.
Tests: 0 total--onlyChanged
- كود الإنتاج
- تنفيذات مؤقتة، كود تصحيح، ملاحظات مثل «في تنفيذ حقيقي»، تعليمات موجهة للإنسان، بيانات محاكاة، وكود إنتاج يستورد كود اختبار.
throw new Error('Not implemented')debugger;
- معالجة الأخطاء
- أخطاء تم إخفاؤها أو إخفاؤها خلف قيمة افتراضية، عمليات تحقق صلاحيات تسمح بالوصول عند فشلها، ومحاولات إعادة تشغيل بلا حد.
except: pass.catch(() => {})
- أمان
- الأسرار المشفرة بشكل ثابت، وتعطيل التحقق من بروتوكول TLS، وإزالة حواجز المصادقة، واستخدام قواعد CORS العامة مع بيانات اعتماد، بالإضافة إلى بناء استعلامات SQL من سلاسل نصية.
rejectUnauthorized: falseverify=False
- هندسة معمارية
- دورات استيراد جديدة، استيرادات عبر حدود تم تحديدها، كتل متكررة، كود لم يتم استخدامه بعد التغيير، ونسخ جديدة من أنماط تم التخلي عنها.
- تبعيات
- تغيير في المانيفست دون ملف القفل الخاص به، مكتبة ثانية لعمل تقوم به مكتبة أخرى، إصدارات غير محددة، وتحديثات لم تطلبها المواصفات.
"latest"
- تخزين مؤقت
- مفاتيح تخزين مؤقت بدون المستأجر، ذاكرات مؤقتة في الذاكرة لا تنتهي صلاحيتها، وقيم زمن بناء يجب قراءتها عند تشغيل الكود.
- تعليقات
- تعليقات تكرر السطر التالي، أو تصف التعديل، أو تحيد عنه، أو تتعارض مع الكود المجاور لها.
// Updated to// should work
- نطاق التغيير
- الملفات التي لا تشملها المواصفات، والتغييرات المتعلقة بالتنسيق فقط، وإعادة تسمية غير مطلوبة وفقًا للمهمة.
- مسار العمل الخاص بالوكيل
- ما قام به الوكيل خلال عملية التنفيذ، مثل حذف الاختبار الذي فشل فيه أو تغيير القيمة المتوقعة لتصبح ما طبعته عملية التنفيذ الفاشلة.
يتم حظر فقط ما تم إدخاله حديثًا عبر التغييرات
تحتوي معظم المستودعات بالفعل على بعض هذه الأنماط. يصنّف anti-slop كل نتيجة بحسب مصدرها، حتى لا تعرقل الديون الموجودة أعمالًا أخرى لا صلة لها بها.
- مُضاف حديثًا
- جديد في هذا التغيير. إذا اكتشف قاعدة حظر أي تغيير، يتم إرساله مرة أخرى إلى وكيل المطور.
- مُعدّل
- موجود مسبقًا، في سطر أو دالة تم تعديلها بواسطة التغيير. يتم تسجيله وإصلاحه عندما يطلب نظام التغيير ذلك.
- موجود مسبقًا
- موجود في مكان آخر ضمن المستودع. يتم تسجيله كديون تقنية في منصة Coroid، حيث يمكنك إنشاء مهمة لإصلاح ما تحدده القواعد.
نقل الكود لا يُعد إدخالاً له. أما نسخه فهو كذلك.
أنت من يحدد مدى اتساع نطاق التغيير المسموح به.
تحدد قواعد التغيير لوكيل المطور ما يمكنه تنظيفه أثناء عمله.
- جراحيفقط ما تحتاجه المواصفات. أما المشاكل الأخرى فيتم الإبلاغ عنها، ولا يتم إصلاحها.
- متوازنافتراضيكما يصلح مشاكل صغيرة في الأسطر التي تلمسها التغييرات على أي حال.
- إصلاحيكما ينظف النتائج المكتشفة داخل الدوال التي تعدلها التغييرات.
يعمل وكيل المطور وفقًا لنفس القواعد.
Anti-slop ليس مجرد حكم في النهاية؛ فالوكيل يتلقى القواعد أثناء كتابة التغيير، ولا يمكنه تجاوزها.
- يبدأ الوكيل بقواعد التغيير الخاصة بك والأنماط التي عزلتها، كل منها مع البديل الذي يجب استخدامه بدلاً منه.
- يكتشف القواعد السريعة بعد كل تعديل، ويحصل على فرصة واحدة لإصلاح النتائج التي تعيق العمل قبل تشغيل اختبارات ضمان الجودة.
- لا يمكن للوكلاء قبول نتائجهم الخاصة. عندما يذكر وكيل أن الاختبار كان خاطئًا ويقوم بتغييره، يجب على المراجع الموافقة على ذلك التغيير.
- يمكن لملف المستودع
.coroid/anti-slop.ymlإضافة قواعد واستبعاد مسارات الملفات المولدة. يتم قراءته من قاعدة التغيير، لذا لا يمكن للتغيير إضعاف قواعده الخاصة.
طبّق نفس القواعد على الوكلاء الذين تستخدمهم حاليًا.
يمكن للمهندسين الذين يعملون مع وكلائهم البرمجيين استخدام قواعد مؤسستكم أيضًا.
- AGENTS.md snippet
- قم بتنزيل قسم لتوجيهات وكلائكم، يتضمن انضباط التغييرات في المشروع والأنماط المعزولة وأهم القواعد.
- Coroid MCP server
anti_slop_rulesيصف سياستك المنشورة، وanti_slop_scanيقوم بفحص فرع من مشروع متزامن. كلاهما للقراءة فقط.- Coroid Check على طلبات السحب
- عند تفعيل عمليات التحقق pull request، يتم تشغيل نفس عملية التحقق على طلبات سحب GitHub التي يفتحها مطوروك، ويتم تمييز كل نتيجة على سطرها.
تم اختباره أولاً على كودنا الخاص.
تم بناء Coroid بواسطة شخص واحد ومئة وكيل، لذا تم تشغيل anti-slop على مستودع Coroid الخاص به قبل تشغيله على مستودعات الآخرين.
فحص لكل ملف مصدر
لقد فحصنا جميع ملفات المصدر ١١٬٥٣٦ في مستودع Coroid وكأن وكيلًا قد كتبها للتو. كشف الفحص عن 6 نمطًا اعتبرتها القواعد خاطئة. قمنا بإصلاحها، وانخفض عدد النتائج التي تسبب حظرًا من ٥٬٣٦٦ إلى ٢٬٢٥٣.
ما يظل محظورًا هو ما صُممت القواعد لاكتشافه، مثل ملاحظة تركت في كود الإشعارات: «في تنفيذ حقيقي، سيتم استرجاع رمز FCM الخاص بالمستخدم».
القواعد التي يحكم عليها النموذج
قاعدتان تطلبان من النموذج فحص سطر واحد في كل مرة: فحص وقائي للتأكد من عدم وجود ما يستبعده الكود مسبقًا، وتعليق يتعارض مع الكود المجاور له. وهما مجرد توصيات فقط. من بين ٦٠٠ أسطر مرشحة من تغييرات تم دمجها فعليًا، فقد تم رصد ليس رقمًا تم تصنيفه بشكل خاطئ، وتكلفته لا تتجاوز ٠٫٠٠١٥ US$ لكل عملية مسح.
قم بتفعيله ضمن عنصر التحكم في الجودة.
يمكن للمالكين والمسؤولين تفعيل anti-slop كإعداد افتراضي للمؤسسة أو لمشروع واحد. وستشمله دورة التشغيل التالية لذلك المشروع.
- افتح وحدة التحكم في الجودة واختر الإعداد الافتراضي للمؤسسة أو مشروعًا.
- فعّل anti-slop. فهو يضيف خمسة توقعات إلى السياسة.
- اختر قواعد التغيير والمجموعات التي تمنع تنفيذها. إذا تم إيقاف تشغيله، فسيتم الاحتفاظ ب这些 الإعدادات للمرة القادمة.
الخمسة متطلبات التي يضيفها
- الاختبارات لا تزال تثبت صحة التغيير
- لا يتم إرسال أي شيء غير مكتمل أو مخصص للاختبار فقط إلى الإنتاج
- لا يوجد دين تقني هيكلي جديد
- يبقى التغيير ضمن النطاق ويتماشى مع بنية الكود الحالية
- الحزم الجديدة حقيقية وموثوقة.
- الإعداد الافتراضي للمؤسسة3 مشاريع تتبع هذا الإعداد.2 من أصل 5
- واجهة المتجرإعداد مخصص4 من أصل 5
- موقع المستنداتيتبع الإعداد الافتراضي2 من أصل 5
- فوترة APIيتبع الإعداد الافتراضي2 من أصل 5
- تطبيق الهاتف المحموليتبع الإعداد الافتراضي2 من أصل 5
- مكافحة الفوضىتُعيد التغيير إلى المصدر إذا أدى إلى إضعاف اختبارات الوحدة، أو إخفاء الأخطاء، أو نشر عناصر نائبة، أو إضافة ديون تقنية.
- اختبارات الوحدةتكتشف اختبارات الوحدة الموجودة في المستودع وتنفذها مع كل تغيير يتم إدخاله.
- اختبارات المتصفح2 من أصل 3يختلف عن الإعداد الافتراضيتشغل سيناريوهات التصفح الخاصة بك لتقييم التغييرات المدخلة.
- الترجماتيختلف عن الإعداد الافتراضيتتحقق من ترجمة النصوص المعدلة والتأكد من تطابق العناصر النائبة وأشكال الجمع فيها.
- عمليات تفتيش المستودعتنفذ الأوامر المخصصة لديك، مثل تنسيق الكود، وقياس حجم الملفات، وتشغيل اختبارات التكامل، وفحوصات الأمان.
- ضمان جودة شاملشاملتجمع أداة ضمان الجودة أدلة ولقطات شاشة حية مقارنةً بالمواصفات المحددة؛ وعند تعطيلها، يتم تطبيق إجراءات ضمان الجودة القياسية.