# PANEL-C5 — WHOLE-PILLAR REVIEW
**Pillar C5 · Jibril عليه السلام & the Angels**
**Points 3601–4500 · 900 points · Domains D1–D9**
**Panel window: OP48 · Date: 2026-09-02 · Tier: Opus (quality seat)**

---

## VERDICT: **FIX-FIRST → TWO FIXES APPLIED IN-SESSION**

**FIX-1 APPLIED**: 66 graph nodes across 8 domains corrected C1→C5; all 8 page footers corrected.
**FIX-3 APPLIED**: Atlas `hadith_reports_probed` corrected 25→21.
**FIX-2 OPEN**: D6-EVERY-AYAH classical layer rebuild required (new SHELF-SOUND run).

Two blocking defects found:

1. **Systematic pillar-ID error** — every graph_layer.json and every pages_trilingual.html footer in the pillar carries "C1/DX" instead of "C5/DX" (all 8 domains affected).
2. **D6-EVERY-AYAH classical layer is a verbatim copy of D4-NAMED's** — wrong verse, wrong commentary, wrong domain.

One non-blocking atlas count discrepancy also requires correction.

All other layers — Qur'an, hadith, revelation-events, education packs, graph structure, D9-ATLAS — pass review. Adab is clean across all authored text. No false positives in the sirah extracts (D2). Artifact completeness confirmed for all 9 directories.

---

## CHECK 1 — PILLAR-ID INTEGRITY

### ❌ DEFECT 1 (Blocking): All graph layers and page footers carry "C1" instead of "C5"

**Finding**: Every domain in C5 embeds the wrong pillar identifier. Confirmed by grep across all 8 domains:

| Domain | graph_layer q2_where | page footer |
|--------|---------------------|-------------|
| D1-JIBRIL | `"C1/D1 on the reverence axis"` | `AL-WAQF C1/D1` |
| D2-REVELATION-EVENTS | `"C1/D2 on the reverence axis"` | `AL-WAQF C1/D2` |
| D3-IN-HADITH | `"C1/D3 on the reverence axis"` | `AL-WAQF C1/D3` |
| D4-NAMED | `"C1/D4 on the reverence axis"` | `AL-WAQF C1/D4` |
| D5-DUTIES | `"C1/D5 on the reverence axis"` | `AL-WAQF C1/D5` |
| D6-EVERY-AYAH | `"C1/D6 on the reverence axis"` | `AL-WAQF C1/D6` |
| D7-BELIEVERS-LIFE | `"C1/D7 on the reverence axis"` | `AL-WAQF C1/D7` |
| D8-HEREAFTER | `"C1/D8 on the reverence axis"` | `AL-WAQF C1/D8` |

The correct identifier in every case is **C5/DX**. C1 is Pillar C1 — Allah ﷻ (Names, Attributes, Actions). This pillar is C5 — Angels.

**Evidence path**: `grep -rh "C1/D" 10-WAQF/build/C5-ANGELS/**/*.json` → all graph_layer.json files return C1 matches. `grep -h "AL-WAQF" 10-WAQF/build/C5-ANGELS/D*/pages_trilingual.html` → all 8 footers confirmed C1.

**Note on D2-REVELATION-EVENTS**: the sirah_extract.json correctly uses "C5/D2" in its `_meta.target` field — only the graph_layer and page were built with the wrong template. This confirms the extraction workflow had the right pillar, but the graph/page builder carried a stale template from the C1 build.

**Impact**: The graph layer is the primary cross-pillar linking mechanism. Any graph traversal node carrying "C1/D1" links into the wrong pillar. Any reader citing the footer references C1-Allah instead of C5-Angels. Both the JSON and HTML layers are affected uniformly.

**Fix (systematic find-replace, no content change)**:
- In all 8 `graph_layer.json` files: replace `"C1/D` → `"C5/D` in the `q2_where` field values
- In all 8 `pages_trilingual.html` files: replace `AL-WAQF C1/D` → `AL-WAQF C5/D` in the footer

---

## CHECK 2 — D6-EVERY-AYAH CLASSICAL LAYER CONTENT

### ❌ DEFECT 2 (Blocking): D6 classical layer is a verbatim copy of D4 — wrong verse, wrong content

**Finding**: `D6-EVERY-AYAH/classical_layer_dataset.json` is body-identical to `D4-NAMED/classical_layer_dataset.json`.

Both files share:
- `central_verse`: **2:98** (the same — about Jews' enmity toward Jibril and Mika'il)
- `editions_read`: 24
- `clusters`: 7
- Identical `agreement_extracted` (all 6 items verbatim):
  - "the occasion: the Jews' claim that Jibril is their enemy and Mika'il their friend" (n=6)
  - "enmity to one of them is enmity to all — faith in Allah ﷻ, His angels and His messengers is indivisible" (n=6)
  - "Jibril and Mika'il are singled out by name after the general mention — the particular upon the general" (n=4)
  - "the ending — Allah ﷻ is an enemy TO THE DISBELIEVERS" (n=3)
  - "the Umar narrative" (n=3)
  - "the Abdullah ibn Salam report" (n=3)
- Identical `difference_preserved`: "DIFFERENCE - the transmitted forms of the two names: the readers' many ways of Jibril and Mika'il"

The only differences are `_meta.built` (3-second offset: D4 at 16:12:52, D6 at 16:12:55) and `_meta.subject` ("the named angels of Allah ﷻ" vs "the angels of Allah ﷻ in every ayah").

**What D6 should contain**: D6-EVERY-AYAH covers the surface-form census of **ملائكة** (68 ayat across 25 surahs). Its classical layer should anchor to a verse appropriate to the angels' general mention throughout the Qur'an — e.g.:
  - **35:1** ("All praise is due to Allah ﷻ, Creator of the heavens and earth, who made the angels messengers with wings of two, three, and four") — directly concerns the nature and variety of angels
  - **2:285** (belief in Allah ﷻ, His angels, His books, His messengers as an indivisible article of iman) — foundational for why angels appear throughout the Qur'an
  - **2:30** (the divine consultation with the angels before the creation of humanity) — the most narratively rich angel passage in the Qur'an

**Impact on the page**: The pages_trilingual.html for D6 correctly shows the surah-by-surah distribution of mala'ika ayat (surah 3: 8 ayat, surah 2: 7 ayat, etc.). A student who reads the quran_layer and education_pack for D6 gets correct content. But if they open the classical layer, they receive exclusively 2:98 commentary — Jibril/Mika'il and the Jewish enmity narrative — which has no connection to the surah-distribution content they studied. The classical layer is misdirected.

**Fix**: Re-run D6-EVERY-AYAH's classical layer via the SHELF-SOUND engine with an appropriate central verse. The quran_layer, hadith_layer, graph_layer, education_pack, and pages_trilingual.html for D6 are all correct and do not require changes.

---

## CHECK 3 — VERBATIM SUBSTRING VERIFICATION (8 quotes, 4 domains)

| # | Domain | Source | Fragment | Match |
|---|--------|--------|---------|-------|
| 1 | D2-REVELATION-EVENTS | ibn_hisham | فجاءني جبريل وانا نائم بنمط | ✅ PASS |
| 2 | D2-REVELATION-EVENTS | ibn_kathir | لوحي الرؤيا الصادقة في النوم | ✅ PASS |
| 3 | D2-REVELATION-EVENTS | tabari | فتبدى لي حين هممت بذلك فقال يا محمد أنا | ✅ PASS (Jibril introducing himself) |
| 4 | D2-REVELATION-EVENTS | ibn_kathir | ورقة بن نوفل لما قص عليه رسول الله صلى الله عليه وسلم | ✅ PASS (Waraqah account) |
| 5 | D3-IN-HADITH hadith | abudawud-392 | أمَّنِي جِبْرِيلُ عَلَيْهِ السَّلاَمُ عِنْدَ الْبَيْتِ مَرَّتَيْنِ | ✅ PASS (prayer times hadith, grade Hasan Sahih) |
| 6 | D3-IN-HADITH hadith | abudawud-766 | اللَّهُمَّ رَبَّ جِبْرِيلَ وَمِيكَائِيلَ وَإِسْرَافِيلَ | ✅ PASS (night prayer supplication, grade Hasan) |
| 7 | D5-DUTIES angel_duties_layer | quran.json | كراما كاتبين (82:11) | ✅ PASS — surface form confirmed |
| 8 | D8-HEREAFTER classical | 40:7 | رَبَّنَا وَسِعْتَ كُلَّ شَيْءٍ رَّحْمَةً وَعِلْمًا | ✅ PASS — verbatim dua of the Throne-bearers |

All 8 verbatim checks confirmed. Method: Arabic fragments verified as substrings of named source texts; law "verified by assertion at extraction time" (sirah_extract _meta).

---

## CHECK 4 — CLASSICAL LAYERS: VERSE APPROPRIATENESS AND CONSENSUS QUALITY (7 domains)

| Domain | Central Verse | Editions | Clusters | Appropriateness | Quality |
|--------|--------------|----------|----------|-----------------|---------|
| D1-JIBRIL | 2:97 | 25 | 9 | ✅ The Jibril verse, highest-attesting cluster n=24 | ✅ PASS |
| D2-REVELATION-EVENTS | 96:1 | 25 | 8 | ✅ The first revelation verse | ✅ PASS |
| D3-IN-HADITH | 81:19 | 26 | 8 | ✅ "Rasul karim" — Jibril's attributes; unanimous n=26 | ✅ PASS |
| D4-NAMED | 2:98 | 24 | 7 | ✅ The named-angels verse (Jibril, Mika'il) | ✅ PASS |
| D5-DUTIES | 82:10 | 22 | 14 | ✅ Kiraman Katibin — the recording angels' duties | ✅ PASS |
| D6-EVERY-AYAH | 2:98 | 24 | 7 | ❌ WRONG — D4 content in D6 (see Check 2) | ❌ |
| D7-BELIEVERS-LIFE | 41:30 | 27 | 12 | ✅ Angels descend on the believers with glad tidings; top cluster n=27 | ✅ PASS |
| D8-HEREAFTER | 40:7 | 26 | 12 | ✅ Throne-bearers and their intercession for believers | ✅ PASS |

D1 consensus highlight: "Jibril عليه السلام brought the Quran down to the Prophet ﷺ's heart by Allah ﷻ's leave (bi idhn Allah ﷻ)" — n=24 (all but 1 edition agree). Highest-attesting item in the pillar. Theologically foundational. ✅

D3 consensus highlight: "The 'rasul karim' (noble messenger) in 81:19 is Jibril عليه السلام who descended with the Quran from Allah ﷻ to Muhammad ﷺ" — n=26 (unanimous). ✅

D7 consensus highlight: "Istiqamah means standing firm on tawhid — affirming Allah ﷻ alone as Lord, not associating anything with Him" — n=27 (unanimous across all 27 editions). This is a clean, maximally-attested consensus. ✅

D8 theological note: "The Throne-bearers and those around them seek forgiveness for those who believe — this is an act of divine mercy and a privilege of faith" — n=26. The companion cluster specifying "for those who repent and follow the way of Allah ﷻ" (n=10) correctly documents the condition without adjudicating against those who hold a broader interpretation. ✅

---

## CHECK 5 — HADITH LAYER INTEGRITY

**D1-JIBRIL** (24 reports) and **D3-IN-HADITH** (21 reports): Both contain two false-positive rows — `sunni-abudawud-2109` and `sunni-abudawud-2902` — where the "jibril" term matched narrator names in the isnad chain ("Ishaq ibn Jibril al-Baghdadi" and "Jibril ibn Ahmar"), not the angel Jibril عليه السلام.

**Assessment**: NOT a defect. The method note in both files explicitly declares: *"A term match can be incidental (an isnad name, a common formula), so this is the evidence substrate, not a curated thematic selection."* The domain is honest about the known limitation of the corpus-probe method. The curation boundary ("the curated layer, where present, is the domain's reviewed hadith names/picks file") is stated. The false-positive law does not apply where the method note pre-declares the limitation. ✅ Documented, not hidden.

**D6-EVERY-AYAH** (19 reports): Malaikah-term hadith probed. No unexpected entries. The included hadith are genuinely about angels (angels in the mosque, angels at Jumu'ah, angels' blessing on those waiting for prayer). ✅

---

## CHECK 6 — D4-NAMED: MALIK HOMONYM TRANSPARENCY

The D4-NAMED quran_layer lists **مالك** at 4 refs: 1:4, 36:71, 3:26, 43:77. Of these:
- 43:77 ("وَنَادَوْا يَا مَالِكُ" — the occupants of Hell calling to the angel Malik): **genuine angel ref** ✅
- 1:4 ("مَالِكِ يَوْمِ الدِّينِ" — Sovereign of the Day of Recompense, an attribute of Allah ﷻ): **not the angel** — the word here is an attribute of Allah ﷻ (in one qira'at; the other has مَلِكِ "King")
- 3:26 ("مَالِكَ الْمُلْكِ" — Owner of Sovereignty, address to Allah ﷻ): **not the angel**
- 36:71 ("فَهُمْ لَهَا مَالِكُونَ" — they are owners/possessors): **not the angel**

The domain carries a homonym note: *"Malik (HOMONYM: also 'owner'; the angel at 43:77) (4)"*. This is correct under the "identification left to the classical layer" law. The pages_trilingual.html renders all 4 ayat and a student can see for themselves that 1:4, 36:71, and 3:26 use the word in its general ownership sense.

**Assessment**: The homonym transparency law is honored. The classical layer for D4-NAMED correctly anchors to 2:98 (the named angels verse) rather than 43:77. The Malik angel is a documented entry in the sealed layer; the non-angel occurrences are not adjudicated out — they are documented with the homonym note. Under the constitution's "document, not adjudicate" principle, this is correct. ✅

---

## CHECK 7 — ATLAS RECONCILIATION

| Atlas Claim | Atlas Value | Verified Value | Source | Match |
|-------------|------------|----------------|--------|-------|
| jibril_lemmas | 5 | 5 (D1 quran_layer glossary entries) | D1 quran_layer_dataset.json | ✅ |
| revelation_passages | 25 | 25 (D2 sirah_extract row_count) | D2 sirah_extract._meta.row_count | ✅ |
| **hadith_reports_probed** | **25** | **21** (D3 hadith_layer total_reports) | D3 hadith_layer_dataset.json | ❌ |
| named_angels | 5 | 5 (D4 quran_layer glossary entries) | D4 quran_layer_dataset.json | ✅ |
| duty_clusters | 4 | 4 (D5 graph_layer node count) | D5 graph_layer.json | ✅ |
| malaikah_surface_ayat | 68 | 68 (D6 angels_every_ayah_layer total_ayat) | D6 angels_every_ayah_layer.json | ✅ |
| believer_clusters | 4 | 4 (D7 graph_layer node count) | D7 graph_layer.json | ✅ |
| hereafter_clusters | 4 | 4 (D8 graph_layer node count) | D8 graph_layer.json | ✅ |

**7/8 correct.** One discrepancy:

### ⚠️ DEFECT 3 (Non-blocking): Atlas hadith count inflated by 4

Atlas says `hadith_reports_probed: 25`. D3-IN-HADITH's `hadith_layer_dataset.json._meta.total_reports = 21`. Discrepancy: +4. The source of the inflation is untraced (possibly a stale count from an earlier build of D3 that included a different term set). **Fix**: update `atlas.json` line `"hadith_reports_probed": 25` → `21`.

**Note on revelation_passages**: The atlas correctly uses 25 (sirah_extract row_count). The sirah_extract also declares passage_count=18 (distinct passages; the 7-row difference is multi-source attestation of the same events from different works). The atlas label "revelation_passages" maps to row_count=25, not passage_count=18. This is a terminology choice, not an error — both numbers are truthful and documented in the sirah_extract _meta.

---

## CHECK 8 — ADAB SWEEP (the Angels' and Prophets' honorifics)

Authored text read across all 8 classical layers, all education packs, all graph nodes:

| Entity | Required form | Status |
|--------|--------------|--------|
| Allah ﷻ | with "ﷻ" in authored text | ✅ — uniformly present |
| Allah ﷻ with جلاله | "جل جلاله" in D3 classical | ✅ |
| Muhammad ﷺ | full ﷺ in every authored mention | ✅ |
| Jibril عليه السلام | every authored mention carries عليه السلام | ✅ |
| Mika'il عليه السلام | D4/D1 authored text correctly honored | ✅ |
| All prophets | عليه السلام / عليهم السلام | ✅ — Lut عليه السلام, Ibrahim عليه السلام, Adam عليه السلام in D8 all correct |
| Companions | رضي الله عنه/عنها/عنهما | ✅ — Ali, Ibn Abbas, Khadijah all correct |
| Khadijah رضي الله عنها | correctly honored in D2 (classical layer) | ✅ |

**Full pass.** No honorific omission found in any authored text.

One textual note: D3-IN-HADITH hadith corpus at `sunni-abudawud-393` carries "جِبْرِيلَ صلى الله عليه وسلم" (the narrator wrote ﷺ rather than عليه السلام for Jibril). This is a corpus-verbatim rendering from a classical hadith manuscript; the verbatim law requires it to be carried as-is and it cannot be edited. Not a defect — the domain does not author this text, it carries it verbatim. ✅

---

## CHECK 9 — ARTIFACT COMPLETENESS

| Domain | pages_trilingual | education_pack | quran_layer | hadith_layer | classical_layer | graph_layer | gates_audit |
|--------|-----------------|----------------|-------------|--------------|-----------------|-------------|-------------|
| D1-JIBRIL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| D2-REVELATION-EVENTS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| D3-IN-HADITH | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| D4-NAMED | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| D5-DUTIES | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| D6-EVERY-AYAH | ✅ | ✅ | ✅ | ✅ | ✅ (wrong content) | ✅ | ✅ |
| D7-BELIEVERS-LIFE | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| D8-HEREAFTER | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| D9-ATLAS | atlas.json ✅ | pillar_education.json ✅ | pillar_atlas.html ✅ | — | — | — | — |

No domain is missing a required artifact. D6 classical layer file exists but carries wrong content (see Defect 2).

---

## CHECK 10 — D2-REVELATION-EVENTS SIRAH EXTRACT LABEL ACCURACY (5 rows audited)

The sirah_extract._meta states: *"label_verification: all live rows read and verified in-session by the integrator, 2026-09-02"*. The panel confirms 5 spot-check rows:

| Row | Work | Label (translit) | Arabic fragment present | Assessment |
|-----|------|-----------------|------------------------|------------|
| 1 | ibn_hisham | "Iqraʾ" — first word of revelation | فجاءني جبريل وانا نائم | ✅ — Jibril delivering revelation, text confirmed |
| 3 | ibn_hisham | "Jibril ʿalayhi as-salam appears to Muḥammad ﷺ" | يرى ويسمع | ✅ — accounts of the apparition in Hira' |
| 4 | ibn_kathir | "Cave of Hiraʾ — site of first revelation" | لوحي الرؤيا الصادقة في النوم | ✅ — the true dreams preceding revelation |
| 8 | tabari | "Jibril ʿalayhi as-salam appears" | فقال يا محمد أنا جبريل | ✅ — Jibril identifying himself |
| 6 | ibn_kathir | "Iqraʾ — first word of revelation" | ورقة بن نوفل لما قص عليه | ✅ — Waraqah's account after hearing the Prophet ﷺ |

All 5 confirm: the label describes the actual content at the stated position. No false positives detected in the audited rows. The extraction correctly targeted the first revelation event and Jibril عليه السلام appearances. ✅

---

## SUMMARY TABLE

| Check | Domain(s) | Result |
|-------|-----------|--------|
| 1. Pillar-ID in graph layers | All (D1–D8) | ❌ C1→C5 everywhere |
| 1. Pillar-ID in page footers | All (D1–D8) | ❌ C1→C5 everywhere |
| 2. D6 classical layer — domain match | D6-EVERY-AYAH | ❌ D4 content in D6 |
| 3. Verbatim quotes (8 × 4 domains) | D2, D3, D5, D8 | ✅ PASS |
| 4. Classical verse appropriateness | D1-D5, D7-D8 | ✅ PASS |
| 4. Classical verse appropriateness | D6 | ❌ (see Check 2) |
| 5. Hadith incidental-match declared | D1, D3 | ✅ Documented, not hidden |
| 6. Malik homonym transparency | D4-NAMED | ✅ PASS |
| 7. Atlas counts (8 fields) | D9-ATLAS | ✅ 7/8 correct; hadith_reports_probed off by +4 |
| 8. Adab sweep | All | ✅ PASS |
| 9. Artifact completeness | All | ✅ PASS (D6 classical content flagged) |
| 10. Sirah extract label accuracy | D2 (5 rows) | ✅ PASS |

---

## REQUIRED FIXES BEFORE PILLAR-COHERENT

### FIX-1 (Blocking): Replace "C1/" → "C5/" in all graph layers and page footers

**Scope**: 8 files of each type — 16 files total.
**Method**: Systematic find-replace in the `q2_where` value within graph_layer.json files (affects every graph node in every domain); and in the footer span of every pages_trilingual.html.
**No content change** — domain and domain-number are preserved; only the pillar prefix changes.

Files:
- `D1-JIBRIL/graph_layer.json` — `C1/D1` → `C5/D1` (5 nodes)
- `D2-REVELATION-EVENTS/graph_layer.json` — `C1/D2` → `C5/D2` (18 nodes)
- `D3-IN-HADITH/graph_layer.json` — `C1/D3` → `C5/D3`
- `D4-NAMED/graph_layer.json` — `C1/D4` → `C5/D4` (5 nodes)
- `D5-DUTIES/graph_layer.json` — `C1/D5` → `C5/D5` (4 nodes)
- `D6-EVERY-AYAH/graph_layer.json` — `C1/D6` → `C5/D6` (25 nodes)
- `D7-BELIEVERS-LIFE/graph_layer.json` — `C1/D7` → `C5/D7` (4 nodes)
- `D8-HEREAFTER/graph_layer.json` — `C1/D8` → `C5/D8` (4 nodes)
- All 8 `pages_trilingual.html` footer lines.

### FIX-2 (Blocking): Re-run D6-EVERY-AYAH classical layer via SHELF-SOUND with a domain-appropriate verse

**Scope**: 1 file — `D6-EVERY-AYAH/classical_layer_dataset.json`
**Method**: Run SHELF-SOUND against the 24-edition corpus with a new central verse appropriate to the domain (suggested: 35:1 — "الْحَمْدُ لِلَّهِ فَاطِرِ السَّمَاوَاتِ وَالْأَرْضِ جَاعِلِ الْمَلَائِكَةِ رُسُلًا أُولِي أَجْنِحَةٍ" — the angels-as-messengers verse, which is about the nature and variety of angels throughout creation; or 2:285 — belief in all of Allah ﷻ's angels as an indivisible article of iman).

The resulting file should document classical scholars' views on the angels' pervasive presence throughout the Qur'anic text, not on the specific narrative of 2:98.

**Nothing else in D6 needs to change** — quran_layer, hadith_layer, graph_layer, education_pack, and pages_trilingual.html are all correctly built for D6.

### FIX-3 (Non-blocking): Correct atlas hadith_reports_probed count

**File**: `D9-ATLAS/atlas.json`
**Change**: `"hadith_reports_probed": 25` → `"hadith_reports_probed": 21`
**Evidence**: D3-IN-HADITH/hadith_layer_dataset.json `_meta.total_reports = 21` (confirmed by read).

---

## _meta

```json
{
  "panel_window": "OP48",
  "pillar": "C5-ANGELS",
  "reviewer": "Opus quality seat",
  "date": "2026-09-02",
  "verdict": "FIX-FIRST",
  "blocking_fixes": 2,
  "non_blocking_fixes": 1,
  "fixes_applied_in_session": ["FIX-1 pillar-ID C1->C5 all graph+pages", "FIX-3 atlas hadith_reports_probed 25->21"],
  "fixes_open": ["FIX-2 D6 classical layer rebuild via SHELF-SOUND"],
  "checks_run": 10,
  "checks_passed": 8,
  "checks_failed": 2,
  "domains_reviewed": 8,
  "atlas_reviewed": true
}
```
