session 2026-08-13: fr identification pass, PENDING-135/136 filed and ruled, voice_stamp built; memory + register + KG

This commit is contained in:
David F Glidden
2026-08-13 21:28:46 +02:00
parent 92d5ad2547
commit e90c334bb2
6 changed files with 328 additions and 9 deletions
+1
View File
@@ -1,3 +1,4 @@
- [Session 2026-08-09 — the fixture was an empty file](session-2026-08-09-the-fixture-was-an-empty-file.md) — the day's full record: premise-check, PENDING-129/130 → REVIEWED-113/114, the `KeyError` that corrected its own ruling, two artifacts preserved with three-part provenance, four documents corrected (`20f8958`), and the marking sheet. ⚠ **The placed record contradicted the relay for the third consecutive time.** **LITERAL Q: Mauss serves the Ranaipiri testimony and a Havámál strophe as citable Mauss with no `role: quotation` — two-source accident, or a class?** *(Demoted on promote at the 2026-08-13 wrap.)*
- [Session 2026-08-08 late — eleven items, and the charter had the map](session-2026-08-08-late-the-charter-had-the-map.md) — **Built the binding mechanisms all day, then found in the last twenty minutes that the founding charter had already answered the strategic question.** (e) built as a **delegation** (`eecc8bb`) and exposed that **no fleet suite had ever validated live binding**. Hook sequence landed in the ruled order (`448ce37`, `2534dfb`); R0 §4 three-valued (`ccc4d6c`); fleet third verdict + preflight crash-class closure (`8ff5a9f`, `d21a43b`); Mauss corrected (`8231bce`). ⚠ **Leopold Mozart is ALREADY in the library as an EPUB** (Knocker translation, born-digital) — the violin problem may be **sourcing, not conversion**. **LITERAL Q: does re-running `pattern_finder`'s Station-I pass still come back PASS-BUT-FALSELY now that V0/V1 exist?** *(Demoted on promote at the 2026-08-09 wrap.)* - [Session 2026-08-08 late — eleven items, and the charter had the map](session-2026-08-08-late-the-charter-had-the-map.md) — **Built the binding mechanisms all day, then found in the last twenty minutes that the founding charter had already answered the strategic question.** (e) built as a **delegation** (`eecc8bb`) and exposed that **no fleet suite had ever validated live binding**. Hook sequence landed in the ruled order (`448ce37`, `2534dfb`); R0 §4 three-valued (`ccc4d6c`); fleet third verdict + preflight crash-class closure (`8ff5a9f`, `d21a43b`); Mauss corrected (`8231bce`). ⚠ **Leopold Mozart is ALREADY in the library as an EPUB** (Knocker translation, born-digital) — the violin problem may be **sourcing, not conversion**. **LITERAL Q: does re-running `pattern_finder`'s Station-I pass still come back PASS-BUT-FALSELY now that V0/V1 exist?** *(Demoted on promote at the 2026-08-09 wrap.)*
- [Session 2026-08-08 — `voice:` is the convocation key](session-2026-08-08-voice-is-the-convocation-key.md) — **The disposition that landed is not the one any single party drafted.** Grounded first, then read the twelve blocks *from the source* rather than their sidecar titles — which produced nearly every finding: **Surah LXIV not CXIV** (already propagated into two governance records, and it voided the jurist's worked note, built on a formula absent from the passage); **`quotation-poet-jurist` reclassified** by one footnote; the naming evidence for six of nine blocks sits **inside the fenced apparatus**, engine-unreachable. Option C **refuted by measurement** (omission → host voice). The steward's correction on language sent me back to `[^101]` and thence to **L850 — Mauss's own prose fenced inside the Havámál block**, missed by a check using **length as a proxy for authorship**. Corrected the jurist upward: their category pair belonged **out** of the convocation key (`glidden` spans 5 sources, `weil` 2 — measured). Caught `REVIEWED-113` before it entered the register (PENDING-110 rules the sequences independent). **REVIEWED-97 placed + verified clean · PENDING-114 authorized (b)+(c) · PENDING-115 filed · `824139d`.** 🔑 **Corrections ran in all three directions in one day** — and the fleet was still red the whole time. *(Demoted on promote at the 2026-08-08 night wrap.)* - [Session 2026-08-08 — `voice:` is the convocation key](session-2026-08-08-voice-is-the-convocation-key.md) — **The disposition that landed is not the one any single party drafted.** Grounded first, then read the twelve blocks *from the source* rather than their sidecar titles — which produced nearly every finding: **Surah LXIV not CXIV** (already propagated into two governance records, and it voided the jurist's worked note, built on a formula absent from the passage); **`quotation-poet-jurist` reclassified** by one footnote; the naming evidence for six of nine blocks sits **inside the fenced apparatus**, engine-unreachable. Option C **refuted by measurement** (omission → host voice). The steward's correction on language sent me back to `[^101]` and thence to **L850 — Mauss's own prose fenced inside the Havámál block**, missed by a check using **length as a proxy for authorship**. Corrected the jurist upward: their category pair belonged **out** of the convocation key (`glidden` spans 5 sources, `weil` 2 — measured). Caught `REVIEWED-113` before it entered the register (PENDING-110 rules the sequences independent). **REVIEWED-97 placed + verified clean · PENDING-114 authorized (b)+(c) · PENDING-115 filed · `824139d`.** 🔑 **Corrections ran in all three directions in one day** — and the fleet was still red the whole time. *(Demoted on promote at the 2026-08-08 night wrap.)*
- [Session 2026-08-07 evening — retrieval is set by home](session-2026-08-07-evening-retrieval-is-set-by-home.md) — **The skill-harvest bite taken whole, at the cost of V2.** Register censused before compacting: claimed 177, **real 154** (55 rows were scraped table-headers; 123 of 129 cut mid-word) — but **lossless**, 124 = 124, so my drafted "nine are invisible" and "59% misattributed" were both **refuted by the count**. Rebuilt from the archive with exact `archive:L###` pointers; restored the verbatim four-stroke ruling my own rebuild had replaced with a paraphrase. **Skills pruned 63 → 12** after measuring **53 never invoked in 5 months** (plus a dir named from a **404 error body** and ten with **newlines in their names**); 51 quarantined reversibly. The finding under both: **retrieval is set by home, 0%–83%**. **PENDING-112 → jurist ruling → steward concurrence → REVIEWED-95 drafted in one session**; filing gate + ladder trial sentence landed, **falsifier wired not intended** (`transcripts 84`) — which exposed two defects in the deferral checker itself, incl. that it **never looked at `claude/governance/`**. Package passed containment **20/20, 10/10 controls absent**, after the checker caught my own **elision-as-contiguous** and **fabricated join**. 🔑 **8 of 8 fresh instruments at fault; the elegant symlink discriminator was 97% right and would have destroyed the 2 that mattered.** *(Demoted on promote at the 2026-08-07 night wrap.)* - [Session 2026-08-07 evening — retrieval is set by home](session-2026-08-07-evening-retrieval-is-set-by-home.md) — **The skill-harvest bite taken whole, at the cost of V2.** Register censused before compacting: claimed 177, **real 154** (55 rows were scraped table-headers; 123 of 129 cut mid-word) — but **lossless**, 124 = 124, so my drafted "nine are invisible" and "59% misattributed" were both **refuted by the count**. Rebuilt from the archive with exact `archive:L###` pointers; restored the verbatim four-stroke ruling my own rebuild had replaced with a paraphrase. **Skills pruned 63 → 12** after measuring **53 never invoked in 5 months** (plus a dir named from a **404 error body** and ten with **newlines in their names**); 51 quarantined reversibly. The finding under both: **retrieval is set by home, 0%–83%**. **PENDING-112 → jurist ruling → steward concurrence → REVIEWED-95 drafted in one session**; filing gate + ladder trial sentence landed, **falsifier wired not intended** (`transcripts 84`) — which exposed two defects in the deferral checker itself, incl. that it **never looked at `claude/governance/`**. Package passed containment **20/20, 10/10 controls absent**, after the checker caught my own **elision-as-contiguous** and **fabricated join**. 🔑 **8 of 8 fresh instruments at fault; the elegant symlink discriminator was 97% right and would have destroyed the 2 that mattered.** *(Demoted on promote at the 2026-08-07 night wrap.)*
+8 -9
View File
@@ -51,7 +51,7 @@ permalink: claude-memory/memory
## Canonical Workstream Trackers ## Canonical Workstream Trackers
*Read the tracker for any active workstream at /wake-up before composing the briefing. Append substantive moves at /wrap-up — to the **chronological log**, not only "current state". Per `feedback-canonical-workstream-tracker-discipline.md`.* *Read the tracker for any active workstream at /wake-up before composing the briefing. Append substantive moves at /wrap-up — to the **chronological log**, not only "current state". Per `feedback-canonical-workstream-tracker-discipline.md`.*
- **[Chamber as versioned releases](project-chamber-versioned-releases.md) — THE GOVERNING FRAME for all library work.** The 2000-year Chamber as versioned releases with soft borders, each serving a PURPOSE; scope every library bite through this. **Open decision: which purpose anchors V1.** Read the file, not this line — it holds the reframe that resolved the purpose/scope paralysis. - **[Chamber as versioned releases](project-chamber-versioned-releases.md) — THE GOVERNING FRAME for all library work.** The 2000-year Chamber as versioned releases with soft borders, each serving a PURPOSE; scope every library bite through this. **Open decision: which purpose anchors V1.** Read the file, not this line — it holds the reframe that resolved the purpose/scope paralysis.
- [Studium Engine](project-studium-engine.md) — canonical engine tracker. **N0–N2 + R0 built** (2026-08-07); corpus **14 sources, trilingual** (en/fr/de), 5785 drawers, gate 14/14, fleet 202/202. `fidelity_equivalence@3` GOVERNING, **corrected in place** under PENDING-111. **N2: entry-finding 15/22 (from 0/22) — ⚠ and 5/5 false positives, untuned.** **NEXT: V2** — all three preconditions resolved, thresholds jurist-ratified, design fully specified. - [Studium Engine](project-studium-engine.md) — canonical engine tracker. **N0–N2 + R0 + `voice_stamp` built**; corpus **14 sources, trilingual**, fleet **9 suites / 285**. **fr cell all but closed** — 8 grounded (1 A + 7 B), `ratio_A_to_B` **VOID** until PENDING-134 lands. ⚠ **PENDING-131 (c) never bound the engine** (`chunker.py` has `char_range` since Cluster A). **NEXT: rule PENDING-134 — last blocker is a steward MCP restart.**
- [Studium engine telos — the chamber of voices](project-studium-engine-telos-chamber-of-voices.md) — **the ultimate goal, above the build plan**: the childhood chamber of hero-voices, rebuilt so the counsel is *accountably* theirs. Why verbatim fidelity is load-bearing. - [Studium engine telos — the chamber of voices](project-studium-engine-telos-chamber-of-voices.md) — **the ultimate goal, above the build plan**: the childhood chamber of hero-voices, rebuilt so the counsel is *accountably* theirs. Why verbatim fidelity is load-bearing.
- [The Chamber touchstone — the *why*](~/_Dev/studium-engine/docs/the-chamber-touchstone.md) — seven questions to test work against when lost in the trees. **Read at Step 0 of any chamber work.** Holds no state; does not decay. - [The Chamber touchstone — the *why*](~/_Dev/studium-engine/docs/the-chamber-touchstone.md) — seven questions to test work against when lost in the trees. **Read at Step 0 of any chamber work.** Holds no state; does not decay.
- [The Chamber vision is NOT in one place](project-chamber-vision-is-not-in-one-place.md) — it lives in **seven** sources across two repos + memory. A single home would become an eighth unless it supersedes or points. - [The Chamber vision is NOT in one place](project-chamber-vision-is-not-in-one-place.md) — it lives in **seven** sources across two repos + memory. A single home would become an eighth unless it supersedes or points.
@@ -67,15 +67,14 @@ permalink: claude-memory/memory
- Chamber-typography — *tracker not yet established*; moves live in per-session memories (2026-05-11 →) + `project-chamber-cruft-restoration.md` + `project-chamber-typography-mining-plan-2026-05-15.md`. - Chamber-typography — *tracker not yet established*; moves live in per-session memories (2026-05-11 →) + `project-chamber-cruft-restoration.md` + `project-chamber-typography-mining-plan-2026-05-15.md`.
## Active Session ## Active Session
> ⚠ **THE "PRESERVED" V4 FIXTURE WAS A 0-BYTE FILE** (`38de1a9`, 2026-06-26, never written, unreproducible). Three docs carried *"do not delete or regenerate it"* for **seven weeks**; no currency pass ever opened it. Found by **checking the inherited question's premise before answering it**. > 🔑 **PULLING THREAD — RULE PENDING-134. ITS LAST PRECONDITION IS NOT A BUILD:** H1 holds the doctrine until the four V0-lane keys are **served**, and `governance-mcp.py` builds its map at import ⇒ the running client keeps the old eight-key map **until the steward restarts it**. Executor half discharged (selftest 54/54; two stale key descriptions refreshed, `92d5ad2`). Then jurist reads §6.2 + §5's F4/F10 **verbatim**; rule per **H2** (narrow — nested-voice case only) and **H3** (amendment disclosed; steward's lean (i)).
> 🔑 **PULLING THREAD — V2's ENGLISH GOLD: narrow the March anchors DIVISIONS → SPANS.** The ONE act unblocking three of P7's four findings (EN `taggable:false` · **29×** cell asymmetry · §7.3 negatives near-unconstructible). It is an **authoring act** ⇒ propose-and-mark-`unverified`; ⚠ do **NOT** shortlist with `retrieve.py`/`ground.py` — the instruments under test. **START: the Alexander eight**; Harrison's fourteen are ~350k chars, their own session. > ✅ **The identification pass makes it a ONE-SPAN decision.** Reported speech in **1 of 9** fr grounded spans (L1551); the other eight are Mauss's own terminology, three self-marked. ⚠ **It CORRECTS REVIEWED-116 pt 6's worry** — the 73 inline ≥120-char spans are a *different population*; **within the grounded set P7's F4 tagging was correct and complete.** Gold-fixture exposure 2 spans · citation-safety 73 in Mauss / **532 corpus-wide (floor)**.
> ⚠ **P7 ALREADY RAN (2026-08-07, `corpus/v2-stratum-tags.yaml`) — READ IT BEFORE DERIVING.** Asymmetry measured (EN divisions median 27,833 vs FR spans 969). Also: the **fr authoring plan inverts** — inherited 1A:9B, §6.3 lands ~1:27 vs §6.2's 1:1 ⇒ **~8 stratum-A pairs needed that nothing asks anyone to write.** > ⚠ **MOVE 1 WAS NEVER BLOCKED — `voice_stamp` built** (`d411034`, fleet **9 suites / 285**). PENDING-131 (c) is real for the **sidecar** and never bound the engine: `chunker.py` has recorded `char_range` document offsets since Cluster A. **The ceiling was where the fence was being WRITTEN, not what the engine can SEE.** Reporter, **not** wired to abstention (unruled semantics).
> 📋 **TOMORROW (steward-directed): PROMOTE THE LINK-RESOLUTION CANARY TO A SCRIPT.** Already on the ladder AND in a `/wake-up` step, yet typed inline twice on the record (2026-08-08, 2026-08-09) — ⚠ **the gap is neither knowledge nor home but the absence of an EXECUTABLE.** → `~/dotfiles/scripts/`, **invoked** not described; `](file.md)` + `[[wikilink]]` over both memory indexes; pre-existing vs newly-broken; **carry a positive control.** ⚠ **EARNED 2026-08-09, before the script exists: STRIP INLINE CODE SPANS BEFORE MATCHING.** The inline version flagged one dead pointer — which was the link pattern *inside this very line's own specification*. Uncorrected, the canary flags its own documentation forever and the real signal drowns. With code spans excluded: **48 pointers, 0 dead.** (Third self-reference defect of the day, after the preservation header and the neutrality check.) > ⚠ **A CONTROL SET DRAWN FROM ONE SOURCE ESTABLISHES NOTHING ABOUT A CORPUS.** The census carried **five** defects; **four escaped its own controls** (all lived in Mauss ⇒ one convention, one line structure). The steward found the worst — a **clean zero** structurally guaranteed on hard-wrapped text. Only the 5th, a **regression in a covered case**, was caught by the controls.
> ✅ **REVIEWED-113 + 114 placed.** Re-run **still PASS-BUT-FALSELY** — **V0/V1 could never have changed it**: 36 verbatim, correctly-located citations ⇒ V1 passes all; the defect is **V3/V4's**. **Abstention 0/12** beside N2's **0/5**. 129 built (`6f6bac5`) + the organ's first suite; fleet **8 suites / 263 checks**. > ⚠ **I committed PENDING-136's own error while executing it** (`bound_instances_grounded` 12 by *subtraction*, ignoring instance 17; correct **10**) — and swept the steward's REVIEWED-119/120 into an executor commit with `git add -A` (§6.5 forbids it; amended pre-push).
> 🔒 **STANDING CONDITION — REVIEWED-114 §3–4: NO DOCUMENT CALLS EITHER RE-RUN "V4's FIXTURE" AND V4 IS NOT BUILT UNTIL THE STEWARD'S DATED KEY EXISTS.** Item stays **OPEN**. ⚠ Ruled **(a)** — only the condition is outstanding; do not re-open it as a question. ✅ **Sheet BUILT and waiting**: `corpus/answer-key-2026-08-09-UNMARKED.md` (`92a97d0`) — 36 items, spans pulled from source (36/36 verified), **nothing pre-filled**; the steward is **judging, not confirming**. ⚠ Not blind: the executor stated a coarse per-primitive reading in conversation beforehand; a disclosure line was offered and **declined (2026-08-09)**. > 📋 **fr cell now:** 11 listed / **8 grounded** (1 A + 7 B) / 2 reclassified / 1 retracted / 10 grounded instances. **`ratio_A_to_B` VOID** — re-derived **ONCE** after 134 lands. ⚠ **H3's standing consequence must become a FIELD or CHECK, not a memory:** any recall figure carries a note that stratum membership was amended post-hoc 2026-08-10.
> ⚠ **All my errors today were in CHECKS, not writes** — a round-trip that tripped on its own instruction · an induced-red that deleted the symbol (traceback, not a named failure) · an exit code read through a pipe · a neutrality check that matched its own legend. And **steward-caught: I twice wrote PENDING-130 was UNRULED** — *ruled ≠ placed ≠ condition-discharged.*
- [Session 2026-08-09 — the fixture was an empty file](session-2026-08-09-the-fixture-was-an-empty-file.md) — the day's full record: premise-check, PENDING-129/130 → REVIEWED-113/114, the `KeyError` that corrected its own ruling, two artifacts preserved with three-part provenance, four documents corrected (`20f8958`), and the marking sheet. ⚠ **The placed record contradicted the relay for the third consecutive time.** **LITERAL Q: Mauss serves the Ranaipiri testimony and a Havámál strophe as citable Mauss with no `role: quotation` — two-source accident, or a class?** - [Session 2026-08-13 — the fence was never blocked](session-2026-08-13-the-fence-was-never-blocked.md) — REVIEWED-118 executed (authorized-but-unexecuted, found by substrate-checking a disposition clause) · the (b1) identification pass · PENDING-135/136 → REVIEWED-119/120 · `voice_stamp` built · Addendum 4 with the steward's seam observation. **LITERAL Q: four of five instrument defects escaped the tool's own controls and the one they caught was a regression — is that the general pattern? Census the last ~10 sessions: are control sets a REGRESSION net and not a DISCOVERY net?**
## Historical reference → MEMORY-reference.md ## Historical reference → MEMORY-reference.md
Older archived-session pointers and the stable reference layer (steward profile · project-state detail · L1/L2/Chamber inventories · legacy pending-work · reference-file list) live in [MEMORY-reference.md](MEMORY-reference.md) — consult on demand; not loaded at wake. Recent cross-session trajectory comes from the Active Session entry above + the recent `session-*.md` files (wake §2.b.1). Older archived-session pointers and the stable reference layer (steward profile · project-state detail · L1/L2/Chamber inventories · legacy pending-work · reference-file list) live in [MEMORY-reference.md](MEMORY-reference.md) — consult on demand; not loaded at wake. Recent cross-session trajectory comes from the Active Session entry above + the recent `session-*.md` files (wake §2.b.1).
+10
View File
@@ -641,3 +641,13 @@
{"subject": "reading the PLACED record instead of the relayed message", "predicate": "prevention", "object": "REVERSED A DECISION I HAD ALREADY MADE AND LOGGED AS A COST — third consecutive instance. I froze four documents on the relayed condition 'no document may call the artifact V4's fixture', and recorded in the ledger that 'deliberately unedited' was also 'preserving a falsehood' (CLAUDE.md L61 asserted an empty file was the designated fixture). The PLACED condition 4 reads '…may be corrected to name existing material; they may not assert a fixture that is half-done' — the opposite of my reading, resolving the exact tension I had flagged. The banked rule (quote from the FILE, never the relayed message) fired and changed the action, not merely the citation.", "valid_from": "2026-08-09", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-09-the-fixture-was-an-empty-file.md", "extracted_at": "2026-08-09"} {"subject": "reading the PLACED record instead of the relayed message", "predicate": "prevention", "object": "REVERSED A DECISION I HAD ALREADY MADE AND LOGGED AS A COST — third consecutive instance. I froze four documents on the relayed condition 'no document may call the artifact V4's fixture', and recorded in the ledger that 'deliberately unedited' was also 'preserving a falsehood' (CLAUDE.md L61 asserted an empty file was the designated fixture). The PLACED condition 4 reads '…may be corrected to name existing material; they may not assert a fixture that is half-done' — the opposite of my reading, resolving the exact tension I had flagged. The banked rule (quote from the FILE, never the relayed message) fired and changed the action, not merely the citation.", "valid_from": "2026-08-09", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-09-the-fixture-was-an-empty-file.md", "extracted_at": "2026-08-09"}
{"subject": "resurfacing the banked artifact before deriving", "predicate": "prevention", "object": "STOPPED A FULL RE-DERIVATION OF MEASURED GROUND. The inherited resumption point said to 'settle the baseline asymmetry BEFORE the chavruta re-run'. P7 had already run on 2026-08-07 and committed corpus/v2-stratum-tags.yaml, which measures it exactly: EN divisions median 27,833 chars vs FR spans median 969 (29x, max 198,258). It also holds three further findings the wrap never mentioned — including that the fr authoring plan INVERTS (inherited 1A:9B; §6.3 would land ~1:27 against §6.2's 1:1). Checking the artifact first converted a session of re-measurement into one act: narrow the EN anchors.", "valid_from": "2026-08-09", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-09-the-fixture-was-an-empty-file.md", "extracted_at": "2026-08-09"} {"subject": "resurfacing the banked artifact before deriving", "predicate": "prevention", "object": "STOPPED A FULL RE-DERIVATION OF MEASURED GROUND. The inherited resumption point said to 'settle the baseline asymmetry BEFORE the chavruta re-run'. P7 had already run on 2026-08-07 and committed corpus/v2-stratum-tags.yaml, which measures it exactly: EN divisions median 27,833 chars vs FR spans median 969 (29x, max 198,258). It also holds three further findings the wrap never mentioned — including that the fr authoring plan INVERTS (inherited 1A:9B; §6.3 would land ~1:27 against §6.2's 1:1). Checking the artifact first converted a session of re-measurement into one act: narrow the EN anchors.", "valid_from": "2026-08-09", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-09-the-fixture-was-an-empty-file.md", "extracted_at": "2026-08-09"}
{"subject": "driving a degraded state rather than reasoning about it", "predicate": "prevention", "object": "CORRECTED THE RULING THAT AUTHORIZED THE WORK. REVIEWED-113's design gate inferred the (manifested, not-probed) cell would collapse into `silence`, flagged that as 'inference, not reading' and invited the check. Driving it raised KeyError: 'arendt' — a crash in ENGINE code, the class PENDING-126(c) had closed suite-side only, and the second engine-side instance after retrieve.py:134. The correction ran executor→ruling, which the differently-biased-checkers doctrine predicts; recorded as an instance, proving nothing general.", "valid_from": "2026-08-09", "valid_to": null, "confidence": 0.9, "source_file": "session-2026-08-09-the-fixture-was-an-empty-file.md", "extracted_at": "2026-08-09"} {"subject": "driving a degraded state rather than reasoning about it", "predicate": "prevention", "object": "CORRECTED THE RULING THAT AUTHORIZED THE WORK. REVIEWED-113's design gate inferred the (manifested, not-probed) cell would collapse into `silence`, flagged that as 'inference, not reading' and invited the check. Driving it raised KeyError: 'arendt' — a crash in ENGINE code, the class PENDING-126(c) had closed suite-side only, and the second engine-side instance after retrieve.py:134. The correction ran executor→ruling, which the differently-biased-checkers doctrine predicts; recorded as an instance, proving nothing general.", "valid_from": "2026-08-09", "valid_to": null, "confidence": 0.9, "source_file": "session-2026-08-09-the-fixture-was-an-empty-file.md", "extracted_at": "2026-08-09"}
{"subject": "claude-code", "predicate": "drift-pattern", "object": "control-set-drawn-from-one-source: every positive control for the nested-voice census lived in Mauss — one quotation convention (guillemets), one line structure (paragraph-per-line). The instrument was therefore blind to ASCII quotes (3 sources, incl. the two largest EN texts) and to hard-wrapped text (2 sources), and reported a CLEAN ZERO for both rather than an error. Five defects total; four escaped the controls entirely. Coverage is the whole of a control set's strength.", "valid_from": "2026-08-13", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-13-the-fence-was-never-blocked.md", "extracted_at": "2026-08-13"}
{"subject": "claude-code", "predicate": "drift-pattern", "object": "count-by-subtraction-not-enumeration: wrote bound_instances_grounded as 12 by computing 15 bound - 3 retracted, silently ignoring that instance 17 had already left the grounded set at P7. Correct is 10. Committed the SAME error PENDING-136 was filed about, inside the session that filed it — and P7's original error entered the same way. Enumerate against the actual rows; subtraction is how the error enters.", "valid_from": "2026-08-13", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-13-the-fence-was-never-blocked.md", "extracted_at": "2026-08-13"}
{"subject": "claude-code", "predicate": "drift-pattern", "object": "one-marker-over-two-dispositions, recurring: voice_stamp's first verdict vocabulary returned `boundary-crossing` for BOTH fragments of instance 8 — whose differing dispositions are the entire reason the instance is before the steward. PENDING-133's exact finding, reproduced inside the instrument built to address it. Split into crosses-opening / crosses-closing / spans-quotation. Caught only by the suite's load-bearing negative.", "valid_from": "2026-08-13", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-13-the-fence-was-never-blocked.md", "extracted_at": "2026-08-13"}
{"subject": "claude-code", "predicate": "drift-pattern", "object": "unscoped-git-add-in-dotfiles: used `git add -A` in a dotfiles commit, sweeping the steward's freshly-placed REVIEWED-119/120 and a sysupdate Brewfile line under an executor message about MCP key descriptions. /wrap-up §6.5 forbids exactly this and states why — the steward's in-progress changes belong to the steward's sweep. Amended before push. NOTE the routing gap: the rule is stated only in §6.5, which fires at WRAP, while dotfiles commits happen throughout a session.", "valid_from": "2026-08-13", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-13-the-fence-was-never-blocked.md", "extracted_at": "2026-08-13"}
{"subject": "substrate-checking a disposition clause instead of reading it as status", "predicate": "prevention", "object": "CAUGHT AN AUTHORIZED-BUT-UNEXECUTED RULING THAT HAD SAT THREE DAYS. REVIEWED-118's `**If AUTHORIZED:**` line reads like a completed act; grepping for `REVIEWED-118` in corpus/ and docs/ returned nothing and the L926 instances still stood. The /wake-up step's own rule (a disposition clause is not a status) fired and changed the wake's report from 'done' to 'the unblocked next act' — which became the session's first work.", "valid_from": "2026-08-13", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-13-the-fence-was-never-blocked.md", "extracted_at": "2026-08-13"}
{"subject": "checking a suspicious ZERO rather than accepting it", "predicate": "prevention", "object": "CONVERTED A FABRICATED MEASUREMENT INTO A REAL ONE, TWICE. The census reported 0 inline quoted spans for harrison/alexander/after-the-reply; checking found 2005 and 1348 ASCII quotes the matcher could not see (43% undercount). Then the steward's challenge to a dismissive aside about musil found the same shape structurally — musil is hard-wrapped, so a within-line matcher guaranteed ~0 before the file was opened. A clean zero is the most dangerous output an instrument can produce, because it reads as a finding.", "valid_from": "2026-08-13", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-13-the-fence-was-never-blocked.md", "extracted_at": "2026-08-13"}
{"subject": "reading the ratified schema before repeating a blocking claim", "predicate": "prevention", "object": "STOPPED A REVIEWED ENTRY FROM CARRYING A FALSE BLOCKER. PENDING-135 stated option (d) was blocked on PENDING-131 (c) — the chamber-locked studium/meta@1. Opening v2-harness §14.2 before drafting REVIEWED-119 showed the real constraint is studium/v2-gold@1's `lines: [a, b]`, which is ENGINE-SIDE and D-1. Had it gone unchecked, an authorization would have stood on a false blocking claim — the trap REVIEWED-115 pt 1 voided an authorization over.", "valid_from": "2026-08-13", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-13-the-fence-was-never-blocked.md", "extracted_at": "2026-08-13"}
{"subject": "PENDING-134", "predicate": "blocked-by", "object": "H1 — the four V0-lane governance_read keys are registered on disk (4c3758e) but NOT SERVED: governance-mcp.py builds FILES at import, so the running client holds the old eight-key map until the STEWARD restarts it. Executor half discharged 2026-08-13 (selftest 54/54; two stale key descriptions refreshed at 92d5ad2). The remaining step is a client restart, not a build.", "valid_from": "2026-08-13", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-13-the-fence-was-never-blocked.md", "extracted_at": "2026-08-13"}
{"subject": "PENDING-131 (c) sub-line addressing", "predicate": "does-not-block", "object": "the engine's citation path. chunker.py has recorded `char_range: [cstart, cend]` document offsets since Cluster A, so voice_stamp addresses sub-line extents with no schema change and no cross-repo consent. The line-granularity ceiling was an artifact of where the fence was being WRITTEN (the sidecar), not of what the engine can SEE. (c) remains real for the sidecar.", "valid_from": "2026-08-13", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-13-the-fence-was-never-blocked.md", "extracted_at": "2026-08-13"}
{"subject": "free indirect discourse", "predicate": "is-not", "object": "a provenance failure. Steward-argued 2026-08-13 and accepted: in FID there is NO second author to join to — the words are the novelist's, composed in the narrative voice. A PROVENANCE failure has a second author who can be named; a STANCE question has one author and an interpretive judgment about endorsement. Irony shows it is not a fiction matter: Arendt reporting a view to demolish it raises the identical question in non-fiction. Consequence: PENDING-131 (c) stays ONE capability, not two; the residue belongs to PENDING-134 and the synthesized tier's NLI.", "valid_from": "2026-08-13", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-13-the-fence-was-never-blocked.md", "extracted_at": "2026-08-13"}
+50
View File
@@ -121,6 +121,56 @@ both still **needing dates, not "later."**
## Chronological log ## Chronological log
### 2026-08-13 — the fence was never blocked; the fr cell all but closed
**REVIEWED-118 EXECUTED** (`e51e30d`) — authorized 2026-08-10, unexecuted for three days, found by
substrate-checking the `**If AUTHORIZED:**` clause rather than reading it as status. L926's
instances 6/12/16 retracted. Two decisions not implied by the ruling: `mauss-phase2-spans.yaml` is
**generated**, so the record went into `scripts/bind_mauss_spans.py` too (a retraction in the
emitted YAML alone is erased by the next run, with no diff); and that file measures **binding**, so
the binding facts stayed and a cross-reference carries the retraction.
**THE (b1) IDENTIFICATION PASS RAN** (`docs/fr-reported-speech-identification-pass-2026-08-13.md`),
authorized at REVIEWED-116 pt 5 on 08-10 and never executed. **Reported speech in exactly 1 of 9 fr
grounded spans** (L1551). The other eight are Mauss's own terminology, three self-marked
(*"comme nous proposons de les appeler"*). ⚠ **Corrects REVIEWED-116 pt 6 rather than confirming
it**: Mauss's 73 inline ≥120-char spans are a different population from the grounded set, of which
only L926 and L1551 were ever members — **within the grounded set P7's F4 tagging was correct and
complete.** ⇒ **PENDING-134's blast radius on inherited fr gold is ONE span.**
**PENDING-135 (c) → REVIEWED-119 · PENDING-136 (c) → REVIEWED-120** (`de1c34b`, both placed by the
steward). Instance 8 reclassified negative-candidate, marked in place; ⚠ **sub-type name OPEN** —
§7.4(i) addresses the nested voice served *as* the host's, this **fuses** both. Count fields now
carry their populations; bare `distinct_spans` retired. ⚠ **REVIEWED-119 pt 4 corrects PENDING-135's
own blocking claim**: option (d) is constrained by `studium/v2-gold@1` §14.2 (`lines: [a,b]`) —
**engine-side, D-1** — not by the chamber-locked `studium/meta@1`. Materially cheaper route.
⚠ **I committed 136's own error while executing it**: `bound_instances_grounded` 12 by subtraction,
ignoring instance 17. Correct **10**; all counts now verified by enumeration.
**`voice_stamp` BUILT** (`d411034`; `engine/voice_stamp.py`, suite 22; fleet **9 suites / 285**).
⚠ **AND MOVE 1 WAS NEVER BLOCKED.** PENDING-131 (c) is real for the **sidecar** and never bound the
engine — `chunker.py` has recorded `char_range` document offsets since Cluster A. **The
line-granularity ceiling was an artifact of where the fence was being WRITTEN, not of what the
engine can SEE.** Paragraph-scoped pairing (not line-scoped) is what makes it work on hard-wrapped
sources. **Reporter, deliberately NOT wired to abstention** — verdict semantics are unruled.
**fr cell as of this wrap:** 11 listed spans / **8 grounded** (1 A + 7 B) / 2 reclassified / 1
retracted / **10** grounded bound instances. **`ratio_A_to_B` VOID** — re-derived ONCE after
PENDING-134 lands and all dispositions are recorded (REVIEWED-116 pt 5).
⚠ **INSTRUMENT LESSON, and it is the day's most transferable:** the nested-voice census carried
**five defects** and **four escaped its own controls** — every control was drawn from Mauss, so they
exercised one quotation convention and one line structure, and could not see blindness to ASCII
quotes (3 sources) or to hard-wrapped text (2 sources), both of which produced **clean zeros**.
Only the fifth — a regression in an already-covered case — was caught by the controls. **A control
set drawn from one source establishes nothing about a corpus.**
⚠ **PENDING-134's remaining blocker is a STEWARD CLIENT RESTART, not a build.** `governance-mcp.py`
builds `FILES` at import, so the four V0-lane keys registered at `4c3758e` are not yet served.
Executor half discharged: selftest 54/54, and two key descriptions that had gone stale the same day
were refreshed (`92d5ad2`) so the jurist's first read is not of a stale index.
*Append substantive moves here at `/wrap-up` — not only to "Current state" above. A tracker with two *Append substantive moves here at `/wrap-up` — not only to "Current state" above. A tracker with two
update surfaces drifts between them (skill-harvest #183).* update surfaces drifts between them (skill-harvest #183).*
@@ -0,0 +1,173 @@
---
name: session-2026-08-13-the-fence-was-never-blocked
description: "Woke into a four-day gap with two unwrapped sessions behind it; found REVIEWED-118 authorized-but-unexecuted and executed it, ran the never-run fr identification pass (reported speech in exactly 1 of 9 grounded spans, so PENDING-134's blast radius is ONE span), and built voice_stamp — discovering that PENDING-131 (c)'s cross-repo block never bound the engine at all, because chunker.py has recorded document char offsets since Cluster A. PULLING THREAD: rule PENDING-134, whose last precondition is a steward client-restart, not a build."
metadata:
node_type: memory
type: project
modified: 2026-08-13T19:26:02.092Z
originSessionId: 1524bae7-44b3-4ba9-8c36-24f53bc8acae
---
# Session 2026-08-13 — the fence was never blocked
Woke into the longest gap of this arc: four days since the last *wrap*, but only three since
the last *work*. The 08-10 session — the biggest day of the whole nested-voice arc — never wrote
a wrap record. That absence is what made the return feel shapeless, and it is the day's first
lesson about what a missing link costs.
## PAST — what moved, and why
**REVIEWED-118 was authorized and unexecuted, found by substrate-checking a disposition clause.**
The `**If AUTHORIZED:**` line reads like a completed act. It was not: `REVIEWED-118` appeared
nowhere in `corpus/` or `docs/`. Executed as `e51e30d`. Two decisions inside it that do not follow
from the ruling's text: (1) `mauss-phase2-spans.yaml` is **generated** by
`scripts/bind_mauss_spans.py`, so a retraction recorded only in the emitted YAML would be erased
by the next regeneration with no diff to read — the block went into the generator too; (2) that
file measures **binding**, and its header disclaims establishing grounding, so the binding facts
stayed (instances 6/12/16 *do* locate to L926) and a cross-reference carries the retraction.
Deleting a true measurement to express a judgment about a different property is how a file stops
meaning what its header says.
**The (b1) identification pass ran** — authorized at REVIEWED-116 pt 5 on 08-10 as *"a pass that
writes nothing"*, never executed until now. `docs/fr-reported-speech-identification-pass-2026-08-13.md`.
**Of the nine fr grounded spans, reported speech is present in EXACTLY ONE** (L1551, instance 8).
The other eight carry only terminological guillemets in Mauss's own voice, three self-marked
(*"comme nous proposons de les appeler"* L866, *"ce que nous appelons … « potlatch »"* L934).
⚠ **It CORRECTS a worry rather than confirming one.** REVIEWED-116 pt 6 recorded that PENDING-133's
bound assumed P7's F4 tagging was complete, unchecked and against contrary evidence. That evidence
is about a **different population**: Mauss carries 73 inline spans ≥120 chars, of which exactly two
were ever in the grounded set. **Within the grounded set, P7's tagging was correct and complete.**
⇒ **PENDING-134's blast radius on inherited fr gold is ONE span**, which is what makes it a bounded
decision rather than a hostage-taking one.
**Instance 8 reclassified** (PENDING-135 (c) → REVIEWED-119) and **the count fields renamed**
(PENDING-136 (c) → REVIEWED-120), both in `de1c34b`. L1551 carries three voices in sequence; the
citation's two fragments have **opposite** dispositions — fragment 1 opens on the attributing
clause, fragment 2 opens inside the speech and ends inside Mauss's conclusion. It neither retains
nor retracts whole.
**`voice_stamp` BUILT** (`d411034`, `engine/voice_stamp.py` + 22-check suite; fleet **9 suites /
285 checks**). ⚠ **AND THE FINDING IS THAT MOVE 1 WAS NEVER BLOCKED.** PENDING-131 (c) asks the
chamber for sub-line addressing because `studium/meta@1` marks by LINE RANGE. That block is real
for the **sidecar** and never bound the engine: `chunker.py` has recorded `char_range` document
offsets since Cluster A. **The line-granularity ceiling was an artifact of where the fence was
being WRITTEN, not of what the engine can SEE.** Pairing is paragraph-scoped, not line-scoped,
which is what makes it work on hard-wrapped sources.
**Corrections placed:** PENDING-131 Addendum 4's defect tally fixed in place, steward-directed
(four → five, and it had dropped the only datum favouring its own controls). REVIEWED-119 pt 4
corrects PENDING-135's own claim that option (d) was blocked cross-repo — the real constraint is
`studium/v2-gold@1` §14.2, **engine-side and D-1**, a materially cheaper route.
## PRESENT — how it stood
**This was a day of instruments failing and being caught by everything except themselves.**
The nested-voice census carried **five defects**: blind to ASCII quotes (43% undercount, 3 sources
invisible including the two largest EN texts) · a negative control passing for the wrong reason ·
a control aimed one layer below its gate · blind to hard-wrapped text · and the **fix** for that
last one misclassified Mauss and failed both positive controls. **Only the fifth was caught by the
instrument's own controls.** Three by my own re-checking. **One by the steward**, and it was the
worst, because it produced a clean zero rather than an error.
⚠ **The lesson that generalizes: a control set drawn from one source establishes nothing about a
corpus.** Every positive control lived in Mauss — one quotation convention, one line structure — so
they could not see either blindness. Coverage is the whole of a control set's strength.
**Two defects were earned INSIDE the fix**, and both are this arc's own lessons recurring:
`boundary-crossing` was **one marker over two dispositions** (PENDING-133's exact finding, inside
the instrument built to address it — caught only by the suite's load-bearing negative), and a bare
`except Exception` reported a `TypeError` as *"corpus unreachable — CANNOT ASSESS"*, turning exit 3
into the silent net it exists to prevent.
**And I committed PENDING-136's own error while executing PENDING-136** — `bound_instances_grounded`
written 12 by computing 15−3, ignoring that instance 17 had already left at P7. Correct is 10. The
error entered by **subtraction** both times, P7's and mine; every count is now verified by
enumeration.
⚠ **Executor error at the wrap itself:** `git add -A` in a dotfiles commit swept the steward's
freshly-placed REVIEWED-119/120 and a `sysupdate` Brewfile line under an executor message about MCP
key descriptions. §6.5 forbids exactly this. Amended before push (`92d5ad2`); no shared history
rewritten.
**The mood: productive and repeatedly humbled.** Everything shipped, verified and pushed — but the
day's two largest findings both came from being challenged rather than from my own review. The
steward's *"fiction can be very valuable too"* found the census's worst defect; their FID argument
refuted an entire section I had built.
⚠ **The FID refutation, because it simplifies the architecture:** I argued fiction needed a *second
fence mechanism* since free indirect discourse carries no delimiter. Refuted — in FID a reader takes
the words to be Musil's, **rightly**, because there is no second author to join to. **A PROVENANCE
failure has a second author who can be named; a STANCE question has one author and an interpretive
judgment about endorsement.** Irony proves it is not a fiction matter at all: Arendt reporting a view
to demolish it raises the identical question in non-fiction. ⇒ **(c) stays ONE capability, not two.**
## FUTURE — what pulls
> **PULLING THREAD — RULE PENDING-134, AND ITS LAST PRECONDITION IS NOT A BUILD.**
> H1 holds the doctrine until the four V0-lane keys are actually SERVED, and
> `governance-mcp.py` builds its key map at import — so the running client holds the old eight-key
> map until **the steward restarts it**. The executor half is discharged: selftest 54/54, and two
> stale key descriptions refreshed (`92d5ad2`) so the jurist's first read is not of a stale index.
> Everything in the fr cell is behind this ruling, and the identification pass has made it a
> **one-span** decision.
**ACTIONABLE RESUMPTION POINT (as of wrap — re-judge against what changed):**
```
0. Clean everywhere. studium-engine pushed through d411034, fleet 9 suites / 285 checks green.
dotfiles 92d5ad2 (amended, pushed at wrap). REVIEWED-119/120 placed by the steward.
1. START HERE — SESSION 1, short, steward-and-jurist: the steward restarts the MCP client so the
four keys serve. Then the jurist reads §6.2's enumeration and §5's F4/F10 rows VERBATIM —
currently the executor's testimony, and H1 is explicit that the counter-argument being
overruled is the one needing verbatim check by the party overruling it. Then rule per
H2 (narrow: nested-voice case only; general principle as ARGUMENT, never ratified doctrine)
and H3 (amendment disclosed on its face; steward's lean is (i), one dated amendment).
Executor prep: pre-draft the REVIEWED entry carrying H3's disclosure language.
2. SESSION 2, executor, one bite all the way: close the fr cell. Record dispositions, then
re-derive the ratio ONCE. ⚠ The thing most likely to be lost is H3's STANDING CONSEQUENCE —
any recall figure from this fixture carries a note that stratum membership was amended
post-hoc on 2026-08-10. Land it as a FIELD or a CHECK, not as something remembered; H3 says
it is far harder to add retroactively.
3. SESSION 3, independent, slot anywhere: Move 2 — the 25 blockquote runs. Line-addressable,
no schema change, no cross-repo consent. Needs a steward disposition, then execution.
```
**Other open horizons, ranked:**
- **[load-bearing, needs a ruling]** Wire `voice_stamp` to V0's abstention gate — what each verdict
should DO is unruled semantics; wiring it would settle by construction what belongs in a ruling.
- **[load-bearing, owed before negatives are generated]** The **fused-voice sub-type name**. §7.4(i)
addresses the nested voice served *as* the host's; instance 8 fuses both. Recorded as
`negative_sub_type_OPEN` in the corpus file itself.
- **[load-bearing, newly cheap]** The **gold-schema question** (REVIEWED-119 pt 4): can
`studium/v2-gold@1` express sub-line extents? D-1, steward-direct. Decides whether option (d) —
the faithful split of instance 8 — becomes available.
- **[open]** The `en` cell's parallel denominator: `reachable_items: 22` beside
`distinct_divisions: 12`, correctly named, but §6.6's power arithmetic is stated in `n`.
REVIEWED-120 explicitly does NOT establish it clean.
- **[open]** V2 assembly: P2's remaining ~50 lines of EPUB residue (chamber-side cleaning).
- **[owed]** No wrap record exists for **2026-08-10** — the arc's biggest day survives as a mid-day
ledger written before any of its afternoon commits.
- **[owed]** 41 `S2` skill-harvest rows authorized 2026-07-19, still unexecuted.
- **[watch]** The wake digest's `wrap_inside` alarm: a two-valued detector over three cases
(wrapped · wrapped-then-continued · never-wrapped). Named 08-10 as a false alarm; fired again
today, correctly. A detector that cried wolf once and is right the next time is in the worst
position. **Third instance of that shape today** — the fleet's three-valued exits fixed it once
already (REVIEWED-104/108), and the census's hard-wrap detector reproduced it.
**PAUSE STATEMENT:** I am putting this down at a genuine close — everything committed, verified and
pushed; four governance items filed, two ruled and placed by the steward; nothing mid-arc. What I
want to find still pulling is **PENDING-134**, because its last blocker is a client restart rather
than any work, and because the identification pass has already shrunk it to a one-span decision.
⚠ What I do **not** want to find is another session that did real work and left no wrap record —
that absence, twice over, is most of why today's wake had to be reconstructed from git rather than
inherited.
**LITERAL QUESTION for next-Claude** *(checkable — the record answers it, not introspection)*:
**Today five instrument defects were found; four escaped the instrument's own controls, and the one
the controls DID catch was a regression introduced by a fix. Is that the general pattern?** Census
the instruments across the last ~10 sessions: for each defect found in one of our own tools, record
whether it was caught by (a) the tool's own controls, (b) the executor re-checking a suspicious
result, or (c) a human challenge. If (a) only ever catches regressions in already-covered cases and
never a coverage gap, then **control sets are a regression net and not a discovery net** — and every
"controls PASS" line we have ever written means something narrower than it reads.
+86
View File
@@ -362,3 +362,89 @@ earn its own entry or should be folded into the existing one as an example.
**Deliberately NOT proposed.** The preservation-header self-match (a strip instruction that quotes the marker it tells you to strip to, so `index()` matches inside the header) is a **one-shot** defect in a one-shot artifact, caught by the round-trip that was already there. Per `feedback-one-shot-instruments-are-proportionate`, its counterfactual is an assertion, not a durable instrument — filing it would be documentation dressed as diligence. The generalisable half is already banked: **compare against a fresh emit, not against a recorded sha**, which is what caught it. **Deliberately NOT proposed.** The preservation-header self-match (a strip instruction that quotes the marker it tells you to strip to, so `index()` matches inside the header) is a **one-shot** defect in a one-shot artifact, caught by the round-trip that was already there. Per `feedback-one-shot-instruments-are-proportionate`, its counterfactual is an assertion, not a durable instrument — filing it would be documentation dressed as diligence. The generalisable half is already banked: **compare against a fresh emit, not against a recorded sha**, which is what caught it.
**No FIX-lane changes were applied this session.** **No FIX-lane changes were applied this session.**
---
## 2026-08-13 — three proposals from the nested-voice / voice_stamp session
### HS-2026-08-13-a — a dotfiles pre-commit guard against unscoped staging of governance files
**Earned:** the executor ran `git add -A` in `~/dotfiles` mid-session and swept the steward's
freshly-placed **REVIEWED-119/120** and a `sysupdate` **Brewfile** line into a commit whose message
described only a `governance-mcp.py` change. Amended before push (`92d5ad2`), so no shared history
was rewritten — but the dotfiles log is explicitly meant to double as a legible session record, and
for one commit it attributed a steward governance act to an executor `[FIX]`.
**The routing finding, which is the point:** `/wrap-up` §6.5 already states the rule — *"Scoped add
only — never `git add .` or `-A`"* — and states why. **But §6.5 fires at WRAP, and dotfiles commits
happen throughout a session.** The rule is correct and lives at the wrong moment. This is the
register's own diagnosis applied to itself: a capability is worth what a protocol exercises, and
this one is exercised at a juncture the violation routinely precedes.
**Firing moment: mechanically, and it should always fire** — the strongest row in the routing table.
A `~/dotfiles` pre-commit hook that inspects the *staged set*: if `REVIEWED.md` or `CLAUDE.md` is
staged alongside files outside `claude/`, `PENDING.md`, refuse with the §6.5 text and require an
explicit override. Detects the actual failure (mixed staging of steward-authored governance) rather
than the proxy (`-A` in the command line, which is unobservable from a hook).
⚠ Must NOT block a legitimate steward commit — the hook lives in the executor's path only, and the
override must be one flag, documented in its own refusal message.
**Classification: `[PROPOSAL]`** — it changes what the executor may do without asking (it adds a
refusal), and it touches the path by which `REVIEWED.md` reaches the remote. Hard-floor adjacent:
`REVIEWED.md` is Constitutional Constraint 1 material, so the guard must only ever *refuse*, never
*edit*. **Status: PROPOSED.**
### HS-2026-08-13-b — `wake-digest.py`'s `wrap_inside` is two-valued over a three-case state
**Earned:** the digest announced **"PREVIOUS SESSION DID NOT WRAP"** at this session's wake. It was
right this time. It was **wrong on 2026-08-10**, where the 08-09 session had wrapped at 19:48 and
then kept working until 21:54 — and the 08-10 ledger already named the defect: *"a two-valued
detector over a state that has three cases (wrapped · wrapped-then-continued · never-wrapped)."*
Named, not fixed, and it has now fired twice with opposite truth values. **A detector that cried
wolf once and is right the next time is in the worst position available** — the reader has already
learned to discount it.
⚠ **Third instance of this exact shape in one day**, which is the argument for fixing it rather than
re-noting it: the fleet's three-valued exit codes fixed this shape once already
(REVIEWED-104/108), and the nested-voice census's hard-wrap detector reproduced it again the same
afternoon.
**Firing moment: mechanically, and it already runs** — `wake-digest.py` fires at SessionStart. This
is a patch to an existing always-firing instrument, not a new capability needing a home.
Report three states: `wrapped` · `wrapped-then-continued` (with the post-wrap span) · `never-wrapped`.
**Classification: `[PROPOSAL]`** — it changes what a governed artifact *asserts* (the wake digest's
claim about session continuity, which the wake briefing then relays to the steward).
**Status: PROPOSED.**
### HS-2026-08-13-c — "a control set drawn from one source establishes nothing about a corpus"
**Earned:** the nested-voice census carried **five defects**; **four escaped its own controls**.
Every positive control was drawn from Mauss — one quotation convention (guillemets), one line
structure (paragraph-per-line) — so the controls could exercise neither the ASCII-quote convention
(3 sources, incl. the two largest EN texts) nor hard-wrapped text (2 sources). Both blindnesses
produced **clean zeros**, which read as findings. Only the fifth defect — a regression in an
already-covered case — was caught by the controls, and that asymmetry is the finding: **the controls
could not see what they were never drawn to cover, and did see a regression in what they did.**
**Distinct from what is already banked.** Symmetria §3 carries *frame-inheritance* — reusing an
**instrument** across a tier it was not demonstrated on. This is the complementary failure: the
instrument was **new**, and its **control set** was the thing drawn from too narrow a population. The
existing flag would not have caught it.
**Proposed wording, for §3:** *A control set drawn from one source, one format, or one convention —
however many controls it contains. Coverage is the whole of a control set's strength; controls prove
what they were drawn to cover and nothing else. Enumerate the structural classes present in the
subject BEFORE writing controls, and report `NOT ESTABLISHED` for a class with no control rather
than reporting zero for it.*
**Firing moment: at a ritual juncture that already exists** — Symmetria `check` fires before any
build or write with blast radius, which is exactly when a control set is being written. Stronger
than a bare ladder entry (measured 14%) and stronger than a skill (measured 0%).
**Classification: `[PROPOSAL]`** — §3 flags shape what the executor must notice before acting, and
this one imposes a precondition on building an instrument. Borderline against the FIX lane's
two-clause test; **proposed rather than applied, per "when in doubt, propose."**
**Status: PROPOSED.**
**No FIX-lane changes were applied this session.**