From 9fba331e3eea9430cee951052378cb96e99c04b8 Mon Sep 17 00:00:00 2001 From: David F Glidden Date: Fri, 4 Sep 2026 10:53:40 +0200 Subject: [PATCH] [HARDENING] PENDING-179 AMENDMENT 1: jurist corrections, and the selftest control does not test its own claim MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Five corrections from the jurist on the wrap, two operational, plus one new measurement that supersedes this session's own origin claim. The correction that matters: the wrap credited the handover's ordering "at every point it was load-bearing". The gate's POSITION held; its CONTENT did not. Gate 2a as specified was one arm, one transcript, expected 0 — run as written it greens, because 22 of 24 mumbles return 0. The finding exists because the specification was replaced with independent whole-population ground truth plus an unrequested must-not-flag arm. "Follow the handover" is the wrong lesson and the more comfortable one. New, and it supersedes the 2026-09-03 origin record: the failing selftest control does not test the claim on its label. Measured live on the actual _tx[-14:-1] slice — 1 real session, 12 mumbles, and verdict `wrapped` comes from 1 real session and 4 MUMBLES. The predicate `"wrapped" in _v` is satisfiable by mumbles alone, so it would pass with zero real sessions in the slice. OWED-1's wrong-subject family, inside the control that was meant to be evidence about mumbles. Still open, and recorded as open rather than reframed again: the date of the control's first failing run. The archive reconstruction is not sound for it. Operational for the next session: - unbundle the two acts, suspension first; the git init is a steward call and may wait, while the suspension has a firing distance (65/84) - the suspension MUST carry a replacement bound in the same act — REVIEWED-123 cond. 2's bound IS grading at 84, and suspending grading removes exactly that bound Also: gate 2c's narrowing limitation moved into the item, since the item is what gets ruled on. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01X3L79vgAnt1x2kxvf23Qt7 --- PENDING.md | 22 ++++++ claude/memory/MEMORY.md | 15 ++-- claude/memory/knowledge-graph.jsonl | 4 + ...-04-the-discriminator-was-a-coincidence.md | 75 +++++++++++++++++++ claude/memory/session-ledger-2026-09-03.md | 23 ++++++ claude/memory/session-ledger-2026-09-04.md | 0 6 files changed, 132 insertions(+), 7 deletions(-) create mode 100644 claude/memory/session-ledger-2026-09-04.md diff --git a/PENDING.md b/PENDING.md index 31131ec..f381374 100644 --- a/PENDING.md +++ b/PENDING.md @@ -6960,3 +6960,25 @@ That is a separate decidable unit; merging it here would reproduce the CLASS E d **Files affected:** none changed. `~/dotfiles/scripts/wake-digest.py` (`human_turns`, `previous_transcript`, selftest sample), `~/dotfiles/scripts/tarbuckle-invoke.py` (`newest_transcript`) are the sites a ruling would touch; `governance-drift-check.py:513` is **excluded on receipt** by the handover and was not examined for repair. **Awaiting:** Steward authorization. ⚠ **Nothing is blocked on this:** step 0 (preservation) ran and the evidence is safe; the repairs are correctly stopped, not stalled. + +### AMENDMENT 1 — 2026-09-04 — jurist corrections; and the selftest control does not test its own claim + +**Filed before any ruling on this item, so it is read with the parent rather than after it** (the PENDING-145 suppression case applies to addenda filed *after* a ruling; this is not one). Five corrections from the jurist, two of which change what tomorrow should do, plus one new measurement that supersedes a claim in the parent's own origin. + +**1. The credit in the parent's framing is misplaced, and the correction matters more than the compliment.** The record said the handover's ordering held *"at every point it was load-bearing."* **The gate's POSITION held; its CONTENT did not.** As specified, gate 2a was *one arm, one transcript, expected 0*. **Run as written it greens**: 22 of the 24 mumbles return 0, so a single sampled mumble passes with ~92% probability and the repair proceeds. The finding exists because the executor **replaced the specification** — ground truth taken independently of the function under test, across the whole population, with a second `must-not-flag` arm that was not asked for. ⚠ **"Handovers are load-bearing, follow them" is the wrong lesson and the more comfortable one.** The right one: *a gate's existence bought the chance to catch this; improving on the gate's specification is what caught it.* A reader who inherits the comfortable version will run the next gate as written. + +**2. Gate 2c's census limitation belongs here, not only in a wrap no ruling reads.** The parent reports controls named before execution and a `must-not-find` that fired, which reads as a clean controlled census. ⚠ **It was narrowed three times** — broad reference match, then governed-code-only, then enumeration-only. **Repeated narrowing can terminate by confirming the sites the predicate was built around.** The negative control and the stated blind spots bound that, and do not eliminate it. **Read 2c's "no additional consumers" as the weakest of the parent's three findings.** + +**3. NEW, and it supersedes the origin claim: the failing selftest control does not test the claim its label states.** Measured live 2026-09-04 on the actual `_tx[-14:-1]` slice: + · **slice composition: 1 real session, 12 mumbles** + · **verdict `wrapped`: 1 from the real session, 4 FROM MUMBLES** + · the control's predicate is `"wrapped" in _v` — **satisfiable by mumbles alone**, so it would pass with **zero** real sessions in the slice. +⚠ **Its label claims "a real session reads as WRAPPED end-to-end."** Its test asks whether *any transcript whatever* drew that verdict. **This is OWED-1's wrong-subject family, inside the control that was supposed to be evidence about mumbles.** ⚠ **It also corrects the 2026-09-03 origin record**, which stated all 13 slice members were mumbles and that the failure was mumble-displacement. The slice holds a real session, and the pass/fail turns on `wrap_verdict` outcomes across an arbitrary population rather than on mumble density. + +**4. The date of the control's first failing run is STILL NOT ESTABLISHED, and this amendment does not establish it.** The jurist asked for it because a start predating 2026-08-25 would mean the mumble is not the only cause. A reconstruction over the preserved archive found **no date between 08-20 and 09-04 on which the slice held zero real sessions** — but that reconstruction is **not sound for this purpose**: manifest `source_mtime` is snapshot-time rather than current, and the verdict additionally depends on `wrap_events()` git history that was not replayed. ⚠ **Recorded as OPEN rather than answered.** The parent's "intermittent" framing was a better-founded description substituted for the question, which is the same move twice; naming it is the correction. + +**5. THE SUSPENSION REMOVES REVIEWED-123's BOUND AND MUST CARRY A REPLACEMENT IN THE SAME ACT.** REVIEWED-123 condition 2 holds that *"a hold with no expiry and no visible distance to expiry is how a temporary freeze becomes a permanent one."* **The bound that condition installed IS grading at 84.** Suspending automatic grading at `trigger_fired()` removes exactly that bound and converts a bounded hold into an open one. **The suspension ruling must therefore install a replacement bound in the same act** — tied to the joint -178/-179 ruling, or to the existence of a working session predicate — **with the 2026-09-16 report obligation surviving either way.** ⚠ Otherwise the act recommended to protect the trial's instrument silently defeats the condition protecting the freeze. ⚠ **This bites OWED-5 specifically:** it is a rule about *controls*, routed per condition 3 into a queue that discharges when a *ladder-retrieval trial* grades. The routing is correct and **the coupling is now long**. + +**6. Unbundle the two acts; the suspension goes first.** The parent's resumption order is (1) `git init`, (2) suspend. But the parent's own *decisions deferred* records the `git init` as a **steward call** — 144 MB, full transcripts, a remote question — so it may wait days. **The suspension is the act with a firing distance: N=65 against 84, 19 away, 13 net in the last measured three days.** The two touch different files and neither depends on the other; serializing them **puts the deadline behind the deliberation.** The docstring stays false in the meantime, **which is the correct state for a docstring describing a thing that is not true yet.** + +**Awaiting:** Steward authorization, jointly with PENDING-178. ⚠ **Point 5 is a condition on an act already directed, not a new proposal** — if the suspension proceeds without a replacement bound, REVIEWED-123 condition 2 is defeated by the act meant to protect its trial. diff --git a/claude/memory/MEMORY.md b/claude/memory/MEMORY.md index 7c60653..e089dce 100644 --- a/claude/memory/MEMORY.md +++ b/claude/memory/MEMORY.md @@ -73,14 +73,15 @@ 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`. ## Active Session -> 🔴 **NEXT SESSION, FIRST WORK — STEWARD-DIRECTED 2026-09-04, in this order:** **(1) `git init` the transcript archive** (`~/_Dev/claude-transcript-archive`, 144 MB, currently **no repo, no remote, no second copy** — and `preserve-transcripts.py:11` already *claims* it is git-tracked; **11 transcripts exist there and nowhere else**, so the init is what makes an existing false docstring true rather than requiring it be edited into honesty). **(2) Suspend the automatic grading at `trigger_fired()`.** ⚠ **The steward's precision here is the point: NOT a repair, NOT a filter, NOT -178 option (b). It changes nothing about what the counter counts, so the site-1 exclusion survives intact.** It prevents a grade firing on a population whose contamination is measured and rising. -> ⚖ **THEN THE JOINT RULING — -178 AND -179 ARE ONE DECIDABLE UNIT.** -179 is -178's evidence and says so **in prose, because the numbering cannot carry it** (PENDING-145). The ruling covers **unit · window · recurrence · predicate · seeding**. ⚠ **Seeding has grown a SECOND HALF, new on 09-04:** preservation has **permanently diverged the two stores** — 11 files exist only in the archive — so the question is no longer only *what N* but **over which store**, and **the trigger reads LIVE while any honest grading of a post-08-07 population must read PRESERVED.** Steward's recorded positions: **agrees with -179's option (c)** (a mumble that declares itself cannot be misread by a marker coincidence) **and with its refusal to build it now**. -> 🔑 **THE DISCRIMINATOR WAS A COINCIDENCE, AND THE GATE IS WHAT CAUGHT IT.** The whole repair plan rested on *"human_turns() already exists and is controlled — this is wiring, not classifier-building."* **False.** Against ground truth from the fool's own prompt text: **must-detect 22/24, must-not-flag 35/41.** It skips slash-command markers, and a mumble inherits those markers **only when the session it quoted happened to contain one** — **the 2 leaks are exactly the 2 marker-free mumbles.** ⚠ **`0` never meant "mumble"; it means "nobody spoke", which is equally true of an unattended real session** (`b7e7eb39`, PENDING-172). **No repair made, no replacement built** — three controls passed and a fourth broke, so the finding is **the control set**: all three tested the question the function was *for*, none the question it was *reused* for. **That lesson generalizes past this function** (steward, 09-04). -> ⚠ **THE HANDOVER DID NOT IMPROVE THE FIX; IT PREVENTED IT.** Preservation first (it expires), site-1 excluded on receipt, repair gated behind three read-only checks. Left to my own plan I would have written a positive control for a *fixture* and wired a broken predicate into three more sites, all of it green. -> 📌 **MEASURED, AND THE DIRECTION HAD BEEN RECORDED BACKWARDS:** N-now **65/84** — **41 real + 24 mumble (36.9%)**. The index had carried *"44, DOWN 7, shedding faster than it gains"*; it is **rising fast and for the wrong reason**. Corrected record-only (`c150bdf`, both remotes verified). -> 📌 **STEWARD OWES:** the joint -178/-179 ruling · the **archive remote question** (144 MB; full transcripts = everything ever typed) · `~/.claude/agents` under version control (**before anything else edits it**) · the **moratorium decision** · PENDING-171 · -160 · -168 · the §5 regrade (eighth session). +> 🔴 **NEXT SESSION — TWO INDEPENDENT ACTS, UNBUNDLED (jurist correction 2026-09-04; the steward's original order was git-init first).** They touch different files and neither depends on the other; **serializing them puts the deadline behind the deliberation.** +> **(A) FIRST — suspend automatic grading at `trigger_fired()`.** This is the act with a **firing distance**: N=65 against 84, **19 away, 13 net in three days**. ⚠ **NOT a repair, NOT a filter, NOT -178 option (b)** — it changes nothing about what the counter counts, so the site-1 exclusion survives intact. ⚠ **IT MUST CARRY A REPLACEMENT BOUND IN THE SAME ACT.** REVIEWED-123 cond. 2 installed *grading at 84* as the freeze's bound; suspending grading **removes exactly that bound** and turns a bounded hold into an open one. Tie the replacement to the joint ruling or to a working session predicate; **the 2026-09-16 report obligation survives either way.** ⚠ Bites **OWED-5**, whose discharge is nowlong-coupled to a ladder-retrieval trial. +> **(B) INDEPENDENTLY — `git init` `~/_Dev/claude-transcript-archive`** (144 MB, no repo, no remote, no second copy; **11 transcripts exist there and nowhere else**). ⚠ **A steward call** — full transcripts are everything ever typed. Until it happens `preserve-transcripts.py:11`'s "git-tracked location" stays false, **which is the correct state for a docstring describing a thing that is not true yet.** +> ⚖ **THEN THE JOINT RULING — -178 AND -179 ARE ONE DECIDABLE UNIT.** -179 is -178's evidence and says so **in prose, because the numbering cannot carry it** (PENDING-145). Covers **unit · window · recurrence · predicate · seeding**. ⚠ **Seeding grew a SECOND HALF:** preservation **permanently diverged the two stores** (11 archive-only), so the question is **over which store**, not only what N — **the trigger reads LIVE; honest grading of a post-08-07 population must read PRESERVED.** Steward agrees with **-179 option (c)** and with **not building it now**. +> 🔑 **THE DISCRIMINATOR WAS A COINCIDENCE — AND THE GATE'S *POSITION* HELD, ITS *CONTENT* DID NOT.** `human_turns()` scores **must-detect 22/24, must-not-flag 35/41**; it skips slash-command markers, and a mumble inherits them **only when the session it quoted had one** — the 2 leaks are exactly the 2 marker-free mumbles. ⚠ **`0` never meant "mumble"; it means "nobody spoke"**, equally true of an unattended session. ⚠ **BUT: gate 2a as SPECIFIED was one arm, one transcript, expected 0 — run as written it GREENS (22/24 return 0).** The finding came from **replacing the specification** with independent whole-population ground truth plus an unrequested second arm. **"Follow the handover" is the wrong lesson; "a gate's existence bought the chance, improving its specification caught it" is the right one.** +> ⚠ **THE FAILING SELFTEST CONTROL DOES NOT TEST ITS OWN CLAIM** (measured live 09-04). Slice = **1 real + 12 mumbles**; verdict `wrapped` = **1 real + 4 MUMBLES**. Predicate `"wrapped" in _v` is **satisfiable by mumbles alone**, so it would pass with zero real sessions. **OWED-1's wrong-subject family, inside the control meant to be evidence about mumbles.** ⚠ **The date of its first failing run is STILL OPEN** — the archive reconstruction is not sound for it (snapshot mtimes; `wrap_events()` not replayed). *"Intermittent" was a framing substituted for the question.* +> 📌 **STEWARD OWES:** the joint -178/-179 ruling **with a replacement bound** · the archive remote question · `~/.claude/agents` under version control (**before anything else edits it**) · **the moratorium — now 64 open items, and it is shaping filing in BOTH directions (one finding withheld, one filed under protest), the worst state for an undecided rule** · PENDING-171 · -160 · -168 · the §5 regrade (eighth session). -- [Session 2026-09-04 — the discriminator was a coincidence](session-2026-09-04-the-discriminator-was-a-coincidence.md) — gate 2a failed and the repairs correctly never happened; PENDING-179 filed as an item (not a -178 addendum, per -145's suppression mechanism); OWED-5 queued; the transcript archive found unbacked-up while its own script claims otherwise. **NEXT: the two steward-set acts, then the joint ruling.** +- [Session 2026-09-04 — the discriminator was a coincidence](session-2026-09-04-the-discriminator-was-a-coincidence.md) — gate 2a failed and the repairs correctly never happened; PENDING-179 + AMENDMENT 1 (jurist corrections: gate content vs position · 2c's narrowing limit · the selftest's wrong subject · the suspension's missing bound · unbundling). **NEXT: (A) suspend grading with a replacement bound; (B) git init, independently.** ## 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). diff --git a/claude/memory/knowledge-graph.jsonl b/claude/memory/knowledge-graph.jsonl index 5c85163..c7902b6 100644 --- a/claude/memory/knowledge-graph.jsonl +++ b/claude/memory/knowledge-graph.jsonl @@ -779,3 +779,7 @@ {"subject": "the rule 'a null search is evidence about the QUERY'", "predicate": "prevention", "object": "STOPPED A VACUOUS PASS FROM CERTIFYING A BROKEN DISCRIMINATOR, 2026-09-03. The rule was banked 2026-08-31 after four name-search errors in two sessions -- a different failure class entirely (reporting 'you don't have X' from a filename search). Here it fired on a control's empty denominator and prevented a broken predicate being wired into three further consumer sites. A lesson banked from one class stopping another is the transfer signature.", "valid_from": "2026-09-04", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-09-04-the-discriminator-was-a-coincidence.md", "extracted_at": "2026-09-04"} {"subject": "~/_Dev/claude-transcript-archive", "predicate": "is-not-version-controlled", "object": "NO .git, no parent repo, 144 MB, single copy on one disk -- while preserve-transcripts.py:11 states it copies transcripts 'to a git-tracked location so the population stops shrinking'. 11 transcripts have been pruned at source and exist ONLY here. PENDING-144's class (substrate claims inside governance scripts checked by nothing) at the site where it costs most, because the docstring is what a reader consults to decide whether the evidence is safe. Steward directed a git init as the next session's first act.", "valid_from": "2026-09-04", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-09-04-the-discriminator-was-a-coincidence.md", "extracted_at": "2026-09-04"} {"subject": "the ladder trial counter", "predicate": "composition", "object": "N-now 65 of 84 measured 2026-09-03 = 41 real sessions + 24 Tarbuckle mumbles (36.9% machine chatter). Rising fast. The prior record in MEMORY.md said 44 and falling ('shedding faster than it gains') -- wrong in the number and backwards in the direction; corrected record-only. Also: preservation has permanently diverged the two stores (11 archive-only files), so grading must now specify WHICH STORE, not only what N -- the trigger reads live, honest grading of a post-08-07 population must read preserved.", "valid_from": "2026-09-04", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-09-04-the-discriminator-was-a-coincidence.md", "extracted_at": "2026-09-04"} +{"subject": "claude-code", "predicate": "drift-pattern", "object": "CREDITED THE GATE'S CONTENT WHEN ONLY ITS POSITION HELD. The wrap recorded 'the handover's ordering, at every point it was load-bearing.' Gate 2a AS SPECIFIED was one arm, one transcript, expected 0 — run as written it greens, because 22 of 24 mumbles return 0. The finding existed only because the executor replaced the specification with independent whole-population ground truth and added an unrequested must-not-flag arm. Jurist-caught 2026-09-04. The comfortable lesson ('follow handovers') would have had the next session run the next gate as written.", "valid_from": "2026-09-04", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-09-04-the-discriminator-was-a-coincidence.md", "extracted_at": "2026-09-04"} +{"subject": "claude-code", "predicate": "drift-pattern", "object": "A BETTER-FOUNDED FRAMING SUBSTITUTED FOR AN UNANSWERED QUESTION, TWICE. Asked for the DATE of the selftest's first failing run (a start before 2026-08-25 would mean the mumble is not the only cause), the executor returned 'the defect is intermittent, not permanent' — true, better-founded than the prior claim, and not the question. Jurist-caught 2026-09-04. The date remains unestablished; the archive reconstruction is unsound for it (snapshot mtimes, wrap_events not replayed).", "valid_from": "2026-09-04", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-09-04-the-discriminator-was-a-coincidence.md", "extracted_at": "2026-09-04"} +{"subject": "wake-digest.py selftest control 'a real session reads as WRAPPED end-to-end'", "predicate": "does-not-test-its-claim", "object": "WRONG-SUBJECT, measured live 2026-09-04. Slice _tx[-14:-1] holds 1 real session and 12 mumbles; verdict 'wrapped' comes from 1 real session and 4 MUMBLES. The predicate is \"wrapped\" in _v, satisfiable by mumbles alone, so the control would PASS with zero real sessions in the slice. Its label claims a property of real sessions; its test asks whether any transcript whatever drew the verdict. This also supersedes the 2026-09-03 origin claim that all 13 slice members were mumbles and that the cause was mumble-displacement.", "valid_from": "2026-09-04", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-09-04-the-discriminator-was-a-coincidence.md", "extracted_at": "2026-09-04"} +{"subject": "suspending automatic grading at trigger_fired()", "predicate": "removes-the-freeze-bound", "object": "REVIEWED-123 condition 2 installed 'grading at 84' as the bound on the ladder freeze, on the reasoning that a hold with no expiry and no visible distance to expiry becomes permanent. Suspending automatic grading removes exactly that bound and converts a bounded hold into an open one. The suspension ruling must install a replacement bound in the same act — tied to the joint -178/-179 ruling or to a working session predicate — with the 2026-09-16 report obligation surviving either way. Jurist-raised 2026-09-04, self-corrected against their own earlier recommendation.", "valid_from": "2026-09-04", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-09-04-the-discriminator-was-a-coincidence.md", "extracted_at": "2026-09-04"} diff --git a/claude/memory/session-2026-09-04-the-discriminator-was-a-coincidence.md b/claude/memory/session-2026-09-04-the-discriminator-was-a-coincidence.md index f5907b1..c50ced5 100644 --- a/claude/memory/session-2026-09-04-the-discriminator-was-a-coincidence.md +++ b/claude/memory/session-2026-09-04-the-discriminator-was-a-coincidence.md @@ -220,3 +220,78 @@ computable without changing any of them. ⚠ If the answer is zero, OWED-5 is a accident and should be labelled that way rather than carried as a general finding. If it is more than zero, then some number of currently-green controls have never tested anything — and nobody knows which, because a vacuous pass and a real pass print the same word. + +--- + +## ADDENDUM 1 — after the wrap: the jurist corrects the record, and one claim in it was wrong + +⚠ **Appended 2026-09-04 after the session record was written, committed and pushed.** The jurist read +the wrap and returned five corrections, two operational. Filed into `PENDING-179 AMENDMENT 1`; the +substance is repeated here because this file is what the next wake reads. + +### The correction that matters most — I gave credit to the wrong thing + +The wrap said *"the handover's ordering, at every point it was load-bearing."* **The gate's POSITION +held; its CONTENT did not.** Gate 2a as specified was *one arm, one transcript, expected 0*. **Run as +written it greens** — 22 of 24 mumbles return 0, so a single sampled mumble passes with ~92% +probability and the repair proceeds. The finding exists because I **replaced the specification**: +ground truth taken independently of the function under test, across the whole population, plus a +`must-not-flag` arm nobody asked for. + +⚠ **"Handovers are load-bearing, follow them" is the wrong lesson and the more comfortable one.** +*A gate's existence bought the chance to catch this; improving on the gate's specification is what +caught it.* A session inheriting the comfortable version runs the next gate as written. + +### A NEW measurement that supersedes this session's own origin claim + +The 2026-09-03 record said the failing selftest sampled 13 transcripts and *"all thirteen are +Tarbuckle mumbles"*, with mumble-displacement as the cause. **Measured live on the actual slice:** + +- **1 real session, 12 mumbles** — not 13 mumbles. +- **verdict `wrapped`: 1 from the real session, 4 FROM MUMBLES.** +- the predicate is `"wrapped" in _v` — **satisfiable by mumbles alone.** It would pass with **zero** + real sessions in the slice. + +⚠ **Its label claims "a real session reads as WRAPPED end-to-end"; its test asks whether any +transcript whatever drew that verdict.** That is **OWED-1's wrong-subject family, inside the control +that was supposed to be evidence about mumbles.** + +### And the question I still have not answered + +The jurist asked for **the date of the control's first failing run**, because a start predating +2026-08-25 would mean the mumble is not its only cause. A reconstruction over the preserved archive +found no date from 08-20 to 09-04 on which the slice held zero real sessions — **but that +reconstruction is not sound for the purpose**: manifest `source_mtime` is snapshot-time rather than +current, and the verdict also depends on `wrap_events()` git history that was not replayed. +⚠ **OPEN, not answered.** The wrap's *"intermittent"* was a better-founded description **substituted +for the question** — the same move twice, and naming it is the correction. + +### Two operational changes for the next session + +1. **UNBUNDLE the two acts, suspension first.** The wrap's own *decisions deferred* records the + `git init` as a **steward call**, so it may wait days — while the suspension is the act with a + **firing distance** (N=65/84, 19 away, 13 net in three days). Different files, no dependency; + serializing puts the deadline behind the deliberation. +2. **THE SUSPENSION MUST CARRY A REPLACEMENT BOUND IN THE SAME ACT.** REVIEWED-123 cond. 2 installed + *grading at 84* as the freeze's bound — *"a hold with no expiry and no visible distance to expiry + is how a temporary freeze becomes a permanent one."* Suspending grading **removes exactly that + bound.** Tie the replacement to the joint ruling or to a working session predicate; the 09-16 + report obligation survives either way. ⚠ Bites **OWED-5**, now long-coupled to a ladder trial. + +### Also carried, and also mine to have missed + +**Gate 2c's census limitation is in the wrap but was not in PENDING-179** — which is what gets ruled +on. It was narrowed three times, and repeated narrowing can terminate by confirming the sites the +predicate was built around. Now in AMENDMENT 1; **read 2c's "no additional consumers" as the weakest +of the three findings.** + +**The moratorium is still undecided at 64 open items**, and it is shaping filing in **both** +directions — one finding withheld on 09-03, one filed under protest on 09-03. That is the worst +state for an undecided rule to sit in. + +### What the jurist credited, recorded because credits are evidence too + +The vacuous `0/0` was caught by a **standing rule** (*a null search is evidence about the query*), +not by luck — the class was instrumented. Declining to edit the false docstring, with the reason +given. And OWED-5's posture: a rule resting on one observed instance, carrying a stated test that +could retire it as an accident. diff --git a/claude/memory/session-ledger-2026-09-03.md b/claude/memory/session-ledger-2026-09-03.md index 6ed31f2..b185aea 100644 --- a/claude/memory/session-ledger-2026-09-03.md +++ b/claude/memory/session-ledger-2026-09-03.md @@ -126,3 +126,26 @@ type: feedback ## Bypasses *(none)* + +## Returns [appended 2026-09-04, post-wrap — jurist review] + +- **2026-09-04 — I CREDITED THE GATE'S CONTENT WHEN ONLY ITS POSITION HELD.** Jurist-caught. Gate 2a + as specified is one arm, one transcript, expected 0; **run as written it greens** (22/24 mumbles + return 0). The catch came from replacing the specification, not from following it. ⚠ The wrap's + version was the comfortable one and would have taught the next session to run gates as written. +- **2026-09-04 — I SUBSTITUTED A BETTER FRAMING FOR AN UNANSWERED QUESTION.** Asked for the *date* of + the selftest's first failing run; returned *"intermittent, not permanent"*. True, better-founded, + and not the question. ⚠ Second instance of the same move in two days. +- **2026-09-04 — MEASURING THE SLICE SUPERSEDED MY OWN ORIGIN CLAIM.** 09-03 recorded "all 13 are + mumbles". Live: **1 real + 12 mumbles, and 4 MUMBLES read as `wrapped`** — the control's predicate + is satisfiable by mumbles alone, so it does not test the claim on its label. Wrong-subject family, + inside the control meant to be evidence about mumbles. + +## Authorization moves [appended 2026-09-04] + +- **PENDING-179 AMENDMENT 1 filed** before any ruling (so not the -145 suppression case): the five + jurist corrections plus the new slice measurement. +- ⚠ **Recorded as a condition, not a proposal: the suspension must carry a replacement bound.** + REVIEWED-123 cond. 2's bound *is* grading at 84; suspending grading removes it. +- **Unbundled the two next-session acts** in the record, suspension first, with the steward's original + order named — the reorder is jurist-proposed and awaits steward confirmation, not assumed. diff --git a/claude/memory/session-ledger-2026-09-04.md b/claude/memory/session-ledger-2026-09-04.md new file mode 100644 index 0000000..e69de29