COLOSSUS LAB
📄 تصفح موقع الأوراق العلمية الأكاديمي الشامل (arXiv-Style Papers Portal):Explore Full arXiv-Style Scientific Papers Portal: افتح موقع الأوراق العلمية →Open Papers Portal →

مخبر كولوسوس — استدلال نماذج خليط الخبراء على عتاد يملكه الجميعColossus Lab — Mixture-of-Experts inference on hardware people already own

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

A laboratory, not a library and not a model. One free-tier GPU, a hardware contract that aborts any run whose host drifts out of specification, a pre-registration for every hypothesis, and negative results published with the same care as positive ones. No training, no fine-tuning, no cluster: inference runtime only.

8تشغيلات موقّعةsigned runs
3قوانين مقاسةmeasured laws
4أفكار أُسقِطتideas falsified
22أعطاب موثّقةdocumented faults
14,912م.بايت فيرام متاحةMiB usable VRAM

كل رقم هنا يحمل وسمًا: measured مقاس · derived مشتق · predicted متوقع ولم يُقَس · retracted مسحوب. وكل قسم يحمل في مصدر الصفحة معرّف التشغيل الذي أنتجه.

Every number carries a label: measured, derived, predicted (never observed), retracted. Every section carries, in the page source, the RUN_ID that produced it.

📄 الانتقال لموقع الأوراق العلمية الشامل (arXiv-Style Portal) →Go to Scientific Papers Portal (arXiv-Style) →

GitHub الأوراق العلمية 📄Papers Portal 📄 أعِد التجربةReproduce it

عقد العتادThe hardware contract

قياس يُجرى خارج العقد ليس قياسًا؛ إنما هو حكاية.

A measurement taken outside the contract is not a measurement. It is an anecdote.

GPUNVIDIA Tesla T4 · compute capability 7.5
فيرام لوح/متاحةVRAM board / usable15,360 MiB / 14,912 MiB
الحد الأدنى المُلزِمenforced floor14,500 MiB — التشغيل يُجهَض تحتهthe run aborts below it
ذاكرة المضيفhost RAM~12.7 GB · ~9.18 GB available
vCPU2
الفئةtierGoogle Colab — free
النموذجsubject modelgpt-oss-20b
مسار الخدمةserving pathllama.cpp / GGUF — نوى MXFP4 تحتاجMXFP4 kernels need sm_90, وهذا العتادthis GPU is sm_75

ثلاثة قوانين مقاسةThree measured laws

L1 measured

عقوبة إزاحة الخبراء إلى المعالج المركزي تجميعية ولا تتعلق بطبيعة الحمل.

The CPU-offload penalty is additive and workload-independent.

t_token(n) = T0 + b*n   [ms/token]
b in [13.74, 16.32]  median 14.75
9 independent fits   all R^2 >= 0.982

الحساسية الظاهرة للحمل في البيانات الخام أثر مقام لا فيزياء: المعدلات النسبية تُقاس بقواعد مختلفة فتوهم بانقلاب الترتيب. في الزمن المطلق لا انقلاب.

The apparent workload sensitivity in the raw table is a denominator artefact: ratios taken against different bases fabricate a reversal. In absolute time there is none.

L2 measured derived

بصمة السياق تتفكّك، وجزء منها لا يقبل التكميم.

The context footprint decomposes, and only part of it is quantizable.

dVRAM(+4096 tok) = K/q + V
K = 92 MiB   residual <= 1 MiB
V = 14 MiB   no CPU/GPU split
V = 44 MiB   once a split exists
V is a step, not a slope

النتيجة العملية: تكميم ذاكرة المفاتيح يسلّم 68–88٪ من وعده الحسابي لا كلّه. أي خطة ذاكرة تفترض الوعد كاملًا ستخطئ بنحو الثلث عند الحدود القصوى — وعند الحدود فقط يهمّ الخطأ.

Consequence: KV quantization delivers 68–88% of its arithmetic promise, never all of it. Any memory plan that assumes the full promise is wrong by about a third at the ceiling — and the ceiling is the only place the error matters.

L3 measured

الخبراء المُزاحون يُخدَمون من مخزن الصفحات، لا من حجز في المضيف.

Offloaded experts are served from the page cache, not from a host allocation.

VRAM(n) = 11480.3 - 402.6*n  R^2=0.99991
9,594 MiB left VRAM while resident
process RAM moved 0.01 GB
TTFT = 2381 + 1929*n ms  R^2=0.9593

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

The weights are mmap-ed. A warm page cache is therefore a precondition of every throughput figure here, and we declare it instead of hiding it.

نتيجة معمارية لم نكن نبحث عنهاAn architectural corollary we were not looking for derived

K(ctx) = n_full_attn * 2 * n_kv_heads * head_dim * 2 bytes * ctx
gpt-oss-20b:  12 * 2 * 8 * 64 * 2 = 24,576 bytes/token
              = 96 MiB per 4096 tokens     measured 92 MiB  (-4%)
all-24-layer counterfactual = 192 MiB      excluded by 2x
context ceiling at n=0, f16, weights 11,189 MiB:  ~156k tokens

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

The measured value matches what the model's 12 full-attention layers alone predict, and excludes by a factor of two what all 24 layers would predict. The instrument recovered the alternating sliding-window topology of the architecture from black-box VRAM readings, without reading a single weight file.

الميكانيزم والثابت المشتقMechanism and the derived constant derived

b ~ active_expert_bytes_per_layer / BW_cpu_eff
gpt-oss-20b: ~52.6 MB per layer at ~4.25 bits
=> BW_cpu_eff ~ 3.56 GB/s on 2 vCPU
   = 32% of the measured host-to-device 11.22 GB/s

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

The bottleneck is not the PCIe link but expert arithmetic on the CPU itself. That inverts a common recommendation: more link bandwidth buys nothing here; more cores do.

الشبكة الكاملة — ثلاثة أحمال × ثلاث دقّات × خمسة مستويات تفريغThe full grid — 3 workloads x 3 KV precisions x 5 offload levels measured

45 صفًّا ناجحًا؛ و36 خليةً فشلت وحُفِظت في raw.jsonl.failed بدل أن تُحذف. الوحدة: رمز/ثانية.

45 successful rows; 36 cells failed and were preserved in raw.jsonl.failed rather than dropped. Unit: tok/s.

nW1 f16W1 q4_0W1 q8_0W2 f16W2 q4_0W2 q8_0W3 f16W3 q4_0W3 q8_0
053.9051.6455.1935.8932.4231.5355.6651.1851.29
134.5233.6934.4031.3229.3429.4233.1032.4432.69
220.9119.6020.3819.3920.4720.5721.6620.3724.00
412.3311.0711.8514.4112.9911.2512.7811.9312.01
86.827.257.547.247.337.097.447.397.42

ما تقوله الشبكة ولا يُقال: أول طبقة مُزاحة تكلف 36٪ من الإنتاجية مقابل 298 م.بايت فقط، والنموذج أصلًا يدخل في الفيرام عند n = 0 (11,399 من 14,912). لذلك التفريغ الجزئي ليس توازنًا بل ملاذ أخير: معدل المقايضة يتراوح بين 13.2 و303.0 م.بايت لكل رمز/ثانية.

What the grid says and nobody says: the first offloaded layer costs 36% of throughput to buy 298 MiB, and the model already fits at n = 0 (11,399 of 14,912 MiB). Partial offload is not a balance point; it is a last resort. The exchange rate ranges from 13.2 to 303.0 MiB per tok/s.

وهذا يسحب استنتاجًا كنتُ كتبته بنفسي بأن n = 1..2 «توازن ممتاز». ليس توازنًا؛ إنه ثمن باهظ لسعة لا نحتاجها.

This retracts a conclusion I wrote myself, that n = 1..2 is an "excellent balance". It is not a balance; it is an expensive price for capacity we do not need.

ما لم ينجح — والمتباينة التي تتوقّع الفشلWhat failed — and the inequality that predicts it

أربع أفكار من خمس سُجّلت مسبقًا ثم فشلت. لم تُحذف واحدة منها. وما يجعلها نتيجةً لا حادثةً أنها فشلت أمام المُقارِن الصحيح، وأن لها سببًا واحدًا مشتركًا.

Four of five pre-registered ideas failed. Not one was deleted. What makes them a result rather than an accident is that they failed against the right comparator, and that they share a single cause.

ideaclaimverdict
ATLASدقّة ذاكرة المفاتيح مِقبض إنتاجيةKV precision is a throughput knobclosed — within-cell spread 6.7% vs repeat CV 2.5%; f16 won 10/15 cells
PROMETHEUSعقود الزمن تخفض رموز التفكير بجودة متساويةlatency contracts cut reasoning tokens at equal qualityfailed+8.1% tokens vs fixed_medium at identical accuracy
JANUSإشارات رخيصة تتنبأ بوقت التصعيدcheap signals predict when to escalatefailed — AUC 0.236 / 0.500 / 0.167 / 0.583 = chance
CHRONOSسياسات ذاكرة المحادثة توفّر الرموزconversation-memory policies save tokensvoid twiceفشل التشغيلان في بواباتهماboth runs failed their own validity gates
HERMESيمكن معايرة مقياس ليحسم فعلًاa benchmark can be calibrated to decidevalid instrumentبعد خمسة إجهاضاتafter five aborts; 12 items, 6 errors, truncation 0.000

متباينة الجدوىThe feasibility inequality derived

a cascade beats a fixed setting only if

    1 + f*(c_esc / c_low)  <  c_fixed / c_low

f       = fraction of items the cheap tier gets wrong
c_low   = cost of one cheap attempt
c_esc   = cost of the expensive retry
c_fixed = cost of always running the fixed setting

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

The left side carries a hard one: the cheap attempt is paid always, including when it fails. And because a medium setting always exists as an admissible comparator, the room left for a cascade is far narrower than a comparison against the top tier alone suggests.

cascadeagainstأقصى f مقبولmax tolerable f
low → mediumfixed_medium0.556
low → mediumfixed_high2.048
low → highfixed_medium0.223
low → highfixed_high0.822

قِسنا f = 0.50. والملاحظة الخطيرة: تغيير المُقارِن وحده يُزيح العتبة بمقدار 3.7×. أي أن ورقة تختار مُقارِنها قد تُعلن النجاح أو الفشل من البيانات نفسها.

We measured f = 0.50. The dangerous observation: switching comparator alone swings the threshold by 3.7x. A paper that picks its comparator can announce success or failure from identical data.

سقف العرّافThe oracle ceiling measured

حتى موجّه مثالي يعرف الإجابة مسبقًا لا يوفّر أكثر من 5.6٪ من الرموز (1163 مقابل 1232)، ويدفع المئين 95 من 3.02 إلى 4.10 ثانية. أي أن المشكلة ليست في رداءة موجّهنا، بل في أن الجائزة نفسها صغيرة على هذا النموذج. وهذا هو الفرق بين «فشلنا» و«لا يوجد ما يُكسب».

Even a perfect oracle router that knows the answer in advance saves no more than 5.6% of tokens (1163 against 1232) and pushes p95 latency from 3.02 s to 4.10 s. The problem is not that our router was bad; the prize itself is small on this model. That is the difference between "we failed" and "there is nothing here to win".

PROMETHEUS measured

armaccuracytokensmean sp95 s
fixed_high1.00030686.386.72
fixed_medium1.00012312.853.02
fixed_low0.5005471.251.75
prometheus relaxed1.00013312.782.89
prometheus tight0.5838151.402.89
gate relaxed: vs high    -56.6% / 0.0    PASS
              vs low    +143.3% / -50.0  FAIL
              vs medium   +8.1% / 0.0    FAIL   <-- the decisive line
SLO 3.8 s:  low 100% | medium 100% | high 0% | prometheus 92%

تصحيح لخطأ ارتكبتُه أنا. في مسودة أولى قرأتُ الصف المُريح وحده — 2.78 مقابل 6.38 ثانية بدقة تامة — وأعلنتُ نجاحًا. البوابة المُسجَّلة مسبقًا تقول فشلًا، والبوابة أصدق منّي.

A correction of my own error. In an early draft I read the comfortable row alone — 2.78 s against 6.38 s at perfect accuracy — and announced success. The pre-registered gate says failure, and the gate is more honest than I was.

JANUS measured

signalAUCreading
reasoning_len0.236مقلوب، أسوأ من المصادفةinverted, worse than chance
answer_len0.500مصادفة تامةexactly chance
latency0.167مقلوب بقوةstrongly inverted
disagreement0.583لا يُميَّز عن المصادفة عند n=6,6indistinguishable from chance at n=6,6

وذراع التوأم مُميتة عند درجة حرارة صفر — مخرجان متطابقان حرفيًّا فلا اختلاف يُقاس — وعند 0.8 تنخفض الدقة (0.417 مقابل 0.500) ويبقى الاختلاف عند المصادفة.

The twin arm is dead at temperature 0 — two byte-identical outputs, so disagreement cannot exist — and at 0.8 accuracy falls (0.417 against 0.500) while disagreement stays at chance.

فائدة موجبة داخل فشل سلبي: الجهد الرخيص يشتري 50٪ من الجودة بـ 17.8٪ فقط من رموز التفكير. المقايضة موجودة حقًّا؛ المفقود هو الإشارة التي تعرف متى تدفع.

A positive finding inside a negative one: cheap effort buys 50% of the quality for 17.8% of the thinking tokens. The trade exists; what is missing is a signal that knows when to pay.

CHRONOS measured

CHRONOS-002 gate: full_content acc_add 0.875 < 0.90   FAIL
                  truncation      0.0833 > 0.05       FAIL
=> VOID. no policy comparison may be read from this run
both CHRONOS runs served with jinja = False
=> the effort knob was physically impossible there

ومع ذلك خرج من هنا أكثر رقم إثارةً في المشروع: الاحتفاظ بأثر التفكير رفع رموز الموجّه +207.7% وأنقص المُولّدة -81.1% والزمن الجداري -69.4% (27.3 مقابل 89.3 ثانية) بدقة 1.000 وبلا أي اقتطاع. ولأن التشغيل باطل فهو مرشّح لا نتيجة. لو مرّ بصمت لكان أخطر ما ينشره هذا المشروع، لأنه يقلب ممارسةً قياسيةً في كل أنظمة الدردشة: حذف أثر التفكير بين الأدوار.

And yet the most striking number in the project came from here: retaining the reasoning trace raised prompt tokens +207.7%, cut generated tokens -81.1% and wall time -69.4% (27.3 s against 89.3 s) at accuracy 1.000 with zero truncation. Because the run is void this is a candidate, not a result. Passing it off quietly would be the most dangerous thing this project could publish, because it inverts a standard practice in every chat system: discarding the reasoning trace between turns.

وسياسة h2o_reference خفّضت رموز الموجّه -55.7% ومع ذلك ارتفع زمن التعمير +44.9% والزمن الجداري +15.4%: إبطال مخزن البادئة. تقليل الرموز ليس تقليلًا للعمل.

The h2o_reference policy cut prompt tokens -55.7% and yet prefill rose +44.9% and wall time +15.4%: prefix-cache invalidation. Fewer tokens is not less work.

الأوراقManuscripts

idtitleصنف المكانvenue classالجاهزيةreadiness
W1Three laws of MoE inference on one consumer GPU, and the instrument that found themMLSys / ES-FoMo → EuroSys70%
W2Four runtime ideas that did not work, and the inequality that predicts whyICBINB → ACM REP65%
W3Benchmarks that can decide: error-accrual calibration for effort-sensitive evaluationNeurIPS D&B65%
W4Reasoning-trace retention as a memory policyمحجوزةgated0%

دُمجت ورقتان سلبيتان في واحدة. منفصلتين هما تقريرا «لم ينجح» نحيفان؛ ومدموجتين مع المتباينة التي تفسّر الفشلين هما ورقة واحدة ذات مساهمة نظرية. الدمج رفع الجاهزية ولم يمتوسّطها.

Two negative papers were merged into one. Separately they are two thin "it did not work" reports; merged with the inequality that explains both failures they become one paper with a theoretical contribution. Merging raised the combined readiness rather than averaging it.

تصفح موقع الأوراق العلمية الشامل (arXiv-style Portal) →Explore Full Scientific Papers Portal (arXiv-style) →

التشغيلات الثمانيةThe eight runs measured

كل تشغيل مجلد غير قابل للتعديل: raw.jsonl لا يُحرَّر أبدًا، ومعه المظهر والملخص والسجلات.

Each run is an immutable folder: raw.jsonl is never edited, alongside its manifest, summary and logs.

RUN_IDالحصيلةoutcome
20260804T092903Z_PF001_colab-free_2607a6d2GO — خمس بوابات قبلية؛ 86.0٪ من المخرَج تفكير غير مرئيfive preflight gates; 86.0% of output is invisible thinking
20260804T121442Z_EXP-000-ATLAS_colab-free_ae89e32dاستطلاعscouting
20260804T134638Z_EXP-000-ATLAS_colab-free_f6f7fa3bالشبكة 45 صفًّا / 39.3 دقيقة — أصل القوانين الثلاثة45-row grid / 39.3 min — source of the three laws
20260804T163425Z_EXP-CHRONOS-001_colab-free_8668b550VOID
20260804T170351Z_EXP-CHRONOS-002_colab-free_8ce21f5eVOID
20260804T174642Z_EXP-PROMETHEUS-002_colab-free_b8e8e62aFAIL — 18/18 ok / 11.7 min
20260804T180719Z_EXP-JANUS-002_colab-free_547a20adFAIL — 6/6 ok / 6.6 min
20260805T003642Z_EXP-HERMES-001_colab-free_965b5d1fVALID — 12/12 ok / 6.7 min

قدرة المسبار — تحذير منهجي نوجّهه إلى أنفسناProbe power — a methodological warning we address to ourselves measured

من 28 خلية معايرة كانت 23 «كاملة» عند مسبارين. وعند إعادة قياس سبع منها بخمسة مسابر سقطت اثنتان: 28.6٪ بفاصل ثقة [3.7٪، 71.0٪]. أي أن نحو 6.6 من الـ23 كمالًا متوقَّع أن تكون زائفة. مسباران لا يقيسان دقة؛ إنما يقيسان الحظ.

Of 28 calibration cells, 23 looked "perfect" at two probes. Re-measuring seven of them at five probes, two fell: 28.6% with a confidence interval of [3.7%, 71.0%]. So roughly 6.6 of those 23 perfect scores are expected to be false. Two probes do not measure accuracy; they measure luck.

الأفق — تنبؤات قابلة للإسقاطForecast — falsifiable predictions predicted

لم يُشغَّل أي نموذج غير gpt-oss-20b. كل صف في هذا الجدول حسابٌ على معمارية منشورة لا قياس. نضعه هنا لأنه قابل للتكذيب: من يملك العتاد يستطيع إسقاطه في نصف ساعة.

No model other than gpt-oss-20b was ever run. Every row below is arithmetic on a published architecture, not a measurement. It is here precisely because it is falsifiable: anyone with the hardware can kill it in half an hour.

modelMB/layerb (ms)K per 4096 tokما يختبرهwhat it tests
gpt-oss-20b52.614.896 MiBمقاس فعلًا: 14.75 و92 م.بايتactually measured: 14.75 and 92 MiB
gpt-oss-120b53.515.0144 MiBثبات b مع 5.6× من الوسائط — الاختبار الحاسمb invariant across 5.6x parameters — the decisive test
Qwen3-30B-A3B22.96.4384 MiB4× ذاكرة مفاتيح، وسقف ~3.2 رمز/ث عند التفريغ الكامل4x KV, ceiling ~3.2 tok/s fully offloaded
DeepSeek-V3 (MLA)~223~62 / ~5.6~137 MiB2 أنوية مقابل 16 نواة: ~0.28 مقابل ~3.1 رمز/ث2 vCPU vs 16 cores: ~0.28 vs ~3.1 tok/s

إجراء خمسة أسطر يُخطِّط أي نموذج على أي عتاد قبل تنزيلهA five-line procedure that plans any model on any hardware before downloading it derived

b      = active_expert_bytes_per_layer / BW_cpu_eff
K(ctx) = n_full_attn * 2 * n_kv_heads * head_dim * 2 * ctx
n_min  = smallest n with  W - n*layer_bytes + K/q + V <= VRAM_usable - reserve
tok/s  = 1000 / (T0 + b*n_min)
ctx_max = q * (VRAM_usable - reserve - W - V) * 4096 / K

هذا هو الإسهام العملي الأهم: الانتقال من التجربة والخطأ إلى الحساب القَبْلي. وهو أيضًا أضعف ما نملك قابليةً للنقل، لأن BW_cpu_eff = 3.56 GB/s قيست على مضيف واحد، بنواتين، وعائلة تكميم واحدة.

This is the most useful contribution: moving from trial and error to a priori calculation. It is also our least transferable result, because BW_cpu_eff = 3.56 GB/s was measured on one host, with two cores, and one quantization family.

ما لا ندّعيهWhat we do not claim

المسحوب — سجل علنيRetractions — a public record retracted

هذا المستودع يخلف colossus-moe. الأرقام التالية كانت منشورة قبل أن تُقاس على هذا العتاد، وتُسحب هنا صراحةً. السحب موثّق ولا ممحوّ: النسخة القديمة محفوظة في وسم v0.1.0-legacy-retracted.

This repository supersedes colossus-moe. The figures below were published before they were ever measured on this hardware, and are withdrawn here explicitly. The withdrawal is recorded, not erased: the old state is preserved in the tag v0.1.0-legacy-retracted.

الرقم المسحوبwithdrawn figureالسببreason
SWE-Bench Pro 56.8%لم تُشغَّل قط على هذا العتاد؛ لا ملف خام ولا معرّف تشغيلnever run on this hardware; no raw file, no RUN_ID
Terminal-Bench 2.1 78.2%
OSWorld 77.4%
FP8: 17.4 GB / 74.5 tok/s / 290 msمسار FP8 مستحيل بنيويًّا على sm_75، لا صعب فقطthe FP8 path is structurally impossible on sm_75, not merely difficult
+DSpark: 18.2 GB / 92.8 tok/s / 240 ms
"Est. Line Count" عمود كاملan entire columnمُلفَّق: القيم الحقيقية أصغر بـ 2.3× إلى 15.0×؛ حُذف العمود ولم يُصحَّحfabricated: real values are 2.3x to 15.0x smaller; the column was deleted, not corrected

وسُحبت أيضًا ثلاثة استنتاجات كنتُ كتبتها بنفسي في تقرير داخلي: أن n = 1..2 «توازن ممتاز»، وأن متحكم PROMETHEUS «نجح»، واستشهادٌ برقم من تشغيل باطل. التفصيل في docs/06.

Three conclusions I wrote myself in an internal report are also withdrawn: that n = 1..2 is an "excellent balance", that the PROMETHEUS controller "succeeded", and a citation of a number from a void run. Details in docs/06.

الإعادة والنزاهة المُنفَّذة آليًّاReproducing, and integrity enforced by machine

git clone https://github.com/dzgreeno/colossus-lab
# open notebooks/NB0_GATE.ipynb in Colab, free T4 runtime
# it builds llama.cpp statically for sm_75, fetches the GGUF,
# and runs five preflight gates -- it ABORTS if any gate fails
# then NB1 .. NB5 in order, one notebook per session

make check   # claimcheck.py: a claim without provenance fails the build
make laws    # re-derive the three laws and the transfer predictions
make audit   # re-derive every table in docs/06
python3 tools/sitecheck.py site   # every number on this page names a source

الشرط الجوهري في INTEGRITY.md: لا يظهر رقم في هذا المشروع دون معرّف تشغيل وملف خام قابل للفتح، ولا يُخلَط المقاس بالمشتق بالمتوقَّع في جملة واحدة. وأداة التحقق رفضت في أول تشغيل 33 قسمًا؛ وُثِّقت الثلاثة والثلاثون واحدًا واحدًا حتى صار الناتج صفرًا — ولم تُضعَّف الأداة لتمرّ.

The binding clause of INTEGRITY.md: no number appears in this project without a RUN_ID and an openable raw file, and measured / derived / predicted are never mixed in one sentence. On its first run the checker rejected 33 sections; all 33 were documented one by one until the count reached zero — the tool was not weakened to let them pass.

RUN_ID = <UTC-ISO-compact>_<EXP>_<tier>_<sha8>