# THE COUNCIL OF 900 — BENCH 3 · THE CLOSING SITTING OVER THE GAP-FILL BUILD (P42)

**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 holds an ijazah, none issues a
ruling, none adjudicates between schools. This bench measures artifacts and reports what the
measurement said. Where a measurement contradicted this bench's reading of the code, **the
measurement won.**

**Sitting**: 2026-09-05 · **Working dir**: `10-WAQF` · **Under test**: the owner's law —
*"these shall not be only placeholders — each point complete end to end."*

---

## METHOD

1. **Nothing was read for its label.** Every number below was re-derived from the source the
   artifact names, with an independent script, before the artifact's own figure was compared to it.
2. **Four programs nearest F/G/T were opened end to end** — **G13 AL-BAWWABAT** (gates),
   **G17 AL-MIZAN AL-DAQIQ** (uncertainty), **G18 AL-QAWANIN** (doctrinal floors),
   **G23 AL-BALAGHA** (the treebank census) — with **G15 AL-ATHAR** (provenance / the
   anti-placeholder law itself), **G21 AL-ALSINA** (languages), **G24 AL-TAWTHIQ** (documentation)
   and **G12 AL-MIHWARAN** (the axis stamp) added because they are this bench's stewardship remit.
3. **The anti-placeholder law was tested mechanically over all 21,600 new nodes**, not sampled —
   the sample of 12 in §3 is the *reading* check on top of the exhaustive *existence* check.
4. **Timestamps were treated as evidence.** Two of the findings below are proved by mtime ordering
   alone, and one of them reproduces a stale count exactly — which is what makes it certain.

---

## PART 1 — WHAT REPRODUCED (five independent re-derivations)

| # | Claim in the artifact | This bench's independent measure | Verdict |
|---|---|---|---|
| 1 | `G23/relation_census.json` — 139,376 rows censused, 129 distinct relations, `NonRel` 21,429 · `Subj` 16,624 · `root` 14,166 · `link` 14,095 · `gen` 12,961 · `Obj` 10,852 | Re-parsed `00-CORPUS/acquired/irab_treebank/noorbayan/Quranic.csv` (57,475,290 B, utf-16 TSV, 51 columns) from scratch: **139,376 data rows · 129 distinct `rel_label` · every one of the top-25 counts identical · every one of the top-15 `pos` counts identical** | ✅ **EXACT** |
| 2 | `G12/axis_stamp_report.json` — "stamped_this_run 61,600 / total_with_both_axes 61,600" | Counted points in `_FRAMEWORK-61600.json` carrying **both** `axis_existence` and `axis_evidence` non-empty: **61,600 / 61,600** | ✅ **EXACT** |
| 3 | `G15/provenance_ledger.json` — 1,474 artifacts · 36 with true sources · 1,438 UNKNOWN-DECLARED · 202 boilerplate-sha carriers | Walked all 1,474 ledger keys: **1,474 exist on disk, 0 missing**; independent UNKNOWN/declared split = **1,438 / 36** | ✅ **EXACT** |
| 4 | `G13/universal_battery_g33.json` — LENS-AUDIT 15 json / 6 missing `_meta`; C3-QURAN 1; C8-QADR 3; P31-MIZAN 4 | Re-scanned each pillar recursively and parsed every file: **15/6, 1, 3, 4 — 14 files total**, and the six LENS-AUDIT files name themselves (`CH1_full_census`, `CH1_gate_matrix`, `CH1_grade_surface`, `CH1_isnad_census`, `CH1_probeA`, `CH1_probeB`) | ✅ **EXACT** — *and see Finding 4* |
| 5 | The anti-placeholder law — "the marker itself asserts the file exists" | Extracted all **21,600** journal rows for n∈[40,001 … 61,600], parsed the `ARTIFACT:` token from every one, resolved **78 distinct paths**: **78/78 exist · 0 rows unresolvable · 0 nodes without a journal row** | ✅ **HELD, 100%** |

**No fabricated source, no impossible number, and no fabricated count was found anywhere this bench
measured.** The G23 census in particular is the strongest artifact in this bench's remit: it
publishes the treebank's **own** relation vocabulary, correctly declines to map it onto the
balāghah categories, and says so in its own law line. That is the discipline the F family asked for.

---

## PART 2 — THE ANTI-PLACEHOLDER LAW, EXHAUSTIVELY (task 2)

**The law's letter held. Its spirit did not.**

Every one of the 21,600 new nodes carries exactly one journal row (`selftest-green` 19,200 ·
`green-awaiting-panel` 2,400 — **neither status claims a panel seal, which is honest**), and every
row names an artifact that exists. But **what those artifacts are** is the finding:

| pointer target | node-rows | share |
|---|---|---|
| `education.json` / `index.html` — generated boilerplate, 700–870 B, identical in structure across all 24 programs | **12,900** | **59.7 %** |
| `g35_program_gates.json` — one shared 1,642 B gates file | **4,800** | **22.2 %** |
| a domain artifact that actually carries the program's subject | **3,900** | **18.1 %** |

**The 12-node reading check** (does the artifact carry the domain the node claims?):

| n | program · domain | artifact | carries it? |
|---|---|---|---|
| 40001 | G01 · D1 derivation engine | `derivation_dossiers_v1.json` (5,116,730 B) | ✅ yes |
| 58120 | G21 · D2 Urdu CANDIDATE marker set | `languages_machinery.json` | ✅ yes — carries `Urdu`, `CANDIDATE`, `native`, `review`, `unusable` verbatim |
| 40515 | G01 · D6 The pages | `G01/index.html` | ✅ by construction (the domain *is* the page) |
| 55100 / 59530 / 60420 | G17 / G22 / G23 · D7 The education | the program's `education.json` | ✅ by construction |
| 52940 | G15 · D4 seal-what-you-read gate | `G15/index.html` | ⚠️ carries the words, is a landing page |
| 53480 / 54350 | G15 / G16 · D9 The panel & seal | `g35_program_gates.json` | ⚠️ the gates file contains neither "panel" nor "seal" |
| **51230** | **G13 · D5 The census & graph joins** | **`G13/education.json`** | ❌ **no census, no join — 727 B of Q&A boilerplate** |
| **52105** | **G14 · D5 The census & graph joins** | **`adab_v2_report.json` (408 B)** | ❌ **a sweep total, not a census** |
| 61240 | G24 · D6 The pages | `G24/index.html` | ✅ by construction |

**Verdict on the law:** the *existence* clause is proven at 21,600/21,600 — a genuine and
measurable advance on the 10,000-node batch class the Council named as GAP-003. The *carriage*
clause is not: the largest evidence class shrank from 10,000 nodes to 100, but three fifths of the
new nodes still resolve to a file generated from `program_map.json` rather than to content.

---

## PART 3 — PROGRAM BY PROGRAM (this bench's four-plus)

### G23 AL-BALAGHA — **REAL AND MEASURED.**
139,376 rows, 129 relations, exact reproduction (Part 1 #1). Sources line names the true path, the
licence (MIT) and the sha-seal. Its own law line correctly refuses to call the census a
musnad-ilayh register — the mapping is reserved to a bench verdict. **One defect:** of the 400
`subject_class_seed` rows, **84 carry `location: "_"`** and cannot be resolved to a Qurʾānic
position; that faithfully mirrors the treebank (6,257 of its 20,185 `subj*` rows are location-less),
but the seed is unusable for an ʿilm al-maʿānī census until those 84 are dropped or resolved. The
seed is 400 of 20,185 `subj*` rows (**2.0 %**) and is labeled "seed" — lawful.

### G13 AL-BAWWABAT — **REAL, BUT THE GATE CANNOT FAIL AND RAN TOO EARLY.**
43 pillars checked, 43 green, 0 red. The **fail-on-empty control fired RED with its reason
recorded** — that is exactly what GAP-011 asked for and it is the best single piece of gate
discipline in the build. Against it: the `_meta` floor is displayed but not enforced (Finding 4),
and the battery is a **12:46:07 snapshot** whose P42 count of 5 reproduces exactly and thereby
proves it never saw 50 of the 55 JSON files now under the pillar it calls GREEN (Finding 3).

### G17 AL-MIZAN AL-DAQIQ — **HONEST, BUT IT DOES NOT CLOSE ITS GAP.**
1,150 B, five estimates. The bands that exist are real (±25 %, ±33 %) and the basis lines are
checkable. But the gap reads *"No uncertainty apparatus (0 confidence intervals) and no inter-rater
measures anywhere"*, and after G17 there are still **zero** confidence intervals on any measured
layer: `"confidence"` occurs in 15 files corpus-wide, none of them an uncertainty band on a built
layer, and `estimate_registry.json` is not among the 15; `inter-rater` / `kappa` / `Krippendorff`
occur in **exactly one file** — `gap_register.json`, describing their absence. Two of the five rows
carry no numeric band at all, against the artifact's own law that *"an estimate without a band is a
claim in costume."* The registry banded the *project*; the *waqf* is still un-banded.

### G18 AL-QAWANIN — **A FLOOR THAT IS 96 % FALSE POSITIVE AND ONE THIRD UNFALSIFIABLE.**
1,551 files scanned; `never_a_mufti` 49, `no_condemnation` 18, `one_ummah` 0. **47 of the 49** and
**14 of the 18** land inside corpus-verbatim-bearing files — `"It is obligatory"` ×34 inside
`hadith_layer_dataset.json`, `bench_pack_*.json`, `consensus_*.json`, `mercy_hadith_layer.json`;
`"Kafir"` ×15 inside `shamail_layer.json` and `hadith_layer_dataset.json`. The floor is flagging the
tradition's own transmitted words as candidate rulings. G14 built the content-class exemption at
**12:47:45** the same sitting; G18 was written at **12:46:16** and does not use it. Separately,
`one_ummah` returns 0 and the file's only keys are `_meta`, `totals`, `flags` — **there is no
control record**, though `_meta` states *"control proven to fire."* G13 records its control; G18
asserts one it does not carry.

### G15 AL-ATHAR — **THE LEDGER IS EXEMPLARY; THE POINTER REPORT RESTATES THE BATCH.**
1,474 artifacts, all resolving, 36 / 1,438 split reproduced exactly, and `UNKNOWN-DECLARED` is the
right label — *"UNKNOWN-DECLARED beats a boilerplate hash"* is a law this bench endorses. But
`node_pointers_report.json` appends 21,280 pointer rows and gives **18,980 of them the same single
string** — `build/P41-COUNCIL/gap_register.json (the class is registered there)` — for classes
asserting panel seals, certification sweeps and RESERVE-wave landings that the gap register does not
carry. One class points at a bare `p31_seal.py` (it lives at `framework/p31_seal.py`).

### G21 AL-ALSINA — **CORRECTLY LABELED, HONESTLY EMPTY.**
55 language slots, 54 of them `"EARNED BY NATIVE REVIEW ONLY - none held"`, one English set live.
The law line forbids any engine from consuming the Urdu CANDIDATE set. This is the right shape for
an unearned capability and this bench raises no finding against it.

### G24 AL-TAWTHIQ — **THE WEAKEST PROGRAM IN THIS BENCH'S REMIT.** See Finding 1.

---

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

| # | finding | program | severity | the fix |
|---|---|---|---|---|
| 1 | **Two of four commissioned fills have no artifact, and 900 nodes are green over a 377-byte note.** GAP-034's fill is *"matrix v2 … re-derive"* — `find -iname "*matrix*"` returns **no v2**; only `coverage_matrix_v1.json` (2026-09-05T11:43, built in P41). GAP-027's fill is *"the declared repair queue"* — `build/REPAIR-2/repair2_ledger.json` mtime **2026-09-04T12:07**, a day before P42 opened at 12:43. G24's whole delivered set is `honesty_reconciliation.json` (377 B) + generated `education.json` + `index.html`, yet its `index.html` publishes *"Gap ids: GAP-005, GAP-010, GAP-034, GAP-027"* and all 900 nodes read `selftest-green` | G24 | **HIGH** | Build matrix v2 and the repair queue, or set the two domains to `reserve-declared` and strike GAP-034/GAP-027 from G24's pages until an artifact lands |
| 2 | **The gate that greenlit the build was written to disk before 48 of the files it greenlit existed.** `g35_program_gates.json` mtime **12:53:59**; all 24 `education.json` at **12:54:01–02**; `G07/creed_corpus_hunt.json`, `G07/creed_topic_scan.json`, `G20/ocean_growth_ledger.json` at **12:54:01**. Its counts include those files (G20 `"artifacts": 2` = `ocean_growth_ledger` + `education` — **both postdate the gate**; G13 `2` = `universal_battery` + `education`). An "artifact-exists" verdict issued before the artifact exists is GAP-032's seal-goes-stale law reappearing three seconds wide | G13 / all | **HIGH** | Gates run as a separate final pass after the writer process exits; stamp every gate row with the `stat()` mtime and size it actually saw |
| 3 | **The universal battery is a stale snapshot that calls a pillar GREEN over 9 % of it.** Battery built **12:46:07**; it reports `P42-GAPFILL json_files: 5`. At 12:46:07 exactly five JSON files existed there — `program_map` (12:43:05), `G01/derivation_dossiers` (12:45:17), `G09/chronology_anchors` (12:45:19), `G10/occasions_completion` (12:45:19), `G12/axis_stamp` (12:46:07). **There are now 55.** The count reproducing is the proof. (Recursion is sound — C1-ALLAH 72=72, P31-MIZAN 101=101, LENS-AUDIT 15=15 all reproduce; the defect is time, not glob) | G13 | **HIGH** | Run G33 last in the close ritual and make it assert its scan-time ≥ the newest mtime under `build/` |
| 4 | **The `_meta` floor is measured but cannot fail.** 14 files carry no `_meta` — LENS-AUDIT 6 of 15 (40 %), C3-QURAN 1, C8-QADR 3, P31-MIZAN 4 — and **every one of those four pillars is GREEN**; battery totals `green 43, red 0`. A column that never turns a verdict is a display, not a floor: GAP-011's "gate-scope theater" surviving inside the gate built to close it | G13 | **HIGH** | `missing_meta > 0` ⇒ **AMBER, pillar named**; or drop `_meta` from the stated floor list so the law matches the code |
| 5 | **One of the three load-bearing doctrinal laws is green over zero data, with a control the artifact does not carry.** `one_ummah: 0` flags; the file's only keys are `_meta`, `totals`, `flags` — no control record anywhere — while `_meta` states *"control proven to fire."* G13 records its control (`fail_on_empty_control: RED` + reason); G18 does not. As sealed, `one_ummah` is unfalsifiable | G18 | **HIGH** | One control row per pattern class (a synthetic string that must hit); the floor fails when any class's control does not fire |
| 6 | **The doctrinal floors flag the tradition's own transmitted text: 47 of 49 and 14 of 18 hits sit in corpus-verbatim-bearing files.** `"It is obligatory"` ×34 in `hadith_layer_dataset.json` / `bench_pack_*` / `consensus_*` / `mercy_hadith_layer.json`; `"Kafir"` ×15 in `shamail_layer.json` and `hadith_layer_dataset.json`. G14 built the corpus-verbatim content-class law at 12:47:45 this same sitting; G18 (12:46:16) does not apply it. A floor at 96 % quotation-noise will be read past | G18 | **MED-HIGH** | Import G14's content-class list into `g34`; report `flags_ours` and `flags_quoted` as separate totals |
| 7 | **19 of 36 (program → gap_id) pairs point at a register entry about a different subject, and the wrong ids are published to readers.** GAP-016…GAP-026 is uniformly **off by one**: G06 AL-QIRAʾAT ("2 riwāyāt of 20") → GAP-017 = *"Zero narrator IDENTITIES exist"*; G08 AL-AHKAM ("al-Qurṭubī") → GAP-022 = *"prosopographical spine holds 57 persons"*; G17 ("zero confidence intervals") → GAP-030 = *"Sahih Ibn Hibban not held"*; **G20 and G21 both** → GAP-013 = *"the adab engine has drifted"*. The register's numbering is byte-stable across both its commits (`00d2bfb` 30 gaps, `36877cd` 34 gaps) — **the map is the error**. It is republished in 24 `index.html` and 24 `education.json` files, each the cited evidence artifact for 100 nodes. *(Set-coverage is unharmed: 33 mapped + GAP-006 human-only = 34, verified)* | program_map / all 24 | **MED-HIGH** | Rebuild `gap_ids` by joining on the register's `id`, regenerate the pages, and add a build assert that each program's `named_from` shares ≥1 distinctive token with its gaps' `weakness` |
| 8 | **59.7 % of the new nodes' evidence points at generated boilerplate rather than content.** Of 21,600 rows: **12,900** cite `education.json`/`index.html` (700–870 B, generated from `program_map.json`), **4,800** cite the one shared `g35_program_gates.json`, **3,900** cite a domain artifact. Reading check: n=51230 claims *"D5 · The census & graph joins"* and points at `G13/education.json` — 727 B of Q&A with no census and no join; n=52105 claims the same domain and points at `adab_v2_report.json` (408 B), a sweep total | all 24 | **MED-HIGH** | A domain may cite only an artifact carrying its own subject; D5/D6/D7 domains with no census/page/lesson of their own are `reserve-declared`, not `selftest-green` |
| 9 | **Seven programs carry under 1.2 KB of domain artifact between them, for 6,300 nodes.** Domain bytes: G12 363 · G24 377 · G14 408 · G10 419 · G16 484 · G20 985 · G17 1,150. **G01 alone is 5,116,730 B = 87.2 %** of the P42 total (5,871,045 B). Some smallness is lawful — G16's second-copy register is an honest owner-only state, G12's 363 B backs a 61,600-row stamping this bench re-derived — but 900 nodes are allocated uniformly across a **14,000× spread** in delivered substance | all 24 | **MEDIUM** | Publish domain-artifact bytes and rows beside each program's node count, so "900" is never read as 900 units of work |
| 10 | **GAP-026 is documented, not closed: no confidence interval was added to any measured quantity in the waqf.** `"confidence"` occurs in 15 files corpus-wide, none an uncertainty band on a built layer, and `estimate_registry.json` is **not among them**; `inter-rater`/`kappa`/`Krippendorff` occur in exactly one file — `gap_register.json`, describing their absence. Two of the five registry rows carry no numeric band, against the artifact's own law *"an estimate without a band is a claim in costume"* | G17 | **MEDIUM** | Rename the layer *"the project-estimate register"*, open a separate row for per-layer CIs, and give the two band-less rows a band or mark them ORDINAL |
| 11 | **The per-node pointer report resolves 18,980 of its 21,280 rows to one generic string.** Ten of the eleven classes shown carry the identical pointer `build/P41-COUNCIL/gap_register.json (the class is registered there)` — for classes asserting panel seals (10,000 nodes), census sweeps and RESERVE-wave landings, none of which the gap register carries; it registers that they are *gaps*. The eleventh points at a bare `p31_seal.py` (actually `framework/p31_seal.py`). GAP-003 asked that *"every node names the FILE its claim lives in"* | G15 | **MEDIUM** | Point each class at the artifact carrying its measurement (panel-seal class → `reviews/PANEL-*.md`); qualify the `p31_seal.py` path |
| 12 | **`LICENCE-LEDGER.md` is real and orphaned; and the master framework's own total is stale.** The ledger exists at repo root (1,104 B, five source classes, share-alike propagation stated) and genuinely closes GAP-005 — but it is absent from G24's `index.html` artifact table, absent from its `education.json` (*"What stands on disk? artifacts: honesty_reconciliation.json"*), and **no node's evidence line cites it**. Separately `_FRAMEWORK-61600.json._meta.total = 26400` against `len(points) = 61600` (stale since `_FRAMEWORK-30000.json`), `meta` carries `v3`/`v4` but no `v5` entry despite `version: 5.0.0`, and **6 of 24** new pillar labels are truncated mid-word at `named_from[:80]` (*"…never practic"*, *"…is a spin"*, *"…thin sh"*, *"…went GREEN over "*, *"…for the wit"*) | G24 / framework | **LOW-MED** | Cite the ledger from G24's licence domain and list it on its pages; set `_meta.total` from `len(points)` at write time; add a `v5` meta entry; stop truncating pillar names |

---

## PART 5 — WHAT THIS BENCH WILL NOT SAY

- It will **not** say the build is placeholder work. Five independent re-derivations reproduced
  **exactly**, including a 139,376-row parse of a 57 MB source file this bench opened itself, and
  the anti-placeholder law's existence clause held at **21,600 / 21,600 with 78 / 78 files present**.
- It will **not** say a source was fabricated. No fabricated source, count or licence was found.
- It will **not** say the small artifacts are dishonest. `G16/second_copy_register.json` (484 B)
  correctly refuses to claim an owner-only act; `G21`'s 54 unearned marker sets correctly forbid
  their own consumption; `G15`'s 1,438 `UNKNOWN-DECLARED` rows correctly refuse a boilerplate hash.
  **Declared emptiness is not a placeholder — it is the opposite of one.**
- What it *does* say is that **every one of the twelve findings above sits in the T family** —
  method, gates, provenance, measurement, documentation — and **none touches the Book's content.**
  The waqf's scholarship is not what needs repair here. Its instruments are.

**P42 BENCH 3 VERDICT: SEAL WITH NOTES — the gap-fill content this bench re-derived is real and measured, not placeholder, and the anti-placeholder law held at 21,600/21,600 pointers over 78/78 existing files, but three gates were written before the artifacts they greenlit existed, one doctrinal law is sealed over zero data with a control its own file does not carry, two of G24's four commissioned fills have no artifact behind 900 green nodes, and 19 of 36 program-to-gap mappings are published to readers pointing at the wrong gap.**
