The 114 Console 3/114 sūrahs 297/6,236 āyāt 65 h left
0:00:00
⚑ do this now
Loading…

① Before you open any window

Four things, once. Three are already done — they were mine to run, not yours. Only step 2 needs you, and it needs about thirty seconds.

⚠️ Step 2 is the only thing standing between this work and a disk failure, and it is the only step I cannot do: the GitHub token here can read but not create repositories. Everything up to the click is finished — the secret audit is GREEN across HEAD and all history.
1

✅ Verify the corpus — DONE

Run for you. All 114 sūrahs at their canonical Kūfan āyah count, and all 195 source files matching the sealed manifest. Re-run it any time; it must always print CORPUS VERIFIED.

cd "C:/Users/walee/Downloads/Quran Research/01-TOOLKIT"
python verify_corpus.py

what you should see:

1. THE TEXT 6236 ayat, all 114 suras at the canonical Kufan count no corrupt characters, no duplicate keys 2. THE SOURCES 195 files verified byte-for-byte against the manifest CORPUS VERIFIED
2

⚠️ Get it off this laptop — YOURS, 30 seconds

The readings are the one thing no rebuild can recreate, and they exist in one folder called Downloads. I cannot create the repository — this token can read but not create. Open github.com/new, name it quran-consensus-tafsir, tick Private, create. Then run these two lines.

cd "C:/Users/walee/Downloads/Quran Research"
git remote add origin https://github.com/waleed-alvi/quran-consensus-tafsir.git
git push -u origin master

what you should see:

already run for you, before any push: PRE-PUSH AUDIT 94 files, 1.1 MB HIGH findings : 0 MEDIUM findings : 0 blobs in history : 98 forbidden classes: 0 VERDICT: GREEN - payload is clean, safe to push
3

✅ Evidence pass for all 111 — RUNNING NOW

Started for you in the background: no model needed, about 2–3 hours of pure machine time. It only writes into 05-READINGS/work/, so it cannot touch a reading. If it is interrupted, the same command resumes it — files already built are simply rewritten.

cd "C:/Users/walee/Downloads/Quran Research/01-TOOLKIT"
for n in $(seq 3 114); do python surah_engine.py $n --data; done
4

Read the glossary once, yourself

The one judgement here that is genuinely yours. It is the controlled vocabulary all nine windows obey — 05-READINGS/GLOSSARY.md. If you disagree with a rendering, change it now: changing it later means reconciling every sūrah already written.

⚠️ Do not skip step 2. Everything — the readings, the git history, the 1.1 GB corpus — is on one disk. A private repository costs nothing and is the difference between this surviving and not.

② How every window runs

Set the model first — a prompt cannot do this. Then paste that window's prompt. Everything after that is the skill.

/model claude-opus-5
Do not drop to a cheaper tier. The mechanical steps are three commands costing almost no tokens, so a downgrade buys speed only on the readings — the one part no rebuild can regenerate.

Inside the window each sūrah is the same five steps, and the window does them for you:

#StepWho
1--data gathers the evidencemachine
2the agreed readings — one per āyah, similarities onlyjudgement
3the ḥadīth picks — 3–5, a cross-tradition pair if one existsjudgement
4--build — refuses on a missing reading or a non-verbatim quotemachine
5--audit then publishmachine

③ The order — three at a time, in these waves

⚠️ Do not run them 1→9. The order is W1 · W6 · W8, then W3 · W4 · W2, then W5 · W7 · W9. Wave 1 goes first because those three ranges settle most of the vocabulary every later window needs — and windows running at the same time cannot see each other. Inside a wave the order does not matter.

Your job in each window: set the model, paste the prompt, then confirm as it runs. Start the next window the moment one frees up — do not wait for a whole wave to finish.

Wave 1W1 · W6 · W8Start here — these settle the vocabulary.2574 āyātlongest ~9.7 h
W1 The rest of al-Sabʿ al-Ṭiwāl sūrahs 3–7 0/5 867 āyāt ~8.0 h open ▾

Āl ʿImrān, al-Nisāʾ, al-Māʾida, al-Anʿām, al-Aʿrāf — finishing the class al-Baqarah opened.

You are WINDOW 1 of 9 building the Qur'an surah pages.
Your range is surahs 3-7 - 5 surahs, 867 ayat. No other window
touches them.

FIRST: read 05-READINGS/GLOSSARY.md and hold to it. It is the controlled
vocabulary for all nine windows and it is READ-ONLY for you. When you
settle a term it does not carry, append the row to
05-READINGS/glossary-in/W1.md instead - never edit the master.

Then work ONE SURAH AT A TIME, in order, all five steps of the skill, and
publish it before starting the next. A finished surah should be finished.

After each surah run:
    python check_consistency.py <N>
and fix anything it flags HARD before you move on. Then append one line to
05-READINGS/progress/W1.md:
    <surah> | <ayat> | AUDIT CLEAN | <artifact URL>

WHERE TO SPEND THOUGHT. The agreed readings and the hadith picks are the
entire job; everything else is three commands. Run --data, --build and
--audit without deliberation. Think hard about: what the commentaries
SHARE for this ayah, whether a term is already settled in the glossary,
and whether the hadith picks carry a cross-tradition convergence. If a
gate fails, fix the input - never the gate.

AT THE END report: surahs built, total ayat, every gate that fired and
why, and every term you put in glossary-in/W1.md.

Start now with /surah-purge 3
3Madani200آل عمران
4Madani176النساء
5Madani120المائدة
6Makki165الأنعام
7Makki206الأعراف
W6 al-Mathānī and al-Ḥawāmīm sūrahs 36–49 0/14 925 āyāt ~9.7 h open ▾

40–46 all open Ḥā Mīm and are a recognised family. They must never be split across windows.

You are WINDOW 6 of 9 building the Qur'an surah pages.
Your range is surahs 36-49 - 14 surahs, 925 ayat. No other window
touches them.

FIRST: read 05-READINGS/GLOSSARY.md and hold to it. It is the controlled
vocabulary for all nine windows and it is READ-ONLY for you. When you
settle a term it does not carry, append the row to
05-READINGS/glossary-in/W6.md instead - never edit the master.

Then work ONE SURAH AT A TIME, in order, all five steps of the skill, and
publish it before starting the next. A finished surah should be finished.

After each surah run:
    python check_consistency.py <N>
and fix anything it flags HARD before you move on. Then append one line to
05-READINGS/progress/W6.md:
    <surah> | <ayat> | AUDIT CLEAN | <artifact URL>

WHERE TO SPEND THOUGHT. The agreed readings and the hadith picks are the
entire job; everything else is three commands. Run --data, --build and
--audit without deliberation. Think hard about: what the commentaries
SHARE for this ayah, whether a term is already settled in the glossary,
and whether the hadith picks carry a cross-tradition convergence. If a
gate fails, fix the input - never the gate.

AT THE END report: surahs built, total ayat, every gate that fired and
why, and every term you put in glossary-in/W6.md.

Start now with /surah-purge 36
36Makki83يس
37Makki182الصافات
38Makki88ص
39Makki75الزمر
40Makki85غافر
41Makki54فصلت
42Makki53الشورى
43Makki89الزخرف
44Makki59الدخان
45Makki37الجاثية
46Makki35الأحقاف
47Madani38محمد
48Madani29الفتح
49Madani18الحجرات
W8 Awsāṭ al-Mufaṣṣal sūrahs 67–89 0/23 782 āyāt ~9.6 h open ▾

al-Mulk to al-Balad — short, Makkan, eschatological. One register throughout.

You are WINDOW 8 of 9 building the Qur'an surah pages.
Your range is surahs 67-89 - 23 surahs, 782 ayat. No other window
touches them.

FIRST: read 05-READINGS/GLOSSARY.md and hold to it. It is the controlled
vocabulary for all nine windows and it is READ-ONLY for you. When you
settle a term it does not carry, append the row to
05-READINGS/glossary-in/W8.md instead - never edit the master.

Then work ONE SURAH AT A TIME, in order, all five steps of the skill, and
publish it before starting the next. A finished surah should be finished.

After each surah run:
    python check_consistency.py <N>
and fix anything it flags HARD before you move on. Then append one line to
05-READINGS/progress/W8.md:
    <surah> | <ayat> | AUDIT CLEAN | <artifact URL>

WHERE TO SPEND THOUGHT. The agreed readings and the hadith picks are the
entire job; everything else is three commands. Run --data, --build and
--audit without deliberation. Think hard about: what the commentaries
SHARE for this ayah, whether a term is already settled in the glossary,
and whether the hadith picks carry a cross-tradition convergence. If a
gate fails, fix the input - never the gate.

AT THE END report: surahs built, total ayat, every gate that fired and
why, and every term you put in glossary-in/W8.md.

Start now with /surah-purge 67
67Makki30الملك
68Makki52القلم
69Makki52الحاقة
70Makki44المعارج
71Makki28نوح
72Makki28الجن
73Makki20المزمل
74Makki56المدثر
75Makki40القيامة
76Madani31الانسان
77Makki50المرسلات
78Makki40النبإ
79Makki46النازعات
80Makki42عبس
81Makki29التكوير
82Makki19الإنفطار
83Makki36المطففين
84Makki25الإنشقاق
85Makki22البروج
86Makki17الطارق
87Makki19الأعلى
88Makki26الغاشية
89Makki30الفجر
Wave 2W3 · W4 · W2Open these as wave-1 windows free up.1999 āyātlongest ~7.6 h
W3 The great Makkan narratives sūrahs 13–20 0/8 776 āyāt ~7.6 h open ▾

al-Raʿd to Ṭā Hā — Ibrāhīm, the Cave, Maryam, and the fullest telling of Mūsā.

You are WINDOW 3 of 9 building the Qur'an surah pages.
Your range is surahs 13-20 - 8 surahs, 776 ayat. No other window
touches them.

FIRST: read 05-READINGS/GLOSSARY.md and hold to it. It is the controlled
vocabulary for all nine windows and it is READ-ONLY for you. When you
settle a term it does not carry, append the row to
05-READINGS/glossary-in/W3.md instead - never edit the master.

Then work ONE SURAH AT A TIME, in order, all five steps of the skill, and
publish it before starting the next. A finished surah should be finished.

After each surah run:
    python check_consistency.py <N>
and fix anything it flags HARD before you move on. Then append one line to
05-READINGS/progress/W3.md:
    <surah> | <ayat> | AUDIT CLEAN | <artifact URL>

WHERE TO SPEND THOUGHT. The agreed readings and the hadith picks are the
entire job; everything else is three commands. Run --data, --build and
--audit without deliberation. Think hard about: what the commentaries
SHARE for this ayah, whether a term is already settled in the glossary,
and whether the hadith picks carry a cross-tradition convergence. If a
gate fails, fix the input - never the gate.

AT THE END report: surahs built, total ayat, every gate that fired and
why, and every term you put in glossary-in/W3.md.

Start now with /surah-purge 13
13Madani43الرعد
14Makki52ابراهيم
15Makki99الحجر
16Makki128النحل
17Makki111الإسراء
18Makki110الكهف
19Makki98مريم
20Makki135طه
W4 The prophet cycles sūrahs 21–26 0/6 676 āyāt ~6.5 h open ▾

al-Anbiyāʾ to al-Shuʿarāʾ. Keeping them in one window is what keeps the retellings consistent with each other.

You are WINDOW 4 of 9 building the Qur'an surah pages.
Your range is surahs 21-26 - 6 surahs, 676 ayat. No other window
touches them.

FIRST: read 05-READINGS/GLOSSARY.md and hold to it. It is the controlled
vocabulary for all nine windows and it is READ-ONLY for you. When you
settle a term it does not carry, append the row to
05-READINGS/glossary-in/W4.md instead - never edit the master.

Then work ONE SURAH AT A TIME, in order, all five steps of the skill, and
publish it before starting the next. A finished surah should be finished.

After each surah run:
    python check_consistency.py <N>
and fix anything it flags HARD before you move on. Then append one line to
05-READINGS/progress/W4.md:
    <surah> | <ayat> | AUDIT CLEAN | <artifact URL>

WHERE TO SPEND THOUGHT. The agreed readings and the hadith picks are the
entire job; everything else is three commands. Run --data, --build and
--audit without deliberation. Think hard about: what the commentaries
SHARE for this ayah, whether a term is already settled in the glossary,
and whether the hadith picks carry a cross-tradition convergence. If a
gate fails, fix the input - never the gate.

AT THE END report: surahs built, total ayat, every gate that fired and
why, and every term you put in glossary-in/W4.md.

Start now with /surah-purge 21
21Makki112الأنبياء
22Madani78الحج
23Makki118المؤمنون
24Madani64النور
25Makki77الفرقان
26Makki227الشعراء
W2 The war pair, then the narratives sūrahs 8–12 0/5 547 āyāt ~5.3 h open ▾

al-Anfāl and al-Tawba are read as one — no basmala divides them. Then Yūnus, Hūd, and Yūsuf, which is a single unbroken story.

You are WINDOW 2 of 9 building the Qur'an surah pages.
Your range is surahs 8-12 - 5 surahs, 547 ayat. No other window
touches them.

FIRST: read 05-READINGS/GLOSSARY.md and hold to it. It is the controlled
vocabulary for all nine windows and it is READ-ONLY for you. When you
settle a term it does not carry, append the row to
05-READINGS/glossary-in/W2.md instead - never edit the master.

Then work ONE SURAH AT A TIME, in order, all five steps of the skill, and
publish it before starting the next. A finished surah should be finished.

After each surah run:
    python check_consistency.py <N>
and fix anything it flags HARD before you move on. Then append one line to
05-READINGS/progress/W2.md:
    <surah> | <ayat> | AUDIT CLEAN | <artifact URL>

WHERE TO SPEND THOUGHT. The agreed readings and the hadith picks are the
entire job; everything else is three commands. Run --data, --build and
--audit without deliberation. Think hard about: what the commentaries
SHARE for this ayah, whether a term is already settled in the glossary,
and whether the hadith picks carry a cross-tradition convergence. If a
gate fails, fix the input - never the gate.

AT THE END report: surahs built, total ayat, every gate that fired and
why, and every term you put in glossary-in/W2.md.

Start now with /surah-purge 8
8Madani75الأنفال
9Madani129التوبة
10Makki109يونس
11Makki123هود
12Makki111يوسف
Wave 3W5 · W7 · W9Last — shortest sūrahs, lightest load.1366 āyātlongest ~7.4 h
W5 Late Makkan sūrahs 27–35 0/9 546 āyāt ~5.8 h open ▾

al-Naml to Fāṭir — sustained argument, the signs in creation.

You are WINDOW 5 of 9 building the Qur'an surah pages.
Your range is surahs 27-35 - 9 surahs, 546 ayat. No other window
touches them.

FIRST: read 05-READINGS/GLOSSARY.md and hold to it. It is the controlled
vocabulary for all nine windows and it is READ-ONLY for you. When you
settle a term it does not carry, append the row to
05-READINGS/glossary-in/W5.md instead - never edit the master.

Then work ONE SURAH AT A TIME, in order, all five steps of the skill, and
publish it before starting the next. A finished surah should be finished.

After each surah run:
    python check_consistency.py <N>
and fix anything it flags HARD before you move on. Then append one line to
05-READINGS/progress/W5.md:
    <surah> | <ayat> | AUDIT CLEAN | <artifact URL>

WHERE TO SPEND THOUGHT. The agreed readings and the hadith picks are the
entire job; everything else is three commands. Run --data, --build and
--audit without deliberation. Think hard about: what the commentaries
SHARE for this ayah, whether a term is already settled in the glossary,
and whether the hadith picks carry a cross-tradition convergence. If a
gate fails, fix the input - never the gate.

AT THE END report: surahs built, total ayat, every gate that fired and
why, and every term you put in glossary-in/W5.md.

Start now with /surah-purge 27
27Makki93النمل
28Makki88القصص
29Makki69العنكبوت
30Makki60الروم
31Makki34لقمان
32Makki30السجدة
33Madani73الأحزاب
34Makki54سبإ
35Makki45فاطر
W7 Ṭiwāl al-Mufaṣṣal and the Madanī cluster sūrahs 50–66 0/17 611 āyāt ~7.4 h open ▾

Qāf to al-Taḥrīm — 11 of these 17 are Madanī: community and law.

You are WINDOW 7 of 9 building the Qur'an surah pages.
Your range is surahs 50-66 - 17 surahs, 611 ayat. No other window
touches them.

FIRST: read 05-READINGS/GLOSSARY.md and hold to it. It is the controlled
vocabulary for all nine windows and it is READ-ONLY for you. When you
settle a term it does not carry, append the row to
05-READINGS/glossary-in/W7.md instead - never edit the master.

Then work ONE SURAH AT A TIME, in order, all five steps of the skill, and
publish it before starting the next. A finished surah should be finished.

After each surah run:
    python check_consistency.py <N>
and fix anything it flags HARD before you move on. Then append one line to
05-READINGS/progress/W7.md:
    <surah> | <ayat> | AUDIT CLEAN | <artifact URL>

WHERE TO SPEND THOUGHT. The agreed readings and the hadith picks are the
entire job; everything else is three commands. Run --data, --build and
--audit without deliberation. Think hard about: what the commentaries
SHARE for this ayah, whether a term is already settled in the glossary,
and whether the hadith picks carry a cross-tradition convergence. If a
gate fails, fix the input - never the gate.

AT THE END report: surahs built, total ayat, every gate that fired and
why, and every term you put in glossary-in/W7.md.

Start now with /surah-purge 50
50Makki45ق
51Makki60الذاريات
52Makki49الطور
53Makki62النجم
54Makki55القمر
55Madani78الرحمن
56Makki96الواقعة
57Madani29الحديد
58Madani22المجادلة
59Madani24الحشر
60Madani13الممتحنة
61Madani14الصف
62Madani11الجمعة
63Madani11المنافقون
64Madani18التغابن
65Madani12الطلاق
66Madani12التحريم
W9 Qiṣār al-Mufaṣṣal sūrahs 90–114 0/24 209 āyāt ~5.1 h open ▾

al-Shams to al-Nās — the shortest, the most recited, the most memorised.

You are WINDOW 9 of 9 building the Qur'an surah pages.
Your range is surahs 90-114 - 24 surahs, 209 ayat. No other window
touches them.

FIRST: read 05-READINGS/GLOSSARY.md and hold to it. It is the controlled
vocabulary for all nine windows and it is READ-ONLY for you. When you
settle a term it does not carry, append the row to
05-READINGS/glossary-in/W9.md instead - never edit the master.

Then work ONE SURAH AT A TIME, in order, all five steps of the skill, and
publish it before starting the next. A finished surah should be finished.

After each surah run:
    python check_consistency.py <N>
and fix anything it flags HARD before you move on. Then append one line to
05-READINGS/progress/W9.md:
    <surah> | <ayat> | AUDIT CLEAN | <artifact URL>

WHERE TO SPEND THOUGHT. The agreed readings and the hadith picks are the
entire job; everything else is three commands. Run --data, --build and
--audit without deliberation. Think hard about: what the commentaries
SHARE for this ayah, whether a term is already settled in the glossary,
and whether the hadith picks carry a cross-tradition convergence. If a
gate fails, fix the input - never the gate.

AT THE END report: surahs built, total ayat, every gate that fired and
why, and every term you put in glossary-in/W9.md.

Start now with /surah-purge 90
90Makki20البلد
91Makki15الشمس
92Makki21الليل
93Makki11الضحى
94Makki8الشرح
95Makki8التين
96Makki19العلق
97Makki5القدر
98Madani8البينة
99Madani8الزلزلة
100Makki11العاديات
101Makki11القارعة
102Makki8التكاثر
103Makki3العصر
104Makki9الهمزة
105Makki5الفيل
106Makki4قريش
107Makki7الماعون
108Makki3الكوثر
109Makki6الكافرون
110Madani3النصر
111Makki5المسد
112Makki4الإخلاص
113Makki5الفلق
114Makki6الناس

④ Between waves — merge the glossary

Windows running together cannot see each other, so each writes its new terms to its own file. Merging is yours, and it takes minutes.

#Do
1Read every 05-READINGS/glossary-in/W*.md
2Where two windows settled the same term differently, pick one; the loser goes under ## Disputed
3Append the agreed rows to 05-READINGS/GLOSSARY.md
4Add a matching row to HARD or SOFT in check_consistency.py — otherwise the glossary and the checker drift apart
5Re-run the checker over everything built so far
python check_consistency.py

⑤ When all 114 are built

One window, one command. This is the only check that can see across sūrahs — every gate in the engine verifies one sūrah against itself and passes while the muṣḥaf as a whole drifts.

python check_consistency.py
It reportsMeaning
HARDa variant that can only be the wrong rendering of that term. Fix these.
SOFTambiguous, shown with context. Judge each in seconds.
Namesa prophet left transliterated — Mūsā where the rest say Moses.
Coveragehow far the glossary and the checker have drifted apart.
Shapereadings under 80 or over 1200 characters.

Done looks like this: 114 pages each AUDIT CLEAN, the checker reporting CONSISTENT, 111 lines with URLs across progress/W1..W9.md, and ## Disputed in the glossary either empty or carrying your decisions.

⑥ If a gate fires

⚠️ Fix the input. Never the gate. Every one of these was a real defect that shipped before it became a gate — softening one to get a green undoes the reason it exists.
GateWhat it caught
texta sūrah whose āyah count is not the canonical Kūfan count — the build refuses outright
verbatima quotation that is not character-for-character in its source
page ≤ 16 MBal-Baqarah first built at 19.8 MB and would not have published
relevanceexcerpts landing off the passage — was 31.9%, now 3.3%
false silencean edition both quoted and named absent on the same āyah
countsa header number that is not what the page rendered
← AL-WAQF