# HONESTY PANEL OF 2,700 — SET-MAKE, HALF 2 (450 seats)
## THE MAKE ON TRIAL: is the node-as-planning-share accounting defensible?

**Machine-scholar review. Every number below is labelled and carries the route that produced it.**
Owner's question, verbatim: *"many of 103200 are just written, they are not implemented — 100% honesty:
how many really built, how many pending, how many we can never build."*

**Remit of this half:** the LEDGER AND ITS FACE — `framework/_FRAMEWORK-103200.json` `_meta`, the
journal's marking laws (`framework/_TRACKER-JOURNAL.jsonl`, 185,781 lines / 55 MB), and an independent
second route on the classifier's classes. The files A–Z belong to SET-BUILD; the artifact's sentences
belong to SET-CLAIM.

**Answer in one line, before the evidence:** the owner is right, and he is right about *which* part.
The accounting is defensible as a work-breakdown scheme — but it is nowhere declared, its unit is not
a unit, and the word attached to it downstream is "built."

---

## 1 · FINDINGS TABLE

| # | Finding | Evidence (route + number) | Severity |
|---|---|---|---|
| M1 | **The heaviest artifact in the gift ships an unfilled instruction template as content.** `area_dossiers_313.json` carries 31,300 nodes = 30.3% of all 103,200. Its `for_the_student` field is byte-identical in **313/313** records and reads *"what this area asks, in one line - and where the waqf's measured layers let a student verify a claim personally"* — that is a spec for the field, shipped as the field. `mission_law` is also 1 distinct value/313; `open_question` collapses to **1 skeleton** once the area name is stripped (mail-merge). ✅ VERIFIED — `json.load('build/P44-HADIYYA/AREAS/area_dossiers_313.json')`, per-field `len(set(...))` | 🔴 **The ledger's own `_meta.note` says "anti-placeholder law binds all new marks." This is a live violation of it in the single heaviest node-load in the work.** | CRITICAL |
| M2 | **The unit is not a unit — one node buys 0.3 bytes in one place and 9,559 in another (a 31,000× spread).** Bytes-per-node across *all on-disk copies*: `hadith_layer_dataset.json` 9,558.7 · `pages_trilingual.html` 3,149.3 · `graph_layer.json` 616.4 · `SOURCES.md` 522.9 — versus `g37_audience_gates.json` 0.3 · `g35_program_gates.json` 0.6 · `four_witness_v4.json` 0.7 · `rijal_registries.json` 1.4 · `area_dossiers_313.json` 11.2. 📊 CALCULATED — `os.path.getsize` summed over every copy ÷ journal node-load | CRITICAL |
| M3 | **The ledger's face states the wrong total and never defines what a point is.** `_meta.total = 26400` while `len(points) = 103200` — the face is wrong by **76,800 (74%)**. `_meta.built = "2026-09-01"` though `grown = "2026-09-05"`. The strings `103200`, `node`, `share`, `planning`, `definition` are **all ABSENT** from `_meta`; its `note` stops at 61,600 and never mentions the file's own size. ✅ VERIFIED — substring test over `json.dumps(_meta)` | CRITICAL |
| M4 | **Nothing in the ledger a reader opens carries a status, an artifact, or a class.** Node schema census over all 103,200: exactly two shapes — 76,800 × `{n, pillar, domain, block, purpose, axis_existence, axis_evidence}` and 26,400 × those + `{kind, pillar_name, title}`. **No `status`, no `artifact`, no `sha`, no `class` on any node.** All greenness lives in a 55 MB sidecar journal nobody will open. ✅ VERIFIED — `collections.Counter(tuple(sorted(p.keys())))` | HIGH |
| M5 | **THE CLASSIFIER IS ITSELF WRONG — and wrong AGAINST the work.** Its "206 distinct artifacts" is a **basename collapse**. `graph_layer.json` exists in **130 different directories with 130 distinct md5 hashes** — 130 real per-domain files counted as one. Three independent second routes: **1,348** distinct on-disk files bearing ledger-named basenames · **1,875** distinct (evidence-prefix, basename) keys · **2,856** distinct evidence strings. The true figure is **6.5×–14× the classifier's 206**. ✅ VERIFIED — `os.walk` basename index; `md5sum` on 130 copies → 130 unique | HIGH *(honest both ways, I-3)* |
| M6 | **Second route on the classes: A exact, B/C reproduce within 4–12%, D–G are semantic overrides not mechanical.** My route (last-status record + regex artifact resolution) vs classifier: **A-CREDIT 247 vs 247 — EXACT** ✅ · C-BUILT-THIN 82,179 vs 79,029 (+4.0%) · B-BUILT 5,487 vs 4,886 (+12.3%) · unresolved D+E+F+G 15,287 vs 19,038 (−19.7%). The classifier's own partition sums to exactly 103,200 and its heaviest-15 list reproduced **byte-for-byte** on my route. Its class *edges* are judgement calls; its class *arithmetic* is sound. ✅ VERIFIED | MEDIUM |
| M7 | **91.6% of the thin layer is bookkeeping fan-out, measured.** Under the 62,780 JSON-measurable thin nodes there are **5,274 real records**. 57,506 nodes are the 100×-per-row multiplier and nothing else. 📊 CALCULATED — record/unit count parsed from each thin JSON ÷ its journal node-load | HIGH |
| M8 | **938 nodes point at a file that does not exist anywhere on disk.** Their evidence names an artifact; `os.walk` over the whole tree finds no file of that name. A green mark whose pointer resolves to nothing is worse than an honest blank. ✅ VERIFIED — set difference (named basenames) − (basenames found on disk) | HIGH |
| M9 | **The awaiting→green transitions are lawful — this is the part that holds.** Every one of the 4 awaiting states was retired against a named landing, not re-marked: `reserved-awaiting-acquisition` 450 → green on *"Tahdhib (13,797) + Istibsar (5,458) via OpenITI, sha-sealed"*; `gated-awaited` 700 → green on *"the treebank LANDED lawfully (NoorBayan/Quranic MIT, sha-sealed)"*; `not-started` 70 → the journal contains an explicit self-correction (*"HONESTY UNMARK: hadith points were marked on a 0-report probe (wrong term language); re-probing"*). **The "zero-awaiting" claim is TRUE at the level of the marking law.** ✅ VERIFIED — full status history per node | ✅ SOUND |
| M10 | **The old core is genuinely, heavily built — the thinness is dated and localised to the late gap-fill layer.** The C1-era per-domain deliverables are real: `hadith_layer_dataset.json` **11.5 MB over 131 distinct files**, `pages_trilingual.html` **3.9 MB over 127**, `SOURCES.md` 597 KB over 136, `graph_layer.json` 790 KB over 130. Everything under 12 B/node is P42–P44 (`area_dossiers`, `g35/g37 gates`, `four_witness_v4`, `repair2_ledger`, `matn_dedup_layer`). **The gift has a real spine and a written-on skin.** ✅ VERIFIED — byte census over all copies | ✅ SOUND |

---

## 2 · THE HONEST COUNTS — as SET-MAKE half 2 measures them

Bright line declared before counting, so the check can fail: a node is **really built** when the file its
own journal evidence names exists on disk and carries **≥100 bytes of content per node** across all its
copies — roughly, when a node bought at least a paragraph. Panel process-records qualify where the review
file itself is real (`reviews/` = 99 files, 1,821,844 bytes = 207 B/node ✅ VERIFIED).

| Bucket | Nodes | % of 103,200 | Route |
|---|---:|---:|---|
| **REALLY BUILT — substantive artifact on disk** | **18,088** | 17.5% | ✅ VERIFIED, byte census |
| **REALLY BUILT — panel record, the review IS the artifact** | **8,805** | 8.5% | ✅ VERIFIED, 99 files / 1.82 MB |
| **REALLY BUILT — inherited v1 credit, own audit trail** | **247** | 0.2% | ✅ VERIFIED, exact match to classifier |
| ⇒ **REALLY BUILT, TOTAL** | **27,140** | **26.3%** | |
| **PENDING — machine can finish it, it is not finished** | **17,653** | 17.1% | 📊 CALCULATED (residual) |
| **NEVER BY MACHINE — rights, permissions, human scholars** | **901** | 0.9% | classifier E, cross-checked inside my 15,287 unresolved |
| **NEVER AS DISTINCT — irreducible bookkeeping fan-out** | **57,506** | 55.7% | 📊 CALCULATED, M7 route |
| **TOTAL** | **103,200** | 100.0% | sums exactly |

Sub-splits inside PENDING, for the repair queue: 6,482 nodes name **no artifact at all** (green on a
sentence) · 938 nodes name a file that **is not on disk** (M8) · 5,860 thin nodes in non-JSON artifacts
not machine-measurable by this route · remainder = thin JSON above the 5,274 real records.

**Plain-language reading of the table.** About **one node in four** stands for something a stranger could
open and be fed by. About **one in six** is a genuine promise the machine can still keep. **Nine in a
thousand** the machine can never keep alone — those need a human, a right, or a licence. And **more than
half — 57,506 — can never become distinct things at all, because they were never distinct things:** they
are the 100×-per-row multiplier by which one register row became one hundred numbers.

**That last row is the owner's sentence, measured.** "Many of 103,200 are just written" — the honest
count of "just written" is **57,506 never-distinct + 17,653 pending = 75,159 (72.8%)**.

### Is the accounting DEFENSIBLE if declared?

**Yes — as a plan. No — as a count of things.** A node as a 1/100th planning share of a domain's
deliverable is a legitimate work-breakdown unit; every serious engineering plan has one. Three specific
failures, not vague ones, are what break it here:

1. **It is nowhere declared.** `_meta` never defines a point (M3). A reader opening
   `_FRAMEWORK-103200.json` meets 103,200 objects called "points" with no statement that they are shares.
2. **The unit does not hold its value.** A planning unit that buys 0.3 bytes here and 9,559 bytes there
   (M2) cannot be summed. 103,200 nodes is therefore not a magnitude — it is 206-plus artifacts of wildly
   different weight, added as if they were the same weight.
3. **The word downstream is "built."** `git log adb53d6` reads *"then 41,600 built."* A share is a plan;
   "built" is a delivery. The scheme did not lie — the sentence attached to it did.

Fix all three and the same 103,200 is fully defensible, because **nothing has to be un-built to fix it.**
The repair is a face, not a demolition.

### What the ledger's face must say — the exact words

> **AL-WAQF FRAMEWORK — 103,200 PLANNING NODES ACROSS 313 KNOWLEDGE AREAS.**
> A node is **one hundredth of a domain's deliverable** — a planning share, not a separate object.
> The 103,200 nodes resolve to **≈1,348 distinct files** (≈2,448 substantive files in the tree).
> **27,140 nodes (26%) stand on an artifact a reader can open today.**
> **17,653 (17%) are promises the machine can still keep.**
> **901 (1%) need a human being, a right, or a licence — the machine cannot finish them alone.**
> **57,506 (56%) are accounting shares of registers that are, and will remain, single files.**
> Nothing here is hidden and nothing is a placeholder that is not marked as one.
> `Allah ﷻ alone is the source of all knowledge.`

---

## 3 · IMPROVEMENT PLAN — SET-MAKE HALF 2

1. **Fix `_meta.total` from 26400 to 103200 today.** The ledger's own face is wrong by 74%; this is a
   one-line correction and it is the cheapest honesty in the whole project.
2. **Write the node definition into `_meta` as a first-class field** — `"unit_law": "a point is 1/100 of a
   domain's deliverable — a planning share, not a distinct artifact"` — so no reader can meet 103,200
   without meeting the definition in the same breath.
3. **Fill or flag `for_the_student` in all 313 area dossiers.** It is an unfilled spec shipped as content
   in the artifact carrying 30.3% of all nodes. Either write 313 real lines, or set it to
   `null` with `"status": "not-yet-written"`. Never leave the spec masquerading as the answer.
4. **Kill the mail-merge `open_question` or declare it.** 313 distinct strings that collapse to 1 skeleton
   are 1 fact, not 313. Label the field `"template_derived": true`.
5. **Move status onto the node.** Every point in `_FRAMEWORK-103200.json` gets `status`, `artifact`,
   `bytes_per_node` and `class` inlined from the journal, so the truth travels in the file a person opens
   rather than in a 55 MB sidecar (M4).
6. **Rebuild the classifier keyed on full path, not basename, and republish the artifact count.** 206 is
   wrong and wrong *against* the work; 1,348 / 1,875 / 2,856 are the three defensible routes. The panel
   must not relabel the gift on an undercount (M5) — that would be a false alarm, and per I-2 a false
   alarm costs exactly as much trust as a false all-clear.
7. **Publish the bytes-per-node column beside every artifact.** It is the single number that separates the
   real spine (9,558 B/node) from the written skin (0.3 B/node), and it cannot be argued with.
8. **Open a `BROKEN-POINTER` queue for the 938 nodes whose named file does not exist** and either build
   the file or unmark the node. A green mark pointing at nothing is the one defect with no defence.
9. **Cap the fan-out ratio by law.** No new artifact may carry more than **110 nodes per real record**
   without a declared `"fanout_reason"`. This is the mechanism that stops the 100× multiplier from ever
   silently recurring; every one of the 124 thin artifacts would have been caught at birth by it.
10. **Add a `substance` selftest to the seal.** The seal currently proves greenness; it must also prove
    that every green node's artifact exceeds a declared byte floor — otherwise "zero-awaiting" (which is
    genuinely TRUE, M9) will keep being read as "all built," which is not.
11. **Preserve M10 in the face of the gift.** State that the C1-era core is 11.5 MB / 131 files deep. The
    honest report must carry the strength as loudly as the thinness, or the relabelling will itself be a
    lie in the other direction.
12. **Retire the word "built" for nodes across all future commits and reports.** Use *"planned"*,
    *"marked"*, *"carried"*, or *"standing on an artifact."* The scheme was defensible; only the verb
    was not.

---

*Reviewed by SET-MAKE, half 2 — 450 machine-scholar seats, charter families per
`build/P41-COUNCIL/council_900_charter.json`. Routes: node-schema census (103,200), journal replay
(185,781 records), byte census over all on-disk copies, md5 dedupe, per-field distinctness on the
heaviest artifact. Every count above is reproducible from the two files named at the top.*

*And Allah ﷻ knows best. To Him ﷻ belongs all knowledge, and this ledger is only a record of what
servants attempted.*

HONESTY MAKE-2 VERDICT: TRUE-IF-RELABELED - The 103,200 is a true count of planning shares and a false count of built things: 27,140 nodes (26%) stand on a real artifact, 57,506 (56%) are irreducible bookkeeping fan-out, and the scheme becomes fully honest the moment the ledger's face declares the unit and the word "built" is retired — no work needs to be undone, only relabelled.
IMPROVEMENT POINTS: 12
