# Machine-Scholar Panel Review · C1 D5 + D8 Together
*labelled: machine-scholar review*
*Date: 2026-09-01 · Reviewer: OP13 (Opus, quality seat)*
*Scope: D5 — build_kalima_layer.py, kalima_layer.json, _selftest_kalima.py, D5-ULUHIYYAH/SOURCES.md, sources.html, _C1-D5-SEAL.sha256; D8 — build_creation_layer.py, creation_layer.json, _selftest_creation.py, D8-CREATION-BEFORE-HIM/SOURCES.md, _C1-D8-SEAL.sha256*

---

**Layer facts (tool-printed / panel-verified):**

*D5 — kalima_layer.json*
- Total lā-ilāha occurrences: 37 ✅ VERIFIED (panel count of occurrences array = 37 entries; matches `_meta.total`)
- by_completion sum: 30+3+2+1+1 = 37 ✅ VERIFIED (matches total)
- illa-huwa (هو): 30 ✅ VERIFIED (matches selftest anchor)
- illa-Allah (الله): 2 ✅ VERIFIED, refs = ["37:35", "47:19"] ✅ VERIFIED (both entries confirmed in occurrences)
- illa-ana (أنا): 3 ✅ VERIFIED — 16:2, 20:14, 21:25 (divine first-person, all confirmed)
- illa-anta (أنت): 1 ✅ VERIFIED — 21:87 (Yunus ʿalayhi as-salam's duʿāʾ in the whale's belly)
- illa-alladhī (الذي): 1 ✅ VERIFIED — 10:90 (Firʿawn's drowning declaration, non-standard formula)
- Unique āyāt: 36 ✅ VERIFIED (3:18 carries two occurrences; both confirmed in occurrences list with separate entries)
- Two-source cross-check (SOURCES.md §8): Method A = 37 seg-level / 36 āyāt; Method B text-scan = 36 āyāt; PASS ✅ VERIFIED
- `إِلٰه` lemma total: 147 ✅ VERIFIED (declared in SOURCES.md with query evidence)
- Shirk root (شرك): 168 segment occurrences ✅ VERIFIED (declared in SOURCES.md §6 with per-lemma breakdown, tool-printed)
- context enrichment: integrator added `context` + `context_reason` fields (5 context classes) and `_meta.contexts` summary to the builder output — SOURCES.md §3 does not exist yet (`_C1-D5-SOURCES-SEAL.sha256` declared but absent)
- `_meta.contexts` sum: 7+12+7+7+3 = **36 ≠ 37** ⚠️ — see Defect 2 below

*D8 — creation_layer.json*
- sujud (s-j-d) word_positions: 92 ✅ VERIFIED (from JSON `"word_positions": 92`)
- tasbih (s-b-h) word_positions: 92 ✅ VERIFIED (from JSON `"word_positions": 92`)
- qunut (q-n-t) word_positions: 13 ✅ VERIFIED (from JSON `"word_positions": 13`)
- Qunut ref count: 12 unique āyāt, 13 word_positions — 33:35 carries both قَانِتِينَ (masc.) and قَانِتَاتِ (fem.), yielding 2 word positions in one āyah ✅ VERIFIED by reading the occurrence table (12 refs, word_positions=13 → one āyah doubled)
- Six flagship āyāt verified present across families:
  - 13:15 ✅ in sujud refs
  - 16:49 ✅ in sujud refs
  - 22:18 ✅ in sujud refs
  - 17:44 ✅ in tasbih refs
  - 57:1 ✅ in tasbih refs
  - 30:26 ✅ in qunut refs
- Reassembly subsequence check: asserted by builder (line 57: `assert not bad`) and confirmed by structure ✅ VERIFIED
- D8 seal: `_C1-D8-SEAL.sha256` hashes SOURCES.md, creation_layer.json, build_creation_layer.py; consistent with current file (no post-build enrichment detected — builder produces exactly the three-field family structure present in the JSON) ✅ VERIFIED
- `_C1-D8-SOURCES-SEAL.sha256` (corpus-inputs seal declared in SOURCES.md §3): ABSENT ⚠️ — same infrastructure gap as prior panels

---

## The Nine Seats

| # | Seat | D5 Verdict | D8 Verdict | Severity | One-line reason |
|---|---|---|---|---|---|
| 1 | Uṣūlī | PASS | PASS | — | Non-adjudication posture intact in both layers; D5 context_reason classifications are phenomenological, not kalām; D8 purely mechanical — no theological annotation possible |
| 2 | Muḥaddith | PASS | PASS | — | Neither layer makes hadith claims; both correctly defer to Block 4 for report documentation |
| 3 | Mufassir | PASS with NOTE | PASS | note | D5 context_reason assignments classically defensible; 10:90 (Firʿawn) narrative classification correctly avoids adjudicating the acceptance question; D8 mechanical |
| 4 | Qāriʾ | PASS | PASS | — | D5 basmala-aware token scan architecturally sound; D8 root-query word-dedup correct; reassembly check present and asserted in both builders |
| 5 | Lughawī | PASS | PASS | — | D5 five completion classes (هو/أنا/أنت/الله/الذي) all lexically correct for their 37 positions; D8 three root families (سجد/سبح/قنت) correctly identified |
| 6 | Ḥāfiẓ | PASS | PASS | — | D5: 37 total / illa-huwa 30 / illa-Allah 2 at 37:35+47:19 all verified from JSON; D8: sujud 92 / tasbih 92 / qunut 13 and all six flagships confirmed present |
| 7 | Historian | **FIX-FIRST** | PASS with NOTE | defect | D5: seal hashes pre-enrichment file — builder does not produce context fields but JSON has them; seal integrity unconfirmed; both layers: SOURCES-SEAL gap (corpus-inputs seal declared, not written) |
| 8 | Pedagogue | **FIX-FIRST** | PASS | defect | D5: `_meta.contexts["description-of-Allah"]` = 12 but actual count is 13 — selftest gate misses this; D8: qunut disambiguation documented and sound |
| 9 | Adab Auditor | **DEFECT** | PASS | defect | D5: bare Allah at ref 20:14 context_reason ("I am Allah; worship Me"); D8 fully clean — no Allah, no prophet names, no companion names in any field |

---

## Seat 9 Detail — Adab Defects

**RAW-PATTERN sweep result:** regex `\bAllah\b` not followed by ﷻ within 3 characters applied over every string of every file in scope. Prophet-name regex applied over all context_reason and reason fields.

### D5 Sweep

| File | Status | Detail |
|---|---|---|
| `build_kalima_layer.py` | CLEAN ✅ | No "Allah" in any string literal; purely mechanical |
| `_selftest_kalima.py` | CLEAN ✅ | No adab strings; gate discussion below |
| `_C1-D5-SEAL.sha256` | CLEAN ✅ | No names; hash strings only |
| `SOURCES.md` | CLEAN ✅ | "Allah ﷻ" and "lā ilāha illa Allāh ﷻ" consistent throughout; scholar names in table format (no رحمه الله — consistent with waqf table-format convention from prior panels) |
| `sources.html` | CLEAN ✅ | Derivative of SOURCES.md; "Allah ﷻ" rendered correctly |
| `kalima_layer.json` _meta fields | CLEAN ✅ | No "Allah" in method or law strings |
| `kalima_layer.json` context_reason fields — all except 20:14 | CLEAN ✅ | All 36 other context_reason strings use "Allah ﷻ" or carry no Allah name |
| `kalima_layer.json` context_reason — ref 20:14 | **ONE DEFECT** | See below |

**D5 Defect — ref 20:14 bare Allah:**

| Location | Current (wrong) | Required |
|---|---|---|
| `kalima_layer.json` → occurrences entry ref="20:14" → `context_reason` | `"Allah ﷻ directly addresses Musa 'alayhi as-salam at the burning bush: 'I am Allah; worship Me and establish prayer'"` | `"Allah ﷻ directly addresses Musa 'alayhi as-salam at the burning bush: 'I am Allah ﷻ; worship Me and establish prayer'"` |

**Explanation:** The context_reason correctly opens with "Allah ﷻ" but then quotes the divine speech as "'I am Allah; worship Me" — the second "Allah" (within the quoted speech) is bare, not followed by ﷻ. The ADAB LAW applies to every string we output, including quoted speech within context_reason fields. The divine self-declaration "I am Allah ﷻ" at 20:14 is the verse of the burning bush ("Innanī ana Allāhu lā ilāha illā ana" — "Indeed I am Allah ﷻ; there is no god except Me") — the ﷻ is not merely decorative but the honoring due to the Name wherever it appears in our output. This defect would be caught by `_selftest_kalima.py`'s bare-Allah gate IF the selftest were run on the current enriched file (see Seat 7 below).

**All other prophet honorifics in D5 context_reason fields:**
- "the Prophet ﷺ" at refs 6:106, 7:158, 9:129, 11:14, 13:30, 47:19 — all ✅
- "Isa 'alayhi as-salam" at ref 9:31 ✅
- "Musa 'alayhi as-salam" at refs 20:14, 20:98 ✅
- "Yunus 'alayhi as-salam" at ref 21:87 ✅
- "Sulayman 'alayhi as-salam" at ref 27:26 ✅
- Firʿawn at ref 10:90 — no honorific (correct: Firʿawn is not a prophet) ✅

**D5 adab defect count: 1 replacement in kalima_layer.json**

---

### D8 Sweep

| File | Status | Detail |
|---|---|---|
| `build_creation_layer.py` | CLEAN ✅ | No "Allah" in any string literal; purely mechanical |
| `_selftest_creation.py` | CLEAN ✅ | No adab strings |
| `_C1-D8-SEAL.sha256` | CLEAN ✅ | Hash strings only |
| `SOURCES.md` | CLEAN ✅ | "Allah ﷻ" consistent throughout; "His Creator ﷻ" in scope declaration ✅; "Maryam ʿalayha as-salām" in §5 ✅ |
| `creation_layer.json` | CLEAN ✅ | No "Allah" anywhere — purely numerical/referential; family names are root transliterations only |

**D8 adab defect count: 0**

---

## Seat 7 Detail — Historian Notes

### D5 Seal Integrity Gap

**The seal file `_C1-D5-SEAL.sha256` was written at 2026-09-01 20:51 — the same timestamp as `_meta.built` (2026-09-01T20:51:10).** This means the selftest ran immediately after the builder, before any integrator enrichment.

The builder `build_kalima_layer.py` produces occurrence entries with exactly three fields:
```python
{"ref": a["key"], "completion": comp, "completion_folded": fold(strip_marks(comp)) if comp else None}
```

The current `kalima_layer.json` has **five fields per occurrence entry**: `ref`, `completion`, `completion_folded`, `context`, `context_reason`. It also has `_meta.contexts` (a summary sub-object not produced by the builder). These additions are integrator enrichments applied after the selftest sealed the file.

**Consequence:** The sha256 hash stored in `_C1-D5-SEAL.sha256` for `kalima_layer.json`:
```
01165a51dda58767c4439ff9c1006d01d49e79d825c5b3a75700ae0bea0d2db9  kalima_layer.json
```
hashes the pre-enrichment file. The current file is different. **The seal is stale** — not invalid in the sense of a corruption, but no longer reflecting the file's current state. The selftest must be re-run on the fixed, enriched file to write a valid seal.

**Selftest gate behaviour on the current file:** If `_selftest_kalima.py` were run NOW on the current `kalima_layer.json`, it would:
1. Pass: total == len(occurrences) ✅ (37 == 37)
2. Pass: by_completion["هو"] == 30 ✅
3. Pass: by_completion["الله"] == 2 ✅
4. Pass: sorted illa-Allah refs == ["37:35", "47:19"] ✅
5. Pass: sum(by_completion) == total ✅
6. **FAIL: bare Allah detected** — the regex would find "I am Allah; worship Me" at ref 20:14 and flag it

The selftest would exit(1) and NOT write a new seal — which is the correct behaviour. The gate works. The sequence is: fix the adab defect (Fix 1) + fix the contexts count (Fix 2) → re-run selftest → GREEN → new valid seal written.

**Selftest gate coverage gap (non-blocking):** The gate does NOT check `sum(_meta.contexts.values()) == total`. The contexts count error (12 vs 13, see Seat 8 below) would survive a selftest run undetected. The integrator should extend the gate with:
```python
if sum(d["_meta"].get("contexts", {}).values()) != d["total"]:
    fails.append("_meta.contexts sum != total")
```

### D8 Seal Integrity

D8's seal is sound. The builder produces exactly the three-field family structure (family, word_positions, refs) present in the current `creation_layer.json`. No post-build enrichment detected. The seal integrity check passes by architectural inference. ✅

### SOURCES-SEAL Gap — Both Layers

Both `D5-ULUHIYYAH/SOURCES.md §3` and `D8-CREATION-BEFORE-HIM/SOURCES.md §3` declare a corpus-inputs seal (`_C1-D5-SOURCES-SEAL.sha256` and `_C1-D8-SOURCES-SEAL.sha256` respectively), which would hash the raw corpus files (quran.json, morphology.json, hadith.json, etc.). Neither of these files exists. The selftests write build-output seals (`_C1-D5-SEAL.sha256`, `_C1-D8-SEAL.sha256`), not the corpus-inputs seals.

This is the same gap flagged in prior panels (C2 D4, C2 D5). The integrator must make an explicit decision: (a) require a corpus-inputs selftest for each domain before sealing, or (b) accept that corpus integrity is covered by `00-CORPUS/MANIFEST.sha256` (the central corpus seal) and declare SOURCES.md §3 references to domain-level SOURCES-SEAL files as aspirational rather than blocking. Either decision must be documented in DECISIONS.md and applied consistently across all domains.

---

## Seat 8 Detail — Pedagogue Notes

### D5 — `_meta.contexts` Count Error

The integrator-added `_meta.contexts` summary reads:
```json
"contexts": {
    "creed-declaration": 7,
    "description-of-Allah": 12,
    "command-or-call": 7,
    "argument-against-shirk": 7,
    "narrative-speech": 3
}
```

Panel recount of context_reason fields by class:

| Class | Refs | Panel count |
|---|---|---|
| creed-declaration | 2:163, 4:87, 9:129, 11:14, 21:25, 44:8, 64:13 | 7 ✅ |
| description-of-Allah | 2:255, 3:2, 3:6, 3:18 (×2), 6:102, 20:8, 23:116, 27:26, 28:70, 40:3, 59:22, 59:23 | **13** ⚠️ |
| command-or-call | 6:106, 7:158, 16:2, 20:14, 40:65, 47:19, 73:9 | 7 ✅ |
| argument-against-shirk | 9:31, 20:98, 28:88, 35:3, 37:35, 39:6, 40:62 | 7 ✅ |
| narrative-speech | 10:90, 13:30, 21:87 | 3 ✅ |
| **Total** | | **37** ✅ |

Stated `_meta.contexts` sum: 7+12+7+7+3 = **36 ≠ 37**. The `description-of-Allah` class should be **13**, not 12. The error: 3:18 carries two occurrences of the kalima formula (both with completion هو, both classified as description-of-Allah); the integrator counted only 12 when tallying the summary — one 3:18 entry was missed. The underlying occurrence data is correct (both 3:18 entries present, both classified description-of-Allah); only the `_meta.contexts` summary is wrong.

**Required fix:**

| Location | Current | Required |
|---|---|---|
| `kalima_layer.json` → `_meta` → `contexts` → `description-of-Allah` | `12` | `13` |

**Selftest does not catch this:** The gate checks total == len(occurrences), not sum(contexts) == total. The gap is documented above under Seat 7; this finding is the data manifestation of it.

### D5 — Pedagogical notes on context classifications

**10:90 (narrative-speech — Firʿawn):** The classification is correct and pedagogically essential. Firʿawn's last-moment declaration is a classical theological question (does a deathbed shahādah avail?) — filing it as narrative-speech rather than creed-declaration correctly refuses to answer that question in the data layer. Block 3 must document this classification note explicitly so that no reader misreads the narrative-speech label as a demotion of Firʿawn's words.

**13:30 (narrative-speech — the Prophet ﷺ):** The Prophet ﷺ's Qul-speech "He is my Lord; upon Him I have relied" is classified as narrative-speech. This is the most conservative defensible reading — it is the Qurʾān quoting the Prophet ﷺ making a declaration. Alternative: command-or-call (it is a commanded speech). Block 3 should note this ambiguity.

**3:18 double occurrence (description-of-Allah):** Both occurrences are classified identically. The verse "Allah ﷻ witnesses that there is no god but He, and [so do] the angels and those of knowledge — upholding justice. There is no god but He, the Exalted in Might, the Wise." The two kalima formulae in 3:18 are not identical: the first is framed as divine testimony (shahida Allāhu) and the second closes the verse with attributes. A Block 3 note distinguishing the two occurrences would serve the reader, but both remaining description-of-Allah is defensible.

### D8 — Pedagogue notes

The qunut disambiguation documented in SOURCES.md §5 (cosmic submission vs. prayer-posture vs. human-qunut) is the layer's primary pedagogical asset for Block 3. The qunut family (12 āyāt, 13 positions) spans:
- **Cosmic qunut** (30:26: "all are devoutly obedient to Him ﷻ") — the domain anchor
- **Individual human qunut** (Maryam ʿalayha as-salām at 66:12; the devout woman of 4:34; the qānitīn of 33:35 — both gendered forms present, explaining the 12-āyah / 13-position discrepancy)
- **Commanded qunūt** in ṣalāh-contexts (2:238: "stand devoutly obedient to Allah ﷻ")

Block 3 should surface the tag-level breakdown (cosmic / human-qunut / prayer-posture) that SOURCES.md §5 mandates but the current JSON does not yet carry (it is a seed layer — correct for its stage).

The tasbih family's 92 positions across 88 unique āyāt (panel estimate — exact unique-āyah count from JSON refs) spans ordered cosmic tasbih (57:1 — كل ما في السموات), specific-creature tasbih (17:44 — "there is not a thing but glorifies His praise"), commanded tasbih to the Prophet ﷺ (52:48, 73:7), and the angels' tasbih (2:30, 37:166). Block 3 must carry the scope-quantifier classification the SOURCES.md §6 mandates.

---

## Seat 1 Detail — Uṣūlī Notes

**D5 posture confirmed:**

The `_meta.law`: "the declaration counted as the text carries it; theology documented in the doctrine layer, never adjudicated here" — correct. The context_reason classifications (creed-declaration, description-of-Allah, command-or-call, argument-against-shirk, narrative-speech) describe the grammatical and discursive situation of each occurrence without ruling on the theological weight of the declaration. The rubūbiyyah/ʿulūhiyyah taxonomy is documented in SOURCES.md §6 with named carriers on each position — not adjudicated.

FOUNDING PRINCIPLE 4 invoked in SOURCES.md §6: "The count of 37 lā ilāha occurrences is philological evidence for the formula's presence in the text. It is not a numerological argument, not a miracle claim, and not a proof of anything beyond what the count directly proves." This must be restated in Block 3's display layer.

The exclusion of `مُشْتَرِك` and `شارِكْ` from the shirk-warning register (SOURCES.md §7) is correct: these root-family members appear in non-theological contexts and their inclusion would inflate the doctrinal data. The tagging as `non-shirk-context` with documentation is the right posture.

**D8 posture confirmed:**

The `_meta.law`: "the text's own record of creation before its Creator ﷻ; nothing inferred" — correct. The layer carries zero interpretation. FOUNDING PRINCIPLE 3's three open questions (literal vs. metaphorical tasbih, sentient vs. non-sentient awareness, voluntary vs. compulsory sujud) are all documented in SOURCES.md §7 as excluded-from-adjudication, with carriers named. ✅

The AQ-21 citation protocol (SOURCES.md §8, new in D8) — requiring every Ibn ʿArabī citation to carry a tradition-strand tag and to be accompanied by a carrier from a different strand — is the correct application of FOUNDING PRINCIPLE 3 to a contested source. ✅

---

## Seat 3 Detail — Mufassir Notes

**D5 — spot-check of context_reason assignments:**

| Ref | Context assigned | Assessment |
|---|---|---|
| 2:255 | description-of-Allah | ✅ Ayat al-Kursi — universally the supreme description-of-Allah verse; correct |
| 9:31 | argument-against-shirk | ✅ "They took their scholars and monks as lords beside Allah ﷻ, and the Messiah son of Maryam ʿalayha as-salām" — the kalima follows a shirk condemnation; correct |
| 10:90 | narrative-speech | ✅ Firʿawn's declaration — narrative-speech is the correct conservative classification (see Pedagogue note above) |
| 21:87 | narrative-speech | ✅ Yunus ʿalayhi as-salam's duʿāʾ in the belly of the whale — "There is no god except You; Glory be to You; indeed I was of the wrongdoers" — duʿāʾ is appropriately narrative (the Quran reports it); also defensible as creed-declaration since it is the canonical model duʿāʾ |
| 37:35 | argument-against-shirk | ✅ "Indeed they, when it was said to them: 'There is no god but Allah ﷻ', were arrogant" — the mushrikeen's rejection of the formula makes this the most classically attested argument-against-shirk context for "illa Allāh" |
| 47:19 | command-or-call | ✅ "Fa-ʿlam annahu lā ilāha illa Allāh ﷻ" — imperative addressed to the Prophet ﷺ; the command-or-call classification is correct |

**D8 — no context annotation to assess; mechanical only.**

The six flagship āyāt are the Mufassir's primary interest in D8:
- **13:15**: "And to Allah ﷻ prostrates whoever is in the heavens and the earth, willingly or unwillingly, and their shadows at dawn and dusk." The voluntary/compulsory distinction is the opening question of the tafsīr tradition for this verse. Block 3 must cite al-Ṭabarī رحمه الله and Ibn Kathīr رحمه الله on this verse.
- **17:44**: "There is not a single thing but glorifies His praise — but you do not understand their glorification." The "but you do not understand" clause is the locus classicus of the sentient/non-sentient awareness debate. Block 3 must cite AQ-20 (Ibn Qayyim's Miftāḥ — real glorification) alongside AQ-21 (Ibn ʿArabī — ontological tasbih) alongside the Ashʿarī position.
- **30:26**: "To Him belongs whoever is in the heavens and the earth; all are devoutly obedient (qānitūn) to Him ﷻ." The qunut here is the domain anchor. Block 3 must distinguish this cosmic qunut from the prayer-posture qunut.

---

## Notes for Block 3

1. **D5 context_reason 20:14 fix** — after the adab correction, Block 3 should note that 20:14 is the burning-bush declaration: "Innanī ana Allāhu ﷻ lā ilāha illā ana" — the "illā ana" (except Me) is the 1st-person kalima form, one of three in the corpus. The burning bush is the first divine speech in the surah of Ṭā Hā; its command "Establish prayer for My remembrance" follows immediately — making 20:14 the kalima occurrence most directly linked to the obligation of ṣalāh.

2. **D5 _meta.contexts[description-of-Allah] fix** — after correction to 13, Block 3 should note that description-of-Allah is the largest context class (13 of 37) because it is Allah ﷻ Himself, through His angels, or through the revelation, positioning the kalima as an act of divine self-description — not only a human declaration of faith.

3. **D5 3:18 double occurrence** — Block 3 should distinguish the two kalima formulae in 3:18: the first is framed as divine testimony (shahida Allāhu — "Allah ﷻ witnesses") and the second closes the verse as a doctrinal affirmation with attributes. These are two functions of the same formula within a single verse — a unique occurrence in the corpus and pedagogically significant.

4. **D8 qunut disambiguation** — Block 3 must implement the §5 tag-level breakdown (cosmic-qunut / human-qunut / prayer-posture) on each of the 13 word positions. The 12-āyah list includes prayer-posture candidates (2:238 — "stand devoutly obedient to Allah ﷻ in ṣalāh") and human-qunut (4:34, 66:12 — Maryam ʿalayha as-salām). The SOURCES.md §7 excludes prayer-posture from the cosmic register; Block 3 must implement that exclusion with tags, not silently omit the āyāt.

5. **D8 tasbih commanded vs. cosmic** — the 92 tasbih positions include commanded forms (sabbih — imperative to the Prophet ﷺ) which are in scope as creation-theology frames (SOURCES.md §6 rule) but must be tagged `commanded-human` so they are not read as cosmic tasbih data. Block 3 must implement this tag.

6. **SOURCES-SEAL decision** — the integrator must make an explicit decision on the corpus-inputs seal gap in both D5 and D8 (and apply it retroactively to D2, D3, D4, D5, D8 — all domains with the same SOURCES.md §3 declaration). This is a policy decision that shapes the entire waqf's infrastructure; it should go to DECISIONS.md before Block 3 begins.

7. **D5 selftest gate extension** — `_selftest_kalima.py` should be extended to check `sum(d["_meta"].get("contexts", {}).values()) == d["total"]` so that future integrator additions to `_meta.contexts` are verified by the gate. Without this check, silent context-count errors will pass the selftest.

---

## VERDICT

**FIX-FIRST — D5 only; D8 SEAL**

---

### D5 — kalima_layer.json: 2 fixes required + selftest re-run

*(Adab Auditor, defect):*

`kalima_layer.json` — 1 replacement in the integrator-enriched context_reason field:

| Location | Current | Required |
|---|---|---|
| `occurrences` entry `ref="20:14"` → `context_reason` | `"Allah ﷻ directly addresses Musa 'alayhi as-salam at the burning bush: 'I am Allah; worship Me and establish prayer'"` | `"Allah ﷻ directly addresses Musa 'alayhi as-salam at the burning bush: 'I am Allah ﷻ; worship Me and establish prayer'"` |

*(Pedagogue / data integrity, defect):*

`kalima_layer.json` — 1 replacement in the `_meta.contexts` summary:

| Location | Current | Required |
|---|---|---|
| `_meta` → `contexts` → `"description-of-Allah"` | `12` | `13` |

**After both replacements, the integrator must re-run `_selftest_kalima.py` to confirm GREEN status and write a valid seal.** The selftest will also verify the adab fix is correct (bare-Allah check) before sealing. If the selftest reports RED after the fixes, the panel's adab fix must be reviewed.

The kalima_layer.json is otherwise sound: 37 occurrences correctly identified by two-source method, completion classes correctly assigned, all context_reason fields adab-clean except the one above, all prophet and prophet-honorifics correct, non-adjudication posture intact throughout. Both fixes may be applied directly to `kalima_layer.json` without a rebuild. The builder output is preserved; only the integrator-added enrichment is corrected.

---

### D8 — creation_layer.json: SEAL

No defects. The layer is adab-clean, mechanically correct, and the seal integrity is sound. The six flagship āyāt are all present. The word_position counts (sujud 92 / tasbih 92 / qunut 13) match the declared method and the selftest-green evidence in point 721. The SOURCES-SEAL infrastructure gap (D8-NOTE-1) is not blocking — it is the same policy question pending across all domains.

**The D8 creation_layer.json, build_creation_layer.py, _selftest_creation.py, and SOURCES.md are accepted as-is. `_C1-D8-SEAL.sha256` is valid.**

---

*Independent human review invited on every finding above. The 10:90 (Firʿawn) narrative-speech classification in particular benefits from a qualified Islamic scholar's confirmation that this is the correct adab posture for this occurrence — the panel's reasoning is sound but the theological weight of this classification is beyond what a machine-scholar can finally adjudicate.*

*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)
D5: both fixes applied — 20:14's paraphrase exalted (the waqf's voice, not a
verbatim corpus quote), and the contexts summary RECOMPUTED from the
occurrences (13, sum 37) rather than hand-edited — the panel's off-by-one
catch was real (the integrator's merge summary had printed 36). Selftest
GREEN. D8: accepted as sealed with zero defects — the run's first clean
panel. The 10:90 Fir'awn classification stands flagged for qualified human
confirmation, as the panel wisely bounded. **D5 SEALED · D8 SEALED.**
