Files
dotfiles/claude/memory/MEMORY.md
T
David F GliddenandClaude Opus 5 7ca1540182 memory: supersede the 'verify by eye' clause, and name the case where the remedy is the cause
The copy-paste-clean note told me to verify a draft parses as intended BY EYE.
Today's instance 6 is the counterexample: two leading spaces before a ## render
as a flawless heading and parse as nothing. By eye is exactly what cannot catch
it. Superseded by exact-string comparison with a negative control.

And the note's own remedy — the fenced block — is what added the indentation. It
stays right for entries and is wrong for whitespace-only repairs, which should go
over as a command that never touches the paste path.

Amendment joined rather than rewritten, so the original stays visible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T1i5VRfHjD79hfaXjWsBXA
2026-09-10 19:35:40 +02:00

114 lines
23 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: ''
metadata:
node_type: memory
title: MEMORY
type: note
permalink: claude-memory/memory
originSessionId: 22915403-bc5d-4796-9c7d-196b7c30d2f9
modified: 2026-08-17T13:20:44.481Z
permalink: claude-memory/memory
---
# Claude Code Memory
## Standing preferences
*Entries keep their rule inline when they fire at a moment I would not recognize as needing a lookup; they shrink to a pointer when the trigger is loud enough that I'd open the file anyway. A ⚠ constraint always travels with the workaround it limits.*
**Rules that fire silently — keep these in front of me**
- [Fowler's rules for quotation](feedback_fowlers_rules_quotation.md) — single quotes primary, double for nested, logical British punctuation order. All writing.
- [Canadian spelling in ARC prose](feedback-canadian-spelling-arc-prose.md) — centre/colour ("almost EU"). Draft all steward-voiced prose this way; corpus "center" = autocorrect drift (cleanup open).
- [Close thoroughly — no frequent deferrals](feedback-close-thoroughly-no-frequent-deferrals.md) — **frequent deferrals ARE how the cloud accumulated.** Close ALL of a block that's closable-now; for the rest, **name the specific dependency**.
- [Shorter, concentrated sessions](feedback-shorter-concentrated-sessions.md) — ONE tightly-scoped high-leverage bite taken all the way, then wrap; hold the rest as ranked horizons.
- [Constitution-as-block, then pull-based corpus](feedback-constitution-as-block-then-pull-based-corpus.md) — finish the **constitution as one block FIRST**, then corpus-into-spec **pulled by what each engine phase needs**. **Bounded question → bounded answer**; keep open-thread count LOW.
- [Removing a claim ≠ removing the reliance](feedback-removing-a-claim-is-not-removing-the-reliance.md) — cutting an unsupported sentence can **hide** the gap; the dependency survives, now invisible. Test: does the conclusion still *need* it?
- [Derive the rule from the consumer, not the survivor](feedback-derive-the-rule-from-the-consumer-not-from-the-survivor.md) — choosing between two disagreeing implementations is **selection, not derivation**. Derive from what a CONSUMER must do.
- [Rank on fields you actually write](feedback-rank-on-fields-you-actually-write.md) — a consumer ranking by an evaluative field nothing populates degrades to trivial order while claiming to rank. Verify scoring fields end-to-end; prefer signals already captured.
- [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.
- [A dated measurement is not a status](feedback-a-dated-measurement-is-not-a-status.md) — a claim true when written reads later as **present tense**, and nothing marks the difference. **Re-measure a dated finding BEFORE ruling on it.** ⚠ **Read the whole block, not the field you came for** — `Awaiting:` is where the eye goes and the last thing anyone updates; `Status:`/superseded lines sit above it and win. Five instances in two days, four of them self-falsifying *in the same item further down*.
- [A null search is evidence about the query](feedback-a-null-search-is-evidence-about-the-query.md) — **a search that finds nothing is a fact about the QUERY** until the query is proven able to find the thing; and acting on a handle (filename, regex, path) without inspecting the referent is the same error reversed. ⚠ Never report *"you don't have X"* from a name search. Four instances, two sessions, 2026-08-31.
- [Read at the grain it was produced at](feedback-read-at-the-grain-it-was-produced-at.md) — **correct numbers and correct text, read at a grain other than the one they were produced at.** Two kinds: *population* mismatch (catchable by asking what a number counts over) and *parser-vs-reader* mismatch (renders correctly, parses as nothing — **not catchable by reading at all**). ⚠ Don't let the second vanish into the first. **Run a check, don't read harder** — over four instances in one sitting reading caught none, exact-string + negative control caught all four.
- [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.
**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 **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) — fenced, paste-ready blocks for **entries**; ⚠ **AMENDED 2026-09-10: a COMMAND for whitespace/line-anchored REPAIRS** (a fenced block is what adds the indentation), and **verify by exact-string check with a negative control — the 'by eye' clause is SUPERSEDED.** A `##` with two leading spaces renders perfectly and parses as nothing.
- [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.
- [Tool review after each use](feedback-tool-review-after-each-use.md) — review every tool we built after each run, success OR failure. **PASS-BUT-FALSELY is the priority signal.** Log: `chamber-library/_curation/tool-evolution-log.md`.
- [Every canon doc's source lives in Chamber Sources](feedback-resolve-source-through-chamber-sources.md) — a canonical's source = whatever `resolve_archived_source` returns, **never** the master library or a path in frontmatter. Read the banked record before calling a mismatch a defect.
- [Engine sources graduate to the permanent chamber](feedback-engine-sources-become-permanent-chamber-collection.md) — work added for the engine ALSO becomes permanent collection unless stated otherwise; take it all the way (clean→verify→graduate→catalogue→sidecar). Never leave staged.
- [Bulk indexing runs in tranches, gated on READBACK](feedback-bulk-indexing-runs-incrementally-with-readback.md) — never one multi-day mine; order by criticality; **prove each tranche by reading back, not by write-success** (933k drawers once stored fine and were unreadable). Steward rule 2026-05-04, learned on MemPalace, **applies now to engine corpus work**.
- [Studium Engine charter](reference-studium-engine-architectural-charter.md) — the engine's constitutional doc. Read before building. · [Sixtus-V collaboration](feedback-studium-engine-sixtus-v-collaboration.md) — build freely, surface only vision-forks; **constraint-candidates** = 3rd governed instrument. Studium-engine only.
- [CapableHands standing authorization](reference-capablehands-standing-authorization.md) — M4 mini `david@10.0.1.136` durably authorized for remote OCR/inference; don't re-ask (steward 2026-07-01).
- [Steward's notebooks + transcription provenance](reference-steward-notebooks-and-transcription-provenance.md) — three notebooks (Journal I B6-slim · A6 field book · A6 "real life"); **provenance cites the NOTEBOOK, not the photo**; dates are a **red rubber stamp**; file under the date RECORDED, arrival is metadata. ⚠ Ask each notebook's own archiving form.
- [Typography palace — query via CLI](reference-typography-palace-cli.md) — ~20 type masters at `~/.mempalace/palace-chamber-typography`; `mempalace --palace <that> search "…"`. For ARC typography; don't re-ask where it lives.
- [Steward maps live in ~/dotfiles/maps](reference-steward-maps-home.md) — a **map** = an artifact David reads *directly* to orient. Write to `~/dotfiles/maps/`, symlink to Desktop, **never** straight onto the Desktop.
- [Plane coordination workflow](reference-plane-coordination-workflow.md) — CENTRAL to steward↔Seb: `app.plane.so/capablemind`, thin effort-tasks `[BM #N]` over canonical GH issues. ⚠ BBF = BetterBridge *product*, NOT the board.
- [MemPalace is an unaffiliated stopgap](mempalace-is-unaffiliated-stopgap.md) — third-party; don't conflate with BMF/CapableMind. MemPalace PRs await MemPalace's maintainers, **not Seb**.
- [The maturation of the chamber — a dialogue](~/_Dev/studium-engine/docs/the-maturation-of-the-chamber-a-dialogue-2026-06-28.md) — the 2026-06-28 exchange on the chamber's telos (fidelity-without-trust; reading-is-unsolvable-is-the-feature). Companion to [[project-studium-engine-telos-chamber-of-voices]].
## 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`.*
- **[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; **read it, this line holds no state.** ✅ **fr cell CLOSED 2026-09-06** (steward act, `346d8e8`) — **the one-shot ratio is SPENT; DO NOT DERIVE AGAIN.** Bare `ratio_A_to_B` retired; `..._grounded_spans: "1:7"` is the historical population, `..._grounded_instances: "1:9"` **equals the retired VOID figure under a DIFFERENT population** — the trap. ⚠ **Against §6.2's A:B ≈ 1:1 the inherited fr gold DOES NOT MEET THE RULE; what follows is NOT decided.** ⚠⚠ **CARRIED HERE BECAUSE A QUALIFIER INSIDE A CLOSED ENTRY IS READ AS HISTORICAL: every "verified by reading" claim in the fr cell rests on ONE READER** (REVIEWED-121 pt 8) — the pass, its 2026-09-05 replication, and the ratio enumerations. **The replication does NOT discharge it: same party, twice.** It lifts when a second reader reads, and not before. ⚠ CLOSED ≠ SETTLED — doctrine never fired · defeater never able to fire · 73-span citation-safety exposure untouched; the cell entry carries the full open list.
- [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 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.
- [L1 reliability](project-L1-reliability.md) — canonical L1 tracker. **BLOCKED ON SEB (PENDING-94); BMF is down and staying down.** ⚠ **Read the tracker before ANY L1 work** — walked past once on 2026-08-03.
- [Instrument censuses — have our gates ever fired?](../governance/fool/census-02-have-they-ever-fired-RESULT.md) — both pre-registered. ⚠ **Read before trusting any gate's silence.**
- [ARC open-work register](project-arc-open-work-register.md) — **the single code-verified source of truth for what is OPEN on ARC.** Read THIS for remaining ARC work, not the chronological tracker. · [ARC](project-arc-rework.md) — chronological record; **Stage G DONE/SEALED (GPG `ac0a7ee`) — reactive mode governs.**
- [Source library — link + dedupe](project-source-library-link-and-dedupe.md) — master ebook library `~/Documents/___The Library [ePub_AWZ3]/` (2190 ebooks). GOAL: link chamber↔sources + dedupe; a real link needs EPUB/PDF internal metadata + edition-identity, **not filenames**.
- [Sidecar typology — protocol-dependent reading-indexes](project-sidecar-typology-protocol-dependent.md) — `.meta.json` structural sidecar = PROTOCOL-NEUTRAL (the graduated bar); reading-indexes = PROTOCOL-DEPENDENT and probably PLURAL — **don't design the schema yet.**
- [Character-as-image hazard](feedback-character-as-image-hazard.md) — EPUBs rendering diacritics as inline images are SILENTLY MUTILATED by image-drop. Mechanism built + wired; per-source glyph-maps still owed. **VIEW the glyph; map to SOURCE form.**
- [Making sequence source set](project-making-sequence-source-set.md) — **COMPLETE against the ReadingList** (reconciliation-verified). Sourced ≠ ingested. Read before any Making/studium source work.
- [Studium = CM's unfettered sandbox](project-studium-cm-sandbox-and-transfer.md) — experiment freely on library/engine without risking CM's runtime; breakthroughs transfer back. Steward-framed 2026-07-08.
- [Be (laundromat)](project-be-laundromat.md) — Skemantix startup (Seb+David) funding CapableMind's ladder; **bridge, not venture**. Decisions LOCKED. **Pre-revenue WTP gate = renovate Pat → charge her; no new spec until it clears ⇒ nothing for executor on be.**
- [The Fool — **Tarbuckle**](project-fool-tarbuckle.md) — **THE ACTIVE WORKSTREAM**; tracker established 2026-09-03, read it. ⚠ **Bones + soul are SEALED — never regenerate.** ⚠ Subject matter lives in **CapableMind-AI**, instruments in **dotfiles**, and nothing in CapableMind points back.
- [Obsidian vault — from archive to practice](project-obsidian-vault-practice.md) — canonical vault tracker; holds the four-purpose brief that is now the design brief. ⚠ The vault is **NOT a git repo** — it mirrors to `~/_Dev/david-root-and-branch-vault-git`.
- 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
> 🔑 **THE UNIT OF THE MEASUREMENT IS NOT THE UNIT OF THE CLAIM.** A number produced over one
> population, read as answering a question about another, with **nothing in the record marking the
> substitution**. Three substrates in one sitting: the **rejection timestamp** (child-completion,
> read as tick time — this killed judgment 2); **my own verification predicates, 3×** (per-line
> where the unit was per-paragraph; per-file where it was per-entry); and **PENDING-168's count**,
> whose unit is formally deferred. The register names the governance case (CLASS E) and has **no
> name for the measurement case**. Yesterday's thread was authority-without-a-ruling; this is the
> layer beneath.
> ✅ **DONE 2026-09-09 night — REVIEWED-137 placed (`3d340f6`)**, the four PENDING-169 §5 judgments.
> **Presence ANSWERED** (occupied on a per-machine clock, occupancy uncorrelated with the work).
> **Fidelity retrospective UNANSWERABLE** · **condition-G instrument DESIGNED, NOT AUTHORIZED** ·
> **wrap cost answered, wrap cap UNANSWERABLE**. Plus `049ca57` `[FIX]` + `e611bee` addendum.
> 🔥 **THE FINDING THAT DISPLACED THE QUESTION: the 14-word pile-up and the tick→terminal lag are
> ONE phenomenon** — 44 of 50 pile-up-day rejections unattributable vs 1 of 52 elsewhere, **no
> exceptions either direction over 14 days**. So **every cap argument rests on a confounded base**,
> the attended split is VOID, and **08-31 kills the W1/W2 framing — it toggles.** Mechanism UNKNOWN.
> ⚠ **`log_rejection` timestamps at write time**, so the **banked per-day series is binned by
> child-completion** on exactly the five days that matter — and the corpus that could check it is gone.
> ⛔ **CONDITION G STILL STANDS.** `REJECT_LOGGING_ENABLED = False`, re-verified unchanged at
> `3d45e3a`. **`tick_id` is the field to add — named by two failures, not designed.**
> 📌 **JURIST: THREE closures in the direction requiring no further work**, the third *inside the
> sitting where the executor flagged the first two*. Live for PENDING-89 + Constraint 6.
> ⚠ **The repaired self-planting mechanism is NOT whole** — `source_has`/`source_lacks` cover the
> **assertion**, not the file; **prose can plant the needle** (I did it, in the comment explaining
> the bug). REVIEWED-137 §6 declares it verified.
> ⛔ **N-now owed at every wake with its split** — re-measure, never relay. 30-day review **2026-09-16**,
> joint -178/-179 same date.
- [Session 2026-09-09 night — the unit of the measurement](session-2026-09-09-night-the-unit-of-the-measurement.md) — the verdicts sitting. Four judgments, **two answered and two recorded UNANSWERABLE with reasons — the more valuable half**. Presence: per-machine clock, idle panes take the draws, **tick starvation leaves no trace**. `0 of 89 into mumbles` was **FALSE and I certified it structural** — `Stop` fires for `claude -p`. Then the steward released PENDING-180's fix: census found **exactly one** self-planted needle, `source_has` built, mutation-verified — **and I re-planted the bug in the comment explaining it.** **PULLING: the unit of the measurement is not the unit of the claim.** **FIRST MOVE: draft the item list from the carry list in `01. Daily/2026-09-09.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 relocated to [MEMORY-reference.md](MEMORY-reference.md) at the 2026-08-20 wrap — pure history, not wake-critical.*