From 626b119f574a5efdb2f6f2c8e5008f66e476e20b Mon Sep 17 00:00:00 2001 From: David F Glidden Date: Sat, 1 Aug 2026 10:35:27 +0200 Subject: [PATCH] governance: PENDING-85 closed (disposition), PENDING-84 triaged + closed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both dispositions carry falsifiers and an explicit statement of what was NOT closed — PENDING-84's underlying §V violation stands and is dispositioned, not repaired. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc --- PENDING.md | 64 +++++++++++++++++++++- claude/memory/session-ledger-2026-08-01.md | 41 ++++++++++++++ 2 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 claude/memory/session-ledger-2026-08-01.md diff --git a/PENDING.md b/PENDING.md index 4ff10b4..89c6fac 100644 --- a/PENDING.md +++ b/PENDING.md @@ -549,7 +549,7 @@ Consequence for the pilot: Harrison — chosen *because* it is the known-worst a Q1, Q4, Q5 affirmed as filed; **Q4 on stronger grounds than argued** (REVIEWED-75's drafting note states the anti-bypass guard was rebound *"to the property, not enrollment"* because the declaration-only reading *"would open the moment the door is first used"* — the extension is inside the clause's ratified reach). Two corrections supersede the drafted design: **(1)** independence of the reference conversion from the ground-truth extraction is a **constitutional requirement**, not declared data — and REVIEWED-72's V-TEXT precedent must **not** be carried across, because it ruled the *other* way (a shared pandoc reader was accepted there since *reader-loss cancels a priori* over unambiguous markup; PDF recovery is inference over page geometry, so nothing cancels). **(2)** the demonstration is of **two** instruments, and the executor conflated them: the classifier's controls are complete, but the *verification method* has no control at all, and requires a deliberately constructed **column-order corruption** case run through a genuinely independent extractor pair. **Harrison's graduation stamp holds until that passes**; its earlier steps proceed. **Awaiting:** steward placement of REVIEWED-83, then the Q3 demonstration. -## PENDING-84 — Nine canonicals whose banked sources carry no extractable text at all +## PENDING-84 — Nine canonicals whose banked sources carry no extractable text at all (TRIAGED + CLOSED 2026-08-01 — the defect is dispositioned, not repaired; see the census) **Date:** 2026-07-28 **Tag:** [HARDENING] **Summary:** Nine canonicals resolve to archived sources with zero embedded fonts and zero extractable words (bare scans), yet their canonical texts exist — so the text came from somewhere that is not mechanically recoverable from the source of record. @@ -558,7 +558,42 @@ Q1, Q4, Q5 affirmed as filed; **Q4 on stronger grounds than argued** (REVIEWED-7 **Files affected:** none yet — diagnosis precedes any change. **Awaiting:** Steward triage of priority. Not urgent; not to be lost. -## PENDING-85 — Two PDF-origin classifier verdicts require human eyeball before any per-file use +### PENDING-84 — DIAGNOSIS (2026-08-01), from one instance read end-to-end, then bounded across the class +**The nine are six works, and the count concealed that.** Reproduced by re-running the classifier over Chamber Sources: 9 bare-scan sources, of which **four are one work** — Alexander's *Nature of Order* vols 1–4. The rest: `detail-in-typography-hochuli`, `mal-darchive`, `on-textual-understanding-szondi`, `pedagogical-sketchbook-klee`, `typography-ruder`. Diagnosing "nine canonicals" invited a class remedy for what is six conversions, four of them one batch. + +**The instance read end-to-end: `mal-darchive`. What produced the text is already recorded in our own runbook — it did not need investigating, it needed reading.** `_curation/conversion-runbook.yaml` `known_gaps.research`, dated 2026-07-12: *"Docling+OCR CROSSES this frontier — it OCR'd a scanned French book (mal-darchive) with 104 footnotes + full page-provenance, 0 cruft, on the M4 (~11min)."* So the canonical came from an **OCR inference run during the PENDING-56 four-tier trial**, whose output was never banked as a derived artifact. That is why no extraction reproduces it: the source is a bare scan, extraction yields nothing, and the text exists only as the output of a model run that was not retained. The canonical still carries the run's signature — 137 `` markers, matching the "full page-provenance" claim. + +**And the same runbook entry names the damage, in the same breath:** *"output is readable but NOT verbatim-clean (glued words, I→1, dropped accents)"*. Measured against the corpus rather than assumed: French canonicals carry **255.8 accented letters per 10,000 characters** (median, n=34; top of range 263–309 — Proust 275.8, Camus 268.1, Foucault 287.5). `mal-darchive` carries **0.4**. Zero overlap, a ~600× gap. Its diacritics are not reduced, they are **gone** — `Conference prononcee le 5 juin 1994 a Londres`, `Galilee`, `Ne commencons pas`, `Deja`, `soupconnons`. Under §V that is **Tier-3 alteration by omission on nearly every line** of a French text, and it is the same shape REVIEWED-70 ruled on for character-bearing images: *"a lexical change no less than a substitution would be."* The work is in canon in that state. + +**The class-level finding, and it is not the one the item names.** All nine were checked for the §V mandatory conversion record: **9 of 9 have none.** Seven have no frontmatter at all (`mal-darchive`, `detail-in-typography-hochuli`, all four Alexander volumes, `pedagogical-sketchbook-klee`); the two that do (`on-textual-understanding-szondi`, `typography-ruder`) carry no conversion field either. §V: *"Every conversion — OCR or EPUB, first-run or re-extraction — **must** produce a conversion record."* §VII: *"A canonical text without a conversion record is not verifiable and cannot enter canon."* **Nine canonicals are in canon in violation of that clause.** The missing record is the actual defect: it is *why* the producing run is unknown, and it is a condition the corpus can repair without re-running any OCR. + +**The class is also wider than bare scans — the condition is "no mechanical path," not "no extractable text."** Found while closing PENDING-85: `ulysses-james-joyce` resolves to `Ulysses (Cliffs Notes) (James Joyce).pdf`, matched `match_cov: 1.0, match_conf: high` on title-plus-author. Its canonical is the real Penguin *Ulysses* (288,602 words, `conversion_method: calibre`, source unbanked). A wrong work banked with abundant extractable text produces exactly the same condition as a bare scan. Any census scoped to `verdict == bare-scan` will keep missing this member, and the source-matcher's own step-4 warning already predicted the failure mode: *"A high title-match is NOT proof."* + +**What this diagnosis does NOT establish, stated so it is not read as settled:** the producing run is *documented* for `mal-darchive` and inferred-by-family for the four Alexander volumes (the runbook names Alexander as the ocrmac multi-column case and records "the page-number method (Alexander 9/9)"); **Hochuli, Szondi, Klee and Ruder were not traced** — that is four works still genuinely unknown, and I did not read them end-to-end. Diacritic loss was measured for the French instance only; the English-language members give no diagnostic signal from that measure and need a different probe. No remedy is proposed here, and nothing was changed. + +**Falsifiers, one command each:** `grep -n "mal-darchive" _curation/conversion-runbook.yaml` returns the 2026-07-12 entry with the dropped-accents caveat; `head -1` on any of the seven shows no `---`; the accented-letter rate is a four-line script over `canonical_texts/**/*.md`. If any of the nine turns out to carry a conversion record, the class finding fails. +**Awaiting (unchanged in kind, sharper in content):** steward triage. The cheapest closable piece is the **conversion-record gap** (a records defect, no OCR re-run); the expensive piece is `mal-darchive`'s diacritic restoration, which requires re-conversion, not repair. + +### PENDING-84 — TRIAGE + CLOSURE (2026-08-01, steward-directed) +**The item's own question — "steward triage of priority" — is answered, so the item closes. The corpus defect does not: it is dispositioned and relocated to a durable artifact, not repaired.** Saying otherwise would be the false-closure shape this corpus exists to prevent. + +**What was built: the §VII quarantine artifact — `_curation/provenance-gap-2026-08-01.tsv`.** Nine rows: canonical slug · path · live sha256 · frontmatter present · source file · source sha256 · condition · converter · **converter_basis** · evidence. **Zero canonical bytes changed** — no hash churn, no re-anchor, and the binding surface was checked first: all nine are catalogue-bound but **unbound in the engine** (no `corpus/manifest.yaml` entry, no sidecar, no reading-index), so the blast radius is chamber-only and this artifact does not even touch it. + +**Why a separate file and not frontmatter — the constitution rules it, and the ruled case has now arrived.** §VII: *"a datum provable only by production, never by an independent gate, goes to a **quarantine namespace trusted consumers structurally cannot read** (a separate sidecar or `_unverified.*`), never a first-class field under a soft gate — **this quarantine lane is the designed answer for a case that has not yet arisen; designed, not built.**"* These nine are precisely that case: their provenance is provable only by the production run, never by an independent gate. Writing it into canonical frontmatter would place production-only provenance in the trusted namespace, where **presence would read as compliance** — PASS-BUT-FALSELY, in the exact field whose absence is the defect. The lane was designed for a hypothetical; the hypothetical is here. + +**`converter_basis` is the load-bearing column, and it is three-valued on purpose** (attest-never-default): **attested** = a durable record names the run — 1 of 9, `mal-darchive`, on the runbook's own 2026-07-12 entry; **inferred** = family-level evidence only, explicitly *not* a conversion record — 4 of 9, the Alexander volumes, on the runbook naming Alexander as the multi-column ocrmac case and recording "the page-number method (Alexander 9/9)"; **unknown** = no evidence found and none guessed — 4 of 9: Hochuli, Szondi, Klee, Ruder. + +**What this explicitly does NOT do:** it does not satisfy §V, does not make any of these texts verifiable, and does not lift the §VII bar on canon entry. **The violation stands.** What changed is that it is now *legible* rather than silent — which is the whole of what a records act can honestly buy. + +**The remedy, scheduled rather than deferred (a named order, not a vague later):** +1. **`mal-darchive` — first, and it is the only one with demonstrated text damage.** Diacritics measured at 0.4 per 10k against a French-corpus median of 255.8 (n=34): Tier-3 alteration by omission on nearly every line. Requires **re-conversion**, not repair; the source is a bare scan, so this is an OCR run (M4), and the runbook's own caveat predicts the failure mode to guard against. +2. **The four Alexander volumes — one batch, one campaign.** No demonstrated text damage; the defect is the missing record. They are a single work in four volumes and should be re-converted together or not at all. +3. **Hochuli, Ruder, Klee — schedule against chamber-typography**, which is the workstream that actually reads them. Szondi against whichever workstream calls for it. +**Nothing here is urgent by exposure**: none of the nine is engine-registered, so none is currently serving the engine as verified text. + +**Falsifier:** if any of the nine turns out to carry a conversion record, or to be engine-bound, the census row is wrong and the disposition needs revisiting. Both are one grep. + +## PENDING-85 — Two PDF-origin classifier verdicts require human eyeball before any per-file use (CLOSED 2026-08-01) **Date:** 2026-07-28 **Tag:** [FIX] **Summary:** Two of the 60 classified canonical PDF sources carry verdicts the classifier's own numbers make doubtful, and they must be eyeballed before any per-file verdict is relied on. @@ -567,6 +602,31 @@ Q1, Q4, Q5 affirmed as filed; **Q4 on stronger grounds than argued** (REVIEWED-7 **Files affected:** none — a reading task; may yield a threshold correction to the scratchpad classifier. **Awaiting:** Nothing blocking; do before the classifier's per-file verdicts gate anything. +### PENDING-85 — DISPOSITION (2026-08-01): both eyeballed. One verdict WRONG, one CORRECT with the doubt misdiagnosed — and the class is larger than two. +Executed as §VII eyeball-after-gate: pages rendered with `pdftoppm` and read, not inferred from metadata. The classifier (`classify_pdf_origin.py`) was re-run first with `--selftest` PASS 8/8 including its live Harrison control, and both verdicts reproduced exactly (502.9 w/pp · 1,664 fonts; 4,537 w/pp · 1 font). + +**1. `the-arcades-project-walter-benjamin-pdf` — verdict WRONG. It is `scanned-with-OCR`, not born-digital.** +`Producer: Adobe Acrobat 9.2 Paper Capture Plug-in with ClearScan` — Paper Capture *is* Acrobat's scan-OCR module, and ClearScan replaces the scanned bitmap with fonts synthesised per glyph-shape. 923 of the 1,664 fonts match `Fd-Identity-H` CID Type 0C (a deliberately conservative pattern — the true synthetic count is higher; stated as an under-count per §VII). Rendered p.440 settles it visually: baseline wobble, uneven inter-word spacing, blob artefacts (`ba■ly`, a stray mark after `1804,`), a spurious mid-word dot in `Gour·don`, broken glyphs in `communication`, and a running head whose ornament is recognised as `M`. The canonical carries matching damage — `converted_with: pdftotext`, and fragmented OCR-line headings (`## Prepared On The` / `## The Basis` / `## Basis Of The` / `## The German Volume` / `## Volume Edited`). 512,549 words. This work belongs to the scan tier, where eyeball-after-gate already governs. + +**2. `function-of-dynamics-haydn-mozart-beethoven` — verdict CORRECT; the stated doubt is refuted; a worse defect is underneath it.** +`Pages: 1`, page size **1083 × 6882 pt** — one sheet ≈ 9.6 letter pages, `Producer: macOS … Quartz PDFContext`. So 4,537 words/page is arithmetic on a page count of one (≈470 words per notional page) and is **not** an extraction artefact. It is genuinely born-digital. But the rendered page shows what it actually is: a **browser print-to-PDF of the College Music Symposium web page** — nav bar, `JOIN TO COMMENT`, search box, hashtag list, a JSTOR link, comment form and site footer. `pdfinfo`/`pdffonts` both emit `Internal Error: xref num 151 not found but needed, try to reconstruct` — the source is structurally damaged. And the canonical **has no frontmatter at all** (first line is ``), carries the site chrome verbatim, and duplicates title and byline where the print rendering doubled them. 204 lines, 4,558 words. + +**3. The class-level defect — and PENDING-85's own hypothesis is refuted.** This item guessed a *threshold* problem (a scan whose page images fall below `MIN_PAGE_IMAGE_PX = 800`). Measured: **wrong**. ClearScan *discards* the page bitmap, so there is no page image at any size — the triad's third leg is structurally absent for the whole family, and no threshold reaches it. Worse, a **second** instance exists that the structural test also cannot see: `tschichold-form-book` (`Creator: ABBYY FineReader`, 0% synthetic-CID) is OCR'd and **re-typeset into real embedded fonts**, so its rendered pages look perfectly clean. Its OCR signature survives only in the words — p.82 reads `Matthias Griinewald` (ü→ii) a few lines after a correctly-set `Grünewald` in the same paragraph. **For the OCR-then-re-typeset family, structure is insufficient and the cheap discriminator is the metadata the classifier's docstring deliberately distrusts** — the inverse of its stated design premise. Any remedy must add a fourth signal (producer/creator strings *plus* an OCR-error probe over the extracted text), not adjust a threshold. + +**4. Census — the born-digital set is fully examined, and the population figure is wrong.** All 16 Chamber-Sources PDFs the classifier calls born-digital were checked: 12 carry unambiguous typesetting-software `Creator` (InDesign, QuarkXPress, XSL Formatter, Acrobat PDFMaker, Word); `mla-9th-ed`, `ulysses-james-joyce` and `aldus-manutius-margolis` had absent or ambiguous metadata and were **eyeballed** — all three confirmed born-digital. Two are OCR'd (items 1 and 3). So: **genuinely born-digital sources of record = 14.** Two separate corrections follow, and the second touches ratified text: +- Re-running the same classifier over the same folder gives **16**, not the **17** stated on 2026-07-29. That package already flagged a 17-vs-16 discrepancy against a different census and left it unchased; it is now a second unreconciled count of the same population — the instrument-defines-its-own-count class again. +- **`0 of 17` is quoted in ratified spec v2.9.0 and in `chamber-library/CLAUDE.md`.** The **zero is unaffected** — removing members from a population cannot create a two-column instance, so the ruling's argument *strengthens*. Only the denominator is wrong, and the honest figure is **0 of 14**. Correcting ratified text is not the executor's to do; surfaced here, not edited. + +**5. A defect in the classifier's own metadata reader, found by its own output.** `re.match(r"^Producer:\s+(.*)$", info, re.M)` — `\s` matches a newline, so an **empty** field silently reports the *next* field's value. Observed live: `tschichold-form-book` reported `Producer: CreationDate: Wed May 5 23:14:25 2010 CEST`. A reader that fabricates a value from an adjacent line is the false-datum class §VII names; the corrected read (`^([A-Za-z ]+):[ \t]*(.*)$`) is what produced item 3. + +**6. Adjacent finding — a PENDING-84-class instance that is not a bare scan.** `ulysses-james-joyce` resolves to `Ulysses (Cliffs Notes) (James Joyce).pdf` — a **study guide**, matched at `match_cov: 1.0, match_conf: high` because title and author both appear. Its canonical is the real Penguin *Ulysses* (288,602 words, `conversion_method: calibre`, from a different and unbanked source). Its text therefore cannot be derived from its source of record either — which **widens PENDING-84's class**: the condition is "no mechanical path from the source of record to the canonical," and a *wrong work banked with plenty of extractable text* produces it exactly as a bare scan does. PENDING-84 should be diagnosed against that wider class, not against nine bare scans. + +**What would falsify this disposition:** open `Chamber Sources/the-arcades-project-walter-benjamin-pdf.pdf` at p.440 and `tschichold-form-book.pdf` at p.82 — if the letterforms are uniform and `Griinewald` is not there, items 1 and 3 fail. `pdfinfo` on either reproduces the producer strings in one command; `pdfinfo function-of-dynamics-…pdf | grep -E 'Pages|Page size'` reproduces item 2 in one. + +**Not done, deliberately:** no classifier code was changed (it is scratchpad-only and wired to nothing, and the remedy is a new signal, which is instrument work the steward has deprioritised behind the corpus); no ratified text was corrected; no re-tiering of Arcades or Tschichold was applied. ⚠ **The classifier lives in an ephemeral session scratchpad** (`/private/tmp/claude-501//scratchpad/classify_pdf_origin.py`) — it is the evidence instrument behind PENDING-83/REVIEWED-83 and will be lost on cleanup. + +**SUPERSEDED, same day — the two paragraphs above no longer hold.** On steward authorization (2026-08-01, bounded scope, explicitly "no rabbit hole") the classifier was **repaired and promoted to the fleet**: `scripts/classify_pdf_origin.py`, commit `08ae83e`, on both remotes. Fourth signal added (declared OCR-producer registry), `meta()` newline defect fixed, `--validate` 20/20 including live Harrison **and** Arcades regression pins, `test_tools.py` coverage, fleet **300/300**. Bounded-change proof over all 63 Chamber-Sources PDFs: **exactly 2 verdicts moved**, 61 unchanged; new distribution scanned-with-OCR 40 · born-digital 14 · bare-scan 9. Residual blindness declared on every run per §VII (`UNATTESTED-BY-METADATA`; one file in that state today, `mla-9th-ed`, eyeballed clean). **Still not done, and still deliberately:** no ratified text corrected (routed via REVIEWED-83 Amendment 1, drafted, awaiting placement), no canonical re-tiered, no gate touched, and no OCR-error text probe built — that reaches the metadata-stripped family but is a per-language research problem, and the registry closes both instances that exist. + ## PENDING-86 — The jurist cannot read the constitution it design-gates **Date:** 2026-07-28 **Tag:** [HARDENING] diff --git a/claude/memory/session-ledger-2026-08-01.md b/claude/memory/session-ledger-2026-08-01.md new file mode 100644 index 0000000..d4186aa --- /dev/null +++ b/claude/memory/session-ledger-2026-08-01.md @@ -0,0 +1,41 @@ +--- +name: session-ledger-2026-08-01 +description: "Practice-of-return ledger maintained by /symmetria — returns, open horizons, recalibrations, authorization moves, sub-agent dialogues, bypasses." +metadata: + node_type: memory + type: feedback + originSessionId: be51f191-8658-4b4c-ad1e-1f14c934f624 + modified: 2026-08-01T08:23:47.093Z +--- + +# Session Ledger — 2026-08-01 + +## Returns + +- **09:31 — the wake instrument was hiding the item the thread points at.** `wake-digest.py:144-146` drops a `PENDING-N` from the open list whenever a `REVIEWED-N` exists — **matching on the number alone**, with no check that the ruling is *about* that item. Numbering has drifted apart: REVIEWED-84 rules on **PENDING-87**. Measured across the file: 9 items suppressed, 8 correctly, **1 falsely — PENDING-84**, which is precisely the item the steward reset the pulling thread onto. Same class as the two counter defects already banked (07-28 splitter; 07-29 three-numbers-one-substrate): *the instrument defines its own item*. Not fixed — surfaced. +- **09:31 — the digest's own freshness line was wrong and I nearly repeated it.** Hook output read `Last wrap: 3 min ago`; re-running the digest now gives **11.1 h**, and the file's mtime (2026-07-31 22:23 CEST) supports 11.1 h. Cause unexplained. Caught by checking `date` against the mtime rather than restating the digest's number — a supplied number is not a verified one. + +- **10:05 — my own hypothesis, and PENDING-85's, refuted by measurement.** Both of us guessed the Arcades mis-classification was a *threshold* problem (page images under `MIN_PAGE_IMAGE_PX`). ClearScan discards the page bitmap entirely — no threshold reaches it. Caught by checking the producer string before proposing the fix. Same pattern as 2026-07-29's synthetic-fixture prediction: the claim that arrives before the cheap confirming check is the one that goes down. +- **10:20 — a claim I nearly published as "exactly one instance."** The synthetic-CID structural test found Arcades alone and I was one sentence from calling the class bounded at 1. The corrected metadata read then surfaced `tschichold-form-book` (ABBYY FineReader) — invisible to the structural test because ABBYY re-typesets into real fonts. The instrument that found the first instance was blind to the second. + +## Open horizons + +- The count discrepancy flagged at last wrap is now **partially reconciled by inclusion rule**: `## PENDING` headers = 28 = 18 numbered `PENDING-` + 6 `PENDING-S*` + 4 bare `## PENDING —`. The digest's 19 = 28 minus the 9 REVIEWED-suppressed. The remaining defect is not the arithmetic but the suppression rule above. +- Session file named `2026-07-29` was last written **2026-07-31 22:23**; day-count claims inside it ("the last three days") may be mis-dated. + +## Authorization moves (cont.) + +- **PENDING-85 CLOSED** (`[FIX]`, executor authority) with a full disposition; digest count 19 → 18. +- **PENDING-84 DIAGNOSIS filed** — not a remedy; `[HARDENING]` stays with the steward. +- **REVIEWED-83 Amendment 1 DRAFTED** for steward placement. Steward confirmed "amendment" mid-turn. I left the one genuinely judgmental clause undecided (whether V-DPDF now needs re-demonstration against the OCR-then-re-typeset family) — that is the jurist's, not mine to fold into a placement block. +- **Classifier repaired + promoted on explicit steward authorization** — bounded scope, `08ae83e`, both remotes verified. Commit + push taken as the documented routine per the repo's own CLAUDE.md, **not** re-asked — the corrective from 2026-07-29's over-caution drift, applied. + +## Confidence to recalibrate + +- Inherited from 2026-07-29: **over-caution presents from the inside as rigor** (unpushed constitutional supersession; steward had to ask). And: **performing scrupulousness is itself a contamination shape** — state a falsifier, not a hedge. + +## Authorization moves + +## Sub-agent dialogues + +## Bypasses