# PANEL WAVE P32 — SEAT PW2 · THE WITNESS & SĪRAH BENCH

**Seat**: PW2 (machine-scholar, labeled — human review invited, never waited on)
**Mode**: REVIEW ONLY. No layer was written, altered, or deleted by this seat.
**Built against**: `10-WAQF/skills/deep-audit/SKILL.md` (all 19 laws)
**Scope assigned**: W-F `tvf_v3` · W-I `open_invitation` + `THE-INVITATION.html` · P28 X2 maghāzī · X4 bridge · X5 register
**Date**: 2026-09-04

---

## VERDICT

**The engines are honest. Two of the sentences written on top of them are not.**

Every mechanical claim this seat could re-derive, re-derived — exactly, to the row.
The witness counts on all 6,236 verses match their source layers with **zero**
mismatches. The 684 re-derives from first principles. The 826 bridge is
list-identical. Three battles re-probed against `seerah.json` return per-work
mention counts identical to the registry. The delimiter ground truth reproduces
span-for-span (7,202 / 5,514 / 3,577).

More importantly: **the central claim of the OPEN INVITATION survives adversarial
attack.** This seat tried hard to falsify it — twice — and failed both times. That
is reported in full below, including the false alarm this seat raised against itself
and then had to withdraw.

What does **not** hold is prose. Two emitted statements assert more than the data
beneath them supports, one of them on the reader-facing page addressed to the ummah,
and a third — a selftest — prints `SELFTEST GREEN` on an assertion that cannot fail.
These are cheap to fix and must be fixed before the seal.

---

## THE ADVERSARIAL TEST OF THE 684 — AND THE FALSE ALARM THIS SEAT RAISED

The invitation's load-bearing sentence is: *these 684 verses carry no ḥadīth and no
sīrah witness in the held corpus.* An engine declaring its own absence cannot be
audited by re-reading that engine. So this seat attacked the claim with an
**independent instrument**: the corpus's own quotation delimiters (`@QB@…@QE@` and
ornate `﴿…﴾`), which are the sīrah works marking their *own* Qur'an quotations —
evidence not produced by any waqf engine.

**First pass — the alarm.** Re-running E8's harvest and intersecting its 3,577
ground-truth verses against the 684 returned **111 hits**. Verse 2:92 — the very
first row of the invitation — appeared to be quoted in Ibn Kathīr. On its face this
was a critical defect: the waqf asking the ummah for reports on verses it already held.

**Second pass — CHECK THE CHECKER (law 18).** Before reporting, this seat read the
top hits (law 16's lesson). They did not survive:

| Verse | Span the resolver matched | What the span actually is |
|---|---|---|
| 10:66 | «ولا تسبوا الذين يدعون من دون الله…» | that is **6:108**, not 10:66 |
| 12:22 | «…وكذلك نجزي المحسنين» | that is **6:83–86**; matched only on a shared closing formula |
| 2:122 | «يا بني إسرائيل اذكروا نعمتي…» | span is **2:40–41**; 2:122 shares the opening head |
| 7:65 | «يا قوم اعبدوا الله ما لكم من إله غيره» | a **refrain** shared by 7:65, 7:73, 7:85, 11:50, 23:23… |

All 111 were shared-head and refrain artifacts of E8's permissive resolver
(`votes >= 1`, grams shared by up to 3 verses, plus short-verse containment).

**Third pass — the honest test.** Re-run under **THE UNIQUENESS RULE (law 16)**:
a match counts only where the span carries a 16-gram unique to that verse in the
whole Qur'an.

| Independent probe | Result |
|---|---|
| Invitation verses with a unique-gram-anchored **sīrah** quotation | **0** of 684 |
| Invitation verses with a unique-gram-anchored **ḥadīth** quotation (68,513 rows scanned across both traditions) | **0** of 684 |

**The claim holds. The engine was right and this seat's first checker was wrong** —
the same shape as the 87:1 incident that produced law 18. Recorded here in full
because a false alarm costs trust exactly as much as a false all-clear, and a bench
that hides its own withdrawn finding is not a bench.

---

## NUMBERED FINDINGS

### F1 · The page claims "every one" — it is false for 332 of 684 — **HIGH**
**File**: `10-WAQF/build/P32-SHAHADAT/W-I/THE-INVITATION.html:10` and
`W-I/open_invitation.json` `_meta.law`

The lede states: *"every one of these verses speaks through its language and through
its sister verses."* The layer's `_meta.law` states: *"the language and cross-verse
witnesses speak on every one."*

**Evidence** — the layer's own `held.cross_verse_echo` field:

```
(language=True, cross_verse_echo=True)  → 352
(language=True, cross_verse_echo=False) → 332      ← 48.5% of the 684
```

Cross-checked against W-F `WITNESS-4`: **0 disagreements** — the per-row data is
truthful; only the prose is not. Verse 103:1 is in the invitation with
`cross_verse_echo: false` and TVF line *"no mechanical echo; the thematic tier is open."*

The thematic tier cannot rescue the sentence: `W-D.thematic_tier.rows` is `[]`. So
for 332 verses the claim is not merely unmeasured — it is asserted against the only
measurement that exists. **Pre-Send Gate ⑧**: absolutes require exhaustive proof.
This is reader-facing, addressed to the people of knowledge, and it is the one
sentence in the artifact a hostile reader can disprove in one query.

**Fix**: state the measured split — *"every one speaks through its language; 352 also
carry a measured echo with sister verses, and the thematic tier is open on the rest."*

---

### F2 · `in_delimiter_ground_truth` is false on 3,565 verses that are in it — **HIGH**
**File**: `10-WAQF/framework/p28_expansion.py:54` → `build/P28-SIRAH-X/X3/sirah_verse_sync.json`

```python
gt = set(E8["top_ground_truth_verses"])   # top only in layer; full set recomputable
sync = {k: {"quote_clusters": v, "in_delimiter_ground_truth": k in gt} ...}
```

`E8["top_ground_truth_verses"]` is a **12-entry** dict (`{"3:144": 29, "5:75": 27, …}`).
The actual ground truth is **3,577** distinct verses (`E8.totals.distinct_verses_in_ground_truth`,
independently reproduced by this seat).

**Evidence**:
```
X3 per_verse rows                              : 3,679
rows marked in_delimiter_ground_truth = TRUE   :    12
verses actually in the delimiter ground truth  : 3,577
→ false negatives                              : 3,565  (99.7% of the field)
```

The field name asserts membership in the ground truth; it delivers membership in the
top twelve. X3's own `_meta.law` — *"E3's anchored clusters joined with E8's
ground-truth membership per verse"* — is false as built. The builder's inline comment
shows the author knew; **the emitted layer declares nothing**, and the layer is what
gets read. *I-1: a variable name is not its meaning.*

**Fix**: recompute the full set (this seat reproduced it in ~4 min), or rename the
field `in_top12_ground_truth` and amend the law. The former is right.

---

### F3 · W-D cannot support 1,740 of the 2,816 claims that cite it — **MEDIUM**
**File**: `build/P32-SHAHADAT/W-D/crossverse_witness.json`, cited by W-F `WITNESS-4`

W-F writes *"echo pairs present (W-D)"* on 2,816 verses. W-D persists only
`pairs_24plus` — 1,049 pairs spanning **1,076** verses. The ≥16-letter set
(`verse_pairs_sharing_runs: 6,069`) that actually produced the 2,816 is **not in the layer**.

```
TVF claims cross-witness        : 2,816
re-derivable from W-D           : 1,076
claimed but NOT re-derivable    : 1,740   (61.8%)
stored but NOT claimed          :     0   ← direction consistent, no contradiction
```

This is **not** fabrication — every stored pair is honored and nothing contradicts.
It is a persistence gap: a citation pointing at a layer that does not hold the
evidence for most of what cites it. The same pattern in E8 (top-12 persisted, 3,577
measured) is what produced **F2** — there it became a live error. The footer of
THE-INVITATION.html promises *"every count re-derivable"*; for these it is not.

---

### F4 · `SELFTEST GREEN` printed on an assertion that cannot fail — **MEDIUM**
**File**: `10-WAQF/framework/p32_invitation_page.py:47`

```python
assert len(by_surah) > 30 and "684" not in ""   # structural floor
```

`"684" not in ""` evaluates to `True` unconditionally — an empty string contains
nothing. Verified: `('684' not in '') → True`. The conjunct is **vacuous** while
reading as though it guards the 684. The script then prints `SELFTEST GREEN`.

The count it appears to protect is exactly the count F1 mis-describes. Contrast the
correct form two files away — `p32_witnesses.py:99`:

```python
assert len(v3) == 6236 and len(inv_rows) == 684 and wc["totals"]["evidentiary_pairs"] == 9775
```

Exact equality, measured truth, no floor. That is the standard; line 47 is below it.
**A green that cannot go red is not a green.**

---

### F5 · The one number on the page that is a hardcoded literal — **MEDIUM**
**File**: `p32_invitation_page.py:30`

```python
"...— %s ḥadīth across both great traditions and seventeen books of sīrah —" % ("68,921", ...)
```

Every other figure on the page is read from the layer (`wi["totals"][...]`). The
ḥadīth total is a string literal, and *"seventeen books of sīrah"* is hardcoded prose.

**Both are correct today** — this seat verified 36,390 (sunnī) + 32,531 (shīʿa) =
**68,921 ✅ exact**, and counted **17** sīrah works loaded ✅. The defect is
structural, not present-tense: the page's own footer claims *"every count
re-derivable,"* and these two cannot drift-detect. Add one shelf and the page lies
silently. *I-3: never silent drift to a new number.*

---

### F6 · Floors set far below measured truth; no known-positive — **MEDIUM**
**File**: `10-WAQF/framework/p28_expansion.py:92`

```python
assert named >= 10 and len(both) > 400
```

Measured truths are **15** battles named and **826** bridge verses. **MEASURED-FLOOR
LAW (6)** requires floors set *after* measuring, *to the measured truth*. As written,
the bridge could regress 826 → 401 (−51%) and the maghāzī registry 15 → 10 (−33%)
and both still pass green.

Compounding: **KNOWN-POSITIVE LAW (5)** is undischarged — there is no assertion that
any specific verified case holds (e.g. that بدر is named in `ibn_hisham`, which this
seat confirmed at 10 mentions). *"A floor alone passes false zeroes."*

---

### F7 · The 89% recall figure rests on a permissive denominator — **LOW-MEDIUM**
**File**: `build/LENS-AUDIT/E8_delimiter_ground_truth.json`, `framework/audit_delimiters.py:22`

`resolve()` accepts grams shared by up to 3 verses, plus short-verse containment, at
threshold `votes >= 1`. Measured by this seat:

```
E8 ground-truth verses (as published)          : 3,577
of those, carrying a unique-gram anchor        : 2,862  (80.0%)
resolving ONLY through shared/refrain material :   715  (20.0%)
```

Per **AMBIGUITY IS DATA (law 8)** those 715 belong in their own reported class, not
folded into a flat denominator that then sets `E3_recall_against_ground_truth: 0.8901`
— a figure republished downstream as *"89% calibrated recall declared."* Laws 16 and
17 are correctly wired into W-A's quote gate (`"evidentiary quote
(uniqueness+anchored-run+contained-formula laws)"`, 9,667 rows) but were never
back-applied to E8. **This permissiveness is precisely what produced this seat's own
111-verse false alarm** — the defect is real and it already misled one reader.

---

### F8 · Dead code implying a fallback probe that does not exist — **LOW**
**File**: `p28_expansion.py:34, 40`

```python
alt = {g: bare(g) for g in GHAZAWAT}          # line 34 — computed, never used
...
if c == 0 and g in (u"الحديبية", u"الفتح"): c = 0   # line 40 — no-op
```

Line 40 sets `c = 0` when `c` is already `0`. The registry law declares *"a zero is a
naming-convention fact, not absence (al-Ḥudaybiyah is often named bare)"* — the
caveat is written in the law but **undischarged in code**; `alt` is the fallback that
was intended and never wired. Harmless to current counts (al-Ḥudaybiyah scores 7
works via the prefixed probe anyway), but it reads as a safeguard that is not there.

---

### F9 · A constant stamped on every row as if it were row-level evidence — **LOW**
**File**: `build/P32-SHAHADAT/W-A/uncapped_links_per_verse.json`

```
flags census: 22,080 × "isnad-shingle-risk-class (CH1-F1, 16.5% population rate)"
origins     : verified-only 22,080 | quote-new 9,667 | both 108
```

Exactly one distinct flag exists in the entire layer, on **22,080 of 22,080**
verified-only rows. A flag present on 100% of a class carries no discriminating
information; it is a class property rendered per row. Honest in wording (it names the
population rate) but invites a reader to treat it as a per-row measurement.

---

### F10 · Contested Makkī/Madanī classifications presented flatly — **LOW**
**File**: `THE-INVITATION.html` "Place" column

Sūrah 55 (Ar-Raḥmān), 13 (Ar-Raʿd) and 76 (Al-Insān) are rendered **Madanī** with no
provenance line and no dispute marker. All three carry well-known classical
disagreement; Ar-Raḥmān is classified Makkī by much of the tradition.

**The value is faithfully transmitted** from `00-CORPUS/quran.json` (`place` field) —
this is not a data error and the waqf is carrying its source. But the same build runs
a conflict detector (W-G) and the same page promises *"both sides where scholars
differ."* A column with no source attribution and no dispute flag is inconsistent
with the artifact's own stated ethic.

---

### F11 · X5 seeded rows omit declared schema keys — **LOW**
**File**: `build/P28-SIRAH-X/X5/precedence_register.json`

`schema` declares `conflict_id, position, carrier, school, source, status`. The four
`seeded_positions` carry only `position, school, status` — the other three keys are
**absent**, not null. A consumer iterating the declared schema will `KeyError`.

The register's substance is **correct**: 4/4 rows `NEEDS-VERBATIM-RESOURCING`,
`rows: []`, nothing published. Scope question answered — **yes, every row.**

---

## MECHANICAL TABLE

| # | Claim under audit | Method | Measured | Verdict |
|---|---|---|---|---|
| 1 | W-F ḥadīth witness lines, all verses | parse line vs `len(W-A.per_verse[v])` | 6,236 checked | ✅ **0 mismatches** |
| 2 | W-F sīrah witness lines, all verses | parse line vs `W-E.per_verse_sirah[v]` | 6,236 checked | ✅ **0 mismatches** |
| 3 | Witness-line form census | regex normalise + count | 4972+1264 / 3679+2557 / 2816+3420 = 6,236 each | ✅ closes |
| 4 | `totals.with_hadith_witness` = 4,972 | `len(W-A.per_verse)` | 4,972 | ✅ exact |
| 5 | `totals.with_sirah_witness` = 3,679 | `len(W-E.per_verse_sirah)` | 3,679 | ✅ exact |
| 6 | **The 684** re-derived | `{no ḥadīth} ∩ {no sīrah}` from source layers | 684, set-identical | ✅ **exact** |
| 7 | 1,264 = 684 + 580 | arithmetic closure | 1,264 | ✅ closes |
| 8 | `sirah_only` = 580 | `{no ḥadīth} ∩ {has sīrah}` | 580, set-identical | ✅ exact |
| 9 | 55:13 known-positive present | direct read (law 5) | 6 rows, dual-address check present | ✅ |
| 10 | 10-verse sample incl. 55:13 + 3 invitation verses | line vs source, per verse | 10/10 truthful | ✅ |
| 11 | **684 vs corpus's own quotation marks** | E8 delimiters, **unique-gram anchored** | **0 hits** | ✅ **claim holds** |
| 12 | **684 vs full ḥadīth shelves** | unique 16-gram scan, 68,513 rows | **0 hits** | ✅ **claim holds** |
| 13 | *(withdrawn)* 111 hits, permissive resolver | law 18 re-check | all shared-head/refrain | ⚠️ **false alarm, withdrawn** |
| 14 | "the commentaries discuss them" | `tafsir.json` coverage of all 684 | 684/684, 19–29 each | ✅ **supported** |
| 15 | "68,921 ḥadīth" | 36,390 + 32,531 | 68,921 | ✅ exact (but see F5) |
| 16 | "seventeen books of sīrah" | works loaded from both files | 17 | ✅ exact (but see F5) |
| 17 | HTML table = the layer | parse 73 rows → verse set | 684, set-identical | ✅ **exact** |
| 18 | HTML tone / no condemnation | full read | invitational; *"a fact about our shelves, never about the Book"* | ✅ **clean** |
| 19 | "every one … through its sister verses" | `held.cross_verse_echo` census | 352 true / **332 false** | 🔴 **F1** |
| 20 | **X2 maghāzī — بدر** | re-probe both `seerah` files, bare both sides | 13 works, per-work identical | ✅ **exact** |
| 21 | **X2 maghāzī — أحد** | same | 11 works, per-work identical | ✅ **exact** |
| 22 | **X2 maghāzī — تبوك** | same | 12 works, per-work identical | ✅ **exact** |
| 23 | **X4 bridge = 826** | re-derive `R9 ∩ {E3>0}` | 826, **list-identical** | ✅ **exact** |
| 24 | X4 `asbab_verses` / `sirah_quoted` | re-derive | 1,228 / 3,679 | ✅ exact |
| 25 | **X5 every row NEEDS-RESOURCING?** | status census | **4/4**, `rows: []` | ✅ **yes** |
| 26 | E8 reproducibility | full re-harvest | 7,202 / 5,514 / 3,577 | ✅ **exact** |
| 27 | X3 `in_delimiter_ground_truth` | true-count vs real ground truth | 12 vs 3,577 | 🔴 **F2** |
| 28 | W-D supports its citations | re-derive verse set from stored pairs | 1,076 of 2,816 | 🟠 **F3** |
| 29 | `p32_invitation_page` selftest | evaluate the assertion | 2nd conjunct always `True` | 🟠 **F4** |
| 30 | `p28_expansion` floors | floor vs measured | 10 vs 15 · 400 vs 826 | 🟠 **F6** |
| 31 | E8 denominator quality | unique-anchor census | 2,862 of 3,577 (80%) | 🟡 **F7** |
| 32 | W-A gate/origin census | full census | 3 gates, uniqueness law wired on quote tier | ✅ sound |

---

## GAP-HIGHLIGHT — WHAT THIS SEAT COULD NOT TEST (law 13)

The standing order: *if something is being missed, the audit must say so.*

1. **180 of the 684 are untestable by this seat's instrument.** They carry no
   16-gram unique in the Qur'an (short verses, and verses wholly shared with sisters
   — 2:122 is one). For those, "no witness held" rests on the build's own engines
   alone; my independent probe can neither confirm nor refute it. **504 of 684 were
   genuinely tested.** The invitation should say which.

2. **"We searched for every report bearing on every verse" is not falsifiable as
   worded.** What was searched is the union of quote-matching and inherited
   verified-only meaning-links. A report that *explains* a verse without quoting it
   and without a prior link is outside the reach of every engine in this build. The
   sentence promises semantic exhaustiveness the machinery cannot deliver. It should
   say *"every report our engines can reach."* This is the deepest honesty issue on
   the page and it is **not** in my numbered findings because it is a matter of
   wording, not of a wrong number — but it is the one a scholar will press hardest.

3. **Grading was not verified per row.** W-A rows carry collection+locus but this
   seat did not verify that the cited grade strings match the graders. `W-K
   rijal_program.json` is a *program*, not a layer — the rijāl work is unbuilt, and
   the invitation asks incoming reports for gradings the waqf cannot yet check.

4. **Not in this seat's scope, assumed covered by PW1/PW3**: W4-S1 treebank
   acquisition and licence, W-C quote registry, W-G/W-H, P31 REPAIR per-verse tajwīd,
   `_FRAMEWORK-30000.json` totals. This seat notes only that the framework file
   contains no occurrence of the string `68,921` — the page's ḥadīth total is not
   registered anywhere upstream (see F5).

5. **`W-D.thematic_tier.rows` is empty and `X5.rows` is empty.** Both are correctly
   marked OPEN and neither publishes anything false. But F1's sentence leans on the
   thematic tier rhetorically while that tier holds zero rows — an empty shelf cannot
   carry an absolute claim.

---

## COUNSEL

The build's instincts are right and its engines are clean. Every number this seat
attacked, it lost to. The failure mode here is **not** fabrication — it is that the
prose layer grew claims the measurement layer never made, and one selftest was too
polite to catch it. F1, F2 and F4 are the same disease at three depths: a sentence, a
field name, and a green light, each asserting more than what was measured.

All three are ~10-minute fixes. None requires re-running an engine except F2, which
this seat has already demonstrated reproduces in about four minutes.

Fix those three and this is the strongest layer in the build.

---

## SEAL VERDICT

**SEAL BLOCKED BY:**

1. **F1** — `THE-INVITATION.html:10` + `W-I/_meta.law`: the absolute *"every one …
   through its sister verses"* is contradicted by the layer's own field on **332 of
   684** verses. Reader-facing, addressed to the ummah, disprovable in one query.
2. **F2** — `p28_expansion.py:54` / `X3/sirah_verse_sync.json`: `in_delimiter_ground_truth`
   is `false` on **3,565** verses that are in the delimiter ground truth, and the
   layer's declared law states the opposite of what it built.
3. **F4** — `p32_invitation_page.py:47`: `SELFTEST GREEN` printed on a vacuous
   assertion (`"684" not in ""` is always `True`). A green that cannot go red must
   not gate a seal.

**Required before the seal is re-sought** (not independently blocking, but each is a
promise the build has already made in writing): **F3** and **F5** — the footer
guarantee *"every count re-derivable"* is currently false for 1,740 cross-verse
claims and for the hardcoded 68,921; **F6** — floors must be reset to measured truth
(15 and 826) with one known-positive added.

**Cleared without reservation**: W-F per-verse witness truthfulness (6,236/6,236) ·
the derivation of the 684 and the 580 · **the substantive claim of the OPEN
INVITATION, which survived two independent falsification attempts** · X2 maghāzī
(3/3 battles exact) · X4 bridge (826, list-identical) · X5 register (4/4
NEEDS-VERBATIM-RESOURCING) · the tone of THE-INVITATION.html, which condemns no one
and states plainly that the absence is in the shelves and never in the Book.

---
*PW2 · machine-scholar bench, labeled · review only · every count above re-derivable
from the commands run in this seat's transcript · law 18 applied against this seat's
own first finding, which was withdrawn*
