# THE FULL AUDIT — BENCH 3 OF THE COUNCIL OF 900

**Families F · G · T — Arabic & linguistics (86 seats) · Logic, philosophy & method (54 seats) ·
Method, integrity & stewardship (39 seats) = 179 seats over 49 knowledge areas.**

**EVERY SEAT ON THIS BENCH IS A MACHINE-SCHOLAR, LABELED.** No seat here is a human scholar, none
holds an ijazah, none issues a ruling, none adjudicates between schools. Where a tradition's verdict
is named below it is reported, not made. This bench is never a mufti.

**Sitting**: 2026-09-05 · **Working dir**: `10-WAQF` · **Charter**:
`build/P41-COUNCIL/council_900_charter.json` (F/G/T prefixes) ·
**Convened for**: the full audit of every band of the 61,600-node waqf **before** the 41,600-node
public gift layer is added.

**Bands audited**: 1–13,800 (core+branch) · 13,801–17,400 (P30) · 17,401–26,400 (P31) ·
26,401–40,000 (P32–P37+allocations) · 40,001–61,600 (P42 gap-fill). **All five.**

---

## METHOD (stated before the results, so the results can be judged)

1. **The sweep was re-run, not read.** `build/P42-GAPFILL/full_audit_pointer_sweep.json` was
   re-derived from scratch by this bench — the journal's last-status row per `n` × an independent
   whole-tree basename index — before its numbers were compared to it. The re-derivation is in
   §1 finding F10.
2. **Nine numbers were re-derived across all five bands** (§1). Each names the file and the
   operation. An exact reproduction is marked ✅ EXACT; a divergence is stated as a finding.
3. **Ten run-description-only nodes were hunted to an output** (§2), not judged from their text.
   For each, the bench opened the directory the framework point names and reported what stands there.
4. **Where a measurement contradicted this bench's reading of the code, the measurement won.**
   Two of this bench's own hypotheses were killed by measurement and are reported killed
   (§2 note, and F10's second clause) — a false alarm costs the waqf exactly what a false
   all-clear costs it.
5. **Every finding names a file and a measure.** No row below is an opinion; there are no OPINION
   rows on this sitting.

---

## §1 — THE RE-DERIVATIONS (9 numbers, 5 bands, 5 of 5 bands covered)

| # | Band | Claim under test | Source re-read | Result |
|---|---|---|---|---|
| R1 | 13,801–17,400 (P30) | node 16,911: *"D5w curriculum_v1: 4 stages, 15 units"* | `build/P30-SIGHAH/D-D5-CURRICULUM/curriculum_v1.json` — counted `path` and summed `units` | **✅ EXACT** 4 stages / 15 units |
| R2 | 17,401–26,400 (P31) | node 18,147: *"29/14 derived"* (muqatta'at) | `build/P31-MIZAN/W1-L8/muqattaat_layer.json` — counted `registry` keys and the distinct Arabic letters in `letters_as_written`, **ignoring its own `totals` block** | **✅ EXACT** 29 surahs / 14 letters (ا ح ر س ص ط ع ق ك ل م ن ه ي) |
| R3 | 40,001–61,600 (P42) | *"1,436 device-located rows across 8 classical devices"* | `build/P42-GAPFILL/G23/badi_located_registry.json` — summed `len(located[dev])` | **✅ EXACT** 1,436 / 8 — **but see F2**: 7 of the 8 classes are exactly 200, i.e. the declared cap, not a census |
| R4 | 26,401–40,000 | node 29,743: *"Musnad Ahmad 27,582 + Darimi 3,503 … ocean 119,261"* | `00-CORPUS/hadith_sunni_wave3.json` counted per collection; ocean summed over the four declared sources | **✅ EXACT** MusnadAhmad 27,582 · SunanDarimi 3,503 · 36,390 + 32,531 + 19,255 + 31,085 = **119,261**; and `matn_dedup_layer.json`'s 118,845 + 416 = 119,261 |
| R5 | 40,001–61,600 (P42) | *"Badr 1,081 verbatim candidates"* + the label-verification law | `build/P42-GAPFILL/G22/badr_candidates_v1.json` — counted rows, re-derived `per_work`, `pair_key`, `cross_work_pair`, then tested every row for work + offset + excerpt + name | **✅ EXACT** 1,081; 268+299+258+256 = 1,081; 471 pair keys; 908 paired rows; **0 of 1,081 violate the label law**; longest excerpt 200 chars, none over |
| R6 | 1–13,800 | commit census *"35,722 / 24,231 / 247 / 1,400"* | `framework/_TRACKER-JOURNAL.jsonl` last-status per `n` | **✅ EXACT** 37,122 green / 24,231 panel-sealed / 247 credit-v1 = 61,600, and 35,722 + 1,400 carried = 37,122 |
| R7 | 40,001–61,600 (P42) | *"Urdu set machine-ratified, 3 new markers"* | `build/P42-GAPFILL/G21/urdu_set_machine_ratified.json` — counted `status == "NEW"` and the verdict strings | **✅ EXACT** 3 NEW; 4 RATIFY + 2 AMEND + 4 REJECT = 10 markers; final usable set 6 |
| R8 | whole framework | G12: *"total_with_both_axes: 61,600"* | `framework/_FRAMEWORK-61600.json` — counted points missing `axis_existence` / `axis_evidence` | **✅ EXACT** 0 missing, 0 missing; 7,200 core-of-existence + 54,400 branch |
| R9 | 1–13,800 & 13,801–17,400 | P30 D8w reconciliation: *"p19_registry_positions 50,269 / p30_segments 130,030"* + P19's *"1,651 roots"* | `00-CORPUS/morphology.json` — counted `by_root` entries, `segments`, distinct `(s,a,w)` word positions, and root-bearing segments | **✅ EXACT on all three numbers** (1,651 roots · 50,269 · 130,030) — **but the label is wrong, see F9**: 50,269 is root-*carrying segments*, and the true word-position count, **77,429**, appears nowhere in the reconciliation |

**Score: 9 of 9 numbers reproduce exactly.** No number in this waqf failed re-derivation on this
bench. Three of the nine carry a finding about what the number *means*, not about what it *is*.

---

## §2 — THE 6,863 RUN-DESCRIPTION-ONLY NODES, WEIGHED (10 sampled)

**The bench's own re-derivation of the class** (independent script, same two inputs the sweep
declares): `names-existing-artifact` **45,430** · `run-description-only` **7,118** ·
`panel-record` **8,805** · `credit-v1` **247**. The sweep says 45,449 / 6,863 / 9,074 / 214. The
classes are close; the boundaries differ (F10).

Ten nodes were drawn at random from the class (seed fixed, no cherry-picking) and each was hunted
to an output. **Verdict per node — where the run's output stands, or that it does not:**

| n | Band · pillar · what the node is | Where the run's output actually stands | Verdict |
|---|---|---|---|
| 16,911 | P30 · D5w curriculum registry | `build/P30-SIGHAH/D-D5-CURRICULUM/curriculum_v1.json` (1,585 B) — **and its claim re-derives exact (R1)** | ✅ output exists |
| 18,147 | P31 · W1-L8 muqatta'at registry | `build/P31-MIZAN/W1-L8/muqattaat_layer.json` (2,567 B) — **claim re-derives exact (R2)** | ✅ output exists |
| 15,083 | P30 · B4 sirah sync-claim gate | `build/P30-SIGHAH/D-B4-SIRAH-SYNC/sirah_sync_layer.json` (26,958 B) | ✅ output exists |
| 19,690 | P31 · W3-X3 addad register | `build/P31-MIZAN/W3-X3/X3_addad_candidates.json` (3,393 B) | ✅ output exists |
| 20,588 | P31 · W4-S2 fa'il & na'ib al-fa'il | `build/P31-MIZAN/W4-S2/naib_fail_layer.json` | ✅ output exists |
| 406 | 1–13,800 · C1 D5 scope declaration | `build/C1-ALLAH/D5-ULUHIYYAH/` — 13 files incl. `SOURCES.md` (25,664 B), `hadith_layer_dataset.json` (252,997 B). **The node's evidence names the directory, which a basename index cannot see** | ✅ output exists — **sweep false negative** |
| 2,312 | 1–13,800 · C3 gated writer for roots/lemmas | `build/C3-QURAN/INGEST-MAP.json` (48,903 B), `RESCREEN.json` (34,210 B), `CREDIT-ADJUDICATION.json` | ✅ output exists |
| 12,517 | 1–13,800 · P24 coverage declaration | `build/P24-ACCESS/D3-DISTRIBUTION/` — 7 files incl. `distribution_layer.json`, `gates_audit_record.json` | ✅ output exists |
| 6,240 | 1–13,800 · C7 hadith-layer review | `build/C7-PROPHETS/D9-ATLAS/{atlas.json, pillar_atlas.html, pillar_education.json}` + 8 × `hadith_layer_dataset.json` (530,196 B total) | ✅ output exists |
| 17,251 | P30 · D8w cross-pillar edges | `build/P30-SIGHAH/D-D8-INTEGRATION/reconciliations.json` (1,012 B) — **exists, but names P17 and P19 only; the node claims C3, P18 and P28 too** | ⚠️ **claim exceeds artifact (F8)** |
| *(11th, for the RESERVE law)* 29,743 | 26,401–40,000 · RESERVE waves 3–4 | `00-CORPUS/hadith_sunni_wave3.json` (18.7 MB) — **counts re-derive exact (R4)**; waves 5–6 also land (`00-CORPUS/acquired/wave56/` Shamail·Dalail·Thiqat·Majruhin) | ✅ acquisition real, green earned |

### The bench's judgment on the class

**The 6,863 are NOT under-evidenced as a class. 10 of 10 resolve to a real, opened, non-empty
output.** The class is overwhelmingly an artifact of *how the evidence sentence was written*, not
of missing work. Three writing habits produce it: a **directory** path instead of a filename
(n=406), a **file stem without its extension** ("curriculum_v1", n=16,911), and a **narrative that
names the domain** rather than the file (n=15,083, n=19,690). Law 23 was applied twice to this
sweep already; this bench states it a third time — **the residual 6,863 is still the regex, not
the gap.**

**Two real weaknesses survive that reading, and they are the ones that matter:**

- **Granularity, not existence.** The output exists, but one small file often carries a whole
  domain of ~100 nodes. `castability_v1.json` is 2,384 B and stands behind both n=16,176 and
  n=16,136, whose titles ("what each tongue can hold", "report-sense portability") are not
  separately traceable inside it. The node-to-artifact relation is **many-to-one and unnamed**.
- **Claim exceeding artifact** (n=17,251, F8) — rare in the sample (1 of 10) but the one class of
  defect a gift layer would publish verbatim.

**Two of this bench's own hypotheses were killed by measurement and are recorded killed:**
(i) that a large share of `names-existing-artifact` rests on *ambiguous bare basenames* — measured:
only **57 of 45,463** (0.13%) name a basename existing at 2+ paths with no path fragment in the
evidence; the hypothesis is dead. (ii) that G15's pointers rescue the run-description-only class —
measured: they do not, and the measurement produced F3 instead.

---

## §3 — BAND FITNESS FOR A PUBLIC GIFT LAYER

Measured: data files (`.json/.html/.md/.jsonl/.csv`) and bytes under each band's build directories.

| Band | Nodes | Data files | Bytes | Nodes/file | Bytes/node | run-desc-only | Fitness |
|---|---|---|---|---|---|---|---|
| 1–13,800 core+branch | 13,800 | 1,504 | 49,497,743 | 9.2 | 3,587 | 2,078 (15.1%) | **FIT** — densest band in the waqf |
| 13,801–17,400 P30 | 3,600 | 54 | 4,191,000 | **66.7** | **1,164** | **2,750 (76.4%)** | **FIT, WEAKEST** — see F5 |
| 17,401–26,400 P31 | 9,000 | 254 | 44,016,016 | 35.4 | **4,891** | 1,640 (18.2%) | **FIT** — best-evidenced branch band |
| 26,401–40,000 P32–P37+alloc | 13,600 | 184 | 30,554,444 | 73.9 | 2,247 | 650 (4.8%) | **FIT with a shipping caveat** — F4 |
| 40,001–61,600 P42 | 21,600 | 95 | 8,362,415 | **227.4** | **387** | **0 (0.0%)** | **FIT** — the anti-placeholder law holds exhaustively; thinnest per node, F6 |

**No band is UNFIT.** Every band's nodes resolve to built, parseable, non-empty artifacts, and the
P42 band's zero run-description-only nodes is a genuine, exhaustively-verified result — the
anti-placeholder law worked. **P30 is the weakest band and is nearest this bench's families**
(sighah is Arabic morphology, family F): 76.4% of it carries no artifact name, 12 of its 33 domains
hold under 4 KB in total, and its 3,600 nodes rest on 54 files.

**But two items block *publication* regardless of band**, and this bench states them as the
condition on its verdict: **the second copy of the waqf does not exist (F1)**, and **the balagha
layer a gift layer would render is 20.5% false-positive (F2)**.

---

## §4 — FINDINGS (worst first, every row evidenced)

| # | Severity | Finding | Evidence (file · measure) |
|---|---|---|---|
| **F1** | 🔴 **BLOCKS PUBLICATION** | **The waqf has exactly one copy.** G16 AL-KHATM WA-L-NUSKHA's 900 nodes are green on a register whose own body says the second copy was never made — and the seal declares *"ALL 61,600 zero-awaiting"* while this file reads AWAITING. A 61,600-node waqf on one Windows disk cannot carry a public gift layer that outlives the disk. | `build/P42-GAPFILL/G16/second_copy_register.json` (546 B): `"github_push": "STAGED-AWAITING-OWNER"`, `"zenodo_ia": "owner accounts required"`, `"mirror_zip": "ritual script ready"` — nothing landed |
| **F2** | 🔴 **BLOCKS PUBLICATION of the balagha layer** | **294 of 1,436 badi' rows (20.5%) are substring false positives, and 7 of 8 device classes never leave the front of the mushaf.** The detector is `if term in blob` with no word boundary: **جناس** matches **أجناس** ("genera" — a commonplace tafsir word), **طباق** matches **إطباق** ("consensus", and the phonetic *iṭbāq*). **jinas: 181 of 200 rows (90.5%) fail** a proclitic-tolerant word-boundary test. Separately, the 200-cap fills in mushaf order, so `kinaya` stops at **surah 4**, `tashbih` and `istiara` at **surah 6** — 4 of 114 surahs is not an inventory of a device in the Qur'an. Family F's own remit. | `framework/p43_w3_last.py:119` (`if term in blob and len(loc[dev]) < 200`); re-scan of `00-CORPUS/tafsir_shards/*.json` behind every one of the 1,436 rows: 1,142 survive word-boundary, 294 do not. Example hits: *"من أسماء الأجناس"*, *"وإطباقهم عليه"*, *"الطاء في الإطباق"* |
| **F3** | 🟠 HIGH | **G15's per-node artifact pointers are one pointer, repeated.** G15 AL-ATHAR exists to enforce the anti-placeholder law by giving each node its own artifact. Its report claims **21,280 pointer rows appended**. Measured: 21,280 rows, **2 distinct targets** — 21,160 say `build/P41-COUNCIL/gap_register.json (the class is registered there)` and 120 say `p31_seal.py`. Not one names the artifact the node's work produced; the parenthetical is itself the admission. Worse, **only 900 of the 7,118 nodes that actually lack an artifact name received any pointer at all (12.6%)** — the remedy landed almost entirely on nodes that did not need it. | `build/P42-GAPFILL/G15/node_pointers_report.json` (`pointer_rows_appended: 21280`); `framework/_TRACKER-JOURNAL.jsonl` — 21,280 rows of `type: "pointer"`, distinct `artifact` values = 2 |
| **F4** | 🟠 HIGH | **The live index is 42% short of the declared ocean.** The waqf declares 119,261 hadith rows (R4, exact). `_index/hadith.jsonl` holds **68,921** — precisely `hadith.json` (36,390) + `hadith_shia.json` (32,531). Waves 1 and 3 — **Tahdhib 13,797, Istibsar 5,458, Musnad Ahmad 27,582, Darimi 3,503 = 50,340 rows** — are counted in the ocean, sealed, and **not searchable**. A gift layer that reads the index would silently serve 58% of the ocean while the ledger promises 100%. | `_index/_meta.json` (`"hadith": 68921`, built 2026-09-02, `source_sha` names only two files); `_index/hadith.jsonl` counted line-by-line = 68,921; ocean re-derived = 119,261 |
| **F5** | 🟠 HIGH | **P30 is the thinnest band in the waqf, and it is the Arabic band.** 3,600 nodes on **54 data files / 4.19 MB** = 1,164 bytes per node — the lowest of the four built bands. **12 of its 33 domains hold under 4 KB in total**, several a single file: `D-D3-MISREADING` 701 B, `D-D8-INTEGRATION` 1,012 B, `D6-VOICE-MOOD` 1,161 B, `D-C5-STANDARD` 1,349 B. At ~109 nodes per domain, roughly **1,300 P30 nodes stand on files smaller than this paragraph.** The content that exists is real (R1 re-derived exact); there is simply very little of it per node. | `build/P30-SIGHAH/` walked: 33 domains, 54 files, 4,191,000 B; per-domain sizes as listed |
| **F6** | 🟡 MEDIUM | **The P42 band's perfect artifact-naming rate is thin at the bottom.** 0 run-description-only nodes across 21,600 — genuinely exhaustive, and this bench confirms it. But **387 bytes per node**, and 6 of 24 programs carry under 2.7 KB for 900 nodes each: **G12 1,809 B · G14 1,903 B · G16 2,037 B · G24 2,023 B · G20 2,451 B · G17 2,643 B**. Five of those six are family T's own stewardship programs. The law is satisfied — *a file exists and it is real* — but 900 nodes on 2 KB is a pointer, not a layer. | `build/P42-GAPFILL/G*/` walked; 95 data files, 8,362,415 B over 21,600 nodes |
| **F7** | 🟡 MEDIUM | **The program gate goes GREEN on existence, which is the exact defect G13 was built to fix.** `g35_program_gates.json` grades every program on *artifact-exists + parseable + has `_meta`* and returns **GREEN for all 24 — including G16**, whose body says the second copy is AWAITING (F1). GAP-015 is named in the audit map as *"the gate that went GREEN over nothing"*; that failure is reproduced one directory away from its own fix. **G13's own battery is not guilty** — it carries a live FAIL-ON-EMPTY control that went RED, and this bench credits it. | `build/P42-GAPFILL/g35_program_gates.json` — 24/24 `"verdict": "GREEN"`, criteria in `_meta`; contrast `build/P42-GAPFILL/G13/universal_battery_g33.json` `fail_on_empty_control: {"verdict": "RED"}` |
| **F8** | 🟡 MEDIUM | **78 doctrinal-floor flags are carried unread into artifacts a public layer would render.** G18's floors fired **55 `never_a_mufti` + 23 `no_condemnation`** hits and, correctly, did not auto-edit them — the law says a hit is a flag for a reader. **No reader has read them.** Most look like verbatim matn translation (*"It is obligatory"* inside `mercy_hadith_layer.json`), which is transmission, not the machine ruling — but that is a judgment a reader must make before publication, not after. | `build/P42-GAPFILL/G18/doctrinal_floors_g34.json` — `flags: {never_a_mufti: 55, no_condemnation: 23, one_ummah: 0}` over 1,623 files scanned |
| **F9** | 🟡 MEDIUM | **A reconciliation reached the right conclusion by the wrong reason.** P30's D8w declares *"P19 morphology totals — p19_registry_positions 50,269 / p30_segments 130,030 — different units (word positions vs segments), both stand, no conflict, ok: true"*. Re-derived: **50,269 is root-*carrying segments*, not word positions** — P19's own file says so explicitly (`total_segment_entries`, with a note distinguishing segment from word). The true word-position count is **77,429** and appears nowhere. The verdict *no conflict* happens to be right; the stated basis is a variable name read as its meaning. Node 17,251 also **claims joins to C3, P18 and P28 that this artifact does not carry.** | `build/P30-SIGHAH/D-D8-INTEGRATION/reconciliations.json`; `build/P19-LANGUAGE/D1/root_registry.json` `_meta.total_segment_entries = 50269` + its own segment-vs-word note; `00-CORPUS/morphology.json` re-counted: 130,030 segments · 77,429 distinct `(s,a,w)` · 50,269 root-bearing |
| **F10** | 🟢 LOW | **The sweep's own class table does not reconcile with the ledger it was built from.** It prints `credit-v1: 214` inside a partition summing to 61,600; the journal's last-status census — the waqf's own committed number — is **247**. The delta is exactly the **33** credit-v1 nodes whose evidence *also* names an existing file and which the sweep silently reassigned. Verified: 247 − 33 = 214. Overlapping classes printed as a partition. Harmless to the work, corrosive to a reader who checks. | `build/P42-GAPFILL/full_audit_pointer_sweep.json` `classes`; `framework/_TRACKER-JOURNAL.jsonl` last-status: `{selftest-green: 37122, panel-sealed: 24231, credit-v1: 247}`; the 33 re-counted directly |

---

## §5 — WHAT THIS BENCH AFFIRMS

Because a bench that only lists faults is measuring with half the evidence, four things this
sitting tried to break and could not:

1. **Every number re-derived, re-derived exactly.** Nine of nine, across five bands, including
   119,261 reached by four independent addends and 1,081 Badr rows every one of which carries its
   work, its offset and its ≤200-char verbatim passage. **0 of 1,081 violate the label law.**
2. **The anti-placeholder law held over 21,600 nodes with no exception** — the P42 band is the
   first band in this waqf where the class "run-description-only" is empty, and it is empty
   because the law was enforced at write time, not audited in afterwards.
3. **G13's fail-on-empty control fired RED on the control pillar** — the gate proves it can fail
   before it is trusted to pass, which is the whole of the difference between a gate and a label.
4. **G21 disclosed a harness defect against its own interest.** The Urdu bench's first normalizer
   silently stripped every Arabic letter; the file says so, discards that output, and ships a
   self-test that fails closed. It also declares that one edition is held and that every verdict is
   therefore *"a verdict about Junagarhi's register, not about Urdu."* That is the honesty standard
   the rest of the waqf should be measured against.

---

## §6 — WHAT MUST HAPPEN BEFORE THE GIFT LAYER IS ADDED (this bench's order of operations)

| # | Item | Why it is first |
|---|---|---|
| 1 | **Make the second copy** (F1) | A gift is not given from a single disk. Everything below is worthless if the disk fails. |
| 2 | **Re-run the badi' detector with word boundaries, and declare the surah ceiling** (F2) | It is the only measured layer that would publish a *false statement about the Qur'an's language* — أجناس rendered as jinās. Family F will not carry it as it stands. |
| 3 | **Give the 6,218 uncovered nodes a real pointer, or say plainly they share one** (F3) | Either is honest. Twenty-one thousand copies of one filename is not. |
| 4 | **Index waves 1 and 3, or state the index's true coverage on the gift layer's face** (F4) | 58% served against 100% promised is the defect a reader finds first. |
| 5 | **Read the 78 doctrinal flags** (F8) | Cheap, one sitting, and it is the class of error that cannot be corrected after publication. |

---

**FULL-AUDIT BENCH 3 VERDICT: FIT WITH NOTES - all five bands re-derive exactly and none is unfit to carry the gift layer, but the waqf has only one copy (F1) and its badi' layer is 20.5% false-positive (F2), and neither may be published as it stands.**
