x algorithmopen sourcealgorithmic transparencymethodprovenance18 أغسطس 2026

X نشرت خوارزميتها. قرأناها، ارتكبنا خطأً واحدًا، وقد اكتشف المصدر ذلك.

إصدار خاص، خارج الدورة المعتادة. ليست مجموعة بيانات - بل قطعة من الكود المصدري يقتبسها نصف الإنترنت عن ظهر قلب. قرأنا جميع المكونات الـ 123، وربطنا كل رقم بسطره، وأصدرنا ادعاءً واحدًا دحضه مصدرنا الخاص بعد ثلاثة أيام.

نشرت X خوارزميتها. قرأناها، وأخطأنا في أمر واحد، والمصدر كشفنا.

طبعة خاصة، خارج الدورة المعتادة. ليست مجموعة بيانات هذه المرة — بل قطعة من الكود المصدري يقتبسها نصف الإنترنت من الذاكرة. قرأنا جميع المكونات الـ 123، ونشرنا صفحة تربط كل رقم بسطره، وأرسلنا ادعاءً فنده مصدرنا الخاص بعد ثلاثة أيام. إليكم ما يقوله الكود، وما علمه لنا ذلك الخطأ عن الطريقة التي نبيعها.

في 13 August 2026، جعلت X كود التصنيف الخاص بخلاصة For You مفتوح المصدر، بموجب رخصة Apache-2.0. وفي غضون اثنتين وسبعين ساعة، كانت الأرقام في كل مكان: إعادة النشر تعادل 20 إعجاباً، والنقر على الملف الشخصي 12، وبلاغ واحد يلغي 468 إعجاباً.

لا تصف أي من تلك الأرقام تقريباً الكود الذي يعمل اليوم.

إنها ليست اختراعات. إنها بقايا — كانت صحيحة لمسار Scala تم إيقافه منذ سنوات، ويتم اقتباسها كما لو كانت تصف مسار Rust الذي حل محله. الرقم الذي لا يحمل تاريخاً ولا سطراً من الكود ليس حقيقة. إنه إشاعة بفاصلة عشرية.

لذلك قمنا بالعمل غير الجذاب: قرأنا المستودع، سطراً بسطر، وبنينا الصفحة التي كانت مفقودة.

← d-nvest.com/x-algorithm — مجاني، بدون حساب، بتسع لغات.

1. ما يقوله الكود فعلياً

190 معياراً يمكن لـ X تغييرها دون إرسال كود. 24 ثابتاً تم تجميعها في الملف الثنائي. 123 مكوناً في مسار التصنيف. كل واحد من تلك الأرقام على صفحتنا يرتبط بالسطر الدقيق الذي قُرئ منه، ومثبت في commit واحد — ومنذ هذا الأسبوع، يعرض أسطر Rust الفعلية في مكانها، حتى لا تضطر أبداً إلى تصديق كلامنا بشأن أي رقم.

أربعة من الادعاءات التي تحققنا منها، وما يقوله المصدر بدلاً من ذلك:

"إعادة النشر تعادل 20 إعجاباً." إنها تعادل اثنين. قيمة `RetweetWeight` هي 1.0 مقابل `FavoriteWeight` عند 0.5. لم تستخدم أي نسخة منشورة من هذه الخوارزمية الرقم 20 لإعادة النشر — ولا حتى نسخة 2023 التي يقتبسها الناس.

"النقر على الملف الشخصي يعادل 12 إعجاباً." اليوم لا يعادل أي شيء على الإطلاق: الوزن هو صفر. كان الرقم 12 حقيقياً لإشارة مركبة لم تعد موجودة في الشجرة.

"بلاغ واحد يلغي 468 إعجاباً." الحساب صحيح والاستنتاج خاطئ. تلك الأوزان تضاعف احتمالية متوقعة، وليس عدداً من الإجراءات. تذكر X أن البلاغ أندر بآلاف المرات من الإعجاب — لم يكن المصطلحان متساويين في الحجم أصلاً. قسمة وزن على آخر لا تعطي سعر صرف.

"العلامة الزرقاء تشتري الانتشار." لا يوجد شيء في الكود المنشور يضاعف النتيجة بناءً على حالة الاشتراك، وقد اختفى تعزيز 2023 من الشجرة. الحد الصادق، الذي نطبعه على الصفحة: التصنيف النهائي يمر عبر نموذج متعلم لا تُنشر أوزانه. لا يمكن استبعاد وجود ارتباط تعلمه النموذج من تلقاء نفسه من خلال قراءة الكود. نقول ذلك لأنه الحقيقة.

والنتيجة التي لا يذكرها أحد تقريباً: أقوى إشارة إيجابية في الكود المنشور ليست إعادة النشر أو الرد أو الإعجاب. إنها قيام شخص ما بنسخ رابطك لمشاركته في مكان آخر. الرقم 20 الذي يقتبسه الجميع حقيقي. لكنه مرتبط فقط بإجراء مختلف تماماً.

2. الادعاء الذي أرسلناه، وفنده مصدرنا الخاص

إليكم الجزء الذي قد يحذفه فريق التسويق.

نُشرت صفحتنا وهي تقول، كأهم نتيجة توصلت إليها، أنه لا يوجد اسم لأي شخص أو منظمة في أي مكان في ذلك المستودع — لا معرف حساب، ولا اسم مستخدم، ولا قائمة محددة مسبقاً. وضعنا رقماً صفراً بملء الشاشة في العرض التقديمي.

كان ذلك خاطئاً.

في الـ commit الدقيق الذي ثبتناه، يحتوي `home-mixer/filters/brazil_2026_election_filter.rs` على 665 معرف حساب مكتوباً في المصدر، كل منها مشفوع باسم المستخدم الخاص به. الملف يقول ذلك بنفسه: "أسماء المستخدمين مدرجة للشفافية." يقوم الفلتر بإزالة منشورات تلك الحسابات من For You — بما في ذلك إعادات النشر والاقتباسات والمنشورات الأصلية في السلسلة — ما لم يكن المشاهد يتابعهم بالفعل. تقوم X بإرسال هذا الكود عمداً، وفقاً لقانون الانتخابات في Brazil، وتوثقه في ملف README الخاص بها.

لماذا أخطأنا هو الجزء الوحيد المثير للاهتمام. الجملة لم تُستخرج من أي شيء. لقد كُتبت يدوياً. كانت صحيحة بالنسبة للمجموعة الفرعية التي قرأناها — قواعد تصفية الرؤية — ثم عُممت بهدوء لتشمل "أي مكان في هذا المستودع". التعميم لا يعيد التحقق من نفسه أبداً.

الأسوأ من ذلك: وجود اختبار في مجموعتنا الخاصة ثبت الخطأ في مكانه. لقد تحقق من أن العبارة تحتوي على كلمات معينة. لقد ضمن أن الجملة كانت موجودة، وليس أنها كانت صحيحة. يمكن للاختبار أن يحبس كذبة.

صححنا ذلك في نفس اليوم. هذا الادعاء الآن يُحسب من خلال مسح للمستودع بدلاً من تأكيده نظرياً، وتُظهر الصفحة الحسابات، ويتغير الرقم إذا تغير المصدر.

لقد فندنا المصدر قبل أن يفعل أي شخص آخر. هذا هو بالضبط الغرض من المصدر — وهو الحجة الكاملة للعمل بهذه الطريقة.

3. قيود الدولة التي لا تحتوي على دولة فيها

بمجرد أن بدأنا البحث بشكل صحيح، تبين أن الجغرافيا هي عكس ما يفترضه الجميع.

في المستودع بأكمله، هناك دولة واحدة فقط لديها قائمة خاصة بها. هناك قائمتان لدول أخرى محددة برمجياً — 16 دولة حيث يتم حجب المحتوى الحساس عن أي شخص لم يحدد عمره، و 18 دولة يعاملها النموذج بشكل فردي — وكل دولة أخرى على وجه الأرض تقع في تصنيف عام: ليست محظورة، بل غير متميزة.

بيانات الإزالة لكل منشور — الشيء الذي يعنيه الناس عندما يقولون "محجوب في الدولة X" — ليست موجودة في المستودع على الإطلاق. تقارن تلك القواعد بلد المشاهد بالأكواد التي يحملها كل منشور وقت التشغيل، وتلك البيانات لا تُنشر. أي خريطة تلون الدول "الخاضعة للرقابة" بناءً على هذا الكود ستكون من محض الخيال. خريطتنا لا تفعل ذلك.

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

نحن ننشر ذلك مع توضيح حدوده، لأن الحدود هي الجزء الصادق: تحديد أي مسار يخدم أي سوق قد يتم في طبقة لا تنشرها X. ما يمكننا قوله هو ما يحتويه الكود المنشور — وهو لا يحتوي على أي اختبار للدولة.

4. ما يتم إزالته هو الانتشار، وليس حرية التعبير

آلية الإسكات موجودة، وهي قابلة للقراءة، وهي أضيق مما توحي به عبارة "shadow ban".

32 قاعدة إزالة يتم إرسالها بوضوح، وتعمل على 27 نوعاً من التصنيفات. اثنتان منها تخفيان المنشور عن غير المتابعين فقط — لا يزال متابعوك يراك. هذا التمييز موجود في الكود، ويختفي في كل مرة يلجأ فيها شخص ما إلى العبارة التي تجلب النقرات.

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

5. لماذا أمضت شركة بيانات أسبوعاً في هذا العمل

لأنه العمل الذي نقوم به لكسب عيشنا، وقد تم تنفيذه علناً، على مصدر يمتلك الجميع بالفعل رأياً حوله.

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

الصفحة تراقب نفسها أيضاً. هناك مهمة تقارن الـ commit المثبت لدينا بـ X كل صباح؛ وعندما يختلفان، تقول الصفحة إنها متأخرة بدلاً من تقديم أرقام قديمة بصمت، وتستقر عملية التجديد في فرع ينتظر مراجعة بشرية. الصفحة التي تكشف الأرقام القديمة للآخرين لا يحق لها أن تصبح قديمة بنفسها.

← اقرأه: d-nvest.com/x-algorithm

Get the next analysis

One deep-dive per edition on where valuable data is hiding — the evidence, the sources, and who would pay for it. No noise.

One email per edition. Unsubscribe any time. We never share your address.

From the marketplace

Explore live data opportunities

Browse datasets by sector & use-case
Found this useful? Share it

d-nvest turns the data assets behind these deals into scored, actionable opportunities.

Explore the pipeline →
X نشرت خوارزميتها. قرأناها، ارتكبنا خطأً واحدًا، وقد اكتشف المصدر ذلك. | d-nvest