Files
dotfiles/claude/memory/MEMORY.md
T
David F GliddenandClaude Opus 5 2171d9127e [FIX] MEMORY.md load-integrity breach: relocate workstream state to its trackers
The wake reported MEMORY.md at 26,803 bytes against a 24,986-byte budget, so the
index was being silently truncated at load — the failure the two-file split exists
to prevent, on the one file every session reads first.

The cause was not bulk. It was an inversion the file's own Index discipline section
forbids: "Canonical Trackers as one-line pointers — chronological detail lives in
the linked tracker files, not here." Five tracker entries had grown into paragraphs,
and for three of them the index had become the SOLE custodian of live state:

  - Studium Engine: the tracker's chronological log stopped at 2026-08-13 while the
    index carried engine state through 2026-09-01 (REVIEWED-133, 496cd7e, the
    deleted undisclosed_days_in_force). Relocated verbatim as a dated log entry.
  - The Fool (Tarbuckle): the only linked target was a SEALED seed, which is not a
    place state may be appended, so there was nowhere for it to go. Tracker
    established (project-fool-tarbuckle.md); index line relocated verbatim.
  - L1 reliability: the tracker records that replay is "not resumable" but neither
    the mechanism (minCursor is a minimum over 11 modules, two never participate, so
    it is pinned at 0 by construction) nor the completion criterion (uninterrupted
    run length, not rate). Both appended.

Cut only where the file's own rule says to cut. "Rules that fire silently" was left
untouched by design — those entries keep their rule inline precisely because I would
not know to look them up, and gutting them is the one cut that would do real harm.
The frozen verification-ladder pointer (REVIEWED-123) and the skill-harvest hold
(PENDING-141) were likewise not touched.

Lossless-relocation gate applied: line-range slices, never retyping; md5 per slice;
token-conservation check over all five originals against the trimmed index and the
relocation targets — 0 unconserved after the L1 append. Link canary: 406 pointers,
0 dead, 0 mis-authored; 32 wikilinks clean.

26,803 -> 23,714 bytes. Headroom is only 1.3 KB; the Active Session block still
carries ~5.5 KB that the wrap rotates.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X3L79vgAnt1x2kxvf23Qt7
2026-09-03 08:34:03 +02:00

23 KiB
Raw Blame History

name, metadata, permalink
name metadata permalink
node_type title type permalink originSessionId modified
memory MEMORY note claude-memory/memory 22915403-bc5d-4796-9c7d-196b7c30d2f9 2026-08-17T13:20:44.481Z
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 — single quotes primary, double for nested, logical British punctuation order. All writing.
  • Canadian spelling in ARC prose — centre/colour ("almost EU"). Draft all steward-voiced prose this way; corpus "center" = autocorrect drift (cleanup open).
  • Close thoroughly — no frequent deferrals — 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 — 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 — 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 — 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 — choosing between two disagreeing implementations is selection, not derivation. Derive from what a CONSUMER must do.
  • Rank on fields you actually write — 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 — 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 — footnotes/endnotes are integral: KEEP+CONVERT (<sup><a>→[^N]), never drop on graduation.
  • One-shot instruments are proportionate — 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 — 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 — 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 null search is evidence about the query — 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.
  • Resurface banked notes before re-deriving · Checkable claim surfaces bugs · Census by mechanism, not proxy · Completion is a tripwire · Trust prior pass frame — 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 — 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 — 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 — 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.
  • Skill-harvest register — 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 — draft PENDING/REVIEWED blocks as plain fenced markdown; display formatting leaks into the placed record.
  • Verify-before-compose hook — chamber constitutional writes are BLOCKED without <!-- GROUNDED-IN: … --> + verbatim Grounding. Don't fight the block.
  • Tool review after each use — 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 — 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 — 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 — 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 — the engine's constitutional doc. Read before building. · Sixtus-V collaboration — build freely, surface only vision-forks; constraint-candidates = 3rd governed instrument. Studium-engine only.
  • CapableHands standing authorization — 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 — 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 — ~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 — a map = an artifact David reads directly to orient. Write to ~/dotfiles/maps/, symlink to Desktop, never straight onto the Desktop.
  • Plane coordination workflow — 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 — third-party; don't conflate with BMF/CapableMind. MemPalace PRs await MemPalace's maintainers, not Seb.
  • The maturation of the chamber — a dialogue — 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 — 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 — canonical engine tracker; read it, this line holds no state. fr cell: TWO STEPS FROM CLOSING — PENDING-134's disclosure, then ratio_A_to_B re-derived ONCE (REVIEWED-116 pt 5).
  • Studium engine telos — the chamber of voices — 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 — 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 — it lives in seven sources across two repos + memory. A single home would become an eighth unless it supersedes or points.
  • L1 reliability — 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? — both pre-registered. ⚠ Read before trusting any gate's silence.
  • ARC open-work register — the single code-verified source of truth for what is OPEN on ARC. Read THIS for remaining ARC work, not the chronological tracker. · ARC — chronological record; Stage G DONE/SEALED (GPG ac0a7ee) — reactive mode governs.
  • Source library — link + dedupe — 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 — .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 — 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 — COMPLETE against the ReadingList (reconciliation-verified). Sourced ≠ ingested. Read before any Making/studium source work.
  • Studium = CM's unfettered sandbox — experiment freely on library/engine without risking CM's runtime; breakthroughs transfer back. Steward-framed 2026-07-08.
  • Be (laundromat) — 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 — 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 — 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 GATE THAT SHOULD HAVE EXISTED — built in an hour, 42 days late, and it found what no gate can see. The FIX-lane check-in (30 days overdue) unblocked REVIEWED-67's unconditioned per-conversion typography gate. scripts/verify_typography.py: converter-agnostic by construction, censuses classes in an independently-formed witness, 9 controls both directions written before first execution. Ran the corpus's first typography byte-census: curly_single 4,608 → 4 — ‘tradition’ → ' tradition ' ., docling inserts spaces around the flattened quote. Tier-3 word-boundary damage at 4,608 sites (pilot: 16). ⚠ body_word_conservation is structurally blind — punctuation-stripped tokenization reduces both to tradition; the gate's unit is the word, the damage lives below it. ligatures 2,013 → 0, unpredicted and benign on reading — the instrument reported the vanishing; the human judged it harmless. Poppler recovers all of it ⇒ the defect is the FRONT-END's, not the class's (⚠ pdftotext+pdftohtml are BOTH poppler — one engine read twice, not corroboration). Lane HELD; gate wired to all three terminal lanes. ⚠ TWELVE INSTRUMENT ERRORS OF MINE, AND NONE CAUGHT BY MY OWN FIRST PASS. 🔑 Every catch crossed party lines; nobody caught their own. Constraint 6 working — the day's only evidence for the apparatus, on a day that mostly produced evidence about its cost. Three catch-modes now distinguishable: a CONTROL verifies an encoder · RECONCILIATION catches a correctly-encoded measure of the WRONG THING (2 of 12, and nothing schedules it) · READING THE SUBSTRATE catches a handle with no referent. 📌 THE QUAGMIRE IS A QUEUE. Filing is cheap for the executor, ruling is expensive for the steward ⇒ unbounded arrivals, one server, steady state 62 items. Moratorium proposed to 2026-09-15 (detection continues, filing stops) + a hard cap + one class pass over the 62. Jurist accepted and bound itself, and corrected the criterion: a flat register with ZERO graduated texts is a FAILED moratorium, not a passed one. Steward's decision owed. ⚠ RE_ID CANNOT PARSE THE REGISTER'S OWN HOUSE FORM. ## REVIEWED-133 (PENDING-137) — … backtracks to the bare token REVIEWED; entries 130–133 are invisible to the integrity control and any future amendment to them reports a FALSE ORPHAN. Fix the REGEX, not the entries — REVIEWED-132's own disposition says "Do not touch placed headers." Bounded [FIX], ~20 min. Steward raised it; agreed at the wrap. 📌 STEWARD OWES: the moratorium decision · rule PENDING-171 (unblocks the 322 unread of 362) · -177 (now with measured evidence; Tier-3 not Tier-2) · -178 · -160 · -168 · the §5 regrade ruling.

✅ AFTER THE WRAP — /doctor ran; the chamber-library trim is COMMITTED (c7c30ac, 54,129→22,530 chars, both remotes current). Also fixed: 8 sub-agent name collisions across 21 files — 15 renamed, 0 remain, and the harness surfaced 15 previously-invisible agents on the spot · 4 invalid SKILL.md frontmatters (latent, not live) · plane MCP disabled (0 calls / 41 sessions) · permissions.defaultMode: auto. PENDING-169 §5a (440d18e): tarbuckle-wrap.py = the Stop hook at median 6.7 s / max 13.6 s, an order of magnitude above every other hook, on the blocking path at every session end — filed against the existing 2026-09-08 trigger, no duplicate block. Steward: 8 September, with the rest of Tarbuckle. 📌 NEXT SESSION, STEWARD-DIRECTED — ~/.claude/agents IS NOT UNDER VERSION CONTROL. 51 hand-edited files, 0 tracked, not a symlink into dotfiles. Every other governed surface is tracked; this one holds executable configuration — an agent definition determines what a delegated sub-agent is told to do — so an untracked, unattributable edit there is a governance surface, not a convenience. ⚠ Found by accident (/doctor was looking for name collisions), and no instrument was positioned to notice it. NOT filed — the moratorium is undecided and the instruction was attend to it, not file it. ⚠ The 15 renames still have no history — ADDENDUM 1's mapping table is the only undo. Track the directory BEFORE anything else edits it. Open: dotfiles or its own repo · are all 51 the steward's or some vendored · does ~/.claude/skills (already symlinked into dotfiles) set the precedent. ⚠ 14th instrument error, and it broke a discipline the repo documents: I reported "chamber-library pushed ✓" having pushed only origin — github was 9 behind and stayed behind through the whole wrap while the record said clean. The repo's CLAUDE.md says "push to both". Both current now.

  • Session 2026-09-01 — the gate that should have existed — a day that became the thing it diagnosed. Wake found control (c)'s false positive (a Tarbuckle mumble is unattended by design) → PENDING-178, the counter's unit. FIX-lane check-in held: EXTENDED PROVISIONAL, n=1, trigger re-based to use, ⚠ half not machine-checkable and no proxy invented. REVIEWED-133 (PENDING-137) ruled + executed — two of its conditions corrected by executor substrate reads, and ⚠ governance-mcp.py --selftest was FAILING while the jurist ruled from it (fixed, 62 controls). NEXT: the fr cell's last two steps.

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 — 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 at the 2026-08-20 wrap — pure history, not wake-critical.