[HARDENING] The mumble discriminator fails its own must-detect gate; repairs stopped at the gate (PENDING-179)
The 2026-09-03 repair plan rested on one claim: that human_turns() is an
existing, controlled discriminator, and wiring it into four transcript
consumer sites was plumbing rather than classifier-building.
Tested against ground truth taken from the fool's own prompt text — not from
the function under test — the claim is false. 24 known mumbles, 41 known
non-mumbles, out of 65 transcripts:
must-detect 22/24 two mumbles read as human-attended
must-not-flag 35/41 and one "failure" is correct — b7e7eb39 is the
unattended session of 2026-08-31, which genuinely
has no human turn
human_turns() == 0 never meant "mumble". It means "nobody spoke", which is
equally true of an unattended real session. A mumble embeds the previous
session's text and so inherits its slash-command markers; it is excluded
only when the session it quoted happened to contain one. The two leaks are
exactly the two marker-free mumbles. Coincidence, not design.
No repair was made at any site, and no replacement discriminator was built.
Three controls passed and a fourth broke: all three test the question the
function was built for, none could see the question it was being reused for.
A successor written now inherits whatever made the first set look sufficient.
Also here, per the 2026-09-03 handover:
- step 0 preservation ran: 76 transcripts, read-back PASS, 11 of them
already pruned at source and surviving only in the archive
- gate 2b: the composition claim in PENDING-178 stands (11 mumbles,
~a fifth, on 08-31). Two terms do not close and are reported as an open
disagreement, not a correction — the reconstruction is a demonstrated
lower bound and -178 enumerated live
- gate 2c: five sites in four files; -178's [HARDENING] scope holds
- MEMORY.md record-only arithmetic correction: N-now 44 -> 65 measured,
composition 41 real + 24 mumble added, direction reversed (it is rising,
not shedding), stale :331 pointer corrected to :513
Filed as an item rather than a PENDING-178 addendum on PENDING-145's
mechanism: a ruling claims a number, so an addendum would be suppressed the
moment -178 is ruled. The undecided filing moratorium is disclosed inside
the item.
governance-drift-check.py:513 excluded on receipt and not examined.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X3L79vgAnt1x2kxvf23Qt7
This commit is contained in:
co-authored by
Claude Opus 5
parent
e5db321d6f
commit
c150bdff17
@@ -6,3 +6,4 @@
|
||||
{"date": "2026-08-31", "thread": "the 270 uncounted census candidates — decisions that never reached the governance record; prior-art enumeration and register silence", "terms": ["uncounted", "census", "candidates", "decisions", "never", "reached", "governance", "record", "prior-art", "enumeration", "register", "silence"], "candidates": 472, "returned": [{"path": "~/.claude/projects/-Users-davidglidden/memory/session-2026-06-04-evening-whisper-migration-ikb-english-enforcement.md", "date": "2026-06-04", "matched": ["census", "decisions", "never", "governance", "record", "enumeration", "register", "silence"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/session-ledger-2026-04-24.md", "date": "2026-04-24", "matched": ["candidates", "decisions", "reached", "governance", "record", "register", "silence"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/session-ledger-2026-07-19.md", "date": "2026-07-19", "matched": ["census", "candidates", "never", "governance", "record", "enumeration", "register", "silence"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/session-2026-05-17-stage-d-matrix-three-masters-questions-sources-section.md", "date": "2026-05-17", "matched": ["candidates", "decisions", "never", "record", "enumeration", "register", "silence"]}, {"path": "~/Library/Mobile Documents/iCloud~md~obsidian/Documents/David, root-and-branch/08. Notes/Children/01. Lune/The necessary distance.md", "date": "2025-07-30", "matched": ["never", "reached", "record", "silence"]}]}
|
||||
{"date": "2026-09-01", "thread": "the 322 unread prior-art census candidates: which mechanism decisions never reached the governance register, and what criterion decides which SHOULD have", "terms": ["unread", "prior-art", "census", "candidates", "mechanism", "decisions", "never", "reached", "governance", "register", "criterion", "decides", "should"], "candidates": 503, "returned": [{"path": "~/.claude/projects/-Users-davidglidden/memory/session-ledger-2026-04-18.md", "date": "2026-04-18", "matched": ["candidates", "mechanism", "decisions", "never", "governance", "register", "should"]}, {"path": "~/Library/Mobile Documents/iCloud~md~obsidian/Documents/David, root-and-branch/06. Projects/Cabaret/Cabaret Project — Founding Document.md", "date": "2026-04-04", "matched": ["candidates", "mechanism", "decisions", "never", "governance", "register", "decides", "should"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/session-ledger-2026-06-05.md", "date": "2026-06-05", "matched": ["unread", "census", "mechanism", "decisions", "never", "governance", "register"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/session-2026-06-06-evening-arc-renderings-imprint-be-laundromat.md", "date": "2026-06-06", "matched": ["census", "candidates", "mechanism", "decisions", "never", "register", "criterion", "should"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/session-ledger-2026-04-27.md", "date": "2026-04-27", "matched": ["candidates", "mechanism", "decisions", "never", "register", "criterion", "should"]}]}
|
||||
{"date": "2026-09-02", "thread": "the fr cell's last two steps — PENDING-134 disclosure and ratio_A_to_B re-derived once, stratum amendments", "terms": ["cell's", "last", "steps", "pending", "disclosure", "ratio", "re-derived", "once", "stratum", "amendments"], "candidates": 404, "returned": [{"path": "~/.claude/projects/-Users-davidglidden/memory/diary-export-2026-05-05.md", "date": "2026-05-05", "matched": ["last", "steps", "pending", "ratio", "once", "amendments"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/session-2026-05-23-l1-co-author-territory-survey-and-attention-metaphor.md", "date": "2026-05-23", "matched": ["last", "pending", "ratio", "once", "amendments"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/project-bio-rewrite-pending-multilanguage-spec.md", "date": "2026-06-06", "matched": ["last", "pending", "disclosure", "ratio", "once"]}, {"path": "~/Library/Mobile Documents/iCloud~md~obsidian/Documents/David, root-and-branch/08. Notes/Claudia Grice/03 Benefits & Pensions/CPP-OAS.md", "date": "2025-05-01", "matched": ["last", "pending", "once"]}, {"path": "~/Library/Mobile Documents/iCloud~md~obsidian/Documents/David, root-and-branch/08. Notes/Notebook Preservation & Archiving.md", "date": "2025-08-27", "matched": ["last", "ratio", "once"]}]}
|
||||
{"date": "2026-09-03", "thread": "the fr cell's last two steps: PENDING-134 disclosure then ratio_A_to_B re-derived once; wake and wrap tool reliability; transcript directory as proxy for a session", "terms": ["cell's", "last", "steps", "pending", "disclosure", "ratio", "re-derived", "once", "wake", "wrap", "tool", "reliability", "transcript", "directory", "proxy", "session"], "candidates": 696, "returned": [{"path": "~/.claude/projects/-Users-davidglidden/memory/session-ledger-2026-04-27.md", "date": "2026-04-27", "matched": ["steps", "pending", "ratio", "once", "wake", "wrap", "tool", "transcript", "session"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/session-2026-05-23-l1-co-author-territory-survey-and-attention-metaphor.md", "date": "2026-05-23", "matched": ["last", "pending", "ratio", "once", "wake", "wrap", "tool", "reliability", "directory", "session"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/session-2026-06-06-seb-reply-arc-mindfabric-rootcause-basic-memory-trial.md", "date": "2026-06-06", "matched": ["last", "pending", "ratio", "wake", "wrap", "tool", "reliability", "proxy", "session"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/session-2026-04-30-arc-publications-and-mempalace-mps-pause.md", "date": "2026-04-30", "matched": ["last", "steps", "pending", "disclosure", "ratio", "once", "wrap", "tool", "reliability", "transcript", "directory", "session"]}, {"path": "~/.claude/projects/-Users-davidglidden/memory/diary-export-2026-05-05.md", "date": "2026-05-05", "matched": ["last", "steps", "pending", "ratio", "once", "wake", "wrap", "tool", "session"]}]}
|
||||
|
||||
@@ -35,7 +35,7 @@ permalink: claude-memory/memory
|
||||
**Loud trigger — pointer suffices**
|
||||
- [Chamber work: ground in constitution + charter + runbook FIRST](feedback-chamber-work-ground-in-constitution-charter-runbook.md) — **any chamber work *or talk about it*** begins there (incl. `reanchor:`). Repo CLAUDE.mds are pointers, not state; corpus claims come from a self-tested tool, never a hand grep.
|
||||
- [Governance files are dotfiles symlinks](reference-governance-files-are-dotfiles-symlinks.md) — Edit/Write refuse to write through a symlink, so **edit the real `~/dotfiles/…` path** when appending — **`PENDING`/`REVIEWED` only.** ⚠ That refusal is a tool artifact, **not** a permission check, and this note is the documented route past the only friction guarding the constitution (PENDING-107). **`~/CLAUDE.md`/`~/REVIEWED.md`/L2 = `[ESCALATE]`, steward's hand — a jurist sign-off does not authorize one.**
|
||||
- [Verification ladder](reference-verification-ladder.md) — the named instruments; reach for the gate the claim's shape demands instead of re-deriving one. ⚠ **FROZEN — REVIEWED-123 (2026-08-17): no additions, rewordings, removals or reorderings, from ANY source, whatever its authorization**, until the trial is graded (N-now **44/84 as of 2026-08-31** — *DOWN 7 from 51 on 08-25, and the direction is the point: the window is shedding faster than it gains, so grading may RECEDE rather than approach; the counter is a 30-day ROLLING WINDOW per PENDING-147, so it rises and falls as transcripts age in and out. Re-measure, never relay: `len(glob('~/.claude/projects/-Users-davidglidden/*.jsonl'))`, the trial's own method at `governance-drift-check.py:331`*). Entries earned meanwhile queue in **PENDING-141's owed-entries list** (4 rows). Reading it is unaffected — that is the point of the freeze.
|
||||
- [Verification ladder](reference-verification-ladder.md) — the named instruments; reach for the gate the claim's shape demands instead of re-deriving one. ⚠ **FROZEN — REVIEWED-123 (2026-08-17): no additions, rewordings, removals or reorderings, from ANY source, whatever its authorization**, until the trial is graded (N-now **65/84, measured 2026-09-03** — *and the direction has REVERSED: 52 on 08-31, 65 today, **rising fast and rising for the wrong reason**. Composition, measured the same day by the fool's own prompt signature: **41 real + 24 mumble (36.9%)**. The earlier reading here — 44/84, "DOWN 7 from 51", "shedding faster than it gains" — was **wrong in the number and backwards in the direction**; corrected 2026-09-03 as a record-only arithmetic fix (PENDING-179 gate 2b). The counter is still a 30-day ROLLING WINDOW per PENDING-147, so it can fall; it is not falling now. ⚠ **Report the COMPOSITION with the count** — a bare 65 reads as 65 sessions and roughly a third is machine chatter (PENDING-178). Re-measure, never relay: `len(glob('~/.claude/projects/-Users-davidglidden/*.jsonl'))`, the trial's own method at `governance-drift-check.py:513`*). Entries earned meanwhile queue in **PENDING-141's owed-entries list** (4 rows). Reading it is unaffected — that is the point of the freeze.
|
||||
- [Skill-harvest register](skill-harvest-register.md) — canonical home for proposed skills (governed analog of PENDING.md for tooling); `/wrap-up` §1.6 proposes, steward authorizes. **Rebuilt 2026-08-07** from the archive: **154 live proposals**, grouped by kind, each with an exact `archive:L###` pointer. ⚠ The 2026-08-01 compaction was *lossless but illegible* (55 scraped header rows, 95% of cells cut mid-word) — the count it advertised, 177, was never the number. ⚠ **THE STROKE-2 BATCH IS AUTHORIZED BUT SHOULD NOT BE EXECUTED YET — PENDING-141.** 41 rows stamped `S2` are authorized (2026-07-19, execution not a ruling) and 22 are `S2?` (unsettled). **BUT appending them triples the ladder from 20 entries WHILE a pre-registered trial is measuring whether the ladder is reached** (baseline 14%, graded at 84 transcripts). Ladder size is an uncontrolled variable in that design, so executing the authorized batch would confound the only check behind REVIEWED-95's causal claim. **⚖ RULED — REVIEWED-123 (2026-08-17): AUTHORIZED (a) HOLD, on six conditions, and the freeze is GENERAL rather than S2-specific.** Grading does NOT authorize the append — the batch returns for a *ruling*. Report **N-now at every wake** until lifted; 30-day review is a live `DEFERRED-DECISION`. ⚠ Filing new proposals now requires a **declared firing moment** (`/wrap-up` §1.6); one that cannot name it is documentation and must say so.
|
||||
- [Copy-paste-clean governance drafts](feedback-governance-drafting-copy-paste-clean.md) — draft PENDING/REVIEWED blocks as plain fenced markdown; display formatting leaks into the placed record.
|
||||
- [Verify-before-compose hook](feedback-verify-before-compose-hook.md) — chamber constitutional writes are BLOCKED without `<!-- GROUNDED-IN: … -->` + verbatim Grounding. Don't fight the block.
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
---
|
||||
name: Session Ledger 2026-09-03
|
||||
description: Practice-of-return ledger maintained by /symmetria — returns, open horizons, recalibrations, authorization moves, sub-agent dialogues, bypasses.
|
||||
type: feedback
|
||||
---
|
||||
|
||||
# Session Ledger — 2026-09-03
|
||||
|
||||
> ⚠ Note on the file itself: this ledger was ABSENT when the second session of 2026-09-03 woke,
|
||||
> though a full session had already run and wrapped 2.2 h earlier. Symmetria was not init'd that
|
||||
> session (or was and did not write). The wrap record used ledger-shaped language ("Instruments: 2
|
||||
> run · K = 0") with no ledger behind it. **A ledger that only exists when someone remembers to
|
||||
> invoke it is not a record of returns; it is a record of invocations.** Kin to PENDING-168.
|
||||
|
||||
## Returns
|
||||
|
||||
- **2026-09-03T~14:0x — INHERITED CLAIM FALSIFIED AT THE WAKE, BY RUNNING IT RATHER THAN RELAYING IT.**
|
||||
The prior wrap recorded the `wake-digest.py` selftest as failing and predicted it would *"fail on
|
||||
every run from now on"* (0 of 13 sample transcripts wrapped; all 13 Tarbuckle mumbles). Re-run at
|
||||
this wake: **5 of 13, SELFTEST PASS.** The prediction was falsified in 2.2 hours. Corrected
|
||||
statement of the defect: the control's verdict is a **function of the mumble rate in a rolling
|
||||
13-transcript window**, so it is *intermittent*, not permanent — a harder failure to notice than
|
||||
the one recorded, because it will read clean on some runs and dirty on others with no change in
|
||||
what it is measuring. Return caught by the standing discipline *prove the instrument before
|
||||
trusting a clean line* — applied here to a DIRTY inherited line, which is the same rule run
|
||||
backwards and was not obvious.
|
||||
|
||||
- **2026-09-03T~14:0x — measured N-now rather than relaying it.** MEMORY.md carries 44 (2026-08-31);
|
||||
the prior wrap's addendum carries 52. Actual, by the trial's own method: **65**. Then went one step
|
||||
past the number the freeze obliges me to report, and censused its composition with the controlled
|
||||
discriminator (`human_turns`): **31 of 65 are mumbles (48%), 34 real, 0 unreadable.** The bare
|
||||
count would have been true and useless; the composition is the finding.
|
||||
|
||||
|
||||
- **2026-09-03T~15:0x — THE QUERY THAT FOUND NOTHING, AND THE VACUOUS PASS IT PRODUCED.**
|
||||
Building 2a's ground truth I searched for the Tarbuckle prompt signature `"You are Tarbuckle.
|
||||
Your character..."` — taken from `tarbuckle-invoke.py`, the file I had just read. It matched
|
||||
**0 of 65** transcripts, and the gate duly reported **`PASS (0/0)`**. A green light with an
|
||||
empty denominator. Caught by the standing rule *a null search is evidence about the QUERY*;
|
||||
opening a transcript showed the real signature is `"You are writing ONE line as Tarbuckle"` — a
|
||||
DIFFERENT fool surface (`tarbuckle-mumble.py`/`-wrap`/`-seam`, three scripts the inherited site
|
||||
census never named). ⚠ **The flag that fired is §3's *a search query shaped by what the session
|
||||
wants to find*.** Had I accepted the pass, I would have reported the discriminator sound and
|
||||
wired a broken predicate into three more sites.
|
||||
|
||||
- **2026-09-03T~15:1x — FRAME-INHERITANCE, and it is the session's whole finding.**
|
||||
`human_turns()` carries three passing controls. All three test the question it was built for
|
||||
("did an executor run unattended?"). The plan reused it for a different question ("is this a
|
||||
mumble?") and inherited the controls' authority across that gap. Re-run at the scope of the
|
||||
extension: **22/24 must-detect, 35/41 must-not-flag — FAIL both ways.** The exclusion works only
|
||||
when a mumble happens to quote a slash command; the 2 leaks are exactly the 2 marker-free
|
||||
mumbles. ⚠ **`0` never meant "mumble" — it means "nobody spoke", which is also true of a
|
||||
genuinely unattended session (`b7e7eb39`, PENDING-172).**
|
||||
|
||||
## What held [appended]
|
||||
|
||||
- **Stopped at the gate instead of building the replacement.** The handover's instruction and the
|
||||
reasoning behind it were both honoured: three controls passed and a fourth broke, so the finding
|
||||
is about the control SET. Writing a successor discriminator now would inherit whatever made the
|
||||
first set look sufficient. Sites 2-4 stay shut.
|
||||
- **Ran 2b and 2c anyway**, because 2a's failure does not gate them and they answer different
|
||||
questions. 2b's composition term closed; 2c's scope held.
|
||||
- **Did not assert 2b's gap against -178.** My reconstruction disagrees by 4 files and is a
|
||||
demonstrated lower bound (preservation ran twice only). Reported as an open disagreement with
|
||||
-178's method named as the better-positioned one, rather than as a correction.
|
||||
- **Narrowed the census three times and said so.** Repeated narrowing can end by confirming the
|
||||
five sites it was built around; the negative control and the explicit blind-spot statement are
|
||||
what keep that honest.
|
||||
|
||||
## Authorization moves [appended]
|
||||
|
||||
- **PENDING-179 FILED** — as an item, not a -178 addendum, on PENDING-145's demonstrated mechanism
|
||||
(a ruling claims a NUMBER; an addendum under a to-be-ruled number is suppressed on arrival).
|
||||
⚠ The undecided moratorium is disclosed inside the item, with yesterday's contrary reasoning
|
||||
preserved rather than overridden.
|
||||
- **MEMORY.md record-only arithmetic correction applied** (authorized by the handover, 2b): N-now
|
||||
44 -> **65 measured**, composition **41 real + 24 mumble** added, the "shedding faster than it
|
||||
gains" direction reversed, and the stale `governance-drift-check.py:331` pointer corrected to
|
||||
`:513` (`:331` is a register-check control, verified by reading both lines).
|
||||
- **NOT done, deliberately:** no repair at any site; `governance-drift-check.py:513` not examined,
|
||||
excluded on receipt; no replacement discriminator; nothing committed (the wrap owns that).
|
||||
|
||||
|
||||
- Did not answer the inherited literal question at the wake despite it being cheap to answer
|
||||
(`git log -p` on MEMORY.md). The wake's rule is to hold it open. Held.
|
||||
- Reported the thread-query null as a null, in one clause, rather than dressing six generic
|
||||
term-matches as findings.
|
||||
|
||||
## Open horizons
|
||||
|
||||
- **The steward-directed first work:** wire `human_turns()` into the transcript-as-session consumer
|
||||
sites. Positive control FIRST (yesterday's cost of skipping one: a false loss report within the
|
||||
hour). `tarbuckle-invoke.py:40` is SUSPECTED, unverified — verify before touching.
|
||||
- ⚠ **The 84 trigger is ~19 transcripts away and roughly half the counter is chatter.** The ladder
|
||||
freeze (REVIEWED-123) is measuring against a counter PENDING-178 says is mis-united. Time pressure
|
||||
is now real and was not when -178 was filed.
|
||||
- Steward owes: `~/.claude/agents` under version control (before anything else edits it) · the
|
||||
moratorium decision · `RE_ID` `[FIX]` · PENDING-171/-177/-178/-160/-168 · the §5 regrade.
|
||||
- Parked worker `acaabadf` — stopped, still carrying `--reply-on-resume`; respawn behaviour not
|
||||
established. Untouched.
|
||||
|
||||
## Confidence to recalibrate
|
||||
|
||||
- **Verified this session (ran it):** selftest 86→87 passing, 5 of 13 (`--selftest`) · N-now = 65
|
||||
(glob, the trial's own method) · mumble census 31/34/0 (`human_turns` over all 65) · dotfiles
|
||||
local + gitea + github all at `e5db321`, only dirt is this wake's own `thread-query-log.jsonl`
|
||||
append · governance drift 0 · pointers 407/0/0 · today's ledger absent before now.
|
||||
- **Inherited, NOT re-verified:** the four-site census in ADDENDUM 1 (grep-derived, read not re-run)
|
||||
· that `human_turns` is the right discriminator at every site (proven at one) · that
|
||||
`tarbuckle-invoke.py:40` is affected at all.
|
||||
- **Post-compression note:** context was cleared deliberately between the two sessions of 2026-09-03.
|
||||
Everything above marked "inherited" rests on the written record, not on continuity of working
|
||||
memory.
|
||||
|
||||
## Authorization moves
|
||||
|
||||
- Reaffirmed the prior session's own correction: the fix is **`[FIX]`, not `[PROPOSAL]`** — the
|
||||
control's label already states its predicate ("a real session reads as WRAPPED end-to-end"), so
|
||||
restoring that population repairs it against its existing spec. ⚠ Does **not** extend to changing
|
||||
what the `>=84` trigger *means* — that stays PENDING-178 / REVIEWED-123, steward's.
|
||||
|
||||
## Sub-agent dialogues
|
||||
|
||||
*(none)*
|
||||
|
||||
## Bypasses
|
||||
|
||||
*(none)*
|
||||
Reference in New Issue
Block a user