# HONESTY PANEL OF 2,700 — SET-BUILD, half 1 (450 seats)
## THE BUILD AUDIT — do the files A–Z carry what the ledger says they carry?

**Machine-scholar report. Every number below was re-derived by this set's own route from the
filesystem and from `framework/_FRAMEWORK-103200.json`, not read from the classifier.**

- Working dir: `C:/Users/walee/Downloads/Quran Research/10-WAQF`
- Audited against: `build/P45-HONESTY/classifier.json` (built 2026-09-05T15:04:02)
- Method: full `os.walk` census; payload-mass test on every build output; layer-cap
  histograms over all 131 domain layer-sets; template-collapse test on node text.
- Sampled artifacts: **19** (target ≥15). Numbers re-derived: **7** (target ≥5).

---

## 1 · FINDINGS TABLE

| # | Finding | Evidence (my own route) | Verdict |
|---|---|---|---|
| **B1** | **"206 distinct artifacts" is a BASENAME count and materially UNDERSTATES the build.** 27 basenames hide 1,173 byte-distinct files. | `os.walk` over `build/ framework/ manifests/ _index/`, json+html+jsonl → **2,030 artifact file paths, 884 distinct basenames**. `sha256sum` on the 131 `hadith_layer_dataset.json` → **131 distinct hashes**; `quran_layer_dataset.json` → 130 distinct; `pages_trilingual.html` → 127 distinct; `gates_audit_record.json` → 131 distinct. None are clones. | 🟢 **Build is BIGGER than claimed** — classifier undercounts real files ~10×. Honest both ways. |
| **B2** | **"2,448 substantive files" OVERSTATES — the classifier counted EXISTENCE, not payload.** | My payload test (JSON payload ≥200 chars *excluding* `_meta`; text ≥2KB) over all 2,471 build outputs → **2,107 SUBSTANTIVE · 364 THIN · 2 JSONL corpora** (mis-flagged by my parser; both are real and huge). Classifier's 2,448 ≈ my 2,471 *total judged*, i.e. it equals "file exists". | 🔴 **341 files are stubs counted as substance.** |
| **B3** | **61.2% of the ledger is literal 1/100 planning shares.** | `re.search(r'unit \d+/\d+', purpose)` over all 103,200 → **63,200 nodes**, denominator `100` in **100%** of cases. Example n=103200: *"UNIVERSITIES panel & seal — unit 100/100"*. | 🔴 **These were never defined as distinct things; they can never become 63,200 things.** |
| **B4** | **The ledger's own text collapses to 1,803 templates.** Only 14,533 nodes carry a distinct title. | Distinct purpose strings 64,371 → after stripping digits/domain/pillar names, **1,803 distinct templates**. Titled nodes 26,400 but only **14,533 distinct titles** (11,867 duplicates). Top template carries 800 nodes. | 🔴 Node count ≫ idea count. |
| **B5** | **Exact decomposition — the ledger contains at most 28,133 distinct declared things.** | `63,200` unit-shares + `11,867` duplicate-titled + `14,533` distinct-titled + `13,600` untitled-non-unit = **103,200 ✅ closes exactly**. | 🔴 **103,200 → 28,133 ceiling; 14,533 firm.** |
| **B6** | **`area_dossiers_313.json` — the heaviest single claim (31,300 nodes = 30.3% of the ledger) contains ZERO hand-authored per-area prose.** | 313 dossiers: `for_the_student` has **1 distinct value across all 313** (a placeholder describing what should be written). `open_question` collapses to **1 template** after substituting `<AREA>`. `mission_law` identical 313×. Only **97/313 (31%)** carry real located verses; 216 carry a `note` excuse. | 🟠 **Real index (313 areas · 20 families · 22,641 verse locations), fake "dossier".** Rename, don't delete. |
| **B7** | **The per-domain layers are REAL but hard-capped at a token sample.** | Over all **131** `hadith_layer_dataset.json`: terms-per-domain **113/131 = exactly 3**; records-per-term **341/399 buckets = exactly 8**. Total hadith rows placed across the entire waqf: **2,981** — from a **68,921**-record corpus = **4.3% touched**. C1-D2 "Attributes" covers 3 of ~99 names. | 🟠 **Real joins, real Arabic, real grades — but a sample, presented as a layer.** |
| **B8** | **The corpus floor is genuinely, verifiably built — the strongest truth in the whole waqf.** | `_index/hadith.jsonl` = **68,921 lines**, each with `id/tradition/coll/num/grades/ar/en` and real Arabic isnad. `tafsir_ayat.json` 155,518 leaves · `lemmas.json` 104,564 · `roots.json` 50,269. `quran_layer` entries carry true occurrence counts + full ref lists (`Allah` = 2,699 occurrences with refs). | 🟢 **This part needs no relabeling. It is built.** |
| **B9** | **Gate artifacts carrying thousands of nodes are 300-byte status stamps.** | `g37_audience_gates.json` = **312 B, 5 leaves** (`STUDENTS:GREEN`…) carrying a claimed **1,000 nodes**. `g35_program_gates.json` = 1,336 B, 48 leaves, claimed **2,400 nodes**. `gates_audit_record.json` = 13 leaves × 131 copies. | 🔴 **GREEN here means "file exists and parses" — not "content is correct".** |
| **B10** | **687 of 1,017 declared domains have no build directory of their own.** | Ledger declares **1,017** distinct `(pillar,domain)` and **4,464** `(pillar,domain,block)`. Filesystem: **332** domain dirs under `build/` (2 junk: `__pycache__`, a stray `10-WAQF`) → **330 real**. 115 dirs hold the full 10-artifact set; **128 hold exactly 1**. | 🟠 The 687 are carried inside shared registers — legitimate, but not "a domain built". |

**File census cross-check:** my walk = **3,874** files vs classifier's **3,861**. Δ13 = the
`P45-HONESTY/` + `fleet/logs/HBUILD*` files created *after* the classifier ran at 15:04. ✅ Consistent.

---

## 2 · THE HONEST COUNTS — as SET-BUILD sees them

### A · At the DELIVERABLE level (this set's recommended unit for the face)

| Class | Count | Basis |
|---|---:|---|
| **REALLY BUILT** — artifact files with real payload | **2,107** | payload ≥200 chars beyond `_meta` |
| ├ of which: real domain builds | **330 domains / 45 pillars** | 330 non-junk dirs, all with ≥1 artifact |
| ├ of which: full 10-layer domains | **115** | artifacts-per-dir histogram |
| └ standing on 4 real corpora | **68,921** hadith · **155,518** tafsir · **104,564** lemma · **50,269** root leaves | line/leaf counts |
| **PENDING — thin, exists but hollow** | **364** files | payload <200 chars / <2KB |
| **PENDING — declared, no artifact resolvable** | **4,540** nodes (class G) | classifier class G, sum-verified |
| **PENDING — declared domains with no own build** | **687** of 1,017 | 1,017 declared − 330 real dirs |
| **NEVER BY MACHINE ALONE** | **901** nodes (class E) + **950** reserved-block | my text-scan independently finds **3,354** nodes naming a rights/licence/acquisition dependency and **964** naming a human dependency |

### B · At the NODE level (the ledger's own unit, 103,200)

| Class | Nodes | % |
|---|---:|---:|
| **NEVER AS DISTINCT** — 1/100 unit shares (63,200) + duplicate titles (11,867) | **75,067** | **72.7%** |
| Distinct-titled, resolvable to a real artifact | **14,533** | 14.1% |
| Untitled, non-unit (process/frame text) | **13,600** | 13.2% |
| *(closes exactly: 75,067 + 14,533 + 13,600 = 103,200 ✅)* | **103,200** | 100% |

### C · THE ONE-LINE TRUTH

> **103,200 is a count of planning shares, not of built things.**
> The waqf really contains **≈2,107 substantive artifact files** across **330 built domains**,
> standing on **four genuinely complete corpora** (68,921 hadith among them), and declaring
> **at most 28,133 distinct things — of which 14,533 are firmly titled.**
> **~75,100 of the 103,200 can never become distinct deliverables, because they were never
> defined as distinct deliverables.** Nothing here is fabricated; the *unit* was never declared.

**Nodes per REAL file: 103,200 / 2,030 = 50.8** — not the 501 the basename view implies.

---

## 3 · SET-BUILD'S OWN IMPROVEMENT PLAN

1. **Declare the unit on the face, in the first sentence.** Replace "103,200 nodes" as a headline
   with "**2,107 built artifacts · 330 domains · 14,533 distinct declared deliverables**", and keep
   103,200 only as *"planning shares across the ledger"*, defined in the same breath.
2. **Rename `area_dossiers_313.json` → `area_index_313.json`.** It is an honest index (313 areas,
   20 families, 22,641 verse locations) and a dishonest "dossier" (zero authored prose). Rename,
   never delete (I-6).
3. **Delete the placeholder string, or fill it.** `for_the_student` is one identical placeholder
   ×313. Either author 313 real lines or set the field to `null` with `"status":"unwritten"`.
   A placeholder that reads like content is the single worst artifact in the build.
4. **Re-badge every gate from GREEN to EXISTS.** `g35`/`g37`/`gates_audit_record` prove
   *file exists and parses*. Emit `"gate":"EXISTS-PARSES"` and reserve `GREEN` for a content assertion.
5. **Publish the layer caps beside every layer.** Stamp each `hadith_layer_dataset.json` with
   `"coverage":{"terms":3,"cap_per_term":8,"corpus_rows":68921,"rows_placed":24,"pct":0.03}`.
   The cap is defensible; hiding it is not.
6. **Switch the artifact census from basename to path.** 206 → **2,030**. The current figure
   makes the build look 10× smaller than it is and destroys the credibility of the honest parts.
7. **Fix the "substantive" test to measure payload, not existence.** Ship my test
   (`payload ≥200 chars excluding _meta`) as `framework/audit_substance.py`; re-issue 2,448 → 2,107.
8. **Split the pending register into PENDING-MACHINE vs PENDING-HUMAN/RIGHTS.** 4,540 machine-doable
   vs 901+950 that need a human or a licence. Conflating them is what makes "zero-awaiting" untrue.
9. **Retire the phrase "zero-awaiting" entirely.** With 364 thin files, 4,540 unresolvable nodes and
   687 domain-less domains, no reading of the filesystem supports it.
10. **Add `distinct_titles` and `template_count` to `_FRAMEWORK-*.json` `_meta`.** 14,533 and 1,803
    are the two numbers that keep every future ledger honest at birth.
11. **Publish the exact decomposition (B5) as the ledger's public arithmetic.** It closes to 103,200
    with no remainder — it is the strongest honesty artifact this audit produced.
12. **Ship this report's scripts into `framework/`** so the counts are rerunnable by anyone, not
    asserted: `audit_substance.py`, `audit_artifact_paths.py`, `audit_layer_caps.py`.

---

## 4 · WHAT IS TRUE, STATED PLAINLY

The owner asked whether "many of 103,200 are just written, not implemented." **Yes — about 75,100
of them.** But the inverse deserves equal weight (I-3, honest both ways): the corpus floor is
real and complete, 2,030 artifact files exist where the classifier claimed 206, every one of the
131 per-domain layer sets is byte-distinct rather than copy-pasted, and 22,641 verse locations are
genuinely joined. **The build is smaller than 103,200 and larger than 206.** The failure is one of
*labelling*, not of fabrication — and labelling is fixable in a day.

HONESTY BUILD-1 VERDICT: TRUE-IF-RELABELED — the artifacts are real and rerunnable and the corpus floor is genuinely complete, but 75,067 of the 103,200 nodes are 1/100 planning shares and duplicate titles that were never distinct deliverables, so the ledger is honest only once its face declares the unit as planning-shares and leads with 2,107 built artifacts / 330 domains / 14,533 distinct declared things.
IMPROVEMENT POINTS: 12
