Files
dotfiles/claude
David F Glidden 2e83b2c3a6 [PROPOSAL→AUTHORIZED] Control Kernel v1.0 FROZEN — soundness by construction for the Fool false-positive control
Steward accepted draft-2. Frozen; nothing has been written or reduced against
it prior to this commit, which is the freeze anchor.

The kernel answers a question the programme had been getting wrong. The false-
positive control needs a document on which 'nothing found' is correct, and I had
claimed soundness cannot be known by construction. The steward corrected the
framing: unconditioned soundness cannot, but OPERATIONAL soundness relative to a
declared axiomatic kernel is the standard trick behind proof assistants — and it
is the same regress the central path already terminates by binding claims rather
than certifying parties. The kernel is therefore a TCB: small, declared in
advance, published rather than hidden, because a secret trusted base is a
contradiction in terms.

Design: axiom set declared and hashed (CLAUDE.md, REVIEWED.md); every sentence
typed D/Q/A/N/X; kernel-sound iff every sentence is tagged and every Q resolves
verbatim; tags stripped before the model sees anything, byte-verified, so the
control cannot be passed by tag-matching without reading.

Two rules were paid for in evidence rather than reasoned. §2a forbids a
limitations section: in trial 03 Qwen located Part VII, classified it as
author-named limitation, and skipped it wholesale — a collected section turns
reading into lookup. §2c forbids multi-primitive sentences, with the grading
rule that a blend the model catches VOIDS the document rather than counting as a
false positive, so a missed blend indicts the author.

Steward review supplied three structural findings, all adopted: tag
co-occurrence (taken by decomposition; precedence rejected because it converts a
flagged demonstrated-half into an echo and deflates the very number the control
produces, under a standing caveat that the grader is the party under test),
transitive assumption creep (D now requires resting only on axioms or earlier
D/Q — assumptions cascade, and that cost is accepted as correct), and
rhetorical presupposition in X (X iff declarative conversion yields no
load-bearing claim; headings included). Applying them surfaced a fourth I had
missed: Q's scope-of-use was judgement and absent from §4 — the exact defect the
jurist caught in my own package on 2026-07-19.

§4's residue list grew from three to five. Its DIRECTION did not: all five remain
ways for me to make a document look sound, none makes it look worse. That
one-directionality is the property under watch.

Cost incurred and recorded: the steward's review materially improved the kernel
and thereby coupled him to it. §6.2's adversarial falsifier therefore falls to a
third party — the jurist or a differently-formed model — not to him.
2026-08-02 17:32:18 +02:00
..

Claude Code configuration — backup & restore

This directory holds the durable Claude Code configuration that should survive a machine wipe: custom skills, accumulated memory, and user-level settings. The working copies at ~/.claude/* are symlinks pointing here, so edits flow both directions automatically.


What's preserved here

skills/ — custom skills we've authored

Skill Purpose
audit/ Scans thinking folder + vault inbox for organizational drift; report-only
symmetria/ Practice-of-return discipline; prime-directive foregrounding under context pressure
vault-update-people/ Searches Obsidian vault for new mentions of a person; proposes People-file updates
wake-up/ Restores full session context from memory, governance, and git at session start
wrap-up/ Captures session state for future restoration; the quality of the next wake depends on this

Marketplace-installed skills (from Claude Code plugins) are not backed up here — they are regenerable on any fresh install.

memory/ — auto-memory for the main project scope

The substrate of continuity. 55+ files including:

  • MEMORY.md — the index, loaded at every session start
  • session-2026-*.md — session records (full Dasein-frame wrap-ups: pulling thread, pause statement, literal question for next-Claude)
  • session-ledger-*.md — Symmetria daily ledgers (returns, recalibrations, authorization moves, bypasses)
  • project-*.md — active project state snapshots (ARC rework, Chamber, L2 review, etc.)
  • feedback-*.md — steward preferences and corrections learned over time
  • Many others

Real path: ~/.claude/projects/-Users-davidglidden/memory/ symlinks here.

settings/settings.json — Claude Code user settings

Sanitized. Contains hook registrations (including the MemPalace auto-save hooks) and feature flags. No secrets.

mempalace/ — MemPalace setup files

The bootstrap configuration for MemPalace. These files live at ~/.mempalace/ but are also backed up here because they represent the accumulated understanding of who-is-who and what-is-what. The palace itself (~/_Dev/mempalace/.local-data/palace/, ~1GB) is NOT backed up — it's rebuildable by re-running mempalace mine against the same source data.

File Purpose
config.json Palace path + default topic wings + hall keywords
identity.txt L0 layer — loaded every session; ~100 tokens identifying who I am, who the steward is, intellectual substrate
wing_config.json Named wings for real people and projects (wing_david, wing_nuria, wing_lune, wing_kai, wing_seb, wing_peter, wing_arc, wing_capablemind, wing_chamber, wing_afterthereply, wing_aldinexxi, wing_l2, wing_claude-code)

The auto-save hooks (wired in settings/settings.json via Stop and PreCompact events) point at ~/_Dev/mempalace/hooks/mempal_save_hook.sh and mempal_precompact_hook.sh. If MemPalace is reinstalled elsewhere, update those paths.


What is deliberately NOT here

settings.local.json

Kept local-only because its permissions allowlist has historically contained operational secrets (HuggingFace tokens embedded in approved Bash commands; SSH passwords in approved expect scripts). The .local.json naming convention exists for exactly this reason.

Before backing any settings.local.json up anywhere, audit it for secrets and redact them.

Session transcripts (sessions/, history.jsonl, projects/*/sessions/)

Too large; ephemeral by design; not needed to restore identity.

Caches, telemetry, runtime state

cache/, file-history/, paste-cache/, telemetry/, statsig/, stats-cache.json, scheduled_tasks.lock, session-env/, mcp-needs-auth-cache.json, debug/, tasks/, todos/ — all regenerate naturally.

Marketplace-installed skills and agents

plugins/, and the many non-custom entries under skills/ and agents/ come from Claude Code's plugin system. Reinstallable on a fresh machine.


Restore procedure

On a fresh machine, after cloning dotfiles:

cd ~/dotfiles/claude
./install.sh

The install script:

  1. Verifies ~/dotfiles/claude/ is present
  2. Creates ~/.claude/skills/ and ~/.claude/projects/-Users-davidglidden/ if missing
  3. Symlinks each custom skill from ~/.claude/skills/X → ~/dotfiles/claude/skills/X
  4. Symlinks the memory tree from ~/.claude/projects/-Users-davidglidden/memory → ~/dotfiles/claude/memory
  5. Copies settings.json into place if no existing file (does not overwrite)
  6. Skips anything already present — idempotent

After running: the first Claude Code session on the new machine has full memory, all custom skills, and baseline settings.


Why this matters

Without this backup, a machine wipe means:

  • All session memory lost — /wake-up would have nothing to restore from
  • All custom skills lost — the practice-of-return discipline, session lifecycle, audit workflows
  • The collaboration history with Claude Code loses its thread

The memory tree is the single most irreplaceable artifact — it accumulates through dialogue and cannot be reconstructed from any other source. 384 KB of text that represents months of learning about preferences, active projects, decisions, and open horizons.


Maintenance

These files are live. Claude Code writes to them during normal operation (ledger updates, memory file creation/edits, settings changes). Because the working copies at ~/.claude/* are symlinks into this directory, every write lands here automatically. Then git status in ~/dotfiles/ shows what's changed and invites a commit.

Recommended cadence: commit dotfiles/claude/ changes alongside other dotfiles work, roughly weekly or when a significant session has concluded. The /wrap-up skill should be treated as a natural commit moment for the memory tree.

Fragility to watch

  • Symlinks break if ~/dotfiles/claude/ is moved. Keep dotfiles at ~/dotfiles/.
  • macOS Time Machine / backup tools may or may not follow symlinks. Verify your backup solution sees files, not just broken links.
  • If Claude Code's internal path conventions change (e.g., the project-scope slug -Users-davidglidden changes), the symlink stops pointing where Claude Code looks. Re-create with the new path.