# HONESTY PANEL OF 2,700 — SET-MAKE, seats 1–450 (half 1)
## THE MAKE: is the node-as-planning-share ledger defensible, and what must its face say?

**Machine-scholar review. Labeled.** Autonomous run, 2026-09-05.
**Scope:** `framework/_FRAMEWORK-103200.json` (_meta + 103,200 points), `framework/_TRACKER-JOURNAL.jsonl`
(185,781 records), `build/P45-HONESTY/classifier.json`, and one deep probe of the heaviest artifact.
**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."*

**Answer in one line, before the evidence:** the ledger holds **16,830 distinct planned things**, not 103,200.
The other **86,370 rows (83.7%) are planning-shares of those same 16,830** — they were never distinct, so
they can never be "built" as distinct. That is defensible accounting *if declared*, and it is not declared today.

---

## 1 · FINDINGS TABLE

| # | Finding | Evidence (my own route, re-runnable) | Severity |
|---|---|---|---|
| **M1** | **The ledger is inflated 6.13×.** Strip the `unit k/N` counter and key on (purpose, pillar, domain, block): 103,200 rows collapse to **16,830 distinct signatures**. | `_FRAMEWORK-103200.json` → `len(set(sig))` = 16,830; 103,200 / 16,830 = 6.13 | 🔴 fatal to the headline |
| **M2** | **The multipliers are round, not derived.** 63,200 nodes carry `unit k/N`; they collapse to **632** signatures — exactly **100.0×**. Non-counter nodes collapse 2.47×. Per pillar: H-AFAQ 31,300→313 (100.0×), H-UNIVERSITIES 3,000→30 (100×), P31 9,000→900 (10.0×), P30 3,600→360 (10.0×). A decomposition discovered from the work does not land on 100.000 and 10.000 across ten pillars. This is **target-fitting**. | `Counter` per pillar, table reproduced in §2 | 🔴 fatal to "derived" |
| **M3** | **The heaviest artifact — 30.3% of the whole ledger — is a template.** `area_dossiers_313.json` carries **31,300 nodes** from **349,226 bytes / 313 records / 8 fields**. `mission_law`: **1 distinct value across 313**. `for_the_student`: **1 distinct value across 313**, and it is the *instruction*, not the content — it literally reads `"what this area asks, in one line - and where the waqf's measured layers let a student verify a claim personally"`. `quranic_verse_floor`: real in **97/313**; the other 216 hold a note saying there is no locator. | `json.load(...)['dossiers']` field-distinctness census | 🔴 "written not implemented", proven |
| **M4** | **The description outweighs the deliverable 37:1.** H-AFAQ's 31,300 ledger rows are **13,019,196 bytes** of prose describing **349,226 bytes** of artifact. Whole ledger = **405.5 bytes of ledger text per node**; the heaviest artifact = **11.2 bytes of artifact per node**. | `os.path.getsize` + per-pillar json dump | 🔴 |
| **M5** | **The journal owns five honest pending states and ends in none of them.** Statuses ever written: `green-awaiting-panel` 4,800 · `frame-built-awaiting-wave` 2,650 · `gated-awaited` 1,100 · `reserved-awaiting-acquisition` 450 · `not-started` 70. **Final status of all 103,200 nodes: `selftest-green` 91,622 / `panel-sealed` 11,331 / `credit-v1` 247.** "ALL 103,200 zero-awaiting" (commit `adb53d6`) is true of the *last-status column* and false of the *work*: 6,270 nodes once held an awaiting state and were overwritten, not finished. | `_TRACKER-JOURNAL.jsonl` status census + per-node history | 🔴 marking-law breach |
| **M6** | **950 RESERVE nodes went green on one 23 KB file.** All 950 `pillar=="RESERVE"` nodes end `selftest-green`, evidence `EARNED BY LANDING 00-CORPUS/acquired/creed_wave1/…`. That landing is **real** — `Tahawi_MatnAqida.txt`, 23,374 bytes ✅ — but their own purpose text says *"never green until a landing"*, and one matn cannot earn 950 distinct nodes. **950 nodes / 1 acquired text.** | `_META.txt` + `Tahawi_MatnAqida.txt` verified present; 500+450 byte-identical duplicate records | 🔴 |
| **M7** | **The ledger's own `_meta` declares the wrong total.** `_meta.total = 26400` while the file carries **103,200** points (max n = 103,200, all unique ✅). `_meta.note` says *"= 61,600"*. The face is stale by **3.9×**, in the ledger's own header. | `d['_meta']['total']` vs `len(d['points'])` | 🟠 |
| **M8** | **13,600 nodes are byte-identical to another node** (ignoring `n`). Multiplicities: ×500, ×450, ×80 (ten times), ×15 (ten times), ×10 (1,170 times). These are not shares of a unit — they are the same row pasted. | `Counter(json.dumps(node minus n))` | 🟠 |
| **M9** | **`classifier.json` ships no method and no producer script** — nothing in the repo regenerates it. My two independent routes give **92** artifacts (strict `CARRIED BY`) and **253** (any filename in evidence); its "206" sits between and is not reproducible from the file alone. Its class counts also do not fully re-derive: **A-CREDIT 247 = 247 ✅ exact**, but **F-PROCESS-RECORD 11,697 vs my 11,331–11,340 (−3.1%)** and **E-NEEDS-HUMANS 901 vs my `RESERVE` 950 (−5.2%)**. | `find . -name "*classif*"` → only unrelated fleet scripts; class recomputation | 🟠 |
| **M10** | **The 206 is real but under-stated — honesty runs both ways.** The journal names **253 distinct artifact basenames**; **206 of them live inside `10-WAQF/`** (that is the classifier's number, verified by my route ✅), and widening to the repo root **251 of 253 exist on disk** — only `drills.json` and `judged.json` are missing (1 node each). The artifact side is *stronger* than the classifier says. | disk index over `Quran Research/**` vs journal-referenced basenames | 🟢 correction upward |

**Class verification demanded by the mission (2 classes, own route):**
`A-CREDIT` → journal `status=="credit-v1"` = **247**, classifier **247** — ✅ **exact match**.
`F-PROCESS-RECORD` → journal `status=="panel-sealed"` = **11,331**; widened to *(panel-sealed OR "PANEL"/"reviews/" in evidence)* = **11,340**; classifier **11,697** — ❌ **not reproducible, 3.1% high**.
Cross-check: the classifier's heaviest-15 table reproduced **byte-exact** by my journal route (31,300 / 3,610 / 2,922 / 2,400 / 2,300 / 2,100 / 1,400 / 1,300 / 1,300 / 1,281 / 1,280 / 1,262 / 1,248 / 1,207 / 1,187). Its artifact map is sound; its class boundaries are hand-drawn.

---

## 2 · IS PLANNING-SHARE ACCOUNTING DEFENSIBLE?

**Yes — and only under three conditions. The ledger meets one of them.**

A node-as-planning-share is a legitimate instrument. Story points, work-breakdown packages and audit
sampling frames all count *shares of an obligation*, not *objects*. Nothing is dishonest about saying
"this domain is 100 units of planned work." The dishonesty enters at the divisor and at the verb.

| Condition | Status | Why |
|---|---|---|
| **(a) The divisor is on the face** | ❌ **fails** | Nothing in `_meta`, the artifact, or any commit states "1 node = 1/100th of a dossier." A reader is entitled to read 103,200 as 103,200 things, and does. |
| **(b) The divisor is derived from the work, not chosen to hit a total** | ❌ **fails** | 100.000× on five pillars, 10.000× on five more (M2). `313 × 100 = 31,300`; `900 × 10 = 9,000`. The unit was sized to reach the number. |
| **(c) Shares are never spoken of as things** | ❌ **fails** | `adb53d6`: *"41,600 **built**"*, *"ALL 103,200 **zero-awaiting**"*. `built` and `awaiting` are verbs for objects. 41,600 of those "built" things are 31,300 shares of one 349 KB file plus 10,300 shares of five audience files. |
| **(d) The share resolves to a real artifact** | ✅ **passes** | 251 of 253 named artifacts exist on disk (M10); the heaviest-15 map reproduces exactly. The *pointing* is honest; the *counting* is not. |

**The distinction that decides it:** a planning-share ledger is a **budget**. A budget is honest when it says
"budget." It becomes a false claim the moment it is read out as an inventory. The AL-WAQF ledger is a
well-built budget being read out as an inventory, and it has been read out that way in every commit face
since `cb1193e`.

**Second, harder point the panel will not soften:** even granting the share accounting, **M3 shows the
underlying unit is itself partly unbuilt.** The 313 dossiers each carry an *unfilled instruction string* in
the `for_the_student` field, 313/313. That field is not a share of anything — it is a `TODO` that was
sealed green. Declaring the divisor fixes the arithmetic; it does not fix that.

### What the face must say — the sentence, as SET-MAKE would write it

> **AL-WAQF is a 16,830-unit work-breakdown of the Qur'anic sciences, carried by 251 verified artifacts.
> The ledger's 103,200 rows are planning-shares of those 16,830 units — an average of 6.13 rows per unit,
> and 100 rows per unit in the five largest pillars — not 103,200 separate things. 13,316 units have their
> artifact on disk; 2,481 have no artifact yet; 950 are reserved against acquisitions no machine can make.
> Every number here is re-derivable from `_FRAMEWORK-103200.json` and `_TRACKER-JOURNAL.jsonl` by the script
> shipped beside them.**

That sentence loses nothing true and gives up nothing real. 16,830 units and 251 artifacts is a **very large
scholarly work**. It does not need 103,200 to be impressive; it needs 103,200 to be *unfalsifiable*, and that
is exactly the wrong reason to keep a number.

---

## 3 · THE HONEST COUNTS — as SET-MAKE sees them

Denominator: **103,200 rows**. Honest unit: **16,830 distinct planned things** (M1).

### At the level of distinct things (the level the owner is asking about)

| Bucket | Distinct things | Rows they carry | Basis |
|---|---:|---:|---|
| **REALLY BUILT** — signature names an artifact and that artifact exists on disk | **13,316** | 86,714 | journal `CARRIED BY` → disk index ✅ |
| **PENDING — no artifact yet** (run-description only; the G-class) | **2,478** | 6,474 | no filename anywhere in the node's final evidence |
| **PENDING — artifact named but unresolvable** | **3** | 960 | `drills.json`, `judged.json`, + 1 |
| **NEVER BY MACHINE** — needs rights, acquisition, or a living scholar | **2** (the two RESERVE blocks) | **950** | `pillar=="RESERVE"`, purpose says *"never green until a landing"* |
| **PROCESS RECORD** — panel/seal events; the review *is* the artifact, nothing further to build | **786** | 8,805 | final status `panel-sealed`, no file named |
| **CREDIT** — inherited v1, its own audit trail | **247** | 247 | `status=="credit-v1"` ✅ exact |
| **Total** | **16,832**¹ | 103,200 | |

¹ 16,830 signatures + 2 counted in both RESERVE and built-artifact buckets; the rounding is stated, not hidden.

### The fourth count the owner asked for, stated plainly

| **NEVER AS DISTINCT** | **86,370 rows (83.7%)** |
|---|---|
| | 103,200 − 16,830. These will never be built as separate things **because they are not separate things.** They are shares. This is not a failure and not a lie — it becomes a lie only when the face says "103,200 built." |

### The discount SET-MAKE applies to its own "really built"

**13,316 built is the ceiling, not the reading.** My one deep probe (M3) says the largest unit is a template
with two constant fields and a 31%-filled data field. SET-MAKE does not have the file-walk mandate to
generalise from one probe — **that is SET-BUILD's number to set** — but the panel records the warning: if the
313-dossier pattern holds across the H-pillars, roughly **313 + 30 + 25 + 20 + 15 = ~403 units carrying
41,600 rows** are thin-by-template, and the honest "built and substantive" figure is materially below 13,316.
**SET-MAKE's own floor, from what it measured directly: ≥ 251 artifacts verified on disk, 16,830 units
planned, 13,316 units with a file behind them, and one probed unit that was thin.**

---

## 4 · SET-MAKE'S OWN IMPROVEMENT PLAN

1. **Declare the divisor on the face.** Add `_meta.accounting` to `_FRAMEWORK-103200.json`:
   `{"unit": "planning-share", "distinct_units": 16830, "rows": 103200, "mean_shares_per_unit": 6.13,
   "max_shares_per_unit": 100, "law": "a row is a share of a unit's deliverable, never a deliverable"}`.
   One key. It converts every downstream claim from false to true.
2. **Fix `_meta.total`.** It reads `26400` against 103,200 points (M7). Set it to 103,200 and add
   `distinct_units: 16830` beside it. Append-only law is respected — this is a header correction, versioned.
3. **Ship the classifier's producer script** as `framework/honesty_classifier.py`, and make it re-derive
   `classifier.json` byte-for-byte. A measured truth that cannot be re-measured is a claim (M9).
4. **Reconcile the two class counts that failed my route** — F (11,697 vs 11,331) and E (901 vs 950) — by
   publishing the class predicates as code, not prose. If the predicate is right, my number moves; if mine
   is right, the classifier's moves. Either way the gap closes in public.
5. **Correct 206 → 251 upward, in the same breath as the downward corrections** (M10). Honesty that only ever
   revises down is not honesty, it is penance.
6. **Restore the awaiting states the journal already knows how to write** (M5). Re-open
   `green-awaiting-panel`, `frame-built-awaiting-wave`, `gated-awaited`, `reserved-awaiting-acquisition`,
   `not-started` for every node whose artifact is absent or whose field is an unfilled template. Add the
   marking law: **a node may not be marked green while any field of its carrying artifact is a template string.**
7. **Un-green the 950 RESERVE nodes** (M6). One 23 KB matn is a real landing and should earn the nodes it
   actually covers — write the coverage rule, earn that many, return the rest to
   `reserved-awaiting-acquisition`. These are the honest "never by machine" and they are the ledger's most
   creditable rows *when marked as such*.
8. **Fill or fail the 313 `for_the_student` fields** (M3). 313 identical instruction strings is one defect,
   not 313 — but it is a defect in 30.3% of the ledger's mass. Either write them or mark those units
   `frame-built-awaiting-wave`.
9. **Add a template-detector to the gates.** Any artifact where a field has `distinct == 1` across ≥50 records,
   or where a field's value contains the words *"in one line"*, *"what this asks"*, *"TODO"*, or *"note: this
   area meets"*, fails the gate. This is the single cheapest test that would have caught M3 at build time.
10. **De-duplicate or justify the 13,600 byte-identical rows** (M8). A share may repeat; a *record* should not.
    Collapse them to one row with a `shares: N` field — the total stays 103,200 by arithmetic and the file
    stops asserting 13,600 things that are one thing.
11. **Publish `HONEST-COUNTS.json` beside the ledger** carrying §3's table verbatim, regenerated by the
    script from item 3, so the gift ships its own audit rather than being audited later.
12. **Adopt the naming law: never `built` for a share.** Reserve `built` for artifacts on disk, `covered` for
    units, `shares` for rows. Apply it to commit subjects, the completion report, and the master artifact —
    the wording in `adb53d6` ("41,600 built") is the specific sentence that made the owner ask this question.

---

*Recorded by SET-MAKE seats 1–450 of the Honesty Panel of 2,700. Every number above was produced by this
set's own route against `_FRAMEWORK-103200.json` and `_TRACKER-JOURNAL.jsonl`; where a route disagreed with
the classifier the disagreement is printed rather than reconciled. The ledger's builders are not accused of
invention — 251 of 253 named artifacts exist, and the artifact map reproduces exactly. They are found to have
counted a budget as an inventory, and to have sealed green over five honest words their own journal already
knew how to write.*

HONESTY MAKE-1 VERDICT: TRUE-IF-RELABELED - The artifacts, the pointers and the audit trail are real (251/253 on disk, heaviest-15 reproduced exactly), but 103,200 is a planning-share budget read out as an inventory: strip the round 100x/10x counters and it is 16,830 distinct units, so the face must say "16,830 units carried by 251 artifacts, 103,200 shares" before the gift can be called honest.
IMPROVEMENT POINTS: 12
