# PANEL — C2 WHOLE-PILLAR COHERENCE REVIEW
**Reviewer:** OP41 (Opus, quality seat — whole-pillar adversarial panel)
**Date:** 2026-09-02
**Mission:** Deepest cross-layer audit of C2 (Bismillah & Mercy of Allah ﷻ — exalted is He — points 901–1800, bases 901–1800). Adversarial. Find what speed may have cut.
**Domains audited:** D0-Basmala · D1-The-Name · D2-Ar-Rahman · D3-Ar-Rahim · D4-Mercy-Root · D5-Mercy-Sunnah · D6-Mercy-Humanity · D7-Mercy-Creation · D8-Mercy-Civilization · D9-Atlas
**Previous panel:** OP35 (2026-09-02) returned PILLAR-COHERENT — count reconciliation correct; viewing artifacts and snippet content not checked

---

## VERDICT

> ### ❌ FIX-FIRST
>
> Three material defects prevent PILLAR-COHERENT certification:
>
> 1. **D1 is unbuilt.** The Name of Allah ﷻ domain (the Bismillah pillar's first domain) has its statistical layer (name_distribution.json) correctly inherited from C1, but every viewing artifact is an empty shell: pages_trilingual.html shows 0 ayat in all 30 juz, quran_layer_dataset.json is all zeros, education_pack.json is all zeros. SOURCES.md explicitly confirms the build script was never run.
>
> 2. **D5 reading page is a stub.** The Sunnah layer (mercy_hadith_layer.json, 33 verified hadith) is real and sealed, but pages_trilingual.html renders nothing — three section headers with "(refs in the dataset)" and no hadith text. The education_pack also carries a stale divine-mercy-itself count (12 vs. actual 18) because it was not rebuilt after the panel correction that added 6 reports.
>
> 3. **D8 contains multiple probe false positives.** Four of the five attested entries checked have snippet content that does not match the claimed institution. The term probe located the search term in the source text but in contexts that are historically and substantively different from the institution being registered. Specific mismatches documented below.
>
> **What is sound:** The sealed data layers (D2, D3, D5) are correct and consistent. All seven Hafiz counts reconcile across every layer that carries them. Adab law is consistently applied in all composed fields. Five hadith IDs spot-checked verbatim. D6, D7, D9 Atlas counts verified and internally consistent. Basmala census verified (1+112+1=114; Surah 9 confirmed without prefix).

---

## §1 — DEFECT REGISTER (FIX-REQUIRED)

### D1.1 — D1-THE-NAME: domain unbuilt — viewing artifacts are empty shells

| Artifact | Observed | Expected |
|---|---|---|
| `pages_trilingual.html` | 30 juz sections, all showing "0 ayat / (refs in the dataset)" | Real ayat with Arabic/English/Urdu per occurrence |
| `quran_layer_dataset.json` | All 30 juz entries: occurrences=0, refs=[] | Populated from name_distribution.json |
| `education_pack.json` | All glossary entries: occurrences=0, first_ref=null | Populated from the built layer |
| Build status | SOURCES.md §3 (point 903): *"The seal file does not yet exist — it is written by the first run of the domain build script, which has not yet been executed. This SOURCES.md is the pre-build declaration."* | Build script executed; seal present |

**Root cause:** The domain was planned (SOURCES.md declared, name_distribution.json inherited from C1), but the build script was never run. The gates_audit_record.json hashed the empty shell page (hash `28fa62fabef8ef4d`) and marked it done — the gate checks existence and hash but not content.

**Impact:** D1 is the Bismillah pillar's first domain — the Name of Allah ﷻ itself. A reader opening pages_trilingual.html sees 30 blank sections. No point in this domain can be marked complete until the build runs.

---

### D1.2 — D5-MERCY-SUNNAH: trilingual page is a stub; education_pack carries stale count

**Stub page:** `D5-MERCY-SUNNAH/pages_trilingual.html` shows three class sections with correct labels and header counts, but ALL render "(refs in the dataset)" — no hadith text, no Arabic, no English, no Urdu.

**Stale count:** education_pack.json and pages_trilingual.html report divine-mercy-itself = 12. The current `mercy_hadith_layer.json` has 18 entries in that class (12 original + 6 added by post-panel correction `panel_corrections_2`). The atlas (built after the correction) correctly reports 18.

| Source | command-to-mercy | divine-mercy-itself | other-mercy-theme | Total |
|---|---|---|---|---|
| mercy_hadith_layer.json (current) | 12 ✅ | **18** | 3 | 33 |
| education_pack.json | 12 ✅ | **12** ← STALE | 3 | 27 |
| pages_trilingual.html header | 12 ✅ | **12** ← STALE | 3 | — |
| atlas.json c2_summary | 12 ✅ | **18** ✅ | 3 | 33 |

**Root cause:** education_pack and pages_trilingual were built from an earlier version of mercy_hadith_layer.json (pre-panel-correction). The panel added 6 divine-mercy-itself entries; the downstream artifacts were not rebuilt. The atlas was rebuilt after the correction and is current.

---

### D1.3 — D8-MERCY-CIVILIZATION: probe false positives — snippets do not attest the claimed institution

Four of five attested entries checked have snippet content that is historically unrelated to the institution being registered. The mark-stripped probe found the search term in the corpus, but the surrounding passage is a different document, person, or event.

| Cluster | Work | Locator | Term found | Snippet content | Problem |
|---|---|---|---|---|---|
| Constitution of Madinah | Ibn Hishām (SE-02) | vol 2 p.187 | الصحيفة | Khabbab reading Surah Ta-Ha from a **ṣaḥīfah** to Umar's sister during his conversion — the scene where Umar converts | This ṣaḥīfah is a written page of Surah Ta-Ha, not the Madinan constitutional document. FALSE POSITIVE. |
| First waqf / Khaybar | al-Ṭabarī (SE-06) | vol 1 p.134 | خيبر | Tribe of 'Ād delegating to Mecca; Huzayla bt. Bakr whose lineage connects to al-Khaybari | Pre-Islamic tribal genealogy. Not Umar's رضي الله عنه Khaybar consultation. FALSE POSITIVE. |
| First waqf / Khaybar | Ibn Hishām (SE-02) | vol 1 p.288 | خيبر | ʿAbd al-Muṭṭalib consulting a soothsayer (ʿārifah) at Khaybar about whether to sacrifice his son | Pre-Islamic story of ʿAbd al-Muṭṭalib. Not the first waqf. FALSE POSITIVE. |
| ʿUmar's dīwān | al-Ṭabarī (SE-06) | vol 1 p.450 | الديوان | **Khosrow's** Persian administrative register (ديوان كسرى) — his tax and land records | The Sasanian Persian dīwān, not ʿUmar's رضي الله عنه Islamic dīwān. FALSE POSITIVE. |
| Ahl al-Ṣuffa | Ibn Hishām (SE-02) | vol 1 p.320 | الصفة | Baḥīrā the monk "not recognizing the **ṣifa**" (the physical mark of prophethood) in the young Muhammad ﷺ | "الصفة" here means a characteristic/mark, not the mosque bench/portico. FALSE POSITIVE. |

**Valid D8 entries confirmed:** Ibn Saʿd (vol 1 p.254) and Ibn Kathīr (vol 5 p.331) for ahl al-Ṣuffa correctly quote "كان أهل الصفة ناسا من أصحاب رسول الله ﷺ." al-Wāqidī and al-Ṭabarī (vol 1 p.468, "يوم الحديبية") for Ḥudaybiyya are contextually relevant. The 6 AWAITED-ACQUISITION entries are honestly labeled and do not claim attestation.

**Net assessment of D8:** 5 false positives of 17 registered as "attested" (29%). The domain cannot be described as "attested: 17, awaited: 6" when 5 of the 17 attested entries cite the wrong passage.

---

## §2 — DATA LAYER INTEGRITY (all verified)

### Cross-layer count reconciliation

| Count | D2/D3 | D4-Root | D9-Atlas | Status |
|---|---|---|---|---|
| ar-Raḥmān occurrences | 57 ✅ | رَحْمٰن=57 ✅ | 57 ✅ | **CONSISTENT** |
| ar-Raḥīm occurrences | 116 ✅ | رَحِيم=116 ✅ | 116 ✅ | **CONSISTENT** |
| ar-Raḥīm referential split | divine=114, msg=1, believers=1 ✅ | — | (114,1,1) ✅ | **CONSISTENT** |
| r-h-m root total | — | 339 ✅ | 339 ✅ | **CONSISTENT** |
| mercy-between-people (D6 quran input) | — | 8 ✅ | — | D6 quran_count=8 ✅ **CONSISTENT** |
| command-to-mercy (D6 hadith input) | — | — | 12 ✅ | D6 hadith_count=12 ✅ **CONSISTENT** |
| mercy-as-provision-care (D7 input) | — | 42 ✅ | — | D7 unique_ayah_keys=42 ✅ **CONSISTENT** |

**name_distribution.json internal reconciliation:**
- by_juz sum: 86+144+141+142+173+138+98+67+66+172+110+49+102+86+26+14+81+94+34+69+106+98+50+93+57+110+44+191+37+21 = **2699** ✅ CALCULATED — matches `_meta.total`
- by_place sum: 970 (Makki) + 1729 (Madani) = **2699** ✅ CALCULATED — matches `_meta.total`

**mercy_root_layer lemma sum:**
116+114+57+28+12+6+4+1+1 = **339** ✅ CALCULATED — matches `_meta.total_word_positions` and `by_root_table_entries`

**verse_classes reconciliation (رَحْمَة):**
114 refs − 2 multi-occurrence ayahs (39:38, 43:32) = 112 unique keys → 8+26+42+13+19+4 = **112** ✅ CALCULATED

**basmala_census:**
1 (1:1 as first ayah) + 112 (surah prefixes, surahs 2–8, 10–114) + 1 (27:30 inside text) = **114** ✅ CALCULATED — surah 9 confirmed without prefix

---

## §3 — TRILINGUAL PAGES AUDIT (3 pages opened)

| Domain | Page | Content status | Method declaration | Arabic text present | English text present | Urdu text present |
|---|---|---|---|---|---|---|
| D1-THE-NAME | `pages_trilingual.html` | ❌ EMPTY — 30 juz, all "0 ayat / (refs in the dataset)" | Present (in method box) | ❌ None | ❌ None | ❌ None |
| D2-AR-RAHMAN | `pages_trilingual.html` | ✅ REAL — 57 ayat shown, one section | ✅ Uthmani + Sahih International + Junagarhi v1.1.3 named | ✅ Uthmani, e.g. "بِسْمِ ٱللَّهِ ٱلرَّحْمَٰنِ ٱلرَّحِيمِ" at 1:1 | ✅ Sahih International verbatim | ✅ Junagarhi verbatim |
| D3-AR-RAHIM | `pages_trilingual.html` | ✅ REAL — 116 ayat shown, one section | ✅ Same declaration, editions named | ✅ Uthmani at every ref | ✅ Sahih International verbatim | ✅ Junagarhi verbatim |
| D5-MERCY-SUNNAH | `pages_trilingual.html` | ❌ STUB — 3 sections, all "(refs in the dataset)" | Present (in method box) | ❌ None rendered | ❌ None rendered | ❌ None rendered |

**Occurrences verified (D2 sample):** 1:1 (بِسْمِ ٱللَّهِ ٱلرَّحْمَٰنِ ٱلرَّحِيمِ), 1:3 (ٱلرَّحْمَٰنِ ٱلرَّحِيمِ), 2:163 (وَإِلَٰهُكُمْ إِلَٰهٌ وَٰحِدٌ لَّآ إِلَٰهَ إِلَّا هُوَ ٱلرَّحْمَٰنُ ٱلرَّحِيمُ), 13:30 — all genuine ayat from the sealed corpus. ✅

**Occurrences verified (D3 sample):** 1:1, 1:3, 2:37 (فَتَلَقَّىٰٓ ءَادَمُ مِن رَّبِّهِۦ كَلِمَٰتٍ فَتَابَ عَلَيْهِ إِنَّهُۥ هُوَ ٱلتَّوَّابُ ٱلرَّحِيمُ), 2:54, 2:128 — all genuine ayat from the sealed corpus. ✅

---

## §4 — HADITH SPOT-CHECK (5 IDs verified)

All five checked by reading the Arabic text and confirming it is consistent with the declared collection, book, number, and English summary.

| ID | Collection | Book | Num | Arabic content | Verdict |
|---|---|---|---|---|---|
| sunni-abudawud-4940 | Abu Dawud | 43 | 169 | "الرَّاحِمُونَ يَرْحَمُهُمُ الرَّحْمَنُ ارْحَمُوا أَهْلَ الأَرْضِ" | ✅ VERIFIED |
| sunni-bukhari-6020 | Bukhari | 78 | 28 | "قَبَّلَ رَسُولُ اللَّهِ ﷺ الْحَسَنَ... مَنْ لاَ يَرْحَمُ لاَ يُرْحَمُ" | ✅ VERIFIED |
| sunni-bukhari-7447 | Bukhari | 97 | 50 | "لَمَّا قَضَى اللَّهُ الْخَلْقَ كَتَبَ عِنْدَهُ فَوْقَ عَرْشِهِ إِنَّ رَحْمَتِي سَبَقَتْ غَضَبِي" | ✅ VERIFIED |
| sunni-ibnmajah-188 | Ibn Majah | 0 | 189 | "كَتَبَ رَبُّكُمْ عَلَى نَفْسِهِ بِيَدِهِ قَبْلَ أَنْ يَخْلُقَ الْخَلْقَ رَحْمَتِي سَبَقَتْ غَضَبِي" | ✅ VERIFIED |
| sunni-tirmidhi-1935 | Tirmidhi | 27 | 30 | "الرَّحِمُ شُجْنَةٌ مِنَ الرَّحْمَنِ فَمَنْ وَصَلَهَا وَصَلَهُ اللَّهُ" | ✅ VERIFIED |

---

## §5 — ADAB LAW COMPLIANCE

Sampled across all composed fields (reason, label, method, description, law) in all nine domains.

| Check | Finding |
|---|---|
| Allah ﷻ exaltation | Consistent in all composed fields across D2–D9. ✅ |
| Muhammad ﷺ honor | Consistent. D5 trilingual title: "Messenger of Allah ﷻ (Muhammad ﷺ)" — the ﷻ attaches to Allah, ﷺ to Muhammad ﷺ, correctly formed. ✅ |
| Prophets ʿalayhi/ʿalayhima as-salam | Consistent: Mūsā ʿalayhi as-salam, ʿĪsā ʿalayhi as-salam, Ibrāhīm and Lūṭ ʿalayhima as-salam, Khiḍr ʿalayhi as-salam, Dhū l-Qarnayn (unnamed prophet honorific not applied — correct, his status is a classical discussion). ✅ |
| Companions رضي الله عنه/ها | In reason fields: Jarīr b. ʿAbdullāh رضي الله عنه, al-Ḥasan رضي الله عنه, ʿAbdullāh ibn ʿAmr ibn al-ʿĀṣ رضي الله عنه, Salmān رضي الله عنه. ✅ The narrator field in humanity_mercy_layer: "ʿAbdullāh ibn ʿAmr ibn al-ʿĀṣ رضي الله عنه" ✅ |
| Arabic corpus text verbatim | ar fields in hadith layer are from the corpus — exempt under VERBATIM LAW; no evidence of retyping. ✅ |
| English translations verbatim | Sahih International and Junagarhi text carried as-is in trilingual pages; the method box states this explicitly. ✅ |

---

## §6 — EDUCATION PACK AUDIT

| Domain | Pack | TRUE and sourced? | Terminology |
|---|---|---|---|
| D1 | education_pack.json | All zeros — unbuilt. Glossary: occurrences=0, first_ref=null for all juz. | N/A |
| D5 | education_pack.json | Counts sourced from layer but 6 entries stale. FAQ text says "every located occurrence... each carries its ayah reference" — but these are hadith, not Quranic ayat. Minor terminology inaccuracy. | "ayat" used for hadith reports throughout |

---

## §7 — SOURCES.MD REGISTRIES

| Domain | SOURCES.md | Status |
|---|---|---|
| D1 | Substantive — 6 canonical sources listed, 7 classical works named, inheritance declared, two-source cross-check protocol specified, exclusion log complete. Pre-build declaration only (build not run). | Substantive ✅, unexecuted ⚠️ |
| D4 | Substantive (SOURCES.md for D4-MERCY-QURAN present). One integrity note: 18:10 in layer but absent from §1 table (41 rows listed vs 42 unique ayahs). Documented in D7 _meta. | Substantive ✅, minor SOURCES.md gap ⚠️ |
| D5 | Substantive (checked earlier panels). | Substantive ✅ |
| D6 | Substantive (SOURCES.md §8 protocol referenced for directionality tags). | Substantive ✅ |
| D8 | Substantive — red-line and source_class_legend declared. Honesty of AWAITED entries commendable. **But**: 5 of 17 "attested" entries are probe false positives; the attested_entries=17 count is overstated by those 5. | Declared substantive but 5 false positives undermine the claim |

---

## §8 — OPEN-WORK REGISTER (pre-existing, not new defects)

These were documented before this panel and remain open but do not block the FIX-FIRST designation:

| Item | Domain | Status |
|---|---|---|
| D0-D4 seals missing | D0, D4, D6, D7, D8, D9 | ⚠️ Noted in earlier panels — not a new finding |
| D7 SOURCES.md §1 table has 41 rows, layer has 42 unique ayahs (18:10 gap) | D7 | ⚠️ Documented in _meta.integrity_note — SOURCES.md needs correction |
| D8 not in D9 Atlas | D9 | ⚠️ Known timing gap — atlas built before D8 existed |
| D6 themes: "weak" and "animals" are SINGLE-SOURCE (hadith only) | D6 | ⚠️ Disclosed in the layer |

---

## §9 — FIX ACTIONS REQUIRED

| # | Action | Domain | Severity |
|---|---|---|---|
| FX1 | Run the D1 domain build script. Populate quran_layer_dataset.json, pages_trilingual.html, education_pack.json from the inherited name_distribution refs × quran.json corpus. The 2699 occurrences must reach the reading pages. | D1 | **BLOCKER** |
| FX2 | Rebuild D5 pages_trilingual.html from mercy_hadith_layer.json. Each of the 33 hadith must render with its Arabic text (or ar excluded per VERBATIM LAW if the template is corpus-text-only), English, and class label. | D5 | **BLOCKER** |
| FX3 | Rebuild D5 education_pack.json after FX2. The divine-mercy-itself count must read 18, not 12. | D5 | **BLOCKER** |
| FX4 | Audit D8 attested entries against actual snippet content. The 5 false-positive entries (Constitution of Madinah/ibn_hisham, both Khaybar entries, al-Tabari diwan, ibn_hisham ahl al-suffa/p.320) must either be replaced with passages that actually attest the institution, or be reclassified as CANNOT-VERIFY and removed from the attested_entries count. | D8 | **BLOCKER** |
| FX5 | Correct D7 SOURCES.md §1 table to list 42 unique ayahs (add 18:10 to the table). | D7 | MINOR |

---

## §10 — SEAL STATUS ACROSS C2

| Domain | Seal file | Status |
|---|---|---|
| D1 | `_C2-D1-SEAL.sha256` (name_distribution.json) | ✅ Present for statistical layer; build not run for viewing artifacts |
| D2 | `_C2-D2-SEAL.sha256` | ✅ SEALED |
| D3 | `_C2-D3-SEAL.sha256` | ✅ SEALED |
| D4 | No seal | ⚠️ Reviewed by PANEL-C2-MERCY.md (OP11); not sealed |
| D5 | `_C2-D5-SEAL.sha256` | ✅ SEALED (but downstream artifacts stale — see FX2, FX3) |
| D6 | No seal | ⚠️ No independent panel |
| D7 | No seal | ⚠️ No independent panel |
| D8 | No seal | ⚠️ No independent panel; 5 false positives (see FX4) |
| D9 | No seal | ⚠️ D8 absent from sources |

---

*Adversarial panel complete. The pillar's numerical spine is sound; the reading surface is not. Fix the four blockers, then re-panel.*

*Written by OP41 — window closed.*
