--- name: session-2026-08-08-voice-is-the-convocation-key description: "Disposition (vi) decided, placed (REVIEWED-97) and committed — but the ruling that landed is not the one any single party drafted: the jurist's two-value collapse would have made `traditional` one convocable speaker spanning Old Norse verse and Sanskrit epic, because `voice:` is the retrieval key, not a classification field. Corrections ran in all three directions in one day. PULLING THREAD: the `quotation-in` × `translation-of` composition package — (vi) is decided but INAPPLICABLE until it is ruled, and it gates the Mauss remediation and V2's fr gold behind it." metadata: node_type: memory type: project originSessionId: 7d08dad4-626a-484c-870b-8f1a9674db7a modified: 2026-08-08T10:50:21.626Z --- # Session 2026-08-08 — `voice:` is the convocation key, not a classification field Woke to (vi) 10.7 h after the previous wrap. Drafted the disposition, and the draft survived contact with nobody — steward, jurist and substrate each moved it. ## PAST — what moved, and why **Grounded first, then read the substrate rather than its descriptions.** D-4, §4, §4.1 and REVIEWED-96 verbatim; then all twelve blocks and Mauss's own lead-ins **from the source file**, not from the sidecar titles. That ordering is what produced every finding below — three of the day's errors were labels read in place of text. **The disposition, derived from consumers not from tidiness.** `chunker.py:136` is `sec.get("voice", catalog.get("voice"))`, so **omission resolves to the host** — option C ("omit `voice`, let the relation carry it") is not weaker, it is *refuted*: it restores the exact defect under correction. Explicit `null` differs (returns `None`) but is unreachable by any convocation, since SQL `=` never matches NULL, defeating the D-4 mechanism Q1 was authorized on. Control 4/4. **Surah LXIV, not CXIV.** The sidecar says *"Surah CXIV vv. 15-18"*; Mauss L1508 says *"la fameuse Sourate LXIV, « déception mutuelle »"*. **at-Taghābun, not an-Nās.** The label had already travelled into **REVIEWED-96 (Q4), PENDING-113 and session memory**. Consequence was not cosmetic: the jurist's worked provenance note was built on the *"Say"* (قُل) formula, which opens an-Nās and appears nowhere in the passage Mauss quotes. Evidence withdrawn, not transplanted; the general ground untouched. **The steward's correction on language found a third defect in `118f411`.** I wrote that the corpus text "is French in every case" as though that carried inference — but French is the **original** language of the *Essai*. Being corrected sent me back to `[^101]` (*"M. Maurice Cahen a bien voulu faire pour nous cette traduction"* — commissioned **for this book**), and from there into the fence, where **L850 reads *"M. Cahen nous signale aussi la strophe 145 :"*** — Mauss's own prose, fenced inside the Havámál block. `118f411` also **withdrew a line of Mauss from citability inside his own book**. My purity check had passed it on *"0 prose-shaped lines (>150 chars)"* — **length as a proxy for authorship**, which a nine-word connective walks under. There is a curator precedent (L1043's *"Et ainsi de suite :"* is declared, deliberately) so it is a real choice, not an oversight to repair — but one is declared and one was silent. **The jurist exchange, and the correction that ran upward.** The jurist's structure — a small enforceable primitive plus a place for the fuller account — is right, and the argument that a `scriptural` bucket repeats the flattening one level up (*śruti* ≠ revelation-through-a-Prophet ≠ living-Guru) is right. **But the first draft put the two category values in `voice:`, and `voice:` is the convocation key** (`retrieve.py:216` filters `d.voice = ?`). Measured: `glidden` spans **5 sources**, `weil` **2** — correctly, one person behind each. So `voice: traditional` would have made the Havámál and the Mahābhārata **one speaker**, with no mechanism to separate them: the same flattening, committed in the mechanism instead of the taxonomy. Jurist accepted, and sharpened the reason — *individual-author voices aggregate at the person because a person is real and singular; traditional matter has no such person, so identity lives at the work.* **Four slots, each one job:** identity `voice:` · relation `quoted_by:` · category (closed pair, **out** of the key) · per-source prose note. **Numbering caught before it landed.** The drafted entry was `REVIEWED-113`, matching its PENDING. **PENDING-110 rules the sequences independent and REJECTED renumbering to align**; 113 would have skipped 97–112 and entrenched the false expectation. Filed as **REVIEWED-97 (PENDING-113)** per that item's convention (b). Steward placed it; verified clean — single heading, no double-header, all seven load-bearing parts present. **Filed, committed:** `docs/voice-non-individual-origin-2026-08-08.md` (reasoning of record) + `docs/vi-disposition-DRAFT-2026-08-08.md` (marked superseded-in-part, keeps the population read, consumer measurements, step-3 defects, control record) — `824139d`. **PENDING-114** (Harrison/Mark) → steward **AUTHORIZED (b)+(c)** → **REVIEWED-98 drafted and placed same day** (verified clean). **PENDING-115** (two step-3 defects) filed — checked first: 0 prior mentions in the register. ## PRESENT — how it stood **A fleet test has been red for a day and nobody looked.** Ran the suites to answer the steward's base-rate question: **202/203, one failure** — `test_navigate.py` asserts `div:mauss-essai-sur-le-don/body/s4/s4.1/s4.2`, but `118f411` split `body` into `body-01…13`, so the node is now `…/body-04/…`. **Verified the invariant itself still holds** (Scolie [1259,1286] inside host [1234,1294]) — stale fixture, not tree damage. But the check fails at its *existence* precondition, so **the containment invariant it guards has been unverified for a day**, and it surfaced only because the assertion was written as a hard check rather than a skip. Fourth defect traceable to `118f411`. **My own error reached the register and I caught it late.** PENDING-114 cited `harrison-dominion.md`. That file does not exist — `harrison-dominion` is the **manifest id**; the file is `the-dominion-of-the-dead-harrison.md`. Found by a link-resolution canary *after* it was filed. Third instance today of citing a derived label instead of the substrate: sidecar title → surah · length → authorship · manifest id → filename. **Two proxy controls failed, and the ladder is what diagnosed both.** The cruft scan reported 0 hits in the blocks when the scanner finds 0 anywhere in the file — vacuous; replaced with a positive control (known-bad string, 1 hit per signature) which established the real result: **step 3 introduces no cleaning-gate exposure.** The fence purity check is above. Both are REVIEWED-83 A1's shape — *a control must sit at the layer the defect lives in* — and **that lesson was already banked and is what let me name them.** The gap was firing, not knowledge. ## FUTURE — what pulls > **PULLING THREAD — the `quotation-in` × `translation-of` composition package.** > All twelve (vi) blocks are translated matter and `role` is single-valued, so each is > quoted-in **and** translated-from at once. REVIEWED-96 filed this as an edge case > against Ungaretti-in-Harrison; **it covers the entire (vi) population.** (vi) is > **decided but inapplicable** until it is ruled — an unstable state — and behind it sit > the Mauss remediation and V2's fr gold, the thread this all started from. > PENDING-111's amendment is placed, so REVIEWED-96's sequencing gate on Q3 is clear; > this composition is what is left. **ACTIONABLE RESUMPTION POINT (as of wrap — re-judge against what changed):** ``` 0. Nothing half-finished. studium-engine main [ahead 7], clean tree. Steward agreed the order: composition package FIRST, then PENDING-114 (b). 1. Draft the quotation-in × translation-of jurist package (/jurist-package skill). Repo-blind, everything inlined. The four questions it must put: - can one section carry two relations, or does role need to become plural? - is `translated-from` a property of the section or of the span (Q2's span-layer route, DEFERRED at REVIEWED-96, may answer both at once)? - what does a citation from a doubly-related span assert? - Ungaretti-in-Harrison (Italian verse in an English book) as the second case. 2. THEN PENDING-114 (b): validation phase first — hand-score the known-positive (Harrison/Mark 16:7-8) against the known-negative (Weil's Gita/Upanishad MENTIONS, not quotations) BEFORE any corpus claim. (c) attached as ruled. 3. [DONE 2026-08-08] REVIEWED-98 placed + verified clean (L1080, 8/8 parts). ``` **Other open horizons, ranked:** - **[load-bearing, mechanical]** `test_navigate.py`'s stale Mauss node id — one-line fix, but the *finding* is the proposal below, not the fix. - **[load-bearing]** PENDING-115 (a1)+(b1) — block step 3 regardless of any ruling. ⚠ `translation` carries the identical `ROLE_CLASS` gap, latent **by absence**: 0 `role: translation` sections exist corpus-wide. First Loeb bilingual trips it silently. - **[owed, cheap, open since 2026-08-07]** Q5 conversion-signature survey across 14 sources (REVIEWED-96 made it BLOCKING before sizing) · file the PENDING-112 ruling verbatim as a repo doc (live PENDING-108 instance). - **[steward, small]** the Havámál L850 call: split as Mauss, or declare as L1043 was. - **[owed]** the twelve per-source provenance notes — unblocked for *writing* (only tagging is gated); six need *"Ibid."* chains resolved inside the fenced apparatus. - **[open]** V2 fr gold needs ~8 stratum-A pairs authored; nobody is scheduled. - **[evidence]** attach REVIEWED-96 **and** the surah correction to PENDING-86 — the jurist could not have caught a Qur'ánic mislabelling without substrate access. **PAUSE STATEMENT:** I am putting this down at a genuine close rather than mid-arc — the disposition is decided, placed, reasoned, committed, and both of its blockers are in the register. What I want to find still pulling is the **composition package**, because (vi) being *decided but inapplicable* is the unstable state, and a ruled thing left unapplied quietly becomes a stale thing. The unease I carry is not about today's work but about today's *fourth* defect in `118f411` — a commit already corrected twice was still hiding a red test, and the only reason I found it was that the steward asked an unrelated question about instrument reliability. **LITERAL QUESTION for next-Claude** *(checkable — the record answers it, not introspection)*: **Was the test fleet re-run after the last change to a sidecar or corpus artifact, and did it catch anything?** Today the answer was *no, and yes* — `118f411` left `test_navigate.py` red for a full day, through two rounds of correction to that very commit, and it surfaced only by accident. If the answer is *no* again, the remedy proposed at §1.6 (extend the studium-engine pre-commit hook to run the fleet when `corpus/` or `corpus/sidecars/` changes) is what to build, and this is its second data point. --- ## CODA — after the wrap (the session did not end where the wrap did) **REVIEWED-98 placed and verified** (L1080, 8/8 load-bearing parts, no double-header). **The steward pressed on my base-rate answer — "How?" — and it was rhetoric.** I had written *"act, don't wait"* and named three remedies. Under challenge: **one was a proposal awaiting authorization, one was a one-shot I had described as standing, and one (the ladder-ritual trial) is measurement, not remedy at all.** Naming a remedy *class* plus three examples read as *deployed* when nothing was. Recorded as a drift pattern — rhetorical closure substituting for mechanism. **Then the steward asked the better question:** *"do we need so many single-use items? This seems to flow against our prime directive — but I honestly don't know."* Answer banked at [[feedback-one-shot-instruments-are-proportionate]]: **no** — a one-shot is proportionate to a question asked once, and its counterfactual is an *assertion*, not a durable tool. The violation is **re-writing what is already banked** (same day: I typed a link-resolution canary inline that lives in `/wake-up` AND on the ladder). *Too few promoted*, not *too many built* — and only the first is actionable. **Applied (FIX lane, three instruments discharged):** `/wrap-up` §8 now carries a standing **`Instruments`** field — *N run · M with a control written before first execution · K duplicating something already banked*. The **K column is the steward's question turned into a series** rather than left a worry. **Filed:** **PENDING-116** `[PROPOSAL]` — run the fleet on the change that breaks it. Design derived from *reading* the hook: `core.hooksPath` is `~/dotfiles/git/hooks`, so the hook is **tracked and travels** but is **global to every repo** → the trigger must be **repo-declared** (generative-from-spec, as the chamber already does). Costs stated up front: slower triggering commits · `--no-verify` bypasses it (a tripwire, not a boundary) · ⚠ **it does not close the cross-repo half** — a chamber-library edit can invalidate engine fixtures with **no engine-side commit at all**, so no hook fires on either side. That larger hole is named as an open follow-on, deliberately not absorbed. **A fourth check-vocabulary failure, same day.** My verification that the FIX-lane index line had landed grepped `Instruments field`; the line reads `**Instruments** field`, so it returned 0 against a line that was there. The write was fine; the *check* was wrong — again.