Developer Page Specifications
QC Checklist
Per-page gates for all 6 routes. Arabic bidirectional, sanitised body, JSON-LD validation, translation hreflang, /editorial/{slug} → /insights/{slug-id} redirect.
مكتمل
بوّابات القبول لكل صفحة لكل الـ 5 مسارات. الخطورة لكل §11.1.
صفحة القائمة
- ED-LIST-001 · blocker · /en/editorial + /ar/editorial تُرجع 200.
- ED-LIST-002 · blocker · spotlight مميَّز يَرسم 1 كبير + 2 دعم. fallback لأحدث 3 IsActive حين IsFeatured أقل.
- ED-LIST-003 · critical · الخلاصة الأحدث تَرسم 12 كرت باستثناء المميَّز، scroll-لانهائي يُحَفِّز صحيحاً.
- ED-LIST-004 · critical · شبكة الفئات تُظهر فئات IsActive بأعداد مقالات صحيحة.
- ED-LIST-005 · critical · شريط جانبي most-read أعلى 5 بـ ViewCount.
- ED-LIST-006 · major · تحقّق نموذج النشرة + POST + حالة النجاح.
- ED-LIST-007 · blocker · تكافؤ موبايل + RTL.
صفحات الفئة + الموضوع
- ED-CAT-001 · blocker · /en/editorial/categories/{slug} + AR تُرجع 200. slug مجهول → 404.
- ED-TOP-001 · blocker · /en/editorial/topics/{slug} + AR تُرجع 200. slug مجهول → 404.
- ED-TOP-002 · critical · الإشارات المنظومية تُبرز Opportunities/Files/Startups بنفس الموضوع. كل شريط فرعي يَختفي عند 0.
صفحة تفاصيل المقالة
- ED-ART-001 · blocker · /en/editorial/{slug} + AR تُرجع 200 لكل مقالة منشورة. slug مجهول → 404.
- ED-ART-002 · blocker · Header يُظهر chip النوع، شارة الفئة، شارات المواضيع، عنوان H1 (الوحيد)، dek، صفّ byline.
- ED-ART-003 · critical · الصورة المميَّزة 16:9 سطح المكتب / 4:3 موبايل. SVG احتياطي حين null.
- ED-ART-004 · critical · جسم HTML مُعَقَّم — فقط tags whitelisted. لا XSS.
- ED-ART-005 · critical · typography الجسم: max-width 720px، خط 18px، line-height 1.7 LTR / 1.85 RTL.
- ED-ART-006 · critical · جسم العربية يَلفّ أسماء العلامات الإنجليزية في <span dir="ltr">. الرسم ثنائي-الاتجاه صحيح.
- ED-ART-007 · critical · كرت المؤلِّف يَرسم avatar + الاسم + الدور + bio + social + CTA "View all articles".
- ED-ART-008 · critical · شريط الإشارات المتّصلة محدود بـ 8. isPractical=true يَكتم شريط Files الفرعي.
- ED-ART-009 · critical · المقالات ذات الصلة — يدوي أولاً، تلقائي ثانياً، حد 6. تَختفي عند 0.
- ED-ART-010 · critical · المشاركة تَعمل عبر navigator.share / copy-link / Twitter / LinkedIn.
- ED-ART-011 · blocker · JSON-LD يَتحقّق مقابل Google Rich Results Test لكل نوع.
- ED-ART-012 · critical · IsTranslated=true يُصدر hreflang alternates يُشير لـ CanonicalArticleId في المحلّية الأخرى.
- ED-ART-013 · blocker · تكافؤ موبايل + RTL. شريط share/save ثابت يَظهر بعد 25% scroll على موبايل.
صفحة المؤلِّف
- ED-AUT-001 · blocker · /en/editorial/authors/{slug} + AR تُرجع 200. slug مجهول → 404.
- ED-AUT-002 · critical · ProfilePage + Person JSON-LD يَتحقّق. sameAs[] يَشمل كل social URLs.
- ED-AUT-003 · critical · شريط الإحصاءات يُطابق قاعدة البيانات.
التكامل
- ED-INT-001 · critical · كل إشارة cross-module تُحَلَّ. مَسْح السلامة يُبَلِّغ عن 0 مكسور.
- ED-INT-002 · major · sitemap.xml يَحتوي URLs المقالات المنشورة IsActive في كلتا المحلّيتَيْن.
- ED-INT-003 · major · المقالات المجدولة تَنقلب لـ Published عند ScheduledFor بالضبط. الانحراف = حرج.
- ED-INT-004 · major · تَسوية ViewCount تُصالح ليلياً مع التحليلات.
