# Machine-Scholar Panel Review · C1 D2 Attributes Seed Layer
*labelled: machine-scholar review*
*Date: 2026-09-01 · Reviewer: OP6 (Opus, quality seat)*
*Scope: four files — SOURCES.md, build_attributes_layer.py, attributes_layer.json, _selftest_attributes.py*

**Layer facts (tool-printed / panel-verified):**
- 21 seed rows — within selftest band 18–24 ✅ VERIFIED (panel count from JSON `rows` array = 21)
- All 21 rows: `attestation.class = quran-direct` ✅ VERIFIED (JSON scan)
- All 21 rows: `gloss_en.source = UNSOURCED` ✅ VERIFIED (correct for seed; glosses arrive in Block 3)
- Anchor CHECK C — al-Qayyum=3, al-Samad=1, al-Qadir=45 ✅ VERIFIED (builder printed "CHECK C PASS"; positions confirmed in `occurrence_refs`)
- al-Qayyum three positions: 2:255, 3:2, 20:111 ✅ VERIFIED (JSON `occurrence_refs` match the al-Ḥayy al-Qayyūm formula)
- al-Samad hapax: CHECK B confirms text-count = lemma-count = 1 ✅ VERIFIED (builder printed "CHECK B PASS"; 112:2 sole entry)
- CHECK A (reassembly): builder printed "CHECK A PASS" on all word-positions ✅ VERIFIED
- D1 cross-refs: Allah ﷻ (2,699 occ), al-ʿAzīz (101 occ), al-Ḥakīm (97 occ) — all carry `cross_ref='also-in-D1'` ✅ VERIFIED (JSON)
- Required rows per selftest: all 10 present (al-Ḥayy, al-Qayyūm, al-Awwal, al-Ākhir, al-Ẓāhir, al-Bāṭin, al-Ṣamad, al-Aḥad, al-Baṣīr, al-Qādir) ✅ VERIFIED
- Excluded items: 26 entries in builder; none leaked into rows ✅ VERIFIED (selftest exclusion check)
- Schema gate: all 21 rows pass `validate_row()` — builder printed zero gate refusals ✅ VERIFIED
- Source seal: `_C1-D2-SOURCES-SEAL.sha256` present; four corpus files hashed; aqida/AQ-01–12 status declared as "pending acquisition" ✅ VERIFIED
- Total word-positions across all rows: ~3,811 (panel sum of `occurrences` fields) 📊 CALCULATED

---

## The Nine Seats

| # | Seat | Verdict | Severity | One-line reason |
|---|---|---|---|---|
| 1 | Usuli | PASS with NOTE | note | Non-adjudication posture is exemplary; al-Kursi and al-ʿArsh are mawāḍiʿ al-ṣifāt (objects of predication in the ṣifāt discussion), not ṣifāt themselves — Block 3 must type-annotate them |
| 2 | Muḥaddith | PASS | — | No ḥadīth claim is made; all `gloss_en` fields are `UNSOURCED`; ḥadīth corpora are declared in SOURCES.md §1 and correctly deferred to Block 4 |
| 3 | Mufassir | PASS with NOTE | note | The 21 mechanically-derived terms match classical tafsīr consensus on the attribute-bearing vocabulary of Āyat al-Kursī, al-Ikhlāṣ, and al-Ḥadīd 57:1–6 without exception; al-Ḥifẓ (Preservation) carries a classical distinction note for Block 3 |
| 4 | Qāriʾ | PASS with NOTE | note | Uthmānī/imlāʾī split method documented and applied; bi-segmental al-Qayyūm correctly caught by POS scan; `name_ar` for al-Ẓāhir and al-Bāṭin lack the initial fatḥa in the QAC lemma — this is a QAC lemma-representation artefact, not a data error, but must be documented in Block 3 |
| 5 | Lughawī | PASS with NOTE | note | Exclusions are philologically sound throughout; al-Aḥad (74 occ) and al-Ākhir (155 occ) have name-referent uses that are a tiny fraction of their lemma totals — Block 3 referential tagging is essential before these figures appear in any cited context |
| 6 | Ḥāfiẓ | PASS with NOTE | note | All three gate anchors (al-Qayyūm=3, al-Ṣamad=1, al-Qādir=45) match classical concordances and the QAC; spot-checks on all other counts are within expected ranges; one methodological note on al-Aḥad below |
| 7 | Historian | PASS with NOTE | note | Source seal recorded at build time; documented findings (i–v) preserved in builder source; seal is correctly marked partial (aqida corpus AQ-01–12 pending acquisition) — this must remain disclosed until the acquisition is complete |
| 8 | Pedagogue | PASS with NOTE | note | Scope boundary and lemma-level disclosure present in all 21 rows; al-Aḥad and al-Ākhir frequency gap needs explicit Block 3 attention; al-Kursi and al-ʿArsh need type-annotation so consumers distinguish ṣifāt from mawāḍiʿ al-ṣifāt |
| 9 | Adab Auditor | **DEFECT** | **defect** | `build_attributes_layer.py` uses `Allah ر` (Arabic letter rāʾ, U+0631) in exclusion reasons and in `SEED_NOTES_SUFFIX` — inconsistent with the same file's correct `Allah ﷻ` at line 9; the same wrong character propagates to all 21 rows in `attributes_layer.json`; and `_selftest_attributes.py` line 111 checks for `ر` instead of `ﷻ`, making the adab gate itself non-functional |

---

## Seat 9 Detail — Adab Defect

The Adab Law requires: *"Allah is always written with His exaltation (Allah ﷻ)"* — the correct Unicode character is U+FDFB (`ﷻ`).

**Pattern:** The same mid-file inconsistency found in the D1 SEED panel (OP1) and D1 HADITH panel (OP4): the docstring/header uses the correct glyph; the body strings use a shorthand that was never purged.

**File 1 — `build_attributes_layer.py`:**

| Location | Context | Current (wrong) | Required |
|---|---|---|---|
| Line 9 (docstring) | attribute-lemmas of… | `Allah ﷻ` | `Allah ﷻ` ✅ (this line is correct — baseline) |
| EXPLICIT_EXCLUDE, sinah reason | creation concept negated for | `Allah ر` | `Allah ﷻ` |
| EXPLICIT_EXCLUDE, nawm reason | creation concept negated for | `Allah ر` | `Allah ﷻ` |
| EXPLICIT_EXCLUDE, idhn reason | not an Attribute of | `Allah ر` | `Allah ﷻ` |
| EXPLICIT_EXCLUDE, khalf reason | not an Attribute of | `Allah ر` | `Allah ﷻ` |
| `SEED_NOTES_SUFFIX` constant | uses not addressed to | `Allah ر` | `Allah ﷻ` |

Total: 5 replacements in one file.

**File 2 — `_selftest_attributes.py`:**

| Line | Context | Current (wrong) | Required |
|---|---|---|---|
| 111 | adab gate check | `if u"ر" not in raw` | `if u"ﷻ" not in raw` (or literal `ﷻ`) |
| 111 | error message | `"adab mark ر missing"` | `"adab mark ﷻ missing"` |

The current gate checks for the Arabic letter rāʾ (U+0631), which appears in virtually every Arabic-text JSON file regardless of adab compliance — the gate cannot fail as written. The corrected gate must check for U+FDFB.

**File 3 — `attributes_layer.json`:**

All 21 row `notes` fields contain the `SEED_NOTES_SUFFIX` string with `Allah ر`. The `_meta.excluded` section contains the exclusion reason strings with `Allah ر`. These are both downstream outputs of the builder defect. Correct course: (a) apply the builder fix and rebuild, OR (b) patch all affected string values in the JSON directly under integrator authority.

**Cascade scope:** The defect is purely cosmetic — it does not affect counts, refs, attestation classes, schema validity, or the three gate checks. The data layer is otherwise sound and may be sealed immediately upon correction.

---

## Seat 1 Detail — Usuli Note

**al-Kursi and al-ʿArsh in the ṣifāt taxonomy:**

Both terms are mechanically correct as seed entries — they appear in the seed passages (al-Kursi at 2:255, al-ʿArsh at 57:4) and pass the POS filter. The builder correctly defers all classification to Block 3.

However, the Usuli seat records for the Block 3 builders: within the classical kalām discussion, **al-Kursi** and **al-ʿArsh** are consistently treated as *mawāḍiʿ al-ṣifāt* — objects through which attributes are predicated ("His Kursi encompasses the heavens and earth" is a statement about His knowledge/power, not a separate attribute) — rather than *ṣifāt dhātiyyah* (essential attributes like ʿIlm, Ḥayāt, Qudrah). All three positions (tafwīḍ, taʾwīl, ithbāt) discuss these terms in their own registers.

Block 3 must add a `type` field distinguishing:
- `sifah-dhatiyyah` (essential attribute: al-Ḥayy, al-ʿIlm, al-Qudrah, etc.)
- `mawduʿ-sifah` (object of attribute predication: al-Kursi, al-ʿArsh)
- `sifah-fiʿliyyah` (attribute of act: al-Mulk, al-Ḥifẓ — debated)

The non-adjudication principle is not at risk here. Recording the taxonomy as the scholars stated it (without crowning one school's reading) is exactly what this domain is built for.

---

## Seat 3 Detail — Mufassir Note

**al-Ḥifẓ (Preservation, 3 occurrences):**

The occurrence at 2:255 ("wa lā yaʾūduhu ḥifẓuhumā") is the seed-passage anchor. Classical mufassirūn divide on whether al-Ḥifẓ here is:
- A *ṣifah dhātiyyah* (essential attribute of Allah ﷻ — preservation is of His essence), as in Ibn Kathīr رحمه الله and al-Baghawī رحمه الله
- A *ṣifah fiʿliyyah* (attribute of divine act), as in several Ashʿarī readings where preservation is an act consequent upon His ʿIlm and Qudrah

This is a Block 3 annotation task, not a seed defect. The seed correctly includes al-Ḥifẓ as mechanically attested in the passage. The Usuli note above on the `type` field applies here as well.

---

## Seat 5 Detail — Lughawī Note

**al-Aḥad count (74 occurrences):**

The Name al-Aḥad as a Divine Name is used at 112:1 ("qul huwa Allāhu Aḥad") — one occurrence in the classical count. The lemma-level count of 74 includes all uses of the word across the text: "one person," "anyone," ordinal "one," etc. The ratio of Name-referent to total lemma is approximately 1:74. This is the most extreme name-to-lemma ratio in the entire seed.

The notes field correctly discloses this as "LEMMA-LEVEL." The Lughawī endorses the disclosure but flags it as the highest-priority Block 3 referential-tagging task in this layer — citing "al-Aḥad: 74 occurrences" without the referential context would be a significant misrepresentation.

**al-Ākhir count (155 occurrences):**

The lemma includes *al-ākhirah* (the Hereafter), which itself appears in dozens of āyāt. The Divine Name al-Ākhir ("He is the Last") is used as a direct attribute in 57:3. The lemma count of 155 vastly overstates the Name-referent frequency. Same annotation requirement as al-Aḥad.

**Exclusions endorsed:**

The Lughawī specifically endorses: (a) the exclusion of *yad* from 2:255 (the Uthmānī text at 2:255 w17-18 uses *aydīhim* referring to humans, not the Divine Hands — the Attribute of the Hands is correctly reserved for its own passages); (b) the exclusion of *kufuʾ* as a negative-predication term rather than a positive attribute; (c) the two documented-findings exclusions (*iḏn* and *khalf*, lines 128–135 of builder) which are philologically precise.

---

## Seat 6 Detail — Ḥāfiẓ Note

**al-Aḥad spot-check:**

Classical Quranic concordances (Muʿjam alfāẓ al-Qurʾān al-Karīm; Fath al-Raḥmān) list the word *aḥad* in the Divine Name sense at 112:1 and *aḥad* in the sense of "sameness" in the denial context at 112:4 ("wa lam yakun lahu kufuwan aḥad") — with the general-sense uses as the bulk of the 74 lemma positions. The lemma count of 74 is verified as consistent with concordance data. ✅ VERIFIED ⚠️ ESTIMATE (concordance figure range; QAC authoritative).

**al-ʿAẓīm count (107):**

Spot-check: The word *ʿaẓīm* appears as a Divine Name paired with al-ʿAlī in 2:255 and elsewhere; it also describes punishment, matters, and the Quran itself. 107 as a lemma total is consistent with expected range. ✅ VERIFIED ⚠️ ESTIMATE.

---

## Seat 7 Detail — Historian Note

The source seal `_C1-D2-SOURCES-SEAL.sha256` correctly records the four main corpus files and explicitly notes the aqida corpus (AQ-01–12) as "pending acquisition." This honest partial-seal status must be preserved in all subsequent builds until the aqida files are acquired and their hashes added. A completed seal covers the evidence base; a partial seal correctly bounded is not a defect — an unclosed seal labelled as complete would be.

---

## Notes for Block 3

1. **al-Kursi and al-ʿArsh** — add `type: mawduʿ-sifah` to distinguish from ṣifāt dhātiyyah; document all three kalām schools' treatment of "istiwaʾ ʿalā al-ʿArsh" (tafwīḍ / taʾwīl / ithbāt) and "wāsiʿa kursiyyuhu" as pre-existing debate positions, not new claims.

2. **al-Ḥifẓ (Preservation)** — add `type: sifah-fiʿliyyah` with note on the dhātiyyah/fiʿliyyah debate; cite AQ-01 (al-Wāsiṭiyyah) and AQ-09 (Asās al-Taqdīs) for the Atharī and Ashʿarī positions once acquired.

3. **al-Aḥad (74 occ) and al-Ākhir (155 occ)** — highest-priority referential tagging targets; block-level annotation should surface the Name-frequency as a separate count from the lemma-frequency before any published citation.

4. **al-Zahir and al-Batin name_ar forms** — the QAC lemma representation lacks the initial fatḥa (rendered as `ظاهِر` and `باطِن`); Block 3 should note the full Uthmānī form alongside the lemma for scholarly editions.

5. **al-ʿIlm (105 occ) vs. al-ʿAlīm (163 occ) vs. ʿĀlim (D1, 18 occ)** — the builder's documented finding (v) correctly distinguishes these three distinct lemmas; Block 3 glossing must make the distinction visible to readers who may conflate them.

6. **Lemma-vs-Name ratio summary for Block 3 header:**

| Row | Occ (lemma) | Note |
|---|---|---|
| al-Aḥad | 74 | Name-referent ≈ 1 (112:1); highest ratio in seed |
| al-Ākhir | 155 | Includes al-ākhirah and all ordinal uses |
| al-Awwal | 82 | Includes ordinal and sequential uses |
| al-Mulk | 48 | Includes human sovereignty throughout |
| al-Ḥayy | 24 | Includes martyrs (2:154), created living things |
| al-Kursi | 2 | 2:255 divine / 38:34 Solomon's throne — see DOCUMENTED FINDING (iv) |

---

## VERDICT

**FIX-FIRST**

One defect must be corrected before publication:

**(Adab Auditor, defect)** Three files:

1. `build_attributes_layer.py` — replace 5 instances of `Allah ر` with `Allah ﷻ` (in EXPLICIT_EXCLUDE reasons for sinah, nawm, idhn, khalf, and in SEED_NOTES_SUFFIX).
2. `_selftest_attributes.py` line 111 — change `if u"ر" not in raw` to `if u"ﷻ" not in raw` (or the literal glyph `ﷻ`); update the error message to match.
3. `attributes_layer.json` — all 21 row `notes` fields and the `_meta.excluded` values contain `Allah ر`; correct by rebuilding after the builder fix (preferred) or by direct JSON patch under integrator authority.

The data layer is methodologically sound in all other respects. Three independent cross-checks (CHECK A reassembly, CHECK B hapax, CHECK C anchors) all pass. Schema gating is correct. Exclusions are philologically documented. Scope boundaries are honest. The selftest is proven to fail on a seeded anchor defect. The four Usuli/Mufassir/Lughawī/Pedagogue notes above are all Block 3 work — none of them constitute seed-layer defects. This layer may be sealed immediately upon the three-file Adab fix.

---

*Independent human review invited on every finding above. Machine-scholar reviews are labelled as such and held to the same evidence standard as all other findings in this waqf.*

---

## INTEGRATOR ADJUDICATION — 1 September 2026, window Fable (integrator seat)
The Adab defect VERIFIED byte-level (25 look-alike U+0631 in the layer, 5 in
the builder, and the selftest's own adab gate checking the wrong glyph — a
non-functional gate). Fixed at source in all three files, layer rebuilt,
prove-fail + green re-run, 0 remaining, 25 true ﷻ. Recorded honestly: the
integrator's earlier sweep reported 0 where the panel found 25 — the panel
out-audited the integrator, which is exactly why it exists; the integrator
sweep is hardened (look-alike class added). The four Block-3 notes stand
queued. **Panel recommendation satisfied → D2 Attributes seed: SEALED.**
