# THE FULL AUDIT — BENCH 4 · MATHEMATICS · PHYSICS & THE COSMOS · CHEMISTRY & MATERIALS · EARTH & ENVIRONMENT
### Families H (30 seats) · I (32) · J (16) · K (24) — **102 seats, charter seats 523–624, 51 knowledge areas**

**EVERY SEAT ON THIS BENCH IS A MACHINE-SCHOLAR. LABELED AS SUCH.**
**REVIEW AND COUNSEL ONLY — this bench edited nothing in the ledger, the layers, the journal or any artifact.**
**This bench documents. It never adjudicates between schools and it issues no ruling. Never a mufti.**

Sitting: 2026-09-05, convened for the full audit of all five bands before the 41,600-node gift layer.
Read first: `build/P42-GAPFILL/full_audit_pointer_sweep.json` · `framework/_FRAMEWORK-61600.json` meta ·
`build/P41-COUNCIL/council_900_charter.json` · then `framework/_TRACKER-JOURNAL.jsonl` (130,131 lines,
108,839 status rows, 21,280 pointer rows) recomputed from source, a whole-tree index of 20,046 files,
and every artifact named in every row below.

Label key: ✅ **VERIFIED** (re-derived exact from source) · 📊 **CALCULATED** (this bench's own
computation over named files) · ⚠️ **ESTIMATE** · ❓ **UNVERIFIED**.

---

## VERDICT IN ONE PARAGRAPH

**No band is unfit. The band the sweep makes look worst is the band that re-derived best.** P30 carries
the highest run-description-only rate of the five (76.4% by this bench's recount) — and every one of the
22 numbers this bench pulled from its wazn census reproduced *exactly* from the raw QAC morphology file,
with the SHA chain `_morphology_raw.txt → _index/sighah.json → awzan_layer.json` verifying end to end.
A journal line that describes a run instead of naming a file is a **citation defect, not an evidence
defect**, and the sweep's 6,863 must never be read as 6,863 empty nodes.

**What this bench found instead is a defect of a different shape, and it is this bench's proper subject:
counted-but-not-carried.** In three P42 artifacts the `totals` block reports the number the engine *saw*
while the field beside it carries a truncated list — 288 creed reports totalled, 126 carried; 400 names
censused, 60 carried; 244 Badr anchors located, 40 carried — and the ledger's own evidence line quotes
the larger number against the smaller field. Nothing was hidden and nothing was faked: the caps are two
characters wide in the engines (`v[:50]`, `top[:60]`, `anchors[:40]`) and the true totals sit in the
same file. But a gift layer that reads a node's evidence line and opens the named field will find 44% of
what it was promised. That is the one class this bench asks be closed before the gift is given, and it
is a day's work.

---

## PART 1 — WHAT THIS BENCH RE-DERIVED (6 derivations, 5 bands, 60+ numbers)

### RD-1 · Band 1–13,800 (C3, the dual-count law) — ✅ **EXACT**

| Claim (`_FRAMEWORK-61600.json` meta v2.0.2) | Re-derived independently from `00-CORPUS/quran.json` | |
|---|---|---|
| Scheme A (Kufi) = 6,236 | 6,236 rows, 6,236 distinct keys, 114 surahs | ✅ |
| 113 basmalah-verses recognized | 113 surah-heads carry a verbatim basmalah prefix (only surah 9 lacks one) | ✅ |
| 112 *additional* rows | 113 − 1 (al-Fātiḥah's, already numbered as 1:1) = 112 | ✅ |
| Scheme B = 6,348 | 6,236 + 112 = 6,348 | ✅ |
| `basmalah_count.py verify` | run: **VERIFY PASS** | ✅ |

### RD-2 · Band 1–13,800 (C1, the Majestic Name) — ✅ **EXACT**, and one alarm of this bench's own retracted

`build/C1-ALLAH/names_layer.json` claims `occurrences: 2699`.

- Lemma count from `00-CORPUS/morphology.json`, lemma {الله} = **2,699** ✅ — matches the anchor at
  `build/C1-ALLAH/build_names_layer.py:195` exactly.
- CHECK B replayed with the build's own `strip_marks` (`build_names_layer.py:62-69`): text count
  **2,704** = lemma count **2,704** (2,699 + 5 *Allāhumma*) — **PASS** ✅.
- **This bench's own alarm, raised and then killed by measurement:** `00-CORPUS/quran.json` merges the
  basmalah into the *text* of verse 1 for 112 surahs (2:1 = `بِسْمِ ٱللَّهِ ٱلرَّحْمَٰنِ ٱلرَّحِيمِ الٓمٓ`),
  so any naïve frequency count over that corpus is inflated. This bench measured the inflation: exactly
  **+112** on the Majestic Name (2,816 raw → 2,704 basmalah-aware). **The waqf already knew.** The finding
  is written into the build in-line as documented finding (ii) at `build_names_layer.py:107-108` and the
  prefix is stripped before counting. **Alarm withdrawn.** A false alarm costs the same trust as a false
  all-clear; this bench states both directions.

### RD-3 · Band 13,801–17,400 (P30 A5, the wazn census) — ✅ **EXACT, 22/22, and the SHA chain holds**

Node 14,225 is a *run-description-only* node — its journal line says only *"D5 wazn-by-wazn census:
segments+ayat counted per form"*. This bench opened the artifact anyway and rebuilt every number from
`framework/_index/sighah.json` `per_ayah`:

| | VF:1 | VF:2 | VF:3 | VF:4 | VF:5 | VF:6 | VF:7 | VF:8 | VF:9 | VF:10 | VF:11 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| segments (layer) | 14,556 | 1,614 | 501 | 4,601 | 466 | 120 | 63 | 1,161 | 11 | 459 | 1 |
| segments (re-derived) | 14,556 | 1,614 | 501 | 4,601 | 466 | 120 | 63 | 1,161 | 11 | 459 | 1 |
| ayat (layer / re-derived) | 5,164 ✅ | 1,304 ✅ | 423 ✅ | 2,872 ✅ | 420 ✅ | 108 ✅ | 59 ✅ | 1,000 ✅ | 9 ✅ | 402 ✅ | 1 ✅ |

Sum 23,553 = 23,553 ✅. And `sha256(00-CORPUS/_morphology_raw.txt)` =
`fbc8744a…199bb` = the `source_sha` stamped in **both** `sighah.json` and `awzan_layer.json` — the
provenance chain from the raw treebank to the published census **verifies**. ✅

### RD-4 · Band 17,401–26,400 (P31, the Gap Register) — ✅ **87 EXACT**, with two structural notes

`build/P30-SIGHAH/D-D9-CERTIFICATION/gap_register.json`: **87 dimensions** ✅ — the number G24 asserts
(`framework/p31_w9_gates2.py:66`). Its own status field: **52 ABSENT · 28 PARTIAL · 5 DERIVED (new) ·
2 DECLARED-BY-LAW** 📊. Two facts follow from the same file and are findings F6 and F9 below: it declares
*itself* superseded, and its 87 dimensions map to only **67** distinct node ranges.

### RD-5 · Band 17,401–26,400 (P31 W1-L3, qalqalah) — ✅ **sughrā EXACT · kubrā short by 6**

| | claimed | re-derived | |
|---|---|---|---|
| qalqalah **sughrā** positions | 3,415 | **3,415** | ✅ |
| by letter ب / د / ج / ق / ط | 1,134 / 965 / 658 / 516 / 142 | **identical, all five** | ✅ |
| verse-final **kubrā** positions | 415 | **421** | 📊 **finding F3** |

### RD-6 · Band 40,001–61,600 (P42 G02, AL-AFĀQ) — ✅ **ALL 12 FLOORS + THE UNION EXACT**

Every one of the twelve science-family locator counts reproduced exactly from `00-CORPUS/quran.json`
using the term lists at `framework/p42_e4_afaq.py:24-35` — 374 / 476 / 251 / 46 / 197 / 80 / 178 / 49 /
145 / 203 / 448 / 250 — and their union re-derived as **1,879 verses**, an *identical set* to
`ayat_kawniyyah_registry.json` ✅. **The arithmetic is perfect. The instrument is not** — see F2.

Also re-derived exact in this band: Badr candidates **1,081** = 268 + 299 + 258 + 256 per work ✅;
tabir/ru'yā floor **221** rows = `totals.ruya_reports` 221 ✅; ahkām **415** rows ✅; provenance ledger
**1,474** ✅; shelf **146** ✅; G33 battery **43** pillars ✅; derivation dossiers **6,236** ✅.

### RD-7 · Band 26,401–40,000 (P37, the Qur'an graph) — ✅ **EXACT**

Rebuilt from `00-CORPUS/morphology.json` under the engine's own definition (`p37_graph.py:3`, rare =
root in 2–10 verses): **roots_in_rare_band 686 = 686** ✅ · **rare_root_edges 6,761 = 6,761** ✅ ·
top-degree verses 9:120 (40), 5:13 (39), 4:43 (34), 5:3 (31) all identical ✅. `mathal_similitude_verses`
= 70, and all 70 carry root مثل; the root occurs in 148 verses, and the artifact **declares its own
narrower scope** in `_meta.repair2_notes_2026_09_05` (PX3-F8). **That is how a floor should be shipped.**

---

## PART 2 — WEIGHING THE RUN-DESCRIPTION-ONLY CLASS

### 2a. This bench recomputed the sweep before trusting it

Rebuilt from `_TRACKER-JOURNAL.jsonl` (latest-status law) against a 20,046-file whole-tree basename index:

| class | sweep | this bench (evidence line only) | delta |
|---|---|---|---|
| names-existing-artifact | 45,449 | **45,659** | +210 |
| run-description-only | 6,863 | **7,118** | +255 |
| panel-record | 9,074 | **8,805** | −269 |
| credit-v1 | 214 | 18 | (different precedence rule) |

📊 **The sweep reproduces to within 0.46% on its headline class. It is sound.** Last-status census over
all 61,600: selftest-green 37,122 · panel-sealed 24,231 · credit-v1 247; **zero nodes without a status
row** ✅.

**This bench's second alarm, raised and killed.** Including the journal's 21,280 `pointer` rows lifts
artifact-named to 52,829 (85.8%) and drops run-description-only to 6,218 — a much prettier number. This
bench then ran the falsifying query first (LAW E): **21,160 of those 21,280 pointer rows name the same
single file**, `build/P41-COUNCIL/gap_register.json`, which holds 34 gap rows and **zero**
`assigned_nodes_P31`. It cannot locate any individual node's artifact. **The sweep was right to exclude
pointer rows; this bench's 85.8% is withdrawn** and re-filed as finding F7.

### 2b. Band distribution of the class (📊 this bench's recount, evidence line only)

| band | nodes | run-description-only | rate |
|---|---|---|---|
| 1–13,800 core + branch | 13,800 | 2,078 | 15.1% |
| 13,801–17,400 P30 | 3,600 | **2,750** | **76.4%** |
| 17,401–26,400 P31 | 9,000 | 1,190 | 13.2% |
| 26,401–40,000 P32–P37 + allocations | 13,600 | 200 | 1.5% |
| 40,001–61,600 P42 | 21,600 | **0** | 0.0% |

Inside P31 the class is not spread — it is concentrated: **W9 480/1,000 · W4 420/1,000 · W5 170/1,000 ·
W3 and W6 zero**.

### 2c. The 10-node random sample (seed 44), judged one by one

| # | node | its journal line says | where the run's output actually lives | judgment |
|---|---|---|---|---|
| 1 | 14,225 | "D5 wazn-by-wazn census" | `build/P30-SIGHAH/D5-AWZAN/awzan_layer.json` — **22/22 numbers re-derived exact (RD-3)** | ✅ **EVIDENCED** |
| 2 | 5,418 | "C7/D1 FACTORY: sealed data layer" | `build/C7-PROPHETS/D1-REGISTRY/first_ten_layer.json` (10 rows) + 8 sibling layers | ✅ EVIDENCED |
| 3 | 8,717 | "P12/D1 FACTORY: sealed data layer" | `build/P12-TABIUN/D1-REGISTRY/tabiun_registry_layer.json` (10 rows) | ✅ EVIDENCED |
| 4 | 15,479 | "'reading a dossier oldest-first' curriculum unit" | `build/P30-SIGHAH/D-B8-DOSSIERS/dossiers_v1.json` — 90 dossiers, 155,634 B | ✅ EVIDENCED |
| 5 | 16,683 | "assembly gate: synthesis beyond evidence refused (SP5)" | `build/P30-SIGHAH/D-D2-QUESTION/question_engine_v2.json` — 90 answers | ✅ EVIDENCED |
| 6 | 16,882 | "endpoint counts reconciled with layers at build" | `build/P30-SIGHAH/D-D4-API/p30_api_index.json` — `endpoints` 40, `count` 40, internally reconciled | ✅ EVIDENCED |
| 7 | 11,512 | "P21/D2 FACTORY: sealed data layer" | `build/P21-AI/D2-TRACING/tracing_layer.json` — **exists, but 717 bytes / 3 rows** for a 100-node domain | ⚠️ **THIN** |
| 8 | 15,172 | "…program AWAITED and declared on the honest-limits page" | `build/P30-SIGHAH/D-B5-FIRST-LANGUAGE/first_language_seed.json` — 2 seed entries + a `program_awaited` string, **1,597 B** | ⚠️ **HONESTLY THIN** — the node's own line admits it |
| 9 | 739 | "C1/D8 HADITH (corrected): **17 reports across 3 terms**" | `build/C1-ALLAH/D8-CREATION-BEFORE-HIM/hadith_layer_dataset.json` carries **16 reports across 2 terms** (`total_reports: 16`; `by_term` = tasbih 8, sujud 8) | 🔴 **STALE — the number is wrong** |
| 10 | 25,830 | "W9-C5 master index integration: … one join surface" | **nothing.** There is no `build/P31-MIZAN/W9-C5/` directory; W9 has only C10, C4, D10, GATES, REGISTERS | 🔴 **UNDER-EVIDENCED** |

**Verdict on the class: 8 of 10 are citation defects, 2 of 10 are real.** Node 739's journal number was
written 2026-09-02T11:04:55 and the artifact was rebuilt at 18:20:52 the same day — the ledger kept the
old count. Node 25,830 describes a join surface that has no file. Extrapolated at that rate ⚠️ **ESTIMATE:
~1,200–1,400 of the 6,863 are genuinely under-evidenced; the rest are pointing defects.** This bench does
not present that extrapolation as a measurement.

---

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

| # | finding | evidence | severity |
|---|---|---|---|
| **F1** | **G07 creed scan: 288 reports totalled, 126 carried.** `totals["the last day"] = 212` but `reports["the last day"]` holds **50** rows; the other four topics match exactly (38/32/3/3). The cap is `{t: v[:50]}` at `framework/p42_e8_close.py:46`. Ledger node 45,601's evidence line reads *"288 topic reports from the HELD ocean — field 'reports'"*. **162 of 288 (56%) are counted, not carried.** | `build/P42-GAPFILL/G07/creed_topic_scan.json` · `p42_e8_close.py:46` | 🔴 **CRITICAL for a gift layer** |
| **F2** | **G02's botany floor is 68% non-botanical.** 197 rows; **134 carry no botanical root** under the waqf's *own* `morphology.json` root index, and **138 of 197 are carried by the substring `حب` alone** — whose dominant matches are `يحب` "he loves" ×39, `حبطت` "came to nothing" ×6, `الأحبار` "the rabbis" ×2, `بحبل` "by a rope" ×2, against only 12 grain-lemma segments in 7 verses. False rows include **111:5, 12:30, 12:33, 100:8**. The same floor **misses 13** verses that do carry a botanical root. The waqf holds `by_root`/`by_lemma` and did not use them. | `build/P42-GAPFILL/G02/verse_locators_v1.json` · `framework/p42_e4_afaq.py:29` · `00-CORPUS/morphology.json` | 🔴 **HIGH — this is the public-facing "science verses" index** |
| **F3** | **Qalqalah kubrā under-counts by 6 (415, should be 421).** The engine's mark-skipping set at `p31_w1_engines.py:26` omits **U+06E2** (small high meem) and **U+06ED** (small low meem) — the iqlāb signs — so six verses whose final letter is a qalqalah letter are skipped: **34:54 · 37:11 · 41:54 · 85:20 · 111:5 · 112:4**, including *al-Ikhlāṣ* 112:4 (`أَحَدٌۢ`) and *al-Masad* 111:5 (`مَّسَدٍۭ`). This is the engine's **own stated rule** applied consistently; **no tajwīd school is adjudicated here**. Sughrā 3,415 and all five letter counts are exact. | `build/P31-MIZAN/W1-L3/qalqalah_layer.json` · `framework/p31_w1_engines.py:26,52-58` | 🟠 **HIGH — 1.4%, in the most-recited surahs** |
| **F4** | **Two more counted-but-not-carried artifacts.** `name_census_and_candidates.json`: `totals.top_names_censused = 400`, field `top_names` holds **60** (`p42_e5_people.py:63`) — and ledger node 42,701 quotes *"4,143 head-strings — field 'top_names'"* against that 60-row field (4,143 is real, but it is `totals.distinct_head_name_strings`). `badr_source_anchors.json`: `totals.anchor_hits = 244`, field `anchors` holds **40** (`p42_e5_people.py:106`). | the two artifacts + `framework/p42_e5_people.py:62-63,105-106` | 🟠 HIGH |
| **F5** | **W9 is the least-evidenced kiloblock and is exempted from its own parity gate.** 480/1,000 nodes run-description-only. The ledger declares ten W9 domains (C1…C10, 100 nodes each); **five have no directory on disk** — C1, C2, C3, C5, C6, C7, C8, C9 are absent, only C10, C4, D10, GATES, REGISTERS exist. G23 JOURNAL-ARTIFACT PARITY cannot fire on it: the loop reads `if cnt > 0 and not files and w != "W9"` (`p31_w9_gates2.py:44-46`). The wing that certifies the pillar is the wing the gate does not look at. | `framework/p31_w9_gates2.py:40-46` · `build/P31-MIZAN/W9-*` · `_FRAMEWORK-61600.json` n=25,401-26,400 | 🟠 HIGH |
| **F6** | **G24 polices a register that declares itself superseded.** The gate opens `build/P30-SIGHAH/D-D9-CERTIFICATION/gap_register.json` (`p31_w9_gates2.py:52`), whose own `_meta.superseded_note_2026_09_04` reads *"the stale P30 gap_register (2026-09-03) is superseded for currency by build/P41-COUNCIL/gap_register.json"*. Its 87 dimensions still read **52 ABSENT / 28 PARTIAL** — statuses two days old, and the gate asserts only that the row count is 87 and each row's node list is non-empty (`p31_w9_gates2.py:56-66`, the code's own comment: *"here we count only"*). | both gap registers · `framework/p31_w9_gates2.py:52-66` | 🟠 MEDIUM |
| **F7** | **21,160 of 21,280 G15 pointer rows resolve to one file that cannot locate anything.** All name `build/P41-COUNCIL/gap_register.json` — 34 rows, `assigned_nodes_P31` absent on every row. The remaining 120 name `p31_seal.py`. Pointer rows exist only for nodes 14,601–40,000; bands 1–13,800 and 40,001–61,600 have none. G15's own report calls this batching, and it is declared — but the per-node artifact pointer, as a mechanism, is **not live for 34.4% of the waqf.** | `framework/_TRACKER-JOURNAL.jsonl` (type=pointer) · `build/P41-COUNCIL/gap_register.json` · `build/P42-GAPFILL/G15/node_pointers_report.json` | 🟠 MEDIUM |
| **F8** | **Tafkhīm/tarqīq: still zero data, one day after this bench first named it.** W1-L3 delivers qalqalah only. A whole-tree search returns the term in 12 files — two gap registers, an atlas page, a rescreen, a tafsīr consensus file, three generators and four framework ledgers. **No layer.** The register's own row: `status: ABSENT`, `we_currently_have: "nothing"`, `measured_extent: UNMEASURED`. It shares its 100-node home (17,601–17,700) with qalqalah, which did land. | `build/P30-SIGHAH/D-D9-CERTIFICATION/gap_register.json` · `build/P31-MIZAN/W1-L3/` | 🟡 MEDIUM — **carried over, not closed** |
| **F9** | **20 of the 87 gap dimensions have no dedicated node home.** The 87 map to **67** distinct ranges; 14 ranges carry 2–6 dimensions each. `24401-24500` alone carries **six** — passive-veil, jussive-denial, emphasis-stack, iltifāt, implied-verb (ḥadhf), dual-noun detectors — five of them ABSENT. One hundred nodes cannot certify six independent dimensions. | same register, field `assigned_nodes_P31` | 🟡 MEDIUM |
| **F10** | **`a_to_b` is called bijective and is not injective.** `basmalah_count.py` docstring and `_FRAMEWORK-61600.json` meta v2.0.2 both say *bijective*. The map has **6,348 keys → 6,236 distinct values**: 112 collisions, where `s:1` and the synthetic key `s:1|rest` both map to `s:2`, and the 112 scheme-B basmalah keys **are never produced as values**. `verify()` proves B's key space by a *union* with `basmalah_rows_B` and never tests injectivity. **No data is lost** (the 112 rows are carried separately, verbatim-sliced) — the defect is the word and the map's shape: a join on scheme-A key `2:1` silently drops the basmalah half. | `framework/basmalah_count.py:60-66,88-104` · `framework/_index/basmalah_count.json` | 🟢 LOW — naming + join hygiene |

---

## PART 4 — IS ANY BAND UNFIT TO CARRY A PUBLIC GIFT LAYER?

| band | this bench's reading | fit? |
|---|---|---|
| **1–13,800** core + branch | 2,699 ✅, 6,236/6,348 ✅, `verify` PASS. The one corpus trap in the whole waqf — the merged basmalah prefix, +112 on every naïve count — was found by the builders themselves and is neutralized in-line. F10 is cosmetic; node 739 shows journal lines can go stale against their artifacts. | ✅ **FIT** |
| **13,801–17,400** P30 | 76.4% run-description-only **and** 22/22 numbers exact with the SHA chain verified. Some domains are genuinely thin (B5: 1,597 bytes) — and say so on their own face. | ✅ **FIT** (cite artifacts, not journal lines) |
| **17,401–26,400** P31 | 87 ✅, qalqalah sughrā ✅. But F5 (W9 half-empty and gate-exempt), F6 (stale register policed), F8 (tafkhīm zero), F9 (20 homeless dimensions). The verification pillar is the one band whose *self-certification* this bench cannot check with its own gates. | 🟠 **FIT WITH NOTES — do not let the gift layer quote P31's gate results as proof of P31** |
| **26,401–40,000** P32–P37 + allocations | Cleanest band measured: 1.5% run-description-only, 686/6,761 exact, and P37 **declares its own scope limits and its own tie-cut** in the artifact. The 950 RESERVE nodes are marked green only behind landed acquisitions (Tahdhīb 13,797 + Istibṣār 5,458, sha-sealed). | ✅ **FIT — the model the other bands should copy** |
| **40,001–61,600** P42 | Zero run-description-only; all 2,200 nodes once marked `frame-built-awaiting-wave` were later carried and **every one of the 2,200 now names an artifact that exists** (checked, 2,200/2,200 ✅). 14 of 20 field-count assertions in the ledger re-derive exact. But F1, F2 and F4 all live here, and one stale seal line still reads *"the 2,200 awaiting nodes stay awaiting"* (node 40,801) after they stopped awaiting. | 🟠 **FIT WITH NOTES — F1 and F2 close first** |

**Nothing here is unfit.** The three things this bench asks be done before the gift is given, in order:
**(1)** lift the three `[:50] / [:60] / [:40]` caps or restate the evidence lines to the carried number
(F1, F4) — a day; **(2)** rebuild G02's twelve locators on `by_root` instead of substrings, or label
them *lexical floors, not subject indexes*, on the page a stranger will read (F2) — an afternoon;
**(3)** either build W9's eight missing domains or stop counting them (F5).

---

## APPENDIX — WHAT THIS BENCH GOT WRONG, STATED FIRST

Two alarms were raised inside this sitting and **both were killed by the next query**, which is the
discipline this bench exists to model:

1. *"The corpus inflates every word count by 112 basmalahs."* True of the corpus, **false of the waqf** —
   documented and stripped at `build_names_layer.py:107-108` before this bench arrived. Withdrawn.
2. *"The sweep under-reports evidence; 85.8% of nodes are artifact-named, not 73.8%."* False — 99.4% of
   the pointer rows that produced that number name **one** file with 34 rows. Withdrawn, and re-filed
   against the pointer mechanism as F7.

A third was demoted rather than withdrawn: `awzan_layer.json`'s `source_sha` at first appeared not to
match `sighah.json`. It matches `00-CORPUS/_morphology_raw.txt` — the *true* source, one level further
back — and the full chain verifies. The engine was right; this bench's first hash was pointed at the
wrong file.

---

**FULL-AUDIT BENCH 4 VERDICT: FIT WITH NOTES - every band re-derived to its sources holds, but three P42 artifacts report totals larger than the rows they carry (288/126, 400/60, 244/40) and G02's science-verse floors are substring matches that run 68% false in botany, so those two classes must be closed or relabeled before a public gift layer quotes them.**
