اكتشف الاختصارات التي يتخذها الوكلاء قبل وصول العمل إليك.

اختبار تم تخطيه للحصول على نتيجة إيجابية، خطأ تم إخفاؤه، محتوى مؤقت تم تركه، أو فحص نوع تم تجاهله. يقوم anti-slop بفحص كل تغيير يقوم به الوكيل للبحث عن هذه الحالات ويرسله إلى وكيل المطور مع كل نتيجة.

مهمةتطبيق أكواد القسائم عند إتمام عملية الشراءقيد المراجعة
بوابات الجودة
مطور بوابة الجودةحاول تنفيذ 2تمت الموافقة
Anti-slop
لا دينونة برمجية جديدةتمت الموافقة
0 تعيق العمل · تم إدخال 0 · تم تعديل 1 · موجودة من 14
مطور بوابة الجودةحاول تنفيذ 1محجوب · تم إرساله إلى مطور
Anti-slop
لا دينونة برمجية جديدةتحتاج إلى إصلاح
2 تعيق العمل · تم إدخال 2 · تم تعديل 1 · موجودة من 14
  • اختبار تم تخطيهsrc/checkout/coupon.test.ts:88it.skip('rejects an expired coupon', …)
  • خطأ تم ابتلاعهsrc/checkout/apply-coupon.ts:41} catch {}
مشكلات تم العثور عليها
  • تم إصلاحهاختبار تم تخطيهAnti-slop
  • تم إصلاحهخطأ تم ابتلاعهAnti-slop

عرض المهمة هو إعادة تصور لبوابة Coroid. المهمة والملفات والنتائج الموجودة فيه هي للتوضيح فقط.

قواعد
١٠٦
مجموعات
١٣
قواعد تحظر التغيير بشكل افتراضي
٤٤
نتائج موجودة تحظر التغيير
٠

ما الذي يبحث عنه النظام

القواعد تنقسم إلى مجموعات. كل قاعدة إما تحظر، أو تنصح، أو تسجل فقط، ويمكن للمالك تغيير ذلك على مستوى المنظمة أو المشروع.

اختبارات
اختبارات مركزة أو مخطاة، اختبارات محذوفة، تأكيدات تم إزالتها أو إضعافها، اختبارات لا يمكن أن تفشل، ومحاولات إعادة تشغيل تخفي اختبارًا غير مستقر.
  • .only
  • .skip
  • expect(true).toBe(true)
عمليات كتم
تعطيلات تنبيهات جديدة، أخطاء نوعية تم تجاهلها، تحويلات إلى أي نوع، وكتلة كود مستبعدة من التغطية.
  • @ts-ignore
  • as any
  • eslint-disable
بناء وCI
خطوات اختبار تمت إزالتها أو سُمح لها بالفشل، تخفيض عتبات التغطية، تشغيلات اختبار تمر دون اختبارات، خطوط اتصال تم تخطيها، ومخرجات بناء تم إلحاقها.
  • continue-on-error: true
  • --passWithNoTests
أدلة اختبار
تشغيلة اختبار لم تقم بتشغيل شيء، عدد اختبارات أقل من آخر تشغيلة ناجحة، تشغيلة جزئية تم الإبلاغ عنها ككاملة، ونتائج مخزنة تم تمريرها كتشغيلة جديدة.
  • Tests: 0 total
  • --onlyChanged
كود الإنتاج
تنفيذات مؤقتة، كود تصحيح، ملاحظات مثل «في تنفيذ حقيقي»، تعليمات موجهة للإنسان، بيانات محاكاة، وكود إنتاج يستورد كود اختبار.
  • throw new Error('Not implemented')
  • debugger;
معالجة الأخطاء
أخطاء تم إخفاؤها أو إخفاؤها خلف قيمة افتراضية، عمليات تحقق صلاحيات تسمح بالوصول عند فشلها، ومحاولات إعادة تشغيل بلا حد.
  • except: pass
  • .catch(() => {})
أمان
الأسرار المشفرة بشكل ثابت، وتعطيل التحقق من بروتوكول TLS، وإزالة حواجز المصادقة، واستخدام قواعد CORS العامة مع بيانات اعتماد، بالإضافة إلى بناء استعلامات SQL من سلاسل نصية.
  • rejectUnauthorized: false
  • verify=False
هندسة معمارية
دورات استيراد جديدة، استيرادات عبر حدود تم تحديدها، كتل متكررة، كود لم يتم استخدامه بعد التغيير، ونسخ جديدة من أنماط تم التخلي عنها.
تبعيات
تغيير في المانيفست دون ملف القفل الخاص به، مكتبة ثانية لعمل تقوم به مكتبة أخرى، إصدارات غير محددة، وتحديثات لم تطلبها المواصفات.
  • "latest"
تخزين مؤقت
مفاتيح تخزين مؤقت بدون المستأجر، ذاكرات مؤقتة في الذاكرة لا تنتهي صلاحيتها، وقيم زمن بناء يجب قراءتها عند تشغيل الكود.
تعليقات
تعليقات تكرر السطر التالي، أو تصف التعديل، أو تحيد عنه، أو تتعارض مع الكود المجاور لها.
  • // Updated to
  • // should work
نطاق التغيير
الملفات التي لا تشملها المواصفات، والتغييرات المتعلقة بالتنسيق فقط، وإعادة تسمية غير مطلوبة وفقًا للمهمة.
مسار العمل الخاص بالوكيل
ما قام به الوكيل خلال عملية التنفيذ، مثل حذف الاختبار الذي فشل فيه أو تغيير القيمة المتوقعة لتصبح ما طبعته عملية التنفيذ الفاشلة.

يتم حظر فقط ما تم إدخاله حديثًا عبر التغييرات

تحتوي معظم المستودعات بالفعل على بعض هذه الأنماط. يصنّف anti-slop كل نتيجة بحسب مصدرها، حتى لا تعرقل الديون الموجودة أعمالًا أخرى لا صلة لها بها.

مُضاف حديثًا
جديد في هذا التغيير. إذا اكتشف قاعدة حظر أي تغيير، يتم إرساله مرة أخرى إلى وكيل المطور.
مُعدّل
موجود مسبقًا، في سطر أو دالة تم تعديلها بواسطة التغيير. يتم تسجيله وإصلاحه عندما يطلب نظام التغيير ذلك.
موجود مسبقًا
موجود في مكان آخر ضمن المستودع. يتم تسجيله كديون تقنية في منصة Coroid، حيث يمكنك إنشاء مهمة لإصلاح ما تحدده القواعد.

نقل الكود لا يُعد إدخالاً له. أما نسخه فهو كذلك.

أنت من يحدد مدى اتساع نطاق التغيير المسموح به.

تحدد قواعد التغيير لوكيل المطور ما يمكنه تنظيفه أثناء عمله.

  1. جراحيفقط ما تحتاجه المواصفات. أما المشاكل الأخرى فيتم الإبلاغ عنها، ولا يتم إصلاحها.
  2. متوازنافتراضيكما يصلح مشاكل صغيرة في الأسطر التي تلمسها التغييرات على أي حال.
  3. إصلاحيكما ينظف النتائج المكتشفة داخل الدوال التي تعدلها التغييرات.

يعمل وكيل المطور وفقًا لنفس القواعد.

Anti-slop ليس مجرد حكم في النهاية؛ فالوكيل يتلقى القواعد أثناء كتابة التغيير، ولا يمكنه تجاوزها.

  1. يبدأ الوكيل بقواعد التغيير الخاصة بك والأنماط التي عزلتها، كل منها مع البديل الذي يجب استخدامه بدلاً منه.
  2. يكتشف القواعد السريعة بعد كل تعديل، ويحصل على فرصة واحدة لإصلاح النتائج التي تعيق العمل قبل تشغيل اختبارات ضمان الجودة.
  3. لا يمكن للوكلاء قبول نتائجهم الخاصة. عندما يذكر وكيل أن الاختبار كان خاطئًا ويقوم بتغييره، يجب على المراجع الموافقة على ذلك التغيير.
  4. يمكن لملف المستودع .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 كإعداد افتراضي للمؤسسة أو لمشروع واحد. وستشمله دورة التشغيل التالية لذلك المشروع.

  1. افتح وحدة التحكم في الجودة واختر الإعداد الافتراضي للمؤسسة أو مشروعًا.
  2. فعّل anti-slop. فهو يضيف خمسة توقعات إلى السياسة.
  3. اختر قواعد التغيير والمجموعات التي تمنع تنفيذها. إذا تم إيقاف تشغيله، فسيتم الاحتفاظ ب这些 الإعدادات للمرة القادمة.

الخمسة متطلبات التي يضيفها

  • الاختبارات لا تزال تثبت صحة التغيير
  • لا يتم إرسال أي شيء غير مكتمل أو مخصص للاختبار فقط إلى الإنتاج
  • لا يوجد دين تقني هيكلي جديد
  • يبقى التغيير ضمن النطاق ويتماشى مع بنية الكود الحالية
  • الحزم الجديدة حقيقية وموثوقة.
اقرأ دليل anti-slop
مراقبة الجودة
حدد المعايير التي يتم وفقها فحص كل مشروع؛ يُطبق التغيير فورًا على الأعمال الجديدة بمجرد إعداده.
واجهة المتجرإعداد مخصص
يعمل عند فحص المهام، طلبات السحب، والتحقق من الإصدارات.
عمليات التفتيش على كل تغيير
أي تغيير يفشل في اجتياز عملية التفتيش يعود إلى المطور قبل أن يقوم أي شخص بمراجعته.
  • مكافحة الفوضىتُعيد التغيير إلى المصدر إذا أدى إلى إضعاف اختبارات الوحدة، أو إخفاء الأخطاء، أو نشر عناصر نائبة، أو إضافة ديون تقنية.
  • اختبارات الوحدةتكتشف اختبارات الوحدة الموجودة في المستودع وتنفذها مع كل تغيير يتم إدخاله.
  • اختبارات المتصفح2 من أصل 3يختلف عن الإعداد الافتراضيتشغل سيناريوهات التصفح الخاصة بك لتقييم التغييرات المدخلة.
  • الترجماتيختلف عن الإعداد الافتراضيتتحقق من ترجمة النصوص المعدلة والتأكد من تطابق العناصر النائبة وأشكال الجمع فيها.
  • عمليات تفتيش المستودعتنفذ الأوامر المخصصة لديك، مثل تنسيق الكود، وقياس حجم الملفات، وتشغيل اختبارات التكامل، وفحوصات الأمان.
ضمان الجودة
  • ضمان جودة شاملشاملتجمع أداة ضمان الجودة أدلة ولقطات شاشة حية مقارنةً بالمواصفات المحددة؛ وعند تعطيلها، يتم تطبيق إجراءات ضمان الجودة القياسية.

راجع العمل الذي تم التحقق منه مسبقًا.

فعّل ميزة anti-slop لمشروع واحد، واطلع على النتائج قبل البدء في التنفيذ.