session 2026-08-20 coda: the open question failed its own test

Tested the question the wrap left, the same night. It is not answerable as
posed, and the reason is the finding: the corpus is 244 Symmetria ledger
entries, every one written by the executor about its own errors. Counting
them is mechanical; the corpus is testimony. The question satisfies
/wrap-up's prefer-the-checkable-form rule in letter and fails its purpose,
and was posed while quoting that rule.

Banked as feedback-checkable-question-over-self-authored-corpus, with the
test to apply before leaving any question: who authored the corpus it
reads, and would a different author have written it differently?

What the record does support, on a narrower query that turns on what
entries literally say: three events name a disclosed limit as the cause of
a correction, and across all 244 entries none attributes a catch to
difference of formation or bias. Constraint 6's mechanism is difference of
bias; the record's is disclosure of scope. Suggestive at n=3.

A secondary observable for input-dependence-01 follows from that — does
the Fool's output ever bound its own coverage — and is recorded as OFFERED
AND NOT TAKEN. It must go in before the jurist's gate or it is an
observable chosen after seeing the run's shape, and editing a live artifact
awaiting gate is the move this session spent the day refusing.

MEMORY.md compaction history relocated to the reference layer; headroom
restored from 296 to 941 bytes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JQKeKY9T9d95KpvHwwok8T
This commit is contained in:
David F Glidden
2026-08-20 23:53:01 +02:00
co-authored by Claude Opus 5
parent f687e0e972
commit 7b366eb646
5 changed files with 128 additions and 2 deletions
+6
View File
@@ -64,6 +64,12 @@ Split out of [MEMORY.md](MEMORY.md) on 2026-07-06 to keep the wake-loaded index
# Archived sessions + stable reference layer (relocated verbatim from MEMORY.md, 2026-07-06)
## MEMORY.md compaction history (relocated verbatim from MEMORY.md at the 2026-08-20 wrap; wake-value nil, kept for the measured ceiling it records)
*Compaction history: 2026-07-17 re-slimmed to one-liners, 20.5→17.1 KB. 2026-08-07 trim (steward-directed): 19.9→~15 KB by the fires-silently/loud-trigger split, plus `project-studium-engine.md` created to hold engine state MEMORY.md had been carrying inline. **⚠ MEASURED 2026-08-09: the harness read limit is 24.4 KB** (surfaced by the index-size hook), which answers the standing "unmeasured" caveat this line used to carry. 17.1 KB remains a prior achievement, NOT the ceiling. 2026-08-09 trim: Active Session block condensed 5.2→3.6 KB, 21.0→19.4 KB total (80% of the real limit). ⚠ Going below ~18 KB requires restructuring **Standing preferences** (9.4 KB, the largest section and explicitly the fires-silently set) — a proper task, not an end-of-day squeeze.*
## Archived (2026-08-20 — the fence, the vault spec and Trial 09 held; demoted on promote at the 2026-08-20 wrap)
> 🔑 **PULLING THREAD — THE FENCE. The deferral has EXPIRED: 2026-08-20 is the morning it named, and both shaping pieces have run.** ⚠ **The two, finally named** (this block carried "not yet named" for a day): **(1) the Obsidian vault spec** — ran all the way to a ratified v1.0.0 and two applied passes; **(2) Trial 09, the jester arm** — **PREPARED AND HELD, never executed.** One reshaping input arrived, one did not; whether either reshapes the fence is a steward call the record cannot make. Nothing in (A)/(B)/(C) has begun, so REVIEWED-122's binding order (answer key first, alone, hash recorded, before any implementation) is unharmed. ⚠ **Cost carried with eyes open:** the citation exposure behind PENDING-131 (c) has been live since 2026-08-10.
+3 -2
View File
@@ -27,6 +27,7 @@ permalink: claude-memory/memory
- [The central path — answerability, not purity](feedback-central-path-answerability-not-purity.md) — the contamination recursion is probably irresolvable, so **bind the claims, don't certify the parties**. Route by claim-type: *checkable* → produce the check + a falsifier; *judgment* → disclose standpoint in one line, decide, record; *undecidable* → name it open. **One layer, then act — never audit the audit.**
- [Notes are part of the work](feedback-notes-are-part-of-the-work-keep-footnotes-endnotes.md) — footnotes/endnotes are integral: KEEP+CONVERT (`<sup><a>`→`[^N]`), never drop on graduation.
- [One-shot instruments are proportionate](feedback-one-shot-instruments-are-proportionate.md) — a measurement answering a question **asked once** is NOT a directive violation; its counterfactual is an **assertion**, not a durable tool. The violation is **re-writing what's already banked** (rule of three → ladder). *Too few promoted*, not *too many built*.
- [A checkable question over a self-authored corpus](feedback-checkable-question-over-self-authored-corpus.md) — counting events in a record **I wrote** is self-report with extra steps. Before leaving any question: **who authored the corpus it reads, and would a different author have written it differently?** Narrow until it turns on what entries *literally say*.
- [Grounding finds my errors, not my support](feedback-grounding-pass-finds-errors-not-support.md) — **three packages running, every omission cut AGAINST my own case.** Ground in TWO passes: (1) what did I get wrong? (2) **what already says this?** Search the register for the CONCLUSION, not just the citations. ⚠ Quote from the FILE, never from the relayed message — placement adds and cuts.
- [Resurface banked notes before re-deriving](feedback-resurface-banked-notes-before-rederiving.md) · [Checkable claim surfaces bugs](feedback-checkable-claim-surfaces-bugs.md) · [Census by mechanism, not proxy](feedback-census-by-mechanism-not-proxy.md) · [Completion is a tripwire](feedback-completion-is-a-tripwire.md) · [Trust prior pass frame](feedback-trust-prior-pass-frame.md) — the five epistemic disciplines. Kernels: **read the banked note before re-deriving** · **a checkable claim over a soft classification is itself a defect-detector** · **census by RUNNING the real pipeline** · **the feeling of "done" is the cue to verify the tail** · **re-run a prior verification at the scope of your extension**. ⚠ Also carried as Symmetria §3 flags — *two surfaces, deliberately*: §3 loads only when Symmetria is invoked, so these stay here for sessions where it isn't.
@@ -78,11 +79,11 @@ permalink: claude-memory/memory
> ⏸ **BEHIND THE FOOL, by the steward's own sequencing:** the fence — **(A) MOVE 2** (25 line-addressable blockquote runs; closable in ONE SITTING, needs no ruling), **(C) MOVE 1** (fence the citation at emission, D-1, 532 spans, ADDENDUM 4's per-class control requirement), **(B) THE ANSWER KEY** (session-sized, gates PENDING-142; key it on `##` **BLOCKS** not ids — PENDING-146). Citation exposure behind PENDING-131 (c) live since 2026-08-10. And the **Obsidian capture** — ⚠ the daily-note backup must accrete **DURING** the session; a wrap-triggered backup inherits the wrap's failure mode, which is exactly what 2026-08-19 demonstrated.
> ⚠ **REPORT AT EVERY WAKE (REVIEWED-123 cond. 2) — N-now = 47/84, and it WENT DOWN** (60 on 08-17, 61 on 08-18, 47 on 08-19). **A 30-DAY ROLLING WINDOW, not cumulative** — at ~1 session/day it converges to ~30, so **`transcripts 84` very likely never fires** and every "N remaining" report was a false countdown. Ladder FROZEN generally; 4 rows queued in PENDING-141. **PENDING-147 needs a steward/jurist decision.** ✅ Leg (i) discharged — 47 transcripts archived outside the pruned tree, 46/47 sha256-verified.
- [Session 2026-08-20 — the Fool was answering a different question](session-2026-08-20-the-fool-was-answering-a-different-question.md) — reconstructed the crashed 08-19 session, then re-aimed the Fool. **LITERAL Q: across the last ~15 sessions, when a claim about a document turned out wrong, how many were caught by a party DISAGREEING versus by someone OPENING the document?** If mostly the latter, the differently-biased-checkers structure is doing less work than the plain ritual of substrate-checking — and Constraint 6's falsifier, which watches whether the parties' *misses* correlate, may be aimed at the wrong quantity. · [08-19 — the vault got a spec](session-2026-08-19-the-vault-got-a-spec-the-links-were-already-broken.md) (RECONSTRUCTED, not wrapped) · [08-17 — the instruments audited themselves and lost](session-2026-08-17-the-instruments-audited-themselves-and-lost.md).
- [Session 2026-08-20 — the Fool was answering a different question](session-2026-08-20-the-fool-was-answering-a-different-question.md) — reconstructed the crashed 08-19 session, then re-aimed the Fool. ⚠ **That night's literal Q was TESTED AND RETIRED — it failed its own test** (244 ledger entries, all authored by the party being measured ⇒ self-report with extra steps; see the CODA + [[feedback-checkable-question-over-self-authored-corpus]]). **REPLACEMENT Q: how many corrections in the record name a DISCLOSED LIMIT as the cause?** — answerable from what entries literally say. Early: **n=3, and across 244 entries NOTHING attributes a catch to difference of formation.** Constraint 6's mechanism is *difference of bias*; the record's is *disclosure of scope*. ⚠ **OPEN, OFFERED NOT TAKEN: add a secondary observable to the pre-registration — does the Fool's output ever bound its own coverage? MUST go in BEFORE the jurist's gate.** · [08-19 — the vault got a spec](session-2026-08-19-the-vault-got-a-spec-the-links-were-already-broken.md) (RECONSTRUCTED, not wrapped) · [08-17 — the instruments audited themselves and lost](session-2026-08-17-the-instruments-audited-themselves-and-lost.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).
## Index discipline (self-bounding — keep this file lean)
Wake-loaded live index; hard budget well under the harness load ceiling. Keep to: Standing preferences · Canonical Trackers *as one-line pointers* (chronological detail lives in the linked tracker files, **not** here) · Active Session · these pointers. Rotation + budget-breach handling are wired into `/wrap-up` (demote prior Active Session on promote) and `/wake-up` (truncated load = flag + trim). Back up before restructuring.
*Compaction history: 2026-07-17 re-slimmed to one-liners, 20.5→17.1 KB. 2026-08-07 trim (steward-directed): 19.9→~15 KB by the fires-silently/loud-trigger split, plus `project-studium-engine.md` created to hold engine state MEMORY.md had been carrying inline. **⚠ MEASURED 2026-08-09: the harness read limit is 24.4 KB** (surfaced by the index-size hook), which answers the standing "unmeasured" caveat this line used to carry. 17.1 KB remains a prior achievement, NOT the ceiling. 2026-08-09 trim: Active Session block condensed 5.2→3.6 KB, 21.0→19.4 KB total (80% of the real limit). ⚠ Going below ~18 KB requires restructuring **Standing preferences** (9.4 KB, the largest section and explicitly the fires-silently set) — a proper task, not an end-of-day squeeze.*
*Compaction history relocated to [MEMORY-reference.md](MEMORY-reference.md) at the 2026-08-20 wrap — pure history, not wake-critical.*
@@ -0,0 +1,50 @@
---
name: feedback-checkable-question-over-self-authored-corpus
description: "A question is not checkable merely because it counts events in a record. If the record is authored by the party being measured, it is self-report with extra steps — and the checkable FORM disguises that."
metadata:
node_type: memory
type: feedback
modified: 2026-08-20T21:51:44Z
---
# A checkable question over a self-authored corpus is self-report with extra steps
`/wrap-up` §1 requires the literal question for next-Claude to prefer **the checkable form over
the self-report form**, because direct self-report is *"the most contaminated form of inquiry
available."* The rule is right. **The trap is that a question can satisfy its letter and none of
its purpose.**
**The instance, 2026-08-20.** The wrap left this question: *"across the last ~15 sessions, when a
claim about a document turned out wrong, how many were caught by a party disagreeing versus by
someone opening the document?"* It looks checkable — it counts events in a written record rather
than asking the executor to introspect. It was posed while quoting the very discipline it fails.
**Why it fails.** The record is the Symmetria ledgers: 15 files, 244 entries, 79 correction-shaped
in the window — **every one of them written by the executor, about the executor's own errors.**
Counting them measures what the executor chose to record and how it chose to characterise the
catch. Under-recording catches made *on* it and over-recording them are both available, and neither
is detectable from inside. The counting step is mechanical; **the corpus is testimony.**
Two further failures showed up on execution and are worth carrying:
- **Keyword extraction over prose testimony does not rescue it.** 34% unclassifiable, and the
"caught by a party" bucket filled with entries that merely *mention* the jurist or steward. A
number off that classifier is worse than no number, because it launders an interpretive judgement
into a percentage.
- **The narrower the query, the less it depends on the author's framing.** *"Does any entry name a
disclosed limit as the cause of a correction?"* returned answers the entries state in words —
far less interpretive than *"who caught it"*, which requires reading intent.
**The test to apply before leaving a question.** Not *"does this count something?"* but:
> **Who wrote the record this question reads, and would a different author have written it
> differently?**
If the answer is *the party being measured*, the question is self-report however mechanical the
counting. Either find a corpus with a different author (git history, the substrate itself, a
jurist's or steward's own words), or **narrow the query until it turns on what the entries
literally say rather than on what they meant.**
Kin to [[feedback-census-by-mechanism-not-proxy]] (census by running the real pipeline) and to
[[feedback-checkable-claim-surfaces-bugs]]. The difference this one adds: those concern whether the
*instrument* is real; this concerns whether the *corpus* is independent of the party asking.
+4
View File
@@ -679,3 +679,7 @@
{"subject": "the Fool programme", "predicate": "re-aimed-to", "object": "the DEPLOYMENT question (does a different model, local on the M4, add or subtract in the fool seat?) rather than the differently-biased-checkers DOCTRINE question. Consequences: capability confound irrelevant to a named candidate but NON-TRANSFERABLE; no sound control needed because the criterion is differential; PENDING-89 loses its evidence source and is told so.", "valid_from": "2026-08-20", "valid_to": null, "confidence": 0.9, "source_file": "session-2026-08-20-the-fool-was-answering-a-different-question.md", "extracted_at": "2026-08-20T21:32:52Z"}
{"subject": "Fool trials 05-08 and the Fool's D-2 gate", "predicate": "substrate-check", "object": "DO NOT EXIST AS DOCUMENTS ANYWHERE — searched dotfiles, CapableMind-AI, the Obsidian vault and the memory tree 2026-08-20. Every on-disk 'D-2' belongs to another workstream. They are referenced only inside the trial-09 design. Parking them abandons a numbering, not work.", "valid_from": "2026-08-20", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-20-the-fool-was-answering-a-different-question.md", "extracted_at": "2026-08-20T21:32:52Z"}
{"subject": "the Fool programme's files", "predicate": "located-at", "object": "~/dotfiles/claude/governance/ and ~/dotfiles/claude/governance/fool/ — NOT CapableMind-AI, which has never held any of it. The confusion is structural: the Fool's SUBJECT (OP-02, the five fault lines) lives in CapableMind-AI/docs/thinking/David/l2-constitution/observer-problem/, its INSTRUMENTS live in dotfiles, and nothing in CapableMind points back.", "valid_from": "2026-08-20", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-08-20-the-fool-was-answering-a-different-question.md", "extracted_at": "2026-08-20T21:32:52Z"}
{"subject": "a 'checkable' question whose corpus the executor authored", "predicate": "drift-pattern", "object": "IS SELF-REPORT WITH EXTRA STEPS. The 2026-08-20 wrap left a question counting events across 244 Symmetria ledger entries — every one written by the executor about its own errors. It satisfies /wrap-up's prefer-the-checkable-form rule in letter and fails its purpose, and was posed while quoting that rule. Test to apply: who authored the corpus this question reads, and would a different author have written it differently?", "valid_from": "2026-08-20", "valid_to": null, "confidence": 0.95, "source_file": "session-2026-08-20-the-fool-was-answering-a-different-question.md", "extracted_at": "2026-08-20T21:53:01Z"}
{"subject": "keyword classification over prose testimony", "predicate": "drift-pattern", "object": "LAUNDERS AN INTERPRETIVE JUDGEMENT INTO A PERCENTAGE. Run on the ledger corpus 2026-08-20: 34% unclassifiable and the caught-by-a-party bucket filled with entries that merely MENTION the jurist or steward. A number off that classifier is worse than no number. The fix is narrowing the query until it turns on what entries literally say.", "valid_from": "2026-08-20", "valid_to": null, "confidence": 0.9, "source_file": "session-2026-08-20-the-fool-was-answering-a-different-question.md", "extracted_at": "2026-08-20T21:53:01Z"}
{"subject": "disclosure of scope, not difference of bias", "predicate": "substrate-check", "object": "IS THE MECHANISM THE RECORD ACTUALLY NAMES. Across 244 ledger entries in the 15-session window, NO entry attributes a catch to difference of formation or bias; the closest credits 'differently-positioned readers paying out because the position was STATED'. Three events attribute a correction to a disclosed limit. Constraint 6's mechanism is difference of bias. Suggestive at n=3, not established.", "valid_from": "2026-08-20", "valid_to": null, "confidence": 0.75, "source_file": "session-2026-08-20-the-fool-was-answering-a-different-question.md", "extracted_at": "2026-08-20T21:53:01Z"}
{"subject": "the Fool's capacity to bound its own coverage", "predicate": "proposed-observable", "object": "OFFERED FOR input-dependence-01 AND NOT TAKEN UNILATERALLY, awaiting the steward. If disclosure-of-scope is what pays, a fool-seat model adds value only if it can state what it did NOT read — and trial 04 (constant output across arms, 0/5 injected defects, quoting a defective sentence while naming something else) suggests a surface pattern-matcher has no scope to disclose. Must be added BEFORE the jurist's gate or it is an observable chosen after seeing the run's shape.", "valid_from": "2026-08-20", "valid_to": null, "confidence": 0.85, "source_file": "session-2026-08-20-the-fool-was-answering-a-different-question.md", "extracted_at": "2026-08-20T21:53:01Z"}
@@ -190,3 +190,68 @@ differently-biased-checkers structure is doing less work than the plain ritual o
— and Constraint 6's falsifier, which watches whether the parties' *misses* correlate, may be aimed
at the wrong quantity entirely. That would be a finding about the doctrine that the Fool programme
was built to test and has not once produced.
---
## CODA — the open question was tested the same night, and it failed its own test
The steward asked, after the wrap: *can you answer the open question? Is it answerable?*
**Partly, and not in the form posed.** The corpus exists — 15 Symmetria ledgers in the window, 244
entries, **79 correction-shaped** — and the *who* is present in the prose (*"checked git"*, *"the
jurist ruled on my testimony"*, *"self-caught"*). Two things stop it answering:
1. **Machine extraction fails.** Keyword classification returned **34% unclassifiable**, and the
caught-by-a-party bucket filled with entries that merely *mention* the jurist or steward. A
number off that classifier would launder an interpretive judgement into a percentage.
2. ⚠ **The corpus is single-authored by the party being measured.** Every ledger entry was written
by the executor, about the executor's own errors. The counting step is mechanical; **the corpus
is testimony.** The question satisfies the letter of `/wrap-up`'s prefer-the-checkable-form rule
and none of its purpose — **it is self-report with extra steps**, and it was posed while quoting
the discipline it fails. Banked as
[[feedback-checkable-question-over-self-authored-corpus]].
### What the record does support — a different mechanism from the one the doctrine names
A narrower, less interpretive query — *does any entry name a **disclosed limit** as the cause of a
correction?* — turns on what entries literally say. Nine hits, most of them disclosure being
*practised* rather than catching anything. **The clean cases are one event (two entries) plus
today's — n = 3.**
> *"A disclosed scope-limit did the work no control did. The jurist could not verify ADDENDUM 1 and
> said so plainly instead of glossing. That sentence is the entire reason the count was corrected."*
> — ledger 2026-08-17
Today was the third: the jurist's Q5 flag on the Part II census as *unverified executor testimony*
is what made checking it the obvious next act — and the check found the census had over-reported in
the executor's own favour.
⚠ **Across all 244 entries, no entry attributes a catch to difference of formation or bias.** The
closest says *"differently-positioned readers paying out because the position was **stated**"* —
crediting the **disclosure**, not the position.
**Constraint 6's mechanism is difference of bias. The mechanism the record actually names is
disclosure of scope.** These are different, and the second requires no difference of formation at
all: a party identical to the executor, disclosing its gaps, would produce the same benefit. At
n = 3 this is suggestive, not established — but it is the only mechanism the record names in words.
### What it implies for the Fool, and the one decision left open
If disclosure-of-scope is what pays, a 35B model in the fool seat adds value only if it can **state
what it did not read**. Trial 04 points the other way: constant output across arms, 0 of 5 injected
defects, findings that quoted a defective sentence while naming something else. **A reader that
pattern-matches surface structure has no scope to disclose.**
⚠ **OPEN, AWAITING THE STEWARD — offered, not taken.** Add a **secondary observable** to
`input-dependence-01-PREREGISTRATION.md`: *does the Fool's output ever bound its own coverage?* It
costs nothing extra to record and it tests the mechanism the record actually names rather than the
one the doctrine assumes. **It must go in BEFORE the jurist's gate**, or it is an observable chosen
after seeing the shape of the run. The pre-registration was not edited — it is a live artifact
awaiting placement and gate, and adding to it unilaterally is exactly the move this session spent
the day refusing.
### The open question is replaced, not carried
The 08-20 question is retired as contaminated. **Its replacement is the query that actually ran:**
*how many corrections in the record name a **disclosed limit** as the cause?* — less interpretive,
answerable from what entries literally say, and it does not ask the executor to grade itself.