عن المشروع

AI Shipcheck ماسح جاهزية للإنتاج محلي أولاً يستهدف التطبيقات المكتوبة إلى حد كبير بواسطة أدوات البرمجة بالذكاء الاصطناعي. فرضيته: المساعدين الذكيين جيدون في إنتاج كود يعمل، وأقل جودة في إنتاج كود يصمد في الإنتاج، لكنهم يصفون العمل بأنه منجز في الحالتين. يبحث Shipcheck عن الفجوات المتكررة المملة — جدول Supabase بلا أمان مستوى الصف، ومعالج مسار يكتب دون التحقق من المستدعي، ومتغير NEXT_PUBLIC_ يحتوي سراً، ونقطة نهاية LLM بلا حد معدل أو سقف رموز. الاستخدام عبر أمر واحد: npx ai-shipcheck . لا تسجيل حساب، ولا مفتاح API، ولا رفع للكود المصدري. يتطلب Node.js 22 أو أحدث. تشمل الخيارات --fail-on (مثل critical)، و--min-score، و--format (json، markdown، sarif)، وأمراً فرعياً explain يوثّق سبب وجود القاعدة وكيفية إصلاحها. النتائج وحدها لا تُفشل الأمر أبداً؛ العتبات اختيارية، لذا إضافته إلى خط أنابيب قائم قابلة للتراجع. رموز الخروج تميّز بين العتبات المستوفاة، وغير المستوفاة، وأخطاء الاستخدام، والأخطاء الداخلية. ما يفحصه تُسجَّل تسع فئات بشكل مستقل، مدعومة بـ63 قاعدة، لكل قاعدة وثائق ونموذج ضعيف ونموذج آمن واختبارات: - الأمان: بيانات الاعتماد المضمّنة في الكود، والأسرار خلف NEXT_PUBLIC_، وeval، وحقن الأوامر، وإعادة التوجيه المفتوحة، وCORS المتساهلة، وتعطيل التحقق من TLS، والتشفير الضعيف. - المصادقة: مسارات الكتابة دون فحوصات تفويض، وإجراءات خادم غير مصادق عليها، وفحوصات امتيازات في المتصفح فقط، وخطافات ويب غير متحقق منها، وJWTs غير موقعة، ومفاتيح أدوار الخدمة المكشوفة. - قواعد البيانات: الجداول بلا أمان مستوى الصف، وسياسات USING (true)، وSQL المبني بالاستيفاء، وعمليات الحذف بلا تصفية، والترحالات التدميرية. - الموثوقية: الأخطاء المبتلعة، وغياب المهلات الزمنية في مسارات الطلبات، ورفود الوعود غير المعالجة، وإعادة المحاولة بلا تراجع زمني، والبناء الذي يتجاهل أخطاء الأنواع. - الاختبارات: لا اختبارات، وCI يفتقد الاختبار/البناء/فحص الأنواع، وارتكاب .only، وكود خادم لا يشير إليه اختبار. - القابلية للمراقبة: لا مراقبة أخطاء، وتسجيل خادم عبر console فقط، ولا حدود أخطاء في React. - الأداء: استعلامات بلا حدود، وعمليات إدخال/إخراج متزامنة في المعالجات، وأنماط N+1، والاستيرادات الثقيلة في العميل. - إمكانية الوصول: نقص النص البديل، ومعالجات النقر على عناصر غير تفاعلية، وعناصر نماذج بلا تسميات، وtabIndex موجب. - تكلفة الذكاء الاصطناعي: نقاط نهاية LLM بلا مصادقة أو حد معدل، وبلا سقف رموز، واختيار نموذج يتحكم فيه الطلب، ومفاتيح المزود في المتصفح. تشمل الحزم المكتشفة Next.js (بكلا الموجهين)، وReact، وVite، وExpress، وFastify، وHono، وNestJS، وRemix، وAstro، وSvelteKit، وNuxt، وSupabase، وFirebase، وPrisma، وDrizzle، وMongoose، وStripe، وOpenAI، وAnthropic، وVercel AI SDK، وLangChain، وtRPC، ومشغلات الاختبار الشائعة. لا تعمل القواعد الخاصة بإطار عمل إلا عند اكتشافه، بما في ذلك المستودعات الأحادية. المخرجات والتكامل يعرض التقرير درجة، وحكماً، وأشرطة لكل فئة، ونتائج تتضمن الملف، والسطر، والقاعدة، والخطورة، ومستوى الثقة. تفرض أي مشكلة حاجبة حالة NOT READY بغض النظر عن الدرجة. تُستبعد الفئات التي لا يمكن تقييمها بدلاً من منحها 100 مجانية. يضيف GitHub Action تعليقات توضيحية للنتائج مباشرة على الفرق، ويكتب تقرير Markdown في ملخص المهمة، وينتج SARIF لفحص الكود، ويُخرج الدرجة، والحكم، وعدد critical، وعدد high؛ وهو مدمج في ملف واحد ملتزم به بحيث يشغّل سير العمل المثبّت بعلامة إصدار ذلك الكود تماماً. الثقة والنطاق لا تجري الأداة اتصالات شبكية ولا ترسل قياسات عن بُعد؛ ولا يُنفَّذ أي شيء في المستودع المفحوص — تُقرأ الملفات كبايتات وتُحلَّل لفظياً. تُقنَّع الأسرار حيثما يمكن طباعتها، والفحوصات محدودة وتوضح ذلك عند الاقتطاع، ولديها اعتماد تشغيلي واحد. القيود المعلنة صريحة: JavaScript وTypeScript فقط؛ التحليل لفظي وليس دلالياً، بلا استنتاج عبر الملفات أو معلومات أنواع، وتتبع التلوث يتبع القيمة قفزة واحدة، لذا فإن غلاف مصادقة مخصص لا تتعرف عليه قد ينتج إيجابية كاذبة. مسارات Express وFastify غير مشمولة بقواعد المصادقة، ويُوصف ذلك بأنه أكبر فجوة معروفة. البنية التحتية غير مرئية لها، لذا الجدول الذي تم تمكين RLS فيه في لوحة تحكم ولكنه غائب عن الترحالات يُبلَّغ عنه كغير مقيَّم، وليس آمناً. التقرير النظيف يعني أن الفحوصات التي تعرف كيف تجريها لم تجد شيئاً، لا أن الكود صحيح. تحققت القواعد عبر 20 مستودعاً عاماً مثبتة بمعرّف التزام commit SHA؛ ووفقاً للتقارير، خفض فرز مخرجاتها النتائج من 5,710 إلى 2,819 وكشف خطأ في المحلل اللغوي يؤثر على أرقام الأسطر في الملفات ذات التعليقات متعددة الأسطر. تغطي الوثائق القواعد، وعقد CLI، والإعداد، والتسجيل، ونموذج الثقة، والقيود، ونموذج التهديد، والمعمارية، وإضافة قاعدة، والإصدار، والحوكمة. الترخيص MIT.