73 runs
Review runs
Each run that read the Quran database against the source books: who or what did it, what it covered and how its findings split by verdict.
- 73
- 949,142
- 717,391
- 714,986
- 0
Run 73
syntax_book v2 load: 5053 ayahs vs Shamela 86
export /tmp/v2b86_stage run v2-book86-full
This run stores no findings; it loaded data.
Run 72
syntax_book v2 rollback of 203 named ayahs: 203 ayahs
book 86 Gemini-challenge fixes: Gemini doubt, Opus wrong, second Opus agrees, validators, blind re-score
This run stores no findings; it loaded data.
Run 71
syntax_book v2 load: 440 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 70
syntax_book v2 rollback of 4 named ayahs: 4 ayahs
fix4: 4:61 T38, 31:7 T49, 3:73 T33, 89:16 RSLT-ف
This run stores no findings; it loaded data.
Run 69
syntax_book v2 load: 540 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 68
syntax_book v2 rollback of 6 named ayahs: 6 ayahs
cert edge direction in not_stated (6 ayahs)
This run stores no findings; it loaded data.
Run 67
syntax_book v2 load: 4818 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 66
syntax_book v2 rollback of 318 named ayahs: 318 ayahs
cert edge direction: V -> CERT per tagset (318 ayahs); before reload
This run stores no findings; it loaded data.
Run 65
syntax_book v2 load: 45 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 64
syntax_book v2 load: 34 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 63
syntax_book v2 load: 60 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 62
syntax_book v2 load: 227 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 61
syntax_book v2 load: 99 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 60
syntax_book v2 load: 52 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 59
syntax_book v2 load: 123 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 58
syntax_book v2 load: 286 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 57
syntax_book v2 load: 62 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 56
syntax_book v2 load: 60 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 55
syntax_book v2 load: 75 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 54
syntax_book v2 load: 83 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 53
syntax_book v2 load: 43 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 52
syntax_book v2 load: 88 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 51
syntax_book v2 load: 77 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 50
syntax_book v2 load: 78 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 49
syntax_book v2 load: 112 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 48
syntax_book v2 load: 128 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 47
syntax_book v2 load: 50 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 46
syntax_book v2 load: 129 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 45
syntax_book v2 load: 165 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 44
syntax_book v2 load: 200 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 43
syntax_book v2 load: 74 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 42
syntax_book v2 load: 73 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 41
syntax_book v2 load: 135 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 40
syntax_book v2 load: 206 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 39
syntax_book v2 load: 176 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 38
syntax_book v2 load: 285 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 37
syntax_book v2 load: 22 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 36
syntax_book v2 load: 35 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 35
syntax_book v2 load: 37 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 34
syntax_book v2 load: 82 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 33
syntax_book v2 load: 42 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 32
syntax_book v2 load: 33 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 31
syntax_book v2 load: 59 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 30
syntax_book v2 load: 49 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 29
syntax_book v2 load: 43 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
Run 28
syntax_book v2 load: 6195 ayahs vs Shamela 86
export quran/review/treebank/v2-book86 run v2-book86-full
This run stores no findings; it loaded data.
-
syntax_* cells whose latest finding is agrees (not read by the Phase 4 UM class check): every cited book entry scanned for a rival alternative, flagged cells hand-read under the UM rule (downgrade-only)
Phase 4 rival sweep Step 5: agrees->uncertain downgrades from batches out001-074 (838 cells), verifier-confirmed (270 cells checked, 36 refutations, 1 revision round; 22 reverted to agrees, 14 newly confirmed). Rehearsed on a cp -c clone: dbdiff CHANGE SET MATCHES, gates 119/2, drift clean, sync 11/0, coverage 100%.
838 findings Agrees 0 Uncertain 838
-
syntax_* claim cells without a finding after the syntax Phase 4 apply (not_stated sweep: hand readings, the TAQ-fixed Phase 3 comparer, consolidation decisions, and each book's stated silence)
Phase 4 not_stated sweep over the 17166 treebank cells with no finding after runs 16-25: {'1 hand reading': 16026, '4 not_stated (cross-reference only)': 1135, '3 TAQ-fixed comparer': 5}. Hand readings: every cell no comparer tied a statement to was read by hand in 22916, 86 and 150578 (opus readers over 98 batches + the 649 unaligned / untied / named-head cells of rounds 1-3), strict extent and elided-POS rules (a phrase end agrees only on a stated span), a targeted re-check of the batches read before those rules, a class-ruling consolidation pass, and a fresh adversarial verifier; TAQ-fixed comparer: compare_phase3.py with «وجوبا تقديره» / «تقديره: فهم» read (phase4/taq, 17 changed cells hand-checked); not_stated notes give each book's reason and cite the passage read; cross-reference-only cells quote the cross-reference (the morphology run 12 precedent). Disjoint from every earlier finding.
17,166 findings Agrees 8,677 Differs 11 Uncertain 2,734 Not stated 5,744
-
syntax_* and ayah_word_segments cells corrected by the syntax Phase 4 apply (post-fix state)
one finding per claim cell the Phase 4 apply edited or inserted (39 decisions, keyed by node, edge or word; data_corrections reason "Syntax Phase 4 book review"), citing the page its decision rests on: 22916 first in surahs 1-9, 86 first in 59-114, then 22928 / 150578; no overrides; 22916/86 pages checked against the page cache (vol/page printed on the page id, a quote piece verbatim). All agrees. Includes the morphology cells of 2:186:11 دعان (segment 122397 aspect / person / number)
80 findings Agrees 80
-
syntax_* cells corrected by the syntax Phase 3 apply (post-fix state)
one finding per treebank cell the Phase 3 apply edited or inserted (88 decisions, keyed by node or edge; data_corrections reason "Syntax Phase 3 book review"), citing the page its decision rests on: 22916 first in surahs 1-9, 86 first in 59-114, then 22928 / 150578; no overrides; 22916/86 pages checked against the page cache (vol/page printed on the page id, a quote piece verbatim). agrees, except 1 cell set by the treebank convention (decision edge 6602's VS phrase_last_node_id, the clause-extent practice): not_stated with the reason
175 findings Agrees 174 Not stated 1
-
syntax_nodes ELIDED part_of_speech_id/elided_text and PHRASE phrase_type/phrase_first_node_id/phrase_last_node_id vs Shamela 86 «إعراب القرآن الكريم» (Dār al-Ṣaḥāba) word analyses and clause statements (syntax Phase 3)
comparer syntax/phase3/compare_phase3.py (imports phase1/compare_relation.py alignment + phase2/compare_head.py named heads) + conventions_phase3.v1.tsv: ELIDED POS only from «تقديره X», «بفعل محذوف», an explicit كائن/استقرّ word, the named hidden pronoun, «حرف نداء محذوف» (S2 rule 6; «متعلّق بمحذوف خبر/نعت/صلة» = existence only, not_stated); elided_text = the pronoun the book names; PP from the preposition's object read «جار ومجرور» / «حرف جرّ» + «مجرور» / «(PP) متعلّق»; clause and SC phrases from the statements whose quote starts at the phrase's first written word (tightest phrase), type from the statement's qualifier (DIR) or derived from the clause head's category (S2 rule 7), last only when the quote reaches the last written word; S2 rules 1/2 (a DIR mismatch differs only under a row measured ok, else uncertain; the book's alternative = uncertain), 8, 9 (C-NASIKH, C-TASWIYA, C-SHAN, REPCONV uncertain, never fixes); S6 R1 (150578 giving the treebank value makes a differs uncertain); class CLASS-MUBTADA-TAQDIR held uncertain by the comparer (D15) until the consolidation decided it whole (the decisions file: 8 members differs, fixed by the Phase 3 apply; 42004/20944 uncertain; noun تقديرs agree); quotes verbatim at their page offset; 50 random agrees hand-checked 50/50 (seed 20260924c); differs / both-books-state-another-value / class / carried cells read by hand (1 decision file(s), 85 cells folded in); not_stated/not_found not recorded (D12; Phase 4 sweep)
29,244 findings Agrees 28,969 Differs 15 Uncertain 260
-
syntax_nodes ELIDED part_of_speech_id/elided_text and PHRASE phrase_type/phrase_first_node_id/phrase_last_node_id vs Shamela 22916 «الجدول في إعراب القرآن» «الإعراب» sections and clause statements (syntax Phase 3)
comparer syntax/phase3/compare_phase3.py (imports phase1/compare_relation.py alignment + phase2/compare_head.py named heads) + conventions_phase3.v1.tsv: ELIDED POS only from «تقديره X», «بفعل محذوف», an explicit كائن/استقرّ word, the named hidden pronoun, «حرف نداء محذوف» (S2 rule 6; «متعلّق بمحذوف خبر/نعت/صلة» = existence only, not_stated); elided_text = the pronoun the book names; PP from the preposition's object read «جار ومجرور» / «حرف جرّ» + «مجرور» / «(PP) متعلّق»; clause and SC phrases from the statements whose quote starts at the phrase's first written word (tightest phrase), type from the statement's qualifier (DIR) or derived from the clause head's category (S2 rule 7), last only when the quote reaches the last written word; S2 rules 1/2 (a DIR mismatch differs only under a row measured ok, else uncertain; the book's alternative = uncertain), 8, 9 (C-NASIKH, C-TASWIYA, C-SHAN, REPCONV uncertain, never fixes); S6 R1 (150578 giving the treebank value makes a differs uncertain); class CLASS-MUBTADA-TAQDIR held uncertain by the comparer (D15) until the consolidation decided it whole (the decisions file: 8 members differs, fixed by the Phase 3 apply; 42004/20944 uncertain; noun تقديرs agree); quotes verbatim at their page offset; 50 random agrees hand-checked 50/50 (seed 20260924c); differs / both-books-state-another-value / class / carried cells read by hand (1 decision file(s), 85 cells folded in); not_stated/not_found not recorded (D12; Phase 4 sweep)
29,077 findings Agrees 28,771 Differs 13 Uncertain 293
-
syntax_* cells corrected by the syntax Phase 2 apply (post-fix state)
one finding per treebank cell the Phase 2 apply edited or inserted (24 decisions, data_corrections reason "Syntax Phase 2 book review"), citing the page its decision rests on: 22916 first in surahs 1-9, 86 first in 59-114, then 22928 / 150578; no overrides; 22916/86 pages checked against the page cache (vol/page printed on the page id, a quote piece verbatim). all agrees
25 findings Agrees 25
-
syntax_edges.head_node_id vs Shamela 86 «إعراب القرآن الكريم» (Dār al-Ṣaḥāba) word analyses and clause statements (syntax Phase 2)
comparer syntax/phase2/compare_head.py (imports phase1/compare_relation.py alignment) + conventions_head.v1.tsv: NAMED heads (the word the book names after its role word, resolved in the ayah; a PHRASE head = the phrase containing it; an elided head by the named function) and POSITIONAL heads (S2 rule 3: only when this book's Phase 1 relation finding agrees; the unique slot grammar fixes); S2 rules 1/2 (a NAMED mismatch differs only under a row measured ok, else uncertain; the book's alternative = uncertain), 4 (conj chain), 5 (link never fixed on two books), 8 (short quotes tied to the entry); S6 R1 (150578 naming the treebank head makes a differs uncertain); representation rows H1/H3/H4/H5 uncertain, never fixes; quotes verbatim at their page offset; 50 random agrees hand-checked 50/50 (seed 20260924b); differs / both-books-name-another-head / carried cells read by hand (1 decision file(s), 1317 cells folded in); not_stated/not_found not recorded (D12; Phase 4 sweep)
35,734 findings Agrees 34,371 Differs 24 Uncertain 1,339
-
syntax_edges.head_node_id vs Shamela 22916 «الجدول في إعراب القرآن» «الإعراب» sections and clause statements (syntax Phase 2)
comparer syntax/phase2/compare_head.py (imports phase1/compare_relation.py alignment) + conventions_head.v1.tsv: NAMED heads (the word the book names after its role word, resolved in the ayah; a PHRASE head = the phrase containing it; an elided head by the named function) and POSITIONAL heads (S2 rule 3: only when this book's Phase 1 relation finding agrees; the unique slot grammar fixes); S2 rules 1/2 (a NAMED mismatch differs only under a row measured ok, else uncertain; the book's alternative = uncertain), 4 (conj chain), 5 (link never fixed on two books), 8 (short quotes tied to the entry); S6 R1 (150578 naming the treebank head makes a differs uncertain); representation rows H1/H3/H4/H5 uncertain, never fixes; quotes verbatim at their page offset; 50 random agrees hand-checked 50/50 (seed 20260924b); differs / both-books-name-another-head / carried cells read by hand (1 decision file(s), 1317 cells folded in); not_stated/not_found not recorded (D12; Phase 4 sweep)
31,775 findings Agrees 30,194 Differs 24 Uncertain 1,557
-
syntax_* cells corrected by the syntax Phase 1 apply (post-fix state)
one finding per treebank cell the Phase 1 apply edited or inserted (145 decisions, data_corrections reason "Syntax Phase 1 book review"), citing the page its decision rests on: 22916 first in surahs 1-9, 86 first in 59-114, then 22928 / 150578; overrides 43028->22928, 33173->86, 35511->86, 15497->150578; 22916/86 pages checked against the page cache (vol/page printed on the page id, a quote piece verbatim). agrees, except elided POS cells set by the treebank convention where the books ground existence only (S2 rule 6): not_stated with the reason
269 findings Agrees 259 Not stated 10
-
syntax_edges.relation vs Shamela 86 «إعراب القرآن الكريم» (Dār al-Ṣaḥāba) word analyses and clause statements (syntax Phase 1)
comparer syntax/phase1/compare_relation.py + conventions_syntax.v1.tsv (plan S2 rules 1-9: ok rows measured >=98%/n>=5 in this run, equal_only mismatches uncertain, book alternatives uncertain, structural conventions never fixes); quotes verbatim at their page offset; 50 random agrees hand-checked 50/50; differs / both-books-disagree cells read by hand (1 decision file(s), 1774 cells folded in); not_stated/not_found not recorded (D12; Phase 4 sweep)
39,555 findings Agrees 37,413 Differs 279 Uncertain 1,863
-
syntax_edges.relation vs Shamela 22916 «الجدول في إعراب القرآن» «الإعراب» sections and clause statements (syntax Phase 1)
comparer syntax/phase1/compare_relation.py + conventions_syntax.v1.tsv (plan S2 rules 1-9: ok rows measured >=98%/n>=5 in this run, equal_only mismatches uncertain, book alternatives uncertain, structural conventions never fixes); quotes verbatim at their page offset; 50 random agrees hand-checked 50/50; differs / both-books-disagree cells read by hand (1 decision file(s), 1774 cells folded in); not_stated/not_found not recorded (D12; Phase 4 sweep)
35,559 findings Agrees 32,944 Differs 271 Uncertain 2,344
-
ayah_word_segments cells corrected from the audit review list (follow-up Step 2)
each corrected cell cites the page its decision rests on; decisions + verifier: followups/step2/workflow_result.json
35 findings Agrees 35
-
ayah_word_segments after the row-level reanalysis of أربى 16:92, يعفون 2:237, يرجون 24:60 (follow-up Step 1)
new noun lemma 4845 and stems 12114/12115 via corrections.insert_row (ADR 0001); each cell cites the page its reanalysis rests on
8 findings Agrees 8
-
ayah_word_segments Ruling 31 verbs after correction (Phase 5b)
five verbs whose form the books give as II/IV, moved to the form-II/IV lemma rows the importer had created (plan D19)
10 findings Agrees 10
-
ayah_word_segments cells no source states — final sweep (Phase 5)
not_stated with a reason per class (not_stated_classes.json); source_book_id = the book read for the word when its entry was read (plan D17/D18)
130,220 findings Agrees 0 Not stated 130,220
-
ayah_word_segments cells corrected by the Phase 5 whole-word reanalysis (post-fix state)
each corrected cell cites the page its reanalysis was grounded on (plan D18)
42 findings Agrees 42
-
ayah_word_segments voice, particle lemmas and remaining gaps vs Shamela 86 (Phase 5)
new cells grounded from the Phase 1 alignment (voice from the named subject, particle lemmas, POS/pronoun/special-group gaps); mappings measured ≥98%; conflicts read by hand; 84 fixes verified (plan D18)
45,558 findings Agrees 45,361 Differs 13 Uncertain 184
-
ayah_word_segments voice, particle lemmas and remaining gaps vs Shamela 22916 al-Jadwal (Phase 5)
new cells grounded from the Phase 1 alignment (voice from the named subject, particle lemmas, POS/pronoun/special-group gaps); mappings measured ≥98%; conflicts read by hand; 84 fixes verified (plan D18)
23,265 findings Agrees 23,130 Differs 3 Uncertain 132
-
ayah_word_segments person/gender/number/is_indefinite vs Shamela 86 «إعراب القرآن الكريم» (hidden subject, named pronouns, جمع/مثنى) (Phase 4)
reuses the Phase 1 alignment; mappings <98% give uncertain; conflicts read by hand, 83 fixes verified (plan D16)
69,143 findings Agrees 66,536 Differs 33 Uncertain 2,574
-
ayah_word_segments person/gender/number/is_indefinite vs Shamela 22916 al-Jadwal «الإعراب» (hidden subject, named pronouns, جمع/مثنى) (Phase 4)
reuses the Phase 1 alignment; mappings <98% give uncertain; conflicts read by hand, 83 fixes verified (plan D16)
39,431 findings Agrees 38,488 Differs 7 Uncertain 936
-
ayah_word_segments verb_form and derivation vs ṣarf statements (al-Jadwal 22916 «الصرف», Jabal 21017, Lisān 1687, al-ʿUkbarī 22928, al-Durra 30271, al-Mujtabā 9617, al-Zuḥaylī 22915) (Phase 3)
per lemma: a verb's form belongs to its lemma; 729 lemmas without a mechanical statement and all conflicts read by hand; fixes/fills verified adversarially (plan D15); jabal-root-only matches give no finding
24,929 findings Agrees 24,673 Differs 15 Uncertain 241
-
ayah_word_segments root_id and lemma_id vs Shamela 21017 (Jabal) root entries (Phase 2)
root: the word is quoted/named in its root entry; lemma: only when the entry quotes the ayah or names the lemma form (plan D13/D14); 688 items read by hand, 7 fixes verified adversarially
96,116 findings Agrees 95,069 Differs 20 Uncertain 1,027
-
ayah_word_segments grammatical cells vs Shamela 86 «إعراب القرآن الكريم» (Dār al-Ṣaḥāba) (Phase 1)
comparer + conventions table (plan D10/D11); every differs read by hand, fixes adversarially verified; not_stated/not_found not recorded (D12)
160,585 findings Agrees 154,385 Differs 83 Uncertain 6,117
-
ayah_word_segments grammatical cells vs Shamela 22916 «الجدول في إعراب القرآن» «الإعراب» sections (Phase 1)
comparer + conventions table (plan D10/D11); every differs read by hand, fixes adversarially verified; not_stated/not_found not recorded (D12)
100,385 findings Agrees 93,603 Differs 32 Uncertain 6,750
-
ayah_word_segments (POS, root, verb form, derivation) vs Shamela 22916 «الجدول في إعراب القرآن» «الصرف» sections
4,457 ṣarf entries parsed and matched by script; every disagreement (193) read by hand with the raw corpus line and, for suspected errors, Shamela 86 / 30271 / 22915; 40 random agreements hand-checked. 13 cells corrected (data_corrections 1027–1039); أربى 16:92 fix rolled back (1040–1051) pending a noun lemma. Verdicts: agrees / differs / uncertain.
9,432 findings Agrees 9,282 Differs 52 Uncertain 98
-
ayah_irab.text_arabic vs Shamela 150578 «الإعراب المفصل لكتاب الله المرتل», all rows
Script alignment (whitespace + NFC, presentation conventions folded) plus every differing row read by hand; word spans checked against the book's ayah sections; 62 corrections applied the same day as user_review (verdicts delegated by the user).
30,486 findings Agrees 30,021 Differs 465

